
In der Vergangenheit verwenden die meisten Mitarbeiter drahtlose Logitech-Tastaturen und -Mäuse. Wir, das Raccoon-Sicherheitsteam, haben unsere Passwörter erneut eingegeben und uns gefragt: Wie schwierig ist es, die Sicherheitsmechanismen von drahtlosen Tastaturen zu umgehen? Die Studie ergab Architekturfehler und Softwarefehler, die den Zugriff auf die Eingabedaten ermöglichen. Under the cut - was wir gemacht haben.
Warum Logitech?
Unserer Meinung nach gehören Logitech-Eingabegeräte zu den hochwertigsten und bequemsten. Die meisten unserer Geräte basieren auf der Logitech Unifying- Lösung - dies ist ein universeller Dongle-Empfänger, mit dem Sie bis zu 6 Geräte anschließen können. Alle mit Logitech Unifying kompatiblen Geräte sind mit dem entsprechenden Logo gekennzeichnet. Mit der benutzerfreundlichen Anwendung können Sie die Verbindung von drahtlosen Tastaturen mit Ihrem Computer steuern. Hier wird zum Beispiel der Vorgang des Anschlusses der Tastatur an den Logitech-Dongle-Empfänger im Detail sowie die Technologie selbst behandelt.

Logitech Unifying Dongle Receiver
Die Tastatur kann eine Informationsquelle für Angreifer sein. Logitech kümmerte sich unter Berücksichtigung einer möglichen Bedrohung um die Sicherheit - es verwendete den AES128-Verschlüsselungsalgorithmus im Funkkanal der drahtlosen Tastatur. Der erste Gedanke, den ein Angreifer in dieser Situation besuchen kann, ist das Abfangen von Schlüsselinformationen, wenn diese während des Verbindungsprozesses drahtlos übertragen werden. Wenn Sie einen Schlüssel haben, können Sie schließlich die Funksignale der Tastatur abfangen und entschlüsseln. Der Benutzer muss die Tastatur jedoch sehr selten (oder sogar nie) mit einem Unifying-Vorgang verknüpfen, und ein Hacker mit einem Scan-Radio muss lange warten. Außerdem ist beim Abfangen selbst nicht alles so einfach. In einer kürzlich durchgeführten Studie im Juni 2019 veröffentlichte der Sicherheitsexperte Marcus Mengs eine Meldung im Netzwerk über die Entdeckung von Sicherheitslücken in älterer Firmware für Logitech USB-Dongles. Es ermöglicht Angreifern mit physischem Zugriff auf Geräte, Funkkanal-Verschlüsselungsschlüssel abzurufen und Tastenanschläge einzugeben (CVE-2019-13054).
Wir werden über unsere Logitech SoC NRF24 Dongle-Sicherheitsstudie von Nordic Semiconductor sprechen. Und fangen wir mit dem Radiosender selbst an.
So "fliegen" Sie Daten im Funkkanal
Für die Zeit-Frequenz-Analyse des Funksignals haben wir einen SDR-Empfänger verwendet, der auf dem Blade-RF-Gerät im Spektrumanalysator-Modus basiert (dies kann auch hier nachgelesen werden ).

SDR-Blade-RF-Gerät
Wir haben auch die Möglichkeit in Betracht gezogen, Quadraturen des Funksignals bei einer Zwischenfrequenz aufzuzeichnen und diese dann unter Verwendung digitaler Signalverarbeitungsverfahren zu analysieren.
Die staatliche Kommission für Funkfrequenzen in der Russischen Föderation erlaubte die Verwendung von Geräten mit kurzer Reichweite im Frequenzbereich von 2400 bis 2483,5 MHz. Dies ist ein sehr "bevölkerter" Bereich, in dem Sie nichts finden können: WLAN, Bluetooth, verschiedene Fernbedienungen, Sicherheitssysteme, drahtlose Detektoren, Maus mit Tastatur und andere drahtlose digitale Geräte.

2,4-GHz-Bandspektrum
Die Störumgebung im Bereich ist recht kompliziert. Trotzdem konnte Logitech mithilfe des Enhanced ShockBurst-Protokolls im NRF24-Transceiver in Kombination mit Frequenzanpassungsalgorithmen einen zuverlässigen und stabilen Empfang gewährleisten.
Die Kanäle im Bereich befinden sich an ganzzahligen MHz-Positionen, wie in der NRF24 Nordic Semiconductor- Spezifikation definiert - insgesamt 84 Kanäle im Frequenzgitter. Die Anzahl der gleichzeitig von Logitech verwendeten Frequenzkanäle ist natürlich geringer. Wir haben die Verwendung von mindestens vier identifiziert. Aufgrund des eingeschränkten Sichtfeldes des verwendeten Signalspektrumanalysators war es nicht möglich, die genaue Liste der verwendeten Frequenzpositionen zu ermitteln, dies war jedoch nicht erforderlich. Informationen von der Tastatur zum Dongle-Empfänger werden im Burst-Modus (durch kurzes Einschalten des Senders) mit der zweistelligen Frequenzmodulation GFSK mit einer Symbolgeschwindigkeit von 1 MBaud übertragen:

Tastatur-Funksignal in temporärer Darstellung
Der Empfänger verwendet das Korrelationsprinzip des Empfangs, so dass die Präambel und der Adressenteil in dem übertragenen Paket vorhanden sind. Es wird keine Interferenzcodierung angewendet, der Datenkörper wird mit dem AES128-Algorithmus verschlüsselt.
Im Allgemeinen kann die Funkschnittstelle der drahtlosen Logitech-Tastatur als vollständig asynchron mit statistischem Multiplexing und Frequenzanpassung charakterisiert werden. Dies bedeutet, dass der Tastatursender den Kanal umschaltet, um jedes neue Paket zu senden. Weder die Sendezeit noch der Frequenzkanal sind dem Empfänger im Voraus bekannt, und nur ihre Liste ist bekannt. Der Empfänger und der Sender treffen sich im Kanal dank der vereinbarten Algorithmen zum Umgehen und Abhören von Frequenzen sowie der erweiterten ShockBurst-Bestätigungsmechanismen. Wir haben nicht untersucht, ob die Kanalliste statisch ist. Wahrscheinlich ist seine Änderung auf den Frequenzanpassungsalgorithmus zurückzuführen. Etwas in der Nähe der Frequenzsprungmethode (pseudozufällige Abstimmung der Betriebsfrequenz) wird bei der Verwendung der Frequenzressource des Bereichs vermutet.
Daher muss ein Angreifer unter den Bedingungen der Zeit-Frequenz-Unsicherheit, um den Empfang aller Tastatursignale zu gewährleisten, ständig das gesamte Frequenzraster in einem Bereich von 84 Positionen überwachen, was viel Zeit erfordert. Hier wird deutlich, warum die Sicherheitsanfälligkeit beim Extrahieren von Schlüsseln über USB (CVE-2019-13054) in den Quellen darin besteht , dass Tastenanschläge eingegeben werden können, anstatt einem Angreifer Zugriff auf die über die Tastatur eingegebenen Daten zu verschaffen. Offensichtlich ist die Funkschnittstelle der drahtlosen Tastatur ziemlich kompliziert und gewährleistet eine zuverlässige Funkkommunikation zwischen Logitech-Geräten unter schwierigen Störbedingungen im 2,4-GHz-Band.
Ein Blick auf das Problem von innen
Für die Recherche haben wir eine unserer Logitech K330-Tastaturen und einen Logitech Unifying-Dongle ausgewählt.

Logitech K330
Lassen Sie uns einen Blick in die Tastatur werfen. Ein interessantes Element, das auf dem Board untersucht werden sollte, ist der SoR NRF24-Chip von Nordic Semiconductor.

SoC NRF24 auf Logitech K330 Wireless Keyboard
Die Firmware befindet sich im internen Speicher, die Lese- und Debugging-Mechanismen sind ausgeschaltet. Leider wurde die Firmware nicht in Open Source veröffentlicht. Aus diesem Grund haben wir uns entschieden, das Problem von der anderen Seite anzusprechen - um den internen Inhalt des Logitech-Dongle-Empfängers zu untersuchen.
Die „innere Welt“ des Dongle-Empfängers ist sehr interessant. Der Dongle ist leicht zu zerlegen, enthält den bekannten NRF24 in einem Release mit integriertem USB-Controller und kann sowohl von der USB-Seite als auch direkt vom Programmierer neu programmiert werden.

