La fonctionnalité est connue sous le nom de Kernel Data Protection, ou KDP pour faire court. Microsoft a fourni une préversion technique de KDP.
KDP est conçu pour bloquer les attaques qui tentent de compromettre les machines Windows en corrompant leur mémoire. Certains programmes malveillants, par exemple, tentent de manipuler la mémoire sur laquelle les pilotes logiciels sont stockés pour installer un pilote malveillant sur l'ordinateur de l'utilisateur. KDP fournit une réponse simple à ces menaces : il rend la mémoire qui stocke les composants Windows clés en lecture seule afin qu'ils ne puissent pas être modifiés.
Sous le capot, KDP s'appuie sur une autre fonctionnalité de niveau inférieur appelée VBS pour protéger les données. VBS utilise les capacités de virtualisation natives de Windows 10 pour boucler certaines parties de la mémoire d'une machine et les transformer en enclaves isolées en « mode sécurisé virtuel ».
Dans un billet de blog, Andrea Allievi, qui fait partie de l’équipe Base Kernel de Microsoft, rappelle que les attaquants, confrontés à des technologies de sécurité qui empêchent la corruption de mémoire, comme Code Integrity (CI) et Control Flow Guard (CFG), sont censés déplacer leurs techniques vers la corruption de données. Les attaquants utilisent des techniques de corruption de données pour cibler la politique de sécurité du système, augmenter les privilèges, falsifier l'attestation de sécurité, modifier les structures de données « initialiser une fois », entre autres.
Elle note que « Kernel Data Protection est une nouvelle technologie qui empêche les attaques de corruption de données en protégeant des parties du noyau et des pilotes Windows via la sécurité basée sur la virtualisation (VBS). KDP est un ensemble d'API qui offrent la possibilité de marquer une partie de la mémoire du noyau en lecture seule, empêchant les attaquants de modifier la mémoire protégée. Par exemple, nous avons vu des attaquants utiliser des pilotes signés, mais vulnérables pour attaquer les structures de données de stratégie et installer un pilote malveillant et non signé. KDP atténue ces attaques en s'assurant que les structures de données de politique ne peuvent pas être falsifiées ».
Le concept de protection de la mémoire du noyau en lecture seule a de précieuses applications pour le noyau Windows, les composants de boîte de réception, les produits de sécurité et même des pilotes tiers tels que les logiciels anti-triche et de gestion des droits numériques (DRM). En plus des importantes applications de sécurité et de protection anti-altération de cette technologie, les autres avantages incluent :
- améliorations des performances : KDP réduit la charge sur les composants d'attestation, qui n'auraient plus besoin de vérifier périodiquement les variables de données qui ont été protégées en écriture
- améliorations de la fiabilité : KDP facilite le diagnostic des bogues de corruption de mémoire qui ne représentent pas nécessairement des failles de sécurité
- inciter les développeurs et les fournisseurs de pilotes à améliorer la compatibilité avec la sécurité basée sur la virtualisation, en améliorant l'adoption de ces technologies dans l'écosystème.
Microsoft assure que KDP utilise des technologies prises en charge par défaut sur les PC Secured-core, qui implémentent un ensemble spécifique d'exigences de périphérique qui appliquent les meilleures pratiques de sécurité d'isolement et de confiance minimale aux technologies qui sous-tendent le système d'exploitation Windows. KDP améliore la sécurité fournie par les fonctionnalités qui composent les PC Secured-core en ajoutant une autre couche de protection pour les données de configuration système sensibles.
Les grandes lignes dans son fonctionnement
Dans les environnements VBS, le noyau NT normal s'exécute dans un environnement virtualisé appelé VTL0, tandis que le noyau sécurisé s'exécute dans un environnement plus sécurisé et isolé appelé VTL1. KDP est destiné à protéger les pilotes et logiciels exécutés dans le noyau Windows (c'est-à-dire le code du système d'exploitation lui-même) contre les attaques basées sur les données. Il est implémenté en deux parties:
- Static KDP, qui permet aux logiciels fonctionnant en mode kernel de protéger statiquement une section de sa propre image contre toute altération de toute autre entité dans VTL0.
- Dynamic KDP, qui aide un logiciel en mode kernel à allouer et libérer de la mémoire en lecture seule à partir d'un «pool sécurisé». La mémoire renvoyée par le pool ne peut être initialisée qu'une seule fois.
La mémoire gérée par KDP est toujours vérifiée par le noyau sécurisé (VTL1) et protégée à l'aide de tables de traduction d'adresses de deuxième niveau (SLAT) par l'hyperviseur. Par conséquent, aucun logiciel fonctionnant dans le noyau NT (VTL0) ne pourra jamais modifier le contenu de la mémoire protégée.
KDP dynamique et statique sont déjà disponibles dans la dernière version de Windows 10 Insider et fonctionnent avec tout type de mémoire, à l'exception des pages exécutables. La protection des pages exécutables est déjà assurée par hypervisor-protected code integrity (HVCI), qui empêche toute mémoire non signée d'être jamais exécutable, accordant la condition W ^ X (une page qui est soit accessible en écriture ou exécutable, mais jamais les deux).
Microsoft permettra aux développeurs d'interagir avec KDP via un ensemble d'interfaces de programmation d'applications. En plus de rendre Windows lui-même plus sûr, la société estime que la technologie pourrait avoir des applications utiles pour des partenaires tels que les fabricants de logiciels de cybersécurité.
Une autre application potentielle serait d’aider les développeurs à trouver des problèmes dans leur logiciel : « KDP facilite le diagnostic des bogues de corruption de mémoire qui ne représentent pas nécessairement des failles de sécurité », explique l’entreprise.
KDP est disponible pour les développeurs qui voudraient effectuer des tests bêta dans la Preview Windows 10 Insider Build. L'exécution de la technologie nécessite que la machine de l'utilisateur prenne en charge la virtualisation VBS, ainsi que deux autres fonctionnalités appelées extensions de traduction d'adresse et de virtualisation de deuxième niveau. Ces fonctionnalités sont entre autres activées sur les ordinateurs portables haut de gamme inclus dans l'initiative Microsoft Secured-Core PC.
Les plans à long terme de Microsoft pour rendre Windows plus sûr impliquent des changements techniques encore plus importants. Windows 10X, un module du système d'exploitation qui a été pensé à l’origine pour des dispositifs à deux écrans, exigerait que toutes les applications s'exécutent dans des conteneurs isolés pour offrir une meilleure protection contre les cyberattaques.
Source : Microsoft