Prompt injection is role confusion, and your MCP gateway can't see it

개요

Prompt injection은 텍스트의 스타일을 기반으로 권위를 부여하는 모델의 역할 혼란으로 재정의될 수 있으며, MCP(Managed Compute Platform) 게이트웨이는 이를 탐지하는 데 어려움을 겪습니다.

주요 내용

* Prompt Injection의 근본 원인: Prompt injection 공격은 다양한 형태로 나타나지만, 본질적으로 모델이 텍스트의 구조적 역할 태그가 아닌 스타일을 통해 권위를 부여하는 "역할 혼란" 문제로 귀결됩니다. 신뢰할 수 없는 텍스트를 권위 있는 소스에서 나온 것처럼 보이게 만들면 모델은 이를 따를 수 있습니다.
* 가장 강력한 공격 채널: 모델의 자체 추론 포맷 모방: 모델 자체의 Chain-of-Thought(CoT) 추론 과정을 모방하는 텍스트를 주입했을 때, 위조된 추론이 실제 추론보다 더 높은 "CoTness"를 가지며 jailbreak 성공률을 0%에서 약 60%로 크게 높였습니다. 추론 채널의 스타일을 제거하면 성공률은 약 10%로 감소했습니다. 이는 모델이 가장 신뢰하는 채널인 자신의 사고 과정을 위조하는 것이 가장 효과적임을 시사합니다.
* MCP 게이트웨이의 탐지 한계: 현재 MCP 게이트웨이는 주로 서버 접근 제어, OAuth, 감사 로그 등 권한 관리 기능에 집중하며, 도구 응답의 내용을 분석하여 위조된 추론 채널을 탐지하지 못합니다. 악성 페이로드는 모델의 컨텍스트로 직접 전달되어 읽히지 않습니다.
* Torii의 런타임 스캐너: Torii의 런타임 계층은 도구 응답 텍스트가 모델에 도달하기 전에 실시간으로 스캔하며, 다른 LLM에 의존하지 않는 결정론적 엔진을 사용하여 추론 채널 위조를 탐지합니다.
* 결정론적 탐지와 난독화 대응: 위조된 추론 채널은 <think> 태그, first-person scratchpad prose 등의 구조적 특징을 가지며, 이는 규칙 기반 스캐너로 탐지 가능합니다. 스캐너는 HTML 엔티티, URL 인코딩, 제로-위드 분할, 전체 너비 유니코드, 공백 패딩과 같은 다양한 난독화 기법에 대해 원시 텍스트와 정규화된 변형 모두를 스캔하여 높은 정밀도를 유지합니다.
* 탐지 성능: Torii의 런타임 스캐너는 Microsoft의 PyRIT jailbreak 데이터셋 및 Reversec의 spikee 사이버 보안 코퍼스를 기반으로 벤치마크했을 때, 이전에는 탐지하지 못했던 9가지 항목(CoT 위조, Markdown 이미지 유출, XSS, 인코딩된 주입 등)을 모두 성공적으로 탐지했으며, 무해한 데이터에 대해서는 제로(0)건의 오탐을 기록했습니다.
* 탐지의 한계: 복잡한 설득형 jailbreak(주입 표식 없는 철학적 또는 역할극 내러티브)나 Leetspeak, 글자 간격과 같은 일부 난독화 기법은 결정론적 패턴 매칭의 한계로 인해 현재 스캐너로 탐지되지 않습니다. 이러한 공격을 탐지하려면 의미론적 분류기가 필요하며, 이는 별도의 제품 결정 사안입니다.

시사점

Prompt injection은 블랙리스트로 관리할 수 있는 개별적인 속임수 목록이 아니라, 권위를 혼동시키는 구조적인 문제입니다. 이를 방어하기 위해서는 모델 자체보다는 도구 응답을 실제로 읽고 위조된 추론 채널을 모델 컨텍스트로 전달하지 않는 아키텍처상의 게이트웨이 설계가 중요합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions