웹페이지 내 숨겨진 프롬프트 인젝션을 차단한 AI 에이전트
Watched my AI agent block a prompt injection that was hiding inside a webpage
핵심 요약
AI 에이전트가 웹 검색 중 숨겨진 프롬프트 인젝션을 스스로 감지하고 차단한 사례를 공유하며 보안의 중요성을 강조함.
- 보안 위협 — 웹페이지 내 숨겨진 프롬프트 인젝션이 에이전트의 동작을 조작하려 함.
- 에이전트 방어 — 외부 콘텐츠를 신뢰하지 않고 별도의 보안 규칙을 설정하는 것이 필수적임.
- 구조적 대응 — 에이전트에게 자체적인 안전 매개변수를 설계하게 하거나 샌드박스 환경을 활용함.
- 웹 앱 비유 — 외부 데이터를 사용자 입력처럼 취급하여 보안 인프라를 구축해야 함.
Claude를 사용해 Model Context Protocol 관련 조사를 하던 중 로드맵 페이지 몇 곳에서 정보를 가져오라고 시켰습니다.
에이전트가 돌아와서 가장 먼저 한 말은 페이지 콘텐츠 안에 숨겨진 가짜 시스템 알림을 발견했다는 것이었습니다. 그 알림은 에이전트에게 다른 행동을 하도록 유도하고 있었죠. 에이전트는 그 지시를 따르기를 거부하고 저에게 바로 알려주었습니다.
제가 무엇을 보고 있는지 이해하는 데 잠시 시간이 걸렸습니다. 인젝션은 제 프롬프트에 있던 게 아니었습니다. 에이전트가 웹에서 가져온 콘텐츠 안에 숨어 있었죠. 만약 에이전트가 페이지가 시키는 대로 그냥 했다면, 저는 무슨 일이 일어났는지 전혀 몰랐을 겁니다.
제 머릿속을 복잡하게 만드는 건 이게 얼마나 눈에 띄지 않는가 하는 점입니다. 에이전트에게 조사를 시키면 페이지를 가져오는데, 그 페이지가 당신의 지시를 덮어쓰려고 시도할 수 있습니다. 대부분의 사용자는 절대 알 수 없을 겁니다.
인터넷, GitHub 이슈, 이메일, 문서 등에서 정보를 읽어오는 모든 에이전트는 기본적으로 해당 콘텐츠를 신뢰할 수 없는 것으로 취급해야 한다는 사실을 깨달았습니다. 웹 앱에서 사용자 입력을 다루는 것과 똑같죠.
저는 에이전트에게 가져온 콘텐츠 내의 프롬프트 인젝션을 무시하라고 미리 말해두었기 때문에, 에이전트가 따를 규칙이 있었습니다. 하지만 제가 그런 생각을 했다는 게 운이 좋았던 것 같습니다.
혹시 이런 일을 겪으신 분 계신가요? 가져온 콘텐츠에 대해 실제 보안 가드레일을 구축하고 계신가요, 아니면 모델이 알아서 걸러주길 믿고 계신가요?


