Le durcissement de chaque poste de travail est primordial. Bien souvent, une élévation de privilège se réalise grâce aux traces (Empreintes NTLM, Ticket Kerberos) laissées sur un poste client. Cependant, il apparait que bien des antivirus sont inefficaces de nos jours, mis à part les rares faisant du comportemental. Les entreprises n’ont bien souvent pas les moyens de mettre en place une sécurité digne de ce nom.
La bonne nouvelle est que Microsoft a lancé il y a quelques années le principe de Virtualisation Basé sur la Sécurité (VBS) qui change considérablement la donne pour les défenseurs. En effet, en activant le Secure Boot, Device Guard et Credential Guard sur un poste Windows 10 Entreprise, la surface d’attaque se trouve considérablement réduite pour le simple coût d’une licence Microsoft. Explication :

Fonctionnement de la VBS :

Le fonctionnement de Device Guard, bien que derrière ce terme assez générique se cache beaucoup de choses, est le suivant : Notre machine va se transformer en hyperviseur et créer une seconde VM (le Virtual Secure Mode) en isolant le LSA, de sorte que même si un attaquant devient NT AutoritySystem, il ne puisse pas avoir accès aux secrets contenus dans le LSASS (hash NTLM, ticket Kerberos…). Nous réalisons par la suite un scan de notre machine pour n’autoriser expressément que les fichiers que l’on aura scanné dans le disque C, ou sur une base de Whitelist/Blacklist de notre choix.
Voyons d’un peu plus près les différences entre ces trois fonctionnalités :

  1. Le Secure Boot repose sur une infrastructure de gestion de clés (IGC) pour vérifier l’intégrité et l’authenticité des composants logiciels avant d’en autoriser l’exécution. De plus, le SB s’assure qu’aucun périphérique ne démarre à l’aide d’un logiciel tiers autre que ceux approuvés par le fabricant OEM (Original Equipment Manufacturer, fabricant d’origine).
  2. Device Guard est un groupe de fonctionnalités clés conçu pour renforcer le système informatique contre les logiciels malveillants. Son objectif est d’empêcher l’exécution de code malveillant en s’assurant que seul un code valide connu puisse être exécuté.
  3. Credential Guard est une fonctionnalité spécifique qui ne fait pas partie de Device Guard et qui vise à isoler et renforcer les secrets des systèmes clés et des utilisateurs contre toute compromission, contribuant ainsi à réduire l’impact et la portée d’une attaque de type Pass the Hash dans le cas où un code malveillant est déjà en cours d’exécution via un vecteur local ou basé sur un réseau.

Les trois sont certes différents mais complémentaires car ils offrent différentes protections contre différents types de menaces. Les deux derniers s’appuient sur le VSM, un environnement virtualisé permettant de cloisonner dans une VM spécifique les processus critiques pour la sécurité. La VBS quant à elle désigne plus généralement l’ensemble des fonctionnalités de sécurité basée sur la virtualisation.

Principe du VSM

Le but étant de transformer sa machine physique en un hyperviseur contenant deux VM avec leur propre no au et isolé l’une de l’autre. Cette isolation se fait notamment grâce au Second Level Address Translation (SLAT). Cette dernière est une technique qui repose sur le support matériel de la virtualisation pour traduire les adresses physiques telles que vues par les systèmes invités en adresses physiques vues par le système hôte.

Le VSM comprend donc deux VM :

Les processus s’exécutant sur l’IUM (Appelés Trustlets) sont uniquement édités par Microsoft et font parties intégrantes de l’OS. Elles sont protégées par une signature numérique, à l’aide du certificat comme le Extended Key Usage (EKU).
Cette extension, définie dans la RFC 5280, indique une ou plusieurs finalités pour lesquelles la clé publique certifié peut être utilisée, en plus ou à la place de la base fins indiquées dans l’extension d’utilisation des clés.
Le VSM se trouve ainsi allégé au maximum et voit ainsi sa surface d’attaque réduite au maximum.
Voici les trois grands types de Trustlets contenues dans le IUM :

Principe du VBS

La sécurité basée sur la virtualisation de Microsoft utilise la virtualisation matérielle et logicielle afin d’améliorer la sécurité système en créant un sous-système spécialisé restreint par l’hyperviseur et isolé.
Nous allons à présent étudier les deux grands ensembles du VBS, Device Guard (Comprenant HVCI & WDAC) & Credential Guard. Device Guard se concentre sur l’intégrité et la sécurité du code exécuté sur le système, tandis que Credential Guard protège les informations d’identification sensibles stockées et utilisées par le système d’exploitation. Ces deux ensembles de fonctionnalités, combinés avec les autres mécanismes de sécurité de Windows 10, offrent une protection robuste contre les menaces et les attaques ciblant les systèmes d’exploitation modernes.

Principe du VBS

La sécurité basée sur la virtualisation de Microsoft utilise la virtualisation matérielle et logicielle afin d’améliorer la sécurité système en créant un sous-système spécialisé restreint par l’hyperviseur et isolé.
Nous allons à présent étudier les deux grands ensembles du VBS, Device Guard (Comprenant HVCI & WDAC) & Credential Guard.

DEVICE GUARD

Dans une configuration DG, nous pouvons utiliser WDAC pour autoriser, sur les appareils, uniquement celles contenues dans une liste blanche définie au préalable ou issues du Store Microsoft. De plus, nous pouvons renforcer simultanément l’OS contre les attaques de mémoire noyau par le biais d’une protection d’intégrité du code basée sur la virtualisation (HVCI). Bien que pouvant être utilisées séparément, il est recommandé de faire fonctionner ces deux technologies en parallèles pour une protection optimale.
Dans cette partie nous allons nous concentrer sur HVCI puis WDAC.

Voici un schéma récapitulatif des fonctionnalités de DG :

  1. Le CCI ou WDAC garanti que seul le code peut être exécuté à partir du chargeur de démarrage.
  2. L’HVCI déplace les composants du KMCI et de l’HVCI dans le VSM, les protégeant ainsi des attaques.
  3. Le SB s’assure que les fichiers binaires de démarrage et l’UEFI soient bien signés et non falsifiés.

Lorsque ces fonctionnalités sont activées ensemble, le système est protégé par Device Guard, offrant une bonne résistance face aux programmes malveillants dans Windows 10. On constate ainsi que même en étant administrateur, on ne pourra exécuter aucun programme n’étant pas renseigné dans notre liste blanche.

Credential GUARD

Bien que distincte de Device Guard, la fonctionnalité Credential Guard exploite également le mode sécurisé virtuel en plaçant une version isolée de l’autorité de sécurité locale (LSA) sous sa protection.

  1. Le LSA effectue un certain nombre d’opération lié à la sécurité, la principale étant le stockage et la gestion des informations d’identité utilisateur et système. Au sein d’une VSM, il devient LSAIso.
  2. Le Secure Boot, vu précédemment est aussi nécessaire pour le bon fonctionnement de CG.

Credential Guard est activé en configurant VSM et en configurant le paramètre de stratégie de groupe de sécurité basé sur la virtualisation avec Credential Guard configuré pour être activé.
In fine, CG protège le LSA. Ce dernier (Local Security Authority Subsystem) est un processus système qui stock en mémoire les secrets d’authentification. Un outil comme Mimikatz permet à un attaquant de devenir NT Authority SYSTEM et de demander le privilège SeDebugPrivilege. Le principe est que ça permet à l’utilisateur de déboguer un processus auquel il n’aurait normalement pas accès, en l’occurrence LSASS. Ensuite, notre attaquant récupère des informations précieuses permettant son élévation de privilèges.
Voici ci-dessous un schéma récapitulatif du Credential Guard :
Le LSA sera donc isolé, de tel sorte
que même un administrateur local n’aura pas accès aux données en cache. Le LSASS et le LSAIso communiquent via l’hyperviseur au moyen de RPC/hypercall. Ainsi, le LSAIso donnera à l’utilisateur que le résultat de ses opérations : le TGS pour Kerberos et la solution du défi/réponse pour NTLM.
En protégeant notre LSA via DG, on se prémunit de nombreuses attaques d’élévation de privilèges. En effet, il est impossible pour un attaquant de toucher au LSAIso.

VBS vs MITTRE ATT&CK

A présent, voyons sur le MITTRE ATT&CK les attaques qui sont difficiles voire impossibles avec la VBS activée dans son ensemble :
On constate beaucoup de bleu pour 2 simples GPO en plus d’une licence Microsoft et quelques compétences techniques. Cependant, Device Guard peut être très contraignant pour un utilisateur mais peut utilement être déployé pour les DC. En revanche, Credential Guard est très utile pour les postes de travail : à la fois transparent au niveau utilisateur et protégeant efficacement le LSA.
En résumé, la sécurité basée sur la virtualisation (VBS) est un ensemble de technologies de Microsoft qui améliore la sécurité du système en utilisant la virtualisation matérielle et logicielle. Les deux principaux éléments de VBS sont Device Guard (HVCI et WDAC) et Credential Guard. Ensemble, ces technologies offrent une protection solide contre les programmes malveillants et les attaques d’élévation de privilèges dans Windows 10.

Bibliographie

  1. Microsoft. (2021). Virtualization-based security (VBS). Retrieved from https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard
  2. Microsoft. (2021). Device Guard. Retrieved from https://docs.microsoft.com/en-us/windows/security/threat-protection/device-guard/device-guard-introduction
  3. Microsoft. (2021). Secure Boot. Retrieved from https://docs.microsoft.com/en-us/windows/security/information-protection/secure-boot/secure-boot
  4. MITRE. (2021). MITRE ATT&CK®: An Adversary Behavior Model for the Enterprise. Retrieved from https://attack.mitre.org/
  5. Mimikatz. (2021). Mimikatz: A little tool to play with Windows security. Retrieved from https://github.com/gentilkiwi/mimikatz