Qu’est-ce que Zerologon ?

Zerologon est une vulnérabilité dans la cryptographie du processus Netlogon de Microsoft qui permet une attaque contre les contrôleurs de domaine Microsoft Active Directory. Zerologon permet à un pirate de se faire passer pour n’importe quel ordinateur, y compris le contrôleur de domaine racine.

Zerologon

Zerologon est le nom donné à une vulnérabilité identifiée dans CVE-2020-1472. Elle provient d'une faille dans le processus d'ouverture de session : Le vecteur d'initialisation (IV) est toujours défini sur tous les zéros, alors qu'un IV devrait toujours être un nombre aléatoire.

La gravité de cette dangereuse vulnérabilité a été notée 10 sur 10 (CVSS v3.1) par le Common Vulnerability Scoring System (CVSS). Il existe des exploits de preuve de concept (POC) actifs connus. Il est très probable que nous assistions bientôt à des attaques dans le monde réel.

La Cybersecurity and Infrastructure Security Agency a émis une directive d’urgence, ordonnant aux agences fédérales civiles de créer immédiatement un correctif ou de désactiver tous les serveurs Windows affectés, et a indiqué aux organisations non gouvernementales d’en faire de même. Microsoft a publié un premier correctif en août 2020, qui doit être appliqué à tous les contrôleurs de domaine.

Cette vulnérabilité exploite une faille cryptographique dans le protocole MS-NRPC (Active Directory Netlogon Remote Protocol) de Microsoft. Elle permet aux utilisateurs de se connecter à des serveurs qui utilisent NT LAN Manager (NTLM). 

Le principal problème avec cette vulnérabilité est que le MS-NRPC est également utilisé pour transmettre certaines modifications de compte, comme les mots de passe de compte de service informatique. En repensant à son origine, il est possible de voir la raison d'être de l'ajout de cette fonctionnalité. Toutefois, l'absence de validation de la source de la demande de modification de ces mots de passe est devenue un problème de sécurité important.

Il y a pire encore. Le chiffrement qui a été ajouté au MS-NRPC n’a pas été choisi judicieusement. En 1883, Auguste Kerckhoffs, cryptologue néerlandais, a publié deux essais intitulés La Cryptographie Militaire (Military Cryptography), qui expose les six principes essentiels liés à la conception de systèmes cryptographiques. 

Le plus connu d'entre eux, le principe de Kerckhoff, stipule que nous devons garder notre clé cryptographique secrète. Et nous ne devons pas compter sur le secret de l'algorithme pour protéger nos données, mais utiliser des algorithmes bien connus, bien testés, bien éprouvés.

L’algorithme utilisé à l’origine pour chiffrer le processus de connexion dans Windows NT était 2DES, dont nous savons à présent qu'il comporte des problèmes. Aujourd'hui, le MS-NRPC utilise l’Advanced Encryption Standard (AES), considéré comme la référence du chiffrement. 

En plus de choisir un algorithme, solide et éprouvé, il convient de sélectionner d'autres paramètres pour assurer la résistance adéquate. Le MS-NRPC utilise un paramètre obscur nommé Advanced Encryption Standard – Cipher Feed Back 8bit (AES-CFB8). L’AES-CFB8 est obscur, car il n’est pas bien connu ni bien testé. 

L’utilisation de l’AES-CFB8 avec le MS-NRPC comporte un problème au niveau du vecteur d’initialisation qui doit être un nombre aléatoire, mais que le MS-NRPC a fixé à une valeur de 16 octets de zéros. Cette valeur est tout sauf aléatoire. Elle est prévisible. La prévisibilité est souvent nuisible en cryptographie.

Comment nous connaissons cette vulnérabilité

Cette vulnérabilité a été annoncée en septembre 2020 par Tom Tervoort, un chercheur néerlandais travaillant pour Secura. Un correctif a été publié pour corriger la vulnérabilité en août, mais ce n’est que lorsque le chercheur a publié son rapport en septembre que nous avons commencé à voir des POC et autres activités. 

L'article de Tervoort détaille sa découverte et le processus qui y a conduit. Au cours de ses recherches, il a remarqué un manque important d’informations sur le MS-NRPC. Intrigué, M. Tervoort a cherché d'autres informations. 

Il cherchait initialement une attaque de l'homme du milieu, mais a finalement découvert une autre vulnérabilité détaillée dans le CVE-2020-1424. En poursuivant ses recherches, il a identifié ce que l’on connaît désormais sous le nom de Zerologon. 

