| audit
Retour sur un pentest hardware réussi
Dans un paysage numérique en constante évolution, réaliser un pentest hardware est essentiel pour garantir la sécurité de ses systèmes. Louis Distel et Samuel Marrazzo ont récemment mené une telle mission, évaluant la résilience des dispositifs matériels de l’entreprise et ainsi lui fournissant des recommandations afin d’augmenter son niveau de sécurité.
L’une de vos missions de pentest matériel fut réalisée au mois de juin 2024. Pouvez-vous nous expliquer le contexte de cette mission ? Quel était l’objectif principal ?
Le client a souhaité auditer la robustesse de son poste de travail sécurisé. Le scénario était alors le suivant : un attaquant parvient à subtiliser le poste de travail de l’entreprise cliente, quelles sont les vulnérabilités exploitables qui puissent en compromettre l’intégrité ?
Deux modèles d’attaquants sont possibles, chacun audités par Synetis :
- En boîte grise : ce modèle d’attaquant possède les identifiants nécessaires afin d’ouvrir une session sur le poste de travail, tel que le serait un utilisateur ou un employé malveillant (ou récupère le poste avec une session non verrouillée). Ceci implique tous les mécanismes de sécurité tels que des mots de passe, des codes pins ainsi que l’authentification multi facteurs. L’objectif est de vérifier s’il est possible d’élever ses privilèges depuis cette session en exploitant différentes vulnérabilités logicielles, afin d’accéder à des informations protégées et / ou compromettre le réseau du client.
- En boîte noire : ce modèle d’attaquant ne possède aucune information, ni sur le poste ni sur les informations d’authentification, tel que le serait un poste de travail volé (éteint ou en veille). Le risque logiciel se heurtant au mur de l’authentification, un attaquant privilégiera des attaques matérielles. Aucune compromission préalable n’est requise, tel qu’un phishing, un vishing ou toute autre «porte d’entrée» au système. L’objectif est sensiblement le même qu’en boîte grise, à ceci près que la moindre information extraite peut représenter un risque.
L’approche en boîte noire nous a permis d’exploiter des vulnérabilités matérielles, accédant ainsi à un niveau de contrôle complet sur la machine ciblée par le biais d’une attaque par Direct Memory Access (DMA).
En obtenant les droits d’administrateur système sur le poste, il était alors possible d’extraire toutes ses données ou encore de désactiver les produits de sécurité présents (EDR et Antivirus).
Lors des deux semaines de réalisation de l’audit, une seule semaine a été nécessaire à l’audit matériel pour prendre le contrôle du poste, démontrant ainsi sa vulnérabilité. Le poste de travail a été retourné au client fonctionnel après celui-ci.
Comment avez-vous structuré l’approche pour ce pentest ? Quelles étapes ont été suivies ?
Cet audit a été commencé par une analyse matérielle du poste dès que nous étions en possession de ce dernier. Nous avons alors recherché les composants de sécurité présents, leur configuration par défaut, ainsi que les potentielles vulnérabilités connues ou exploitations déjà réalisées. En l’occurrence, ce poste de travail ne souffrait d’aucune vulnérabilité matérielle documentée. Aussi, des recherches en sources ouvertes n’ont pas permis de trouver de ressources utiles, tel qu’un logiciel embarqué de BIOS sans mot de passe par exemple. Cette étape n’a pas révélé de vecteur de vulnérabilité pertinent.
La seconde étape fut naturellement de tenter des attaques non destructrices sur le poste afin d’analyser son comportement et y trouver des brèches. La mémoire vive soudée et chiffrée (type DDR4) prévenait le poste contre des attaques par « cold boot » (Refroidissement de la Ram). Nous avons donc tenté des attaques DMA par plusieurs ports différents :
- Thunderbolt (port externe au format USB-C)
- Port wifi additionnel (port interne PCI-e au format M2 key B)
- Port wifi (port interne PCI-e au format M2 key E)
- Port SSD (port interne PCI-e au format M2 key M)
Dans un premier temps, nous avons tenté l’attaque via le port thunderbolt. En effet les ports thunderbolt en version 1,2 et 3 sont vulnérables à l’attaque DMA.
Bien que le poste fourni soit équipé de ports thunderbolt en version 4 (aussi appelé USB4), nous avons tout de même tenté l’attaque, sans succès.
Nous avons ensuite démonté le poste (retrait du capot arrière dans un premier temps) en prenant soin de bloquer les boutons de détections d’ouverture sur la carte mère. Nous avons ensuite mené une attaque DMA sur chacun des ports pci-e identifiés. Toutes les tentatives ayant échoué, nous en avons donc déduit qu’une protection contre l’attaque DMA était activée dans le BIOS (EFI) du poste.
Or l’accès au BIOS étant protégé par un mot de passe (non brute-forçable), il nous était impossible de désactiver les protections. Nous avons alors entrepris de faire sauter les mot de passe dans le BIOS. Pour cela nous avons retiré physiquement la puce du bios et une autre puce appelée Embedded Controller (EC), les deux puces ont été retirées à l’aide d’une station d’air chaud et ont été ensuite installées sur des adaptateurs afin de les analyser (analyse à froid). Pour cela nous avons intégralement démonter le poste et extraire la carte mère.
Enfin, la rétro-ingénierie du programme contenu dans le BIOS et l’EC nous à permis d’identifier le bloc à supprimer dans la mémoire afin de faire sauter le mots de passe.
Nous avons ensuite réinstaller les puces dans le poste, cependant en y apportant des modifications afin de nous aider dans notre analyse. Nous n’avons pas directement ressouder les puces sur leur emplacement réceptif, mais nous avons installé des extensions (câbles avec un connecteur ) afin de pouvoir enlever et remettre facilement les puces sans avoir à dessouder / ressouder. Cela nous a permis de préserver le matériel. Lors de nos manipulations, nous avons malencontreusement grillé une des puces. Cependant, nous avons pu prélever la puce sur un autre ordinateur portable d’une autre marque (les puces de BIOS et EC sont assez standard) et y écrire le programme que l’on avait sauvegardé.
Par la suite, nous avons remonté l’ordinateur après une petite modification de la coque pour y faire passer l’extension. Le poste était toujours parfaitement fonctionnel et le mot de passe du BIOS avait sauté. Nous avons alors pu désactiver les protections contre l’attaque DMA et retenter l’attaque sur les différents ports internes.
C’est alors que nous avons réussi à mener l’attaque DMA nous permettant d’interagir directement avec la mémoire RAM, et d’y injecter un module nous permettant d’obtenir des droits Administrateur alors que le système était encore sur l’écran d’authentification.
Notre petite fierté est d’avoir rendu un poste parfaitement fonctionnel au client.
Quelles vulnérabilités avez-vous découvertes ? Certaines étaient-elles inattendues ?
Nous ne pouvons pas vraiment parler de vulnérabilités. En effet, toutes les protections étaient en place pour empêcher des attaques de ce type. Il faudrait plutôt parler de problème de conception, car la puce utilisée pour le BIOS et l’EC ne possède pas de fonctionnalité de test d’intégrité comme cela peut être le cas sur d’autres postes. En l’absence de de vérification d’intégrité, il est possible de modifier les données de la puce et de faire sauter le mot de passe. Sans retrait du mot de passe, il nous aurait été impossible de mener à bien nôtre attaque.
De plus, bien que le poste utilisateur était chiffré, au démarrage les clés de déchiffrement (stockées dans un module sécurisé TMP) étaient automatiquement chargées en mémoire sans avoir besoin de saisir quelconque mot de passe. Cela nous a permis de démarrer complètement le poste et d’y injecter notre module en mémoire, et donc de compromettre intégralement le poste.
En quoi cette mission a-t-elle permis d’améliorer la sécurité globale de l’infrastructure ou des produits de votre client ?
Cette mission n’a pas permis d’aider le client à améliorer la sécurité de son poste, car le problème majeur est un problème de conception hardware. Cependant à présent, le client à connaissance de ce risque et peut adapter sa politique de sécurité en fonction.
Par exemple, utiliser des postes utilisateur spécifiques et sécurisés pour les VIP ou ajouter une authentification pour le déchiffrement du disque.
Quelles leçons avez-vous tirées de ce pentest que vous pourriez appliquer à vos futures missions ?
Nous avons surtout amélioré la technique, par exemple le concept d’extension à été créé lors de cette mission, cela nous a aussi permis d’améliorer le processus d’audit Hardware, en modifiant l’ordre de certaine action.
Nous avons aussi pu identifier des subtilités concernant l’utilisation de certains outils.
Camille Jean-Baptiste
Chargée de Communication