tools/call을
디스패치 시 당신의 라이브 정책에 대해 평가합니다. 각 등록된 서버의 광고된
툴 세트는 첫 프로브에서 기준선화되고 드리프트를 다시 검사받습니다 —
툴 스키마가 승인된 기준선에서 변경되면, 서버는 admin이 다시 승인하거나
격리할 때까지 닫힘으로 실패합니다. 그리고 스킬
레이어는 모든 설치된 기능에 위험 밴드와 강제 모드를 할당하여 — 위험하거나
검토되지 않은 것을 사람이 승인할 때까지 격리합니다. 서버는 처음 백 번의
호출 동안 얌전히 굴어서 무료 통행권을 얻을 수 없습니다.
1. 왜 MCP 러그풀 방어에는 호출별 평가가 필요한가
연결 시 검토는 한 질문에 한 번 답합니다: 이 서버는 나열하기에 안전한가? 그것은 런타임에 실제로 중요한 질문에는 답할 수 없습니다: 이 특정 호출이, 이 특정 인자로, 지금 안전한가? OrcaRouter는 두 번째 질문에 답합니다. 게이트웨이를 가로지르는 모든tools/call은 실제 서버로 디스패치되기 전에 툴 이름과 인자를 손에 쥔 채
mcp 표면에서 평가됩니다. 판정은 매번 새로 계산되므로, 툴이 당신의
정책이 금지하는 무언가를 하기 시작하는 순간 — 인자로 시크릿을 유출, 거부된
호스트에 도달, 승인한 적 없는 기능 호출 — 그 호출은 멈춰지며, 같은 툴이
일 분 전에 어떻게 행동했는지와 무관합니다.
호출별 평가는 각 호출의 동작 — 인자 내용, 목적지, 소유하는 스킬의 위험
— 을 관리하므로, 툴이 동일한 시그니처를 유지하고 동작만 적대적으로 변해도
러그풀을 잡습니다. 스키마 드리프트 탐지(아래 §)는 보완 레이어입니다: 그것은
서버의 광고된 툴 세트 자체가 변경되는 경우를 잡습니다. 둘 다 실행됩니다.
mcp 표면에서 반환할 수 있는 판정:
allow / audit
서버로 전달됨.
audit는 호출을 로깅하고; allow는 조용히 있습니다.sanitize
툴 호출 인자가 먼저 편집된 채 전달됨(서버가 반환하는 것은 결코
재작성하지 않음).
deny
모델에 툴 오류(
firewall deny: …)로 반환되어, 에이전트가 크래시하는
대신 적응할 수 있습니다.pending_approval
호출이 실행될 수 있기 전에 사람이 해결하도록 보류됩니다.
2. 스킬 위험 밴드 격리
러그풀 방어의 후반부는 공급망을 다룹니다: 에이전트가 설치하는 스킬, 플러그인, 그리고 bring-your-own MCP 서버. 각각은 워크스페이스 범위 레코드로 등록되고, 결정론적 위험 엔진에 의해 스캔되며, 위험 밴드(low
/ medium / high / critical)와 강제 모드가 할당됩니다:
| 모드 | 런타임 효과 |
|---|---|
allow | 규칙 판정이 결정함; 스킬은 아무것도 추가하지 않음. |
quarantine | deny에 못 미치는 모든 것이 pending_approval로 에스컬레이션됨 — 툴은 사람이 승인한 후에만 실행됨. |
block | 스킬의 툴이 즉시 거부됨. |
auto_detected이며 검토될 때까지 격리됩니다 — 깨끗하게 스캔되었더라도,
자신의 권한으로 실행되지 않습니다. 그리고 스킬의 모드는 재스캔 시 더
엄격하게만 래칫됩니다: 당신이 설정한 block이나 quarantine은 매니페스트가
다시 제시되어도 조용히 완화되지 않습니다.
전체 스캐너, 점수 가중치, 그리고 신뢰 신호는
Firewall: 스킬을 참조하세요.
3. 툴 스키마 드리프트 탐지
전형적인 러그풀은 광고하는 것을 변경하는 등록된 서버입니다 — 툴을 추가, 툴의 입력 스키마를 변경, 설명을 교체. OrcaRouter는 성공적인 프로브에서 각 등록된 서버의 광고된 툴 세트를 기준선화하고 드리프트를 감시합니다.첫 프로브에서 기준선화
첫 성공적인 프로브가 서버 툴의 정규 해시를 기록합니다(발견 자세 하에서의
trust-on-first-use; 강제 자세 하에서는 기준선화되지 않은 서버가
admin이 초기 툴 세트를 승인할 때까지
pending으로 보류됩니다).드리프트는 닫힘으로 실패
이후 프로브에서, 정규 툴 세트가 승인된 기준선과 더 이상 일치하지 않으면
서버는
changed로 표시되고 제공이 중단됩니다 — 당신이 결정할
때까지 게이트웨이는 그 툴을 디스패치하지 않습니다.승인 또는 격리
새 스키마로 다시 기준선화하려면 다시 승인하거나, 서버를 격리하세요.
격리된 서버는 비활성화도 되며 명시적 승인만이 서비스를 복구합니다 —
평범한 편집으로는 다시 활성화할 수 없습니다.
감사됨
승인된 기준선으로부터의 드리프트의 첫 탐지는 워크스페이스 감사 항목을
쓰므로, 그 변경은 기록에 남습니다.
unknown(결코 기준선화되지 않음), verified(기준선
일치), changed(드리프트됨, 보류됨), pending(강제 하에서 기준선화되지
않음), 또는 quarantined 중 하나입니다. 이 레이어는 스키마를 움직이는
러그풀을 잡습니다; 호출별 평가(§1)는 동일한 시그니처를 유지하고 동작만
변경하는 것을 잡습니다.
4. 하나의 구체적인 예
커뮤니티 MCP 서버notes가 무해한 notes.search 툴을 광고한다고 합시다.
당신은 그것을 나열하고, 검토하고, 작동합니다. 일주일 후 서버가 손상되고
notes.search가 당신의 컨텍스트를 공격자 호스트로 POST하는 유출 인자를
첨부하기 시작합니다.
연결 시에만 작동하는 게이트웨이는 그것을 전달할 것입니다 — 툴 이름과
스키마가 변경되지 않아 보입니다. OrcaRouter는 호출을 평가합니다:
args_match 연산자는 eq, contains, regex, in, cidr_match,
gt, lt입니다; cidr_match는 IP 값 인자를 CIDR에 대해 테스트합니다.
툴이 어디까지 host/CIDR로 도달할 수 있는지 제한하려면, 인자 절 대신
egress 목적지 목록을 사용하세요.)
디스패치 시 엔진은 deny를 반환하고, 호출을 전달하는 대신 게이트웨이는
에이전트에게 MCP 툴 결과 오류 — 오류로 플래그된 정상 결과이며, 전송
실패가 아닌 — 를 건네므로 모델이 적응할 수 있습니다:
5. 함께 들어맞는 방식
호출별 평가 vs. 스킬 격리 — 무엇이 무엇을 잡나요?
호출별 평가 vs. 스킬 격리 — 무엇이 무엇을 잡나요?
호출별 평가는 신뢰된 툴이 악성으로 변하는 것 — 같은 이름, 인자나
목적지의 새 동작 — 을 잡습니다. 스킬 격리는 새롭거나 검토되지 않은
기능이 애초에 나타나는 것 — 자동 탐지된 설치, 새로 저하되는 재스캔된
매니페스트 — 을 잡습니다. 러그풀은 어느 형태든 취할 수 있으므로, 둘 다
실행됩니다: 스킬의 모드가 호출별 규칙 판정 위에 올라탑니다.
이것이 서버의 스키마를 기준선화하나요?
이것이 서버의 스키마를 기준선화하나요?
예 — §3을 참조하세요. 각 등록된 서버의 광고된 툴 세트는 첫 프로브에서
기준선화되고 드리프트를 다시 검사받습니다; 드리프트된 서버는 당신이
다시 승인하거나 격리할 때까지 닫힘으로 실패합니다. 그것은 호출별 평가에
보완적이며, 호출별 평가는 또한 동일한 시그니처를 유지하고 동작만 변경하는
툴을 잡습니다.
보류된 호출은 어디로 가나요?
보류된 호출은 어디로 가나요?
pending_approval 판정은 콘솔(Developer+) 또는 HMAC 승인 콜백을 통해
사람이 해결하도록 호출을 보류합니다. 보류와 승인이 에이전트에 표면화되는
방식은 강제 모드를 참조하세요.6. 구성하기
아래의 모든 단계는 세션 또는 액세스 토큰으로 인증되는 콘솔/관리 액션입니다 —sk-orca-… 릴레이 키가 아닙니다. /v1/* 릴레이 트래픽만이
릴레이 키를 사용합니다.
게이트웨이 뒤에 MCP 서버 등록하기
각 서버의 툴이 하나의 감사 엔드포인트 아래 광고되도록
각 서버를 연결하세요. 등록은
**Developer+**입니다.
mcp 표면에 기본 판정과 규칙 설정하기
위험한 호출이
deny, sanitize, 또는 pending_approval로 해결되도록
tool_name_glob과 args_match로 규칙을 작성하세요.
Firewall 규칙 레퍼런스를 참조하세요.읽기(설정, 정책, 발견된 툴, 이상 징후)는 모든 Member에게 열려 있습니다;
모든 쓰기는 **Developer+**입니다. firewall-gateway 키의 평문 읽기는
**Developer+**입니다.
관련
Firewall: MCP 서버
전체 MCP 게이트웨이 레퍼런스 — 등록, 프로빙, 디스패치.
Firewall: 스킬
스캐너 패스, 위험 점수화, 그리고 격리 도출.
MCP 툴 포이즈닝
러그풀 방어가 대응하기 위해 존재하는 위협 모델.
Egress 한도
툴이 도달할 수 있는 곳을 제한하는 host/CIDR 거부 규칙을 작성합니다.
신뢰 체크리스트
MCP 서버를 신뢰하기 위한 엔드투엔드 체크리스트.
Guardrails vs. Firewall
콘텐츠 정책이 적용될 때와 firewall이 적용될 때.
