sanitize 판정이 실제로 편집하는 것, 하지 않는 것, 그리고
툴이 반환하는 콘텐츠를 관리하는 통제.
1. mcp 표면에서 “sanitize”가 의미하는 것
에이전트가 MCP 게이트웨이를 통해 툴을 호출하면, 모든tools/call은 디스패치 전에 mcp 표면에서 평가됩니다. 매칭하는
규칙은 작성 가능한 firewall 판정 중 하나를
담을 수 있습니다 — allow, audit, deny, sanitize, pending_approval,
또는 cap_cost. sanitize 판정이 편집하는 것입니다:
- 그것은 호출의 인자(모델이 툴에 전달한 JSON)에 대해 시크릿 형태 탐지기 세트를 실행합니다.
- 각 매칭은
[redacted:openai_key]같은 정규 토큰으로 대체되고, 재작성된 인자가 서버로 전달되는 것입니다. - 툴은 여전히 실행됩니다 —
sanitize는 비차단, 통과 판정입니다. 에이전트는 크래시하지 않습니다; 그저 원시 시크릿을 결코 툴에 건네지 않습니다.
sk- 스타일 API 키,
Bearer 토큰, US SSN, Luhn 유효 카드 번호, 이메일)를 커버하며, 규칙은
매칭이 [redacted:custom]으로 렌더링되는 커스텀 정규식을 추가할 수
있습니다.
inbound 표면 — 요청이 선언하는 광고된
tools[], 어떤 툴이 호출되기
전 — 에는 편집할 호출 시 인자가 없으므로, 거기서 sanitize 판정은 닫힘으로
실패하고 deny로 에스컬레이션됩니다. Sanitize는 재작성할 라이브 인자
페이로드가 있는 곳 — mcp와 response 표면 — 에서만 의미가 있습니다.2. 하나의 구체적인 규칙
인자에 OpenAI 스타일 키를 담은 어떤 툴 호출이든 차단되는 대신 키가 정제된 채 전달되길 원한다고 합시다. 그 시크릿 형태를 탐지하도록 구성된sanitize
판정으로 mcp 표면에 규칙을 작성하세요. 이를 콘솔(Firewall → 정책 →
규칙)에서 수행하세요; 쓰기는 **Developer+**가 필요합니다.
규칙은, 개념적으로:
| 필드 | 값 |
|---|---|
| 표면 | mcp |
tool_name_glob | * (또는 한 서버로 범위 지정, 예: github.*) |
| 판정 | sanitize |
| Sanitize 프리셋 | 활성화할 시크릿 탐지기 |
sanitize 판정, 표면, 그리고 매칭된 규칙을 기록합니다.
3. 툴 결과는 신뢰할 수 없습니다 — 모델 응답에서 관리하세요
여기가 대부분의 “출력을 정화하라” 설정이 잘못하는 부분입니다.sanitize
판정은 인자만 건드립니다. 툴의 결과 — MCP 서버가 돌려보내는 텍스트나
JSON — 는 firewall 판정에 의해 결코 재작성되지 않습니다.
OrcaRouter는 툴 결과 콘텐츠를 모델에 대한 신뢰할 수 없는 입력으로
취급합니다. 손상되거나 포이즌된 MCP 서버는 데이터로 위장한 시크릿, PII
레코드, 또는 프롬프트 인젝션 페이로드를 반환할 수 있습니다. 그 콘텐츠에
대한 통제는 output 단계 — 모델의 응답, 모델이 툴 결과를 통합한 후
평가됨 — 의 guardrail입니다.
응답에 표면화되는 시크릿 잡기
응답에 표면화되는 시크릿 잡기
Secrets & API-Key Blocker 프리셋(카테고리
secrets)으로 guardrail을
첨부하세요. 그것은 AWS / OpenAI / GitHub 스타일 자격 증명을 차단합니다;
PEM 키, Slack/Stripe 토큰, Google 키, 그리고 JWT를 위해 Private Keys &
Cloud Tokens와 짝지으세요. output-stage 차단은 guardrail_blocked(HTTP
400)를 반환하고 요청의 할당량을 환불합니다.응답의 PII 편집
응답의 PII 편집
PII Shield 프리셋은 타입이 지정된 엔티티 —
[EMAIL], [SSN],
[CREDIT_CARD], … — 를 마스킹하여, 매칭된 값을 태그로 렌더링합니다.
Input-stage 마스킹은 모든 요청(스트리밍이든 아니든)에서 라이브입니다:
그것은 모델이 보기 전에 요청을 마스킹합니다. Output-stage 마스킹은
비스트리밍 응답에서만 모델 응답을 재작성합니다; 스트리밍 응답의
in-band 재작성은 로드맵에 있으므로, 마스크 규칙은 아직 스트리밍된 응답을
편집하지 않습니다.툴 결과에 타고 오는 인젝션 무력화
툴 결과에 타고 오는 인젝션 무력화
포이즌된 결과는 “이전 지시를 무시하라” 스타일 텍스트를 운반할 수
있습니다. Prompt-Injection Basics 안전 프리셋(키워드/정규식) 더하기
인젝션 의도를 점수화하는
llm_judge 규칙이 여기서의 통제입니다.
MCP 툴 포이즈닝과
프롬프트 인젝션을 참조하세요.Output 강제와 스트리밍. Output-stage block은 스트리밍과 비스트리밍
응답 둘 다에서 강제됩니다 — 스트림에서는, 매칭 시 차단이 스트림을 끊고
일반 차단 통지를 내보냅니다. Output-stage mask는 비스트리밍 응답에만
적용됩니다; 스트리밍 응답의 in-band 재작성은 로드맵에 있으므로, 마스크
규칙은 아직 스트리밍된 응답을 편집하지 않습니다.
4. 각 통제가 사는 곳
두 표면의 간결한 지도이며, 올바른 손잡이를 올바른 위험에 배선하도록:| 관리하려는 것… | 통제 | 어디서 |
|---|---|---|
| 툴 호출의 인자 내 시크릿 | Firewall sanitize 판정(mcp 표면) | Firewall 규칙 |
| 툴의 결과 내 시크릿 / PII / 인젝션 | output 단계의 Guardrail | Guardrails |
5. 첨부 및 관찰
두 통제 모두 워크스페이스 범위이고, 이름이 있으며, 정렬되어 있고, 둘 다 동일한 두 가지 방식으로 첨부됩니다:- 키별 — 에이전트가 사용하는 키에
firewall_policy_id(sanitize 규칙용)와guardrail_id(output 정책용)를 설정합니다. - 워크스페이스 기본값 — 정책/guardrail을 워크스페이스 기본값으로 표시하면 모든 키가 그것을 상속합니다.
6. 다음 단계
MCP 툴 허용 목록
서버를 기본 거부로 두고 검토한 툴만 허용합니다.
Firewall 규칙
전체 규칙 DSL — 판정, 글로브, args-match, sanitize 구성.
Guardrails
콘텐츠 정책, 프리셋, PII 엔티티, 그리고 output-stage 강제.
MCP 툴 포이즈닝
애초에 툴 결과를 신뢰할 수 없게 만드는 위협.
