Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Il est historiquement Ă©tabli que la plupart des employĂ©s utilisent des claviers et des souris sans fil de la marque Logitech. Une fois de plus, en saisissant nos mots de passe, nous – les spĂ©cialistes de l'Ă©quipe Raccoon Security – nous sommes demandĂ© : Ă  quel point est-il difficile de contourner les mĂ©canismes de protection des claviers sans fil ? L'Ă©tude que nous avons menĂ©e a rĂ©vĂ©lĂ© des dĂ©fauts d'architecture et des erreurs logicielles qui permettent d'accĂ©der aux donnĂ©es saisies. DĂ©couvrez ci-dessous ce que nous avons trouvĂ©.

Pourquoi Logitech ?

À notre avis, les dispositifs d'entrĂ©e de la sociĂ©tĂ© Logitech sont parmi les plus qualitatifs et confortables. La plupart des appareils que nous avons reposent sur une solution Logitech. Unifying – c'est un rĂ©cepteur dongle universel permettant de connecter jusqu'Ă  6 appareils. Tous les appareils compatibles avec la technologie Logitech Unifying sont marquĂ©s du logo correspondant. Facile Ă  utiliser une application permet de gĂ©rer la connexion des claviers sans fil Ă  l'ordinateur. Le processus de connexion d'un clavier Ă  un dongle rĂ©cepteur Logitech, ainsi que la technologie elle-mĂȘme, sont abordĂ©s, par exemple, ici.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Dongle récepteur avec support Logitech Unifying

Un clavier peut devenir une source d'informations pour des attaquants. La sociĂ©tĂ© Logitech, prenant en compte la menace possible, a veillĂ© Ă  la sĂ©curitĂ© – en appliquant un algorithme de chiffrement AES128 dans le canal radio du clavier sans fil. La premiĂšre pensĂ©e qui peut traverser l'esprit d'un attaquant dans ce contexte est l'interception d'informations clĂ©s lors de leur transmission par le canal radio lors de la procĂ©dure d'appairage. En effet, en possĂ©dant la clĂ©, il est possible d'intercepter les signaux radio du clavier et de les dĂ©chiffrer. Cependant, les utilisateurs ont trĂšs rarement (ou mĂȘme jamais) besoin de lier un clavier via la procĂ©dure Unifying, et un hacker avec un rĂ©cepteur radio scanner devra attendre longtemps. De plus, le processus d'interception lui-mĂȘme n'est pas si simple. Lors de la derniĂšre Ă©tude en juin 2019, l'expert en sĂ©curitĂ© Markus Mengs a publiĂ© en ligne message la dĂ©couverte d'une vulnĂ©rabilitĂ© dans les anciennes versions des firmware des dongles USB Logitech. Cela permet aux attaquants ayant un accĂšs physique aux appareils d'obtenir les clĂ©s de chiffrement du canal radio et d'injecter des frappes de touches (CVE-2019-13054).

Nous allons parler de notre Ă©tude de sĂ©curitĂ© sur le dongle Logitech basĂ© sur le SoC NRF24 de Nordic Semiconductor. Et commençons, peut-ĂȘtre, par le canal radio.

Comment les données « volent » dans le canal radio

Pour l'analyse temporelle et fréquentielle du signal radio, nous avons utilisé un récepteur SDR basé sur le dispositif Blade-RF en mode analyseur de spectre (vous pouvez également lire à ce sujet ici).

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Dispositif SDR Blade-RF

Nous avons également examiné la possibilité d'enregistrer les quadratures du signal radio à une fréquence intermédiaire, afin de les analyser ensuite à l'aide de méthodes de traitement numérique du signal.

La Commission État des FrĂ©quences de la FĂ©dĂ©ration de Russie est autorisĂ©e Ă  ĂȘtre utilisĂ©e par des dispositifs Ă  courte portĂ©e dans la plage de frĂ©quences de 2400 Ă  2483,5 MHz. C'est une plage trĂšs « peuplĂ©e », dans laquelle on ne rencontre que toutes sortes de choses : Wi-Fi, Bluetooth, divers tĂ©lĂ©commandes, systĂšmes de sĂ©curitĂ©, dĂ©tecteurs sans fil, souris et claviers et autres dispositifs numĂ©riques sans fil.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Spectre de la bande de 2,4 GHz

