
Historisch gesehen benutzen die meisten Mitarbeiter kabellose Tastaturen und Mäuse von Logitech. Während wir erneut unsere Passwörter eingaben, fragten wir – das Team von Raccoon Security – uns, wie schwierig es ist, die Sicherheitsmechanismen kabelloser Tastaturen zu umgehen. Unsere Untersuchung hat architektonische Mängel und Softwarefehler aufgedeckt, die den Zugriff auf die eingegebenen Daten ermöglichen. Im Folgenden erfahren Sie, was wir herausgefunden haben.
Warum Logitech?
Meiner Meinung nach sind die Eingabegeräte von Logitech eines der qualitativ hochwertigsten und bequemsten. Die meisten unserer Geräte basieren auf der Logitech-Lösung. ist ein universeller Dongle-Empfänger, der die Verbindung von bis zu 6 Geräten ermöglicht. Alle mit der Logitech Unifying-Technologie kompatiblen Geräte sind mit dem entsprechenden Logo gekennzeichnet. Die einfache Verwendung erlaubt es, die Verbindung von kabellosen Tastaturen mit dem Computer zu steuern. Der Prozess des Anschlusses einer Tastatur an den Logitech-Dongle-Empfänger, sowie die Technologie selbst, wird beispielsweise in .

Dongle-Empfänger mit Unterstützung für Logitech Unifying
Tastaturen können für Angreifer zu einer Informationsquelle werden. Logitech hat, angesichts der möglichen Bedrohung, die Sicherheitsbedenken ernst genommen und AES128-Verschlüsselungsalgorithmen im Funkkanal seiner kabellosen Tastatur eingesetzt. Der erste Gedanke, der einem Angreifer bei solch einer Situation kommen könnte, wäre, die Schlüssel-Information bei ihrer Übertragung über den Funkkanal während des Bindungsprozesses abzufangen. Denn mit dem richtigen Schlüssel kann man die Funksignale der Tastatur abfangen und entschlüsseln. Allerdings muss der Benutzer nur sehr selten (oder sogar nie) die Tastatur über das Unifying-Verfahren binden, sodass ein Hacker mit einem scannenden Empfangsgerät lange warten muss. Außerdem gestaltet sich der Abfangprozess selbst nicht so einfach. In einer aktuellen Untersuchung im Juni 2019 veröffentlichte der Sicherheitsexperte Markus Mengs online einen Bericht über eine Schwachstelle in alten Firmware-Versionen der USB-Dongles von Logitech. Diese ermöglicht es Angreifern mit physischem Zugriff auf die Geräte, die Verschlüsselungsschlüssel des Funkkanals zu erhalten und Tasteneingaben zu injizieren (CVE-2019-13054).
Wir berichten über unsere Sicherheitsforschung des Logitech-Dongles auf Basis des SoC NRF24 von Nordic Semiconductor. Beginnen wir vielleicht mit dem Radiokanal.
Wie Daten im Radiokanal übertragen werden
Für die zeit-frequenzbasierte Analyse des Radiosignals haben wir einen SDR-Empfänger auf Basis des Blade-RF-Gerätes im Modus Spektrumanalysator verwendet (darüber kann man auch lesen ).

Das SDR-Gerät Blade-RF
Wir haben auch die Möglichkeit untersucht, die Quadratur des Radiosignals bei der Zwischenfrequenz aufzunehmen, um sie anschließend mit Methoden der digitalen Signalverarbeitung zu analysieren.
Die Staatskommission für Frequenzen in der Russischen Föderation für die Verwendung von Geräten mit geringer Reichweite im Frequenzbereich von 2400–2483,5 MHz. Dies ist ein sehr "belebter" Bereich, in dem man alles Mögliche trifft: Wi-Fi, Bluetooth, verschiedene Fernbedienungen, Alarmsysteme, kabellose Sensoren, Mäuse mit Tastaturen und andere kabellose digitale Geräte.

