Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Historisch bedingt verwenden die meisten Mitarbeiter drahtlose Tastaturen und Mäuse von Logitech. Beim erneuten Eingeben unserer Passwörter stellten wir – die Spezialisten von Raccoon Security – uns die Frage: Wie schwer ist es, die Sicherheitsmechanismen drahtloser Tastaturen zu umgehen? Die durchgeführte Forschung deckte architektonische Mängel und Softwarefehler auf, die es erlauben, auf eingegebene Daten zuzugreifen. Im Folgenden finden Sie unsere Ergebnisse.

Warum Logitech?

Unserer Meinung nach gehören die Eingabegeräte von Logitech zu den qualitativ besten und bequemsten. Die meisten unserer Geräte basieren auf Logitech-Lösungen. Unifying ist ein universeller Dongle-Empfänger, der es ermöglicht, bis zu 6 Geräte anzuschließen. Alle mit der Logitech Unifying-Technologie kompatiblen Geräte sind mit dem entsprechenden Logo gekennzeichnet. Die benutzerfreundliche Anwendung ermöglicht die Verwaltung der Verbindung drahtloser Tastaturen mit dem Computer. Der Prozess zum Anschließen der Tastatur an den Logitech-Dongle-Empfänger sowie die Technologie selbst werden beispielsweise erläutert. hier.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Dongle-Empfänger mit Unterstützung für Logitech Unifying

Eine Tastatur kann eine Informationsquelle für Angreifer sein. Logitech hat angesichts der möglichen Bedrohung die Sicherheit berücksichtigt – sie hat im Funkkanal der drahtlosen Tastatur den AES128-Verschlüsselungsalgorithmus angewendet. Der erste Gedanke, der einem Angreifer in einem solchen Szenario kommen könnte, ist der Abfang von sensiblen Informationen bei deren Übertragung über den Funkkanal während des Verbindungsvorgangs. Denn mit dem Schlüssel können die Funksignale der Tastatur abgefangen und entschlüsselt werden. Allerdings muss der Benutzer sehr selten (oder sogar nie) die Unifying-Verbindungsmethode verwenden, und ein Hacker mit einem empfangenden Funkgerät wird lange warten müssen. Zudem ist der Prozess des Abfangens selbst nicht so einfach. In der letzten Untersuchung im Juni 2019 veröffentlichte der Sicherheitsexperte Markus Mengs online Nachricht Informationen über das Auffinden einer Sicherheitsanfälligkeit in alten Firmware-Versionen von Logitech-USB-Dongles. Diese ermöglicht es Angreifern mit physischem Zugang zu den Geräten, die Verschlüsselungsschlüssel des Funkkanals zu erhalten und Tastendrücke zu injizieren (CVE-2019-13054).

Wir werden über unsere Untersuchung der Sicherheit des Logitech Dongles basierend auf dem SoC NRF24 von Nordic Semiconductor berichten. Lassen Sie uns am besten mit dem Radiosignal beginnen.

Wie Daten im Radiosignal übertragen werden

Für die frequenzzeitliche Analyse des Funksignals verwendeten wir einen SDR-Empfänger basierend auf dem Blade-RF-Gerät im Spektrumanalysator-Modus (darüber kann man ebenfalls lesen hier).

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Das SDR-Gerät Blade-RF

Wir haben auch die Möglichkeit untersucht, die Quadratur des Funksignals bei einer Zwischenfrequenz aufzuzeichnen, um sie anschließend mit Methoden der digitalen Signalverarbeitung zu analysieren.

Der staatlichen Kommission für Funkfrequenzen in der Russischen Föderation erlaubt die Nutzung von Geräten mit einem kleinen Aktionsradius im Frequenzbereich von 2400–2483,5 MHz. Dies ist ein sehr „belebter“ Bereich, in dem man alles Mögliche findet: Wi-Fi, Bluetooth, verschiedene Fernbedienungen, Alarmsysteme, kabellose Melder, Mäuse mit Tastaturen und andere kabellose digitale Geräte.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Das Spektrum des 2,4 GHz Bereichs

Das Störspektrum im Bereich ist ziemlich komplex. Dennoch hat es Logitech geschafft, einen zuverlässigen und stabilen Empfang durch die Verwendung des Enhanced ShockBurst-Protokolls im NRF24-Transceiver in Kombination mit Frequenzanpassungsalgorithmen sicherzustellen.

