Przejdź do głównej treści
„Rug pull” to tryb awarii MCP, w którym serwer zachowuje się, gdy go obserwujesz, i staje się wrogi, gdy zyska zaufanie: narzędzie, które zatwierdziłeś przy połączeniu, zaczyna przemycać dodatkowe argumenty, społecznościowy serwer, który wymieniłeś, po cichu dodaje nową zdolność, lub skill, który agent sam zainstalował, przeskakuje z łagodnego na niebezpieczny w produkcji. Niebezpieczeństwo polega na tym, że nikt nie recenzuje ponownie połączenia po tym, jak stało się żywe — decyzja o zaufaniu została podjęta raz, przy uścisku dłoni, i nigdy nie zrewidowana. OrcaRouter nie ufa uściskowi dłoni. Broni na trzech frontach. Brama MCP Firewalla ewaluuje każde tools/call przy dyspozycji wobec twojej żywej polityki. Ogłoszony zestaw narzędzi każdego zarejestrowanego serwera jest baselinowany przy pierwszym sondowaniu i ponownie sprawdzany pod kątem dryfu — jeśli schemat narzędzi zmieni się względem zatwierdzonej bazy, serwer zawodzi zamknięty, dopóki admin go ponownie nie zatwierdzi lub nie poddaje kwarantannie. A warstwa Skille przypisuje każdej zainstalowanej zdolności pasmo ryzyka i tryb egzekwowania — kwarantannując cokolwiek ryzykowne lub niezrecenzowane, dopóki człowiek nie zaakceptuje. Serwer nie może zarobić darmowej przepustki, zachowując się poprawnie przez pierwsze sto wywołań.

1. Dlaczego ochrona przed rug pull MCP potrzebuje ewaluacji per wywołanie

Recenzja przy połączeniu odpowiada na jedno pytanie raz: czy ten serwer jest bezpieczny do wymienienia? Nie może odpowiedzieć na pytanie, które naprawdę ma znaczenie w czasie wykonania: czy to konkretne wywołanie, z tymi konkretnymi argumentami, jest bezpieczne teraz? OrcaRouter odpowiada na drugie pytanie. Każde tools/call, które przekracza bramę, jest ewaluowane na powierzchni mcp przed dyspozycją do prawdziwego serwera, z nazwą narzędzia i argumentami w ręku. Werdykt jest obliczany świeżo za każdym razem, więc w chwili, gdy narzędzie zaczyna robić coś, czego twoja polityka zakazuje — eksfiltrując sekret w argumencie, sięgając do zabronionego hosta, wywołując zdolność, której nigdy nie zatwierdziłeś — wywołanie jest zatrzymane, niezależnie od tego, jak to samo narzędzie zachowywało się minutę temu.
Ewaluacja per wywołanie zarządza zachowaniem każdego wywołania — treścią argumentów, celami, ryzykiem posiadającego skilla — więc łapie rug pull nawet wtedy, gdy narzędzie zachowuje identyczną sygnaturę i tylko jego zachowanie staje się wrogie. Wykrywanie dryfu schematu (§ poniżej) to komplementarna warstwa: łapie przypadek, gdy sam ogłoszony zestaw narzędzi serwera się zmienia. Obie działają.
Werdykty, które silnik może zwrócić na powierzchni mcp:

allow / audit

Przesłane do serwera. audit loguje wywołanie; allow pozostaje cicho.

sanitize

Przesłane z najpierw zredagowanymi argumentami wywołania narzędzia (nigdy nie przepisuje tego, co serwer zwraca).

deny

Zwrócone do modelu jako błąd narzędzia (firewall deny: …), więc agent może się dostosować, zamiast się wysypać.

pending_approval

Wywołanie jest wstrzymane do rozstrzygnięcia przez człowieka, zanim się uruchomi.

2. Kwarantanna pasma ryzyka skilla

