AI좌표 편집 기록

프롬프트 인젝션이란: 외부 문서가 AI 지시를 바꾸는 공격

프롬프트 인젝션은 모델 입력에 섞인 공격자 문구가 신뢰된 지시처럼 해석되는 문제이며 문구 필터 하나가 아니라 시스템 권한 경계로 방어해야 한다.

외부 문서의 악성 지시가 에이전트에 들어오지만 권한과 승인 경계에서 차단되는 그림

검색형 AI는 웹, 파일, 이메일을 읽는다. 그 콘텐츠 안에 '이전 지시를 무시하고 비밀을 보내라'는 문장이 있어도 사람에게는 단순 데이터지만 모델은 지시로 해석할 수 있다. 완벽한 탐지보다 공격이 성공해도 민감 정보와 외부 행동에 닿지 못하게 설계하는 것이 핵심이다.

AI 핵심 지식 52편 중 46편입니다. 제품 화면이 바뀌어도 남는 원리와 판단 기준을 다룹니다.

프롬프트 인젝션 공격 경로

경로공격 입력통제 지점
직접 주입사용자가 대화에 악성 지시 입력정책 우선순위·도구 인자 검증
간접 주입웹·문서·메일에 숨은 지시콘텐츠 격리·출처 표시
행동·유출도구 호출 또는 비밀 출력 시도최소 권한·승인·출력 차단
웹·메일·파일의 간접 주입이 모델, 도구, 민감 데이터로 이어지는 공격 경로

주입 방어 설계 순서

  1. 시스템 지시와 외부 콘텐츠의 신뢰 수준을 분리한다.
  2. 에이전트의 데이터·도구·네트워크 권한을 최소화한다.
  3. 도구 호출 인자를 허용 목록과 스키마로 검증한다.
  4. 공격 표본과 정상 문서 오탐을 함께 반복 평가한다.

공격의 핵심은 지시와 데이터의 경계 혼동이다

언어 모델에는 시스템 규칙, 사용자 요청, 검색 문서가 모두 텍스트 토큰으로 들어갈 수 있다. 애플리케이션은 우선순위를 지정하지만 모델이 모든 상황에서 완벽히 구분한다고 가정할 수 없다. 직접 주입은 사용자가 악성 지시를 입력하고, 간접 주입은 모델이 읽는 외부 문서에 지시를 숨긴다. 공격 문구는 사람이 볼 수 있는 본문뿐 아니라 메타데이터, 주석, 보이지 않는 영역, 도구 반환값에 있을 수 있다.

검색 결과를 프롬프트에 넣을 때 '신뢰하지 않는 인용 자료'로 명시하고 출처 경계를 유지한다. 문서 속 행동 지시는 실행 명령이 아니라 분석 대상 데이터로 취급한다. 이 내용을 적용할 때는 프롬프트 인젝션이란: 외부 문서가 AI 지시를 바꾸는 공격이라는 이름만 문서에 적지 말고, 입력이 무엇인지, 어떤 변환이나 판단이 일어나는지, 결과를 누가 확인하는지, 실패하면 어디에서 멈추는지를 함께 기록해야 한다. 그래야 같은 용어를 쓰면서 서로 다른 시스템을 상상하는 문제를 줄일 수 있다.

콘텐츠 격리, 최소 권한, 인자 검증, 사람 승인으로 구성된 다층 방어

비밀과 권한이 같은 문맥에 있으면 피해가 커진다

주입 문구가 모델 행동을 바꾸더라도 읽을 수 있는 비밀과 호출할 수 있는 도구가 없으면 피해 범위는 줄어든다. 반대로 광범위한 파일, 이메일, 고객 데이터와 발송 권한을 한 에이전트에 모으면 하나의 문서가 유출과 외부 행동을 연결할 수 있다. 비밀을 프롬프트에 직접 넣지 않고 전용 서비스가 필요한 결과만 반환하게 하며, 읽기와 쓰기 자격을 분리하고 작업별 허용 대상을 제한한다.

메일 요약 에이전트는 읽기 전용으로 두고 답장 발송은 승인된 본문과 수신자만 받는 별도 도구로 분리한다. 검색 문서가 임의 URL 전송이나 다른 계정 조회를 요구해도 인터페이스가 허용하지 않게 한다. 이 내용을 적용할 때는 프롬프트 인젝션이란: 외부 문서가 AI 지시를 바꾸는 공격이라는 이름만 문서에 적지 말고, 입력이 무엇인지, 어떤 변환이나 판단이 일어나는지, 결과를 누가 확인하는지, 실패하면 어디에서 멈추는지를 함께 기록해야 한다. 그래야 같은 용어를 쓰면서 서로 다른 시스템을 상상하는 문제를 줄일 수 있다.

입력 필터보다 행동 검증이 마지막 방어선이다