Die Kanäle im Frequenzbereich sind an ganzzahligen MHz-Positionen angeordnet, wie in Spezifikation NRF24 Nordic Semiconductor - insgesamt 84 Kanäle im Frequenzgitter. Die Anzahl der gleichzeitig verwendeten Frequenzkanäle von Logitech ist natürlich geringer. Wir haben die Verwendung von mindestens vier festgestellt. Aufgrund des begrenzten Sichtfeldes des verwendeten Spektrumanalysators konnte die genaue Liste der verwendeten Frequenzpositionen nicht bestimmt werden, aber das war auch nicht notwendig. Die Informationen von der Tastatur zum Dongle-Empfänger werden im Burst-Modus (kurze Einspeisungen des Transmitters) unter Verwendung der zweiwertigen Frequenzmodulation GFSK bei einer Symbolrate von 1 Mbaud übertragen:

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Das Funksignal der Tastatur in zeitlicher Darstellung

Der Empfänger verwendet ein Korrelationsprinzip, daher enthält das übertragene Paket eine Präambel und einen Adressenteil. Eine fehlerresistente Codierung wird nicht angewendet, der Dateninhalt wird mit dem AES128-Algorithmus verschlüsselt.

Im Allgemeinen kann die Funkschnittstelle der kabellosen Logitech-Tastatur als vollständig asynchron mit statistischer Verdichtung und Frequenzanpassung charakterisiert werden. Das bedeutet, dass der Transmitter 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; bekannt ist nur ihre Liste. Empfänger und Sender finden sich im Kanal aufgrund abgestimmter Durchlauf- und Abhöralgorithmen sowie der Mechanismen für Bestätigungen von Enhanced ShockBurst. Wir haben nicht untersucht, ob die Liste der Kanäle statisch ist. Wahrscheinlich ist ihre Veränderung durch den Algorithmus der Frequenzanpassung bedingt. Etwas, das nahe an der Methode PPRCh (pseudozufällige Umstellung der Arbeitsfrequenz) liegt, lässt sich in der Nutzung des Frequenzressourcensprachbereichs erahnen.

Daher benötigt ein Angreifer unter Bedingungen der frequenz-zeitlichen Ungewissheit für den garantierten Empfang aller Tastatursignale eine kontinuierliche Kontrolle des gesamten Frequenzrasterbereichs von 84 Positionen, was erhebliche zeitliche Aufwendungen erfordert. Hier wird verständlich, warum die Schwachstelle zur Schlüsselauslesung über USB (CVE-2019-13054) in den Quellen als Möglichkeit zum Injizieren von Tasteneingaben positioniert wird und nicht als Zugang des Angreifers zu den von der Tastatur eingegebenen Daten. Offensichtlich ist die Funkschnittstelle der kabellosen Tastatur ausreichend komplex gestaltet und gewährleistet eine zuverlässige Funkverbindung zwischen Logitech-Geräten unter schwierigen Störbedingungen im 2,4-GHz-Bereich.

Ein Blick auf das Problem von innen

Für unsere Untersuchung wählten wir eine der vorhandenen Tastaturen, die Logitech K330, und den Logitech Unifying Dongle.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Logitech K330

Werfen wir einen Blick ins Innere der Tastatur. Ein interessantes Element auf der Platine für die Untersuchung ist der SoC NRF24-Chip von Nordic Semiconductor.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

SoC NRF24 auf der Platine der kabellosen Tastatur Logitech K330

Die Firmware befindet sich im internen Speicher, die Lese- und Debugging-Mechanismen sind deaktiviert. Leider ist die Firmware nicht in offenen Quellen veröffentlicht. Daher haben wir beschlossen, das Problem von einer anderen Seite zu betrachten – den Inhalt des Logitech-Dongle-Empfängers zu untersuchen.

Die "Innere Welt" des Dongle-Empfängers ist ziemlich interessant aufgebaut. Der Dongle lässt sich leicht zerlegen, verfügt über den uns bekannten NRF24 in einer Version mit integriertem USB-Controller und kann sowohl über USB als auch direkt mit einem Programmierer neu programmiert werden.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Logitech Dongle ohne Gehäuse