Druga połowa obrony przed rug-pull pokrywa łańcuch dostaw: skille, wtyczki i serwery MCP typu bring-your-own, które agent instaluje. Każdy jest rejestrowany jako rekord w zakresie przestrzeni roboczej, skanowany przez deterministyczny silnik ryzyka i otrzymuje pasmo ryzyka (low / medium / high / critical) plus tryb egzekwowania:
TrybEfekt w czasie wykonania
allowDecydują werdykty reguł; skill nic nie dodaje.
quarantineCokolwiek krótszego niż deny jest eskalowane do pending_approval — narzędzia uruchamiają się dopiero po zatwierdzeniu przez człowieka.
blockNarzędzia skilla są wprost odmawiane.
To tutaj rug pull zostaje opanowany. Zdolność, którą agent sam instaluje, jest auto_detected i kwarantannowana do recenzji — nawet jeśli przeszła skan czysto, nie uruchamia się na własną odpowiedzialność. A tryb skilla zawsze zaostrza się tylko ściślej przy ponownym skanie: block lub quarantine, który ustawisz, nigdy nie jest po cichu rozluźniany, gdy manifest jest ponownie prezentowany.
Kwarantanna jest egzekwowana niezależnie od trybu shadow. Skill ustawiony na quarantine lub block jest nadal wstrzymywany, nawet gdy otaczająca polityka jest w rolloucie shadow — więc ryzykowna zdolność nie może prześlizgnąć się podczas etapowego wdrożenia.
Zobacz Firewall: skille po pełny skaner, wagi punktacji i sygnały zaufania.

3. Wykrywanie dryfu schematu narzędzi

Klasyczny rug pull to zarejestrowany serwer, który zmienia to, co ogłasza — dodaje narzędzie, zmienia schemat wejścia narzędzia, podmienia opis. OrcaRouter baselinuje ogłoszony zestaw narzędzi każdego zarejestrowanego serwera przy udanym sondowaniu i obserwuje go pod kątem dryfu.

Baseline przy pierwszym sondowaniu

Pierwsze udane sondowanie rejestruje kanoniczny hash narzędzi serwera (trust-on-first-use pod postawą odkrywczą; pod postawą egzekwującą niebaselinowany serwer jest wstrzymany jako pending, dopóki admin nie zatwierdzi jego początkowego zestawu narzędzi).

Dryf zawodzi zamknięty

Przy późniejszym sondowaniu, jeśli kanoniczny zestaw narzędzi nie pasuje już do zatwierdzonej bazy, serwer jest oznaczony jako changed i przestaje być serwowany — brama nie zdyspozytuje jego narzędzi, dopóki nie zdecydujesz.

Zatwierdź lub poddaj kwarantannie

Zatwierdź ponownie, by zbaselinować do nowego schematu, lub poddaj serwer kwarantannie. Serwer w kwarantannie jest też wyłączony i tylko wyraźne zatwierdzenie przywraca usługę — zwykła edycja nie może go włączyć ponownie.

Audytowane

Pierwsze wykrycie dryfu od zatwierdzonej bazy zapisuje wpis audytu przestrzeni roboczej, więc zmiana jest udokumentowana.
schema_status serwera to jedno z: unknown (nigdy niebaselinowany), verified (pasuje do bazy), changed (zdryfował, wstrzymany), pending (niebaselinowany pod postawą egzekwującą) lub quarantined. Ta warstwa łapie rug pull, który przesuwa schemat; ewaluacja per wywołanie (§1) łapie ten, który zachowuje identyczną sygnaturę i tylko zmienia zachowanie.

4. Jeden konkretny przykład

Załóżmy, że społecznościowy serwer MCP notes ogłasza niewinne narzędzie notes.search. Wymieniasz je, recenzujesz, i działa. Tydzień później serwer jest skompromitowany i notes.search zaczyna dołączać argument eksfiltracji, który POST-uje twój kontekst na host atakującego. Brama działająca tylko przy połączeniu przesłałaby je — nazwa narzędzia i schemat wyglądają niezmienione. OrcaRouter ewaluuje wywołanie:
# Skonfiguruj regułę deny w konsoli (Developer+), nie przez klucz relay.
# Reguła: na powierzchni mcp, odmów notes.search zawsze, gdy niesie
#         argument o kształcie eksfiltracji.
#   tool_name_glob: notes.search
#   args_match:     { "path": "$.callback_url", "op": "regex",
#                     "value": "^https?://(?!notes\\.example/)" }  → deny
(Operatory args_match to eq, contains, regex, in, cidr_match, gt, lt; cidr_match testuje argument o wartości IP wobec CIDR. By ograniczyć dokąd narzędzie może sięgnąć po host/CIDR, użyj listy celów egress zamiast klauzuli argumentu.) Przy dyspozycji silnik zwraca deny, i zamiast przesyłać wywołanie brama wręcza agentowi błąd wyniku narzędzia MCP — normalny wynik oflagowany jako błąd, nie awaria transportu — więc model może się dostosować:
firewall deny: <your rule's reason>
To samo wywołanie, które udało się w zeszłym tygodniu, jest teraz zablokowane — bo decyzja jest podejmowana na wywołaniu, nie na połączeniu.
sanitize redaguje argumenty, które wysyła twój agent, nigdy treść, którą narzędzie zwraca. Jeśli musisz ograniczyć, dokąd narzędzie może sięgnąć, sparuj regułę deny z listą celów egress — nie polegaj na sanitize, by czyścił odpowiedzi.

