TL;DR
Coding Agent는 issue, README, 코드 주석을 지시문으로 읽기 때문에 HTML 주석, zero-width 문자, Bidi 제어문자, ANSI 시퀀스에 숨은 공격을 처리할 수 있습니다. 작성자는 이런 간접 프롬프트 인젝션을 찾는 의존성 없는 단일 파일 Python 스캐너 unveil을 만들었고, 발견 시 종료 코드 1을 반환하며 --json 옵션으로 CI에 연결할 수 있게 했습니다. 529개 agent bounty를 훑은 결과 73%가 허니팟이었고, React·CPython·Rust·VS Code·Linux·Electrum·Node·Kubernetes README 81KB 검사에서는 고위험 0건과 중위험 1건이 나왔습니다. 다만 패턴 기반 탐지라 새로운 표현을 놓칠 수 있고, 영어 규칙만 지원하며, 공격 문자열을 인용한 문서와 실제 공격을 구분하지 못하므로 sandbox를 대신하지는 않습니다.
실용적 조언
- untrusted issue, PR description, README를 Coding Agent에 넣기 전에 unveil을 실행하고, exit code 1이 나오면 에이전트 입력으로 전달하기 전에 숨은 Unicode·markup·ANSI 요소를 사람이 확인하는 흐름을 CI에 추가할 수 있습니다.
- AI를 향한 지시가 있다는 이유만으로 악성으로 처리하지 말고, 사람이 같은 내용을 볼 수 있는지와 숨은 텍스트가 system prompt·secret 재현을 요구하는지 분리해 판단해야 합니다.
섹션별 상세
이미지 분석

이미지는 unveil 저장소의 이름과 “Find text that hides from humans but speaks to machines”라는 설명을 보여줍니다. 본문에서 제시한 untrusted content 검사 도구의 정체와 용도를 직접 확인하게 해 주지만, 탐지 결과나 구현 세부사항은 포함하지 않습니다.
GitHub 저장소 henio828/unveil의 화면으로, 사람에게 숨겨졌지만 기계에는 전달되는 텍스트를 찾는 간접 프롬프트 인젝션 방어 스캐너라는 목적이 표시되어 있습니다.
용어 해설
- 간접 프롬프트 인젝션(Indirect Prompt Injection)
- — 사용자가 직접 입력한 프롬프트가 아니라 issue, README, 코드 주석처럼 에이전트가 읽는 외부 텍스트에 악성 지시를 심어 실행을 유도하는 공격입니다. 사람이 보는 내용과 에이전트가 처리하는 지시를 다르게 만들어 시스템 프롬프트나 비밀정보 유출을 노립니다.
- 제로 폭 문자(Zero-width Characters)
- — 화면에 거의 나타나지 않는 Unicode 문자로, 사람이 읽는 문장 사이에 추가 지시나 데이터를 숨길 때 사용됩니다. unveil은 이러한 문자를 찾아내고 Unicode tag 문자에 인코딩된 숨은 payload를 디코딩해 사람이 확인할 수 있도록 합니다.
- 양방향 텍스트 재정렬 제어문자(Bidi Override)
- — 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 읽는 순서를 바꾸는 Unicode 제어문자입니다. 소스에 표시되는 문자열의 순서를 사람이 예상하기 어렵게 만들 수 있어, 에이전트 공격에서 지시를 감추는 수단으로 쓰입니다.
- ANSI 이스케이프 시퀀스(ANSI Escape Sequence)
- — 터미널 출력의 색상이나 커서, 삭제 동작을 제어하는 문자 시퀀스입니다. 악성 텍스트에 포함되면 사람이 이미 본 내용을 화면에서 지우거나 덮어써 에이전트가 읽는 텍스트와 사람의 시각적 확인 결과를 다르게 만들 수 있습니다.
- 허니팟 패턴(Honeypot Signature)
- — 사람에게는 연구용 저장소라며 Pull Request 병합이 없다고 알리면서, 숨은 텍스트에서는 에이전트에게 system prompt를 붙여 넣으라고 지시하는 식의 모순된 문장 조합입니다. 게시물은 529개 agent bounty 중 73%가 이런 허니팟이었다고 전합니다.
언급된 도구
issue, README, 코드 주석 등 untrusted content에 숨은 간접 프롬프트 인젝션과 허니팟 패턴을 검사하는 의존성 없는 단일 파일 Python 스캐너
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.