
Die Ausführungssicherheitsschicht für das agentenbasierte Zeitalter. Bietet deterministische 'Sudo'-Governance und Prüfprotokolle für autonome KI-Agenten.
Was hat dein KI-Agent eigentlich gemacht? Finde es heraus.
Node9 sitzt zwischen deinem KI-Agenten und den Tools, die er verwenden kann – entdecke, was er bereits getan hat, schütze in Echtzeit vor riskanten Aktionen und prüfe, was über einen beliebigen Zeitraum passiert ist.
Funktioniert mit Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · jedem beliebigen MCP-Server.
rm -rf, git push --force, DROP TABLE, Credential-Lesevorgänge, curl | bash, AWS/GitHub/Stripe-Key-LeaksDies ist mein eigener Rechner – 90 Tage beim Bau von Node9. Bewertung 25/100, 5 Credential-Dateien, die ein KI-Agent sofort erreichen könnte.
npx node9-ai scan # vor der Installation, läuft in ~10s, lädt nichts hoch
node9 scan # nach der Installation, gleiche Ausgabe
Node9-Scan-Bewertungskarte
node9 posture bewertet, wie exponiert dieser Rechner gegenüber einem kompromittierten Agenten ist – Isolation, Egress, Geheimnisse auf der Festplatte, Lieferkette, Privilegien – und reicht dir den genauen Befehl, um jeden Befund zu beheben.
node9 posture # Scorecard mit dem #1-Risiko und einer Lösung für jeden Befund
node9 posture --ship # sende eine geschwärzte Zusammenfassung an dein Node9-Dashboard (Fleet-Ansicht)
Die Befunde sind gruppiert nach wer sie beheben kann: 🔒 diejenigen, die Node9 reduziert (einfach den Befehl ausführen) und 🧱 diejenigen, die nur du beheben kannst. Jeder trägt eine verständliche Was / Warum / Wer-Erklärung und eine echte Abhilfe – z. B. verweist der Befund "Agent läuft ohne Sandbox auf dem Host" direkt auf node9 sandbox run (unten).
🛡️ Node9 Posture – Agent auf diesem Host Score: 100/100 (Gut)
2 Hinweise unten beeinflussen die Bewertung nicht – OS-Exposition, deine eigene Entscheidung.
🟢 Node9 schützt dich bereits
✅ Geheimnisse Node9 DLP blockiert dies
✅ Egress Node9 Egress setzt auf Genehmigungspflicht
✅ Genehmigungstür Node9 blockiert dies
✅ Privilegien Node9 setzt auf Genehmigungspflicht
🔒 Node9 reduziert diese – führe den Befehl aus, der Rest liegt bei dir
⚠️ Isolation Läuft direkt auf dem Host – kein Container
Der Agent läuft lose auf deiner ganzen Maschine, nicht in einer Sandbox.
→ node9 sandbox run <agent> — kerkere ihn ein: Kernel-Egress + eingeschränkte Mounts + Node9 innen
→ node9 shield enable project-jail — oder verkleinere den Schadensradius, behalte Host-Zugriff
⚠️ Netzwerk-Exposition 4 Dienste auf 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
Vom gesamten Netzwerk aus erreichbar, nicht nur von diesem Laptop.
→ node9 shield enable postgres|redis — Node9 blockiert DROP TABLE / FLUSHALL
→ binde es an 127.0.0.1 / firewalle den Port (dein Teil)
✅ Supply Chain keine Probleme gefunden
✅ Abdeckung keine Probleme gefunden
Verfolge dies über deine Flotte & halte es grün → node9.ai
node9 scan-repo überprüft jedes Repository (oder einen lokalen Ordner) auf Möglichkeiten, wie ein KI-Agent, der in GitHub Actions eingebunden ist, von einem Außenstehenden gekapert werden könnte – injizierbare Workflows, für den Agenten erreichbare Geheimnisse, nicht fixierte MCP-Server, zu weit gefasste Agentenkonfiguration und vergiftete Anweisungsdateien. Statisch und nur parsend: Es liest nur die eingecheckte Konfiguration, führt niemals Repo-Code aus. Keine Installation oder Token für öffentliche Repos erforderlich.
npx node9-ai scan-repo <owner/repo> # jedes öffentliche Repo, keine Installation
node9 scan-repo . # ein lokaler Checkout – kein Netzwerk
node9 scan-repo <owner/repo> --json # maschinenlesbar
🛡️ node9 scan-repo · node9-ai/agent-security-demo · ⚠️ agent-security Risiko gefunden
überprüft 2 Konfigurationsdatei(en), 2 Befund(e)
🔴 KRITISCH Injizierbarer Agent-Workflow – nicht vertrauenswürdige Eingabe erreicht einen tool-verwendenden Agenten mit Geheimnissen
.github/workflows/vulnerable-example.yml · CI-2
• läuft mit Basis-Repo-Geheimnissen (pull_request_target)
• checkt den nicht vertrauenswürdigen PR-Head in das Arbeitsbereichs-Root aus
• allowed_non_write_users: "*" – jeder Benutzer kann den Agenten auslösen
• keine effektive Akteur-Sperre
🔴 KRITISCH Exfiltrierbare Geheimnisse, erreichbar durch einen injizierbaren Agenten
.github/workflows/vulnerable-example.yml · CI-4
• Agent hat beliebige Shell (reines Bash) → kann Umgebungsvariablen lesen und exfiltrieren
Was es prüft:
Jeden PR vorschalten – die gleiche Engine als GitHub Action, damit eine kaperbare Konfiguration nicht gemerged werden kann:
# .github/workflows/agent-security.yml
- uses: node9-ai/agent-security-action@v1
with:
fail-on: high # oder 'never' für nur Kommentar
Marketplace: Node9 Agent Security Check
Node9-Monitor-Dashboard
node9 monitor öffnet ein interaktives Terminal-Dashboard mit zwei Ansichten:
[1] Echtzeit – Live-Aktivität, Genehmigungen, Sicherheitswarnungen, aktueller Risikoscore[2] Bericht – Zusammenfassung über einen Zeitraum: Kosten, Top-Tools, ausgelöste Schutzschilde, SchadensradiusDrücke im Monitor [2] für eine Zusammenfassung über einen Zeitraum. Wechsle den Zeitraum mit [T]oday · [W]eek · [M]onth · [N]inety – gleiche Panels wie der Scan oben, basierend auf deinem Audit-Log nach der Installation.
Node9-Monitor[2] Bericht
node9 monitor # drücke [2] für Berichtsansicht
node9 report --period 7d # CLI-Form, kein TUI
# macOS / Linux
brew tap node9-ai/node9 && brew install node9
# oder via npm (jede Plattform)
npm install -g node9-ai
node9 init # verbindet automatisch alle erkannten Agenten + MCP-Server
node9 doctor # überprüfe, ob alles korrekt verbunden ist
Erfordert Node.js 18+.
Jeder Schutzschild ist ein kuratiertes Regelset für einen Dienst oder eine Domäne. Aktiviere nur, was du brauchst.
node9 shield list # zeige alle Schutzschilde + Status
git push --force, git reset --hard, git clean -fdDELETE / UPDATE ohne WHERE, DROP TABLE, TRUNCATEcurl | bash, nicht autorisiertes sudo~/.zshrc, ~/.bashrc)Wenn Node9 eine Aktion zur Überprüfung markiert (z. B. git push --force, ein DROP TABLE), wird die Genehmigen/Ablehnen-Aufforderung inline in der Agentenkonversation angezeigt – kein eingefrorenes Session, kein separates Terminal, kein Hook-Timeout-Rennen. Node9 führt dennoch die vollständige Bewertung durch und trifft die Entscheidung; nur die Aufforderungs-Oberfläche wird zum Agenten verschoben.
ask unterstützt. Jeder andere Agent (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) verwendet Node9s eigenen Genehmiger.reviewChannel in ~/.node9/config.json (oder --no-ask am Hook):{
"settings": {
"reviewChannel": "ask", // "ask" = inline Agentenaufforderung (Standard) | "approver" = Node9s eigener Genehmiger
},
}
approvers.cloud: true), werden Überprüfungen dorthin weitergeleitet – Node9 lässt keine inline-Selbstgenehmigung zu, die eine weitergeleitete/zweiseitige Genehmigung umgeht.Wenn Überwachen nicht ausreicht, führt node9 sandbox den Agenten in einem Einweg-Container mit einer kernel-erzwungenen Egress-Allowlist und eingeschränkten Mounts aus – während Node9s Hooks jeden Tool-Aufruf innerhalb der Kiste überwachen und auditieren. Die harte Version des Schutzes: Der Agent kann nur den Ordner berühren, den du mountest, und die Hosts erreichen, die du erlaubst; alles andere wird am Kernel verworfen.
cd ~/mein-projekt
node9 sandbox new # schreibe node9.sandbox.yaml – was gemountet werden soll + welche Hosts erlaubt sind
node9 sandbox run # baue + starte den eingekerkerten Agenten (dein Projekt unter /workspace)
node9 sandbox tail # beobachte die Aktionen des Agenten live, vom Host aus
Ehrlicher Umfang (Phase 1): Einzelner Container, Claude zuerst (Codex als nächstes); der Agent behält im Container dennoch seine eigenen Anmeldedaten (die Egress-Mauer beschränkt sie auf die erlaubten Hosts) – "Der Agent hat nie ein Geheimnis" ist die Credential-Broker-Phase auf der Roadmap. Erfordert Docker.
Wickle jeden MCP-Server transparent ein. Der Agent sieht denselben Server – Node9 fängt jeden Tool-Aufruf ab.
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
Oder führe einfach node9 init aus – es wickelt deine vorhandenen MCP-Server automatisch ein.
MCP-Server können ihre Tool-Definitionen zwischen Sitzungen ändern. Ein kompromittierter oder bösartiger Server könnte nach deiner ersten Vertrauensbekundung stillschweigend Tools hinzufügen, entfernen oder ändern – ein Rug Pull-Angriff.
Node9 pinnt Tool-Definitionen bei der ersten Verwendung:
node9 mcp pin list # alle gepinnten Server und Hashes anzeigen
node9 mcp pin update <serverKey> # Pin entfernen, bei nächster Verbindung neu pinnen
node9 mcp pin reset # alle Pins löschen
Neben den drei Flussbefehlen oben (scan / monitor / report):
Außerdem ein Live-HUD in deiner Claude-Code-Statuszeile:
🛡 node9 | standard | [bash-safe] | ✅ 12 erlaubt 🛑 2 blockiert 🚨 0 dlp | ~$0,43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 Regeln | 3 MCPs | 4 Hooks
Node9 zeigt das Signal an. Hier sind die Muster, die es wert sind, bekannt zu sein:
Einmalige Signale sind normal; anhaltende Muster sind das, worauf du reagierst.
from node9 import configure, protect
configure(agent_name="my-agent", policy="require_approval")
@protect("bash")
def run_command(cmd: str) -> str:
...
Python SDK → · CI-Code-Review-Agent-Beispiel →
~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ – keine API-Aufrufe, vollständig offline~/.node9/audit.log.tools/list + tools/call JSON-RPC ab, leitet den Rest weiter~/.node9/snapshots/<hash16>/ – berührt niemals dein .gitKonfigurationsreferenz, intelligente Regeln, zustandsbehaftete Regeln, vertrauenswürdige Hosts, Genehmigungsmodi, CLI-Referenz – auf node9.ai/docs.
Node9 Pro fügt Governance-Sperren, SAML/SSO, zentralen Audit-Export und VPC-Bereitstellung hinzu. Siehe node9.ai.
Apache-2.0
Entwickelt mit ☕ und gesunder Paranoia.
| Check | Flaggen |
|---|
| CI-1 | eingecheckte Agentenkonfiguration, die breite Tools vorautorisierte oder Remote-Hooks ausführt |
| CI-2 | injizierbare Agent-Workflows – ein Außenstehender kann den Agenten auslösen und kapern |
| CI-3 | nicht fixierte / @latest MCP-Server oder Inline-Credentials (Supply Chain) |
| CI-4 | Geheimnisse, die ein injizierter Agent exfiltrieren könnte |
| CI-6 | vergiftete oder gefährliche Anweisungen in CLAUDE.md / AGENTS.md / Skills |
| Schutzschild | Was es abfängt | Aktivieren |
|---|
project-jail | Blockiert Lesevorgänge auf ~/.ssh, ~/.aws, .env, Credentials via Bash- und Read-Tool | node9 shield enable project-jail |
bash-safe | curl | bash, rm -rf /, Festplatten-Überschreibung, eval von Remote | node9 shield enable bash-safe |
postgres | DROP TABLE, TRUNCATE, DROP COLUMN, DELETE ohne WHERE | node9 shield enable postgres |
mongodb | dropDatabase, drop(), deleteMany({}), Index-Löschungen | node9 shield enable mongodb |
redis | FLUSHALL, FLUSHDB, CONFIG SET auf einem Live-Server | node9 shield enable redis |
aws | S3-Löschungen, EC2-Terminierung, IAM-Änderungen, RDS-Zerstörung | node9 shield enable aws |
k8s | Namespace-Löschungen, helm uninstall, Cluster-Role-Wipes | node9 shield enable k8s |
docker | system prune, volume prune, rm -f von Containern | node9 shield enable docker |
github | gh repo delete, Remote-Branch-Löschung, Einstellungsänderungen | node9 shield enable github |
filesystem | chmod 777, Schreibvorgänge unter /etc/, /boot/, /usr/ | node9 shield enable filesystem |
mcp-tool-gating | Nicht genehmigte MCP-Tools, die still neue Fähigkeiten aktivieren | node9 shield enable mcp-tool-gating |
node9 undo| Befehl | Was es zeigt | Wann verwenden |
|---|
node9 blast | Was ein KI-Agent sofort erreichen kann – Dateien, Credentials, Envs | Als erstes auf jedem Rechner ausführen |
node9 tail | Live-Stream jedes Tool-Aufrufs (nur Text, kein TUI) | In andere Tools pipen, CI, Logs |
node9 sessions | Sitzungsverlauf mit Prompt, Tool-Trace, Kosten, Snapshot | Überprüfung einer Übergabe oder vergangenen Arbeit |
node9 dlp | Credential-Leak-Befunde im Claude-Antworttext | Jedes Mal, wenn ein DLP-Desktop-Alarm ausgelöst wird |
node9 mask | Klartext-Geheimnisse aus lokalen Sitzungsverlaufsdateien schwärzen | Nach einem DLP-Befund – bereinigt lokale Festplatte |
| Signal | Wahrscheinliche Bedeutung |
|---|
Would have blocked ≥ 5 in einer Woche | Der Agent führt Aktionen mit hohen Auswirkungen aus; Schutzschilde sind eine Überprüfung wert |
Einzelne review-git-push-Regel >50% der Befunde | Deine eigene Regel feuert wie beabsichtigt – kein Risiko, nur Aufsicht |
DLP-Befund in user-prompt-Tool | Du hast ein Geheimnis in deinen eigenen Prompt eingefügt – rotiere den Schlüssel |
| Agent Loop ×50+ auf derselben Datei | Agent steckt in Bearbeiten/Testen/Beheben-Schleife fest – überprüfe Kontext oder verlangsame |
| MCP-Tool-Pin-Konflikt | Server hat seine Tools geändert – vor erneuter Vertrauensgewährung überprüfen |
| Große MCP-Antwortwarnung | Dieser Server bläht dein Kontextfenster für jede nachfolgende Runde auf |
Response DLP-Alarm | Claude hat ein Geheimnis in seinen Antworttext geschrieben – nicht blockiert, sofort rotieren |
DLP-Befund in tool-result | Claude hat eine Datei gelesen, die ein Geheimnis enthält (.env, Credentials) – rotiere den Schlüssel und führe node9 mask aus |
DLP-Befund in [Shell] | Klartext-Geheimnis in ~/.zshrc oder ~/.bashrc – jede KI-Sitzung kann es sehen |
ipset/iptables-Egress-Wand mit Standardverweigerung versiegeln, dann zu einem Nicht-Root-Agenten mit Node9s Daemon + Hooks im Inneren wechseln; nur die Credential-Datei des Agenten wird gemountet, niemals dein ganzes ~/.claude