Spektrum des Frequenzbereichs 2,4 GHz
Die Störsituation im Frequenzbereich ist ziemlich komplex. Dennoch konnte Logitech eine zuverlässige und stabile Übertragung durch den Einsatz des Enhanced ShockBurst-Protokolls im NRF24-Transceiver in Kombination mit Frequenzanpassungsalgorithmen gewährleisten.
Die Kanäle im Frequenzbereich sind an ganzzahligen MHz-Positionen verteilt, wie in NRF24 Nordic Semiconductor – insgesamt 84 Kanäle im Frequenzraster. Die Anzahl der gleichzeitig verwendeten Logitech Frequenzkanäle ist natürlich geringer. Wir haben die Nutzung von mindestens vier Kanalpositionen festgestellt. Aufgrund des eingeschränkten Sichtfelds des verwendeten Spektrumanalysators war es nicht möglich, die genaue Liste der verwendeten Frequenzpositionen zu bestimmen, aber das war auch nicht nötig. Die Informationen von der Tastatur zum Dongle-Empfänger werden im Burst-Modus (kurze Aktivierungszeiten des Transmitters) unter Verwendung von zweipositioneller Frequenzmodulation GFSK mit einer symbolischen Geschwindigkeit von 1 MBaud übermittelt:

Das Funk-Signal der Tastatur in zeitlicher Darstellung
Der Empfänger verwendet ein korrelatives Empfangsprinzip, weshalb im übertragenen Paket eine Präambel und eine Adressinformation enthalten sind. Störsicheres Kodieren wird nicht angewendet, der Datenkörper wird mit dem AES128-Algorithmus verschlüsselt.
Im Allgemeinen kann die Funkschnittstelle der Logitech-Tastatur als vollständig asynchron mit statistischer Kompression und Frequenzanpassung charakterisiert werden. Das bedeutet, dass der Sender der Tastatur den Kanal für die Übertragung jedes neuen Pakets wechselt. Dem Empfänger sind weder die Übertragungszeit noch der Frequenzkanal im Voraus bekannt, sondern nur deren Liste. Sender und Empfänger finden im Kanal mithilfe abgesprochener Algorithmus zur Frequenzumgehung und Überwachung sowie durch die Mechanismen der Bestätigungen von Enhanced ShockBurst zusammen. Wir haben nicht untersucht, ob die Liste der Kanäle statisch ist. Es ist wahrscheinlich, dass Änderungen durch den Frequenzanpassungsalgorithmus verursacht werden. Etwas Ähnliches wie die Methode der Pseudozufälligen Frequenzumstellung (PPRCH) wird bei der Nutzung des Frequenzressourcennspektrums vermutet.
In einem solchen Umfeld der frequenz-zeitlichen Unsicherheit benötigt ein Angreifer für den garantierten Empfang aller Tastatur-Signale eine permanente Kontrolle über das gesamte Frequenzraster des 84-Punkte-Bereichs, was erhebliche zeitliche Aufwendungen erfordert. Hier wird klar, warum die Schwachstelle zur Schlüsselextraktion über USB (CVE-2019-13054) als die Möglichkeit der Injektion von Tastendrücken positioniert wird, anstatt dem Angreifer Zugang zu den über die Tastatur eingegebenen Daten zu gewähren. Offensichtlich ist das Funkinterface der drahtlosen Tastatur komplex genug und bietet eine zuverlässige Funkverbindung zwischen Logitech-Geräten unter schwierigen störenden Bedingungen im 2,4 GHz-Bereich.
Ein Blick auf das Problem von innen
Für die Untersuchung haben wir eine unserer vorhandenen Logitech K330-Tastaturen und den Logitech Unifying-Dongle ausgewählt.

Logitech K330
Lassen Sie uns ins Innere der Tastatur schauen. Ein interessantes Element auf der Platine für die Untersuchung ist der SoC-Chip NRF24 von Nordic Semiconductor.

SoC NRF24 auf der Platine der drahtlosen Logitech K330-Tastatur
Die Firmware ist im internen Speicher abgelegt, die Lese- und Debugging-Mechanismen sind deaktiviert. Leider wurde die Firmware nicht in öffentlichen Quellen veröffentlicht. Daher haben wir beschlossen, das Problem von einer anderen Seite zu betrachten – den internen Inhalt des Logitech-Dongles zu untersuchen.
Die ‚innere Welt‘ des Dongles ist recht interessant gestaltet. Der Dongle lässt sich leicht zerlegen, trägt den uns bekannten NRF24 im Release mit integriertem USB-Controller und kann sowohl über USB als auch direkt programmierbar neu programmiert werden.

