En simulant des périphériques Thunderbolt, il est possible d’accéder à des zones de mémoire protégées. Dans certains cas, cette attaque, baptisée Thunderclap, permet de lire le trafic réseau chiffré et exécuter du code arbitraire avec les privilèges administrateur.
Si vous avez un port Thunderbolt sur votre ordinateur, vous avez peut-être un problème. Un groupe de chercheurs vient de publier une étude qui montre que ces interfaces, de plus en plus populaires, peuvent donner accès à la mémoire vive de l’ordinateur. Baptisées « Thunderclap », ces vulnérabilités « permettent à un attaquant disposant d’un accès physique à un port Thunderbolt de compromettre une machine ciblée en l’espace de quelques secondes, d’exécuter du code arbitraire au plus haut niveau de privilège et, potentiellement, d’accéder à des mots de passe, des identifiants bancaires, des clés de chiffrement, des fichiers confidentiels, des données de navigation et autres données ». Tous les systèmes sont impactés, dont Windows, macOS, Linux et FreeBSD. Bref, c’est du lourd.
Les attaques Thunderclap s’appuient sur le fait que les périphériques, tels que les cartes réseau ou les cartes graphiques, avaient historiquement un accès total à la mémoire de l’ordinateur, dans un souci de performance (DMA, Direct Memory Access). Des périphériques vérolés pouvaient donc, en toute tranquillité, accéder aux parties intimes du système. Par la suite, les fournisseurs ont adopté un dispositif de protection appelé Input-Output Memory Management Unit (IOMMU) qui permet de limiter l’accès à la mémoire.
Mais il s’avère que cette protection n’est pas toujours présente. Microsoft, par exemple, n’a commencé à l’activer au départ que pour Windows 10 Enterprise. Pour toutes les autres versions de Windows, l’accès mémoire était open bar pour tous les périphériques Thunderbolt. A la suite du travail des chercheurs, tous les ordinateurs livrés avec Windows 10 April 2018 (version 1803) disposent désormais de l’IOMMU. A noter qu’une mise à jour vers Windows 10 v1803 n’est pas suffisante : il faut également que le constructeur mette à jour son firmware. De plus, pour que le dispositif soit réellement opérant, il faut que les fabricants des périphériques mettent à jour leurs drivers. Ce qui n’est certainement pas encore le cas pour tous.
De toute façon, activer l’IOMMU ne résout pas vraiment le problème, car cette protection n’est pas assez efficace. Pour le démontrer, les chercheurs ont créé une plate-forme matérielle sur une carte programmable FPGA capable de simuler à la perfection différents périphériques, ce qui leur a permis d’explorer les différentes interactions entre un périphérique, ses drivers, la mémoire vive et les processus applicatifs. « Les résultats sont catastrophiques, révélant des vulnérabilités endémiques en présence d’un attaquant plus sophistiqué, en dépit de l’utilisation explicite de l’IOMMU », écrivent les chercheurs dans leur article.
Sur macOS, qui dispose de la protection IOMMU, les chercheurs ont simulé une carte réseau et ont réussi, par exemple, à accéder aux données en clair d’un trafic VPN. Ils ont également réussi à obtenir un « root shell », c’est-à-dire à exécuter n’importe quel code avec les privilèges administrateur. Cette dernière faille a depuis été colmatée, à partir de la version 10.12.4. Mais il est toujours possible, sur n’importe quel Mac, d’accéder aux données de trafic. Il serait également possible d’accéder aux frappes de clavier et à des données d’affichage, via le framebuffer.
Sur Linux, les chercheurs ont également réussi à lire du trafic VPN. Ils ont par ailleurs réussi à court-circuiter totalement l’IOMMU en modifiant des paramètres au niveau de la couche de communication PCI Express. Ce qui leur a permis d’accéder à la totalité des données en mémoire. Ce hack ne fonctionne que sur des machines qui supportent l’option « Address Translation Services » de PCI Express. Les chercheurs ont pu le vérifier aussi bien sur des portables que des serveurs, fonctionnant sous Ubuntu, RHEL et Fedora. La bonne nouvelle, c’est qu’Intel a développé des patchs qui devraient empêcher ce court-circuitage. Ils seront intégrés dans la version 5 du kernel Linux, qui doit arriver bientôt.
D’autres attaques sont probablement possibles. Tout dépend de la manière dont les drivers interagissent avec les processus. Cette recherche est donc loin d’être terminée. A terme, ce risque devrait augmenter à mesure que l’USB Type C, qui souvent intègre le Thunderbolt, se généralisera. Pour se protéger, les utilisateurs peuvent essayer de désactiver les interfaces Thunderbolt au niveau du firmware (BIOS/UEFI), mais ce n’est pas forcément très pratique. En tous les cas, il est recommandé de ne pas laisser traîner son ordinateur dans un lieu public et d’éviter les bornes de recharge publiques qui utilisent l’USB Type C.
Source : Thunderclap