La partie essentielle de sa découverte est que Microsoft a mis en place une variante de cryptographie unique, qui est différente de tous les autres protocoles RPC. À l'époque de Windows NT, les comptes affectés à un ordinateur n'étaient pas identifiés comme un principal de première classe. Cela signifie que Microsoft ne pouvait pas utiliser les protocoles normalisés Kerberos ou NTLM pour authentifier les comptes d'ordinateur ou de machine. 

Les développeurs ont donc créé une autre solution. Il est extrêmement difficile de créer du code et des protocoles de chiffrement indéchiffrables. Le délai avant que les failles ne soient découvertes est même incroyablement long, comme dans le cas présent.

Comment l'attaque fonctionne

Cette vulnérabilité permet à un pirate de prendre le contrôle d'un contrôleur de domaine (DC), y compris le DC racine. Ceci est réalisé en modifiant ou en supprimant le mot de passe d'un compte de service sur le contrôleur. Le pirate peut ensuite causer simplement un déni de service ou s’emparer de la totalité du réseau.

Pour que les assaillants puissent exploiter cette vulnérabilité, ils doivent être en mesure d'établir une session de protocole de contrôle de transmission (TCP) avec un DC. S'ils sont physiquement à l'intérieur du réseau, ils peuvent se trouver sur le bureau d'un utilisateur ou sur un port ouvert dans un endroit tel qu'une salle de conférence. 

Ces exploits sont qualifiés d’attaques d’initié, les plus chères pour une entreprise actuellement. Ils peuvent être établis depuis l’extérieur du réseau. Il leur suffit d’avoir un point d’entrée, quel qu’il soit, pour établir la session TCP avec le contrôleur.

En utilisant l’AES-CFB8 avec un IV fixe de 16 octets de zéros, Tervoort a découvert qu’il existait une probabilité qu’une clé sur 256 crée du texte chiffré ne comportant que des zéros. Cette probabilité est bien trop élevée face à un assaillant qui essaie de chiffrer du texte ne comportant que des zéros. L’ordinateur du pirate informatique n’aurait besoin que de 2 à 3 secondes, au maximum, pour y parvenir. 

Diagramme Chiffrement AES-CFB8 (IV composé de zéros uniquement et texte brut)

Alors, pourquoi est-ce important ?

Si la machine qui communique avec un DC appartient à un utilisateur qui se livre à ses activités habituelles, aucun problème ne se pose. Le texte chiffré est mal conçu, mais le processus d’authentification réseau fonctionne. Le problème ne survient que lorsqu’un pirate informatique essaie d’exploiter le système.

Dans l’attaque prouvée par M. Tervoort, le pirate informatique doit d'abord usurper les informations d’authentification ou le mot de passe d’un client sur le réseau. En raison de la mauvaise implémentation de l’IV dans le MS-NRPC, il ne faut qu’environ 256 tentatives pour réussir. 

En général, le compte d’un utilisateur se verrouille après trois tentatives de saisie de mot de passe, mais cela n’est pas le cas pour le compte d’un ordinateur ou d'une machine. Lorsqu’un ordinateur se connecte, aucune limite n’est définie sur le nombre de tentatives de saisie de mot de passe, ce qui permet d’effectuer une salve de tentatives en continu sur une courte durée, pour permettre aux pirates d’entrer. Ils doivent trouver l’une des clés qui produit un texte de chiffrement composé uniquement de zéros.

Que peuvent faire les pirates une fois qu’ils ont usurpé l’identité d’un ordinateur sur le réseau ? Une fois cette première étape d’usurpation d’une identité accomplie, l’assaillant ne connaît pas la clé de chiffrement réelle de la session. Les assaillants n’ont pu usurper leur identité qu’en tombant sur l’une des 256 clés qui produit un texte de chiffrement composé uniquement de zéros. L'étape suivante consiste à désactiver le « signing et sealing ».

Le signing et sealing RPC est le mécanisme utilisé pour transporter le chiffrement dans le MS-NRPC. Cela semble être un processus logique puisque nous devrions crypter davantage de nos données en transit. Dans MS-NRPC, cependant, il s'agit d'une fonction facultative qui peut être désactivée simplement en n'activant pas un drapeau dans l'en-tête d'un message. 

