Ta strona dotyczy kontroli bramy, które ograniczają promień wybuchu. Kontekst
modelu zagrożeń — dlaczego agenty są celami o wysokiej wartości i jak działa
injection — jest w Modelu zagrożeń. Dla
pasującej kontroli, która zarządza niebezpiecznymi pojedynczymi wywołaniami
narzędzi, patrz
Niebezpieczne wywołania narzędzi.
1. Co sprawia, że agent jest nadmiernie zdolny
Gdy każdy agent w przestrzeni roboczej współdzieli jeden klucz lub gdy klucz jest wydawany raz i nigdy nie rewidowany, zdolności przesuwają się ku górze:- Bez ograniczeń modeli — agent może wywoływać dowolny model w przestrzeni roboczej, w tym drogie lub wysoce zdolne, których nigdy nie potrzebuje.
- Brak pułapu wydatków — rozbiegana pętla, wywołany injection lub atak billing może wyczerpać saldo przestrzeni roboczej, zanim zauważysz.
- Brak wygaśnięcia — klucz wydany podczas sprintu jest nadal ważny rok później, długo po tym, gdy agent, dla którego był wybity, jest wycofany.
- Brak ograniczenia IP — poświadczenie działa z dowolnego miejsca, więc wyciekły klucz nie ma geograficznego limitu.
- Brak listy dozwolonych narzędzi — agent może wywoływać dowolne narzędzie, nawet niepowiązane z jego funkcją.
2. Wzorzec zdezorientowanego zastępcy
Zdezorientowany zastępca to specjalizacja nadmiernych uprawnień. Agent nie jest przejmowany; jest przekonywany. Ładunek prompt injection na pobranej stronie internetowej, w dokumencie lub wyniku narzędzia mówi agentowi, aby podjął akcję, do której jest legalnie autoryzowany — przenieś pieniądze, usuń rekord, wyślij wiadomość — w imieniu atakującego. Agent działa. Był autoryzowany do dokładnie tego. Sprawdzenie autoryzacji przechodzi. Szkoda jest wyrządzona. Obrona wymaga dwóch rzeczy działających razem:- Wąski zakres — agenta nie można oszukać do zrobienia czegoś, czego jego zadanie nigdy nie zamierzało, ponieważ nie jest w ogóle autoryzowany do tego.
- Zatwierdzenie przez człowieka dla nieodwracalnych akcji — nawet wewnątrz autoryzowanego zakresu, wywołanie o wysokiej stawce wymaga potwierdzenia od człowieka przed wykonaniem.
3. Obrona w głębi: cztery warstwy
OrcaRouter egzekwuje minimalne uprawnienia przez cztery niezależne kontrole, które kompozycjonują się na jednym kluczu API. Żadna nie wymaga zmiany kodu w twoim agencie.Warstwa 1 — Klucz o ograniczonym zakresie (tożsamość + twarde limity)
Każdy agent powinien mieć swój własny klucz API. Klucz niesie twarde limity, które brama egzekwuje niezależnie od tego, o co agent prosi:| Pole | Co ogranicza |
|---|---|
model_limits | Dokładny zestaw modeli, które ten klucz może wywoływać. Żądanie dla jakiegokolwiek innego modelu jest odrzucane, zanim opuści bramę. |
allow_ips | Żądania z jakiegokolwiek adresu nie na tej liście są odrzucane na warstwie auth. Puste oznacza brak ograniczenia IP. |
credit_limit_usd | Dożywotni limit wydatków w USD. 0 oznacza bez limitu. Brama egzekwuje to wobec skumulowanych wydatków na kluczu. |
expired_time | Bezwzględny znacznik czasu wygaśnięcia. -1 oznacza, że klucz nigdy nie wygasa. Ustaw to na cykl życia wdrożenia agenta. |
environment | Etykieta (prod, staging, dev) do organizowania kluczy i filtrowania logów audytu. |
Warstwa 2 — Polityka firewalla (lista dozwolonych narzędzi)
Dołącz politykę firewalla do klucza przezfirewall_policy_id. Polityka zarządza każdym wywołaniem narzędzia, które
ten klucz wydaje:
- Pisz reguły, które zezwalają na nazwy narzędzi, których agent legalnie
używa (globy nazw narzędzi są obsługiwane — np.
db.query*). - Ustaw
default_verdictpolityki nadeny, aby wszystko, co nie jest jawnie wylistowane, było blokowane. - Dodaj predykaty argumentów, aby ograniczyć nawet dozwolone narzędzia — np.
zezwól na
db.querytylko gdy argumentdatabasepasuje do konkretnego schematu.
Warstwa 3 — Zatwierdzenie przez człowieka dla akcji o wysokiej stawce (pending_approval)
Dla nieodwracalnych lub wartościowych wywołań narzędzi — dyspozycja płatności,
usunięcie rekordu, wysłanie emaila — dodaj regułę pending_approval. Przepływ:
- Agent wydaje wywołanie narzędzia. Firewall je wstrzymuje i zwraca odpowiedź „wstrzymane” niosącą id zatwierdzenia. Wywołanie nie dociera do narzędzia.
- Recenzent zatwierdza lub odrzuca poza pasmem — z konsoli (Developer+) lub przez podpisany HMAC webhook do twojego własnego systemu zatwierdzeń.
- Twój agent odpytuje id zatwierdzenia. Po zatwierdzeniu, ponownie przesyła
oryginalne wywołanie z jednorazowym nagłówkiem
X-OrcaRouter-Firewall-Approval. Brama przepuszcza je dokładnie raz.
Warstwa 4 — Per-run pułap kosztu (cap_cost)
Reguła cap_cost odmawia każdego wywołania narzędzia, gdy skumulowane wydatki
uruchomienia agenta przekraczają per-rule pułap (w centach). To jest
bezpiecznik dla:
- Rozbieganych pętli wywołanych przez injection.
- Ataków billing, które powodują wydatki, zanim jakikolwiek człowiek zauważy.
- Przypadkowej rekurencji w wieloetapowych planach.
cap_cost działa na poziomie uruchomienia, nie na poziomie dożywotniego
klucza — więc resetuje się per wywołanie agenta, a jedno nieposłuszne
uruchomienie nie może wyczerpać pułapu credit_limit_usd klucza.
4. Dobrze zakresowany klucz agenta — przykład
Agent, który podsumowuje zgłoszenia klientów używającgpt-4o-mini i odpytuje
replikę tylko do odczytu, powinien wyglądać tak:
model_limits:["openai/gpt-4o-mini"]— nie może eskalować do bardziej zdolnego lub droższego modelu.allow_ips: CIDR egress puli pracowniczej — klucz jest nieaktywny wszędzie indziej.credit_limit_usd: tygodniowy pułap pasujący do oczekiwanego kosztu zadania, z pewnym zapasem — np.5.00.expired_time: koniec sprintu lub okresu wdrożenia — klucz wygasa samoczynnie bez ręcznego czyszczenia.environment:"prod"— pojawia się w filtrach logów i widokach anomalii.guardrail_id: guardrail zakresowany do wrażliwości danych tego agenta (maskowanie PII, brak sekretów w wyjściu).firewall_policy_id: polityka, która tylko-listujedb.query*iticket.read*, domyślny werdyktdeny.
is_firewall_gateway oznacza klucz jako token z zakresem gateway dla tras
dyspozycji MCP i hooka evaluate. Twórz te tylko dla agentów, które programowo
napędzają firewall — nigdy dla ogólnego ruchu wnioskowania. Klucz gateway
na ścieżce wnioskowania eksponuje trasy, do których klucze ogólnego
przeznaczenia nigdy nie powinny docierać. Włączenie is_firewall_gateway
wymaga Admin+.5. Wymagane role
| Akcja | Minimalna rola |
|---|---|
| Odczyt dowolnego klucza, polityki lub zdarzenia firewalla | Member |
| Tworzenie lub edycja kluczy, polityk firewalla, reguł | Developer |
| Zatwierdzenie wstrzymanego wywołania narzędzia z konsoli | Developer |
Włączenie is_firewall_gateway na kluczu | Admin |
6. Relacja z innymi zagrożeniami
Nadmierne uprawnienia to enabler dla prawie każdego innego zagrożenia agenta:- Niebezpieczne wywołania narzędzi — klucz z ścisłą listą dozwolonych narzędzi nie może być zmuszony do wywołania narzędzia, którego nie wylistowuje, nawet jeśli injection się powiedzie.
- Prompt injection — limity zakresu ograniczają szkody, które injection może wyrządzić; bramy zatwierdzenia blokują nieodwracalne akcje, które injection próbuje wywołać.
- Model zagrożeń — pełna mapa powierzchni ataku, pokazująca, gdzie nadmierne uprawnienia znajdują się względem innych wektorów.
Klucze o ograniczonym zakresie i polityki
Pełna referencja pól klucza, kolejność rozwiązywania i model granicy
przestrzeni roboczej.
Firewall
Tworzenie polityk, werdykty, przepływ zatwierdzenia HITL i pełna
referencja API.
