Vergleichende Analyse
Geräteübergreifende Schwachstellenmuster und Ursachenanalyse
Lernziel
Nach dieser Seite kannst du die 13 gefundenen Schwachstellen aller drei Geräte strukturiert vergleichen. Du erkennst wiederkehrende Muster — Probleme, die nicht zufällig, sondern systematisch entstehen — und verstehst die Ursachen hinter ihnen: von "Cargo Cult Security" bis zum regulatorischen Vakuum.
Überblick: 13 Schwachstellen, 3 Geräte
Die Analyse von LED-Brille, LED-Strip und Körperwaage ergab zusammen 13 dokumentierte Schwachstellen. Die folgende Tabelle gibt dir den vollständigen Überblick:
| ID | Gerät | Schwachstelle | CVSS | Schweregrad | Nachweis |
|---|---|---|---|---|---|
| VULN-2026-001 | LED-Brille | Hardcodierter AES-Schlüssel | 8.1 | HIGH | empirisch |
| VULN-2026-002 | LED-Brille | AES-ECB-Modus | 5.9 | MEDIUM | empirisch |
| VULN-2026-003 | LED-Brille | Fehlende Authentifizierung | 8.1 | HIGH | empirisch |
| VULN-2026-004 | LED-Brille | Schwaches Pairing (Just Works) | 6.5 | MEDIUM | empirisch |
| VULN-2026-005 | LED-Brille | Kein Replay-Schutz | 6.5 | MEDIUM | strukturell erschlossen |
| VULN-2026-006 | LED-Strip | GATT unverschlüsselt | 8.3 | HIGH | empirisch |
| VULN-2026-007 | LED-Strip | Globaler XOR-Schlüssel | 8.3 | HIGH | empirisch |
| VULN-2026-008 | LED-Strip | Keine Authentifizierung | 7.1 | HIGH | empirisch |
| VULN-2026-009 | LED-Strip | Kein Replay-Schutz | 6.5 | MEDIUM | empirisch |
| VULN-2026-010 | Körperwaage | Gesundheitsdaten-Broadcast | 6.5 | MEDIUM | empirisch |
| VULN-2026-011 | Körperwaage | Statische MAC / Tracking | 4.3 | MEDIUM | empirisch |
| VULN-2026-012 | Körperwaage | Kein Bonding | 6.5 | MEDIUM | empirisch |
| VULN-2026-013 | Körperwaage | BLE 5.0 Long-Range | 4.3 | MEDIUM | strukturell erschlossen |
Zusammenfassung nach Gerät:
| Gerät | Kritisch | HIGH | MEDIUM | Gesamt | Höchster CVSS |
|---|---|---|---|---|---|
| LED-Brille | 0 | 2 | 3 | 5 | 8.1 |
| LED-Strip | 0 | 3 | 1 | 4 | 8.3 |
| Körperwaage | 0 | 0 | 4 | 4 | 6.5 |
| Gesamt | 0 | 5 | 8 | 13 | 8.3 |
Empirisch vs. strukturell erschlossen
„Empirisch" bedeutet: die Schwachstelle wurde direkt getestet und ausgenutzt — ein PoC-Code demonstriert sie. „Strukturell erschlossen" bedeutet: die Schwachstelle folgt zwingend aus der Architektur (z. B. wenn BLE 5.0 unterstützt wird, existiert Long-Range-Eavesdropping strukturell), konnte aber im Rahmen dieser Analyse nicht empirisch verifiziert werden.
Muster 1: Fehlende Authentifizierung (3/3 Geräten)
Das auffälligste Ergebnis: Kein einziges der drei Geräte authentifiziert den Absender von Befehlen. Jeder in BLE-Reichweite kann Befehle senden oder Daten empfangen — ohne sich zu identifizieren.
BLE bietet dafür mehrere Mechanismen:
| Mechanismus | LED-Brille | LED-Strip | Körperwaage |
|---|---|---|---|
| LE Secure Connections | ✗ | ✗ | ✗ |
| Passkey / Numeric Comparison | ✗ | ✗ | ✗ |
| App-Layer-Authentifizierung | ✗ | ✗ | ✗ |
| Überhaupt ein Pairing | Just Works | Keines | Keines |
Das "Just Works"-Pairing der LED-Brille ist dabei fast schlimmer als kein Pairing: Es suggeriert Sicherheit (der Nutzer sieht eine Pairing-Anfrage), bietet aber keinen Schutz gegen passive Eavesdropper oder aktive Man-in-the-Middle-Angriffe, da der Temporary Key auf 0 gesetzt ist.
Stell dir vor, jeder könnte ohne Schlüssel in dein Haus — und der Türsteher fragt zwar nach dem Namen, schreibt ihn aber nie auf. Das ist "Just Works".
Just Works schützt nicht
„Just Works" (Security Mode 1 Level 2) setzt den Temporary Key für das Pairing auf 0. Das bedeutet: Ein passiver Eavesdropper, der den Pairing-Prozess mitschneidet, kann die gesamte nachfolgende Kommunikation entschlüsseln. Echter Schutz beginnt erst mit Passkey Entry oder LE Secure Connections (ECDH).
Muster 2: Verschlüsselungsversagen als Spektrum (3/3 Geräten)
Alle drei Geräte scheitern an der Verschlüsselung — aber auf unterschiedliche Arten. Das Ergebnis ist ein Spektrum vom "falschen Sicherheitsgefühl" bis zum vollständigen Verzicht:
LED-Brille: AES-128 vorhanden, aber...
└── Schlüssel hardcodiert (.data:0x113020)
└── ECB-Modus → semantische Sicherheit verletzt
LED-Strip: GATT-Traffic vollständig im Klartext
└── XOR nur auf Advertisements (Obfuskation, keine Krypto)
└── XOR-Schlüssel als ASCII im Code
Körperwaage: Keine Verschlüsselung
└── Keine Verschlüsselungsebene vorgesehen
└── Broadcast im Klartext
Das ist besonders lehrreich: Die LED-Brille hat den meisten Krypto-Code, aber die Implementierung ist so fehlerhaft, dass der Schutz illusorisch ist. Der LED-Strip täuscht mit XOR-"Verschlüsselung" zumindest in den Advertisement-Daten eine Verschlüsselung vor — bei näherer Betrachtung ist es nichts weiter als eine Caesar-Chiffre im 21. Jahrhundert. Die Waage ist wenigstens ehrlich: Es gibt keine Verschlüsselung, und das ist sofort erkennbar.
Muster 3: Hardcodierte Geheimnisse (2/3 Geräten)
Zwei der drei Geräte enthielten geheime Schlüssel, die direkt im ausgelieferten Code eingebettet waren:
LED-Brille:
AES-128-Schlüssel: 8 Byte (Hex) gefunden in .data:0x113020
Methode: Ghidra + statische Speicheranalyse
Bestätigung: PoC entschlüsselt Live-Traffic erfolgreich
LED-Strip:
XOR-Schlüssel: "YLZK51!)>H@vdbQD^D?" (19 ASCII-Zeichen)
Methode: JADX, String-Suche in Bytecode
Kontext: Als Konstante in Verschlüsselungsfunktion
Ein hardcodierter Schlüssel ist das Sicherheitsäquivalent eines Schlüssels unter der Fußmatte: Jeder, der einmal nachschaut, hat dauerhaften Zugang — und der Schlüssel kann nicht ohne ein App-Update geändert werden. Bei Millionen ausgelieferter Geräte ist ein Software-Update nie garantiert.
Muster 4: Proprietäre statt Standardprotokolle (3/3 Geräten)
Alle drei Geräte verwenden eigene, nicht dokumentierte GATT-Service-UUIDs und proprietäre Payload-Formate:
| Gerät | Service-UUID | Standard verfügbar? |
|---|---|---|
| LED-Brille | 0000ff01-... (Custom) | Nein |
| LED-Strip | 0000fff1-... (Custom) | Nein |
| Körperwaage | Kein GATT-Service | Ja: 0x181B (ungenutzt) |
Das ist kein technisches Versagen, aber ein symptomatisches Muster: Proprietäre Protokolle werden ohne Security Review implementiert. Standardprotokolle (wie das GATT Body Composition Profile 0x181B) haben zumindest eine öffentliche Spezifikation, die geprüft werden kann.
Standardprotokolle als Sicherheitsbasis
Bluetooth SIG definiert viele Standard-GATT-Profile für häufige Anwendungsfälle (Herzfrequenz, Körperzusammensetzung, Lautstärke, usw.). Diese Profile enthalten zumindest Hinweise zu Sicherheitsanforderungen. Proprietäre Profile haben keine solche Ausgangslage und werden oft ohne Sicherheitsüberlegungen entworfen.
Vergleich mit Industriestandards
Die Ergebnisse dieser Studie sind kein Einzelfall. Vergleiche mit größeren Studien zur IoT-Sicherheit zeigen eine bedrückende Übereinstimmung:
| Metrik | Diese Studie (n=3) | Branchendaten |
|---|---|---|
| Keine Authentifizierung | 3/3 (100%) | > 80% |
| Schwache oder keine Verschlüsselung | 3/3 (100%) | > 72% |
| DSGVO-Verstöße (Gesundheitsdaten) | 1/3 (33%) | > 55% |
Die Stichprobengröße von drei Geräten erlaubt keine statistischen Schlüsse über den Gesamtmarkt — aber die vollständige Übereinstimmung mit dem Branchentrend legt nahe, dass die gefundenen Muster systematisch sind, nicht zufällig.
Ursachenanalyse: Warum passiert das immer wieder?
Die Schwachstellen sind bekannt. Die Angriffe sind dokumentiert. Warum werden dieselben Fehler trotzdem gemacht?
Ursache 1: „Cargo Cult Security"
Der Begriff „Cargo Cult" kommt aus der Anthropologie: Isolierte Völker imitierten nach dem Zweiten Weltkrieg das äußere Erscheinungsbild von Militärstützpunkten (Landebahnen, Kontrolltürme aus Holz), ohne zu verstehen, was diese Dinge eigentlich bewirkten — in der Hoffnung, die Flugzeuge kämen zurück.
In der IoT-Sicherheit sieht das so aus: Entwickler importieren Krypto-Bibliotheken, instanziieren AES, rufen encrypt() auf — und glauben, das Gerät sei sicher. Dass AES im ECB-Modus mit einem hardcodierten Schlüssel keinen echten Schutz bietet, bleibt unerkannt. Der Code sieht aus wie Krypto. Er ist keine.
Ursache 2: Zeit- und Kostendruck
Typische IoT-Produktentwicklungszyklen dauern 6–12 Monate. In dieser Zeit konkurrieren Sicherheitsfeatures mit funktionalen Features, Stabilitätsproblemen und Markteinführungsterminen. Sicherheit ist nicht sichtbar — sie ist kein Feature, das auf der Verpackung steht. Im Zweifel wird sie zurückgestellt.
Ursache 3: Skill-Gap im IoT-Engineering
Ein Embedded-Systems-Ingenieur muss heute gleichzeitig Hardware-Design, RTOS-Programmierung, BLE-Stack-Konfiguration, App-Entwicklung und Sicherheitsanalyse beherrschen. Kryptographisches Wissen ist nicht standardmäßig Teil von Embedded-Ausbildungen. Das Ergebnis: Entwickler kopieren Code-Snippets aus Stack Overflow oder Hersteller-Beispielprojekten — oft ohne die Sicherheitsimplikationen zu verstehen.
Ursache 4: Fehlende Sicherheits-Frameworks
Web-Frameworks wie Django oder Rails haben Sicherheitsfeatures eingebaut: CSRF-Schutz, sichere Session-Cookies, SQL-Injection-Prävention. Ein Web-Entwickler, der Django richtig benutzt, macht viele Fehler gar nicht erst.
Im IoT-Ökosystem gibt es kein Äquivalent. BLE-Stacks wie NimBLE oder das Nordic SDK bieten Krypto-Primitiven an, aber keine sichere Standardkonfiguration. Der Entwickler muss bewusst entscheiden, Verschlüsselung zu aktivieren, ein sicheres Pairing zu konfigurieren, Replay-Schutz zu implementieren. Wer das nicht weiß, tut es nicht.
Ursache 5: Fehlendes regulatorisches Enforcement
Bis 2027 fehlte in der EU ein verbindliches Sicherheitsgesetz für IoT-Geräte. Der Cyber Resilience Act (CRA) tritt schrittweise in Kraft: Ab September 2026 gelten Meldepflichten für Sicherheitsvorfälle, ab Dezember 2027 müssen alle neuen Geräte die Sicherheitsanforderungen erfüllen.
Vor dem CRA gab es keinen finanziellen Anreiz für Hersteller, Sicherheit zu investieren. Niemand prüfte es, niemand sanktionierte es — außer der DSGVO bei Gesundheitsdaten.
Cyber Resilience Act (CRA)
Der CRA der EU wird erstmals verbindliche Sicherheitsanforderungen für Produkte mit digitalen Elementen einführen — einschließlich IoT-Geräten. Hersteller werden Schwachstellenmanagement, Sicherheitsupdates und sichere Standardkonfigurationen nachweisen müssen. Für die Sicherheitscommunity ist das ein wichtiger Fortschritt.
Was gute Sicherheit ausgesehen hätte
Zum Abschluss ein kurzer Blick darauf, was die Hersteller hätten tun können — ohne fundamentale Architekturänderungen:
| Problem | Einfache Abhilfe |
|---|---|
| Hardcodierter Schlüssel | Schlüssel bei der Herstellung pro Gerät generieren, in geschütztem Speicher ablegen |
| AES-ECB | AES-CCM verwenden (in BLE-Chips bereits eingebaut) |
| Just Works Pairing | Passkey Entry oder LE Secure Connections aktivieren |
| Kein Replay-Schutz | Sequenznummer oder Nonce in Payload aufnehmen |
| Unverschlüsselter Broadcast | AES-CCM auf Applikationsebene, oder GATT + LE Secure Connections |
| Statische MAC | BLE Privacy Feature aktivieren (Resolvable Private Addresses) |
Nichts davon ist exotisch. Alles davon ist in BLE-Chips wie dem nRF52840 bereits implementiert und dokumentiert. Es war eine Frage des Wissens und der Priorität — nicht der technischen Möglichkeiten.
Zusammenfassung
- Alle drei Geräte teilen vier systemische Muster: fehlende Authentifizierung, Verschlüsselungsversagen, hardcodierte Geheimnisse und proprietäre Protokolle ohne Security Review.
- Die Ergebnisse decken sich mit Branchenstudien: > 80% aller IoT-BLE-Geräte haben keine Authentifizierung, > 72% schwache oder keine Verschlüsselung.
- Die Ursachen sind nicht technischer Natur, sondern organisatorisch: Zeitdruck, Skill-Gap, fehlende Frameworks und fehlendes Enforcement.
- Der Cyber Resilience Act wird ab 2027 erstmals verbindliche Standards setzen — bis dahin bleibt Sicherheitsforschung wie diese der wichtigste Mechanismus, um Hersteller zur Verbesserung zu bewegen.
- Responsible Disclosure ist deshalb keine optionale Tugend, sondern ein notwendiger Teil des Prozesses: Nur wenn Hersteller von Schwachstellen erfahren, können sie handeln.
Wissenstest
Welches der vier systemischen Muster war bei allen drei analysierten Geräten zu finden?
Was bedeutet 'Cargo Cult Security' im Kontext von IoT-Entwicklung?