Der Logitech-Dongle ohne Gehäuse
Da es einen Standardmechanismus zur Aktualisierung der Firmware gibt, der die Verwendung von (aus dem die aktualisierte Firmware-Version extrahiert werden kann), ist es nicht notwendig, nach der Firmware im Dongle zu suchen.
Was durchgeführt wurde: Die Firmware RQR_012_005_00028.bin wurde aus dem Körper der Anwendung Firmware Update Tool extrahiert. Um ihre Integrität zu überprüfen, wurde der Controller des Dongles über ein Flachbandkabel :

Das Flachbandkabel, das den Logitech-Dongle mit dem Programmierer ChipProg 48 verbindet.
Um die Integrität der Firmware zu überprüfen, wurde sie erfolgreich im Speicher des Controllers platziert und funktionierte korrekt, während die Tastatur und die Maus über den Logitech Unifying-Dongle verbunden waren. Eine Übertragung der modifizierten Firmware ist durch das standardmäßige Aktualisierungsmechanismus möglich, da keine kryptografischen Schutzmechanismen für die Firmware vorgesehen sind. Für Forschungszwecke verwendeten wir eine physische Verbindung zum Programmierer, da so die Fehlersuche viel schneller verläuft.
Untersuchung der Firmware und Angriff auf die Benutzereingabe
Der NRF24-Chip basiert auf dem Intel 8051-Rechenkern und folgt der traditionellen Harvard-Architektur. Für den Kern fungiert der Transceiver als Peripheriegerät und ist im Adressraum als eine Reihe von Registern angeordnet. Die Dokumentation zum Chip und Beispielcodes sind online verfügbar, daher ist das Disassemblieren der Firmware unkompliziert. Im Zuge des Reverse Engineerings haben wir die Funktionen zur Erfassung von Tasteneingaben aus dem Funkkanal lokalisiert und sie in ein HID-Format für die Übertragung an den Host über den USB-Anschluss umgewandelt. In den freien Speicheradressen wurde der Injektionscode platziert, der Steuerungshandhabungswerkzeuge, das Speichern und Wiederherstellen des ursprünglichen Ausführungskontexts sowie den funktionalen Code umfasst.
Das empfangene Paket von der Funkkanal-Dongle wird dekodiert, in einen Standard-HID-Bericht umgewandelt und über die USB-Schnittstelle wie von einer normalen Tastatur gesendet. Im Rahmen der Untersuchung interessiert uns insbesondere der Teil des HID-Berichts, der ein Byte von Modifikator-Flags und ein Array von 6 Bytes mit Tastencodes enthält (zur Referenz Informationen über HID. ).
Struktur des HID-Berichts:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;Unmittelbar vor der Übertragung der HID-Struktur an den Host erhält der injizierte Code die Kontrolle, kopiert 8 Bytes nativer HID-Daten in den Speicher und sendet sie unverschlüsselt über den Sekundärkanal. Im Code sieht das so aus:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<Der Sekundärkanal wird auf einer von uns festgelegten Frequenz mit bestimmten Eigenschaften der Manipulationsgeschwindigkeit und der Paketstruktur organisiert.
Betrieb des Transceivers im Chip basiert auf einem Statusdiagramm, in das das Enhanced ShockBurst-Protokoll organisch integriert ist. Wir haben festgestellt, dass der Transceiver direkt vor der Übertragung der HID-Daten an die USB-Schnittstelle des Hosts im IDLE-Zustand war. Dies ermöglicht eine sichere Neukonfiguration für den Betrieb im Nebenkanal. Der injizierte Code übernimmt die Kontrolle, speichert die ursprüngliche Konfiguration des Transceivers vollständig und versetzt ihn in den neuen Übertragungsmodus für den Nebenkanal. Im Enhanced ShockBurst-Bestätigungsmechanismus ist dieser Modus deaktiviert, wodurch die HID-Daten im Klartext über Funk übertragen werden. Die Struktur des Pakets im Nebenkanal ist im folgenden Bild dargestellt, die Signalverläufe wurden nach der Demodulation und vor der Wiederherstellung der Taktung der Daten synchronisiert. Der Adresswert wurde zur visuellen Identifizierung des Pakets gewählt.