La situation de brouillage dans la bande est assez complexe. Mais malgré cela, la société Logitech a réussi à assurer une réception fiable et stable en utilisant le protocole Enhanced ShockBurst dans le transceiver NRF24 combiné avec des algorithmes d'adaptation de fréquence.

Les canaux dans la bande sont disposĂ©s Ă  des positions de valeurs entiĂšres en MHz, comme dĂ©fini dans la spĂ©cification NRF24 Nordic Semiconductor – un total de 84 canaux dans la grille de frĂ©quences. Le nombre de canaux de frĂ©quence utilisĂ©s simultanĂ©ment par Logitech est bien sĂ»r moins Ă©levĂ©. Nous avons identifiĂ© l'utilisation d'au moins quatre. En raison de la bande passante limitĂ©e du spectre analysĂ©, il n'a pas Ă©tĂ© possible de dĂ©terminer la liste exacte des positions de frĂ©quence utilisĂ©es, mais cela n'Ă©tait pas nĂ©cessaire. Les informations de la clavier au dongle-rĂ©cepteur sont transmises en mode Burst (avec de courtes activations du transmetteur) en utilisant la modulation de frĂ©quence Ă  deux positions GFSK Ă  une vitesse symbolique de 1 Mo/s :

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Signal radio du clavier en représentation temporelle

Le récepteur utilise le principe de réception par corrélation, de sorte que le paquet transmis contient un préambule et une partie d'adresse. Le codage résistant au brouillage n'est pas utilisé, le corps des données étant chiffré selon l'algorithme AES128.

En gĂ©nĂ©ral, l'interface radio du clavier sans fil Logitech peut ĂȘtre caractĂ©risĂ©e comme complĂštement asynchrone avec compression statistique et adaptation de frĂ©quence. Cela signifie que l'Ă©metteur du clavier change de canal pour chaque nouveau paquet transmis. Le rĂ©cepteur ne connaĂźt Ă  l'avance ni le temps de transmission, ni le canal de frĂ©quence, mais seulement leur liste. Le rĂ©cepteur et l'Ă©metteur se rencontrent sur le canal grĂące Ă  des algorithmes de contournement et d'Ă©coute de frĂ©quence concordants, ainsi qu'Ă  des mĂ©canismes de confirmation Enhanced ShockBurst. Nous n'avons pas dĂ©terminĂ© si la liste des canaux est statique. Il est probable que ses changements soient dus Ă  l'algorithme d'adaptation de frĂ©quence. Quelque chose de proche de la mĂ©thode PPRCH (reconfiguration pseudo-alĂ©atoire de frĂ©quence de travail) se devine dans l'utilisation des ressources de frĂ©quence de la bande.

Ainsi, dans des conditions d'incertitude temps-fréquence, pour garantir la réception de tous les signaux du clavier, un attaquant devra contrÎler en permanence l'ensemble de la grille de fréquence de la bande de 84 positions, ce qui nécessite des investissements temporels considérables. Ici, on comprend pourquoi la vulnérabilité d'extraction de clé via USB (CVE-2019-13054) dans les sources est positionnée comme une possibilité d'injection des frappes de touches, et non comme un accÚs de l'attaquant aux données saisies au clavier. Il est évident que l'interface radio du clavier sans fil est conçue de maniÚre suffisamment complexe et fournit une communication radio fiable entre les dispositifs Logitech dans des conditions d'interférences complexes dans la bande de 2,4 GHz.

Un regard sur le problÚme de l'intérieur

Pour l'étude, nous avons choisi l'un des claviers Logitech K330 que nous avons et le dongle Logitech Unifying.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Logitech K330

Jetons un Ɠil Ă  l'intĂ©rieur du clavier. Un Ă©lĂ©ment intĂ©ressant Ă  examiner sur le circuit imprimĂ© est la puce SoC NRF24 de Nordic Semiconductor.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

SoC NRF24 sur le circuit imprimé du clavier sans fil Logitech K330

Le firmware est stocké dans la mémoire interne, les mécanismes de lecture et de débogage sont désactivés. Malheureusement, le firmware n'a pas été publié dans les sources ouvertes. Par conséquent, nous avons décidé d'aborder le problÚme sous un autre angle : examiner le contenu interne du récepteur dongle Logitech.