Logitech Dongle ohne Gehäuse
Da es einen regelmäßigen Firmware-Aktualisierungsmechanismus gibt, der die Anwendung Firmware Update Tool verwendet (aus der Sie die aktualisierte Firmware-Version extrahieren können), muss im Dongle nicht nach Firmware gesucht werden.
Was wurde getan: Die Firmware RQR_012_005_00028.bin wurde aus dem Hauptteil der Anwendung Firmware Update Tool extrahiert. Um seine Integrität zu überprüfen, wurde der Dongle-Controller über eine Schleife mit dem ChipProg-48-Programmierer verbunden :

Logitech-Dongle-Kabel zum ChipProg 48-Programmierer
Um die Integrität der Firmware zu überprüfen, wurde sie erfolgreich im Controller-Speicher abgelegt und funktionierte ordnungsgemäß. Tastatur und Maus wurden über Logitech Unifying mit dem Dongle verbunden. Es ist möglich, die geänderte Firmware mithilfe des Standardaktualisierungsmechanismus einzufügen, da für die Firmware keine kryptografischen Schutzmechanismen vorhanden sind. Zu Forschungszwecken verwendeten wir eine physikalische Verbindung zum Programmierer, da das Debuggen auf diese Weise viel schneller ist.
Durchsuchen der Firmware und Angreifen von Benutzereingaben
Der NRF24-Chip basiert auf dem Intel 8051-Rechenkern in traditioneller Harvard-Architektur. Für den Core fungiert der Transceiver als Peripheriegerät und befindet sich als Registersatz im Adressraum. Die Chip-Dokumentation und Quellcode-Beispiele finden Sie im Internet, sodass das Zerlegen der Firmware nicht schwierig ist. Während des Reverse Engineering haben wir die Funktionen zum Empfangen von Daten auf Tastenanschlägen vom Funkkanal und zum Konvertieren dieser Daten in das HID-Format für die Übertragung an den Host über die USB-Schnittstelle lokalisiert. In die freien Speicheradressen wurde ein Injektionscode eingefügt, der Tools zum Abfangen der Steuerung, zum Speichern und Wiederherstellen des ursprünglichen Ausführungskontexts sowie einen Funktionscode enthielt.
Ein Paket zum Drücken oder Freigeben einer Taste, die von einem Funkkanal empfangen wurde, wird entschlüsselt, in einen Standard-HID-Bericht konvertiert und über eine normale Tastatur an die USB-Schnittstelle gesendet. Der für uns interessanteste Teil der Studie ist der Teil des HID-Berichts, der das Byte der Modifikatorflags und ein Array von 6 Bytes mit Tastendruckcodes enthält (als Referenz finden Sie hier Informationen zum HID).
HID-Berichtsstruktur:
// 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;
Kurz bevor die HID-Struktur an den Host übertragen wird, übernimmt der eingespeiste Code die Kontrolle, kopiert 8 Byte native HID-Daten in den Speicher und sendet sie in übersichtlicher Form an den seitlichen Funkkanal. Im Code sieht es 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 Seitenkanal wird mit einer von uns eingestellten Frequenz mit bestimmten Merkmalen der Manipulationsgeschwindigkeit und Paketstruktur organisiert.
Der Betrieb des Transceivers im NRF24- Chip basiert auf einem Zustandsgraphen, in den das Enhanced ShockBurst-Protokoll organisch eingetragen wird. Wir haben festgestellt, dass sich der Transceiver unmittelbar vor der Übertragung der HID-Daten auf die USB-Schnittstelle des Hosts im IDLE-Status befand. Dies ermöglicht eine sichere Neukonfiguration für die Arbeit im Seitenkanal. Der eingespeiste Code fängt die Steuerung ab, speichert die ursprüngliche Transceiverkonfiguration vollständig und überträgt sie in den neuen Übertragungsmodus auf dem Seitenkanal. Der Enhanced ShockBurst-Bestätigungsmechanismus ist in diesem Modus deaktiviert, und HID-Daten im Klartext werden an die Luft übertragen. Die Struktur des Pakets im Seitenkanal ist in der folgenden Abbildung dargestellt. Die Wellenformdiagramme wurden nach der Demodulation und vor der Wiederherstellung der Taktdatensynchronisation erhalten. Der Adresswert wird zur bequemen visuellen Identifizierung des Pakets ausgewählt.

