Fragen Sie KI-Assistenten wie Claude direkt nach dem Sicherheitsstatus Ihres Mac / Linux-Systems
RoamSwitch enthält einen schreibgeschützten MCP-Server (Model Context Protocol). Verbinden Sie ihn mit einem MCP-Client und fragen Sie einfach in natürlicher Sprache: „Ist mein Mac / Linux gerade sicher?“ oder „Welche Ports sind offen?“ — Sie erhalten Antworten, die auf den eigenen, präzisen Diagnosen von RoamSwitch beruhen, nicht auf Vermutungen. Er kann weder den Sperrmodus umschalten noch Ports isolieren oder andere Aktionen ausführen; die Kommunikation mit Ihrem KI-Client bleibt vollständig auf dem Gerät über stdio (eine Erweiterung unserer Zero Telemetry-Richtlinie).
🔒 Warum es sicher ist
- Nur lesend: Nur Sicherheitsdiagnosen, Port-Überwachung und Guard-Statusabfragen. Es sind keine Aktions-Tools wie das Umschalten des Sperrmodus, das Isolieren von Ports oder das Auswerfen von Geräten implementiert.
- Vollständig lokal: Die Kommunikation mit Ihrem KI-Client (Claude Desktop/Code usw.) läuft ausschließlich über stdio und bleibt zwischen dem Client und dem RoamSwitch-Prozess auf Ihrem Mac / Linux-System. Es wird keinerlei Telemetrie gesendet. Das Netzwerk nutzen nur standardmäßig deaktivierte Opt-in-Funktionen: die Schwachstellenprüfung, die ausschließlich den eigenen Rechner (127.0.0.1) untersucht, und die npm-Signaturprüfung, die die npm-Registry abfragt.
- Schutz vor Fehlbedienung: Da es keine Aktions-Tools gibt, besteht kein Risiko, dass Firewall- oder Netzwerkeinstellungen durch Prompt Injection o. Ä. versehentlich geändert werden.
In zwei Schritten eingerichtet
1Speicherort der Binärdatei
Ist in RoamSwitch.app enthalten – kein separater Download oder Installation nötig.
/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2aFür Claude Desktop
Fügen Sie Folgendes zu "mcpServers" in ~/Library/Application Support/Claude/claude_desktop_config.json hinzu und starten Sie Claude Desktop neu.
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
2bFür Claude Code
Führen Sie einfach einmal den folgenden Befehl im Terminal aus.
claude mcp add roamswitch /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2cFür die OpenAI Codex CLI
Fügen Sie Folgendes zu ~/.codex/config.toml hinzu oder führen Sie den folgenden Befehl im Terminal aus.
[mcp_servers.roamswitch] command = "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
codex mcp add roamswitch -- /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2dFür OpenCode
Fügen Sie Folgendes zu opencode.json im Projektstamm (oder global in ~/.config/opencode/opencode.json) hinzu.
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"]
}
}
}
💡 Lokale LLM-Unterstützung: Bei Nutzung lokaler Modelle über Ollama oder LM Studio können Sie RoamSwitch auch dann offline befragen, wenn die Netzwerkverbindung zur Gefahrenabwehr notfallmäßig gekappt wurde.
2eFür Antigravity
Fügen Sie Folgendes zu ~/.gemini/config/mcp_config.json (oder .agents/mcp_config.json im Stammverzeichnis Ihres Arbeitsbereichs) hinzu.
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
* Hinweis: Wenn in der Antigravity-CLI (agy) Hook-Failure- oder Telemetrie-Fehler auftreten, deaktivieren Sie den Hook, indem Sie in ~/.gemini/config/plugins/.../hooks.json "enabled": false setzen.
1Speicherort der Binärdatei
Im apt-/rpm-/AUR-Paket enthalten und wird bei der Installation automatisch unter /usr/bin/roamswitch-mcp abgelegt. Kein separater Download oder Build nötig (gilt gleichermaßen für Client- und Server Edition).
/usr/bin/roamswitch-mcp
Dieselbe Binärdatei und dieselben Einrichtungsschritte funktionieren unverändert auch mit der Server Edition (Headless-Betrieb). Details finden Sie im Kapitel „KI-Agenten / MCP-Integration“ des Betriebshandbuchs für Linux Server.
2aFür Claude Desktop
Für Claude Desktop gibt es keine offizielle Linux-Version. Falls Sie einen inoffiziellen Build verwenden (z. B. claude-desktop-debian), fügen Sie Folgendes zu "mcpServers" in ~/.config/Claude/claude_desktop_config.json hinzu und starten Sie die App neu.
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
2bFür Claude Code
Führen Sie einfach einmal den folgenden Befehl im Terminal aus.
claude mcp add roamswitch /usr/bin/roamswitch-mcp
2cFür die OpenAI Codex CLI
Fügen Sie Folgendes zu ~/.codex/config.toml hinzu oder führen Sie den folgenden Befehl im Terminal aus.
[mcp_servers.roamswitch] command = "/usr/bin/roamswitch-mcp"
codex mcp add roamswitch -- /usr/bin/roamswitch-mcp
2dFür OpenCode
Fügen Sie Folgendes zu opencode.json im Projektstamm (oder global in ~/.config/opencode/opencode.json) hinzu.
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/usr/bin/roamswitch-mcp"]
}
}
}
💡 Lokale LLM-Unterstützung: Bei Nutzung lokaler Modelle über Ollama oder LM Studio können Sie RoamSwitch auch dann offline befragen, wenn die Netzwerkverbindung zur Gefahrenabwehr notfallmäßig gekappt wurde.
2eFür Antigravity
Fügen Sie Folgendes zu ~/.gemini/config/mcp_config.json (oder .agents/mcp_config.json im Stammverzeichnis Ihres Arbeitsbereichs) hinzu.
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
* Hinweis: Wenn in der Antigravity-CLI (agy) Hook-Failure- oder Telemetrie-Fehler auftreten, deaktivieren Sie den Hook, indem Sie in ~/.gemini/config/plugins/.../hooks.json "enabled": false setzen.
Schreibgeschützte Tools (aktuell 33 auf Mac / 38 auf Linux, wird laufend erweitert)
get_security_report
Führt auf dem Mac eine 18-Punkte-Prüfung durch (FileVault, SIP, Gatekeeper, Firewall, WLAN-Verschlüsselungsstärke, ARP-Spoofing, offene Ports usw.) bzw. unter Linux eine 27-Punkte-Client- / 34-Punkte-Server-Prüfung (Kernel-Härtung, Schutz von Docker-Socket und privilegierten Containern, Container-Runtime-Isolation, bekannte Schwachstellen usw.) und liefert einen Score sowie Verbesserungsvorschläge.
get_exposed_ports
Listet alle derzeit lauschenden Ports auf und liefert für extern exponierte Ports ein detailliertes Audit inklusive Erkennung bekannter riskanter Dienste (Redis, MongoDB usw.). Auf dem Mac sendet es pro erreichbarem Port einen HTTP-GET an 127.0.0.1, um die Header zu prüfen.
get_guard_status
Gibt den Status von Port-Guard, ARP-Schutz, USB-Guard, Bluetooth-Guard, Web/Mail-Download-Schutz, DNS-Bedrohungsschutz und die Sicherheitsstufe zurück.
audit_url_safety
Überprüft E-Mail-Links oder Web-URLs vollständig lokal (Zero Telemetry) auf Phishing, Unicode-Homographen-Täuschung, gefälschte Subdomains und riskante TLDs.
get_app_help
Durchsucht die vollständige offizielle RoamSwitch-Wissensdatenbank zu allen Funktionen, Warnmeldungen, Einstellungen und Problembehebungen direkt auf dem Mac und liefert präzise Anweisungen.
audit_security_logs
Wertet aktuelle Sicherheitslogs aus (Mac: fehlgeschlagene Sudo-Authentifizierungen, SSH-Brute-Force-Versuche, Gatekeeper-Blockaden, XProtect-Erkennungen usw. / Linux: fehlgeschlagene Sudo-Authentifizierungen, SSH-Brute-Force, Firewall-Blockaden, AppArmor-Ablehnungen, ClamAV-Erkennungen usw.), maskiert automatisch sensible Daten wie API-Schlüssel und Tokens und liefert zusätzlich Ergebnisse der Log-Template-basierten Erkennung neuer Muster sowie der Häufigkeitsanomalie-Erkennung (statistische Spitzen). Unter Linux bedeutet eine Zählung von 0 nicht, dass nichts passiert ist, wenn das Journal nicht gelesen werden konnte (zum Beispiel wegen eines Timeouts); journalReadComplete ist dann false und journalError nennt den Grund.
get_notification_history
Gibt den Verlauf der von RoamSwitch gesendeten Benachrichtigungen (Sicherheitslog-Auffälligkeiten, ClickFix-Erkennungen u. a.) der letzten 7 Tage zurück, neueste zuerst.
roamswitch://docs/* (MCP Resources)
Offizielle Dokumentationsressourcen, die KI-Clients direkt in den Kontext einbinden können (Funktionen, Warnmeldungen, Einstellungen, FAQ).
Weitere schreibgeschützte Tools
| Tool | Plattform | Kurzbeschreibung |
|---|---|---|
audit_secrets |
Mac / Linux | Erkennt offengelegte API-Schlüssel und private Schlüssel in Text, Dateien oder Verzeichnisbäumen (Treffer werden in der Ausgabe maskiert). |
run_active_vuln_scan |
Mac / Linux | Zerstörungsfreie aktive Schwachstellenprüfung, ausschließlich auf 127.0.0.1. Es wird kein anderer Host kontaktiert, aber das Tool sendet Netzwerkanfragen; es ist daher standardmäßig deaktiviert und muss in den Einstellungen per Opt-in aktiviert werden. |
get_vulnerability_scan_history |
Mac / Linux | Gibt das zuletzt erfasste Ergebnis und die verstrichenen Tage (pass_age) für jede Prüfung zurück, die run_active_vuln_scan aufgezeichnet hat. |
verify_security_findings |
Mac / Linux | Bewertet Einträge (checkId) aus get_security_report anhand des aktuellen Zustands neu und liefert je Eintrag ein Urteil, nämlich stillPresent (trifft weiterhin zu), resolved (behoben oder konstruktionsbedingt nicht zutreffend) oder inconclusive (nicht feststellbar), dazu einen sprachunabhängigen Begründungscode. Das Tool dient dazu, nach einer Korrektur zu prüfen, ob sie wirklich gewirkt hat. Ein Eintrag, der sich nicht messen ließ, etwa wegen fehlender Berechtigungen, eines nicht verbundenen privilegierten Helpers oder eines nicht erreichbaren Docker, wird nie als sicher gemeldet, sondern als inconclusive. Ohne checkIds werden alle Einträge geprüft (höchstens 50 IDs auf dem Mac und 64 unter Linux; unter Linux ist zusätzlich isServer möglich). Auf dem Mac werden host_firewall, network_stealth_mode, gateway_arp_lock, malware_scanning, dns_threat_guard und usb_zero_trust anhand der App-Einstellungen von RoamSwitch entschieden. Sie geben also diese Einstellungen wieder und messen den tatsächlichen Zustand des Betriebssystems nicht neu. Der Zugriff ist schreibgeschützt, es gibt keine Verbindung zu externen Hosts, keine Reparatur und keine Änderung von Einstellungen. Unter Linux wird auch nichts ins LAN gesendet, das Gateway wird nur aus lokalen Caches gelesen. Auf dem Mac kann zur Ermittlung der Gateway-MAC-Adresse ein ICMP-Ping, normalerweise einer (bei nicht auflösbarer MAC einige), an das Gateway im LAN gehen. |
audit_mcp_configs |
Mac / Linux | Liest die MCP-Konfigurationsdateien der KI-Clients (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Cline, Gemini CLI sowie .mcp.json und ähnliche Dateien in den registrierten Projektordnern) und meldet riskante Einstellungen. Erkannt werden Tools, die ohne Bestätigung je Aufruf automatisch genehmigt werden (auto_approve), Klartext-http://-Server auf einem Nicht-Loopback-Host, ob im Feld url oder als Startargument wie --server http://… angegeben (remote_plain_http), Startbefehle als Shell- oder Interpreter-Einzeiler (shell_wrapper), Starter wie npx / uvx / docker run, die ein nicht festgelegtes Paket oder Image laden (unpinned_package_launcher), docker run mit --privileged oder mit eingebundenem Docker-Socket oder Root-Dateisystem (container_host_access), Umgebungsvariablen, die beim Start zusätzlichen Code laden, etwa LD_PRELOAD oder --require in NODE_OPTIONS (Namen ohne Beachtung der Groß-/Kleinschreibung, Werte werden nie zurückgegeben; code_loading_env), Einträge, die auf HexStrike AI zeigen, ein Angriffstool-Backend ohne Authentifizierung (hexstrike), für Gruppe oder andere beschreibbare Konfigurationsdateien (world_writable_config), der Schalter enableAllProjectMcpServers von Claude Code (auto_trust_project_servers) und eine Konfigurationsdatei, in der ein Server, der von anderen geschriebenen Text liest (Webseiten, Mails, Chats, Issues), neben einem Server steht, der Befehle ausführen oder Dateien ändern kann, also die Kombination, die indirekte Prompt-Injection braucht (anhand bekannter Paketnamen erkannt, die Inhalte der Server-Tools werden nicht gesehen; injection_exposure). Das Tool hat keine Argumente, ist schreibgeschützt und sendet nichts ins Netzwerk. Es gibt keine Env- oder Header-Werte, Argumente oder Geheimnisse zurück, nur Servernamen, den Basisnamen eines Befehls, einen URL-Host und, bei einem einfachen Registry-Namen, den Paket- oder Image-Namen. Nicht lesbare Dateien stehen in unreadableFiles und wurden nicht geprüft. |
audit_agent_setup |
Mac / Linux | Liest die Anweisungsdateien und Skills, die KI-Agenten bekommen (CLAUDE.md, commands, agents und skills unter ~/.claude, dazu ~/.codex, ~/.cursor/rules, ~/.gemini, ~/.agents, ~/.openclaw sowie CLAUDE.md, AGENTS.md, .cursorrules und Ähnliches in den registrierten Projektordnern) und OpenClaws openclaw.json und weist auf riskante Inhalte und Einstellungen hin. In Anweisungs- und Skill-Dateien meldet es in unsichtbaren Unicode-Tag-Zeichen versteckte Sätze (hidden_tag_characters), Zeichen ohne Breite und Steuerzeichen für die Schreibrichtung (invisible_characters), Formulierungen, die frühere Anweisungen aufheben oder dem Benutzer etwas verschweigen (override_instruction), Herunterladen-und-Ausführen wie curl … | sh (remote_script_exec), Dekodieren-und-Ausführen (encoded_payload_exec), Verweise auf Schlüssel- und Zugangsdatenspeicher (credential_access) neben einem Upload oder einem Ablage-Dienst (credential_exfil_shape, exfil_endpoint), das Einrichten von Dauerhaftem (persistence_instruction), kompilierten Code in einem Skill (skill_precompiled_code) und für andere beschreibbare Dateien (agent_file_writable). Alles innerhalb eines HTML-Kommentars wird höher eingestuft, weil eine gerenderte Seite es verbirgt. Für OpenClaw werden ausgeschaltete Authentifizierung (openclaw_auth_disabled), eine aus dem Netzwerk erreichbare Bindung (openclaw_wide_bind), ein Token unter 24 Zeichen (openclaw_weak_token), ein Wildcard-Origin (openclaw_origin_wildcard), eingeschaltete dangerously…-Schalter (openclaw_dangerous_flag), eine Proxy-Liste, die jedem vertraut (openclaw_broad_trusted_proxy, openclaw_proxy_trust_loosened), für jeden offene DM- oder Gruppenrichtlinien (openclaw_open_dm), mDNS full (openclaw_mdns_full), ausgeblendete Selbstprüfungs-Befunde (openclaw_audit_suppressed) und lockere Berechtigungen (openclaw_loose_permissions) gemeldet. Jede Regel ist deterministisch: Ein Treffer heißt „ein Mensch sollte diese Zeile lesen“, nicht „bösartig“. Es nimmt keine Argumente, ist schreibgeschützt und sendet nichts ins Netzwerk. Es gibt nie Dateiinhalte oder Geheimnisse zurück (ein Token nur als Länge), sondern nur Regelname, Zeilennummer, URL-Host und Konfigurationsschlüsselpfad. Nicht lesbare Dateien stehen in unreadableFiles und wurden nicht geprüft. |
run_package_cve_scan |
Mac / Linux | Gleicht installierte Pakete (Mac: Homebrew / Linux: dpkg, dnf, zypper, pacman) mit einer lokalen CVE-Zuordnung ab. Es findet überhaupt keine Netzwerkkommunikation statt. Unter Linux wird bei nicht lesbarer oder zeitüberschrittener Paketliste nicht „kein Treffer“ gemeldet, sondern complete ist false und incompleteReason nennt den Grund (ein unvollständiges Ergebnis ist kein sauberes Ergebnis). Unter Ubuntu (20.04, 22.04, 24.04, 26.04) werden die Ubuntu-eigenen Daten verwendet und nach Quellpaketname und Quellversion abgeglichen; geprüft werden nur CVEs mit CVSS 7,0 oder höher, für die Ubuntu bereits eine Korrektur veröffentlicht hat, daher bedeutet „kein Treffer“ nicht, dass es keine bekannten CVEs gibt. Das Ergebnis enthält zusätzlich ecosystem und release, jeder Treffer trägt binary (den installierten Binärpaketnamen); Korrekturen, die nur über Ubuntu Pro verfügbar sind, sind mit proOnly markiert. Ubuntu-Derivate (Linux Mint, Pop!_OS und andere) und nicht unterstützte Versionen liefern complete = false mit dem Grund in incompleteReason und werden nicht auf die Debian-Daten umgestellt. |
run_package_cve_scan_languages |
Mac / Linux | Gleicht Abhängigkeits-Lockfiles für npm, PyPI, crates.io, RubyGems, Packagist, Go und Maven mit derselben lokalen CVE-Zuordnung ab. Es findet überhaupt keine Netzwerkkommunikation statt. |
run_package_lifecycle_script_scan |
Mac / Linux | Listet die Lifecycle-Skripte (preinstall / install / postinstall / prepare) aus den package.json-Dateien unter node_modules eines Projekts auf. Es werden nur Dateien gelesen: Nichts wird ausgeführt und nichts über das Netzwerk gesendet. Jeder Eintrag trägt ein Hinweis-Flag für riskant wirkende Muster (etwa curl|sh); das ist eine Bestandsaufnahme, kein Urteil darüber, ob ein Paket bösartig ist. |
run_typosquat_scan |
Mac / Linux | Prüft, ob ein Abhängigkeitsname in der package.json eines Projekts nur ein oder zwei Zeichen von einem bekannten npm-Paket entfernt ist (möglicher Typosquatting-Versuch). Es werden nur lokale Dateien gelesen; eine Registry wird nie kontaktiert. Es handelt sich um eine reine Orientierungshilfe, Fehlalarme sind möglich. |
run_npm_audit_signatures |
Mac / Linux | Dieses Tool fragt die npm-Registry (registry.npmjs.org) ab. Es führt npm audit signatures aus und prüft damit Signaturen und Herkunft der installierten Pakete. Es ist standardmäßig deaktiviert und verweigert die Ausführung, bis Sie es in den Einstellungen aktivieren (auf dem Mac nur Pro). |
get_quarantine_status |
Mac / Linux | Liefert den Inhalt des Malware-Quarantäne-Tresors: ursprünglicher Pfad, erkannter Bedrohungsname, Zeitpunkt und Größe. |
get_canary_status |
Mac / Linux | Liefert den Zustand der Ransomware-Köderdateien (Canary) sowie bis zu die 50 jüngsten erkannten Vorfälle. |
get_ransomware_entropy_guard_status |
Mac | Gibt zurück, ob die allgemeine entropiebasierte Ransomware-Erkennung aktiviert ist, sowie ihre jüngsten Entropie-Burst-Vorfälle. |
get_honeytoken_status |
Mac | Gibt zurück, ob der Anmeldedaten-Honeytoken-Guard aktiviert ist, sowie seine jüngsten Zugriffserkennungsereignisse. |
get_browser_credential_watch_status |
Mac | Gibt zurück, ob die Überwachung des Browser-Anmeldedatenzugriffs aktiviert ist, sowie ihre jüngsten Zugriffserkennungsereignisse. |
get_forensic_evidence_bundles |
Mac | Gibt die Liste der forensischen Beweispakete zurück (Prozessliste, Netzwerkverbindungen, geänderte Dateien und Ähnliches), die beim Auslösen eines Notfall-Air-Gap gespeichert wurden. |
get_ransomware_recovery_snapshots |
Mac | Liefert die APFS-Wiederherstellungs-Snapshots (vor dem Schaden, bei Erkennung, manuell), den empfohlenen Snapshot zur Wiederherstellung, den Status des Aufbewahrungsmodus und das Snapshot-Intervall. Ein Erkennungs-Snapshot kann bereits verschlüsselte Dateien enthalten. Nur Pro. |
search_exec_events |
Mac / Linux | Durchsucht die Aufzeichnung von Prozessausführungen. Auf dem Mac wird das eslogger-basierte Protokoll durchsucht, unter Linux das Protokoll des Exec-Recorders (mit manipulationsevidenter Hash-Kette). Filtern ist u. a. nach Pfad und Argumenten möglich; das Ergebnis meldet außerdem den Recorder-Zustand und ob das Protokoll lesbar war. Auf dem Mac nur Pro. Das Linux-Protokoll ist nur für root lesbar, der MCP-Server muss dafür als root laufen. |
get_process_tree |
Mac / Linux | Baut aus der Ausführungsaufzeichnung die Vorfahren und Nachkommen eines angegebenen Prozesses auf. Bekannt sind nur Prozesse, die der Recorder tatsächlich gesehen hat. Auf dem Mac nur Pro. |
get_port_anomaly_incidents |
Mac / Linux | Liefert den Baseline-Zustand des Port-Anomalie-Schutzes, aktuell automatisch blockierte Ports und bis zu die 50 jüngsten Vorfälle. Die Antwort weist ausdrücklich darauf hin, dass die aktuell blockierten Ports eine zeitstempellose Momentaufnahme sind, die sich von der zeitgestempelten Vorfallshistorie unterscheidet. |
get_ssh_guard_incidents |
Mac / Linux | Gibt Zustand und Verlauf des SSH-Brute-Force-Schutzes zurück: ob er sperrt oder nur erkennt (zum Beispiel weil ein anderes Werkzeug sshd bereits schützt), die aktuell gesperrten Quellen mit Restzeit und bis zu 200 jüngste Einträge (eine Quelle wurde gesperrt, nur erkannt, oder eine Anmeldung gelang nach einer Serie von Fehlversuchen derselben Quelle). Die versuchten Benutzernamen werden unter Linux nicht gespeichert (nur die Anzahl) und unter Mac bereinigt mit bis zu 5 Namen zurückgegeben. Der Mac liefert zusätzlich die letzten SSH-Anmeldungen (Quelle, Benutzer, Methode, Schlüssel-Fingerabdruck). Schreibgeschützt: Kein MCP-Tool hebt eine Sperre auf. Unter Linux kann nur root die Sperrliste lesen; ein Aufruf ohne root liefert nur die Anzahl. Linux: die Server Edition sowie die Client Edition, solange sshd läuft. Mac: nur Pro. |
get_port_scan_incidents |
Linux | Liefert das Protokoll erkannter Portscans (Aufklärung) gegen dieses Gerät: jede Quell-IP, die in kurzer Zeit viele verschiedene Ports erreicht hat, wie viele Ports sie berührt hat (mit Stichprobe) und ob sie zusätzlich automatisch gesperrt wurde und für wie lange. |
get_runtime_threat_status |
Mac | Gibt an, ob dieser Mac wegen eines XProtect-Malwarefunds per Air-Gap isoliert wurde, und nennt den auslösenden Vorfall. Bei aktivem Air-Gap zuerst prüfen. |
verify_fim |
Linux | Berechnet die Hashes von rund 150 kritischen Systemdateien neu und vergleicht sie mit der gespeicherten Baseline. Bei Ausführung als root enthält das Ergebnis außerdem ein zusätzliches Feld, recentIntrusionContext: zu jeder jüngsten Änderung den Prozess, der sie vorgenommen hat (Konto, ausführbare Datei, Befehl), und die SSH-Anmeldung, zu der er gehört (Quelle, Anmeldezeit, Authentifizierungsmethode), oder den Grund, warum das nicht ermittelt werden konnte. |
get_file_scan_guard_status |
Linux (Server) | Liefert die Konfiguration des File Scan Guard (ClamAV) und den Zustand des zugehörigen Quarantäne-Tresors (ein Tool der Server Edition; es meldet nicht die Einstellungen des Malware-Guards der Client-Edition). |
get_ebpf_incidents |
Linux (Server) | Liefert den aktuellen Isolationsstatus des eBPF-Runtime-Guards und die Vorfallshistorie dahinter. In der Server Edition trägt jeder Eintrag außerdem die Zeit von der Erkennung bis zur Reaktion in Millisekunden (detect_to_receive_ms, receive_to_action_ms, detect_to_action_ms), und das Ergebnis enthält den Zustand des Falco-Heartbeats (heartbeat). |
get_resource_guard_incidents |
Linux (Server) | Liefert die Historie des Ressourcen- und Prozessanomalie-Schutzes (Speicherlecks, Crash-Loops) samt Konfidenzstufe (dieser Guard gehört zur Server Edition; die Client-Edition führt ihn nicht aus, daher ist das Ergebnis dort immer leer). |
get_incident_timeline |
Mac / Linux | Führt die Erkennungen aller Schutzmodule zu einer chronologischen Zeitleiste zusammen — mit Prozessabstammung und MITRE-ATT&CK-Tags (experimentell). |
get_network_history |
Mac | Zeichnet für jedes gespeicherte WLAN auf, wie viele verschiedene Gateway-Geräte darauf geantwortet haben und wann es zuletzt gesehen wurde, und markiert andere Netzwerke mit verdächtig ähnlichem Namen (mögliche Evil-Twin-Kandidaten). Beantwortet auch, ob mit einem bestimmten Netzwerk schon einmal eine Verbindung bestand. |
get_vpn_status |
Linux (Client) | Gibt zurück, ob VPN in nicht vertrauenswürdigen Netzwerken (WireGuard / Tailscale) aktiviert ist, ob der Tunnel tatsächlich steht und ob der leck-sichere Kill-Switch scharf geschaltet ist. |
get_link_guard_status |
Linux (Client) | Gibt den Aktivierungsstatus, den Modus (aus / warnen / blockieren), die Zulassungsliste sowie die Block-/Warn-Ereignisse der letzten 7 Tage von Link Guard zurück (blockiert Phishing / bösartige Websites über DNS-/TLS-SNI-/HTTP-Host-Prüfung). |
get_air_gap_status |
Linux (Client) | Gibt zurück, ob die Notfall-Air-Gap-Isolation (gesamter Datenverkehr blockiert) gerade aktiv ist, den Auslösegrund, die Zeit bis zur automatischen Freigabe sowie alle aktuell per SIGSTOP eingefrorenen Prozesse. |
get_sharing_services_status |
Linux (Client) | Gibt die Einstellung zurück, mit der SSH, Samba und Bildschirmfreigabe (GNOME Remote Desktop / VNC / xrdp) in nicht vertrauenswürdigen Netzwerken automatisch gestoppt werden, sowie den tatsächlichen Status der davon betroffenen und wiederhergestellten Dienste. |
get_bluetooth_guard_status |
Linux (Client) | Gibt die Einstellung des Bluetooth-Guards zurück, der die Sichtbarkeit in nicht vertrauenswürdigen Netzwerken zwangsweise deaktiviert, sowie den tatsächlichen Zustand des Controllers (Betriebsbereitschaft, Sichtbarkeit, verbundene Geräte). |
get_usb_guard_status |
Linux (Client) | Gibt die Einstellungen des USB-Speicher-Guards und des BadUSB-Tastatur-Guards zurück (Eingaben werden nur über evdev unterdrückt — Geräte werden niemals auf Kernel-Ebene deautorisiert) sowie verbundene und auf Genehmigung wartende Geräte. |
get_fleet_status |
Linux | Liefert den geräteseitigen Status von Fleet (organisationsweite Verwaltung, eine in Vorbereitung befindliche Funktion für RoamSwitch Business): ob das Gerät registriert ist, welche Richtlinienversion gilt, den Check-in-Status und mehr. Registrierungscodes, Token, Schlüssel und Lizenzdaten werden nie zurückgegeben. Fleet hat keinen Kanal für Fernbefehle, ein Administrator kann dieses Gerät also weder isolieren noch bedienen. |
get_sensor_audit_results |
Mac / Linux | Liefert die Ergebnisse aktiver Audits, die bei einem gekoppelten RoamSwitch Sensor (einem separaten Produkt, das auf Ihrer eigenen Hardware im selben LAN läuft) angefragt wurden: ausstehend, abgeschlossen oder fehlgeschlagen. So kommt die Außensicht hinzu, ob etwas tatsächlich erreichbar ist, was von innen nicht sichtbar ist. Ein Audit anzufordern oder einen Sensor zu koppeln ist über dieses Tool nicht möglich. |
Von den oben genannten Tools funktionieren diejenigen, die nur lokalen Zustand lesen (Quarantäne, Canary, Port-Anomalie, Runtime-Bedrohung, Benachrichtigungsverlauf, Vorfall-Zeitleiste, Netzwerkverlauf, Status von VPN / Link Guard / Air-Gap / Sharing-Diensten / Bluetooth / USB-Guard usw.), auch dann weiter, wenn RoamSwitch wegen einer erkannten Bedrohung die Netzwerkverbindung notfallmäßig gekappt hat. In Kombination mit einem lokalen LLM lässt sich die Ursache dann direkt vor Ort untersuchen, während die Verbindung getrennt ist.
Begründungscodes von verify_security_findings. Auf beiden Plattformen gibt es failing (trifft weiterhin zu), passing (unauffällig), not_applicable (hier konstruktionsbedingt nicht zutreffend), not_verifiable (auf diesem Weg nicht bestätigbar) und unknown_check_id (die angegebene checkId gibt es nicht). Nur auf dem Mac erscheinen helper_unavailable (der privilegierte Helper ist nicht verbunden), gateway_unknown (das Gateway ließ sich nicht bestimmen), no_baseline (kein Abgleich mit der Gateway-MAC eines registrierten vertrauenswürdigen Netzwerks möglich; ist keines registriert, liefert die ARP-Überwachung über MCP immer diesen Wert), not_measured (die Portliste wurde noch nie gemessen; tritt nur im In-App-Bericht auf, über MCP normalerweise nicht), location_unavailable (das Auslesen des WLANs braucht die Berechtigung für Ortungsdienste) und tool_failed (ein Systembefehl lieferte nichts oder die Ausgabe ließ kein klares Aktiv/Inaktiv zu, etwa SIP mit enabled (Custom Configuration)). Nur unter Linux erscheinen not_root (läuft nicht als root, daher nicht lesbar), daemon_unknown (der Daemon-Zustand ist nicht verfügbar), tool_missing (ein benötigter Befehl fehlt), tool_timeout (ein externer Befehl wurde nach Zeitüberschreitung abgebrochen), docker_unreachable (Docker ist nicht erreichbar) und unconfirmed (der Check selbst hat sein Ergebnis als unbestätigt gekennzeichnet). Bei inconclusive lässt sich weder bestätigen noch ausschließen, dass die Korrektur gewirkt hat. Stellen Sie die fehlende Berechtigung oder Verbindung her und rufen Sie das Tool erneut auf.
Mit einem externen Host kommuniziert nur run_npm_audit_signatures (npm-Registry), das Opt-in ist und auf dem Mac Pro-exklusiv. run_active_vuln_scan (standardmäßig deaktiviert) prüft nur 127.0.0.1, und get_exposed_ports sendet auf dem Mac nur einen HTTP-GET pro erreichbarem Port an 127.0.0.1, um die Header zu prüfen. Zur Ermittlung der MAC-Adresse des Gateways können die Diagnose-Tools auf dem Mac einen ICMP-Ping, normalerweise einen (bei nicht auflösbarer MAC einige), an das Gateway im LAN senden. Unter Linux senden get_security_report und verify_security_findings nichts ins LAN und lesen das Gateway nur aus lokalen Caches (andere Tools, die die Gateway-MAC neu auflösen, etwa get_guard_status, können einen Ping senden).
Konkrete Prompts für Alltag & Entwicklung
Praxisnahe Prompts und KI-Antworten für Port-Audits bei der lokalen Entwicklung, Sicherheitschecks in öffentlichen WLANs, Phishing-URL-Scans und mehr. Prompts einfach kopieren und an die KI senden.
Port-Exposure-Audit für lokale Server & DBs
Lassen Sie die KI beim Start von Next.js, Vite, Python, Docker, Redis etc. prüfen, ob Ports versehentlich auf 0.0.0.0 an das gesamte lokale Netzwerk freigegeben sind.
• 🚨 Port 3000 (node / Next.js): Exponiert auf
0.0.0.0:3000• 🚨 Port 6379 (redis-server): Exponiert auf
0.0.0.0:6379 (ohne Authentifizierung; für andere Geräte im selben WLAN erreichbar)• ✅ Port 5432 (postgres): Gebunden an
127.0.0.1:5432 (nur localhost / sicher)💡 Empfehlung: In der Redis-Konfiguration auf
bind 127.0.0.1 umstellen und Next.js mit npm run dev -- -H 127.0.0.1 starten.Sicherheitscheck bei Verbindung mit öffentlichem WLAN
Lassen Sie die KI direkt nach dem Verbinden mit einem Café- oder Hotel-WLAN prüfen, ob Firewall, Stealth-Modus und ARP-Schutz aktiv sind.
• 🛡️ Gesamtbewertung: 88 / 100 (Grade: A-)
• 📡 Netzwerkstatus: Nicht vertrauenswürdiges Netzwerk (Unterwegs-Modus / Paketfilter aktiv)
• ✅ Firewall / Stealth-Modus: Aktiviert (blockiert externe Sondierungspakete)
• ✅ Automatischer ARP-Schutz: Aktiviert (automatische Isolation bei Abfangversuchen)
• ⚠️ Empfehlung: FileVault-Festplattenverschlüsselung ist deaktiviert. Aktivierung in den Systemeinstellungen empfohlen.
Prüfung verdächtiger Links aus E-Mails & Chats
Prüfen Sie verdächtige Links aus E-Mails oder Slack/Discord-Nachrichten direkt lokal auf dem Mac, ohne die URL an externe Server zu senden (Zero Telemetry).
• 🚨 Risikostufe: Dangerous (Gefahr / Sicherheits-Score: 8/100)
• ❌ Marken-Täuschung (Subdomain): Gibt vor,
apple.com zu sein, die tatsächliche Domain lautet jedoch login-auth-verify.xyz.• ❌ Hochrisiko-TLD:
.xyz wird häufig für kurzlebige Phishing-Kampagnen verwendet.• 🔒 Zero Telemetry: Vollständig lokal auf dem Mac geprüft, keine externen Daten übertragen.
• 🛑 Empfohlene Maßnahme: Link keinesfalls öffnen, E-Mail sofort löschen und melden.
Autonome Sicherheitsüberwachung beim Coden
Lassen Sie Claude Code oder Antigravity beim Einrichten von Diensten und Tests MCP-Tools autonom als Schutzgeländer nutzen, um versehentliche Port-Freigaben zu verhindern.
1. Fastify-Backend auf Port 8080 gestartet.
2. 🔍 RoamSwitch MCP-Verifizierung:
get_exposed_ports ausgeführt und bestätigt, dass der Port strikt an 127.0.0.1:8080 (nur localhost) gebunden ist.3. Sicherheit bestätigt. Integrationstests werden fortgesetzt.
Täglicher Sicherheitsbericht & Markdown-Export
Erstellen Sie auf Knopfdruck einen übersichtlichen Markdown-Sicherheitsbericht für IT-Richtlinien, Firmenaudits oder Ihr persönliches Arbeitsprotokoll.
## 🛡️ Mac Security Health Report (2026-08-28)
- Score: 96 / 100 (Grade: A+)
- Kernschutz-Status:
• FileVault: ✅ Aktiviert (APFS Encrypted)
• SIP: ✅ Aktiviert
• Firewall / Stealth-Modus: ✅ Aktiviert
• ARP-Spoofing-Schutz: ✅ Aktiviert
• DNS-Bedrohungsschutz: ✅ Aktiviert (Quad9 Secure DNS)
- Empfohlene Maßnahmen: Keine (ausgezeichneter Sicherheitszustand)Statusprüfung für USB-, Bluetooth- & Download-Guards
Überprüfen Sie, ob Echtzeitschutzfunktionen wie Warnung vor unbekannten USB-Speichern, Bluetooth-Überwachung und Download-Schutz aktiv sind.
• 🛡️ Aktive Schutzstufe: Balanced (Standard-Schutz)
• ✅ USB-Speicherschutz: Aktiv (warnt/blockiert bei nicht registrierten USB-Geräten)
• ✅ Bluetooth-Wache: Aktiv (überwacht Annäherung ungekoppelter Geräte)
• ✅ Web/Mail-Download-Schutz: Aktiv (automatische ClamAV-Prüfung bei Quarantäne-Dateien)
• ✅ DNS-Bedrohungsschutz: Aktiv (blockiert bösartige C2- und Phishing-Domains)
App-Nutzung, Funktionen und Warnmeldungen verstehen
Fragen Sie die KI zu jeder Benachrichtigung, Warnung oder technischen Funktion (Paketfilter, FSEvents, ClamAV-Quarantäne, USB-Schutz usw.) und erhalten Sie verifizierte Ratschläge aus der Wissensdatenbank.
• 🚪 Grund: Der Server lief auf
0.0.0.0 (offen im LAN). Eingehende externe Verbindungen wurden blockiert.• ⚙️ Lösung:
1. Empfohlen: Mit
npm run dev -- -H 127.0.0.1 starten.2. Freigabe: Im RoamSwitch-Menü unter 'Port-Audit' erlauben.
• 🔍 Vorfall: Ein fremdes Gerät hat gefälschte ARP-Pakete gesendet, um sich als Router auszugeben (Man-in-the-Middle-Angriff).
• 🛡️ Automatische Abwehr: RoamSwitch hat die Verbindung per Notfall-AirGap isoliert.
• 🛑 Empfehlung: Verbinden Sie sich nicht erneut mit diesem WLAN. Arbeiten Sie sicher über Tethering weiter.
• 🔌 Grund: Zum Schutz vor Datenabfluss und BadUSB-Firmware-Angriffen automatisch ausgeworfen.
• ⚙️ Schritte: 1. RoamSwitch-'Einstellungen' in der Menüleiste öffnen → 2. 'USB-Speicherschutz' wählen → 3. 'Von verbundenen Geräten hinzufügen' klicken → 4. Auf 'Schreibgeschützt (Empfohlen)' setzen und speichern.
• ⚠️ Ursache: Die XPC-Kommunikation mit dem privilegierten Daemon
RoamSwitchHelper (Paketfiltersteuerung) ist unterbrochen.• 🛠️ Wiederherstellung:
1. Terminal öffnen und Hilfsprogramm neu starten:
sudo killall RoamSwitchHelper2. RoamSwitch neu starten.
3. In 'Systemeinstellungen' > 'Allgemein' > 'Anmeldeobjekte & Erweiterungen' prüfen, ob
RoamSwitchHelper aktiviert ist.Offline-Triage mit lokalem LLM + MCP nach einer Air-Gap-Notabschottung
Wenn Air-Gap (die Notfall-Netzwerkabschottung) ausgelöst wird — etwa bei erkannter Ransomware —, wird damit auch die Verbindung zu cloudbasierten KI-Clients wie Claude Desktop gekappt. RoamSwitchs MCP-Server funktioniert jedoch weiter, da er ausschließlich über eine lokale Prozess-Pipe kommuniziert; kombiniert mit einem lokalen LLM (z. B. über Ollama) können Sie die Diagnose ganz ohne Netzwerkzugriff fortsetzen. Log-Anomalieerkennung, Manipulationserkennung und der Abgleich mit bekannten CVEs laufen vollständig lokal ab — genau der Moment, für den sie gebaut sind: wenn das Netzwerk selbst weg ist.
• 🐛 Canary ausgelöst: Verschlüsselung von
/var/www/decoy_invoice.pdf um 14:32:07 erkannt; Prozess suspicious_enc (PID 8823) wurde sofort eingefroren und isoliert• 🔌 Portüberwachung (Port Anomaly Guard): Keine neuen automatisch blockierten Listener in der Vorfallshistorie — der Canary-Auslöser scheint der einzige Einstiegspunkt zu sein, keine zusätzlichen Backdoor-Ports geöffnet
• 📜 Log-Korrelation (Anomalieerkennung): Ein Anstieg der
sshd-Authentifizierungsfehler beginnt 12 Minuten vor dem Auslöser (Häufigkeitsspitze erkannt, Z-Score 5,2) — ein möglicher Einstiegspunkt• 🔒 Manipulationserkennung (FIM): Keine Manipulation an ca. 150 kritischen Systempfaden gefunden — kein Hinweis, dass der Vorfall die Systemebene erreicht hat
• 📦 Abgleich mit bekannten CVEs: Abgleich mit der lokalen CVE-Map — keine kritischen bekannten Schwachstellen in den betroffenen Paketen
💡 Empfohlene Maßnahme: Der Vorfall ist wahrscheinlich auf das Web-Root beschränkt. Prüfen Sie vor der Wiederherstellung aus dem Backup auch die übrigen Dateien in diesem Verzeichnis einzeln.
Zur MCP-Integration
Q. Kommuniziert es wirklich nie nach außen?
A. Ja. Der MCP-Server ist ein lokaler Prozess, der von Ihrem KI-Client direkt über die Standard-E/A (stdio) gestartet wird, und sendet keinerlei Telemetrie. Die Diagnoseergebnisse werden direkt auf diesem Mac / Linux-Gerät berechnet. Mit einem externen Host kommuniziert nur run_npm_audit_signatures (npm-Registry), das Opt-in ist und auf dem Mac Pro-exklusiv. run_active_vuln_scan (standardmäßig deaktiviert) prüft nur 127.0.0.1, und get_exposed_ports sendet auf dem Mac nur einen HTTP-GET pro erreichbarem Port an 127.0.0.1, um die Header zu prüfen. Zur Ermittlung der MAC-Adresse des Gateways können die Diagnose-Tools auf dem Mac einen ICMP-Ping, normalerweise einen (bei nicht auflösbarer MAC einige), an das Gateway im LAN senden. Unter Linux senden get_security_report und verify_security_findings nichts ins LAN und lesen das Gateway nur aus lokalen Caches (andere Tools, die die Gateway-MAC neu auflösen, etwa get_guard_status, können einen Ping senden).
Q. Kann ich es auch ohne die Pro-Version nutzen?
A. Unter Linux stehen alle Tools kostenlos zur Verfügung. Auch mit der kostenlosen Version der Mac-App funktionieren die meisten Tools, vier sind jedoch Pro-exklusiv und liefern einen Fehler, wenn Pro nicht aktiv ist: get_ransomware_recovery_snapshots, search_exec_events, get_process_tree und run_npm_audit_signatures. Ob die einzelnen Auto-Guards tatsächlich aktiv sind, hängt außerdem vom Pro-Lizenzstatus ab, sodass die Tools nur den Schalterstatus in den Einstellungen bestätigen können.
Q. Welche KI-Clients werden unterstützt?
A. Jeder Client, der den stdio-Transport von MCP (Model Context Protocol) unterstützt, sollte grundsätzlich funktionieren, auch über die oben genannten hinaus. Getestet mit Claude Desktop, Claude Code, OpenAI Codex CLI, OpenCode und Antigravity.
Q. Antigravity meldet „Hook Failure“ oder Telemetriefehler beim Ausführen von Tools?
A. Ein PreToolUse-Hook von externen Plug-ins (z. B. Google Cloud Telemetrie) in Antigravity blockiert möglicherweise die Tool-Ausführung. Öffnen Sie ~/.gemini/config/plugins/.../hooks.json und setzen Sie "enabled": false.
Q. Kann ich bei getrennter Netzwerkverbindung trotzdem Anfragen stellen?
A. Ja, mit lokalen LLMs (z. B. via OpenCode mit Ollama/LM Studio) läuft die gesamte Verarbeitung lokal auf dem Mac / Linux-Gerät, sodass Anfragen auch während einer Notfall-Netzwerk-Isolation offline funktionieren. Bei Cloud-Modellen (wie Claude API) wechseln Sie bitte zuerst auf eine sichere Verbindung wie Tethering.