Low-Power-Funk nach IEEE 802.15.4: Angriffe und Abwehr

Schlaflos im IoT

Ein Denial-of-Sleep-Angriff hält ein IoT-Gerät temporär oder permanent davon ab, in einen energiesparenden Schlafmodus zu wechseln. Als Resultat verkürzt sich die Batterielebensdauer unter Umständen von mehreren Jahren auf wenige Tage.

Das Mediumzugriffsprotokoll ist ein lohnenswertes Ziel für Denial-of-Sleep-Angriffe auf ein batteriebetriebenes IoT-Gerät, da es die energiehungrigen Zustände Senden und Empfangen steuert. Tatsächlich sind in der Literatur viele Arten von Denial-of-Sleep-Angriffen auf Mediumzugriffsprotokolle beschrieben. [2 – 5].

Ein bekannter Denial-of-Sleep-Angriff ist, Funknachrichten wie ein normaler Sender zu versenden. Ein 15.4-Knoten empfängt nämlich Funknachrichten nach grundlegenden Validitätsprüfungen zunächst komplett, bevor er Authentizitäts- oder Replay-Checks durchführt. Das kostet bereits Energie. Zudem lässt der Standard offen, ob der Versand von Acknowledgments vor oder nach den Authentizitäts- und Replay-Checks erfolgt. Das kann weitere Energie verschwenden. (s. Abb. 4).

Angreifer können CSL dazu bringen, mehr Energie zu verbrauchen, indem sie legitime Sender imitieren (Abb. 4).

Ein besonders verheerender Denial-of-Sleep-Angriff auf TSCH ist folgender: Laut 15.4 verweilen TSCH-Knoten, die noch nicht oder nicht mehr zeitsynchronisiert sind, eine gewisse Zeit im Empfangsmodus um auf sogenannte Beacon-Funknachrichten zu lauschen. Synchronisierte TSCH-Knoten können Beacon-Funknachrichten versenden und damit nicht synchronisierten bei der Synchronisierung helfen. Verhindert aber ein Angreifer den Empfang dieser Beacons beispielsweise durch Interferenzen, wechseln unsynchronisierte TSCH-Knoten wiederum für eine gewisse Zeit in den energiehungrigen Empfangsmodus.

Angriff durch Verzögerung

TSCH ist darüber hinaus verwundbar gegenüber diversen Zeitsynchronisierungsangriffen. Unter anderem kann ein Angreifer sogenannte Pulse-Delay-Angriffe durchführen, bei denen er bestimmte Funknachrichten zuerst jammt und anschließend verzögert wieder abspielt. Das führt zu einer inkorrekten Zeitsynchronisierung und in der Folge oft zu Kommunikationsfehlern.

Pulse-Delay-Angriffe stellen auch für CSL eine Bedrohung dar, das zwar ohne netzwerkweite Zeitsynchronisierung auskommt, aber die Aufwachzeiten von Nachbarknoten lernt, um Wake-up-Sequenzen zu kürzen. Erlernt CSL wegen eines Pulse-Delay-Angriffs falsche Aufwachzeiten, kommt es ebenfalls zu Kommunikationsfehlern.

Da Kommunikationsfehler zu einem erhöhten Energieverbrauch durch erneute Übertragungen führen, zählen viele Zeitsynchronisierungsangriffe zusätzlich als Denial-of-Sleep-Angriffe oder deren Wegbereiter, indem sie beispielsweise TSCH-Knoten zwingen sich neu zu synchronisieren.

Obwohl 15.4 einen Replay-Schutz bietet, lassen sich bestimmte Replay-Angriffe dennoch durchführen, wenn ein anderes Mediumzugriffsprotokoll als TSCH zum Einsatz kommt. In dem Fall realisiert 15.4 den Replay-Schutz über Frame-Counter, die zwar verhindern, dass eine Funknachricht wiederholt akzeptiert wird, aber keine verzögerten, abgesicherten Funknachrichten erkennt (vgl. Abb. 5).

Der Frame-Counter-basierte Replay-Schutz stellt nur sicher, dass eine abgesicherte Funknachricht kein zweites Mal akzeptiert wird (Abb. 5).

Bei dem Szenario in Abbildung 5 sendet die Fernbedienung einer Garagentür eine Funknachricht zum Öffnen. Der Empfänger verpasst jedoch die Nachricht aufgrund von Interferenzen eines Angreifers. Der Frame-Counter-basierte Replay-Schutz verhindert nicht, dass der Angreifer die Funknachricht der Fernbedienung später erfolgreich erneut abspielen kann. Derselbe Angriff würde beim Verwenden von TSCH fehlschlagen, weil in späteren Zeitslots erneut abgespielte Nachrichten als unauthentisch erkannt würden.

Vortäuschen falscher Tatsachen

Acknowledgment-Spoofing-Angriffe sind subtil. Dabei gelingt es beispielsweise einem Angreifer, einem Knoten Alice vorzugaukeln, ein Nachbarknoten Bob habe eine Nachricht erfolgreich empfangen. Dazu erlangt der Angreifer in einem ersten Schritt ein Acknowledgment, das Bob an Alice geschickt hat, diese aber nicht empfangen hat. Wenn Authentizitäts- und Replay-Checks erst nach dem Versand von Acknowledgments erfolgen, müssen Angreifer dafür lediglich eine Funknachricht im Namen von Alice an Bob senden (s. Abb. 6).

Auf Acknowledgments kann man sich nicht verlassen (Abb. 6).

Wenn nun Alice ein Acknowledgment von Bob erwartet, spielt der Angreifer das vorher erhaltene Acknowledgment wieder ab. Das funktioniert, weil 15.4 die Korrespondenz von Acknowledgments ungenügend prüft. Es stellt nur sicher, dass ein Acknowledgment authentisch, frisch und richtig adressiert ist. Optional erfolgt eine zusätzliche Prüfung, ob die geechote Sequenznummer korrekt ist, was aber nur eine kleine zusätzliche Schwierigkeit für einen Angreifer darstellt.

Eine Nebenwirkung von Acknowledgment-Spoofing-Angriffen ist, dass höhere Protokollschichten fälschlicherweise annehmen, dass die Übertragung einer Funknachricht erfolgreich war. Eine weitere Nebenwirkung im Kontext von CSL und TSCH ist das Lernen falscher Zeiten. Das führt zu denselben Effekten wie bei Pulse-Delay-Angriffen: Kommunikationsfehler und ein höherer Energieverbrauch durch Neuübertragungen. Deshalb zählen Acknowledgment-Spoofing-Angriffe sowohl als spezielle Denial-of-Sleep-Angriffe als auch als Zeitsynchronisierungsangriffe.