
Angemessenes Sandboxing für agentisches Codieren und Web-Browsing
<p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12434/34941ab5b4f1bafbb04da6cb0f3c974b96fb7d4e24eed8262c7c52d88db550dc.png" width="128" height="128" alt="Bromure icon"> <img src="https://assets.kitploit.com/production/public/readmes/12434/bc6a2ba75157aec6eac22ffc30fe246e2731fb36148f1553060ad9cb39086139.png" width="128" height="128" alt="Bromure Agentic Coding icon"> </p> <h1 align="center">Bromure</h1> <p align="center"> Sicheres, flüchtiges Rechnen in wegwerfbaren Linux-VMs auf macOS. </p> <h2 align="center"> → Vollständige Details, Screenshots und Downloads unter <a href="https://bromure.io">bromure.io</a> </h2> --- Dieses Repo enthält zwei Schwester-Apps, die beide auf Apples [Virtualization.framework](https://developer.apple.com/documentation/virtualization) aufbauen: - **Bromure** — jede Browser-Sitzung läuft in einer Wegwerf-Linux-VM. Fenster schließen, VM wird zerstört. - **Bromure Agentic Coding** — eine sandboxed Umgebung für KI-Coding-Agents (Claude Code, Codex, Grok, Kimi Code, Oh My Pi). Ein hostseitiger MITM-Proxy tauscht gefälschte Credentials gegen echte auf der Leitung aus, sodass Secrets niemals in die VM gelangen, und ergänzt dann Supply-Chain-Scanning, Prompt-Injection-Erkennung, PII-Schutz, ein Multi-Model-Panel, lokale Inferenz und Remote-Zugriff — alles durchgesetzt an dieser einen Grenze. <details> <summary><strong>Wie Bromure Agentic Coding abschneidet</strong></summary> Isolation, Secrets vom Agent fernhalten, ihre Nutzung einschränken, die Supply Chain scannen, Prompt Injection abfangen: Die meisten Tools wählen eines davon. Bromure macht alle fünf an einer einzigen Grenze und ergänzt dann, was ein Secret-Broker niemals könnte: ein Model-Panel, lokale Inferenz und einen Zugang von überall. Hier ist dasselbe Bedrohungsmodell, angewendet auf die Tools, zu denen Menschen greifen, und wo jedes davon an seine Grenzen stößt. Eine detailliertere Feature-Matrix ist unter [bromure.io/en/feature-matrix](https://bromure.io/en/feature-matrix) verfügbar. | Schutz | Dev Container<br><sub>VS Code</sub> | nono<br><sub>Kernel-Sandbox</sub> | agent-vault<br><sub>octokraft</sub> | Agent Vault<br><sub>Infisical</sub> | Docker Sandboxes<br><sub>microVM</sub> | Capsem<br><sub>Air-Gapped-VM</sub> | **Bromure**<br><sub>Agentic Coding</sub> | | --- | --- | --- | --- | --- | --- | --- | --- | | **Sicherheit** | | | | | | | | | **Isolationsgrenze**<br><sub>Wo der Blast Radius endet</sub> | 🟡 Gleicher Container, geteilter Kernel | 🟡 Kernel-Allow-Lists, kein eigener Kernel | ❌ Agent läuft direkt | ❌ Nur Proxy; Agent ungeboxt | ✅ microVM, eigener Kernel | ✅ Hardware-VM, eigener Kernel | ✅ Hardware-VM, eigener Kernel | | **Secrets vom Agent fernhalten**<br><sub>Kann er jemals das echte Credential lesen?</sub> | ❌ Leitet SSH-Agent + Git-Creds weiter | 🟡 Blockiert Key-Dateien; proxyt einige | ✅ Eingespeist; kein Lesepfad | ✅ Proxy hängt sich auf der Leitung an | ✅ Host-Proxy injiziert Header | ❌ Echte API-Keys liegen in der VM | ✅ Stub wird auf der Leitung ausgetauscht | | **Credential-Umfang & Genehmigung**<br><sub>Limits pro Nutzung, Read-only, Ablauf, Zustimmung</sub> | ❌ Kein Scoping pro Nutzung | 🟡 Genehmigungs-Flow + Egress-Filter | 🟡 TTL pro Secret; blockiert Shells | 🟡 Egress-Filter pro Endpoint | 🟡 Domain-Allow-List; In-VM-Code kann es trotzdem nutzen | 🟡 Domain- + Methoden-/Pfad-Egress-Regeln | ✅ Zustimmung pro Ziel + TTL | | **Supply-Chain-Scanning**<br><sub>Bösartige / verwundbare Pakete erkennen</sub> | ❌ Kein Registry-Scanning | ❌ Nur Signierung, kein Paket-Scan | ❌ Außerhalb des Umfangs | ❌ Außerhalb des Umfangs | ❌ Kein Paket-Scanning | ❌ Kein Paket-Scanning | ✅ Age-Gate, OSV, socket.dev, Depi | | **Prompt-Injection-Erkennung**<br><sub>Scanning nicht vertrauenswürdiger Inhalte & Regeldateien</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ PromptGuard + ModernBERT | | **PII-Schutz**<br><sub>Personenbezogene Daten vom Model-Provider fernhalten</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Auf dem Gerät ausgetauscht, in Antworten wiederhergestellt | | **Audit-Trail**<br><sub>Festhalten, was der Agent getan hat</sub> | ❌ Nur Container-Logs | 🟡 Unveränderliches lokales Audit | ❌ | 🟡 Request-Logging | 🟡 Request-Logging | 🟡 Vollständige HTTP-Bodies in SQLite | ✅ Vollständiger Session-Trace, verschlüsselt | | **Supply-Chain-Inventar** <sub>(Enterprise)</sub><br><sub>Eine Aufzeichnung jedes abgerufenen Pakets</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Jede Abhängigkeit + Urteil, durchsuchbar | | **Produktivität** | | | | | | | | | **Agent-Teams**<br><sub>Viele Agents an einer Aufgabe, die miteinander sprechen</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Rooms, Switchboard, @-Delegation | | **Token-Nutzung** <sub>(Enterprise)</sub><br><sub>Welche Dateien die meisten Tokens verbrauchen</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Pro Datei, Repo und Modell | | **Multi-Model-Fusion**<br><sub>Ein Panel von Modellen, bewertet & synthetisiert</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Panel + Judge, auf der Leitung | | **Automatisierungen**<br><sub>Agent läuft nach Zeitplan oder bei GitHub-/Linear-Events</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Zeitplan, GitHub, Linear, verkettet | | **Lokale Modelle**<br><sub>Jeder Provider oder Inferenz auf eigener Hardware</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ On-Device MLX + jeder Provider | | **Lokales Kubernetes**<br><sub>Cluster und Registries neben der Sandbox</sub> | 🟡 DIY via Docker-in-Docker | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ k3s-Cluster + private Registry | | **Agentic Browser**<br><sub>Ein Browser, den der Agent steuert, um seine Arbeit zu testen</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Isoliertes Chromium, agentengesteuert | | **Von überall erreichbar**<br><sub>Sich remote an die Sandbox anhängen</sub> | 🟡 VS Code Remote | ❌ | ❌ | ❌ | 🟡 docker exec, lokal | ❌ | ✅ Mac, iPhone, iPad, CLI oder SSH | ✅ Vollständig — integriert, durchgesetzt · 🟡 Teilweise — eingeschränkt oder optional · ❌ Keine — nicht adressiert > Ein Token zu verstecken ist nicht dasselbe wie seine Nutzung zu regeln. Docker Sandboxes hält den Rohwert aus der VM heraus — aber sein Proxy hängt dieses Credential trotzdem an jede ausgehende Anfrage, die die Sandbox stellt, sodass ein kompromittiertes Paket, das nebenbei installiert wurde, es gegen eine allow-gelistete Domain ausgeben kann, ohne es jemals zu sehen. Nur Bromure scannt das Paket, bevor es läuft, und regelt jede Nutzung — Zustimmung, Read-only, eine TTL — und setzt alle fünf Kontrollen an einer Grenze durch, die der Agent nicht umgehen kann. An derselben Grenze docken auch Fusion, lokale Inferenz und Remote-Zugriff an. <sub>Zusammengestellt aus der öffentlichen Dokumentation der jeweiligen Projekte, Juni 2026. Hier bezeichnet agent-vault [octokraft/agent-vault](https://octokraft.github.io/agent-vault/) (pipe-basierte Secret-Injection), zu unterscheiden von Infisicals Agent Vault (HTTP-Credential-Proxy). Docker Sandboxes ist eine experimentelle Preview, deren gebrokerte Credentials von allem innerhalb der VM weiterhin nutzbar bleiben. Bromures flottenweites Paket-Inventar und Token-Nutzungs-Rollups werden im Bromure Enterprise Manager dargestellt. Diese Tools entwickeln sich schnell — etwas veraltet? Eröffne ein Issue.</sub> </details> <details> <summary><strong>Wie Bromure Web abschneidet</strong></summary> Jeder sichere Browser überwacht das Web. Bromure isoliert es. Talon und Island härten Chromium auf deinem Rechner. Menlo isoliert das Web — in seiner Cloud. Bromure führt jede Sitzung in einer Wegwerf-VM auf deinem eigenen Mac aus: echte Isolation, lokal. Eine detailliertere Feature-Matrix ist unter [bromure.io/en/feature-matrix](https://bromure.io/en/feature-matrix) verfügbar. | Fähigkeit | Talon<br><sub>Prisma Access Browser</sub> | Island<br><sub>Enterprise Browser</sub> | Menlo<br><sub>Remote-Isolation</sub> | **Bromure**<br><sub>Web</sub> | | --- | --- | --- | --- | --- | | **Isolation & Eindämmung** | | | | | | Isoliert nicht vertrauenswürdigen Web-Code von deinem echten OS | ❌ | ❌ | ✅ | ✅ | | Host bleibt sicher, wenn der Browser ausgenutzt wird | 🟡 | ❌ | ✅ | ✅ | | Wegwerf-Sitzungen, die keine Spuren hinterlassen | 🟡 | ❌ | ✅ | ✅ | | Isolation, die lokal läuft, nicht in einer Vendor-Cloud | ❌ | ❌ | ❌ | ✅ | | **Geräte- & Datenkontrollen** | | | | | | Echte Webcam und Mikrofon in einer sicheren Sitzung | ✅ | 🟡 | 🟡 | ✅ | | Download- und Upload-Kontrollen | ✅ | ✅ | ✅ | ✅ | | Malware-Scanning von Downloads | ✅ | 🟡 | ✅ | ✅ | | Copy-Paste- und Screenshot-Kontrollen | 🟡 | ✅ | 🟡 | ✅ | | Blockiert Datenabfluss zu lokalen Druckern, NAS und USB | 🟡 | 🟡 | 🟡 | ✅ | | **Web-Schutz** | | | | | | Phishing-Erkennung | ✅ | ✅ | ✅ | 🟡 | | URL- und Kategorie-Webfilterung | ✅ | ✅ | ✅ | 🟡 | | Integriertes VPN pro Sitzung und IP-Masking | 🟡 | ❌ | 🟡 | ✅ | | Governance für Browser-Erweiterungen | ✅ | ✅ | 🟡 | 🟡 | | **Enterprise-Management** | | | | | | Zentrale Konsole und verwaltete Profile | ✅ | ✅ | ✅ | ✅ | | Sitzungs-Logging und vollständiger Audit-Trail | ✅ | ✅ | ✅ | ✅ | | SIEM- und OpenTelemetry-Export | ✅ | ✅ | ✅ | ✅ | | Nutzung erzwingen via Okta, Workspace oder Entra | ✅ | ✅ | ✅ | ✅ | | Zugriff automatisch entzogen, wenn ein Nutzer offboarded wird | 🟡 | ✅ | 🟡 | ✅ | | Content-aware DLP und Datei-Sanitisierung | ✅ | ✅ | ✅ | 🟡 | | BYOD und nicht verwaltete Geräte | ✅ | ✅ | ✅ | ✅ | | **Plattform & Modell** | | | | | | Läuft auf jeder großen Plattform | ✅ | ✅ | ✅ | 🟡 | | Open Source und kostenlos nutzbar | ❌ | ❌ | ❌ | ✅ | | Läuft auf dem Gerät ohne Cloud pro Seat | 🟡 | 🟡 | ❌ | ✅ | ✅ Integriert · 🟡 Teilweise oder eingeschränkt · ❌ Nicht angeboten > Talon und Island machen den Browser zu einer besser überwachten Eingangstür — aber er läuft weiterhin auf deinem echten OS. Menlo ergänzt echte Isolation und leitet dann jede Seite durch seine Cloud. Bromure ist das einzige, das jede Sitzung in einer Wegwerf-VM auf deinem eigenen Rechner versiegelt: nichts erreicht deinen Mac, nichts verlässt dein Gerät, und das Schließen des Fensters löscht alles davon. <sub>Zusammengestellt aus öffentlicher Produktdokumentation (Palo Alto Networks, Island, Menlo Security) im Juni 2026. Teilweise kennzeichnet Fähigkeiten, die eingeschränkt, optional, lizenzbeschränkt sind oder — bei Bromures Phishing-Erkennung — noch in der Beta sind.</sub> </details> ## Build ```bash ./build.sh # browser app ./build.sh bromure-ac # agentic-coding app swift test # tests ``` Die Ausgaben landen in `.build/arm64-apple-macosx/release/`. ## Architektur Drei SPM-Targets: | Target | Pfad | Hinweise | | --------------- | ------------------------- | --------------------------------------------------------------- | | `bromure` | `Sources/Browser/` | Browser-App + SwiftUI + AppKit-Fensterverwaltung | | `bromure-ac` | `Sources/AgentCoding/` | Agentic-Coding-App + MITM-Proxy + Cloud-Credential-Plumbing | | `SandboxEngine` | `Sources/SandboxEngine/` | Gemeinsamer VM-Lebenszyklus, Image-Verwaltung, virtio-Bridges | Beide Apps wärmen im Hintergrund einen Pool von VMs vor, sodass neue Sitzungen in unter einer Sekunde öffnen. Die Gast-↔-Host-Kommunikation läuft über vsock (Zwischenablage, Dateitransfer, MITM-Proxy). ## Anforderungen - macOS 14 (Sonoma) oder neuer - Apple Silicon (M1 oder neuer) — `Virtualization.framework` unterstützt nur ARM64-Gast-VMs auf Apple-Silicon-Hosts. ## Autor - [Renaud Deraison](https://www.linkedin.com/in/rderaison/) (Prompting) - [Claude + Opus 4.7](https://www.anthropic.com) (Implementierung)