IoT-Sicherheit, Teil 4 – Der Kampf mit den Hackern um Bluetooth verschärft sich

Bluetooth ist eines der gängigsten drahtlosen Protokolle, das heutzutage Verwendung findet. Der Standard wurde ursprünglich konzipiert, um die Funktionalität von Smartphones zu erweitern. Mittlerweile ist er jedoch zu einem fundamentalen Bestandteil der Entwicklung des Internet der Dinge (Internet of Things, IoT) geworden. Die Einführung von Bluetooth 5 bringt neue Funktionen mit sich, welche die Verwendung des drahtlosen Protokolls in größeren Netzwerken unterstützen sollen. Eine dieser Änderungen ist die Erhöhung der maximalen Reichweite auf 200 Meter, die den Einsatz von Bluetooth in gebäudeweiten Netzwerken ermöglicht. Durch Mesh-Netzwerkfunktionen und Unterstützung für 6LoWPAN-Konnektivität entwickelt sich Bluetooth nun von einem Personal-Area-Netzwerk zu einem Kurzstrecken-Mehrzwecknetzwerk, das zu anderen Lösungen für IoT-Konnektivität wie Thread und ZigBee in Konkurrenz tritt.

Bluetooth verbindet so unterschiedliche Geräte wie Audio-Headsets, Thermostate, Sicherheitssensoren und Herzfrequenzmonitore. Aber mit der zunehmenden Verwendung von Bluetooth-Geräten, welche die Gesundheit und andere sensible Aspekte unseres persönlichen Lebens verfolgen, ist die Sicherheit der Verbindung selbst jetzt ein kritisches Thema.

Angriffe auf Bluetooth

Leider hat sich Bluetooth durch eine Kombination von Faktoren als anfällig für Angriffe erwiesen. Der von Armis Labs im September 2017 entdeckte Angriffsvektor BlueBorne ist nur ein Beispiel dafür, wie sich die Art der Angriffe verändert haben und wie schwierig es ist, sich davor zu schützen. Das Bluetooth-Protokoll selbst litt von Anfang an unter Schwächen, die Angreifern ermöglichten, die Kontrolle über ein Gerät aus der Ferne zu übernehmen oder es zur Ausführung bösartigen Codes zu zwingen. Die gravierendsten Sicherheitsmängel des Protokolls wurden mit der Veröffentlichung der Version 2.1 im Jahr 2007 behoben. Seitdem traten nur kleinere Probleme im Kernprotokoll auf, und es war nicht mehr möglich, auf einem angegriffenen Gerät bösartigen Code auszuführen.

Obwohl das Protokoll jetzt sicherer ist als zu Beginn, haben bestimmte Bluetooth-Anwendungsfälle und gebräuchliche Verwendungsmuster mehrere Schwachstellen aufgedeckt. Einige Sicherheitsforscher argumentieren, dass eine Reihe von Problemen bei Bluetooth-Implementierungen auf die hohe Komplexität und die Anpassung verschiedener Anwendungsprofile zurückzuführen sind. Heute umfasst die Spezifikation für Bluetooth mehr als 2800 Seiten.

Eine derartige Komplexität steigert die Wahrscheinlichkeit für eine große Anzahl potenzieller Schwachstellen. Zum Beispiel gibt es mehrere Fragmentierungsschichten innerhalb des gesamten Bluetooth-Stacks, die dazu verwendet werden, lange Nachrichten in kleine Frames der Bitübertragungsschicht aufzuteilen. Jede Fragmentierungsschicht bietet die Möglichkeit, Schwachstellen zu finden, die durch gängige Techniken wie Pufferüberläufe ausgenutzt werden können. In der Regel sendet ein solcher Angriff einen bewusst überdimensionierten Protokoll-Frame, der dazu führt, dass Daten aus dem Ende des Puffers, der eine feste Größe hat und die Daten für eine Aufgabe halten sollte, „auslaufen“. Durch sorgfältige Manipulation dieser Daten kann ein Hacker die Kontrolle über den Stack und von dort aus über das Gerät selbst übernehmen.

Ein weiterer Faktor der Sicherheitsprobleme, mit denen Bluetooth kämpft, sind Funktionen, die zum großen Teil implementiert wurden, um die Benutzerfreundlichkeit zu verbessern und die Inbetriebnahme zu beschleunigen. Mit typischen Standardeinstellungen senden Bluetooth-Geräte Informationen über sich selbst, die Angreifer dazu nutzen, die Kontrolle über sie zu übernehmen. Geräte, die Verbindungsprotokolle früherer Versionen des Standards verwenden, führen nur sehr wenig Authentifizierung durch. Viele Bluetooth-Geräte mit rudimentären Benutzeroberflächen nutzen „Just Works“-Kopplung. Dazu gehören viele IoT-Geräte, da sie lediglich Sensorknoten ohne erkennbare Benutzeroberfläche sind. „Just Works“-Kopplung beinhaltet die Verwendung kurzer Passwortschlüssel – oft nur vier Ziffern – oder gar keines Passwortschlüssels. Dadurch ist es praktisch unmöglich, den Endpunkt korrekt zu authentifizieren.

