MCP 서버의 ANSI 이스케이프 인젝션: 인간에게는 숨겨지고, AI에게는 보인다
·2024.11.27 20:53
MCP 서버에서 ANSI 이스케이프 시퀀스를 악용해 AI 에이전트에게만 보이는 숨겨진 명령을 주입하는 공격 기법이 공개됐다.
ANSI 이스케이프 시퀀스는 터미널에서 렌더링 시 사람 눈에 보이지 않지만, LLM은 원시 바이트를 그대로 읽는다. 이 격차를 이용해 AI 에이전트에게만 보이는 숨겨진 지시를 삽입하는 공격이 Model Context Protocol(MCP) 환경에서 현실적인 위협이 된다.
두 가지 공격 변형
- 직접 페치 AESI: 공격자가 ANSI 시퀀스와 숨겨진 지시를 포함한 URL을 MCP fetch 도구에 공급 → 서버가 콘텐츠를 가져와
result.content[].text등 모델 소비 필드에 릴레이 → 에이전트가 은닉 명령 실행 - 저장형 AESI: 페이로드를 노트·댓글·레코드 등 저장소에 기록해두면, 이후 다른 엔트리포인트가 해당 데이터를 읽을 때 폭발. 영속성·다중 피해자·교차 세션 위협으로 직접 페치보다 위험도가 높음
영향받는 MCP 필드는 tool results(result.content[].text), resource reads(result.contents[].text), prompt templates(result.messages[].content.text)이며, 이 외 필드는 실질적 공격 불가.
유사 사례로 CVE-2021-25743(kubectl)과 CVE-2024-52005(Git)가 이미 실제 제품에서 동일 클래스의 취약점으로 확인된 바 있다. 탐지 방법으로는 소스 접근 없이 실행 중인 서버에 조작된 입력을 보내 응답을 분석하는 DAST(Dynamic Application Security Testing) 스캐너 활용이 권장된다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.