5. Jak to pasuje razem

Ewaluacja per wywołanie łapie zaufane narzędzie stające się złośliwym — ta sama nazwa, nowe zachowanie w argumentach lub celu. Kwarantanna skilla łapie nową lub niezrecenzowaną zdolność pojawiającą się w ogóle — auto-wykrytą instalację, ponownie zeskanowany manifest, który nowo degraduje. Rug pull może przyjąć dowolny kształt, więc obie działają: tryb skilla jedzie na wierzchu werdyktu reguły per wywołanie.
Tak — zobacz §3. Ogłoszony zestaw narzędzi każdego zarejestrowanego serwera jest baselinowany przy pierwszym sondowaniu i ponownie sprawdzany pod kątem dryfu; zdryfowany serwer zawodzi zamknięty, dopóki nie zatwierdzisz ponownie lub nie poddasz kwarantannie. To komplementarne do ewaluacji per wywołanie, która łapie też narzędzie zachowujące identyczną sygnaturę i tylko zmieniające zachowanie.
Werdykt pending_approval wstrzymuje wywołanie do rozstrzygnięcia przez człowieka w konsoli (Developer+) lub przez callback zatwierdzenia HMAC. Zobacz tryby egzekwowania po to, jak wstrzymania i zatwierdzenia są wystawiane agentowi.

6. Konfigurowanie tego

Każdy krok poniżej to akcja konsoli / zarządzania uwierzytelniona twoim tokenem sesji lub dostępu — nie kluczem relay sk-orca-…. Tylko ruch relay /v1/* używa klucza relay.
1

Zarejestruj swoje serwery MCP za bramą

Połącz każdy serwer, tak by jego narzędzia były ogłaszane pod jednym audytowanym endpointem. Rejestracja to Developer+.
2

Ustaw domyślny werdykt i reguły na powierzchni mcp

Autoruj reguły z tool_name_glob i args_match, tak by ryzykowne wywołania rozstrzygały się do deny, sanitize lub pending_approval. Zobacz referencję reguł firewalla.
3

Zrecenzuj skille w kwarantannie

Cokolwiek auto-wykrytego siedzi w quarantine, dopóki recenzent (Developer+) tego nie zatwierdzi. Najpierw przeczytaj pasmo i ustalenia.
4

Wytocz w shadow, potem egzekwuj

Użyj trybów egzekwowania, by uruchomić nowe reguły w shadow, obserwuj zdarzenia audytu i przełącz na egzekwowanie, gdy werdykty wyglądają poprawnie.
Odczyty (ustawienia, polityki, odkryte narzędzia, anomalie) są otwarte dla każdego Membera; każdy zapis to Developer+. Odczyt tekstu jawnego klucza firewall-gateway to Developer+.

Powiązane

Firewall: serwery MCP

Pełna referencja bramy MCP — rejestracja, sondowanie, dyspozycja.

Firewall: skille

Przebiegi skanera, punktacja ryzyka i wyprowadzenie kwarantanny.

Zatruwanie narzędzi MCP

Model zagrożeń, przeciwko któremu istnieje obrona przed rug-pull.

Limity egress

Autoruj reguły deny host/CIDR, by ograniczyć, dokąd narzędzia mogą sięgać.

Lista kontrolna zaufania

Lista kontrolna od początku do końca do zaufania serwerowi MCP.

Guardrails vs. Firewall

Kiedy stosuje się polityka treści, a kiedy firewall.