Une fois les signing et sealing désactivés, les messages sont envoyés en clair. Les pirates pourraient prendre toutes les mesures qu'ils souhaitent, y compris supprimer un mot de passe ou lui attribuer une autre valeur. Microsoft publiera un correctif en février 2021 pour rendre le signing et sealing obligatoire.

La troisième étape consiste à modifier le mot de passe du compte victime de l’usurpation. L'appareil le plus efficace à usurper serait un serveur AD, de préférence le serveur AD racine. Pour modifier le mot de passe, les assaillants utilisent le message NetServerPasswordSet2 dans MS-NRPC. 

Il est possible de modifier un mot de passe en envoyant simplement le cadre avec le nouveau mot de passe préféré. L’approche la plus simple consiste à supprimer le mot de passe ou à lui attribuer une valeur vide :  le pirate peut alors se connecter grâce à un processus normal. 

NetrServer


Si l’attaque cible un ordinateur aléatoire sur le réseau, cet ordinateur ne peut pas se connecter. La première conséquence de cette attaque est donc simplement une attaque par déni de service contre cet ordinateur.

Impact global

Aujourd’hui, plusieurs exploits PoC publics sont disponibles. Si les serveurs AD n’ont pas reçu de correctif, les entreprises peuvent subir des dégâts importants, car l’attaque peut être utilisée pour injecter des ransomwares dans un réseau. 

Des outils permettent de vérifier si vos serveurs sont à risque. M. Tervoort et Secura ont publié un outil sur GitHub permettant de vérifier que vos contrôleurs de domaine sont dotés de correctifs, ou de déterminer s’ils sont vulnérables.

Le correctif pour CVE-2020-1472

En août 2020, Microsoft a publié un correctif pour le CVE-2020-1472 (Zerologon). Tous les serveurs AD (2008 R2 et versions supérieures) doivent être dotés de correctifs dès que possible. Mais le délai moyen entre la publication d'un correctif et son déploiement reste trop long. 

Selon les chercheurs, dans une organisation moyenne, il faut entre 60 et 150 jours (environ 5 mois) après la publication d’un correctif pour qu'il soit enfin installé. C’est ce que l’on appelle le délai moyen d'application de correctif, ou Mean Time to Patch (MTTP). 

De plus, malheureusement, le nouveau correctif n’est pas universel. Microsoft prévoit de publier une deuxième phase du correctif, qui comprendra des fonctionnalités d'application, début février 2021.

Tous les appareils devront utiliser le mode de canal sécurisé ; dans le cas contraire, l'accès leur sera refusé. Les éventuels appareils non conformes plus anciens devront être ajoutés manuellement à une politique de groupe, qui autorise explicitement l'accès à des appareils non conformes.

Correctifs virtuels

Il convient toujours d'appliquer des mesures de sécurité traditionnelles pour surveiller les comptes et les réseaux compromis, le trafic malveillant, et d'autres indicateurs de compromission. Les systèmes de détection des intrusions (IPS) et les logiciels antimalware pour les appareils du réseau et hôtes (tous les endpoints), permettant de surveiller les ransomware, les virus et autres menaces, sont essentiels. 

Les journaux doivent être collectés, centralisés et analysés par un SIEM. Une fois les journaux analysés, des personnes et processus doivent être en place pour réagir aux indicateurs de compromission (IoC). Puis, une équipe de réaction aux incidents possédant des procédures et connaissances solides doit prendre la relève, pour déterminer l'étendue de la compromission et la résoudre.

Malgré la disponibilité d’un correctif fournisseur, de nombreux clients ont encore besoin de temps pour le déployer et implémenter des mesures de sécurité supplémentaires pour protéger leur environnement. Le concept d'application de correctifs virtuels via des outils comme IPS permet aux administrateurs et aux professionnels de la sécurité d'ajouter un outil à leur arsenal. 

Cela permet de gagner un temps critique pour sécuriser leurs réseaux. L'application de correctifs par les fournisseurs reste la mesure d'atténuation recommandée. Les solutions de correctifs virtuels aident à protéger les machines non corrigées. Dans de nombreux cas, elles fournissent également des informations précieuses sur les tentatives d'exploitation du réseau après l'application des correctifs, grâce à des fonctions telles que l'inspection des journaux.

Cet article de la base de connaissances permet aux clients Trend Micro d’en savoir plus sur les bonnes pratiques liées au traitement des vulnérabilités, et sur la manière dont nous pouvons les aider : https://success.trendmicro.com/solution/000270328

Sujets sur Zerologon

Ressources connexes

Recherches associées