공격 문구의 표현은 무한히 바뀔 수 있어 '이전 지시를 무시하라' 같은 문자열만 막는 필터는 쉽게 우회된다. 분류기와 휴리스틱은 위험 신호를 줄 수 있지만 정상 문서의 보안 교육 문구를 오탐할 수도 있다. 실제 도구 호출 직전에 작업 목적, 대상, 인자, 권한, 데이터 흐름을 검증한다. 민감 데이터가 외부 목적지로 나가거나 새로운 권한을 요청하는 행동은 사람 승인 또는 정책 엔진에서 중단한다.

도구별 JSON 스키마와 대상 허용 목록을 만들고 자유형 셸·URL·수신자 입력을 피한다. 호출 전후에 민감 값과 예상 밖 목적지를 검사하고 실패를 사용자 지시로 덮어쓰지 못하게 한다. 이 내용을 적용할 때는 프롬프트 인젝션이란: 외부 문서가 AI 지시를 바꾸는 공격이라는 이름만 문서에 적지 말고, 입력이 무엇인지, 어떤 변환이나 판단이 일어나는지, 결과를 누가 확인하는지, 실패하면 어디에서 멈추는지를 함께 기록해야 한다. 그래야 같은 용어를 쓰면서 서로 다른 시스템을 상상하는 문제를 줄일 수 있다.

평가는 공격 성공과 정상 업무 보존을 함께 본다

공격 문장을 막는 데만 집중하면 정상 문서의 인용이나 번역 요청까지 거부하는 과잉 방어가 생긴다. 직접·간접·난독화·다단계 주입 사례와 함께 정상적인 보안 문서, 코드, 이메일을 평가한다. 성공 여부는 모델이 공격 문구를 반복했는지가 아니라 비밀 접근, 정책 위반 도구 호출, 외부 전송, 승인 우회가 실제로 일어났는지로 판단한다. 모델과 검색원, 도구가 바뀔 때 회귀 시험을 반복한다.

테스트 환경에는 가짜 비밀과 격리된 도구를 두고 공격 경로를 끝까지 재현한다. 정상 과제 완료율과 거부율도 함께 보고 방어 변경이 업무를 얼마나 훼손하는지 확인한다. 이 내용을 적용할 때는 프롬프트 인젝션이란: 외부 문서가 AI 지시를 바꾸는 공격이라는 이름만 문서에 적지 말고, 입력이 무엇인지, 어떤 변환이나 판단이 일어나는지, 결과를 누가 확인하는지, 실패하면 어디에서 멈추는지를 함께 기록해야 한다. 그래야 같은 용어를 쓰면서 서로 다른 시스템을 상상하는 문제를 줄일 수 있다.

판단 체크리스트

  1. 외부 콘텐츠를 신뢰된 지시와 구조적으로 분리했는가
  2. 비밀·도구·네트워크 권한을 작업 최소 범위로 제한했는가
  3. 도구 인자와 목적지를 실행 직전에 검증하는가
  4. 공격 성공과 정상 과제 오탐을 함께 평가하는가

자주 생기는 오해

  • 시스템 프롬프트를 강하게 쓰면 해결된다 — 지시는 필요하지만 최소 권한, 격리, 도구 검증, 승인 같은 시스템 통제가 함께 있어야 한다.
  • 공격 문구를 탐지하면 완전히 막을 수 있다 — 표현 변형과 간접 경로가 많아 탐지 실패를 가정하고 피해 범위를 제한해야 한다.

프롬프트 주입 방어 경계

상황해석다음 행동
외부 문서가 새 행동을 지시신뢰하지 않는 간접 지시내용은 인용하되 행동 명령으로 채택하지 않는다
민감 정보 전송을 요구데이터 유출 경로권한·목적지 검증에서 중단한다
정상 보안 문서를 분석공격 문구와 형태가 유사한 정상 과제실제 행동 없이 안전하게 분석한다

자주 묻는 질문

RAG도 프롬프트 인젝션에 취약한가?

검색 문서가 모델 입력에 들어가므로 간접 주입 경로가 될 수 있다. 출처 격리와 행동 통제가 필요하다.

문서를 요약만 하면 안전한가?

읽기 전용이고 비밀·외부 행동 권한이 없다면 피해가 줄지만 민감 정보 노출과 왜곡은 여전히 검토한다.

샌드박스는 무엇을 막나?

실행 가능한 파일·네트워크·시스템 자원을 격리해 공격 성공 시 영향 범위를 제한한다.

사용자 확인만으로 충분한가?

승인 화면이 공격 문구에 의해 조작되거나 내용이 불명확할 수 있어 최소 권한과 입력 고정이 함께 필요하다.

관련 좌표

작성·검증 정보

  • 작성·검토: AI좌표 편집부
  • 원문 확인일: 2026-07-27
  • 다음 재검토일: 2026-09-30
  • 재검토 조건: 원 논문의 정정·철회, 표준 정의 변경, 장기 평가에서 핵심 반례가 확인될 때

출처