프롬프트 인젝션
프롬프트 인젝션은 AI 에이전트가 읽는 콘텐츠 — 웹 페이지, PDF, 제품 리뷰, 수신 이메일 — 안에 숨겨진 지시를 모델이 마치 당신이 직접 입력한 것처럼 따르는 공격입니다. 위험해지는 것은 에이전트가 도구를 갖게 된 다음입니다. 채팅 창에서는 무해한 문장이, 모델이 행동할 수 있게 되는 순간 보내고 게시하고 지출하라는 명령으로 바뀝니다.
프롬프트 인젝션이 작동하는 방식
에이전트의 컨텍스트 윈도는 당신이 쓴 지시와 에이전트가 가져온 텍스트를 구분하지 않습니다. 둘 다 같은 흐름의 토큰으로 도착합니다. 그래서 에이전트가 경쟁사 랜딩 페이지를 요약하려고 읽을 때 그 페이지에 독자가 아니라 모델을 향한 문장이 들어 있으면, 모델에게는 따르지 말아야 한다고 판단할 구조적 수단이 없습니다. 이것은 특정 제품의 결함이 아닙니다. 현재 모델이 입력을 받아들이는 방식 자체의 성질이고, 그래서 패치는 없고 봉쇄만 있습니다.
공격 표면은 결국 다른 사람이 쓴 텍스트를 에이전트가 받아들이는 모든 지점이며, 마케팅 에이전트에게는 그게 업무의 대부분입니다.
- 수집한 모든 것 — 경쟁사 페이지, 검색 결과, 답을 만들려고 읽는 문서.
- 업로드된 모든 것 — PDF 지식 베이스, 스프레드시트, 글자가 들어간 이미지.
- 사용자가 만든 모든 것 — 앱스토어 리뷰, 포럼 스레드, 지원 티켓, 폼 제출.
- 들어오는 모든 것 — 이메일, 채팅 메시지, 웹훅 페이로드, 심지어 캘린더 초대 제목까지.
비밀을 말하지 않는 모델은 방어가 아니다
흔한 직관은 잘 훈련된 모델이라면 그냥 거절하리라는 것입니다. 노골적인 표현에는 실제로 자주 거절합니다. 2026년 7월 자사 프로덕션 컨테이너 하나를 대상으로 승인된 침투 테스트를 진행했고 패턴은 분명했습니다. API 키를 출력하라는 주입 지시는 거절됐습니다. 반면 같은 키를 값으로 적어 내는 대신 명령 안의 환경 변수로 참조하는, 일상적인 연결 확인처럼 꾸민 주입 지시는 망설임 없이 실행됐고 자격 증명은 머신 밖으로 나갔습니다.
이 비대칭이 교훈의 전부입니다. 비밀에 대한 모델의 신중함은 비밀을 소리 내어 말해야 하는 경로를 지킵니다. 에이전트가 대신 명령을 실행하면 셸이 값을 치환하고 모델은 그 값을 한 번도 보지 못하므로, 모델의 판단이 붙잡을 대상 자체가 없습니다. 모델이 악의를 알아보는 데 의존하는 방어는 문이 여러 개인 건물에서 하나만 지키는 것이고, 표현을 바꾸면 나머지 문으로 들어옵니다. 이걸 유출하라고 하면 거절하고, 이 설정 단계를 실행하라고 하면 따릅니다.
실제로 위험을 줄이는 것
이 취약점은 훈련으로 없앨 수 없으므로 쓸모 있는 완화책은 구조적인 것들입니다. 하나같이 주입이 성공했다고 가정하고, 그것이 닿을 수 있는 범위를 제한합니다.
- 자격 증명을 에이전트 손이 닿지 않는 곳에 두세요. 에이전트 환경이 한 번도 보유하지 않은 키는 거기서 빼낼 수 없습니다. 자격 증명을 보관하는 프록시를 거쳐 모델 호출을 보내는 것이 이 경로를 좁히는 대신 닫는 유일한 완화책입니다.
- 모든 자격 증명에 최소 권한을. 토큰이 추론만 하거나 속성 하나만 읽을 수 있다면 유출의 대가는 계정이 아니라 청구서입니다.
- 외부 네트워크 접근을 제한하세요. 알려진 호스트 목록에만 닿을 수 있는 에이전트는 속아서 모은 것을 보낼 곳이 훨씬 적습니다.
- 건물 밖으로 나가는 동작에 게이트를 두세요. 게시되고 보내지고 지출되는 모든 것 앞의 승인 게이트는 성공한 주입을 고객이 읽는 게시물이 아니라 당신이 거절하는 초안으로 바꿉니다.
- 에이전트의 출력도 신뢰할 수 없는 입력으로 다루세요. 한 에이전트의 요약이 다른 에이전트의 맥락이 될 때 주입된 지시도 함께 이동합니다.
마케팅 에이전트에서의 프롬프트 인젝션
마케팅 에이전트는 이 위험에 유난히 가까이 있습니다. 낯선 사람이 쓴 것을 읽는 일이 예외가 아니라 업무 자체이기 때문입니다. 리서치 담당은 경쟁사 사이트를 수집합니다. 피드백 담당은 앱스토어 리뷰를 읽습니다. 커뮤니티 담당은 포럼 스레드를 읽습니다. 하나같이 회사 밖의 누군가가 텍스트를 고르는 채널이고, 어느 것도 에이전트가 존재하는 이유를 없애지 않고서는 잠글 수 없습니다.
AgentCeres — agentceres.com의 AI Growth Officer — 가 그렇게 만들어진 이유가 여기 있습니다. 열린 웹을 읽는 전문 에이전트와 읽은 것에 따라 행동할 권한은 분리되어 있고, 모든 외부 발신 동작은 사람의 클릭을 기다립니다. 널리 읽는 것과 자유롭게 게시하는 것은 서로 다른 권한이며, 둘 다 가진 에이전트는 적대적인 웹 페이지 한 장 거리에서 그 둘을 함께 쓰게 됩니다. 자기 계정에서 에이전트에게 얼마나 여지를 줄지 고민 중이라면 AI 에이전트가 대신 소셜 미디어에 게시하게 해도 될까가 같은 질문을 반대편에서 다룹니다. 둘 아래에 깔린 일반 원칙은 human-in-the-loop입니다.
FAQ
- 프롬프트 인젝션을 쉽게 설명하면 무엇인가요?
- 당신이 아니라 AI에게 말을 거는 텍스트입니다. 에이전트가 읽는 페이지나 리뷰나 이메일에 지시가 들어 있으면 모델이 그것을 따를 수 있습니다. 읽어 들인 것이 당신의 지시와 같은 흐름으로 도착하고, 어느 쪽이 어느 쪽인지 표시하는 장치가 없기 때문입니다. 결과의 크기는 전적으로 에이전트에게 무엇이 허용됐는지에 달려 있습니다. 도구가 없으면 성가신 정도지만, 보내고 게시하고 지출할 수 있다면 실제 공격입니다.
- 프롬프트를 잘 쓰면 프롬프트 인젝션을 막을 수 있나요?
- 막을 수 없습니다. 콘텐츠에서 발견한 지시는 무시하라고 모델에 일러 두면 문턱은 올라가지만 구멍은 닫히지 않습니다. 공격자는 당신의 지시 뒤에 글을 쓸 수 있고, 원하는 길이와 원하는 표현으로 모델에게 직접 말을 걸 수 있기 때문입니다. 프롬프트 강화는 여러 층 가운데 하나로 다루되 의지하는 통제로 삼지 마세요. 실제로 버티는 층은 모델이 속아 넘어가도 살아남는 것들입니다. 권한을 좁힌 자격 증명, 좁힌 네트워크, 그리고 되돌릴 수 없는 일을 승인하는 사람입니다.
- 에이전트가 읽기만 하고 쓰지 않으면 위험이 없나요?
- 낮아지지만 0은 아닙니다. 읽기 전용 에이전트도 자기가 볼 수 있는 것 — 설정, 격리가 허술하면 다른 고객의 데이터, 실행 환경에 있는 무엇이든 — 을 드러내도록 유도될 수 있고, 자기 출력을 오염시키게 만들어 하류의 에이전트나 사람이 공격자가 고른 결론에 따라 움직이게 할 수도 있습니다. 영향 범위는 권한과 함께 줄어들지만, 신뢰할 수 없는 것을 전혀 읽지 않게 되기 전까지 사라지지 않으며 쓸모 있는 에이전트에게 그런 순간은 오지 않습니다.
An AI growth team that runs this for you
AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.