툴이 실행되기 전에 수신 프롬프트뿐 아니라 매 턴을 인젝션 여부로 스캔합니다. VeriSwarm Guard는 두 개의 탐지 계층 — 빠른 구조적 패턴 분석과 이어지는 자체 호스팅 DeBERTa 분류기 — 을 모두 자체 인프라 내에서 실행합니다. 서드파티 탐지 API 호출도 없고, 판정을 받기 위해 요청 페이로드가 경계를 벗어나는 일도 없습니다.
강화된 시스템 프롬프트와 깨끗한 레드팀 평가는 실제 프로덕션에서 정말 중요한 공격을 막지 못합니다. 에이전트가 지원 티켓을 읽고, 티켓 본문에 숨겨진 지시가 청구 기록을 조회해 그 결과를 웹훅으로 전달하라고 지시합니다. 모델은 자신의 시스템 프롬프트를 절대 위반하지 않습니다 — 그저 툴을 호출할 뿐입니다. 툴이 실행됩니다. 데이터가 빠져나갑니다. 탐지는 사용자가 입력한 내용뿐 아니라, 바로 툴 호출을 일으키려는 텍스트에 대해서도 이루어져야 합니다.
프롬프트 계층 방어가 이 공격 경로를 놓치는 이유에 대한 전체 논거는 프롬프트 인젝션은 LLM에서 멈추지 않는다. 툴 호출을 통해 흘러간다..
정규식 기반이며 모델 비용이 없습니다. 프로토콜 수준의 조작을 탐지합니다 — 채팅 형식 구분자 인젝션(가짜 <|im_start|>, [INST] 등, 하나의 메시지가 어디서 끝나고 다른 메시지가 어디서 시작하는지 모델을 혼동시키려는 유사한 마커)와 base64 또는 유사한 인코딩 내부에 밀반입된 페이로드를 포착합니다. 이는 구조적 신호이지 키워드 일치가 아니므로, 워드리스트라면 완전히 놓칠 프로토콜 트릭에도 반응합니다.
DeBERTa 기반 모델(protectai/deberta-v3-base-prompt-injection-v2)은 한 번만 로드되어 ONNX Runtime을 통해 로컬로 제공됩니다. 표면적인 패턴이 아니라 의도를 읽어내므로, 재구성된 공격, 다국어 인젝션, 또는 알려진 패턴과 일치하지 않을 만큼 새로운 회피 기법도 포착합니다. 모델 로드에 실패하면 탐지는 페일오픈 대신 구조적 분석으로 폴백합니다.
두 계층은 순서대로 실행됩니다 — 먼저 구조적 분석. 비용이 더 저렴하고 가장 노골적인 공격을 즉시 잡아내기 때문입니다. 그다음, 구조적 분석에서 아직 플래그가 지정되지 않은 모든 것에 대해 분류기가 실행됩니다.
POST /v1/suite/guard/scan는 다음과 같은 본문 { "text": "...", "scan_injection": true, "scan_moderation": true }을 받아 { "flagged": bool, "injection": {...}, "moderation": {...}, "summary": "..." }을 반환합니다. injection 객체에는 일치한 카테고리, 신뢰도 점수, 그리고 어느 계층이 판정을 내렸는지가 담깁니다. 툴 호출을 유발할 수 있는 텍스트 — 사용자 메시지, 지식 베이스에서 가져온 콘텐츠, 업스트림 연동에서 온 웹훅 페이로드 등 — 에는, 그 호출이 실행되기 전에 이 API를 호출하세요.
Guard Proxy는 VeriSwarm의 투명한 MCP 인터셉션 계층이며, 인젝션 스캔은 그 파이프라인의 고정된 단계입니다. 툴 서버에서 돌아오는 모든 응답은 에이전트에 도달하기 전에 PII 토큰화 및 정책 적용과 함께 인젝션 시도 여부를 확인받습니다. 에이전트의 MCP 클라이언트를 툴 서버로 직접 향하게 하는 대신 프록시로 향하게 하세요 — 에이전트 측 코드 변경은 전혀 없습니다.
턴 단위 스캔은 단일 메시지에 나타나는 인젝션 시도를 포착합니다. 일부 공격은 그렇지 않습니다 — 대화 전체에 걸쳐 위험을 축적하며, 시스템 프롬프트를 추출하거나 카나리 값을 조금씩 유출하려는 서서히 진행되는 시도입니다. Session Sentry는 턴 단위가 아니라 세션 전체에 걸쳐 위험을 점수화하는 보완 계층으로 작동하며, 위에서 설명한 구조적 계층 및 DeBERTa 계층을 대체하는 것이 아니라 그와 함께 작동합니다.
인젝션 탐지는 조작된 툴 호출이 실행되는 것을 막습니다. 이는 정당한 툴 호출이 해서는 안 될 PII를 실어 나를 때 발생하는 일과는 관련은 있지만 별개의 문제입니다 — 자세한 내용은 AI 에이전트의 데이터 유출을 막는 방법 에서 다룹니다. Guard는 두 검사를 동일한 파이프라인에서 실행합니다.
페이로드가 위험하려면 반드시 탈옥(jailbreak)처럼 보일 필요는 없기 때문입니다. 지원 티켓이나 스크래핑된 웹 페이지에 숨겨진 지시는 모델 자신의 시스템 프롬프트는 전혀 건드리지 않으면서도, 어떤 툴이 어떤 인자로 누구의 데이터에 대해 호출되는지를 바꿔놓을 수 있습니다. 호출이 툴 서버에 도달할 즈음에는 모델은 이미 루프에서 벗어나 있고, 실행되는 것은 프로토콜입니다. 툴 호출이 실행되기 전에 응답을 스캔하면 이 부류의 공격을 잡아내지만, 수신 프롬프트만 스캔해서는 잡아내지 못합니다.
레이어 1은 구조적 분석입니다 — 채팅 형식 구분자 인젝션(메시지 경계에 대해 모델을 혼동시키려는 가짜 <|im_start|> 또는 [INST] 마커)과 base64/인코딩 밀반입 같은 프로토콜 수준 조작을 정규식 기반으로 탐지합니다. 빠르며 의미론적 이해조차 필요 없는 공격도 잡아냅니다. 레이어 2는 텍스트의 실제 의도를 읽어내는 머신러닝 분류기로, 재구성된 공격, 다국어 인젝션, 그리고 패턴 매칭만으로는 놓치는 새로운 회피 기법을 포착합니다.
DeBERTa 기반 분류기(protectai/deberta-v3-base-prompt-injection-v2)로, VeriSwarm 자체 인프라 내에서 로컬로 로드되어 ONNX Runtime을 통해 제공됩니다. 서드파티 인젝션 탐지 API로 나가는 호출은 전혀 없으며, 판정을 받기 위해 요청 페이로드가 테넌트 경계를 벗어나는 일도 없습니다 — 탐지는 완전히 자체 완결적입니다. 어떤 이유로든 모델 로드에 실패하면, 탐지는 페일오픈 대신 구조적 분석만으로 폴백합니다.
네 — POST /v1/suite/guard/scan은 { "text": "...", "scan_injection": true, "scan_moderation": true }를 받아 { "flagged": bool, "injection": {...}, "moderation": {...}, "summary": "..." }를 반환합니다. injection 필드에는 카테고리, 신뢰도 점수, 그리고 어느 계층(structural 또는 ml)이 판정을 내렸는지가 담깁니다. 신뢰할 수 없는 텍스트 — 사용자 메시지, RAG 콘텐츠, 웹훅 페이로드 등 — 에는 툴 호출을 유발할 수 있는 단계에 도달하기 전에 이 API를 호출하세요.
이미 Guard Proxy를 실행 중이라면 필요 없습니다. Guard Proxy는 VeriSwarm의 투명한 MCP 인터셉션 계층이며, 프롬프트 인젝션 스캔은 그 고정 파이프라인의 한 단계입니다. 툴 서버에서 돌아오는 모든 응답은 에이전트에 도달하기 전에 PII 토큰화 및 정책 적용과 함께 인젝션 시도 여부를 확인받습니다 — 에이전트 측 코드 변경은 전혀 없습니다. 직접 호출하는 스캔 API는 프록시 경로 밖에서 텍스트를 직접 확인하고 싶은 경우를 위해 제공됩니다.
네, 별도의 보완 계층으로 탐지합니다. Session Sentry는 단일 턴을 개별적으로 평가하는 대신, 대화 전체에 걸쳐 위험 신호 — 카나리 토큰 노출, 시스템 프롬프트 추출 시도 등 — 를 누적합니다. 이를 통해 개별 메시지 하나만으로는 걸리지 않을 서서히 진행되는 유출 시도를 포착합니다. 턴 단위의 구조적 계층 및 DeBERTa 계층을 대체하는 것이 아니라, 그와 함께 작동합니다.
Guard — 스캔 기반 인젝션 탐지와 Guard Proxy의 자동 스캔을 포함 — 는 Max 요금제 기능입니다. Gate의 무료 등급은 먼저 신뢰 점수와 이벤트 가시성을 제공합니다. 시행(enforcement)이 켜지는 것은 Guard부터입니다.
Guard의 인젝션 탐지 — API와 Guard Proxy의 자동 스캔 — 는 Max 요금제 기능입니다. Gate의 무료 등급은 먼저 신뢰 점수와 이벤트 가시성을 제공합니다.