Da es einen standardmäßigen Mechanismus zur Aktualisierung der Firmware mit Hilfe von der Anwendung Firmware Update Tool gibt, ist es nicht notwendig, die Firmware im Dongle zu suchen. Was durchgeführt wurde: Aus dem Körper der Anwendung Firmware Update Tool wurde die Firmware RQR_012_005_00028.bin extrahiert. Um ihre Integrität zu überprüfen, wurde der Dongle-Controller über ein Flachbandkabel

mit dem Programmierer ChipProg-48 verbunden. Flachbandkabelverbindung des Logitech Dongles zum Programmierer ChipProg 48:

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Zur Überprüfung der Integrität der Firmware wurde sie erfolgreich im Speicher des Controllers abgelegt und funktionierte einwandfrei, die Tastatur und die Maus waren über den Logitech Unifying an den Dongle angeschlossen. Das Einspielen einer modifizierten Firmware ist mittels des standardmäßigen Aktualisierungsmechanismus möglich, da keine kryptografischen Schutzmechanismen in der Firmware vorgesehen sind. Wir haben jedoch zu Forschungszwecken eine physische Verbindung zum Programmierer verwendet, da dies die Fehlerbehebung wesentlich beschleunigt.

Untersuchung der Firmware und Angriff auf die Benutzereingabe

Der Chip NRF24 ist auf der Basis des Rechenkerns Intel 8051 in einer traditionellen Harvard-Architektur entworfen. Für den Kern fungiert der Transceiver als Peripheriegerät und ist im Adressraum als Satz von Registern untergebracht. Die Dokumentation für den Chip und Beispielquelltexte sind im Internet verfügbar, sodass die Dekomposition der Firmware keine Schwierigkeiten bereitet. Im Rahmen des Reverse Engineering haben wir Funktionen zur Erfassung von Tastenanschlagsdaten aus dem Funkkanal und deren Umwandlung in das HID-Format zur Übertragung an den Host über die USB-Schnittstelle lokalisiert. In freien Adressbereichen wurde Injektionscode platziert, der Steuerungsüberwachung, Speicherung und Wiederherstellung des ursprünglichen Ausführungskontexts sowie funktionalen Code umfasst.

Im Rahmen der Reverse Engineering haben wir Funktionen zur Erfassung von Tastenanschlagsdaten aus dem Funkkanal und deren Umwandlung in das HID-Format zur Übertragung an den Host über die USB-Schnittstelle lokalisiert. In freien Adressbereichen wurde Injektionscode platziert, der Steuerungsüberwachung, Speicherung und Wiederherstellung des ursprünglichen Ausführungskontexts sowie funktionalen Code umfasst.

Das vom Dongle vom Funkkanal angenommene Paket zur Tasteingabe oder -freigabe wird dekodiert, in einen standardmäßigen HID-Bericht umgewandelt und über die USB-Schnittstelle wie von einer herkömmlichen Tastatur übertragen. Im Rahmen der Untersuchung interessiert uns besonders der Teil des HID-Berichts, der das Byte mit den Flaggen-Modifikatoren und ein Array aus 6 Bytes mit Code für die Tastenanschläge enthält (zur Information über HID. hier).

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 der nativen HID-Daten in den Speicher und sendet diese unverschlüsselt über den sekundären Funkkanal. 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 der von uns festgelegten Frequenz mit bestimmten Eigenschaften der Manipulationsgeschwindigkeit und der Paketstruktur organisiert.

Der Betrieb des Transceivers im Chip NRF24 beruht auf einem Zustandsdiagramm, in das das Protokoll Enhanced ShockBurst eingebettet ist. Wir haben festgestellt, dass der Transceiver unmittelbar vor der Übertragung der HID-Daten an die USB-Schnittstelle des Hosts im Zustand IDLE war. Dies ermöglicht eine sichere Neukonfiguration für den Betrieb im sekundären Kanal. Der injizierte Code übernimmt die Kontrolle, speichert die ursprüngliche Konfiguration des Transceivers in vollem Umfang und wechselt in den neuen Übertragungsmodus für den sekundären Kanal. Der Bestätigungsmechanismus von Enhanced ShockBurst ist in diesem Modus deaktiviert, die HID-Daten werden unverschlüsselt in die Luft gesendet. Die Struktur des Pakets im sekundären Kanal wird im Bild unten dargestellt, die Signalzüge wurden nach der Demodulation und vor der Wiederherstellung der Taktsynchronisation der Daten erhalten. Der Adresswert wurde zur einfachen visuellen Identifizierung des Pakets ausgewählt.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Demoduliertes Signal des Burst-Pakets im sekundären Kanal

