Zum Inhalt springen

Sicherheit

Im Februar 2025 veröffentlichte LayerX Security Research eine kritische Zero-Click-Schwachstelle für Remote-Code-Ausführung im Extensions-Framework (DXT) von Anthropics Claude Desktop. Extensions laufen ohne Sandbox mit vollen Systemberechtigungen und fungieren als Ausführungsbrücken zwischen dem Sprachmodell und dem lokalen Betriebssystem.

Viele IT-Sicherheitsteams in Unternehmen verlangen mittlerweile, dass KI-Coding-Tools nur in dedizierten virtuellen Maschinen, Containern oder Wegwerfumgebungen ausgeführt werden — nicht direkt auf Unternehmensendgeräten.

Dieser Devcontainer erfüllt diese Anforderung.

+------------------------------------------------+
| Host-Rechner (Unternehmensendgerät) |
| |
| - Keine KI-Tool-Binärdateien installiert |
| - Keine KI-Tool-Extensions oder Plugins |
| - Nur Docker wird benötigt |
| |
| +------------------------------------------+ |
| | Docker-Container (isoliert) | |
| | | |
| | KI-Tools laufen hier: | |
| | - Claude Code CLI | |
| | - Codex | |
| | | |
| | Kein Zugriff auf: | |
| | x Host-Dateisystem | |
| | x Host-Schlüsselbund / Anmeldedaten | |
| | x Host-Zwischenablage | |
| | x Host-Netzwerkschnittstellen | |
| | x Andere Host-Anwendungen | |
| +------------------------------------------+ |
+------------------------------------------------+

Alle Daten befinden sich in benannten Docker-Volumes — nicht in bind-gemounteten Host-Verzeichnissen. Eine Kompromittierung innerhalb des Containers kann nicht auf Dateien auf Ihrem Host-Rechner zugreifen. Siehe Konfiguration — Datenpersistenz für Details zu den Volumes.

Der Container hat keinen Zugriff auf den macOS-Schlüsselbund, den Windows-Anmeldeinformationsspeicher, Browser-Profile oder den SSH-Agent des Hosts. SSH-Schlüssel werden beim Start über eine base64-kodierte Umgebungsvariable injiziert und existieren nur innerhalb des Containers.

Docker-Container teilen den Zwischenablage-Status nicht mit dem Host. Daten können nicht durch Kopieren/Einfügen abfließen.

Der Container kommuniziert mit der Außenwelt in einem von zwei unterstützten Authentifizierungsmodi:

  • LiteLLM-Proxy-Modus — ausgehendes HTTPS zu Ihrem LiteLLM-Proxy über Dockers NAT.
  • OAuth-Modus — ausgehendes HTTPS direkt zu Anthropic über Dockers NAT.

Der Container hat keinen Zugriff auf VPN-Tunnel, Unternehmensnetzwerkschnittstellen oder andere Dienste auf dem Host.

Die gesamte Umgebung kann in Sekunden zerstört und neu erstellt werden. Behandeln Sie den Container als Wegwerfprodukt.

Terminal-Fenster
docker compose down -v
docker compose pull && docker compose up -d

Diese Umgebung führt KI-Tools ausschließlich als Kommandozeilenschnittstellen aus. Keine Desktop-Anwendungen, keine Browser-Extensions, keine DXT-Frameworks. Die Schwachstelle, die dieses Isolationsmodell veranlasst hat, betrifft die CLI-Nutzung innerhalb eines Containers nicht.

