프롬프트 인젝션
prompt injection
뜻과 개념
외부 문서 등의 지시가 모델의 원래 작업이나 권한 경계를 바꾸려는 공격입니다.
어떻게 작동하나요?
프롬프트 인젝션은 AI가 처리해야 할 자료에 섞인 지시가 원래 작업이나 권한 경계를 흔드는 문제입니다. 사용자가 직접 입력하는 경우뿐 아니라 웹페이지, 문서, 검색 결과처럼 외부에서 가져온 자료를 통해 간접적으로 발생할 수도 있습니다.
검색한 문서의 내용은 분석 대상이어야 하지만 그 안의 문장이 시스템 지시처럼 받아들여지면 작업이 다른 방향으로 진행될 수 있습니다. 특히 AI가 비공개 자료를 읽거나 외부로 메시지를 보낼 수 있다면 잘못된 판단이 단순한 답변 오류를 넘어 실제 동작으로 이어질 수 있습니다.
왜 알아야 하나요?
이 문제는 프롬프트 한 줄을 잘 쓰는 것만으로 평가하기 어렵습니다. 모델이 어떤 자료를 읽고 어떤 도구를 호출할 수 있는지까지 포함한 시스템 설계의 문제입니다. 기능이 많을수록 각 기능에 허용한 권한과 데이터 흐름을 구체적으로 확인해야 합니다.
실무에서 적용하는 방법
외부 자료는 지시가 아닌 자료로 취급하도록 구조를 나누고, 도구 실행 전 입력 값과 업무 권한을 별도로 검사합니다. 읽기 작업과 변경 작업을 분리하고, 작업에 필요하지 않은 비밀 정보나 외부 전송 기능은 연결하지 않는 것이 좋습니다.
중요한 변경은 사람이 검토할 수 있게 하고, 실행 기록을 남겨 어떤 자료가 어떤 동작에 영향을 주었는지 추적합니다. 평범한 정상 입력뿐 아니라 외부 문서가 작업 방향을 바꾸려는 상황도 시험해야 합니다. 차단 문구 하나가 통과했다고 전체 시스템이 안전하다고 결론 내리지 않습니다.
실무에서는 이렇게 봅니다
웹 자료를 읽어 보고서를 쓰는 보조 도구를 가정해 보겠습니다. 웹페이지 안에 보고서 작성과 무관한 요청이 있어도 자료의 일부로 취급해야 합니다. 이 도구에 고객 명단 접근과 외부 발송 권한까지 함께 주면 사고 범위가 커질 수 있으므로 보고서 작성에 필요한 자료와 기능만 제공하는 설계가 적절합니다.
주의할 점
RAG나 파인튜닝을 도입했다고 프롬프트 인젝션이 자동으로 해결되는 것은 아닙니다. 위험한 문장을 걸러내는 필터도 여러 방어 수단 중 하나이며, 출력 검증과 최소 권한 같은 통제를 대신하지 않습니다. 원래 업무에 허용되지 않은 동작은 모델의 설명이 그럴듯해도 실행하지 않아야 합니다.
자주 묻는 질문
외부 문서를 읽기만 하는 AI도 영향을 받나요?
가능합니다. 도구 실행 권한이 없어도 요약 내용이 왜곡되거나 원래 요청을 따르지 않는 문제가 생길 수 있습니다. 연결된 기능에 따라 피해의 형태와 범위가 달라집니다.
‘다른 지시를 무시하라’고 쓰면 충분한가요?
충분한 방어로 보기 어렵습니다. 자료와 지시의 구분, 실행 권한 검사, 민감한 행동의 승인과 기록을 함께 설계해야 합니다.