Nach Abschluss der Übertragung des Pakets im sekundären Kanal 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.

In den Frequenz- und Zeitfrequenzbereichen sieht der sekundäre Kanal wie im Bild gezeigt aus:

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Spektrale und frequenz-temporale Darstellung des sekundären Kanals

Um die Funktionsweise des NRF24-Chips mit geänderter Firmware zu überprüfen, haben wir ein Standgerät zusammengestellt, das einen Logitech-Dongle mit modifizierter Firmware, eine kabellose Tastatur und einen Empfänger enthält, der auf einem chinesischen Modul mit dem NRF24-Chip basiert.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Schema zur Abfangung des Funksignals der kabellosen Logitech-Tastatur

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Modul basierend auf NRF24

Am Standgerät beobachteten wir bei normalem Betrieb der Tastatur nach deren Verbindung mit dem Logitech-Dongle die Übertragung offener Daten zu Tasteneingaben im Nebeneinanderband sowie die normale Übertragung verschlüsselter Daten im Hauptfunkinterface. So gelang es uns, das Tastatureingabe des Nutzers direkt abzufangen:

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Ergebnis der Abfangung der Tastatureingabe

Der injizierte Code verursacht kleine Verzögerungen im Betrieb der Dongle-Firmware. Diese sind jedoch zu gering, als dass der Nutzer sie bemerken könnte.

Wie Sie verstehen, kann für einen solchen Angriffsvektor jede Logitech-Tastatur verwendet werden, die mit der Unifying-Technologie kompatibel ist. Da der Angriff auf den Unifying-Empfänger abzielt, der in den meisten Logitech-Tastaturen enthalten ist, ist er nicht von einem bestimmten Tastaturmodell abhängig.

Fazit

Die erhaltenen Forschungsergebnisse legen nahe, dass das beschriebene Szenario von Angreifern genutzt werden könnte: Wenn ein Hacker den Dongle-Empfänger für die kabellose Logitech-Tastatur der Zielperson austauscht, kann er die Passwörter der Konten der Zielperson herausfinden, was weitreichende Folgen hat. Es sollte nicht vergessen werden, dass es auch möglich ist, Tasteneingaben zu injizieren, was bedeutet, dass es keine Schwierigkeit darstellt, beliebigen Code auf dem Computer des Opfers auszuführen.

Und was wenn der Angreifer in der Lage ist, die Firmware eines beliebigen Logitech-Dongles über USB aus der Ferne zu modifizieren? Dann könnte ein Netzwerk von Repeater-Dongles aus nah beieinander stehenden Dongles gebildet werden, um die Entfernung der Datenleckage zu erhöhen. Währenddessen erlauben es „finanziell besser ausgestatteten“ Angreifern moderne Empfangsgeräte mit hochselektiven Systemen, empfindlichen Empfängern mit kurzer Frequenzwechselfrist und richtungsabhängigen Antennen, Tastatureingaben selbst aus einem benachbarten Gebäude abzuhören.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Professionelle Ausrüstung zur Funksignalempfang

Da der drahtlose Datenübertragungskanal der Logitech-Tastatur ausreichend gut abgesichert ist, erfordert der gefundene Angriffsvektor physischen Zugang zum Empfänger, was den Angreifer stark einschränkt. Die einzige Schutzmaßnahme in diesem Fall könnte die Verwendung von kryptografischen Schutzmechanismen für das Firmware-Flashen des Empfängers sein, beispielsweise die Überprüfung der Signatur des geladenen Firmware auf der Seite des Empfängers. Leider unterstützt der NRF24 dies nicht, und im Rahmen der aktuellen Gerätearchitektur ist eine Sicherung nicht möglich. Also achten Sie auf Ihre Dongles, denn die beschriebene Angriffsmethode erfordert physischen Zugang zu ihnen.

Schützen Sie Ihre Dongles: Sicherheitsforschung zu Logitech-Tastaturempfängern

Raccoon Security ist ein spezialisiertes Expertenteam des NTC „Vulkan“ im Bereich der praktischen Informationssicherheit, Kryptografie, Schaltungstechnik, Reverse Engineering und der Erstellung von Low-Level-Software.

Quelle: habr.com

60GB SSD 8Gb DDR4