Nouvelle faille de sécurité ESC15 découverte dans Active Directory Certificate Services - contre-mesures faciles à mettre en œuvre

Les extensions de certificat "Key Usage" et "Extended Key Usage" permettent de déterminer à quelles fins un certificat numérique peut être utilisé. Dans l'extension de certificat "Extended Key Usage", les des utilisations de clés étendues pour lesquels le certificat peut être utilisé.

Il existe toutefois, pour les certificats émis par une autorité de certification Microsoft, une autre extension de certificat appelée "Application Policies" (en anglais : "Politiques d'application"), qui contient également une liste très similaire à l'extension Extended Key Usages.

Justin Bollinger de TrustedSec a découvert queque, pour les demandes de certificats hors ligne, il est contre Modèles de certificats de la version 1 du schéma est possible (comme pour la Extension Security Identifier), n'importe quel Politiques d'application dans la demande de certificat, qui sont reprises telles quelles dans le certificat délivré et peuvent ensuite être utilisées pour attaquer la structure globale d'Active Directory. L'attaque a été baptisée ESC15.

Comment fonctionne l'attaque ?

L'attaque fonctionne en permettant à un attaquant d'exploiter l'un des modèles de certificat standard version 1, à condition que celui-ci soit publié sur une autorité de certification.

Dans la plupart des cas, il s'agira du modèle „serveur web“, car il permet aux demandeurs autorisés de transmettre également l'identité du certificat émis dans la demande de certificat (option „Supply in the Request“).

Cependant, les certificats émis ne seraient pas adaptés à l'augmentation des droits, car ils ne font qu'augmenter la valeur des droits. Utilisation étendue des clés (EKU) „Server Authentication“, c'est-à-dire qu'ils ne peuvent représenter qu'une seule identité de serveur.

Voici venir l'extension de certificat Application Policies entre en jeu. Il s'agit ici d'une Extension de certificat propriétaire Microsoft datant de l'époque de Windows (Server) 2000. Son contenu est très similaire à celui de l'extension „Extended Key Usage“ et, selon Microsoft, elle était également destinée à des fonctions comparables.

La politique d'application est spécifique à Microsoft et est traitée un peu comme l'utilisation de clés étendues.

L'attaquant peut ajouter à sa demande de certificat une extension „Application Policies“ correspondante, qui contient par exemple „Client Authentication“.

Le certificat délivré reprendra alors cette extension 1:1.

Il sera encore plus intéressant de voir comment les applications se comportent désormais.

Comme l'a découvert Justin Bollinger, de tels certificats conviennent parfaitement pour se connecter à l'Active Directory. Il est donc possible d'augmenter les droits jusqu'à Enterprise Administrator avec un tel certificat.

En outre, d'autres bibliothèques Microsoft sont également vulnérables. Par exemple, une „politique d'application“ pour la signature de code pourrait également être demandée et du code malveillant pourrait être signé en conséquence.

Est-ce vraiment aussi simple que cela ?

A mon avis, pas vraiment, car il faut que de nombreuses circonstances soient réunies pour que l'attaque fonctionne :

  • L'erreur n'existe que pour les modèles de certificats de la version 1.
  • L'erreur n'existe que pour les modèles de certificats hors ligne, c'est-à-dire ceux pour lesquels le demandeur peut de toute façon choisir librement l'identité du certificat délivré.
  • Pour exploiter cette erreur, l'attaquant a besoin de droits pour demander des certificats à partir du modèle de certificat correspondant.
  • Il existe des contre-mesures simples, qui sont décrites ci-dessous.

On peut toutefois supposer qu'il existe encore de nombreuses installations généralement mal sécurisées des Active Direectory Certificate Services.

Actuellement, il n'existe pas encore de correctif de Microsoft (je suppose aussi que personne ne viendra de sitôt).

Contre-mesures

Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.

Désactiver les modèles de certificats par défaut de la version 1