Demoduliertes Signal des Burst-Pakets im Nebenkanal
Nach Abschluss der Paketübertragung im Nebenkanal stellt der injizierte Code den Zustand des Transceivers wieder her. Er ist nun wieder bereit für den Betrieb im Normalmodus im Kontext der ursprünglichen Firmware.
Im Frequenz- und Zeitfrequenzbereich sieht der Seitenkanal wie im Bild dargestellt aus:

Spektrale und zeitfrequente Darstellung des Seitenkanals
Um die Funktionalität des NRF24-Chips mit modifizierter Firmware zu überprüfen, haben wir einen Stand aufgebaut, der den Logitech-Dongle mit modifizierter Firmware, eine drahtlose Tastatur und einen Empfänger, der auf einem chinesischen Modul mit dem NRF24-Chip basiert, umfasst.

Diagramm zum Abfangen des Funksignals der Logitech-Drahtlos-Tastatur

Modul basierend auf NRF24
Bei normalem Betrieb der Tastatur auf dem Stand beobachteten wir nach dem Anschließen an den Logitech-Dongle die Übertragung offener Daten über Tasteneingaben im Seitenfunkspektrum sowie die normale Übertragung verschlüsselter Daten im Hauptfunkinterface. Dadurch gelang es uns, die Tastatureingaben des Benutzers direkt abzufangen:

Ergebnis des Abfangens von Tastatureingaben
Der injizierte Code verursacht minimale Verzögerungen im Betrieb der Dongle-Firmware. Diese sind jedoch zu gering, um sie vom Benutzer bemerkt zu werden.
Wie Sie sehen, kann für einen solchen Angriff jede Logitech-Tastatur verwendet werden, die mit der Unifying-Technologie kompatibel ist. Da der Angriff auf den Unifying-Empfänger abzielt, der bei den meisten Logitech-Tastaturen mitgeliefert wird, ist er nicht von einem bestimmten Tastaturmodell abhängig.
Fazit
Die Ergebnisse der Untersuchung lassen darauf schließen, dass ein Angreifer das betrachtete Szenario nutzen könnte: Wenn ein Hacker den Dongle-Empfänger einer Logitech-Drahtlos-Tastatur des Opfers austauscht, kann er die Passwörter der Konten des Opfers erfahren, mit allen daraus resultierenden Konsequenzen. Es sollte auch nicht vergessen werden, dass das Injizieren von Tasteneingaben ebenfalls möglich ist, was bedeutet, dass es keine Schwierigkeit darstellt, beliebigen Code auf dem Computer des Opfers auszuführen.
Und was, wenn ein Angreifer aus der Ferne die Firmware eines beliebigen Logitech-Dongles über USB manipulieren kann? Dann könnte man aus benachbarten Dongles ein Netzwerk von Relais aufbauen und so die Reichweite der Datenübertragung erhöhen. Ein wohlhabender Angreifer hätte zudem Zugang zu modernen Empfangsgeräten mit hochselektiven Systemen, empfindlichen Radiokreise mit kurzer Frequenzumstellungszeit und gerichtetem Antennen, die es ihm ermöglichen würden, Eingaben von Tastaturen zu 'lauschen' und Tastenanschläge sogar aus dem Nachbargebäude zu registrieren.

Professionelle Empfangsgeräte
Da der drahtlose Datenkanal der Logitech-Tastatur ausreichend geschützt ist, erfordert der gefundene Angriffsvektor physischen Zugang zum Receiver, was den Angreifer erheblich einschränkt. Die einzige Möglichkeit zum Schutz wäre in diesem Fall die Verwendung kryptografischer Schutzmechanismen für die Firmware des Receivers, zum Beispiel die Überprüfung der Signatur der geladenen Firmware seitens des Receivers. Leider unterstützt NRF24 dies jedoch nicht, und im Rahmen der aktuellen Architektur des Geräts ist eine Sicherung nicht möglich. Also passen Sie auf Ihre Dongles auf, denn die beschriebene Angriffsvariante benötigt physischen Zugang zu ihnen.

Raccoon Security ist ein spezialisiertes Expertenteam des Forschungs- und Entwicklungszentrums 'Vulkan' im Bereich praktische Informationssicherheit, Kryptographie, Schaltungstechnik, Reverse Engineering und Erstellung von Low-Level-Software.
Quelle: habr.com
