Vulnérabilités du firmware UEFI basé sur le framework InsydeH2O, permettant l'exécution de code au niveau SMM

Dans le framework InsydeH2O, utilisé par de nombreux fabricants pour créer un firmware UEFI pour leurs équipements (l'implémentation la plus courante du BIOS UEFI), 23 vulnérabilités ont été identifiées qui permettent d'exécuter du code au niveau SMM (System Management Mode), qui a un priorité plus élevée (Ring -2) que le mode hyperviseur et un anneau de protection nul, et ayant un accès illimité à toute la mémoire. Le problème affecte le micrologiciel UEFI utilisé par des fabricants tels que Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel et Bull Atos.

L'exploitation des vulnérabilités nécessite un accès local avec des droits d'administrateur, ce qui rend ces problèmes populaires en tant que vulnérabilités de deuxième niveau, utilisées après l'exploitation d'autres vulnérabilités du système ou l'utilisation de méthodes d'ingénierie sociale. L'accès au niveau SMM vous permet d'exécuter du code à un niveau non contrôlé par le système d'exploitation, qui peut être utilisé pour modifier le firmware et laisser cachés des codes malveillants ou des rootkits dans le SPI Flash qui ne sont pas détectés par le système d'exploitation, ainsi que pour désactiver la vérification au stade du démarrage (UEFI Secure Boot, Intel BootGuard) et les attaques sur les hyperviseurs pour contourner les mécanismes de vérification de l'intégrité des environnements virtuels.

Vulnérabilités du firmware UEFI basé sur le framework InsydeH2O, permettant l'exécution de code au niveau SMM

L'exploitation des vulnérabilités peut être effectuée à partir du système d'exploitation à l'aide de gestionnaires SMI (System Management Interrupt) non vérifiés, ainsi qu'au stade de pré-exécution du système d'exploitation lors des premières étapes de démarrage ou de retour du mode veille. Toutes les vulnérabilités sont causées par des problèmes de mémoire et sont divisées en trois catégories :

  • SMM Callout - exécution de votre code avec les droits SMM en redirigeant l'exécution des gestionnaires d'interruptions SWSMI vers du code en dehors de SMRAM ;
  • Corruption de mémoire qui permet à un attaquant d'écrire ses données dans la SMRAM, une zone de mémoire isolée spéciale dans laquelle le code est exécuté avec les droits SMM.
  • Corruption de la mémoire dans le code exécuté au niveau DXE (Driver eXecution Environment).

Pour démontrer les principes d'organisation d'une attaque, un exemple d'exploit a été publié, qui permet, via une attaque du troisième ou zéro anneau de protection, d'accéder au DXE Runtime UEFI et d'exécuter votre code. L'exploit manipule un débordement de pile (CVE-2021-42059) dans le pilote UEFI DXE. Lors de l'attaque, l'attaquant peut placer son code dans le pilote DXE, qui reste actif après le redémarrage du système d'exploitation, ou apporter des modifications à la zone NVRAM du SPI Flash. Pendant l'exécution, le code de l'attaquant peut apporter des modifications aux zones de mémoire privilégiées, modifier les services EFI Runtime et affecter le processus de démarrage.

Source: opennet.ru

Ajouter un commentaire