Ein dedizierter Sensor-Knoten fürs LAN: „RoamSwitch Sensor“
RoamSwitch Sensor ist ein dedizierter LAN-Knoten, der die RoamSwitch-Endpunkte im selben LAN (Mac / Linux Client / Server Edition) von außen prüft. Er stellt fest, wie ein Host für ein anderes Gerät im LAN aussieht (offene Ports, ohne Authentifizierung erreichbare Dienste, Ansatzpunkte für laterale Bewegung), was der Host durch Selbstdiagnose prinzipiell nicht sehen kann. Zusätzlich bietet er ein Geräteinventar des LANs und die Erkennung von ARP-Spoofing.
🛡️ Aktives Schwachstellen-Audit (nur gekoppelte Endpunkte)
Vollständiger Portscan → Prüfung bekannter Signaturen (unauthentifizierte Redis/dockerd/Memcached/MongoDB/Elasticsearch/CouchDB/Jenkins/VNC-Exposition, SMBv1 und fehlende SMB-Signierung, RDP ohne NLA, offenes SMTP-Relay usw.) → generisches Banner-Grabbing → ergänzender nmap-NSE-Scan — vier Phasen, komplett zerstörungsfrei.
📋 Netzwerkzusammensetzung erfassen (aktiver ARP-Sweep)
Findet die Geräte im LAN mit einem ARP-Sweep. Daraus entsteht ein Inventar mit IP, MAC, Hostname, Hersteller, Online-Status, Erst-/Letztsichtung und IP-Verlauf; pro Gerät lässt sich frei Name oder Zweck notieren. Geräte ohne Notiz werden als prüfungsbedürftig hervorgehoben, sodass die Liste auch zum Abgleich mit Ihrer Inventarliste dient. Ohne nmap fällt der Sensor auf einen passiven Modus zurück, der nur Geräte zeigt, mit denen er selbst kommuniziert hat.
👁️ ARP-Ereignisse mit „Nächste Schritte“
Neu auftauchende Geräte und MAC-Änderungen bei einer bekannten IP (Hinweis auf ARP-Spoofing) werden mit Zeitstempel, Schweregrad (kritisch bis Info), Begründung, Beteiligten und konkreten Prüfschritten angezeigt. Eine MAC-Änderung bei der Gateway-IP gilt als kritisch. Mit der optionalen passiven Erfassung erkennt der Sensor außerdem ein Gerät, das ARP-Anfragen für viele IPs sendet (interne Aufklärung).
🔎 Überblick über andere LAN-Geräte & verdächtiges Verhalten (nur Erkennung)
Zeigt als Referenzinformation: MAC-Hersteller und Gerätekategorie, Modellerkennung über mDNS/SSDP/DHCP-Selbstauskünfte, Verbindungen zu bekannten bösartigen IPs oder Admin-Ports, Anzeichen für Botnet-/DDoS-Beteiligung (viele Ziele) sowie für DNS-Tunneling/C2. Das meiste erfordert die optionale passive Erfassung (z. B. Mirror-Port); der Sensor blockiert nie Datenverkehr.
🔑 Pairing per Code (Ed25519, feste IP)
Vertraut standardmäßig niemandem. Die Eingabe des 10 Minuten gültigen, einmaligen Pairing-Codes, den der Sensor-Betreiber ausgestellt hat, zusammen mit der festen IP-Adresse des Sensors, stellt in einem einzigen Schritt gegenseitiges Vertrauen in beide Richtungen her. Public Keys werden automatisch ausgetauscht, Sie müssen sie also nicht vorab kennen. Keine Cloud-Registrierung oder Konto nötig.
📅 Geplante Audits und Änderungserkennung (optional)
Prüft alle gekoppelten Endpunkte automatisch nach Zeitplan und zeigt, was sich seit dem vorherigen Audit geändert hat – neue Befunde, behobene und neu geöffnete Ports. Sind alle zuvor offenen Ports plötzlich nicht mehr sichtbar, gilt das als vermutlich nicht erreichbar, nicht als behoben. Auch unbeaufsichtigt bestätigt der Sensor vor und nach jedem Audit, dass die MAC-Adresse des Endpunkts noch die bei seiner Authentifizierung ist, und überspringt das Audit, wenn die IP an ein anderes Gerät gegangen ist. Standardmäßig aus; Intervall und Zeitfenster stellen Sie ein.
📣 Benachrichtigungen und Audit-Nachweise (optional)
Regressionen, neue Geräte, ARP-Spoofing u. a. lassen sich an Webhooks (Slack, Discord, Teams und andere) und syslog (RFC 5424) melden. Kopplung, Aufhebung, Audits und Konfigurationsänderungen werden mit dem Verursacher in einem manipulationssicheren Betriebsprotokoll (Hash-Kette) festgehalten; Audit-Ergebnisse, Geräteinventar und Protokoll lassen sich als CSV, JSON oder HTML-Bericht (im Browser als PDF speichern) exportieren. Jedes Ziel legen Sie selbst fest; standardmäßig wird nichts gesendet.
🗂️ Mehrere Sensoren zusammenführen (zentraler Collector, optional)
Für Organisationen mit Sensoren an mehreren Standorten ist ein zentraler Collector enthalten, der signierte Zusammenfassungen sammelt (standardmäßig deaktiviert). Er bietet ein Dashboard pro Standort und CSV-Export und erkennt, wenn das Audit-Protokoll eines Sensors abgeschnitten oder zurückgesetzt wurde. Er akzeptiert nur signierte Anfragen registrierter Sensoren und lässt sich ohne TLS nicht über das LAN hinaus erreichbar machen.
Falls der Sensor selbst gegen Angriffe gehärtet werden muss, empfehlen wir, RoamSwitch for Linux Server Edition separat auf derselben Maschine zu installieren — beide laufen als vollständig unabhängige Prozesse.
Beispiel eines Audit-Berichts
Beispiel für den Bericht, den roamswitch-sensor export all --format html (in der TUI die Taste e) erzeugt. Es ist eine einzelne HTML-Datei: im Browser öffnen und „Als PDF speichern“ wählen, um ein PDF für Prüfer zu erhalten.
RoamSwitch Sensor Auditbericht
| Erstellt am (UTC) | 2026-09-20T02:30:12.508136294+00:00 |
|---|---|
| Standort | Hauptsitz, Serverraum 3. OG |
| Sensor-Public-Key | +kbYCoN5jJSykTAr8zDv/VCs2SdBcrwYbkCrzCRgsLM= |
| Auditprotokoll | Integritätsprüfung: in Ordnung (keine Manipulation), 18 Einträge, head #18 771a265c58fa2f0a8990bc6be79ff5259d96a76a0a3fea472f308df02eaa087f |
Letztes Auditergebnis je Gerät
| Gerät | Adresse | Ausführungszeit | Funde | Offene Ports |
|---|---|---|---|---|
| web-prod-01 | 192.168.20.21 | 2026-09-20T02:00:43.318204577+00:00 | 1 Eintrag | 2 |
| db-prod-01 | 192.168.20.22 | 2026-09-20T02:01:14.774390215+00:00 | 2 Einträge | 3 |
| dev-laptop-07 | 192.168.20.35 | 2026-09-20T02:02:07.120765432+00:00 | Keine Probleme | 1 |
Feststellungen
| Datum/Uhrzeit | Gerät | Port | Beschreibung | Empfohlene Maßnahme |
|---|---|---|---|---|
| 2026-09-20T02:01:14.774390215+00:00 | db-prod-01 | 22 | SSH-Versionsbanner sichtbar Dieser SSH-Server gibt beim Verbindungsaufbau sein Versionsbanner preis. Das Banner selbst ist normales Verhalten, liefert Angreifern aber Hinweise, um bekannte Schwachstellen einzugrenzen. | SSH auf die neueste Version aktualisieren und den Bannerinhalt bei Bedarf minimieren. |
| 2026-09-20T02:01:14.774390215+00:00 | db-prod-01 | 6379 | Bekannte Schwachstelle: CVE-2021-32626 (Redis) NVD-Beschreibung (englisches Original): Redis is an open source, in-memory database that persists on disk. In affected versions specially crafted Lua scripts executing in Redis can cause the heap-based Lua stack to be overflowed, due to incomplete checks for this condition. This can result with heap corruption and potentially remote code execution. This problem exists in all versions of Redis with Lua scripting support, starting from 2.6. The problem is fixed in versions 6.2.6, 6.0.16 and 5.0.14. | Redis umgehend auf eine von CVE-2021-32626 nicht betroffene Version aktualisieren und bis dahin den Netzwerkzugriff ohne Authentifizierung einschränken. |
| 2026-09-20T02:00:43.318204577+00:00 | web-prod-01 | 22 | SSH-Versionsbanner sichtbar Dieser SSH-Server gibt beim Verbindungsaufbau sein Versionsbanner preis. Das Banner selbst ist normales Verhalten, liefert Angreifern aber Hinweise, um bekannte Schwachstellen einzugrenzen. | SSH auf die neueste Version aktualisieren und den Bannerinhalt bei Bedarf minimieren. |
| 2026-09-19T08:33:18.402118906+00:00 | db-prod-01 | 22 | SSH-Versionsbanner sichtbar Dieser SSH-Server gibt beim Verbindungsaufbau sein Versionsbanner preis. Das Banner selbst ist normales Verhalten, liefert Angreifern aber Hinweise, um bekannte Schwachstellen einzugrenzen. | SSH auf die neueste Version aktualisieren und den Bannerinhalt bei Bedarf minimieren. |
Geräteverzeichnis (alle im LAN beobachteten Geräte)
| MAC | IP | Hostname | Hersteller | Von RoamSwitch verwaltet | Notiz |
|---|---|---|---|---|---|
| 00:1b:8b:3c:9a:07 | 192.168.20.1 | _gateway | NEC Platforms | Nicht verwaltet | Gateway-Router Hauptsitz |
| 7c:8b:ca:61:d2:4e | 192.168.20.2 | TP-Link Technologies | Nicht verwaltet | WLAN-Access-Point 3. OG | |
| e4:e7:49:2b:70:c1 | 192.168.20.3 | Hewlett Packard | Nicht verwaltet | Multifunktionsgerät 2. OG | |
| 90:61:ae:17:4d:e2 | 192.168.20.21 | Intel Corporate | Verwaltet | Produktiver Webserver | |
| 90:61:ae:17:4d:f9 | 192.168.20.22 | Intel Corporate | Verwaltet | Produktiver DB-Server | |
| 04:20:9a:cc:31:8f | 192.168.20.31 | sensor-hq-01 | Panasonic AVC Networks Company | Nicht verwaltet | RoamSwitch-Sensor |
| a0:c9:a0:5e:83:2b | 192.168.20.35 | Murata Manufacturing | Verwaltet | Entwicklungs-Notebook | |
| 8e:0f:95:a2:64:5d | 192.168.20.44 | Nicht verwaltet | |||
| 5e:e2:59:1d:c8:03 | 192.168.20.45 | Nicht verwaltet | |||
| a8:3b:76:9c:20:e4 | 192.168.20.52 | Cloud Network Technology Singapore PTE. | Nicht verwaltet |
Bedien- und Freigabeprotokoll
| # | Datum/Uhrzeit | Ausführender | Betrieb | Geltungsbereich | Details |
|---|---|---|---|---|---|
| 18 | 2026-09-20T02:02:07.120765432+00:00 | scheduler | audit_completed | dev-laptop-07 (Q9mW3sLp0xVc) | trigger=scheduled host=192.168.20.35 findings=0 open_ports=1 new_findings=0 resolved_findings=0 |
| 17 | 2026-09-20T02:02:05.402816653+00:00 | scheduler | audit_started | dev-laptop-07 (Q9mW3sLp0xVc) | host=192.168.20.35 |
| 16 | 2026-09-20T02:01:14.774390215+00:00 | scheduler | audit_completed | db-prod-01 (Zt4Kb8NwY1eR) | trigger=scheduled host=192.168.20.22 findings=2 open_ports=3 new_findings=1 resolved_findings=0 |
| 15 | 2026-09-20T02:01:12.117409552+00:00 | scheduler | audit_started | db-prod-01 (Zt4Kb8NwY1eR) | host=192.168.20.22 |
| 14 | 2026-09-20T02:00:43.318204577+00:00 | scheduler | audit_completed | web-prod-01 (Xk3F9aLm2QzB) | trigger=scheduled host=192.168.20.21 findings=1 open_ports=2 new_findings=1 resolved_findings=0 |
| 13 | 2026-09-20T02:00:41.029385714+00:00 | scheduler | audit_started | web-prod-01 (Xk3F9aLm2QzB) | host=192.168.20.21 |
| 12 | 2026-09-19T09:11:40.318842077+00:00 | cli:uid=1000 | config_changed | schedule.window_end_hour | value=5 |
| 11 | 2026-09-19T09:11:32.640571920+00:00 | cli:uid=1000 | config_changed | schedule.window_start_hour | value=1 |
| 10 | 2026-09-19T09:10:02.205197346+00:00 | cli:uid=1000 | config_changed | schedule.enabled | value=true |
| 9 | 2026-09-19T08:47:19.771263084+00:00 | control_api: | pair | dev-laptop-07 (Q9mW3sLp0xVc) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 8 | 2026-09-19T08:46:52.093718455+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 7 | 2026-09-19T08:33:18.402118906+00:00 | cli:uid=1000 | audit_completed | db-prod-01 (Zt4Kb8NwY1eR) | trigger=manual host=192.168.20.22 findings=1 open_ports=2 new_findings=1 resolved_findings=0 |
| 6 | 2026-09-19T08:33:15.588240391+00:00 | cli:uid=1000 | audit_started | db-prod-01 (Zt4Kb8NwY1eR) | manual audit; host=192.168.20.22 |
| 5 | 2026-09-19T08:31:07.336914608+00:00 | control_api: | pair | db-prod-01 (Zt4Kb8NwY1eR) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 4 | 2026-09-19T08:30:41.874526103+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 3 | 2026-09-19T08:12:26.152083967+00:00 | control_api: | pair | web-prod-01 (Xk3F9aLm2QzB) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 2 | 2026-09-19T08:11:58.960417225+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 1 | 2026-09-19T08:00:03.415602838+00:00 | daemon | daemon_started | version 0.3.4 |
RoamSwitch Sensor Audit Report
| Generated (UTC) | 2026-09-20T02:30:12.508136294+00:00 |
|---|---|
| Site | HQ – 3F server room |
| Sensor public key | +kbYCoN5jJSykTAr8zDv/VCs2SdBcrwYbkCrzCRgsLM= |
| Audit log | Integrity check: OK (no tampering detected) — 18 entries, head #18 771a265c58fa2f0a8990bc6be79ff5259d96a76a0a3fea472f308df02eaa087f |
Latest audit per endpoint
| Endpoint | Address | Timestamp | Findings | Open ports |
|---|---|---|---|---|
| web-prod-01 | 192.168.20.21 | 2026-09-20T02:00:43.318204577+00:00 | 1 finding(s) | 2 |
| db-prod-01 | 192.168.20.22 | 2026-09-20T02:01:14.774390215+00:00 | 2 finding(s) | 3 |
| dev-laptop-07 | 192.168.20.35 | 2026-09-20T02:02:07.120765432+00:00 | clean | 1 |
Findings
| When | Endpoint | Port | Finding | Recommendation |
|---|---|---|---|---|
| 2026-09-20T02:01:14.774390215+00:00 | db-prod-01 | 22 | SSH Version Banner Disclosed This SSH server discloses its version banner on connect. This is normal SSH behavior, but the banner gives an attacker a starting point to look up known vulnerabilities for that version. | Keep SSH updated to the latest version, and minimize the banner's detail if your SSH implementation allows it. |
| 2026-09-20T02:01:14.774390215+00:00 | db-prod-01 | 6379 | Known Vulnerability: CVE-2021-32626 (Redis) Redis is an open source, in-memory database that persists on disk. In affected versions specially crafted Lua scripts executing in Redis can cause the heap-based Lua stack to be overflowed, due to incomplete checks for this condition. This can result with heap corruption and potentially remote code execution. This problem exists in all versions of Redis with Lua scripting support, starting from 2.6. The problem is fixed in versions 6.2.6, 6.0.16 and 5.0.14. | Upgrade Redis to a version not affected by CVE-2021-32626 as soon as possible, and restrict unauthenticated network access to it in the meantime. |
| 2026-09-20T02:00:43.318204577+00:00 | web-prod-01 | 22 | SSH Version Banner Disclosed This SSH server discloses its version banner on connect. This is normal SSH behavior, but the banner gives an attacker a starting point to look up known vulnerabilities for that version. | Keep SSH updated to the latest version, and minimize the banner's detail if your SSH implementation allows it. |
| 2026-09-19T08:33:18.402118906+00:00 | db-prod-01 | 22 | SSH Version Banner Disclosed This SSH server discloses its version banner on connect. This is normal SSH behavior, but the banner gives an attacker a starting point to look up known vulnerabilities for that version. | Keep SSH updated to the latest version, and minimize the banner's detail if your SSH implementation allows it. |
Device inventory (every device observed on the LAN)
| MAC | IP | Hostname | Vendor | Managed | Note |
|---|---|---|---|---|---|
| 00:1b:8b:3c:9a:07 | 192.168.20.1 | _gateway | NEC Platforms | no | HQ gateway router |
| 7c:8b:ca:61:d2:4e | 192.168.20.2 | TP-Link Technologies | no | 3F Wi-Fi access point | |
| e4:e7:49:2b:70:c1 | 192.168.20.3 | Hewlett Packard | no | 2F multifunction printer | |
| 90:61:ae:17:4d:e2 | 192.168.20.21 | Intel Corporate | yes | Production web server | |
| 90:61:ae:17:4d:f9 | 192.168.20.22 | Intel Corporate | yes | Production database server | |
| 04:20:9a:cc:31:8f | 192.168.20.31 | sensor-hq-01 | Panasonic AVC Networks Company | no | RoamSwitch-Sensor |
| a0:c9:a0:5e:83:2b | 192.168.20.35 | Murata Manufacturing | yes | Development laptop | |
| 8e:0f:95:a2:64:5d | 192.168.20.44 | no | |||
| 5e:e2:59:1d:c8:03 | 192.168.20.45 | no | |||
| a8:3b:76:9c:20:e4 | 192.168.20.52 | Cloud Network Technology Singapore PTE. | no |
Operation & approval log
| # | When | Actor | Action | Target | Detail |
|---|---|---|---|---|---|
| 18 | 2026-09-20T02:02:07.120765432+00:00 | scheduler | audit_completed | dev-laptop-07 (Q9mW3sLp0xVc) | trigger=scheduled host=192.168.20.35 findings=0 open_ports=1 new_findings=0 resolved_findings=0 |
| 17 | 2026-09-20T02:02:05.402816653+00:00 | scheduler | audit_started | dev-laptop-07 (Q9mW3sLp0xVc) | host=192.168.20.35 |
| 16 | 2026-09-20T02:01:14.774390215+00:00 | scheduler | audit_completed | db-prod-01 (Zt4Kb8NwY1eR) | trigger=scheduled host=192.168.20.22 findings=2 open_ports=3 new_findings=1 resolved_findings=0 |
| 15 | 2026-09-20T02:01:12.117409552+00:00 | scheduler | audit_started | db-prod-01 (Zt4Kb8NwY1eR) | host=192.168.20.22 |
| 14 | 2026-09-20T02:00:43.318204577+00:00 | scheduler | audit_completed | web-prod-01 (Xk3F9aLm2QzB) | trigger=scheduled host=192.168.20.21 findings=1 open_ports=2 new_findings=1 resolved_findings=0 |
| 13 | 2026-09-20T02:00:41.029385714+00:00 | scheduler | audit_started | web-prod-01 (Xk3F9aLm2QzB) | host=192.168.20.21 |
| 12 | 2026-09-19T09:11:40.318842077+00:00 | cli:uid=1000 | config_changed | schedule.window_end_hour | value=5 |
| 11 | 2026-09-19T09:11:32.640571920+00:00 | cli:uid=1000 | config_changed | schedule.window_start_hour | value=1 |
| 10 | 2026-09-19T09:10:02.205197346+00:00 | cli:uid=1000 | config_changed | schedule.enabled | value=true |
| 9 | 2026-09-19T08:47:19.771263084+00:00 | control_api: | pair | dev-laptop-07 (Q9mW3sLp0xVc) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 8 | 2026-09-19T08:46:52.093718455+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 7 | 2026-09-19T08:33:18.402118906+00:00 | cli:uid=1000 | audit_completed | db-prod-01 (Zt4Kb8NwY1eR) | trigger=manual host=192.168.20.22 findings=1 open_ports=2 new_findings=1 resolved_findings=0 |
| 6 | 2026-09-19T08:33:15.588240391+00:00 | cli:uid=1000 | audit_started | db-prod-01 (Zt4Kb8NwY1eR) | manual audit; host=192.168.20.22 |
| 5 | 2026-09-19T08:31:07.336914608+00:00 | control_api: | pair | db-prod-01 (Zt4Kb8NwY1eR) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 4 | 2026-09-19T08:30:41.874526103+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 3 | 2026-09-19T08:12:26.152083967+00:00 | control_api: | pair | web-prod-01 (Xk3F9aLm2QzB) | endpoint redeemed an operator-issued pairing code and was added to the audit scope |
| 2 | 2026-09-19T08:11:58.960417225+00:00 | cli:uid=1000 | pairing_code_issued | single-use, valid 10 minutes | |
| 1 | 2026-09-19T08:00:03.415602838+00:00 | daemon | daemon_started | version 0.3.4 |
Alle gezeigten Rechnernamen, MAC-Adressen, IP-Adressen und Schlüssel sind frei erfunden. Der Berichtstext wird auf Japanisch oder Englisch erzeugt (außer in der japanischen Ansicht wird die englische Fassung gezeigt).