Ein solcher durch eine schlechte Authentifizierung möglicher Angriff ist „Bluebugging“. Dies umfasst das Spoofing eines Geräts, an das ein Benutzer sein Gerät anschließen möchte. Sobald die Verbindung hergestellt ist, kann ein Hacker sein Gerät verwenden, um auf die Daten des Ziels zuzugreifen oder zu versuchen, einen Wurm oder Virus hochzuladen. Der Nachteil für den Hacker ist, dass ein solcher Angriff davon abhängt, einen Benutzer zur Herstellung der Verbindung zu bringen, was die Erfolgswahrscheinlichkeit verringert. Hingegen benötigt der Hacker bei einem Angriff auf Basis von BlueBorne oder bisher nicht entdeckten Schwachstellen keine aktive Beteiligung des Nutzers.

Der Man-in-the-Middle (MITM)-Angriff ist eine Methode, mit der Angreifer die Erkennung ihres Eindringens verbergen und die in IoT-Anwendungen leicht umzusetzen ist. Bei MITM nutzt der Angreifer sein Gerät als Vermittler zwischen zwei autorisierten Endpunkten, wie z. B. einem IoT-Sensorknoten und einem Gateway, etwa einem Smartphone oder Heim-Router. Der Angreifer lässt sein Gerät typischerweise als Gateway auftreten und Nachrichten an das vorgesehene Ziel weiterleiten. Sobald das angreifende Gerät dazwischengeschaltet ist, können neue Nachrichten injiziert oder bösartige Nachrichten weitergeleitet werden. Beide Endpunkte glauben dabei, dass sie direkt miteinander verbunden sind.

Man-in-the-middle-Angriff

Abbildung 2: Man-in-the-middle-Angriff – Copyright Premier Farnell Ltd

Wenn der Angriff früh genug in der Kette erfolgt, kann der Angreifer sogar Nachrichten abhören, von denen die autorisierten Parteien glauben, dass sie erfolgreich verschlüsselt sind. Der von einem der Endpunkte bereitgestellte, freigegebene öffentliche Schlüssel kann abgefangen und durch einen Schlüssel ersetzt werden, den der Angreifer während des Kopplungsprozesses verwendet. In vielen Fällen wird heute nur eingeschränkte Verschlüsselung verwendet. Bei Bluetooth-Versionen vor 2.1 müssen Übertragungen zwischen gekoppelten Geräten nicht auf der Sicherungsschicht verschlüsselt werden. Dies hat sich nun geändert und sorgt für einen gewissen Grad an Datenschutz.

Doch selbst mit zunehmender Straffung der Protokollspezifikation zur Behebung von Fehlern und Verbesserung der allgemeinen Sicherheit bieten Bluetooth-Implementierungen Lücken, die von Hackern leicht ausgenutzt werden können. BlueBorne etwa ist ein Beispiel, gegen das man sich nur sehr schwer schützen kann.

BlueBorne: ein ernsthafter Bluetooth-Angriffsvektor

BlueBorne ist der von Armis geprägte Sammelbegriff für acht verschiedene Schwachstellen in den Bluetooth-Stacks vieler mobiler Geräte. Durch das Ausnutzen einer BlueBorne-Schwachstelle ist ein Angreifer nicht nur in der Lage, in ein einzelnes Gerät einzudringen und es mit bösartigem Code zu kontrollieren; der Code kann sich darüber hinaus auch per Bluetoothverbindung von Gerät zu Gerät verbreiten. Damit wird es möglich, Netzwerke anzugreifen, die ansonsten über einen Air Gap geschützt sind – also solche, die keine Verbindung zueinander oder zum allgemeinen Internet haben –, wenn sie über Geräte mit aktiven Bluetooth-Schnittstellen verfügen.

Forscher von Armis halten BlueBorne unter anderem deshalb für gefährlich, weil viele Geräte Schwachstellen in den Bluetooth-Stacks aufweisen. Auch die Art und Weise, wie diese Stacks sowie viele integrierte und IoT-Geräte aufgebaut sind, birgt Risiken.Im letzteren Fall ist ein Hauptproblem, dass der Bluetooth-Stack in vielen Plattformen hohe Berechtigungen besitzt. Das bedeutet, dass ein Angriff, mit dem die Kontrolle über die Bluetooth-Firmware und die Prozesse in einem Gerät übernommen werden, leichter die Kontrolle über die Kernfunktionen des Geräts übernehmen kann.

