{
  "kind": 30023,
  "id": "3cd035fcb481ae39117b30b7b32b853798468cd15a06cf58d45c29c49271f456",
  "pubkey": "c1baf4f74cd829963828b1da8d73e52cc94caa6d8dc944f7ca450a75c4b3311f",
  "created_at": 1773121285,
  "tags": [
    [
      "d",
      "sichere-arbeitsumgebung-macos-setup-guide"
    ],
    [
      "title",
      "Sichere Arbeitsumgebung auf macOS. Setup Guide"
    ],
    [
      "summary",
      "Setup Guide für eine isolierte Security-Arbeitsumgebung auf macOS: Lima-VMs, Trivy-Scanner, LLM Guard (4-Schichten Prompt-Injection-Schutz) und Soul Signing für KI-Agenten-Identitäten über Nostr. Alles lokal, kein Cloud-Backend."
    ],
    [
      "published_at",
      "1773121280"
    ],
    [
      "t",
      "lima"
    ],
    [
      "t",
      "trivy"
    ],
    [
      "t",
      "llm-guard"
    ],
    [
      "t",
      "security"
    ],
    [
      "t",
      "nostr"
    ],
    [
      "t",
      "soul-signing"
    ]
  ],
  "content": "# Sichere Arbeitsumgebung auf macOS. Setup Guide\n*Getestet auf iMac Intel i7, 40 GB RAM, macOS Tahoe 26.3*\n\n---\n\n> **Zusammenfassung:** Dieses Setup kombiniert Lima (leichtgewichtige Linux-VMs), Trivy (Security-Scanner) und LLM Guard (Prompt-Injection-Schutz) zu einer isolierten Arbeitsumgebung auf macOS. Unbekannte Repos werden in der VM gescannt und ausgeführt, nie direkt auf dem Host. LLM Guard schützt das Terminal mit 4 Schichten (Little Snitch, Network Monitor, Shell Guard, Content Scanner). Soul Signing sichert KI-Agenten-Identitäten kryptografisch über Nostr ab. Alles lokal, kein Cloud-Backend.\n\n---\n\n## Inhalt\n\n- [Hintergrund & Problem](#hintergrund--problem)\n- [Die Tool-Landschaft](#die-tool-landschaft-überblick)\n- [Mein Setup. Schritt für Schritt](#mein-setup-schritt-für-schritt)\n- [Der Scan-Workflow](#der-scan-workflow)\n- [Scan-Ergebnisse richtig lesen](#scan-ergebnisse-richtig-lesen)\n- [Drei-Stufen-Modell](#drei-stufen-modell)\n- [Mehrere VMs mit Lima](#mehrere-vms-mit-lima)\n- [Agentischer Workflow. OpenClaw + MCP Shell + Lima](#agentischer-workflow-openclaw--mcp-shell--lima)\n- [LLM Guard. Eigenentwicklung](#llm-guard-eigenentwicklung-steven-noack)\n- [Agenten-Identität schützen (Soul Signing)](#eine-ebene-tiefer-agenten-identität-schützen)\n- [Prompt Injection Detection Tools](#prompt-injection-detection--llm-security-tools)\n- [Wichtige Befehle. Kurzreferenz](#wichtige-befehle-kurzreferenz)\n\n---\n\n## Hintergrund & Problem\n\nDas klassische `git clone && ./install.sh` ist ein echtes Sicherheitsrisiko. Viele Entwickler installieren Repos \"blauäugig\" ohne zu prüfen, was darin steckt. Dieses Dokument beschreibt einen pragmatischen Workflow um das zu ändern. Ohne aufwändige VM-Infrastruktur.\n\n**Ziel:** Eine ressourcenschonende, isolierte Arbeitsumgebung auf macOS Intel (funktioniert auch auf M-Chips) die als Schweizer Taschenmesser für Security-Arbeit dient.\n\n---\n\n## Die Tool-Landschaft. Überblick\n\nBevor wir zum konkreten Setup kommen, hier eine Übersicht der relevanten Tools und wann man sie nutzt.\n\n### Virtualisierung & Isolation\n\n#### Lima (Linux Machines) ✅ *Mein Kern-Tool*\n- **Was es ist:** Eine schlanke Linux-VM für macOS, läuft unsichtbar im Hintergrund\n- **Wie es funktioniert:** Echter Linux-Kernel, aber kein grafisches Fenster. Reine CLI\n- **Besonderheit:** Automatisches File-Sharing zwischen macOS und der VM\n- **Ressourcen:** ~100–500 MB RAM, startet in Sekunden\n- **Wann nutzen:** Isolierte CLI-Security-Arbeit, unbekannte Repos sicher ausführen\n- **Wann nicht:** Wenn eine grafische Oberfläche gebraucht wird\n\n#### UTM\n- **Was es ist:** Kostenlose VM-Software speziell für macOS (QEMU-basiert)\n- **Wie es funktioniert:** Vollständige Desktop-VMs mit GUI\n- **Wann nutzen:** ParrotOS/Kali mit grafischer Oberfläche (Burp Suite etc.)\n- **Ressourcen:** 3–15 GB RAM je nach Distro\n- **Hinweis:** Ersetzt VMware/VirtualBox kostenlos\n\n#### VMware Fusion / VirtualBox\n- Für unseren Usecase **nicht notwendig**. UTM ersetzt sie kostenlos auf macOS\n\n#### Docker Desktop\n- Container-basiert, teilt den Host-Kernel\n- Braucht im Hintergrund trotzdem eine Mini-VM auf macOS\n- Ressourcenintensiver als Lima\n\n#### OrbStack\n- Leichteste \"komfortable\" Alternative zu Docker Desktop auf macOS\n- ~150 MB RAM, sehr schneller Start, hat eine GUI\n- Nach Trial-Phase kostenpflichtig für kommerzielle Nutzung\n- Ressourcenverbrauch: Docker Desktop > Podman ≈ OrbStack > Lima\n\n#### Podman\n- Alternative zu Docker, läuft ohne Root-Rechte (sicherer)\n- Auf macOS: braucht ebenfalls eine Mini-VM im Hintergrund\n- Verfügbar: `brew install podman`\n\n#### Distrobox\n- **Läuft nur auf Linux.** Auf macOS nur innerhalb von Lima nutzbar\n- Erlaubt verschiedene Linux-Distros als Container auf einem Linux-Host\n- Killer-Feature: GUI-Apps aus dem Container öffnen sich im normalen Desktop\n- Für macOS-User erstmal nicht relevant\n\n---\n\n### Linux-Distributionen (Distros)\n\n\"Distro\" ist kein Tool. Es ist der Begriff für eine Linux-Betriebssystem-Variante.\n\n| Distro | Charakter | Für wen |\n|---|---|---|\n| **Ubuntu** | Stabil, bestdokumentiert, viele Packages | Ideal als Lima-Basis |\n| **Debian** | Noch stabiler, etwas konservativer | Server, Langzeitbetrieb |\n| **ParrotOS Security** | Security-Tools vorinstalliert, MATE-Desktop | Pentester mit GUI-Bedarf |\n| **ParrotOS Headless** | ParrotOS ohne GUI | CLI-Security in Lima möglich |\n| **Fedora** | Cutting-edge Packages, Red Hat-Basis | Entwickler die Neues wollen |\n| **Arch Linux** | Minimalistisch, nur das Nötigste | Experten, maximale Kontrolle |\n| **Kali Linux** | Security-fokussiert, viele Tools | Pentesting, ähnlich wie ParrotOS |\n\n**Empfehlung für Lima:** Ubuntu. Alle Tools verfügbar, beste Dokumentation, stabilste Basis.\n\n**Zu ParrotOS in Lima:** Die Security-Variante mit GUI läuft nicht sinnvoll in Lima (kein Display-Adapter). ParrotOS Headless würde funktionieren, bringt aber keinen Vorteil gegenüber Ubuntu + manuell installierten Tools.\n\n---\n\n### Security-Scanner Tools\n\n#### Trivy ✅ *Mein Haupt-Scanner*\n- **Was es ist:** All-in-One CLI-Scanner von Aqua Security\n- **Was es scannt:** Dependencies, Secrets/API Keys, CVEs, Misconfigurations, IaC\n- **Besonderheit:** Kann direkt GitHub-URLs scannen. Ohne lokales Clonen\n- **Installation:** `brew install trivy` (macOS) oder `apt install trivy` (Linux/Lima)\n- **Wann nutzen:** Vor jeder Installation eines fremden Repos\n\n#### Semgrep\n- Statische Code-Analyse. Findet Sicherheitslücken im Source Code selbst\n- Unterstützt Python, JavaScript, Go, Java, Ruby, und mehr\n- Gut für: eigenen Code reviewen, Patterns erkennen\n\n#### Gitleaks\n- Scannt Git-Repos (inkl. History) auf Secrets, API Keys, Credentials\n- Findet auch Dinge die schon committed und wieder gelöscht wurden\n\n#### TruffleHog\n- Ähnlich wie Gitleaks, ebenfalls Secret-Scanner für Repos\n- Sehr gründlich bei der History-Analyse\n\n#### Bandit\n- Python-spezifisch\n- Findet unsichere Code-Patterns in Python-Projekten\n\n#### Lynis\n- System-Hardening-Audit. Läuft direkt auf dem Host\n- Analysiert Konfigurationen, installierte Pakete, Berechtigungen\n- Gut für: Server-Audits, eigene Systeme prüfen\n\n#### ClamAV\n- Klassischer Malware-Scanner für Linux\n- Gut für: Dateien und Scripts auf bekannte Malware prüfen\n\n#### OpenVAS\n- Vollständiger Netzwerk-Vulnerability-Scanner\n- Über 80.000 Tests. Eher Enterprise-Einsatz\n- Gut für: Netzwerk-Audits, Compliance\n\n#### Nmap\n- Netzwerk-Scanner, prüft offene Ports und Services\n- Grundwerkzeug für Netzwerk-Reconnaissance\n\n#### Nikto\n- Web-Server-Scanner\n- Findet bekannte Web-Schwachstellen, Fehlkonfigurationen\n\n#### Jit.io\n- SaaS-Plattform die mehrere Tools bündelt (Trivy, Semgrep, Gitleaks etc.)\n- Ein Dashboard, priorisierte Findings\n- CI/CD-nativ, für Teams gedacht. Kommt einer \"All-in-One Security Suite\" am nächsten\n\n#### Snyk\n- Ähnlich wie Jit, sehr populär bei Einzelentwicklern\n- One-CLI für Code, Dependencies, Container, IaC\n- Freemium-Modell\n\n---\n\n## Was es (noch) nicht gibt\n\nEin poliertes Konsumenten-Tool das sagt: *\"Dieses Repo installieren? Lass mich erst scannen\"*. Mit einfachem UX, Ampel-System, für nicht-technische User. Die bestehenden Tools sind entweder zu developer-lastig (CI/CD) oder zu enterprise-schwer. **Das wäre ein interessantes Produkt-Konzept.**\n\n---\n\n## Mein Setup. Schritt für Schritt\n\n### System\n- **Hardware:** iMac, 3,8 GHz 8-Core Intel i7, 40 GB RAM\n- **OS:** macOS Tahoe 26.3\n- **Hinweis:** macOS Tahoe ist die letzte Version mit Intel-Mac-Support\n\n### Schritt 1. Homebrew-Problem lösen (Intel-Mac spezifisch)\n\nAuf älteren Intel-Macs kann Homebrew einen nicht-standard Cellar-Pfad haben:\n\n```bash\n# Problem prüfen\nbrew --cellar\n# Wenn das zurückkommt: /usr/local/Homebrew/Cellar (statt /usr/local/Cellar)\n\n# Symlink setzen\nsudo ln -s /usr/local/Homebrew/Cellar /usr/local/Cellar\n\n# Kaputten Lima-Link entfernen falls vorhanden\nrm /usr/local/var/homebrew/linked/lima\nbrew cleanup lima\nLLM_GUARD_ALLOW=1 sudo rm -rf /usr/local/Cellar/lima\n```\n\n### Schritt 2. Lima installieren\n\n```bash\nbrew install lima\n```\n\n### Schritt 3. Lima starten & Ubuntu-VM einrichten\n\n```bash\nlimactl start\n# → \"Proceed with the current configuration\" wählen\n# Lädt Ubuntu (~3,5 GB), einmalig, dauert 3–5 Minuten\n```\n\n### Schritt 4. In Lima einloggen & System updaten\n\n```bash\nlima\nsudo apt update && sudo apt upgrade -y\n```\n\n### Schritt 5. Trivy installieren\n\n```bash\nwget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null\necho \"deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main\" | sudo tee /etc/apt/sources.list.d/trivy.list\nsudo apt update\nsudo apt install trivy -y\n\n# Verifizieren\ntrivy --version\n```\n\n### Schritt 6. macOS-Ordner als schreibbar mounten ⚠️ Pflicht für jeden\n\n> **Wichtig:** Lima mountet den macOS-Home-Ordner bei **jeder Neuinstallation standardmäßig als read-only**. Das ist kein Bug, sondern eine bewusste Sicherheitsentscheidung von Lima. Ohne diesen Schritt können Scan-Ergebnisse nicht auf macOS gespeichert werden. Dieser Schritt ist also für jeden notwendig, nicht nur in Sonderfällen.\n\nFix:\n\n```bash\n# Lima verlassen und stoppen\nexit\nlimactl stop default\n\n# Konfiguration bearbeiten\nlimactl edit default\n# In vim: mounts-Abschnitt finden, writable: true hinzufügen\n# Speichern: ESC → :wq → Enter\n\n# Falls Einrückung falsch (häufiges Problem):\nsed -i '' 's/^writable: true/  writable: true/' ~/.lima/default/lima.yaml\n\n# Lima neu starten\nlimactl stop default\nlimactl start default\nlima\n\n# Test\ntouch /Users/stevennoack/dev/test.txt\n# Kein Fehler = funktioniert ✓\n```\n\n---\n\n## Der Scan-Workflow\n\n### Repo scannen bevor du es installierst\n\n```bash\n# In Lima:\ntrivy repo https://github.com/jemand/irgendwas\n```\n\n**Was Trivy dabei macht:**\n1. Repo temporär in die Lima-VM herunterladen (nicht auf macOS)\n2. Dependencies, Secrets, CVEs, Misconfigurations analysieren\n3. Report ausgeben\n\nDas geklonte Repo landet nur in der VM. Dein macOS sieht den Code nie.\n\n### Ergebnis als Datei speichern\n\n```bash\n# Als lesbare Tabelle\ntrivy repo https://github.com/jemand/irgendwas --format table --output /Users/stevennoack/trivy-scan.txt\n\n# Als JSON (maschinenlesbar)\ntrivy repo https://github.com/jemand/irgendwas --format json --output /Users/stevennoack/dev/trivy-scan.json\n```\n\nDa der macOS-Ordner in Lima gemountet ist, liegt die Datei sofort auf dem Mac. Kein Kopieren nötig.\n\n---\n\n## Scan-Ergebnisse richtig lesen\n\n### Severity-Stufen\n\n| Level | Bedeutung | Handlung |\n|---|---|---|\n| **CRITICAL** | Sofort kritisch, aktiv ausnutzbar | Repo nicht installieren |\n| **HIGH** | Ernstes Problem | Genauer prüfen |\n| **MEDIUM** | Mittleres Risiko | Im Kontext bewerten |\n| **LOW** | Geringes Risiko | Notiz, kein Blocker |\n\n### Pfade im Blick behalten\n\n```\nsrc/           ← echtes Problem wenn Vulnerability hier\nlib/           ← echtes Problem\npackage.json   ← echtes Problem\n\ntestdata/      ← wahrscheinlich absichtlich (Test-Fixtures)\nintegration/   ← oft Test-Daten\nfixtures/      ← fast immer absichtlich\n```\n\n**Wichtig:** Viele Repos (wie Trivy selbst) enthalten absichtlich verwundbare Test-Dateien um ihre eigenen Scanner zu testen. Vulnerabilities in `testdata/`-Ordnern sind in der Regel kein echtes Problem.\n\n### Secrets-Findings bewerten\n\nTrivy maskiert gefundene Secrets automatisch (`*****`). Trotzdem prüfen:\n- In welchem Pfad wurde es gefunden?\n- Ist es ein echter Key oder ein Test-Wert/Regex-Pattern?\n- Steht es in einer Datei die ins Produktionssystem geht?\n\n---\n\n## Sicherheitshinweis: Die JSON-Datei\n\nDie Scan-Output-Datei (JSON oder TXT) ist **nur Text**. Sie wird nicht automatisch ausgeführt. Sie ist harmlos solange du:\n\n- Sie nicht in einer Web-App renderst (XSS-Risiko)\n- Sie nicht mit einem Script weiterverarbeitest das den Inhalt ausführt\n- Keinen Editor-Plugin hast der JSON automatisch interpretiert\n\n**Der echte Angriff wäre anders:** \"Scanner Poisoning\". Etwas im Repo das während des Scannens selbst triggert. Das ist eine reale aber seltene Angriffsmethode. Trivy scannt statisch und führt keinen Code aus, was dieses Risiko minimiert.\n\n---\n\n## Drei-Stufen-Modell\n\n| Stufe | Setup | Usecase | Aufwand |\n|---|---|---|---|\n| **1. Sofort** | `brew install trivy` direkt auf macOS | Schnelle Repo-Checks | 2 Minuten |\n| **2. Mein Setup** | Lima + Ubuntu + Trivy | Isolierte Security-Arbeit, CLI-Tools | 1 Nachmittag |\n| **3. Bei Bedarf** | UTM + ParrotOS GUI | Grafische Tools (Burp Suite etc.) | 2–3 Stunden |\n\n---\n\n## Ressourcenvergleich\n\n| Setup | RAM | Disk | Lüfter |\n|---|---|---|---|\n| VMware + ParrotOS GUI | ~4 GB | 20–40 GB | oft |\n| UTM + ParrotOS GUI | ~3 GB | 15–25 GB | manchmal |\n| Lima + Ubuntu + Tools | ~500 MB | ~4 GB | selten |\n| Trivy direkt auf macOS | ~0 MB idle | minimal | nie |\n\n---\n\n## Mehrere VMs mit Lima\n\nLima unterstützt mehrere parallele VMs. Jede komplett unabhängig, mit eigener Distro, eigenen Tools und eigener Isolation.\n\n### VMs erstellen und verwalten\n\n```bash\n# Neue VM mit eigenem Namen erstellen\nlimactl start --name security\nlimactl start --name projekt-xyz\n\n# Alle VMs und deren Status anzeigen\nlimactl list\n\n# In eine bestimmte VM einloggen\nlima security\nlima projekt-xyz\n\n# Bestimmte VM stoppen\nlimactl stop security\n```\n\n### Sinnvolle Aufteilung\n\n| VM | Zweck | Besonderheit |\n|---|---|---|\n| `default` | Allgemeine Arbeit, Trivy-Scans | Standard-Ubuntu, immer bereit |\n| `security` | Aggressive Tools, unbekannte Repos ausführen | Kann bedenkenlos \"verschmutzt\" werden |\n| `experiments` | Neue Tools ausprobieren | Wegwerfbar. Einfach löschen und neu |\n\n### VMs sind komplett voneinander isoliert\n\n- Eigene Distro pro VM möglich (Ubuntu, Fedora, Arch...)\n- Eigene installierte Tools\n- Eigene Disk, eigener RAM-Anteil\n- Kein gemeinsamer Zustand zwischen VMs\n\n### Ressourcen bei meinem Setup\n\nMit 40 GB RAM laufen problemlos 3–4 VMs gleichzeitig. Jede braucht nur ~500 MB RAM im Idle-Zustand.\n\n### Lima-Verhalten beim Mac-Start\n\nLima startet **nicht automatisch** beim Mac-Start. Das ist Absicht. Die VM läuft nur bei aktiver Arbeit:\n\n- **Mac schläft** → Lima pausiert, wacht automatisch wieder auf\n- **Mac Neustart/Shutdown** → Lima stoppt, danach manuell neu starten\n- **Terminal schließen** → Lima läuft weiter im Hintergrund\n- **Manuell stoppen** → `limactl stop default`\n\nWer Lima beim Login automatisch starten will, kann einen macOS LaunchAgent einrichten. Für den normalen Usecase ist manuelles Starten aber besser.\n\n---\n\n## Agentischer Workflow. OpenClaw + MCP Shell + Lima\n\n### Was OpenClaw ist\n\nOpenClaw (früher Clawdbot) ist ein Open-Source-Framework für autonome KI-Agenten die lokal auf deinem Rechner laufen. Es gibt Claude \"Hände\". Der Agent kann selbstständig Dateien lesen/schreiben, Befehle ausführen, im Web suchen, und über Messaging-Kanäle erreichbar sein.\n\n**Mein Setup:**\n- **OpenClaw Gateway** läuft lokal auf dem iMac\n- **Opus 4.6** als Haupt-Agent (komplexe Aufgaben, tiefes Reasoning)\n- **Sonnet 4.6** als Multi-Agent (parallele Subtasks, kostengünstiger)\n- **MCP Shell Server** eingebunden → voller Zugriff auf macOS und Terminal\n\n### Die Verbindung: OpenClaw → MCP Shell → Lima\n\nDa der MCP Shell Server eingebunden ist, kann OpenClaw/Claude direkt Lima-Befehle ausführen:\n\n```\nOpenClaw (Opus 4.6)\n    → MCP Shell Server\n        → lima <befehl>\n            → arbeitet isoliert in der Lima-VM\n                → Ergebnis via Mount zurück auf macOS\n```\n\n**Konkrete Beispiele was der Agent jetzt tun kann:**\n\n```bash\n# Repo in Lima scannen (isoliert)\nlima trivy repo https://github.com/jemand/repo\n\n# Repo in Lima klonen und bearbeiten\nlima git clone https://github.com/jemand/repo /tmp/mein-repo\nlima nano /tmp/mein-repo/src/config.js\n\n# Install-Script sicher testen\nlima bash /tmp/mein-repo/install.sh\n\n# Ergebnis auf macOS verfügbar machen\nlima cp /tmp/mein-repo/output.json /Users/stevennoack/dev/output.json\n```\n\n### Der vollständige sichere Agentenworkflow\n\n```\nIch sage OpenClaw: \"Schau dir dieses Repo an, scan es und passe X an\"\n\nOpenClaw (Opus 4.6):\n  1. → MCP Shell → lima trivy repo <url>     (Scan, isoliert)\n  2. → liest Scan-Ergebnis via Mount\n  3. → bewertet Risiko\n  4. → MCP Shell → lima git clone <url>      (Klon, isoliert)\n  5. → MCP Shell → lima <code bearbeiten>    (Arbeit, isoliert)\n  6. → Ergebnis landet via Mount auf macOS\n\nmacOS wurde zu keinem Zeitpunkt direkt mit unbekanntem Code berührt.\n```\n\n### Warum Lima hier der entscheidende Sicherheitsgewinn ist\n\nOhne Lima: OpenClaw/Claude führt Befehle direkt auf macOS aus. Bei bekanntem, vertrauenswürdigem Code kein Problem. Bei unbekannten Repos ein Risiko.\n\nMit Lima: Selbst wenn der Agent einen Fehler macht, etwas Unerwartetes ausführt, oder ein Repo schädlichen Code enthält. Alles bleibt in der VM eingesperrt. macOS bleibt unberührt.\n\n```\nOhne Lima:  OpenClaw → macOS (direkt)\nMit Lima:   OpenClaw → Lima-VM → macOS nur via Mount (kontrolliert)\n```\n\n### Wichtiger Hinweis zu OpenClaw + Yolo Mode\n\nOpenClaw kann mit `--dangerously-skip-permissions` (Yolo Mode) konfiguriert werden. Das erlaubt dem Agenten alle Befehle ohne Bestätigung auszuführen. **Genau für diesen Fall ist Lima die Sicherheitsschicht.** Yolo Mode in Lima ist akzeptabel. Yolo Mode direkt auf macOS ohne Isolation ist riskant.\n\n---\n\n## Prompt Injection Detection & LLM Security Tools\n\nKlassische Security-Scanner wie Trivy erkennen keine Prompt Injection. Das ist ein LLM-spezifischer Angriffsvektor der eigene Tools braucht.\n\n### LLM Guard. Eigenentwicklung (Steven Noack)\n\nWer die Screenshots in diesem Guide genau anschaut, sieht beim Terminal-Start:\n\n```\n🛡️  LLM Guard: Shell Guard aktiv\n   Deaktivieren: unset LLM_GUARD_ENABLED\n   Einmalig erlauben: LLM_GUARD_ALLOW=1 <command>\n```\n\nDas ist **LLM Guard**. Eine Eigenentwicklung von Steven Noack, entstanden am 9. Februar 2026. Es ist genau die Lücke die im Abschnitt \"Was es noch nicht gibt\" beschrieben wird: Consumer-seitige Prompt-Injection-Abwehr und KI-Workflow-Sicherheit. Enterprise-Tools wie Lakera, Rebuff und Arthur Shield existieren. Für Einzelpersonen gab es nichts. Also selbst gebaut.\n\n**Philosophie:** KI als Partner, nicht als Bedrohung. Aber mit Leitplanken. Kein Cloud-Backend, kein Tracking, läuft komplett lokal. Jeder Block ist bypassbar (`LLM_GUARD_ALLOW=1`). Transparenz statt Kontrolle.\n\n**Status:** ✅ Produktiv. 81/81 Tests grün.\n\n#### Architektur. 4 Verteidigungsschichten\n\n```\nLayer 7 — Little Snitch (System-Firewall)\n~677.000 blockierte Domains (1Host Lite + HaGeZi)\nClaude Desktop → intercom.io ✗   Wispr Flow → sentry.io ✗\n         ↓\nLayer 4 — Network Monitor (Passives Monitoring)\nLaunchAgent: ai.llmguard.network\nlsof-basiert, SQLite-History, Suspicious Pattern Matching\nÜberwacht: python / node / codex / claude / curl / wget / git\n         ↓\nLayer 2 — Shell Guard (Aktives Blocking)\nzsh accept-line Widget, preexec Hook\n37 Patterns: Exfil, Destructive, Reverse Shells, Credentials\nBlockt im Command-Buffer. Command läuft gar nicht erst\n         ↓\nLayer 1 — Content Scanner (Prompt Injection Detection)\n188 Patterns aus Lakera, NVIDIA Garak, deepset Datasets\nPDF/HTML/Text-Scanning über MCP-Tools oder CLI\n```\n\n#### Layer 2: Shell Guard. Das was du im Terminal siehst\n\nHängt sich in den **zsh `accept-line`-Widget** ein. Vor jedem Enter-Druck. Der auslösende Moment: Codex wollte am 12. Februar 2026 ein Verzeichnis \"bereinigen\" und schlug `rm -rf ~/dev/memory-blocks/services/old/` vor. Shell Guard hat geblockt bevor der Command die Shell erreichte. Kein Datenverlust.\n\n```\n🛑 LLM Guard: BLOCKED\n   ⛔ Recursive delete of home or root\n   Command: rm -rf ~/dev/...\n   Override: LLM_GUARD_ALLOW=1 before the command\n```\n\nBypass wenn der Befehl legitim ist:\n```bash\nLLM_GUARD_ALLOW=1 sudo rm -rf /usr/local/Cellar/lima\n```\n\n![LLM Guard Shell Guard blockt rm -rf](https://cdn.visionfusen.org/images/llm-guard-shell-guard-blockt-rm-rf.vf1063-04be2fb3.webp)\n\nGenau dieser Befehl war Teil dieser Guide-Session. Lima-Installation, kaputtes Cellar-Verzeichnis musste gelöscht werden. LLM Guard hat geblockt, Override mit `LLM_GUARD_ALLOW=1` war die korrekte Lösung.\n\n#### Layer 1: Content Scanner\n\nVier Erkennungsschichten mit 188 Regex-Signaturen:\n- Pattern Scanner → Classic Injection, Garak, Lakera/deepset Patterns\n- Heuristic Scanner → Base64, Zero-Width-Chars, Rollenübernahme\n- HTML Parser → CSS-Hidden, Comments, White-on-White Text\n- PDF Parser → Weiße Schrift unter 1pt, Invisible Layers\n\nRisk Score 0–100: unter 30 = clean, 31–60 = Warnung, über 60 = blockiert.\n\nAls MCP-Server direkt in Claude Desktop eingebunden:\n```bash\nllm-guard scan report.pdf\nllm-guard scan ./skills/ --recursive\necho \"Ignore all previous\" | llm-guard scan\n```\n\n#### Layer 4: Network Monitor\n\nLäuft als macOS LaunchAgent, prüft alle 5 Sekunden alle Netzwerkverbindungen auf überwachte Prozesse. Kein aktives Blocking (zu viele False Positives bei localhost-Services wie Qdrant). Aber sofortige Telegram-Alerts bei verdächtigen Verbindungen zu Pastebin, ngrok, webhook.site, anonymen File-Upload-Services oder rohen IP:Port-Kombinationen.\n\n#### Layer 7: Little Snitch\n\n![Little Snitch Network Monitor zeigt Verbindungen](https://cdn.visionfusen.org/images/little-snitch-network-monitor-zeigt-verbindungen.vf1063-0fdd9cd9.webp)\n\n~677.000 blockierte Domains systemweit. Konkrete Beispiele die täglich geblockt werden:\n- Claude Desktop → `intercom.io` (User Tracking)\n- Wispr Flow → `sentry.io` (Error Tracking)\n- Wispr Flow → `posthog.com` (Analytics)\n\nDie Apps funktionieren trotzdem. Das ist reine Telemetrie, keine Kernfunktionalität.\n\nÖffentlich dokumentiert auf [stevennoack.de/nostr/artikel/llm-guard-ai-virenscanner](/nostr/artikel/llm-guard-ai-virenscanner).\n\n---\n\n### Eine Ebene tiefer. Agenten-Identität schützen\n\nLLM Guard schützt das System. Aber was schützt den Agenten selbst?\n\nWenn ein KI-Agent wie Spur (OpenClaw, Opus 4.6) dauerhaft läuft, Dateien liest, Entscheidungen trifft und Memory aufbaut. Da entsteht eine neue Angriffsfläche: die Steuerungsdateien des Agenten selbst. Was wenn jemand nachts `AGENTS.md` editiert und die Sicherheitsregeln entfernt? Was wenn vergangene Erinnerungen heimlich umgeschrieben werden?\n\nDie Antwort: ein kryptografisches Vertrauenssystem auf Basis von Nostr.\n\n**Soul Signing.** SHA-256 Hashes aller Steuerungsdateien (Persönlichkeit, Regeln, Identität) werden als signierte Events auf 4 Nostr-Relays published. Bei jedem Session-Start automatische Verifikation. Manipulation wird sofort erkannt.\n\n**Memory Chain.** Eine Merkle Chain sichert alle Memory-Dateien. Jeder neue Eintrag kettet den Hash des vorherigen ein. Ändere einen Eintrag in der Vergangenheit → alle nachfolgenden Hashes brechen.\n\n> *\"Die Wahrheit liegt nicht auf der Platte. Sie liegt auf den Relays.\"*\n\nSelbst bei vollem Schreibzugriff aufs Dateisystem: ohne den Nostr-Signing-Key ist jede Manipulation beweisbar nachweisbar.\n\nDas ist ein eigenes, umfangreiches Thema. Separater Artikel dazu folgt.\n\n---\n\n### Was Prompt Injection ist\n\nPrompt Injection bedeutet: versteckte Anweisungen in Text, Dokumenten oder Web-Inhalten die einen KI-Agenten dazu bringen unerwünschte Aktionen auszuführen. Besonders relevant bei Agenten-Setups wie OpenClaw die autonom Dokumente lesen, Web-Inhalte verarbeiten oder Code ausführen.\n\n**Zwei Arten:**\n- **Direkt:** Nutzer gibt böswillige Anweisung direkt ein (\"Ignore all prior instructions...\")\n- **Indirekt:** Schädliche Anweisung versteckt in Dokument, E-Mail, Webpage die der Agent verarbeitet\n\n### Tools im Überblick\n\n#### Garak ✅ *Empfehlung. Lokal, kein Cloud-Zwang*\n- Open Source, läuft komplett lokal in Lima\n- Umfangreiche Probe-Library: Jailbreaks, Injection, Toxicity, Halluzinationen, Data Leakage\n- Unterstützt 20+ AI-Plattformen inkl. lokale Modelle\n- Installation in Lima:\n```bash\npip install garak\ngarak --model openai:gpt-4o --probes promptinject\n```\n\n#### Promptfoo ✅ *Empfehlung. CLI, lokal nutzbar*\n- 50+ Plugins für Prompt Injection, PII Leakage, Jailbreaks und mehr\n- CLI-basiert, lokal nutzbar, kein Cloud-Zwang\n- Gut für: eigene Agenten und Prompts testen\n```bash\nnpm install -g promptfoo\npromptfoo redteam run\n```\n\n#### promptmap2\n- Laser-fokussiert auf Prompt Injection in System Prompts\n- Dual-AI-Architektur. Testet aktiv Angriffe und prüft ob sie erfolgreich waren\n- Gut für: eigene System Prompts auf Schwachstellen prüfen\n\n#### Rebuff\n- Selbst-hostbar, mehrschichtiger Ansatz: Heuristiken + LLM-Detection + VectorDB + Canary Tokens\n- Braucht OpenAI API Key und Pinecone. Nicht vollständig lokal\n- Noch Prototyp-Status. Keine 100% Schutzgarantie\n\n#### LangKit\n- Open-Source Monitoring-Toolkit für LLMs\n- Extrahiert Sicherheitssignale aus Prompts und Responses in Echtzeit\n- Gut für: laufende Überwachung von Agenten-Aktivität\n\n### Vergleich\n\n| Tool | Lokal | Fokus | Für wen |\n|---|---|---|---|\n| **LLM Guard** | ✅ ja | Breite LLM-Sicherheit | Produktiv im Einsatz |\n| **Garak** | ✅ ja | Schwachstellen-Scanning | Eigene Modelle/Agenten testen |\n| **Promptfoo** | ✅ ja | Red Teaming, viele Plugins | System Prompts angreifen |\n| **promptmap2** | ✅ ja | Nur Prompt Injection | Gezielter Injection-Test |\n| **Rebuff** | ⚠️ teilweise | Injection Detection | Braucht externe APIs |\n| **MS Prompt Shields** | ❌ nein | Enterprise Injection | Azure-Pflicht |\n\n### Empfohlener Workflow in Lima\n\n```bash\n# Garak installieren\npip install garak --break-system-packages\n\n# Eigenen Agenten/Prompt testen\ngarak --model openai:gpt-4 --probes promptinject,jailbreak\n\n# Promptfoo für Red Teaming\nnpm install -g promptfoo\npromptfoo redteam init\npromptfoo redteam run\n```\n\n---\n\n## Weitere nützliche Tools in Lima\n\n```bash\n# Installation\nsudo apt install nmap nikto gobuster gitleaks -y\n\n# Trivy direkt auf macOS für schnelle Checks\nbrew install trivy\n\n# Eigenen Code scannen\ntrivy fs /Users/stevennoack/mein-projekt\n\n# Container-Image scannen\ntrivy image nginx:latest\n```\n\n---\n\n## Setup in Aktion\n\n![OpenClaw Agent meldet Lima/Trivy Status](https://cdn.visionfusen.org/images/openclaw-agent-meldet-limatrivy-status.vf1063-dd812795.webp)\n\nWas auf dem Screenshot zu sehen ist, ist kein Mock. Das ist der beschriebene Workflow live in Betrieb. OpenClaw (Opus 4.6) meldet sich über den MCP Shell Server aus der laufenden Lima-VM:\n\n```\nVoller Zugriff. Lima VM mit Ubuntu läuft, Trivy ist installiert\nund die Vulnerability DB ist von heute.\n\nWas soll ich scannen? Ich kann z.B.:\n• Container Images: trivy image <name>\n• Lokale Dateisysteme: trivy fs /pfad\n• Git Repos: trivy repo <url>\n• SBOM generieren: trivy sbom\n• Config-Scans: trivy config (Dockerfile, K8s, Terraform)\n```\n\nDer Agent weiß selbstständig dass Lima läuft, Trivy installiert ist und die Datenbank aktuell ist. Ohne dass der Nutzer irgendetwas eingeben musste. Er wartet auf einen Scan-Auftrag und führt ihn isoliert in der VM aus. Das macOS-System wird dabei zu keinem Zeitpunkt direkt berührt.\n\n---\n\n## Wichtige Befehle. Kurzreferenz\n\n```bash\n# Lima starten/stoppen\nlimactl start default\nlimactl stop default\nlima                          # Shell öffnen\nexit                          # Lima verlassen (VM läuft weiter)\n\n# Trivy Scans\ntrivy repo <github-url>                    # Repo scannen\ntrivy fs /pfad/zum/projekt                 # Lokalen Ordner scannen\ntrivy image <image-name>                   # Docker-Image scannen\ntrivy repo <url> --format json --output ~/scan.json   # Als JSON speichern\ntrivy repo <url> --severity CRITICAL,HIGH  # Nur kritische Findings\n\n# Lima Konfiguration\nlimactl edit default          # Config bearbeiten\nlimactl list                  # Alle VMs anzeigen\n```\n\n---\n\n*Kompakte Version dieses Artikels: [Mein Security-Stack](/nostr/artikel/mein-security-stack)*\n\n*Setup getestet auf: iMac Intel i7 3,8 GHz, 40 GB RAM, macOS Tahoe 26.3, Lima 2.0.3, Trivy 0.69.3*",
  "sig": "fe0af9610bd2c9a95a5d54962f400f46bd092260e6f5ef4763b5a4b7630c80b808eeb23492b9c754d68efb9da56ae595e8e7587452d5be1ccfaa03f64e5ccadd"
}
