Deutsch

Sandbox

Sandbox

So funktioniert Sandboxing in ChatGPT- und Codex-Clients

Die Sandbox bildet die Grenze, innerhalb derer der Agent autonom handeln kann, ohne uneingeschränkten Zugriff auf Ihren Computer zu erhalten. Wenn ein lokaler Chat Befehle in der ChatGPT-Desktop-App, der Codex CLI oder der IDE-Erweiterung ausführt, werden diese Befehle in einer eingeschränkten Umgebung ausgeführt und erhalten standardmäßig keinen vollständigen Zugriff.

Diese Umgebung legt fest, was der Agent selbstständig tun kann, etwa welche Dateien er ändern darf und ob Befehle das Netzwerk verwenden können. Solange eine Aufgabe innerhalb dieser Grenzen bleibt, kann der Agent ohne Unterbrechung zur Bestätigung weiterarbeiten. Muss er diese Grenzen überschreiten, greift der Genehmigungsablauf.

Funktionsweise der Sandbox

Die Sandbox gilt für gestartete Befehle, nicht nur für integrierte Dateioperationen. Wenn der Agent Tools wie git, Paketmanager oder Testprogramme ausführt, übernehmen diese Befehle dieselben Sandbox-Grenzen.

Codex verwendet auf jedem Betriebssystem plattformeigene Schutzmechanismen. Die Implementierung unterscheidet sich zwischen macOS, Linux, WSL2 und nativem Windows, das Grundprinzip ist jedoch auf allen Oberflächen gleich: Der Agent erhält einen abgegrenzten Arbeitsbereich, sodass Routineaufgaben innerhalb klarer Grenzen autonom ausgeführt werden können.

Warum das wichtig ist

Die Sandbox reduziert die Anzahl ermüdender Genehmigungsanfragen. Statt Sie um Bestätigung für jeden risikoarmen Befehl zu bitten, kann der Agent innerhalb der bereits von Ihnen genehmigten Grenze Dateien lesen, Änderungen vornehmen und routinemäßige Projektbefehle ausführen.

Außerdem erhalten Sie dadurch ein klareres Vertrauensmodell für agentenbasierte Arbeit. Sie vertrauen nicht nur den Absichten des Agenten, sondern auch darauf, dass er innerhalb durchgesetzter Grenzen arbeitet. So können Sie den Agenten leichter selbstständig arbeiten lassen und wissen dennoch, wann er anhält und um Hilfe bittet.

Erste Schritte

Im standardmäßigen Berechtigungsmodus wird Sandboxing automatisch angewendet.

Voraussetzungen

Unter macOS funktioniert Sandboxing ohne weitere Einrichtung über das integrierte Seatbelt-Framework.

Unter Windows verwendet Codex die native Windows-Sandbox, wenn Sie Befehle in PowerShell ausführen, und die Linux-Sandbox-Implementierung, wenn Sie WSL2 verwenden.

Installieren Sie unter Linux und WSL2 zunächst bubblewrap mit Ihrem Paketmanager:

sudo apt install bubblewrap
sudo dnf install bubblewrap

Codex verwendet die erste ausführbare bwrap-Datei, die es unter PATH findet. Ist keine ausführbare bwrap-Datei verfügbar, greift Codex auf ein mitgeliefertes Hilfsprogramm zurück. Dieses setzt jedoch die Unterstützung für die Erstellung nicht privilegierter Benutzer-Namespaces voraus. Durch die Installation des Distributionspakets, das bwrap bereitstellt, bleibt diese Einrichtung zuverlässig.

Codex zeigt beim Start eine Warnung an, wenn bwrap fehlt oder das Hilfsprogramm den erforderlichen Benutzer-Namespace nicht erstellen kann. Bei Distributionen, die diese AppArmor-Einstellung einschränken, sollten Sie das AppArmor-Profil bwrap laden, damit bwrap weiterhin funktioniert, ohne die Einschränkung global zu deaktivieren.

Funktionsweise von Berechtigungen

Verwenden Sie die Berechtigungssteuerung der jeweiligen Oberfläche, um festzulegen, wie Codex lokale Aktionen handhabt.

Genehmigungen bestimmen, wann Codex vor einer Aktion pausiert, während die Sandbox festlegt, auf welche Dateien und Netzwerkressourcen Befehle zugreifen können. Wenn eine Genehmigung verschiedene Geltungsbereiche anbietet, etwa einmalig oder für die Sitzung, wählen Sie den engsten Bereich, mit dem die Aufgabe fortgesetzt werden kann. Behalten Sie die Projektgrenze als Standard bei. Verwenden Sie separate Projekte oder Worktrees, statt den Zugriff auf nicht zusammenhängende Repositorys auszuweiten.

ChatGPT Work führt Code und Shell-Befehle in einer verwalteten, isolierten Umgebung aus. Workspace-Richtlinien und toolspezifische Kontrollen bestimmen, welche Funktionen verfügbar sind. Wenn die Einstellung verfügbar ist, verwalten Sie unter Settings > Data controls > Work network access den Netzwerkzugriff für Code und Shell-Befehle. Aktivieren Sie Allow public internet access, damit diese Befehle auf das öffentliche Internet zugreifen können. Ist die Option deaktiviert, können Befehle nur erforderliche Hostnamen aus einer verwalteten Positivliste erreichen.

Websuche, Plugins und der Remote-Browser verfügen über separate Kontrollen. Änderungen werden wirksam, nachdem die aktuelle Code- oder Shell-Ausführung abgeschlossen ist und Work seine Ausführungsumgebung aktualisiert hat. ChatGPT im Web stellt weder die lokale Codex-Sandbox noch die Auswahl des Genehmigungsmodus bereit.

