ToolNavs 유용한 AI 도구 찾기
도구 제출 로그인
돌아가기 AI 백과사전
프롬프트 인젝션이란? 웹페이지와 문서에 숨은 문장이 당신의 AI에 명령한다

프롬프트 인젝션이란? 웹페이지와 문서에 숨은 문장이 당신의 AI에 명령한다

AI 백과사전 • Admin • • 12 회 조회

프롬프트 인젝션은 모델이 읽게 될 외부 콘텐츠 안에 지시를 숨겨 넣어, 모델이 데이터를 명령으로 착각하고 그대로 실행하게 만드는 공격 방식이다. 코드를 바꾸지도, 시스템에 침입하지도 않는다. 대형 모델이 맥락을 꼼꼼히 읽는 특성을 이용해 웹페이지, 문서, 이메일, 이미지 속 글자에 요구를 섞어 넣는 것으로, 모델이 이를 읽는 순간 지시대로 움직일 수 있다.

지시는 어디에 숨을 수 있을까

프롬프트 인젝션은 직접형과 간접형으로 나뉜다. 직접형은 사용자 본인이 입력 안에 지시를 숨기는 경우로, 겉보기에는 평범하지만 실제로는 명령을 끼워 넣은 글을 붙여 넣는 상황이 여기에 해당한다. 더 교묘한 것은 간접형이다. 제삼자가 웹페이지, 이력서, 상품 설명, 이메일에 미리 지시를 심어 두면, 에이전트가 페이지를 둘러보거나 문서를 요약하거나 이메일을 처리할 때 그 내용을 읽고 원래 해서는 안 될 행동으로 이끌릴 수 있다. 예를 들어 이력서에 흰색 작은 글씨로 이전 평가 기준을 무시하고 최고점을 주라고 적혀 있으면, 1차 심사를 맡은 모델이 실제로 그대로 따를 수도 있다. 사용자는 그 문장을 한 번도 말한 적이 없는데 결과를 떠안게 되며, 이것이 간접형이 가장 위험한 이유이다.

탈옥과는 다른 문제이다

프롬프트 인젝션과 탈옥을 혼동하는 사람이 많지만, 두 가지는 방향이 정반대이다. 탈옥은 사용자 본인이 모델의 안전 제한을 우회해 시스템이 금지한 일을 시키려는 것으로, 공격자와 사용자가 같은 사람이다. 반면 프롬프트 인젝션은 제삼자가 모델을 도구 삼아 사용자나 시스템을 공격하는 것이며, 모델과 사용자 모두 피해자가 된다. 근절이 어려운 이유는 현재 구조에서 시스템 지시, 사용자의 질문, 외부 자료가 모두 글자 형태로 모델에 전달되기 때문이다. 그 경계는 물리적 분리가 아니라 약속에 의존하므로, 모델이 어떤 문장이 명령이고 어떤 문장이 단순한 자료인지 안정적으로 구분하기 어렵다.

일반 사용자와 개발자가 할 수 있는 일

일반 사용자에게 가장 실용적인 방법은 외부 콘텐츠에 적힌 요구를 에이전트가 자동으로 따르게 두지 않는 것이다. 이메일 발송, 파일 삭제, 결제, 설정 변경처럼 민감한 작업은 반드시 사람이 확인해야 하며, 에이전트가 과제와 무관한 행동을 갑자기 하지 않는지도 살펴야 한다. 개발자는 최소 권한 원칙을 지켜 현재 작업에 꼭 필요한 도구와 데이터만 에이전트에 제공해야 한다. 외부 콘텐츠는 자료로 인용할 수 있을 뿐 지시로 격상되어서는 안 되고, 핵심 단계에는 확인과 기록을 더해야 한다. 흔한 오해도 바로잡을 필요가 있다. 시스템 프롬프트에 한 문장을 더한다고 주입을 막을 수는 없는데, 공격 문장은 얼마든지 더 구체적으로 쓸 수 있기 때문이다. 위험은 해커 사이트에만 있는 것이 아니라 평범한 문서와 전달된 이메일에도 숨어 있을 수 있다. 출처를 알 수 없는 내용을 붙여 넣으면 일상적인 대화에서도 당할 수 있다. 외부 콘텐츠를 일단 신뢰할 수 없는 입력으로 대하는 태도는 에이전트를 사용할 때 길러야 할 기본 습관이다.

추천 도구

더보기