Die docker-compose.yml wendet mehrere Defense-in-Depth-Maßnahmen an:

  • Capability-Dropping — Alle Linux-Capabilities werden entfernt (cap_drop: ALL), dann wird nur die minimale Menge wieder hinzugefügt: CHOWN, DAC_OVERRIDE, FOWNER (für Volume-Berechtigungskorrekturen im Entrypoint), SETUID/SETGID (für sudo), NET_RAW (für ping/tcpdump) und NET_ADMIN (für Paketerfassungstools wie Wireshark und bettercap).
  • Ressourcenlimits — CPU (4 Kerne), Arbeitsspeicher (8 GB) und PID-Anzahl (4096) werden über mem_limit, cpus und pids_limit begrenzt, um Ressourcenerschöpfungsangriffe zu verhindern.
  • tmpfs für /tmp — Das /tmp-Verzeichnis wird als 256 MB tmpfs gemountet, wodurch temporäre Dateien im Arbeitsspeicher gehalten werden und nicht in die beschreibbare Schicht des Containers persistiert werden.
  • TLS-Validierung standardmäßig aktiviertNODE_TLS_REJECT_UNAUTHORIZED ist nicht gesetzt, sodass Node.js TLS-Zertifikate standardmäßig validiert. Benutzer, die selbstsignierte Zertifikate akzeptieren müssen (z. B. für einen internen Proxy), können dies aktivieren, indem sie NODE_TLS_REJECT_UNAUTHORIZED=0 zu ihrer .env-Datei hinzufügen.
  • SSH-Schlüssel-umask — SSH-Privatschlüssel werden mit umask 077 geschrieben, sodass die Datei niemals weltlesbar ist — auch nicht kurzzeitig — zwischen Erstellung und dem chmod-Aufruf.

Der Container enthält etwa 80 vorinstallierte Sicherheits- und Penetrationstest-Tools für autorisierte Testszenarien. Die Tools sind nach Kategorien organisiert:

KategorieTools (Beispiele)
Netzwerkanalysetshark, wireshark, masscan, hping3, bettercap (amd64), netdiscover
Web-Scannernikto, sqlmap, dirb, whatweb, sslscan, OWASP ZAP, dalfox, feroxbuster
Passwort und Authentifizierunghydra, john, hashcat, medusa, ncrack
Reverse Engineeringradare2, Ghidra, gdb, binwalk, strace, ltrace
Aufklärungsubfinder, amass, httpx, nuclei, gau, waybackurls, recon-ng, spiderfoot
Fuzzing und Enumerationffuf, gobuster, SecLists
Lieferkette und Geheimnissetrufflehog, grype, syft, gitleaks, trivy
Exploitation-FrameworksMetasploit (amd64), searchsploit (ExploitDB)

Einige Tools (bettercap, Metasploit) sind aufgrund von Einschränkungen bei der Upstream-Paketierung nur auf amd64 verfügbar. Paketerfassungstools (tshark, bettercap) benötigen die NET_ADMIN-Capability, die in der Standard-docker-compose.yml enthalten ist.

Für die vollständige Liste führen Sie claude-self-test innerhalb des Containers aus (Abschnitt 7 prüft alle Sicherheitstools).

AnforderungStatus
KI-Tools nicht auf dem Host-Endgerät installiertJa
Läuft in isolierter VM oder ContainerJa
Kein Zugriff auf Host-DateifreigabenJa
Keine Zwischenablage-SynchronisierungJa
Keine gemeinsamen AnmeldedatenspeicherJa
Kein VPN-Split-Tunneling in ProduktionsnetzwerkeJa
Umgebung ist wegwerfbarJa
Keine Desktop-Extensions oder PluginsJa
Linux-Capabilities entfernt (Least-Privilege)Ja
Ressourcenlimits durchgesetzt (CPU/Arbeitsspeicher/PIDs)Ja
TLS-Zertifikatvalidierung standardmäßig aktiviertJa
Interne Dienste nur an localhost gebundenJa
  1. Installieren Sie keine KI-Coding-Tools auf Ihrem Host-Rechner. Verwenden Sie stattdessen diesen Container.
  2. Fügen Sie keine Bind-Mounts zur docker-compose.yml hinzu. Die Named-Volume-Konfiguration ist beabsichtigt.
  3. Rotieren Sie SSH-Schlüssel, die innerhalb des Containers verwendet werden, regelmäßig.
  4. Überprüfen Sie .env vor dem Teilen. Sie enthält API-Schlüssel und kann SSH-Privatschlüssel enthalten.
  5. Aktualisieren Sie regelmäßig, um Sicherheitspatches zu erhalten:
Terminal-Fenster
docker compose pull && docker compose up -d