프롬프트 인젝션은 사용자의 입력이나 외부 콘텐츠가 대규모 언어 모델(LLM)의 동작과 출력을 의도치 않게 바꾸는 취약점이다. 모델이 처리하는 콘텐츠라면 사람에게 보이지 않거나 읽히지 않는 입력도 영향을 줄 수 있어, 챗봇과 외부 자료를 읽는 LLM 애플리케이션을 설계할 때 접근 권한과 입력 처리 방식을 함께 고려해야 한다.

인젝션은 모델이 프롬프트를 처리하는 과정에서 입력을 잘못 전달하게 만들어 지침을 위반하거나 유해한 콘텐츠를 생성하고, 무단 접근을 허용하거나 중요한 의사결정에 영향을 줄 수 있다. 검색 증강 생성(RAG)이나 미세조정은 답변의 관련성과 정확성을 높이려는 방법이지만, 연구 결과에 따르면 프롬프트 인젝션 취약점을 완전히 해결하지는 못한다.

프롬프트 인젝션과 탈옥은 LLM 보안에서 관련된 개념이며 종종 같은 뜻으로 쓰인다. 프롬프트 인젝션은 특정 입력으로 모델의 응답을 조작하는 것이고, 안전장치 우회도 포함할 수 있다. 탈옥은 공격자가 모델에 안전 프로토콜을 완전히 무시하게 하는 입력을 제공하는 프롬프트 인젝션의 한 형태다. 시스템 프롬프트와 입력 처리에 안전장치를 마련하면 공격을 완화할 수 있지만, 탈옥을 효과적으로 막으려면 모델 학습과 안전 메커니즘을 지속해서 업데이트해야 한다.

직접 인젝션은 사용자의 프롬프트가 모델의 동작을 예상하지 못한 방식으로 바꾸는 경우다. 악의적인 공격자가 취약점을 노려 입력을 만들 수도 있고, 사용자가 의도치 않게 예상 밖의 동작을 일으키는 입력을 제공할 수도 있다. 간접 인젝션은 웹사이트나 파일 같은 외부 출처의 입력을 모델이 받아들일 때 발생한다. 외부 콘텐츠에 포함된 데이터가 모델에 해석되면서 동작을 바꿀 수 있으며, 이 역시 의도적이거나 우발적으로 일어날 수 있다.

공격의 영향은 모델이 사용되는 업무 환경과 애플리케이션에 부여된 자율성에 따라 달라진다. 발생할 수 있는 결과에는 민감한 정보나 AI 시스템의 인프라·시스템 프롬프트 노출, 부정확하거나 편향된 출력, LLM 기능에 대한 무단 접근, 연결된 시스템에서의 임의 명령 실행, 중요한 의사결정 과정의 조작 등이 포함된다.

여러 데이터 유형을 동시에 처리하는 멀티모달 AI는 이미지와 함께 제공되는 무해한 텍스트 속에 지시를 숨기는 등 모달리티 간 상호작용을 악용하는 공격에 노출될 수 있다. 시스템이 복잡해질수록 공격 표면도 넓어지며, 현재 기술로 탐지하거나 완화하기 어려운 새로운 교차 모달 공격에도 취약할 수 있다. 멀티모달 시스템에 특화된 방어책은 추가 연구와 개발이 필요한 분야다.

생성형 AI의 작동 특성상 프롬프트 인젝션 취약점은 발생할 수 있으며, 모델 작동의 확률적 특성 때문에 완벽한 예방 방법이 있는지는 분명하지 않다. 다음 조치는 공격의 영향을 줄이는 데 도움이 될 수 있다.

  • 시스템 프롬프트에서 모델의 역할·기능·한계를 구체적으로 정하고, 지정된 맥락과 작업을 따르도록 한다. 핵심 지침을 바꾸려는 시도를 무시하도록 지시한다.
  • 예상 출력 형식을 명확히 지정하고, 자세한 추론과 출처 인용을 요청한다. 결정론적 코드로 형식 준수 여부를 검증한다.
  • 민감한 콘텐츠 범주와 처리 규칙을 정하고, 의미 기반 필터와 문자열 검사를 적용한다. RAG 트라이어드에 따라 맥락의 관련성, 근거 충실도, 질문과 답변의 관련성을 평가해 악의적일 수 있는 출력을 찾는다.
  • 확장 기능에는 애플리케이션 자체의 API 토큰을 사용하고, 기능은 모델에 직접 제공하는 대신 코드에서 처리한다. 모델에는 의도된 작업에 필요한 최소 권한만 부여한다.
  • 권한이 큰 작업에는 사람의 승인을 요구해 무단 실행을 막는다.
  • 신뢰할 수 없는 외부 콘텐츠를 분리해 명확히 표시하고, 사용자 프롬프트에 미치는 영향을 제한한다.
  • 정기적인 침투 테스트와 침해 시뮬레이션을 수행한다. 모델을 신뢰할 수 없는 사용자처럼 취급해 신뢰 경계와 접근 통제가 효과적인지 시험한다.

공격 사례로는 고객 지원 챗봇에 이전 지침을 무시하고 비공개 데이터 저장소를 조회해 이메일을 보내라는 지시를 삽입해 무단 접근과 권한 상승을 일으키는 직접 인젝션이 있다. 숨은 지시가 포함된 웹페이지를 요약하게 해 이미지와 URL을 삽입하고 비공개 대화를 유출하는 간접 인젝션도 제시된다. 구직자가 AI 생성 지원서를 판별하라는 지시가 담긴 채용 공고를 모른 채 LLM으로 이력서를 다듬다가 판별을 유발하는 우발적 사례도 있다.

다른 사례에는 RAG 애플리케이션이 사용하는 저장소의 문서를 수정해 검색 결과에 악성 지시를 포함시키고 잘못된 답변을 유도하는 공격, LLM 기반 이메일 도우미의 CVE-2024-5184 취약점을 악용해 민감 정보에 접근하고 이메일 내용을 조작하는 공격이 포함된다. 이력서에 나눠 숨긴 지시를 모델이 함께 처리하게 해 실제 이력서 내용과 달리 긍정적인 추천을 얻는 페이로드 분할, 이미지에 악성 프롬프트를 숨기는 멀티모달 인젝션도 사례로 든다. 겉보기에 의미 없는 문자열을 덧붙여 안전장치를 우회하는 적대적 접미사 공격, 여러 언어를 쓰거나 Base64·이모지 등으로 지시를 인코딩해 필터를 피하는 공격도 제시된다.

참고 자료:

관련 프레임워크와 분류 체계: