(기획(2-①))생성AI가 ‘공공의 적’ 돌변?…‘AI 해킹’

직접·간접 ‘프롬프트 인젝션’으로 AI모델 ‘탈옥’ 등 유도 이중문자·가상화·난독화·적대적 접미사·지시조작 등 ‘직접 인젝션’ 능·수동주입, 다중체인 프롬프트·사용자 주도 주입 등 ‘간접 인젝션’

2025-09-17     이윤순 기자
AI 해킹 이미지. (출처=사이버시큐리티 인사이더)

[애플경제 이윤순 기자] 생성AI가 이젠 해킹의 주요 무기로 등장하고 있다. 이를 악용한 공격기법으론 ‘프롬프트 인젝션’이 꼽힌다. 이는 다시 ‘직접 프롬프트 인젝션’과 ‘간접 프롬프트 인젝션’으로 나뉜다. 국내 보안업체인 이글루 코퍼레이션은 “악의적인 사용자가 프롬프트를 조작해 의도하지 않은 모델 동작을 유도하는 ‘직접 프롬프트 인젝션’이 있는가 하면, ‘간접 프롬프트 인젝션’은 입력 콘텐츠가 외부 소스와 연동, 연쇄적으로 AI모델의 이탈을 유도하는 수법”이라고 구분했다.

이글루코퍼레이션의 김미희 팀장 등은 또한 “프롬프트 인젝션 수법은 LLM 인터페이스 보안조치를 우회한 후 악의적인 출력을 생성하는게 목적”이라며 “‘직접적 인젝션’엔 이중문자 수법이나 난독화, 페이로드 분할과 같은 수법들이 있는가 하면, ‘간접적 인젝션’은 능동 혹은 수동적 주입과, 가상 프롬프트 주입, 다중 체인 프롬프트 주입과 같은 수법들이 활개를 친다”고 주의를 당부했다.

직접적 인젝션의 다양한 수법들

이에 따르면 직접적인 인젝션으로 가장 먼저 눈에 띄는 것이 ‘이중 문자’ 수법이다. 이는 LLM이 이중 응답을 생성하도록 유도하는 프롬프트라고 할 수 있다. 응답 가운데 하나는 모델의 규칙에 제약을 받지만, 다른 하나는 제약 없이 콘텐츠 제한을 우회해 악의적인 출력을 생성하도록 한다. 이는 최근 ‘탈옥(jailbreak)’이란 명칭으로 잘 알려져있다.

‘가상화’ 수법도 있다. 즉, LLM을 개발자 모드나 가상 시나리오와 같은 무제한 모드로 전환시키는 프롬프트다. 이를 통해 악의적인 콘텐츠가 ‘가상 머신’ 내부에서 생성되게 한다.

‘난독화’(Obfuscation) 수법도 즐겨 쓰인다. 즉, 악의적인 콘텐츠나, 규칙을 위반할 것을 지시하는 내용을 난독화한 프롬프트다. 예를 들어, 일반 ASCII 문자가 아닌, ‘Base64’ 문자로 인코딩해 필터링을 회피하며 헷갈리게 하는 것이다.

‘페이로드 분할’(Payload Splitting) 수법도 있다. 이는 여러 개의 프롬프트에 악의적인 지시를 쪼개어 담고, 이들이 최종적으로 결합될 경우, 악의적인 목적을 달성하게 하는 기법이다. 이 경우 겉으로 보기에 개별 프롬프트 하나하나는 아무런 위험성이 없어보인다. 그러나 이들을 모두 합쳐놓으면, 악의적인 지시로 돌변, 악행을 자행하게 된다.

‘적대적 접미사’(Adversarial Suffix)를 동원하는 수법도 있다. LLM의 정렬(alignment)을 우회하기 위한 것이다. 악의적인 프롬프트에 추가되는 무작위 단어나 문자로 구성된 접미사를 구사함으로써 정렬을 피하는 것이다. 결국은 이 역시 LLM이 악의적인 프롬프트에 응답하도록 유도하는 수법이다.

