tools/call vào lúc dispatch đối với chính sách live của bạn. Tập tool được
quảng bá của mỗi server đã đăng ký được lập baseline ở lần probe đầu tiên
và kiểm tra lại để phát hiện trôi dạt — nếu schema tool thay đổi khỏi
baseline đã chấp thuận, server fail closed cho đến khi một admin chấp thuận
lại hoặc quarantine nó. Và lớp Skills gán cho
mỗi khả năng đã cài đặt một dải rủi ro và một enforcement mode — quarantine
bất cứ thứ gì rủi ro hoặc chưa được xem xét cho đến khi một con người ký
duyệt. Một server không thể giành được một suất miễn phí bằng cách cư xử đàng
hoàng trong một trăm cuộc gọi đầu tiên.
1. Tại sao bảo vệ rug pull MCP cần đánh giá theo từng cuộc gọi
Một review lúc kết nối trả lời một câu hỏi một lần: server này có an toàn để liệt kê không? Nó không thể trả lời câu hỏi thực sự quan trọng lúc runtime: cuộc gọi cụ thể này, với các argument cụ thể này, có an toàn ngay bây giờ không? OrcaRouter trả lời câu hỏi thứ hai. Mỗitools/call băng qua gateway được
đánh giá trên bề mặt mcp trước khi nó được dispatch tới server thật,
với tên tool và các argument trong tay. Verdict được tính tươi mỗi lần, nên
khoảnh khắc một tool bắt đầu làm điều gì đó mà chính sách của bạn cấm —
exfiltrate một secret trong một argument, vươn tới một host bị từ chối, gọi
một khả năng bạn chưa bao giờ chấp thuận — cuộc gọi bị dừng, bất kể cùng tool
đó đã cư xử thế nào một phút trước.
mcp:
allow / audit
audit ghi log cuộc gọi; allow lặng lẽ.sanitize
deny
firewall deny: …) để agent có
thể thích nghi thay vì crash.pending_approval
2. Quarantine theo dải rủi ro của skill
Nửa thứ hai của phòng vệ rug-pull bao trùm chuỗi cung ứng: các skill, plugin, và các bring-your-own MCP server mà một agent cài đặt. Mỗi cái được đăng ký như một bản ghi theo phạm vi workspace, được quét bởi một risk engine xác định, và được gán một dải rủi ro (low / medium / high /
critical) cộng với một enforcement mode:
| Mode | Hiệu ứng lúc runtime |
|---|---|
allow | Các verdict quy tắc quyết định; skill không thêm gì. |
quarantine | Bất cứ thứ gì ngắn hơn một deny được leo thang lên pending_approval — các tool chỉ chạy sau khi một con người chấp thuận. |
block | Các tool của skill bị từ chối thẳng. |
auto_detected và bị quarantine cho đến khi được xem xét — ngay cả
khi nó quét sạch, nó không chạy theo thẩm quyền của riêng nó. Và mode của một
skill chỉ từng siết chặt hơn khi quét lại: một block hoặc quarantine
bạn đặt không bao giờ bị nới lỏng lặng lẽ khi một manifest được trình lại.
Xem Firewall: Skills để biết toàn bộ scanner,
các trọng số chấm điểm, và các tín hiệu tin cậy.
3. Phát hiện trôi dạt tool-schema
Rug pull kinh điển là một server đã đăng ký thay đổi những gì nó quảng bá — thêm một tool, thay đổi input schema của một tool, đổi một description. OrcaRouter lập baseline tập tool được quảng bá của mỗi server đã đăng ký trên một probe thành công và theo dõi nó để phát hiện trôi dạt.Baseline ở lần probe đầu tiên
pending cho đến
khi một admin chấp thuận tập tool ban đầu của nó).Trôi dạt fail closed
changed và ngừng được phục vụ —
gateway sẽ không dispatch các tool của nó cho đến khi bạn quyết định.Chấp thuận hoặc quarantine
Được audit
unknown (chưa bao giờ lập
baseline), verified (khớp baseline), changed (trôi dạt, bị giữ),
pending (chưa lập baseline dưới enforcing), hoặc quarantined. Lớp này bắt
rug pull làm dịch chuyển schema; đánh giá theo từng cuộc gọi (§1) bắt cái
giữ một chữ ký giống hệt và chỉ thay đổi hành vi.
4. Một ví dụ cụ thể
Giả sử một community MCP servernotes quảng bá một tool notes.search vô
hại. Bạn liệt kê nó, xem xét nó, và nó hoạt động. Một tuần sau server bị xâm
nhập và notes.search bắt đầu đính một argument exfiltration POST ngữ cảnh
của bạn tới một host của kẻ tấn công.
Một gateway chỉ-lúc-kết-nối sẽ chuyển tiếp nó — tên tool và schema trông
không đổi. OrcaRouter đánh giá cuộc gọi:
args_match là eq, contains, regex, in, cidr_match,
gt, lt; cidr_match kiểm tra một argument có giá trị IP đối với một
CIDR. Để ràng buộc nơi một tool có thể vươn tới theo host/CIDR, dùng
danh sách đích egress thay vì một mệnh đề
argument.)
Tại dispatch, engine trả về deny, và thay vì chuyển tiếp cuộc gọi, gateway
trao cho agent một tool-result error MCP — một kết quả bình thường được
gắn cờ như một lỗi, không phải một thất bại truyền tải — để mô hình có thể
thích nghi:
5. Cách nó khớp với nhau
Đánh giá theo từng cuộc gọi vs. quarantine skill — cái nào bắt cái gì?
Đánh giá theo từng cuộc gọi vs. quarantine skill — cái nào bắt cái gì?
Điều này có lập baseline schema của server không?
Điều này có lập baseline schema của server không?
Các cuộc gọi bị giữ đi đâu?
Các cuộc gọi bị giữ đi đâu?
pending_approval giữ cuộc gọi cho một con người giải quyết
trong console (Developer+) hoặc qua một HMAC approval callback. Xem
enforcement modes để biết cách
các lần giữ và chấp thuận được hiện ra cho một agent.6. Cấu hình nó
Mỗi bước dưới đây là một hành động console / quản lý được xác thực bằng session hoặc access token của bạn — không phải relay keysk-orca-…. Chỉ lưu
lượng relay /v1/* dùng relay key.
Đăng ký các MCP server của bạn phía sau gateway
Đặt một verdict mặc định và các quy tắc trên bề mặt mcp
tool_name_glob và args_match sao cho các cuộc
gọi rủi ro giải thành deny, sanitize, hoặc pending_approval. Xem
tham chiếu quy tắc Firewall.Xem xét các skill bị quarantine
quarantine cho đến khi một người xem
xét (Developer+) chấp thuận nó. Đọc dải và các phát hiện trước.Triển khai trong shadow, rồi enforce