Les modèles de certificats suivants sont vulnérables à l'attaque :

  • ExchangeUserSignature
  • ExchangeUser
  • CEPEncryption
  • Routeur hors ligne
  • IPSECIntermediateOffline
  • SubCA
  • CA
  • Serveur web
  • EnrollmentAgentOffline

Si l'autorité de certification les supprime, il n'est plus possible de les attaquer. Il est généralement conseillé de ne pas utiliser de modèles de certificats version 1, mais toujours des modèles définis par l'utilisateur, qui proviennent des modèles de certificats version 2 et 3 fournis.

La personne qui a découvert la faille a également un script fourni, Mais il y a encore plus simple :

"ExchangeUserSignature", "ExchangeUser", "CEPEncryption", "OfflineRouter", "IPSECIntermediateOffline", "SubCA", "CA", "WebServer", "EnrollmentAgentOffline" | % { if ( (Get-CATemplate).Name.Contains($_)) { Remove-CATemplate -Force }}

Empêcher la publication de modèles de certificats version 1 directement lors de l'installation de l'autorité de certification

Si l'on installe une autorité de certification Microsoft avec des paramètres par défaut, les modèles de certificats par défaut sont automatiquement publiés sur l'autorité de certification.

Ce comportement peut toutefois être corrigé en définissant les LoadDefaultTemplates Direktive zu „false“ in einer Konfigurationsdatei (capolicy.inf) doit être empêché. Une variante minimale d'un tel fichier pourrait se présenter comme suit :

[Version]
Signature="$Windows NT$"

[Certsrv_Server]
LoadDefaultTemplates=0

Le fichier doit être enregistré dans le répertoire C:\NWindows avec l'encodage ANSI / Windows-1252 (Latin-1, Europe de l'Ouest) avant de configurer le rôle d'autorité de certification.

Les données que j'ai utilisées et scripts d'installation publiés sur GitHub pour les organismes de certification Microsoft en tiennent compte en conséquence.

Suppression de l'extension de certificat „Application Policies“ des certificats émis

Par défaut, le module Windows Default Policy de l'autorité de certification est responsable de l'écriture de cette extension de certificat dans les certificats émis.

L'extension de certificat „Application Policies“ peut être désactivée sur l'autorité de certification à l'aide de la commande de ligne de commande suivante.

certutil -setreg policy\DisableExtensionList +1.3.6.1.4.1.311.21.10

Le service d'autorité de certification doit ensuite être redémarré pour que les modifications prennent effet.

Les certificats émis à partir de ce moment ne contiennent plus que l'extension „Extended Key Usage“, mais pas l'extension „Application Policies“.

Les données que j'ai utilisées et scripts d'installation publiés sur GitHub pour les organismes de certification Microsoft en tiennent compte en conséquence.

Autres

Essayer avec PSCertificateEnrollment

J'ai fait le PSCertifiateEnrollment Module PowerShell complété par l'extension Application Policies, de sorte que le scénario peut être facilement reproduit.

Import-Module PSCertificateEnrollment
$Csr = New-CertificateRequest -Upn "Administrator@domain.tld" -ApplicationPolicy ClientAuthentication
$Csr | Get-IssuedCertificate -ConfigString "CA-Name\Hostname" -CertificateTemplate "WebServer"

Un module de politique est-il utile ici ?

Oui et non.

L'erreur se situe dans Windows Default Module de politique, qui fait partie de la livraison des services de certificats Active Directory. Il serait également très simple d'intégrer une protection dans le Module de politique de TameMyCerts d'intégrer.

Toutefois, je pense que les contre-mesures disponibles avec les moyens du bord sont largement suffisantes pour rendre l'attaque inefficace. Même un patch ne peut pas sauver des autorités de certification mal configurées et mal sécurisées.

Il est toutefois judicieux de limiter autant que possible les champs de certificat utilisables ainsi que le format et l'étendue des identités pouvant être demandées pour les modèles de certificats hors ligne. Le module de politique de TameMyCerts pour les services Microsoft Active Directory permet d'y parvenir facilement..

Liens complémentaires :

Sources externes

fr_FRFrançais