Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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 Unificateur est un récepteur dongle universel qui vous permet de connecter jusqu'à 6 appareils. Tous les appareils compatibles avec la technologie Logitech Unifying portent le logo de la technologie Logitech Unifying. Facile à utiliser приложение Permet de gérer la connexion des claviers sans fil à votre ordinateur. Le processus de connexion du clavier au dongle du récepteur Logitech, ainsi que la technologie elle-même, sont abordés, par exemple, ici.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier 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 сообщение à propos de la découverte d'une vulnérabilité dans l'ancien firmware des dongles USB Logitech. Il permet aux attaquants ayant un accès physique aux appareils d'obtenir des clés de chiffrement de canal radio et d'injecter des frappes au clavier (CVE-2019-13054).

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 ici).

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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 autorisé pour une utilisation par des appareils à courte portée, la plage de fréquences est de 2400 2483,5 à XNUMX XNUMX MHz. Il s’agit d’une gamme très « peuplée », dans laquelle vous ne trouverez rien : Wi-Fi, Bluetooth, télécommandes en tout genre, systèmes de sécurité, détecteurs sans fil, souris avec claviers et autres appareils numériques sans fil.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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 spécifications 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 entendu moindre. Nous avons identifié l’utilisation d’au moins quatre. En raison de la bande passante limitée de l’analyseur de spectre de signaux utilisé, la liste exacte des positions de fréquence utilisées n’a pas pu être déterminée, mais cela n’était pas nécessaire. Les informations du clavier vers le dongle du récepteur sont transmises en mode Burst (allumages courts de l'émetteur) en utilisant une modulation de fréquence GFSK à deux positions à un débit de symboles de 1 Mbaud :

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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) dans les sources positionné comme la possibilité d'injecter des frappes au clavier, plutôt que d'obtenir l'accès d'un attaquant aux données saisies à partir du clavier. Évidemment, l'interface radio du clavier sans fil est assez complexe et permet une communication radio fiable entre les appareils Logitech dans des conditions d'interférences difficiles dans la bande des 2,4 GHz.

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

Dongle Logitech sans boîtier

Puisqu'il existe un mécanisme standard pour mettre à jour le micrologiciel à l'aide Applications de l'outil de mise à jour du micrologiciel (à partir duquel vous pouvez extraire la version mise à jour du firmware), il n'est pas nécessaire de rechercher 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é avec un câble au programmeur ChipProg-48:

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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

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 NRF24 est basé sur un graphe d’état dans lequel le protocole Enhanced ShockBurst est organiquement intégré. Nous avons constaté qu'immédiatement avant de transmettre les données HID à l'interface USB hôte, l'émetteur-récepteur était à l'état IDLE. Cela permet de le reconfigurer en toute sécurité pour fonctionner dans un canal latéral. Le code injecté intercepte le contrôle, préserve entièrement la configuration originale de l'émetteur-récepteur et le fait passer à un nouveau mode de transmission sur le canal latéral. Le mécanisme de confirmation Enhanced ShockBurst est désactivé dans ce mode ; les données HID sont transmises en clair par voie hertzienne. La structure du paquet dans le canal latéral est représentée dans la figure ci-dessous, les diagrammes de signaux ont été obtenus après démodulation et avant la restauration de la synchronisation de l'horloge des données. La valeur de l'adresse a été choisie pour faciliter l'identification visuelle du colis.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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 :

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

Circuit d'interception du signal radio du clavier sans fil Logitech

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier 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 :

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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.

Prenez soin de vos dongles : étude de sécurité du récepteur de clavier Logitech

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

Ajouter un commentaire