Verwenden Sie in der ChatGPT-Desktop-App die Berechtigungssteuerung unterhalb des Eingabefelds. Je nach Konfiguration kann das Menü Ask for approval, Approve for me für geeignete Genehmigungsanfragen, Full access sowie benannte oder benutzerdefinierte Berechtigungsprofile enthalten.

Geben Sie in der CLI /permissions ein, um die Berechtigungsauswahl zu öffnen und das aktive Berechtigungsprofil zu ändern.

Verwenden Sie in der IDE-Erweiterung die Berechtigungssteuerung unterhalb des Eingabefelds. Je nach Konfiguration kann das Menü Ask for approval, Approve for me für geeignete Genehmigungsanfragen, Full access sowie benannte oder benutzerdefinierte Berechtigungsprofile enthalten.

Standardwerte konfigurieren

Legen Sie Standardwerte in config.toml fest, damit bei jedem Start dasselbe Verhalten gilt. Grundlagen der Konfiguration erläutert die Funktionsweise, und die Konfigurationsreferenz dokumentiert die genauen Schlüssel für sandbox_mode, approval_policy, approvals_reviewer und sandbox_workspace_write.writable_roots. Legen Sie mit diesen Einstellungen fest, wie viel Autonomie der Agent standardmäßig erhält, in welche Verzeichnisse er schreiben darf, wann er für eine Genehmigung pausieren soll und wer geeignete Genehmigungsanfragen prüft.

Im Überblick sind dies die gängigen Sandbox-Modi:

  • read-only: Der Agent kann Dateien prüfen, aber ohne Genehmigung weder Dateien bearbeiten noch Befehle ausführen.
  • workspace-write: Der Agent kann Dateien lesen, innerhalb des Workspace Änderungen vornehmen und routinemäßige lokale Befehle innerhalb dieser Grenze ausführen. Dies ist der standardmäßige, reibungsarme Modus für lokale Arbeit.
  • danger-full-access: Der Agent wird ohne Sandbox-Einschränkungen ausgeführt. Dadurch entfallen die Dateisystem- und Netzwerkgrenzen. Verwenden Sie diesen Modus nur, wenn der Agent mit vollständigem Zugriff handeln soll.

Die gängigen Genehmigungsrichtlinien sind:

  • untrusted: Der Agent fragt nach, bevor er Befehle ausführt, die nicht zu seiner vertrauenswürdigen Gruppe gehören.
  • on-request: Der Agent arbeitet standardmäßig innerhalb der Sandbox und fragt nach, wenn er diese Grenze überschreiten muss.
  • never: Der Agent hält nicht für Genehmigungsanfragen an.

Bei interaktiven Genehmigungen können Sie mit approvals_reviewer außerdem festlegen, wer sie prüft:

  • user: Genehmigungsanfragen werden dem Benutzer angezeigt. Dies ist die Standardeinstellung.
  • auto_review: Geeignete Genehmigungsanfragen werden an einen Prüfagenten gesendet (siehe automatische Prüfung).

Vollzugriff bedeutet, sandbox_mode = "danger-full-access" zusammen mit approval_policy = "never" zu verwenden. Die risikoärmere Voreinstellung für lokale Automatisierung besteht dagegen aus sandbox_mode = "workspace-write" zusammen mit approval_policy = "on-request" oder den entsprechenden CLI-Flags --sandbox workspace-write --ask-for-approval on-request. Anschließend können Sie approvals_reviewer = "user" für manuelle Genehmigungen beibehalten oder approvals_reviewer = "auto_review" für eine automatische Genehmigungsprüfung festlegen.

Wenn der Agent in mehreren Verzeichnissen arbeiten soll, können Sie die änderbaren Bereiche um zusätzliche Speicherorte erweitern, ohne die Sandbox vollständig zu entfernen. Wenn Sie eine weiter oder enger gefasste Vertrauensgrenze benötigen, passen Sie den standardmäßigen Sandbox-Modus und die Genehmigungsrichtlinie an, statt sich auf einmalige Ausnahmen zu verlassen.

Wenn ein Workflow eine bestimmte Ausnahme benötigt, verwenden Sie Regeln. Mit Regeln können Sie Befehlspräfixe außerhalb der Sandbox zulassen, zur Bestätigung vorlegen oder verbieten. Das ist häufig besser geeignet, als den Zugriff allgemein auszuweiten. IDE-spezifische Einstellmöglichkeiten finden Sie unter Einstellungen der Codex-IDE-Erweiterung.

Die automatische Prüfung ändert, sofern verfügbar, die Sandbox-Grenze nicht. Sie ist eine mögliche approvals_reviewer für Genehmigungsanfragen an dieser Grenze, etwa Sandbox-Eskalationen, blockierter Netzwerkzugriff oder Tool-Aufrufe mit Nebenwirkungen, die weiterhin genehmigt werden müssen. Aktionen, die innerhalb der Sandbox bereits zulässig sind, werden ohne zusätzliche Prüfung ausgeführt. Einzelheiten zum Lebenszyklus des Prüfagenten, zu Auslösertypen, zur Bedeutung von Ablehnungen und zur Konfiguration finden Sie unter automatische Prüfung.

Plattformspezifische Einzelheiten finden Sie in der Dokumentation der jeweiligen Plattform. Informationen zur Einrichtung, zum Verhalten und zur Fehlerbehebung unter nativem Windows finden Sie unter Windows. Informationen zu Administratoranforderungen und organisationsweiten Einschränkungen für Sandboxing und Genehmigungen finden Sie unter Agentengenehmigungen und Sicherheit.