OWASP 프롬프트 인젝션 — 최다 위협에 대응한다

OWASP 프롬프트 인젝션 — 최다 위협에 대응한다

프롬프트 인젝션(Prompt Injection) 은 LLM 애플리케이션 위협 1위예요. 사용자가 입력한 지시가 시스템 지시를 덮어써 모델을 오작동시키는 공격이죠.

직접 vs 간접 인젝션

  • 직접(Direct): 사용자가 채팅 창에 "이전 지시를 무시하고..." 같은 지시를 직접 입력.
  • 간접(Indirect): 이메일·웹페이지·문서처럼 앱이 검색해 가져온 콘텐츠에 악성 지시를 숨기는 공격. RAG 환경에서 특히 위험해요.

왜 어려운가요

LLM은 지시와 데이터를 '토큰'으로만 보아 구분하지 못해요. 전통 소프트웨어처럼 경계가 없으므로, 입력을 단순히 텍스트로 다루는 한 근본 방어가 어려워요.

대응 전략

  • 구조적 분리: 시스템 지시와 사용자 데이터를 명시적으로 분리하고, 검색 콘텐츠를 '데이터'로 취급한다고 프롬프트에 못박아요.
  • 입력 검증: 인젝션 패턴(단어 블랙리스트, 길이 제한)을 사전 검사해요.
  • 가드레일·출력 검증: 공격을 감지해 응답을 차단하거나 재작성해요.
  • 권한 최소화: 도구에 부여한 권한을 최소화해 유출 범위를 줄여요.

요점

단일 방어가 아니라 여러 계층을 겹쳐 위험을 낮추는 게 핵심이에요. 프롬프트 인젝션은 완전히 '막는' 문제라기보다 '완화'하는 문제로 보는 게 현실적이에요.

더 알아보기