L'intĂ©rieur du dongle est plutĂŽt intĂ©ressant. Il se dĂ©monte facilement, embarque le NRF24 que nous connaissons avec un contrĂŽleur USB intĂ©grĂ© et peut ĂȘtre reprogrammĂ© Ă  la fois par USB et directement via un programmateur.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Dongle Logitech sans boĂźtier

Puisqu'il existe un mĂ©canisme standard de mise Ă  jour du firmware via l'application Firmware Update Tool (Ă  partir de laquelle la version mise Ă  jour du firmware peut ĂȘtre extraite), il n'est pas nĂ©cessaire de chercher le firmware Ă  l'intĂ©rieur du dongle.

Ce qui a été fait : le firmware RQR_012_005_00028.bin a été extrait du corps de l'application Firmware Update Tool. Pour vérifier son intégrité, le contrÎleur du dongle a été connecté via un cùble au programmateur ChipProg-48:

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

CĂąble de connexion du dongle Logitech au programmateur ChipProg 48

Pour assurer l'intégrité du firmware, celui-ci a été placé avec succÚs dans la mémoire du contrÎleur et a fonctionné correctement, le clavier et la souris étant connectés au dongle via Logitech Unifying. Il est possible de charger un firmware modifié en utilisant le mécanisme de mise à jour standard, car il n'y a pas de mécanismes de protection cryptographique prévues. Pour des raisons d'étude, nous avons utilisé une connexion physique au programmateur, car cela permet un débogage beaucoup plus rapide.

Analyse du firmware et attaque sur l'entrée utilisateur

Le chip NRF24 est conçu sur la base d'un cƓur de calcul Intel 8051 dans une architecture Harvard traditionnelle. Pour le cƓur, le transceiver agit comme un pĂ©riphĂ©rique et est placĂ© dans l'espace d'adresse comme un ensemble de registres. La documentation sur le chip et des exemples de code source peuvent ĂȘtre trouvĂ©s sur Internet, donc le dĂ©sassemblage du firmware ne pose pas de difficultĂ©s. Lors du reverse engineering, nous avons localisĂ© les fonctions pour obtenir des donnĂ©es sur les pressions de touches Ă  partir du canal radio et les convertir en format HID pour les transmettre au host via l'interface USB. Le code d'injection a Ă©tĂ© placĂ© dans les adresses mĂ©moire libres, incluant des outils pour intercepter le contrĂŽle, sauvegarder et restaurer le contexte d'exĂ©cution original, ainsi qu'un code fonctionnel.

