Recherche technique sur un contournement de Secure Boot UEFI causé par un chargeur PE personnalisé non sécurisé, comprenant une analyse des causes racines, un flux d'exploitation et une preuve de concept pédagogique.
Ce dépôt contient du matériel de recherche lié à CVE-2024-7344, une vulnérabilité de contournement de Secure Boot affectant les systèmes UEFI. Il centralise l'analyse technique de la vulnérabilité, la documentation du flux d'attaque, ainsi que des applications recréées conçues pour reproduire le comportement vulnérable dans des environnements contrôlés. Le dépôt comprend également de la documentation et des ressources de recherche destinées à aider les chercheurs en sécurité à comprendre, étudier et expérimenter les techniques associées à cette vulnérabilité.
CVE-2024-7344 a été initialement découverte et divulguée de manière responsable par l'équipe de recherche ESET, avec le soutien de la divulgation coordonnée de CERT/CC. Références officielles et communautaires :
Ce dépôt comprend une preuve de concept éducative simplifiée qui reproduit la même classe de vulnérabilité que CVE-2024-7344. De plus, une partie de l'implémentation réelle d'origine a été analysée et documentée dans le cadre d'un effort dédié de recherche en sécurité UEFI.
Les chercheurs intéressés par la compréhension de l'origine historique de cette vulnérabilité, du format ALRM d'origine, du chargeur RxPE personnalisé et de l'évolution des produits affectés après la révocation de Microsoft devraient se référer au dépôt compagnon "UEFI-Security-Research-Howyar-SysReturn-NetCopy".
Le binaire UEFI vulnérable x32 d'origine affecté par CVE-2024-7344 est inclus dans ce dépôt.
Le binaire x64 est connu pour être disponible dans une archive hébergée sur VirusTotal. L'accès à cet échantillon nécessite un compte VirusTotal Enterprise, et au moment de la rédaction, nous n'avons pas eu accès pour le télécharger. Pour référence, l'échantillon peut être trouvé à l'URL suivante pour les chercheurs disposant de l'accès approprié :
CVE-2024-7344 est une vulnérabilité de contournement de UEFI Secure Boot causée par une application UEFI tierce signée par Microsoft qui charge et exécute de manière inappropriée des binaires UEFI non signés pendant le processus de démarrage. La vulnérabilité permet aux attaquants d'exécuter du code non fiable avant le chargement du système d'exploitation, brisant ainsi efficacement la chaîne de confiance de UEFI Secure Boot même lorsque Secure Boot est activé.
Contrairement à d'autres vulnérabilités de contournement de Secure Boot basées sur la corruption de mémoire ou la manipulation de NVRAM, CVE-2024-7344 est le résultat d'un défaut logique et de conception. L'application UEFI affectée implémente son propre chargeur PE personnalisé au lieu de s'appuyer sur les services UEFI standard (LoadImage et StartImage), contournant ainsi toute la vérification cryptographique normalement appliquée par Secure Boot.
Étant donné que l'application vulnérable est signée avec le certificat UEFI tiers de Microsoft et est approuvée par défaut sur la plupart des systèmes, l'exploitation se produit à un stade d'exécution hautement privilégié et précoce de la plateforme.
Secure Boot est une fonctionnalité de sécurité essentielle de l'UEFI conçue pour appliquer la chaîne de confiance de la plateforme, du firmware au système d'exploitation. Son objectif principal est d'empêcher l'exécution de composants de démarrage non autorisés ou malveillants, tels que les bootkits, pendant le processus de démarrage.
À un niveau élevé, Secure Boot fonctionne en validant cryptographiquement les exécutables UEFI avant de leur permettre de s'exécuter. Cette validation est effectuée à l'aide de deux bases de données maintenues par le firmware :
Une application UEFI est autorisée à s'exécuter si :
Par défaut, la plupart des systèmes sont livrés avec les certificats suivants approuvés dans db :
L'application vulnérable affectée par CVE-2024-7344 est signée avec le certificat Microsoft Corporation UEFI CA 2011. Étant donné que ce certificat est largement approuvé sur tous les fournisseurs et plateformes, toute vulnérabilité au sein d'une telle application signée a un impact mondial et peut être exploitée sur la majorité des systèmes UEFI.
La vulnérabilité a été découverte par l'équipe de recherche ESET lors de l'analyse des composants UEFI fournis avec plusieurs produits logiciels de récupération en temps réel. La reconnaissance initiale a révélé la présence d'une application UEFI signée par Microsoft nommée reloader.efi, déployée aux côtés d'un fichier de données nommé cloak.dat sur la partition système EFI (ESP).
L'inspection de l'application a montré qu'elle était conçue pour charger et exécuter une charge utile UEFI supplémentaire à partir du disque au démarrage du système. Bien qu'un tel comportement ne soit pas intrinsèquement dangereux, une rétro-ingénierie plus approfondie a révélé que l'application n'utilise pas les services standard de chargement d'images UEFI et n'applique pas la vérification Secure Boot sur la charge utile chargée. Une enquête plus approfondie a confirmé que le même chargeur de démarrage vulnérable était utilisé dans plusieurs produits de différents fournisseurs.
La cause racine de CVE-2024-7344 réside dans l'utilisation d'un chargeur PE personnalisé implémenté dans une application UEFI signée. Plus précisément :
En contournant LoadImage et StartImage, l'application évite complètement la vérification Secure Boot. Par conséquent, tout binaire UEFI non signé peut être exécuté indépendamment de l'état de Secure Boot. Cela représente une violation fondamentale des hypothèses de Secure Boot et est classé comme un défaut de sécurité au niveau de la conception plutôt qu'un bug d'implémentation.
L'exploitation de CVE-2024-7344 ne nécessite pas de corruption de mémoire, de conditions de concurrence ou de primitives d'exploitation complexes. Au lieu de cela, elle repose sur l'abus de la fonctionnalité prévue de l'application vulnérable.
Un flux de travail d'exploitation typique implique :
Pendant le démarrage :
Cela permet le déploiement fiable de bootkits UEFI tels que BlackLotus ou HybridPetya sur des systèmes avec Secure Boot activé.
Le chargeur de démarrage vulnérable a été distribué dans le cadre de plusieurs produits logiciels légitimes de récupération et de sauvegarde, notamment :
Microsoft a atténué CVE-2024-7344 en révoquant les binaires UEFI affectés via les mises à jour dbx de Secure Boot publiées le 14 janvier 2025, de sorte que les systèmes ayant appliqué les dernières révocations UEFI sont protégés contre l'exploitation de cette vulnérabilité.
Vous travaillez sur quelque chose de similaire ? Vous faites des recherches sur la sécurité UEFI, la sécurité du noyau, l'exploitation, ou un autre sujet de sécurité intéressant ? Si vous avez besoin d'aide pour développer un exploit, explorer une technique, ou simplement échanger des idées, n'hésitez pas à me contacter. Je suis toujours ouvert à discuter de recherche, à aider là où je le peux, et à collaborer sur des projets intéressants. N'hésitez pas à me contacter sur LinkedIn.