Warum ich eine App gebaut habe, die die Netzwerkgrenze Ihres Mac automatisch schützt
Ein Bericht darüber, wie der unabhängige Entwickler Tetsuharu Fujiki (Lafine Systems Design) die Risiken öffentlicher Wi-Fi-Netzwerke und offener Entwicklungsserver selbst untersucht hat.
Der Auslöser war eine beiläufige Frage zum WLAN im Schnellrestaurant
Als ich eines Tages über ein öffentliches WLAN arbeitete, fragte ich mich plötzlich: „Wie sieht mein Mac wohl für die Person am Nachbartisch über dieses WLAN aus?“ – und begann nachzuforschen.
„Solange auf einem öffentlichen WLAN Client-Isolation (AP-Isolation) aktiv ist, ist man sicher, weil man nicht mit anderen Geräten kommunizieren kann“ – das dachte ich lange. Bei genauerem Hinsehen stellte sich diese Annahme jedoch als brüchiger heraus, als gedacht. Client-Isolation ist keineswegs auf jedem WLAN aktiviert, und selbst wo sie es ist, kann sie – wie das SANS Institute berichtete – mit einer Technik namens „AirSnitch“ umgangen werden. Erst als ich selbst dns-sd und lsof ausführte, wurde mir wirklich bewusst, wie viel mein Mac über Bonjour (mDNS) im Klartext preisgibt.
Das Fazit meiner Recherche war einfach: Es gibt nur zwei wirksame Gegenmaßnahmen – „die exponierte Fläche verringern“ und die Annahme zugrunde legen, dass „ein Mensch die Einstellungen nicht jedes Mal manuell umschaltet, wenn sich das Netzwerk ändert“. Fast niemand überprüft bei jedem Café-Besuch erneut die Einstellungen (ich auch nicht). Also dachte ich, es braucht einen Mechanismus, der automatisch zwischen vertrauenswürdigen Netzwerken und allen anderen unterscheidet und die exponierte Fläche in unbekannten Netzwerken von selbst verkleinert – daraus als macOS-App umgesetzt entstand RoamSwitch.
Wie sich zeigte, hatten auch Entwicklungsserver dasselbe Problem
Im Anschluss an meine Recherche zu öffentlichem WLAN wurde ich neugierig, „wie sieht es eigentlich bei Entwicklungsservern aus“ und grub tiefer. Ich hatte vage angenommen, „Entwicklungsserver lauschen nur auf localhost, also sind sie von außen sicher“ – aber auch das erwies sich als stark framework-abhängig, mit teils kontraintuitiven Standardeinstellungen.
next dev bindet an 0.0.0.0, sofern kein Hostname angegeben wird, und python -m http.server legt standardmäßig ebenso alle Schnittstellen offen. Vite ist vergleichsweise vernünftig und verwendet standardmäßig localhost – aber jeder hat wohl schon einmal --host hinzugefügt, um auf einem echten Smartphone zu testen, und genau das trifft CVE-2023-34092 (ein Path-Traversal-Fehler, CVSS 7,5). Die -p-Option von Docker geht so weit, sogar an der Firewall des Hosts vorbei auf 0.0.0.0 zu veröffentlichen.
Am Ende führte das zum selben Schluss. Statt sich darauf zu verlassen, dass ein Mensch jedes Mal daran denkt, etwas zu schließen, ist ein Mechanismus realistischer, der den externen Zugriff automatisch blockiert, sobald man sich mit einem nicht vertrauenswürdigen Netzwerk verbindet. Das ist in der Praxis einer der am häufigsten gemeldeten Anwendungsfälle von RoamSwitch geworden – offene Ports werden passiv geprüft und das Risiko gemeldet, während der Zugriff aus dem externen LAN bei nicht registrierten Netzwerken über den Paketfilter des Kernels blockiert wird.
Lafine Systems Design / Unabhängiger Entwickler
Die technische Grundlage hinter RoamSwitchs Firewall-Steuerung (pf/socketfilterfw), ARP-Spoofing-Erkennung und sicherer Rechtetrennung über einen privilegierten Helfer (XPC) stützt sich auf praktische Erfahrung als Systemingenieur bei einem ausländischen IT-Unternehmen und einer großen Elektronikkonzerngruppe sowie auf Kenntnisse zu Betriebssystem- und Netzwerkgrundlagen, Betriebsautomatisierung, Störungsbehebung und Sicherheitsmanagement, die beim Betrieb eines eigenen ASP-Dienstes für Behörden, Universitäten und Forschungseinrichtungen als Selbstständiger erworben wurden. Zu den Interessengebieten zählen Low-Level-Linux, Netzwerkverteidigung, maschinelles Lernen, Hochleistungs-Dateninfrastruktur und Systemdesign. Derzeit als unabhängiger Entwickler auch im Bereich KI/maschinelles Lernen tätig, während RoamSwitch, eine App zur Automatisierung der Netzwerksicherheit von Macs, entwickelt und bereitgestellt wird. Erkenntnisse werden als technische Artikel auf Zenn veröffentlicht.
Nachprüfbar veröffentlicht
- RoamSwitchKit — Open-Source-SDK unter der MIT-Lizenz (GitHub)
- roamswitch-mcp — Quellcode des MCP-Servers und der Erkennungslogik (GitHub, MIT)
- RoamSwitch Sicherheits-Whitepaper (jeder Abschnitt öffentlich)
- Zero-Telemetry-Egress mit tcpdump + Prozesszuordnung gemessen (reproduzierbares Skript, PASS)
- Änderungsprotokoll (GitHub, laufend ausgeliefert)
- Recherchen als technische Artikel auf Zenn
- Notizen zum Solo-Betrieb eines Sicherheitsprodukts auf note (JP)
- Englische Beiträge und Essays auf dev.to
Gesetzlich vorgeschriebene Angaben wie Name des Betreibers, Anschrift und Zahlungsarten finden Sie in der Offenlegung nach dem Gesetz über bestimmte Handelsgeschäfte.