Burst Burst demoduliertes Signal
Nachdem die Übertragung des Pakets zum Seitenkanal abgeschlossen ist, stellt der eingespeiste Code den Zustand des Transceivers wieder her. Jetzt ist er wieder bereit, im normalen Modus im Kontext der ursprünglichen Firmware zu arbeiten.
In den Frequenz- und Zeit-Frequenz-Bereichen sieht der Seitenkanal wie in der Abbildung gezeigt aus:

Spektrale und Zeit-Frequenz-Darstellung des Seitenkanals
Um den Betrieb des NRF24-Chips mit geänderter Firmware zu testen, haben wir einen Ständer montiert, der einen Logitech-Dongle mit geänderter Firmware, eine drahtlose Tastatur und einen Empfänger enthielt, der auf der Basis des chinesischen Moduls mit dem NRF24-Chip zusammengebaut wurde.

Funkempfangsdiagramm für Logitech Wireless Keyboard

NRF24 basiertes Modul
Während des normalen Tastaturbetriebs nach dem Anschließen an den Logitech-Dongle beobachteten wir auf dem Ständer die Übertragung offener Daten auf Tastenanschlägen im sekundären Funkkanal und die normale Übertragung verschlüsselter Daten in der Hauptfunkschnittstelle. Auf diese Weise konnten wir die Tastatureingaben des Benutzers direkt abfangen:

Ergebnis der Tastaturüberwachung
Der eingespeiste Code führt zu geringfügigen Verzögerungen beim Betrieb der Dongle-Firmware. Sie sind jedoch zu klein, um vom Benutzer bemerkt zu werden.
Wie Sie sich vorstellen können, kann für einen solchen Angriffsvektor jede mit der Unifying-Technologie kompatible Logitech-Tastatur verwendet werden. Da der Angriff auf den Unifying-Empfänger gerichtet ist, der in den meisten Logitech-Tastaturen enthalten ist, hängt er nicht vom jeweiligen Tastaturmodell ab.
Fazit
Die Ergebnisse der Studie lassen darauf schließen, dass die Angreifer das in Betracht gezogene Szenario nutzen könnten: Wenn der Hacker das Opfer durch einen Dongle-Empfänger für die Logitech-Funk-Tastatur ersetzt, kann er die Passwörter für die Konten des Opfers mit allen Konsequenzen ermitteln. Vergessen Sie nicht, dass das Einfügen von Tastenanschlägen ebenfalls möglich ist. Dies bedeutet, dass es nicht schwierig ist, beliebigen Code auf dem Computer des Opfers auszuführen.
Was ist, wenn ein Angreifer die Firmware eines Logitech-Dongles über USB aus der Ferne ändern kann? Dann können Sie von nahe gelegenen Dongles ein Netzwerk von Repeatern hinzufügen und die Kriechstrecke erhöhen. Obwohl der "finanziell sichere" Angreifer einen modernen Radioempfang mit hochselektiven Systemen, empfindlichen Radios mit einer kurzen Frequenzabstimmungszeit und eng ausgerichteten Antennen hat, können Sie mit ihnen Tastatureingaben "abhören" und auch von einem benachbarten Gebäude aus Tasten drücken.

Professionelle Funkgeräte
Da der drahtlose Datenkanal der Logitech-Tastatur recht gut geschützt ist, erfordert der gefundene Angriffsvektor physischen Zugriff auf den Empfänger, was den Angreifer stark einschränkt. Die einzige Schutzoption in diesem Fall könnte die Verwendung kryptografischer Schutzmechanismen für die Empfängerfirmware sein, zum Beispiel die Überprüfung der Signatur der heruntergeladenen Firmware auf der Empfängerseite. Leider unterstützt NRF24 dies nicht und es ist unmöglich, Schutz in der aktuellen Gerätearchitektur zu implementieren. Passen Sie also auf Ihre Dongles auf, da die beschriebene Version des Angriffs physischen Zugriff darauf erfordert.

Raccoon Security ist ein spezielles Expertenteam des Volcano Scientific and Technical Center im Bereich praktischer Informationssicherheit, Kryptographie, Schaltungstechnik, Reverse Engineering und der Erstellung von Low-Level-Software.