Schutzmechanismen
Schutzmechanismen steuern, wie die Zugangsdaten einer Maschine benutzt werden dürfen (eine Maschine ist ein Arbeitsbereich, im Einstellungseditor), wie die Maschine reagiert, wenn ein Agent an eine Wand stößt oder sich seltsam verhält, und wie streng ihr Verkehr abgefangen wird. Welche Verbindungen ihre VM öffnen darf, legt die Sandbox-Richtlinie fest. In den Worten des Bereichs selbst: „Schutzmechanismen regeln, wie die eingerichteten Zugangsdaten dieses Arbeitsbereichs benutzt werden. Vor Gebrauch fragen lässt beim ersten Gebrauch eines Zugangsmittels in einer Sitzung eine Bestätigung auf der Host-Seite aufspringen. Eine Schreibrichtlinie entfernt oder blockiert zerstörende Operationen auf der Leitung — im Proxy durchgesetzt, sodass ein kompromittierter Agent sie nicht umgehen kann. Hier erscheinen nur Zugangsdaten, die Sie eingerichtet haben."
Der Bereich hat zwei Teile: eine Zeile je Zugangsmittel, dann Schutzfunktionen — die Einstellungen, die beide Sandbox-Engines teilen. (Die Regeln für ausgehende Verbindungen, die früher hier standen, sind mit 5.4 in die Sandbox-Richtlinie gewandert.) Alles darin gilt für eine laufende Maschine, sobald Sie Sichern klicken — kein Neustart. Die tieferen Mechanismen stehen in Prompt-Injection-Erkennung & Schutzmechanismen.
Zeilen für Zugangsdaten
Der Bereich listet jedes in Zugangsdaten eingerichtete Zugangsmittel, in derselben Reihenfolge. Jede Zeile zeigt den Namen des Zugangsmittels und seine Hosts, ein Ankreuzfeld Zustimmung zur Benutzung verlangen und — wo der Dienst eine unterstützt — eine Auswahl für die Schreibrichtlinie. Ohne Zugangsdaten zeigt der Bereich Keine Zugangsdaten zu bewachen und verweist Sie auf den Bereich Zugangsdaten.
Zustimmung zur Benutzung verlangen (vor Gebrauch fragen)
Voreingestellt aus. Ist es ein, hält der Proxy beim ersten Gebrauch des Zugangsmittels in einer Sitzung die Anfrage an und fragt, mit Für 5 Minuten erlauben, Für 1 Stunde erlauben, Für den Rest der Sitzung erlauben oder Nicht erlauben. Erlaubnisse leben im Speicher und enden mit der Sitzung; Fenster › Zugangsdaten-Zustimmungen… listet die aktuellen. Siehe Zugangsdaten & die Übertragungsgrenze.
Solange ein Zugangsmittel eine aktive Erlaubnis hat, zeigt seine Zeile neben dem Kontrollkästchen die verbleibende Zeit — einen orangefarbenen Countdown (4m, dann 45s) für eine befristete Erlaubnis, für diese Sitzung erlaubt für eine Erlaubnis bis zum Sitzungsende und einen roten Countdown verweigert (oder für diese Sitzung verweigert), solange eine Verweigerung gilt. Klicken Sie mit der rechten Maustaste auf die Zeile für Für 5 Minuten erlauben, Für 1 Stunde erlauben oder Für den Rest der Sitzung erlauben, für Für 5 Minuten verweigern, Für 1 Stunde verweigern oder Für den Rest der Sitzung verweigern (ohne Nachfrage abgelehnt) oder für Widerrufen — nächstes Mal fragen, um beides zu löschen, sodass die nächste Verwendung wieder nachfragt. Eine befristete Erlaubnis oder Verweigerung beginnt jetzt, sodass eine fast abgelaufene Erlaubnis frische 5 Minuten bekommt. Das wirkt sofort auf die laufende Sitzung; es gibt nichts zu speichern. (Der Countdown erscheint in den eigenen Einstellungen des Arbeitsbereichs auf dem Mac, der ihn ausführt, nicht in den Einstellungen der App und nicht auf einem entfernten Client.)
Hinweis: Eine Automatisierung, die ein Zugangsmittel mit eingeschalteter Zustimmung benutzt, kann nicht völlig unbeaufsichtigt laufen: sie hält am Dialog, bis Sie auf dem Mac antworten. Der Automatisierungs-Editor warnt davor.
Schreibrichtlinie
Eine Auswahl für die Schreibrichtlinie erscheint für:
- Git-Forge-Tokens (GitHub, GitLab, Bitbucket)
- AWS-Zugangsdaten
- DigitalOcean-Tokens
- Container-Registries
- Kubernetes-Kontexte
- Datenbank-Endpunkte (MongoDB, ClickHouse, Elasticsearch)
| Modus | Verhalten |
|---|---|
| Aus | Keine Filterung. |
| Vor dem Schreiben fragen | Lesezugriffe passieren. Jedes Schreiben hält für einen Dialog, der die genaue Operation zeigt. |
| Zerstörendes blockieren | Löschungen, Verwerfen und Beendigungen werden blockiert; Anlegen und Aktualisieren passieren. |
| Nur Lesen | Jede Änderung wird blockiert; nur Lesezugriffe passieren. |
Neue Maschinen benutzen Vor dem Schreiben fragen für jeden Dienst (aus der Vorlage Standardwerte). Maschinen, die vor den Schutzmechanismen angelegt wurden, laden als Aus.
Hinweis: Eine Schreibrichtlinie gilt je Dienst, nicht je Zugangsmittel, wie der Bereich notiert: „zwei Zugangsdaten für denselben Dienst (z. B. zwei GitHub-Tokens) teilen eine Richtlinie." Eine der Zeilen zu ändern ändert beide.
Wie jeder Dienst eingeordnet wird
| Dienst | Geltung | Einordnung |
|---|---|---|
| Kubernetes | Die API-Server in den kubeconfigs dieser Maschine | GET/HEAD/OPTIONS lesend; DELETE (auch deletecollection) zerstörend; andere Verben schreibend. Blockierte Aufrufe geben einen Kubernetes-Status 403 zurück, den kubectl klar anzeigt. |
| AWS | *.amazonaws.com | Der Aktionsname (Kopfzeile X-Amz-Target oder Parameter Action=) nach Präfix: Delete*, Terminate*, Remove*, Purge*, Destroy*, Deregister*, Revoke* zerstörend; Get*, List*, Describe* und Ähnliches lesend. S3 und REST-artige Aufrufe fallen auf die HTTP-Methode zurück. Blockierte Aufrufe geben AccessDeniedException zurück. |
| DigitalOcean | *.digitalocean.com | DELETE zerstörend; GET/HEAD lesend. |
| Container-Registries | Die eingerichteten Registries und Docker Hub | Pull lesend; Push schreibend; DELETE zerstörend. Blockierte Aufrufe geben einen Registry-Fehler DENIED zurück. |
| GitHub / GitLab / Bitbucket | Die REST-API der Forge und git über HTTPS | REST nach Methode. git push ist ein Schreiben (in Nur Lesen blockiert, in Vor dem Schreiben fragen mit Frage); git fetch ist immer ein Lesen. |
Datenbank-Endpunkte werden nach Engine eingeordnet:
| Engine | Lesen | Schreiben | Zerstörend |
|---|---|---|---|
| MongoDB (Atlas Data API) | find, findOne, aggregate | insert, update, replace | deleteOne, deleteMany |
| ClickHouse | SELECT, SHOW, DESCRIBE, EXPLAIN, WITH … | INSERT, CREATE, ALTER … | DROP, TRUNCATE, DELETE und ALTER … DELETE / DROP COLUMN / DROP PARTITION / CLEAR |
| Elasticsearch | _search, _msearch, _count, _mget, _sql und andere Abfragen (auch über POST) | _bulk, _update, Indizieren | DELETE, _delete_by_query |
Eine orange Warnung erscheint, wenn eine Richtlinie nichts hat, worauf sie sich anwenden ließe — ein Kubernetes-Kontext ohne kubeconfig, ein Datenbank-Endpunkt ohne Host.
Hinweis: Bei ClickHouse blockiert Nur Lesen eine Anfrage, in der kein SQL-Text zu sehen ist (es lässt sich nicht beweisen, dass es ein Lesen ist), während Zerstörendes blockieren sie durchlässt.
Der Schreib-Dialog
In Vor dem Schreiben fragen hält ein Schreiben für Schreiben auf „Geltung" aus Arbeitsbereich „Name" erlauben? und zeigt die Operation wörtlich — die SQL-Anweisung, oder METHODE /pfad. Die Möglichkeiten:
- Für 15 Minuten erlauben (Voreinstellung)
- Einmal erlauben — erzeugt keine Erlaubnis, das nächste Schreiben fragt also wieder.
- Für den Rest der Sitzung erlauben
- Nicht erlauben — der Agent bekommt denselben Fehler, den die blockierenden Modi zurückgeben. Die Ablehnung wird 60 Sekunden behalten, damit eine Wiederholungsschleife nicht jede Sekunde erneut fragt.
Erlaubnisse gelten je Maschine und je Geltungsbereich: ein Kubernetes-API-Server, AWS als Ganzes, eine Registry, jede Forge, oder ein Datenbank-Host. Gleichzeitige gleiche Schreibzugriffe teilen einen Dialog. Wird die Maschine headless über SSH oder die CLI benutzt, werden dieselben Möglichkeiten im tmux der Maschine gefragt; keine Antwort heißt ablehnen.
Bei Zugangsdaten-Exfiltration nicht warnen
Wird ein Zugangsmittel dabei gesehen, wie es zu einem Host unterwegs ist, zu dem es nicht gehört, blockiert Bromure die Anfrage, hält die VM an und zeigt einen Kompromittierungs-Alarm mit Herunterfahren, Blockieren, Erlauben und Zur Untersuchung sichern. Erlauben vertraut diesem Ziel für den Rest der Sitzung. Siehe Zugangsdaten & die Übertragungsgrenze.
Bei Zugangsdaten-Exfiltration nicht warnen schaltet diesen Alarm für diese Maschine ab. Das Leck wird weiter blockiert und weiter in der Sicherheits-Zeitleiste aufgezeichnet, als „blockiert — Exfiltrationsversuch (Alarme aus, VM nicht angehalten)" — nur die Unterbrechung entfällt. Wirkt sofort, ohne Neustart. Voreinstellung: aus.
Schutzfunktionen
Der Abschnitt Schutzfunktionen enthält die Einstellungen, die für eine Maschine gelten, gleich welche Sandbox-Engine sie benutzt. Jede gilt sofort für eine laufende Maschine.
Den Agenten informieren, wenn die Richtlinie ihn blockiert
Tell the agent when policy blocks it — „der Agent fragt Sie, statt es erneut zu versuchen oder einen Umweg zu suchen". Wenn die Firewall, die OpenShell-Policy, die Gast-Sandbox oder ein Schutzmechanismus etwas verweigert, das ein Agent versucht hat, erfährt der Agent, was blockiert wurde und warum, und dass er Sie fragen soll, statt es erneut zu versuchen oder einen anderen Weg zu suchen. Ohne das sieht ein Agent nur eine gescheiterte Verbindung oder „permission denied" und versucht es womöglich weiter. Claude Code liest den Hinweis direkt nach dem Befehl, der auf die Blockade gestoßen ist. Codex, Grok, Kimi und Oh My Pi bekommen ihn eingetippt, wenn ihr Zug endet. Solange Sie nichts wählen, ist es an, sobald die Maschine eine OpenShell-Policy benutzt. Siehe Den Agenten informieren.
Agenten-Watchdog
Agent watchdog — „markiert eine Sitzung, die sich verdächtig verhält; Quarantine kappt außerdem ihr Netz und pausiert sie". Der Watchdog beobachtet die Sitzung als Ganzes, von außerhalb der VM:
- Häufungen blockierter Anfragen;
- Zugangsdaten, die nicht dazugehören;
- Anzeichen von Manipulation;
- neue Ziele, nachdem sich die Sitzung eingependelt hat;
- ausgehendes Volumen weit über dem eigenen Grundniveau der Sitzung (am Netzwerk-Switch gezählt, unabhängig vom Proxy).
| Modus | Wenn die Sitzung innerhalb einer Minute über den Schwellenwert kommt |
|---|---|
| Off (Voreinstellung) | Nichts. |
| Alert | Eine Zeile Agent watchdog in der Sicherheits-Zeitleiste („drift detected"), auf einem registrierten Mac auch an Ihre Organisation gesendet. |
| Quarantine | Das Netz der VM wird gekappt und die VM binnen Millisekunden pausiert. Eine Warnung, The agent watchdog quarantined this workspace, listet dann auf, was er gesehen hat. Herunterfahren stoppt die Maschine; Keep quarantined setzt sie mit weiterhin gekapptem Netz fort, sodass Sie hineinschauen können; Release stellt das Netz wieder her. |
Wenn die Warnung auf diesem Mac nicht gezeigt werden kann (ein Mac ohne Bildschirm, oder eine Maschine, die ein entfernter Client spiegelt), geht die Frage an den entfernten Client, und keine Antwort binnen drei Minuten gilt als Keep quarantined.
Nur von Bromure eingefügte Zugangsdaten erlauben (strenger Modus)
Only allow credentials Bromure injects (strict mode) — „blockiert alle Zugangsdaten, die Bromure nicht selbst eingesetzt hat". Im strengen Modus wird eine Anfrage, die Zugangsdaten trägt, die Bromure nicht eingefügt hat, blockiert und löst die Kompromittierungswarnung aus; das deckt einen Schlüssel ab, den der Agent in einer Datei gefunden, aus einem Log kopiert oder mitgebracht hat. Erlauben in der Warnung genehmigt diese Zugangsdaten für die Sitzung. Tokens, die eine Site innerhalb der VM ausstellt (etwa ein Sitzungs-Cookie nach einer Anmeldung), dürfen weiter an diese Site zurückgehen.
Der strenge Modus erzwingt transparentes Abfangen und ignoriert die Liste der nicht abzufangenden Hosts. Roher TCP-Verkehr lässt sich nicht prüfen. Alle Zugangsdaten, die die Maschine einrichtet, brauchen zuerst einen Host-Filter; der Bereich nennt die, denen einer fehlt. Standardmäßig aus; Ihre Organisation kann ihn vorschreiben.
Transparentes Abfangen deaktivieren
Voreingestellt leitet der virtuelle Switch die HTTP- und HTTPS-Verbindungen der VM (Ports 80 und 443) auf der Netzwerkschicht in Bromures Proxy um, sodass der Proxy sie auch dann sieht, wenn ein Programm die Proxy-Einstellungen ignoriert.
Transparentes Abfangen deaktivieren einzuschalten stoppt allein diese erzwungene Umleitung. Programme, die rohe Verbindungen öffnen, und Apps, die Zertifikate anpinnen, erreichen dann das Netz — und das echte Serverzertifikat — direkt. Der Proxy selbst bleibt an: HTTP_PROXY / HTTPS_PROXY bleiben gesetzt, sodass proxy-fähige Werkzeuge (apt, git, pip, curl, node…) und die eigenen API-Aufrufe der Agenten weiter über Bromure gehen und Zugangsdaten-Austausch, Tracing und Schutzmechanismen behalten. Wirkt sofort, ohne Neustart. Nicht verfügbar, solange der strenge Modus an ist.
Benutzen Sie es für eine Maschine mit einem Client, der unter dem Abfangen zerbricht. Solange es an ist, sehen die web-Regeln der Firewall und die Schreibrichtlinien den Verkehr von Programmen nicht, welche die Proxy-Einstellungen umgehen.
Unsichere Umgehung je Anfrage erlauben (X-bromure-insecure)
Ein engerer Notausgang für Server mit selbst ausgestellten Zertifikaten oder privater CA. Scheitert eine Anfrage an so einen Host an der Zertifikatsprüfung, kann der Agent sie mit der Kopfzeile X-bromure-insecure: yes wiederholen, und Bromure prüft das Zertifikat dieses Servers für diese Anfrage nicht. Abfangen, Tracing und der Leck-Wächter bleiben an, und Bromure legt in eine solche Anfrage kein echtes Zugangsmittel — nur die Stellvertreter der VM gehen hinaus. Jeder Gebrauch wird in der Sicherheits-Zeitleiste aufgezeichnet.
Voreingestellt ein: es wirkt nur, wenn die VM die Kopfzeile ausdrücklich sendet. Schalten Sie es aus, um die Kopfzeile von vornherein abzulehnen.
Was der Agent sieht, wenn ein Aufruf blockiert wird
Ein blockierter Aufruf gibt einen gewöhnlichen Fehler im eigenen Format des Dienstes zurück — einen Kubernetes-Status, eine AWS-AccessDeniedException, ein Registry-DENIED — dessen Meldung auf „blocked by Bromure Guardrails" endet. Der Agent sieht einen klaren Fehlschlag, den er melden kann, keine hängende Verbindung. (Lieferketten-Blockaden benutzen stattdessen HTTP 451, sodass sich beide leicht unterscheiden lassen — siehe Lieferkette.)
Grenzen
- Ein Force-Push sieht auf der Leitung wie ein normaler Push aus, Zerstörendes blockieren hält ihn also nicht auf; Nur Lesen und Vor dem Schreiben fragen kontrollieren Pushes sehr wohl. Löschungen über die REST-API der Forge werden erfasst.
- Kubernetes- und Registry-Richtlinien decken nur Hosts aus den kubeconfigs und Registries dieser Maschine; eine Datenbank-Richtlinie braucht den Host des Endpunkts.
- Andere Hosts unterliegen den Host-, Port- und Methodenregeln der Sandbox-Richtlinie, nicht einer Einordnung auf Dienstebene.
Einstellungsreferenz
| Einstellung | Typ | Voreinstellung |
|---|---|---|
| Zustimmung zur Benutzung verlangen | Ankreuzfeld je Zugangsmittel | Aus |
| Schreibrichtlinie | Aus / Vor dem Schreiben fragen / Zerstörendes blockieren / Nur Lesen, je Dienst | Vor dem Schreiben fragen für neue Maschinen |
| Bei Zugangsdaten-Exfiltration nicht warnen | Schalter | Aus |
| Tell the agent when policy blocks it | Schalter | An, solange die Maschine eine OpenShell-Policy benutzt |
| Agent watchdog | Off / Alert / Quarantine | Off |
| Only allow credentials Bromure injects (strict mode) | Schalter | Aus |
| Transparentes Abfangen deaktivieren | Schalter | Aus |
| Unsichere Umgehung je Anfrage erlauben (X-bromure-insecure) | Schalter | Ein |
Verwandte Kapitel
- Zugangsdaten — die Zugangsdaten, die diese Zeilen regeln.
- Sandbox-Richtlinie — die ausgehenden Regeln der Maschine oder ihre OpenShell-Policy.
- Prompt-Injection-Erkennung & Schutzmechanismen — die Durchsetzung im Detail.
- Sicherheitsübersicht und Zeitleiste — jede Blockade und jede Erlaubnis, je Maschine.
- Einstellungsreferenz — alle Bereiche auf einen Blick.