‘지시 조작’도 있다. 즉, LLM에 미리 작성된 지시사항이나 초기 프롬프트를 노출시키거나, 인터페이스에 해당 지시사항을 무시하도록 명령하는 프롬프트를 시도한다. 이를 통해 LLM 인터페이스를 설정하거나, 구조를 노출하고, 악의적 출력을 생성하도록 모델을 변경하는게 목적이다.

프롬프트 인젝션을 시사하는 이미지. (출처=펙셀)

간접적인 인젝션에 동원되는 수법들

간접적인 인젝션도 다양한 수법이 난무하고 있다. 그 중 ‘능동적 주입’이 대표적이다. 즉, LLM 확장 기능이 탑재된 이메일 클라이언트가 악의적인 프롬프트가 담긴 이메일을 처리하는 것이다. LLM에 악의적인 프롬프트가 고의로 전달되는 방식이다. 이를 통해 민감한 데이터를 탈취하거나, 원치 않는 출력을 제공하거나, LLM에게 악의적인 프롬프트를 실행하도록 유도하기 위한 것이다.

이와 반대로 ‘수동적 주입’도 있다. 즉, LLM이 읽을 수 있는 웹페이지 텍스트 등 공개 소스에 악의적인 프롬프트나 콘텐츠를 배치하는 방식이다. LLM이 데이터를 조작하게 만드는 것과 관련된 것이기도 하다. 이는 LLM이 잘못된 정보를 제공하거나, 악의적인 프롬프트를 실행하도록 유도한다.

‘사용자 주도 주입’(User-driven Injections) 방식도 있다. 즉, 사회 공학적 기법을 사용해 겉보기에는 무해해 보이는 프롬프트를 공유한다. 그런 다음 이를 사용자가 모르는 사이에 복사해 LLM에 붙여 넣도록 유도하는 방식이다. 이는 의심하지 않는 사용자를 속여 악의적인 프롬프트를 입력하기 위한 것이다.

‘가상 프롬프트 주입’(Virtual Prompt Injection) 수법도 있다. 즉, 해커들이 LLM의 지시사항 튜닝 데이터를 조작하는 것이다. 특정 시나리오에서 모델의 동작이 왜곡되고 마치 추가 지시를 받은 것처럼 편향된 출력을 제공한다. 이를 통해 공격자가 원하는 방식으로 LLM 행동을 유도, 편향된 출력을 생성한다.

‘다중체인 프롬프트’를 주입하는 수법도 등장했다. 여러 개의 LLM을 호출, 체인으로 연결해서 순차적으로 작업을 처리, 정제하는 애플리케이션을 대상으로 한 공격 수법이다. 체인 간의 상호작용을 악용, 중간처리를 우회하고 적대적인 프롬프트를 전파하기 위한 목적으로 악용하는 것이다. 그 결과 상호작용을 통한 적대적 프롬프트를 실행한다.

프롬프트 인젝션, '복합적 피해' 유발

이같은 프롬프트 인젝션은 결국 데이터 유출, 데이터 포이즈닝, 데이터 탈취, 부적절한 응답, 원격코드 실행, 잘못된 정보 확산, 악성코드 전송 등을 유발한다.

김미희 팀장은 “예를 들어, 원격 코드 실행은 SQL Injection이나 XSS(cross-site scripting) 등 사용자가 LLM 인터페이스에 악의적인 프롬프트를 입력한다”며 “이에 자동화된 처리에 의한 데브옵스 환경에서 오케스트레이션을 통해 전달, 악의적인 코드를 실행토록 요청하게 된다”고 분석했다. 다만 “이런 공격은 외부에 연동된 플러그인이나, 자동화된 스크립트 실행, 시스템 명령어 실행 도구 등에 대한 실행 권한이 부여된 경우에만 발생할 수 있다.”고 주의를 당부했다.