Présentation de la table d’atténuation de la sécurité SMM Windows (WSMT)

La table d’atténuation de la sécurité Windows SMM (WSMT) est une table ACPI définie par Microsoft qui permet au microprogramme système de confirmer au système d’exploitation que certaines bonnes pratiques de sécurité ont été implémentées dans le logiciel SMM (System Management Mode). La définition de table WSMT est décrite dans la spécification WMST (Windows SMM Security Mitigations Table).

Arrière-plan

WSMT a été défini pour mieux prendre en charge les fonctionnalités de sécurité windows basées sur la virtualisation. Reportez-vous à Sécurité basée sur la virtualisation (VBS) pour plus d’informations sur VBS. Étant donné que SMM fonctionne à l’insu ou au contrôle du système d’exploitation, SMM représente une surface d’attaque importante qui peut être exploitée par du code malveillant pour compromettre ou contourner les protections du système d’exploitation activées via VBS. La fourniture d’une plateforme VBS robuste et sécurisée nécessite un examen minutieux et des mises à jour probables du code SMM par l’OEM pour éliminer les vulnérabilités courantes qui peuvent être exploitées. Le WSMT contient des indicateurs que le microprogramme peut définir pour indiquer au système d’exploitation les meilleures pratiques de sécurité qui ont été implémentées.

Implications de WSMT sur la prise en charge de VBS Windows

Le champ Indicateurs de protection WSMT indique la présence de ces atténuations de sécurité SMM spécifiques dans le microprogramme des systèmes. Les versions prises en charge du système d’exploitation Windows lisent les indicateurs de protection WSMT au début de l’initialisation, avant le lancement de l’hyperviseur et de VBS, et peuvent choisir d’activer, de désactiver ou de déprotéguer certaines fonctionnalités de sécurité en fonction de la présence de ces indicateurs de protection SMM.

Remarques relatives à l’implémentation

L’implémentation correcte des atténuations de sécurité représentées par les indicateurs de protection WSMT FIXED_COMM_BUFFERS et COMM_BUFFER_NESTED_PTR_PROTECTION nécessite que le fournisseur de microprogrammes évalue soigneusement et éventuellement reconcevoir les gestionnaires d’interruption de gestion du système (SMI). Tous les gestionnaires SMI doivent être limités à l’accès (en lecture ou en écriture) aux régions de mémoire autorisées qui contiennent de la mémoire allouée par MMIO et EFI. Il ne suffit pas de case activée que les pointeurs dans SMM ne référencent pas entièrement la mémoire en dehors de SMM. Au lieu de cela, tous les pointeurs SMM doivent être validés pour se trouver dans ces régions de mémoire sécurisées. Cela empêche SMM d’être exploité dans une attaque « deputy confus », qui pourrait ensuite être exploitée pour compromettre les fonctionnalités de Windows VBS. Les indicateurs de protection mentionnés ci-dessus font uniquement référence à la validation d’entrée et aux vérifications de pointeur, et ne nécessitent PAS actuellement d’application via les protections de page SMM. Par exemple, SMM ne doit pas lire ou écrire en mémoire qui a été décrite par le microprogramme comme EfiConventionalMemory, car il peut contenir des secrets ou provoquer un comportement imprévisible du logiciel.

Validation des protections WSMT

Étant donné que SMM est opaque pour le système d’exploitation, il n’est pas possible de produire un test qui s’exécute dans Windows pour vérifier que les protections prescrites dans la spécification WSMT sont réellement implémentées dans SMM. À partir du système d’exploitation, la seule case activée possible est de rechercher la présence du WSMT et de case activée l’état de tous les indicateurs de protection définis.

Par conséquent, il est de la responsabilité de l’OEM d’examiner attentivement le code SMM de chaque système et de s’assurer que le microprogramme est conforme aux instructions décrites dans la spécification WSMT et dans cet article. Aucun indicateur de protection ne doit être défini sur « true » tant que l’OEM n’a pas confirmé que les atténuations correspondant à chaque valeur d’indicateur de protection ont été correctement implémentées. Si vous ne respectez pas cette bonne pratique, la plateforme est vulnérable à la compromission et annule l’efficacité de plusieurs protections du système d’exploitation et des fonctionnalités de sécurité Windows qui s’appuient sur VBS pour maintenir des limites de sécurité robustes.

Versions de Windows prises en charge

La prise en charge de WSMT est incluse dans les versions suivantes de Windows :

  • Windows Server Technical Preview 2016
  • Windows 10, version 1607
  • Windows 10 version 1703
  • Windows 10, version 1709