Historiquement, la plupart des employés utilisent des claviers et des souris sans fil de Logitech. En saisissant à nouveau nos mots de passe, nous, les spécialistes de l'équipe Raccoon Security, nous sommes demandés : est-il difficile de contourner les mécanismes de sécurité des claviers sans fil ? L'étude a révélé des défauts architecturaux et des erreurs logicielles permettant l'accès aux données d'entrée. En dessous de la coupe se trouve ce que nous avons obtenu.
Pourquoi Logitech ?
À notre avis, les périphériques d'entrée Logitech sont parmi les plus performants et les plus pratiques. La plupart des appareils dont nous disposons sont basés sur la solution Logitech
Récepteur dongle avec prise en charge Logitech Unifying
Le clavier peut devenir une source d’informations pour les attaquants. Logitech, compte tenu de la menace possible, a veillé à la sécurité en utilisant l'algorithme de cryptage AES128 dans le canal radio du clavier sans fil. La première pensée qu'un attaquant pourrait avoir dans cette situation est d'intercepter les informations clés lorsqu'elles sont transmises sur un canal radio pendant la procédure de liaison. Après tout, si vous possédez une clé, vous pouvez intercepter les signaux radio du clavier et les décrypter. Cependant, l'utilisateur doit rarement (voire jamais) unifier le clavier, et un hacker disposant d'une radio à balayage devra attendre longtemps. De plus, tout n’est pas si simple avec le processus d’interception lui-même. Dans la dernière étude de juin 2019, l'expert en sécurité Markus Mengs a publié en ligne
Nous parlerons de notre étude de sécurité du dongle Logitech basé sur le SoC NRF24 de Nordic Semiconductor. Commençons peut-être par la chaîne de radio elle-même.
Comment les données « volent » dans une chaîne radio
Pour l'analyse temps-fréquence du signal radio, nous avons utilisé un récepteur SDR basé sur l'appareil Blade-RF en mode analyseur de spectre (vous pouvez également lire à ce sujet
Dispositif SDR Blade-RF
Nous avons également envisagé la possibilité d'enregistrer des quadratures du signal radio à une fréquence intermédiaire, qui pourraient ensuite être analysées à l'aide de techniques de traitement numérique du signal.
Commission d'État sur les fréquences radio de la Fédération de Russie
Spectre de la bande 2,4 GHz
L’environnement d’interférence dans la gamme est assez complexe. Malgré cela, Logitech a pu fournir une réception fiable et stable grâce à l'utilisation du protocole Enhanced ShockBurst dans l'émetteur-récepteur NRF24 en combinaison avec des algorithmes d'adaptation de fréquence.
Les canaux d'une bande sont placés à des positions entières MHz telles que définies dans
Signal radio du clavier en représentation temporelle
Le récepteur utilise le principe de corrélation de réception, le paquet transmis contient donc un préambule et une partie adresse. Aucun codage résistant au bruit n'est utilisé ; le corps des données est crypté avec l'algorithme AES128.
De manière générale, l'interface radio du clavier sans fil Logitech peut être caractérisée comme complètement asynchrone avec multiplexage statistique et adaptation de fréquence. Cela signifie que l'émetteur à clavier change de canal pour transmettre chaque nouveau paquet. Le récepteur ne connaît à l'avance ni l'heure de transmission ni le canal de fréquence, mais seule leur liste est connue. Le récepteur et l'émetteur se rencontrent dans le canal grâce à des algorithmes coordonnés de contournement de fréquence et d'écoute, ainsi qu'à des mécanismes d'accusé de réception Enhanced ShockBurst. Nous n'avons pas vérifié si la liste des chaînes est statique. Son changement est probablement dû à l'algorithme d'adaptation de fréquence. Quelque chose de proche de la méthode de saut de fréquence (réglage pseudo-aléatoire de la fréquence de fonctionnement) peut être observé dans l'utilisation de la ressource fréquentielle de la gamme.
Ainsi, dans des conditions d'incertitude temps-fréquence, pour garantir la réception de tous les signaux du clavier, un attaquant devra surveiller en permanence l'ensemble de la grille de fréquences de 84 positions, ce qui nécessite un temps considérable. Ici, il devient clair pourquoi la vulnérabilité d'extraction de clé USB (CVE-2019-13054)
Un regard sur le problème de l’intérieur
Pour notre étude, nous avons choisi l'un de nos claviers Logitech K330 existants et un dongle Logitech Unifying.
Logitech K330
Jetons un coup d'œil à l'intérieur du clavier. Un élément intéressant à étudier sur la carte est la puce SoC NRF24 de Nordic Semiconductor.
SoC NRF24 sur carte clavier sans fil Logitech K330
Le firmware est situé 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é en open source. Par conséquent, nous avons décidé d'aborder le problème de l'autre côté : étudier le contenu interne du récepteur dongle Logitech.
Le « monde intérieur » du récepteur dongle est assez intéressant. Le dongle est facilement démontable, embarque la version familière NRF24 avec un contrôleur USB intégré et peut être reprogrammé à la fois du côté USB et directement à partir du programmateur.
Dongle Logitech sans boîtier
Puisqu'il existe un mécanisme standard pour mettre à jour le micrologiciel à l'aide
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é avec un câble
Câble pour connecter le dongle Logitech au programmateur ChipProg 48
Pour contrôler 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 ont été connectés au dongle via Logitech Unifying. Il est possible de télécharger un micrologiciel modifié à l'aide du mécanisme de mise à jour standard, car il n'existe aucun mécanisme de protection cryptographique pour le micrologiciel. À des fins de recherche, nous avons utilisé une connexion physique avec le programmeur, car le débogage est ainsi beaucoup plus rapide.
Recherche de micrologiciels et attaque contre les entrées de l'utilisateur
La puce NRF24 est conçue sur la base du cœur de calcul Intel 8051 dans l'architecture traditionnelle de Harvard. Pour le cœur, l'émetteur-récepteur agit comme un périphérique et est placé dans l'espace d'adressage comme un ensemble de registres. La documentation sur les exemples de puces et de codes sources peut être trouvée sur Internet, le démontage du micrologiciel n'est donc pas difficile. Lors de l'ingénierie inverse, nous avons localisé les fonctions permettant de recevoir les données de frappe du canal radio et de les convertir au format HID pour les transmettre à l'hôte via l'interface USB. Le code d'injection était placé dans des adresses mémoire libres, qui comprenaient des outils d'interception de contrôle, de sauvegarde et de restauration du contexte d'exécution d'origine, ainsi que du code fonctionnel.
Le paquet d'appui ou de relâchement d'une touche reçu par le dongle depuis le canal radio est décrypté, converti en un rapport HID standard et envoyé à l'interface USB comme à partir d'un clavier ordinaire. Dans le cadre de l'étude, la partie du rapport HID qui nous intéresse le plus est la partie du rapport HID contenant un octet d'indicateurs modificateurs et un tableau de 6 octets avec des codes de frappe (pour référence, des informations sur HID
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;
Immédiatement avant de transmettre la structure HID à l'hôte, le code injecté prend le contrôle, copie 8 octets de données HID natives en mémoire et les envoie au canal côté radio en texte clair. Dans le code, cela ressemble à ceci :
//~~~~~~~~~ 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 latéral est organisé à une fréquence que nous définissons avec certaines caractéristiques de vitesse de manipulation et de structure des paquets.
Fonctionnement de l'émetteur-récepteur dans la puce
Signal de rafale démodulé dans le canal latéral
Une fois le paquet transmis au canal latéral, le code injecté restaure l'état de l'émetteur-récepteur. Il est désormais à nouveau prêt à fonctionner normalement dans le contexte du firmware d'origine.
Dans les domaines fréquentiel et temps-fréquence, le canal latéral ressemble à ceci :
Représentation spectrale et temps-fréquence du canal latéral
Pour tester le fonctionnement de la puce NRF24 avec un firmware modifié, nous avons assemblé un support comprenant un dongle Logitech avec un firmware modifié, un clavier sans fil et un récepteur assemblés sur la base d'un module chinois avec la puce NRF24.
Circuit d'interception du signal radio du clavier sans fil Logitech
Module basé sur NRF24
Sur le banc, avec le clavier fonctionnant normalement, après l'avoir connecté au dongle Logitech, nous avons observé la transmission de données claires sur les frappes au clavier dans le canal radio latéral et la transmission normale de données cryptées dans l'interface radio principale. Ainsi, nous avons pu assurer une interception directe des saisies au clavier de l'utilisateur :
Le résultat de l'interception de la saisie au clavier
Le code injecté introduit de légers retards dans le fonctionnement du firmware du dongle. Cependant, ils sont trop petits pour que l’utilisateur les remarque.
Comme vous pouvez l'imaginer, n'importe quel clavier Logitech compatible avec la technologie Unifying peut être utilisé pour ce vecteur d'attaque. Étant donné que l’attaque cible le récepteur Unifying inclus avec la plupart des claviers Logitech, elle est indépendante du modèle de clavier spécifique.
Conclusion
Les résultats de l'étude suggèrent l'utilisation possible du scénario envisagé par les attaquants : si un pirate informatique remplace la victime par un récepteur dongle pour un clavier sans fil Logitech, alors il pourra connaître les mots de passe des comptes de la victime avec tous les conséquences. N’oubliez pas qu’il est également possible d’injecter des frappes au clavier, ce qui signifie qu’il n’est pas difficile d’exécuter du code arbitraire sur l’ordinateur de la victime.
Et si soudainement un attaquant pouvait modifier à distance le firmware de n'importe quel dongle Logitech via USB ? Ensuite, à partir de dongles rapprochés, vous pouvez créer un réseau de répéteurs et augmenter la distance de fuite. Bien qu'un attaquant « financièrement riche » soit capable « d'écouter » les entrées du clavier et d'appuyer sur les touches même depuis un bâtiment voisin, des équipements de réception radio modernes dotés de systèmes hautement sélectifs, de récepteurs radio sensibles avec des temps d'accord de fréquence courts et des antennes hautement directionnelles lui permettront pour « écouter » la saisie au clavier et appuyer sur les touches même depuis un bâtiment voisin.
Matériel radio professionnel
Le canal de transmission de données sans fil du clavier Logitech étant assez bien protégé, 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 serait d'utiliser des mécanismes de protection cryptographiques pour le micrologiciel du récepteur, par exemple en vérifiant la signature du micrologiciel chargé côté récepteur. Mais malheureusement, NRF24 ne prend pas en charge cela et il est impossible de mettre en œuvre une protection dans l'architecture actuelle de l'appareil. Prenez donc soin de vos dongles, car l'option d'attaque décrite nécessite un accès physique à ceux-ci.
Raccoon Security est une équipe spéciale d'experts du centre de recherche et de développement Vulcan dans le domaine de la sécurité pratique de l'information, de la cryptographie, de la conception de circuits, de l'ingénierie inverse et de la création de logiciels de bas niveau.
Source: habr.com