Le paquet de pression ou de relùchement de la touche reçu par le dongle depuis le canal radio est déchiffré, converti en un rapport HID standard et envoyé à l'interface USB comme si c'était un clavier ordinaire. Dans le cadre de cette recherche, la partie du rapport HID contenant le byte des flags-modificateurs et un tableau de 6 bytes avec les codes des touches est celle qui nous intéresse le plus (pour référence, l'information sur le HID) ici).

Structure du rapport HID :

// 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;

Juste avant la transmission de la structure HID à l'hÎte, le code injecté prend le contrÎle, copie en mémoire 8 bytes de données HID natives et les envoie sur le canal radio secondaire en clair. Dans le code, cela se présente comme suit :

//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Le canal secondaire est organisé à la fréquence que nous avons établie avec des caractéristiques particuliÚres de vitesse de manipulation et de structure de paquet.

Fonctionnement du transcepteur dans la puce NRF24 est basé sur un graphe d'états, dans lequel le protocole Enhanced ShockBurst est harmonieusement intégré. Nous avons découvert que juste avant la transmission des données HID à l'interface USB de l'hÎte, le transcepteur se trouvait dans un état IDLE. Cela permet sa reconfiguration en toute sécurité pour travailler sur le canal secondaire. Le code injecté intercepte le contrÎle, conserve la configuration originale du transcepteur dans son intégralité et le passe à un nouveau mode de transmission sur le canal secondaire. Le mécanisme de confirmations Enhanced ShockBurst est désactivé dans ce mode, les données HID sont transmises en clair dans l'air. La structure du paquet sur le canal secondaire est présentée sur l'image ci-dessous, les épures du signal ont été obtenues aprÚs démodulation et avant la restauration de la synchronisation des données. La valeur de l'adresse a été choisie pour faciliter l'identification visuelle du paquet.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Signal démodulé du paquet Burst sur le canal secondaire

AprĂšs la transmission du paquet sur le canal secondaire, le code injectĂ© restaure l'Ă©tat du transcepteur. Il est maintenant de nouveau prĂȘt Ă  fonctionner en mode normal dans le contexte du firmware original.

Dans les domaines de fréquence et de temps-fréquence, le canal secondaire apparaßt comme illustré sur l'image :

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Représentation spectrale et temporelle du canal secondaire

Pour tester le fonctionnement de la puce NRF24 avec un firmware modifié, nous avons assemblé un banc d'essai comprenant un dongle Logitech avec un firmware modifié, un clavier sans fil et un récepteur basé sur un module chinois avec une puce NRF24.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Schéma de capture du signal radio du clavier sans fil Logitech

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Module basé sur le NRF24

Sur le banc d'essai, lors du fonctionnement normal du clavier aprÚs sa connexion au dongle Logitech, nous avons observé la transmission de données ouvertes concernant les frappes de touches sur un canal radio auxiliaire et une transmission normale de données chiffrées sur l'interface radio principale. Ainsi, nous avons réussi à intercepter directement les saisies au clavier de l'utilisateur :

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Résultat de l'interception de la saisie au clavier

Le code injecté introduit de légers délais dans le fonctionnement du firmware du dongle. Cependant, ils sont trop insignifiants pour que l'utilisateur puisse les remarquer.

Comme vous pouvez le comprendre, pour un tel vecteur d'attaque, n'importe quel clavier Logitech compatible avec la technologie Unifying peut ĂȘtre utilisĂ©. Étant donnĂ© que l'attaque cible le rĂ©cepteur Unifying, qui est inclus avec la plupart des claviers Logitech, elle n'est pas dĂ©pendante d'un modĂšle spĂ©cifique de clavier.

Conclusion

Les résultats de l'étude poussent à réfléchir à une possible utilisation de ce scénario par des attaquants : si un hacker remplace le dongle récepteur du clavier sans fil Logitech de la victime, il pourra accéder aux mots de passe des comptes de la victime avec toutes les conséquences qui en découlent. Il ne faut pas oublier qu'il est également possible d'injecter des frappes au clavier, ce qui signifie qu'exécuter du code arbitraire sur l'ordinateur de la victime ne pose pas de difficulté.

Et si un attaquant pouvait modifier le firmware de n'importe quel dongle Logitech Ă  distance via USB ? Alors, Ă  partir de dongles situĂ©s Ă  proximitĂ©, il serait possible de crĂ©er un rĂ©seau de relais et d'augmenter la distance de fuite. Bien qu'un attaquant 'financiĂšrement Ă©quipĂ©' disposerait de moyens modernes de rĂ©ception radio avec des systĂšmes hautement sĂ©lectifs, des rĂ©cepteurs radio sensibles ayant un temps de commutation de frĂ©quence court et des antennes directionnelles Ă©troites, pour 'Ă©couter' les saisies au clavier et atteindre les touches mĂȘme depuis le bĂątiment voisin.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Équipement professionnel de rĂ©ception radio

Étant donnĂ© que le canal de transmission sans fil du clavier Logitech est suffisamment sĂ©curisĂ©, le vecteur d'attaque trouvĂ© nĂ©cessite un accĂšs physique au rĂ©cepteur, ce qui limite considĂ©rablement l'attaquant. La seule option de protection dans ce cas aurait pu ĂȘtre l'utilisation de mĂ©canismes de protection cryptographique pour le firmware du rĂ©cepteur, par exemple une vĂ©rification de la signature du firmware chargĂ© du cĂŽtĂ© du rĂ©cepteur. Malheureusement, le NRF24 ne le prend pas en charge et, dans le cadre de l'architecture actuelle de l'appareil, il est impossible de mettre en Ɠuvre une protection. Alors, prenez soin de vos dongles, car le vecteur d'attaque dĂ©crit nĂ©cessite un accĂšs physique Ă  ceux-ci.

Prenez soin de vos dongles : une étude de sécurité des récepteurs de claviers Logitech.

Raccoon Security est une équipe spécialisée d'experts du NTХ «Vulkan» dans le domaine de la sécurité de l'information pratique, de la cryptographie, de l'électronique, de l'ingénierie inverse et de la création de logiciels bas niveau.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster