Diese Seite behandelt die Gateway-Kontrollen, die den Schadensradius begrenzen.
Der Upstream-Bedrohungsmodell-Kontext — warum Agenten hochwertige Ziele sind
und wie Injection funktioniert — ist in Bedrohungsmodell.
Für die passende Kontrolle, die gefährliche individuelle Tool-Calls steuert,
siehe Gefährliche Tool-Calls.
1. Was einen Agenten übermäßig fähig macht
Wenn jeder Agent in einem Workspace einen Schlüssel teilt, oder wenn ein Schlüssel einmal ausgestellt und nie revisitiert wird, driftet die Fähigkeit nach oben:- Unbeschränkte Modelle — der Agent kann jedes Modell im Workspace aufrufen, einschließlich teurer oder hochfähiger, die er nie benötigt.
- Keine Ausgabenobergrenze — eine unkontrollierte Schleife, eine ausgelöste Injection oder ein Billing-Angriff kann das Workspace-Guthaben erschöpfen, bevor Sie es bemerken.
- Kein Ablauf — ein Schlüssel, der während eines Sprints ausgestellt wurde, ist noch ein Jahr später gültig, lange nachdem der Agent, für den er geprägt wurde, eingestellt wurde.
- Keine IP-Einschränkung — die Credential funktioniert von überall, sodass ein gestohlener Schlüssel keine geografische Beschränkung hat.
- Keine Tool-Allowlist — der Agent kann jedes Tool aufrufen, sogar solche, die nichts mit seiner Funktion zu tun haben.
2. Das Confused-Deputy-Muster
Der Confused Deputy ist eine Spezialisierung der übermäßigen Handlungsmacht. Der Agent wird nicht gekapert; er wird überzeugt. Ein Prompt-Injection-Payload in einer abgerufenen Webseite, einem Dokument oder einem Tool-Ergebnis sagt dem Agenten, eine Aktion vorzunehmen, die er legitim autorisiert ist durchzuführen — Geld verschieben, einen Datensatz löschen, eine Nachricht senden — im Namen des Angreifers. Der Agent handelt. Er war genau dazu autorisiert. Die Autorisierungsprüfung besteht. Der Schaden ist angerichtet. Die Verteidigung erfordert zwei Dinge, die zusammenarbeiten:- Enger Scope — der Agent kann nicht dazu gebracht werden, etwas zu tun, das seine Aufgabe nie beabsichtigt hatte, weil er dazu überhaupt nicht autorisiert ist.
- Menschliche Freigabe für irreversible Aktionen — selbst innerhalb des autorisierten Scopes erfordert ein hochriskanter Aufruf eine menschliche Bestätigung, bevor er ausgeführt wird.
3. Tiefenverteidigung: die vier Ebenen
OrcaRouter setzt minimalen Handlungsspielraum über vier unabhängige Kontrollen durch, die auf einem einzelnen API-Key zusammenwirken. Keine erfordert eine Code-Änderung an Ihrem Agenten.Ebene 1 — Scoped Key (Identität + harte Limits)
Jeder Agent sollte seinen eigenen API-Key haben. Der Schlüssel trägt harte Limits, die das Gateway unabhängig davon durchsetzt, was der Agent anfordert:| Feld | Was es einschränkt |
|---|---|
model_limits | Der exakte Satz von Modellen, die dieser Schlüssel aufrufen darf. Ein Request für ein anderes Modell wird abgelehnt, bevor er das Gateway verlässt. |
allow_ips | Requests von einer Adresse, die nicht auf dieser Liste steht, werden auf der Auth-Ebene abgelehnt. Leer bedeutet keine IP-Einschränkung. |
credit_limit_usd | Lifetime-Ausgabenlimit in USD. 0 bedeutet unbegrenzt. Das Gateway setzt dies gegen kumulierte Ausgaben auf dem Schlüssel durch. |
expired_time | Absoluter Ablauf-Timestamp. -1 bedeutet der Schlüssel läuft nie ab. Setzen Sie dies auf den Deployment-Lebenszyklus des Agenten. |
environment | Ein Label (prod, staging, dev) zum Organisieren von Schlüsseln und Filtern von Audit-Logs. |
Ebene 2 — Firewall-Policy (Tool-Allowlist)
Binden Sie eine Firewall-Policy an den Schlüssel überfirewall_policy_id. Die Policy steuert jeden Tool-Call, den dieser Schlüssel
ausgibt:
- Schreiben Sie Regeln, die die Tool-Namen erlauben, die der Agent legitim
verwendet (Tool-Name-Globs werden unterstützt — z. B.
db.query*). - Setzen Sie das
default_verdictder Policy aufdeny, sodass alles, was nicht explizit gelistet ist, blockiert wird. - Fügen Sie Argument-Prädikate hinzu, um sogar die erlaubten Tools
einzuschränken — z. B.
db.querynur erlauben, wenn dasdatabase-Argument einem spezifischen Schema matcht.
Ebene 3 — Menschliche Freigabe für hochriskante Aktionen (pending_approval)
Für irreversible oder hochwertige Tool-Calls — einen Payment-Dispatch, einen
Datensatz-Delete, einen E-Mail-Versand — fügen Sie eine pending_approval-Regel
hinzu. Der Ablauf:
- Der Agent gibt den Tool-Call aus. Die Firewall hält ihn zurück und gibt eine „held”-Antwort zurück, die eine Approval-ID trägt. Der Aufruf erreicht das Tool nicht.
- Ein Prüfer genehmigt oder lehnt out-of-band ab — von der Konsole (Developer+) oder über einen HMAC-signierten Webhook an Ihr eigenes Approval-System.
- Ihr Agent pollt die Approval-ID. Sobald genehmigt, reicht er den
ursprünglichen Aufruf mit einem einmal nutzbaren
X-OrcaRouter-Firewall-Approval-Header erneut ein. Das Gateway lässt ihn genau einmal durch.
Ebene 4 — Per-Lauf-Kostenlimit (cap_cost)
Eine cap_cost-Regel verweigert jeden Tool-Call, sobald die akkumulierten
Ausgaben des Agentenlaufs eine per-Regel-Obergrenze (in Cent) überschreiten.
Dies ist der Schutzschalter für:
- Unkontrollierte Schleifen, ausgelöst durch Injection.
- Billing-Angriffe, die Ausgaben treiben, bevor ein Mensch es bemerkt.
- Versehentliche Rekursion in mehrstufigen Plänen.
cap_cost operiert auf Lauf-Ebene, nicht auf Key-Lifetime-Ebene — es setzt
sich also pro Agenten-Aufruf zurück, und ein einzelner schlecht verhaltender
Lauf kann die credit_limit_usd-Obergrenze des Schlüssels nicht erschöpfen.
4. Ein gut abgegrenzter Agenten-Schlüssel — Beispiel
Ein Agent, der Kunden-Tickets mitgpt-4o-mini zusammenfasst und ein
schreibgeschütztes Replikat abfragt, sollte so aussehen:
model_limits:["openai/gpt-4o-mini"]— kann nicht auf ein fähigeres oder teureres Modell eskalieren.allow_ips: das Egress-CIDR des Worker-Pools — der Schlüssel ist überall sonst wirkungslos.credit_limit_usd: eine wöchentliche Obergrenze, die den erwarteten Kosten der Aufgabe mit etwas Puffer entspricht — z. B.5.00.expired_time: das Ende des Sprints oder Deployment-Zeitraums — der Schlüssel läuft ohne manuelle Bereinigung selbst ab.environment:"prod"— erscheint in Log-Filtern und Anomalie-Ansichten.guardrail_id: ein Guardrail, das auf die Datensensitivität dieses Agenten abgestimmt ist (PII-Masking, keine Secrets in der Ausgabe).firewall_policy_id: eine Policy, die nurdb.query*undticket.read*erlaubt, Standard-Verdiktdeny.
is_firewall_gateway markiert einen Schlüssel als Gateway-scoped Token für
die MCP-Dispatch- und Evaluate-Hook-Routen. Erstellen Sie diese nur für Agenten,
die die Firewall programmatisch steuern — niemals für allgemeinen
Inference-Traffic. Ein Gateway-Schlüssel auf dem Inference-Pfad exponiert
Routen, die Allzweck-Schlüssel nie erreichen sollten. is_firewall_gateway
aktivieren erfordert Admin+.5. Erforderliche Rollen
| Aktion | Mindestrolle |
|---|---|
| Jeden Schlüssel, jede Policy oder jedes Firewall-Event lesen | Member |
| Schlüssel, Firewall-Policies, Regeln erstellen oder bearbeiten | Developer |
| Einen zurückgehaltenen Tool-Call von der Konsole genehmigen | Developer |
is_firewall_gateway auf einem Schlüssel aktivieren | Admin |
6. Verhältnis zu anderen Bedrohungen
Übermäßige Handlungsmacht ist der Ermöglicher für fast jede andere Agenten-Bedrohung:- Gefährliche Tool-Calls — ein Schlüssel mit einer engen Tool-Allowlist kann nicht gezwungen werden, ein Tool aufzurufen, das es nicht listet, selbst wenn Injection erfolgreich ist.
- Prompt-Injection — Scope-Limits begrenzen den Schaden, den Injection anrichten kann; Freigabe-Gates blockieren die irreversiblen Aktionen, die Injection auszulösen versucht.
- Bedrohungsmodell — die vollständige Angriffsflächen-Karte, die zeigt, wo übermäßige Handlungsmacht relativ zu anderen Vektoren steht.
Scoped Keys & Policies
Die vollständige Key-Felder-Referenz, Auflösungsreihenfolge und das
Workspace-Grenz-Modell.
Firewall
Policy-Erstellung, Verdikte, HITL-Freigabe-Ablauf und die vollständige
API-Referenz.