Der BlueBorne-Angriff umfasst eine Reihe von Schritten. Die erste besteht darin, aktive Bluetooth-Geräte in der Umgebung zu identifizieren. Diese können auch dann gefunden werden, wenn die Erkennung für den Bluetooth-Endpunkt deaktiviert ist. Dies ist möglich, weil aktive Bluetooth-Geräte nach Paketen Ausschau halten, die an sie gesendet werden. Um ein Paket an einen Endpunkt zu senden, ist die Kenntnis seiner einzigartigen Bluetooth-Geräteadresse (BDADDR) erforderlich. Ein nicht auffindbares Gerät gibt seine BDADDR zwar nicht preis, in vielen Fällen kann die BDADDR eines Ziels jedoch einfach durch Überwachung der Kommunikation zwischen den angeschlossenen Geräten ermittelt werden.

Eine gebräuchliche Vorgehensweise vieler Hersteller, wenn Bluetooth aktiv, aber im Ruhemodus ist, ermöglicht die Bestimmung der BDADDR über den WLAN-Verkehr. WLAN-MAC-Adressen (Media Access Control) werden nicht verschlüsselt, und auf einem bestimmten Gerät wird die BDADDR auf den gleichen oder um eins versetzten Wert eingestellt.

Geringe Unterschiede in der Implementierung erlauben durch weiteres Probieren, das zugrunde liegende Betriebssystem zu bestimmen. Das Gerät gibt Betriebssystem und Plattform möglicherweise nicht direkt preis, der Angreifer kann sie dennoch durch den Vergleich bekannter Reaktionen auf Sonden ermitteln. Anhand dieser Informationen kann der Angreifer sein Wissen über Schwachstellen in bestimmten Teilen des Stacks nutzen, um zu versuchen, in das System einzudringen.

Lösungsansätze für Bluetooth-Sicherheitsprobleme

Der beste Schutz vor Angriffen besteht darin, Bluetooth ganz zu deaktivieren. Angesichts der Natur des IoT ist dies jedoch praktisch nicht sinnvoll, wenn Bluetooth als drahtlose Hauptverbindung zu Sensorknoten und anderen Geräten verwendet wird. Im Prinzip ist es schwieriger, das Gerät zu finden und anzugreifen, wenn es von anderen Geräten ohne formelle Verbindung nicht entdeckt werden kann. Der BlueBorne-Angriffsvektor zeigt jedoch, dass dieses Schutzniveau gegen einen entschlossenen Angreifer keine Verteidigung bietet.

Ein mehrschichtiger Ansatz bietet einen gewissen Schutz vor den meisten Angriffen. Ein zielgerichteter Hack stellt für praktisch alle Geräte mit aktiven Bluetooth-Schnittstellen ein Problem dar. Beim Aufbau einer Verteidigung ist es wichtig, zwischen Problemen zu unterscheiden, die sich aus den Entscheidungen der Protokoll-Architekten ergeben, und solchen, die sich aus Programmierfehlern oder unklugen Annahmen ergeben. Angriffe wie BlueBorne konzentrieren sich beispielsweise darauf, dass bestimmte Softwarefunktionen bewusst umgestaltete Pakete und die, in ihnen vermuteten Datenstrukturen nicht bewältigen können.

Durch die erwiesene weite Verbreitung von Pufferüberlauf- und Dateninjektionsangriffen auf viele von Embedded- und IoT-Geräten verwendete Kommunikationsprotokolle, kann die Industrie nun davon ausgehen, dass sich die Programmierpraktiken künftig verbessern. Dennoch werden derartige Probleme mit der zunehmenden Verbreitung des Internets der Dinge und seiner Nutzung von Bluetooth auch weiterhin auftauchen. Hersteller und Integratoren von IoT-Geräten müssen nicht nur die Folgen von Schwachstellen, sondern auch die Patch-Fähigkeit ihrer Produkte nach der Veröffentlichung von Fixes berücksichtigen. Das bedeutet, dass Mechanismen bereitgestellt werden müssen, mit denen Software-Updates auf das Gerät übertragen und korrekt installiert werden können. Wenn Bluetooth das einzige verwendete Kommunikationsprotokoll ist, müssen die Hersteller den Fall einplanen, dass ein infiziertes Gerät Update-Versuche ablehnt. Daher muss die interne Firmware so ausgelegt sein, dass sie sicher in einen werkseitigen Zustand oder einen anderen bekannten abgesicherten Modus versetzt und von dort aus aktualisiert werden kann.

Es gibt neue Ergänzungen zum Bluetooth-Protokoll, mit denen Hersteller und Integratoren die Sicherheit insgesamt verbessern können. Mit der Version 4.2 wurde beispielsweise ein Kopplungsprozess eingeführt, der auf numerischen Vergleichen basiert. Dieser Mechanismus ist jedoch darauf angewiesen, dass das Gerät über irgendeine Art von Anzeige verfügt. Beim numerischen Vergleich erscheint auf beiden Geräten ein sechsstelliger Schlüssel, der von dem Gerät generiert wird, das versucht, eine Verbindung zu einem anderen herzustellen. Der Benutzer muss bestätigen, dass es sich um die gleiche Nummer handelt, damit die Verbindung korrekt aufgebaut werden kann. Ein Problem bei der Verwendung dieses Ansatzes ist allerdings, dass er nicht vor Angriffen schützt, die einen Benutzer fälschlicherweise glauben lassen, mit einem ordnungsgemäßen Gerät verbunden zu sein.

Ein Kopplungsansatz, der ein viel höheres Maß an Sicherheit bieten kann, ist die Verwendung eines separaten Kommunikationskanals. Obwohl der Kanal bei einer einmaligen Inbetriebnahme nur für die Kopplung und nicht für normale Datenübertragungen verwendet wird, erhöhen sich die Kosten und Komplexität durch Hinzufügen eines zusätzlichen HF-Transceivers nicht zwangsweise wesentlich. Das NFC-Protokoll (Near-Field Communication) bietet einen kostengünstigen Kanal und hat den Vorteil, dass der Angreifer nahe am Zielgerät sein muss, um die Kommunikation abzufangen. Um zwei Geräte zu verbinden, berührt der Anwender mit einem NFC-fähigen IoT-Gerät einfach das andere Gerät, und das Protokoll übernimmt den Handshake.

Ein großer Vorteil von NFC ist, dass es nicht nur eine Möglichkeit bietet, die sichereren Kopplungsmethoden der neueren Bluetooth-Version zu nutzen, sondern auch Sicherheitsüberprüfungen durchzuführen. Das NFC-fähige Gerät, das die Inbetriebnahme einleitet, kann werksseitig installierte Sicherheitszertifikate auf Authentizität prüfen und nach erfolgreicher Überprüfung öffentliche Schlüssel liefern, die eine End-to-End-Verschlüsselung während der Inbetriebnahme und Nutzung ermöglichen. Dadurch können Lauschangriffe auf den Bluetooth-Kanal viel schwieriger getätigt werden, solange die Software auf dem IoT-Gerät, die den verschlüsselten Stream verarbeitet, oder der zugrunde liegende Bluetooth-Stack keine ausnutzbaren Schwachstellen enthält.

Ein noch preiswerterer, wenn auch weniger bequemer und effektiverer Ansatz im Vergleich zu einem Side-Channel wie NFC ist die Verwendung eines einfachen Abziehetiketts, das am IoT-Gerät angebracht ist. Solange der Code eindeutig ist und nicht auf andere Geräte desselben Typs repliziert wird, können ältere Kopplungsmethoden auf einigermaßen sichere Weise verwendet werden. Ähnliche Ansätze können bei der Inbetriebnahme nicht nur von Bluetooth-Verbindungen, sondern auch von IoT-fokussierten Alternativen wie Zigbee und Z-Wave helfen.

Zusammenfassung

Seit seiner Einführung vor zwei Jahrzehnten hat Bluetooth Fortschritte als drahtloses Protokoll mit kurzer Reichweite und geringer Leistungsaufnahme gemacht. Damit hat es ein Fundament für eine wachsende Zahl von IoT-Geräten geschaffen. Jedoch ist es, wie jedes weit verbreitete Protokoll, ein lohnendes Ziel für Hacker. Das Problem für Hersteller und Integratoren besteht darin, dass Bluetooth aufgrund seiner Komplexität und Implementierungsprobleme anfällig für Angriffe ist. Obwohl Maßnahmen zur Risikoreduzierung möglich sind, etwa die Nutzung von Sekundärkanälen zur Inbetriebnahme von Geräten, kann Bluetooth noch nicht als sicher angesehen werden. Bei Anwendungen, in denen ein hohes Maß an Datensicherheit erforderlich ist, sollten die Entwicklungsteams andere Optionen in Betracht ziehen.

IoT-Sicherheit, Teil 4 – Der Kampf mit den Hackern um Bluetooth verschärft sich. Datum der Veröffentlichung: 15. Dezember 2017 von Farnell