본문 바로가기
AI2026년 6월 21일2분 읽기

프롬프트 인젝션, LLM 앱의 가장 흔한 취약점 방어

YS
김영삼
조회 1152
프롬프트 인젝션, LLM 앱의 가장 흔한 취약점 방어

핵심 요약

프롬프트 인젝션은 사용자 입력이나 외부 문서(RAG)에 "이전 지시 무시하고 ~해" 같은 명령을 심어 모델을 조종하는 공격이다. 완벽 차단은 어렵고, 신뢰 경계 분리(데이터는 데이터로 취급), 권한 최소화(모델이 위험 행동을 못 하게), 출력 검증으로 피해를 줄이는 게 현실적 방어다.

1. 방어 원칙

  • 외부 텍스트는 "지시"가 아니라 "데이터"로 구분해 전달(구분자·역할 분리)
  • 모델 출력으로 바로 위험 행동(삭제·송금·SQL) 금지 — 사람/규칙 검증 후
  • 도구(tool)에 최소 권한만 — 읽기/쓰기 분리, 화이트리스트

2. 특히 위험한 경우

상황위험
RAG 문서에 숨긴 지시간접 인젝션
출력으로 코드/SQL 실행임의 실행
에이전트가 외부 행동권한 오남용

3. 함정

  • "무시하라는 지시 무시해" 같은 프롬프트 방어는 우회된다 — 구조적 통제가 핵심
  • 모델 출력을 검증 없이 eval/실행하면 치명적
  • 민감 데이터를 컨텍스트에 넣으면 유출 위험

자주 묻는 질문

시스템 프롬프트로 완전히 막을 수 있나요?

없습니다. 프롬프트만으로는 우회가 가능합니다. 모델이 위험 행동을 아예 못 하도록 권한을 제한하고, 출력을 검증하는 구조적 방어가 필요합니다.

RAG 문서에도 공격이 들어오나요?

네, 간접(indirect) 인젝션입니다. 외부 문서에 숨긴 지시가 실행될 수 있으니, 검색된 텍스트를 명확히 "데이터"로 표시하고 신뢰할 수 없는 소스를 격리하세요.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록