Sommaire
ToggleObjectif du document
Rappel du contexte
La sécurité des infrastructures IT devient de plus en plus un enjeux vital pour les entreprises. Les relations d’approbations (lorsqu’elles sont établies) sont particulièrement sensibles et doivent donc être maitrisées et sécurisées.
Périmètre du document
Ce document a pour but d’expliquer comment activer la prise en charge des niveaux de chiffrement AES pour Kerberos au sein d’une relation d’approbation Active Directory afin de renforcer la sécurité de son infrastructure IT.
Un rappel de la notion de relation d’approbation Active Directory y sera abordé ainsi que des explications sur comment activer cette prise en charge de différentes manières ainsi que ses conséquences.
Principe de la relation d’approbation
Une relation d’approbation est une fonction ajoutée par Microsoft au sein d’Active Directory qui sert à lier logiquement deux environnements Active Directory afin de permettre aux ressources du domaine A d’accéder aux ressources du domaine B et/ou inversement. On parle alors de lien de confiance (Trust en Anglais).
Il existe plusieurs types de relation d’approbation dont les deux principales sont :
- Relation d’approbation de foret : sert à établir une connexion entre deux forets distantes.
- Relation d’approbation de domaine : sert à établir une relation d’approbation entre deux domaines sans avoir besoin de créer la relation au niveau foret.
Relation d’approbation et Kerberos
Les relations d’approbation Active Directory utilisent le chiffrement Kerberos afin de protéger les informations qui communiquent à travers eux.
Lors de la création de la relation d’approbation entre les deux environnements choisis, le niveau de chiffrement Kerberos par défaut est de type RC4 (RC4-HMAC-MD5). Cet algorithme de chiffrement est vulnérable aux attaques de type ASREPRoast et est systématiquement détecté par les outils d’audit de sécurité Active Directory tels que PingCastle, PurpleKnight ou Oradad.
Il est possible de vérifier le niveau de chiffrement de la relation d’approbation en utilisant PowerShell.
Pour ce faire :
- Ouvrez une console PowerShell en mode administrateur et avec un compte ayant au minimum les droits administrateur du domaine.
- Tapez la commande : ksetup /getenctypeattr « NOM_DU_DOMAINE_CIBLE »
- La commande va retourner une valeur vide, ce qui signifie que l’algorithme de chiffrement RC4 est utilisé (valeur par défaut).
A ce jour, l’algorithme de chiffrement RC4 est considéré comme faible et donc n’apporte pas un niveau de sécurité acceptable. Les niveaux de chiffrement AES (128 et 256 bits) répondent mieux à ces nouveaux critères de sécurité et doivent donc être activé.
Ajouter Kerberos AES au sein d’une relation d’approbation
Pour activer le chiffrement AES, il existe deux méthodes :
- En utilisant la console « Relation Active Directory Domain and Trusts »
- Via la console PowerShell
Activer AES depuis la console
- Ouvrez la console « Relation Active Directory Domain and Trusts »
- Faites un clic droit, puis Properties sur le domaine source
- Cliquez sur Properties sur le domaine source
- Cochez la case « The other domain supports Kerberos AES encryption »
- Cliquez sur OK
A ce stade, Keberos AES est activé au sein de la relation d’approbation établie.
Nous pouvons vérifier son activation en utilisant la commande PowerShell suivante :
ksetup /getenctypeattr « NOM_DU_DOMAINE_CIBLE »
Cela va nous retourner les valeurs suivantes :
RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
Nous remarquons que la valeur par défaut, à savoir RC4, n’est pas supprimée mais c’est bien un ajout de AES qui a été effectué. Le fait de conserver RC4 permet de maintenir une certaine compatibilité si nécessaire.
REMARQUE : L’activation de Kerberos AES au sein de la relation d’approbation doit se faire des deux côtés donc les opérations de configuration doivent être reproduite sur l’autre environnement afin que l’activation soit totale.
REMARQUE 2 : Lorsque l’on coche la case « The other domain supports Kerberos AES encryption », les deux niveaux de chiffrements AES sont ajoutés. Il n’est pas possible à ce stage de définir un seul niveau de chiffrement AES. Pour choisir, il faudra utiliser une commande PowerShell à cf : gérer le niveau de chiffrement AES
REMARQUE 3 : Lorsque plusieurs niveaux de chiffrements sont activés au sein de la relation d’approbation, c’est le niveau le plus haut qui est pris en compte lors des échanges entre les deux environnements Active Directory à condition qu’il soit pris en charge des deux côtés.
Activer Kerberos AES depuis PowerShell
- Ouvrez une console PowerShell en mode administrateur et avec un compte ayant au minimum les droits administrateur du domaine.
- Entrez la commande suivante : ksetup /setenctypeattr « NOM_DU_DOMAINE_CIBLE » RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
Gérer le niveau de chiffrement AES
Nous avons pu voir que l’activation de Kerberos AES au sein de la relation d’approbation conservait la valeur par défaut (à savoir RC4) pour des questions de compatibilité entre les deux environnements Active Directory.
Le protocole RC4 étant d’un niveau plus faible qu’AES, il est judicieux (et même conseillé) de supprimer le protocole RC4 de la relation d’approbation si les deux environnements peuvent communiquer en AES (128 et/ou 256 bits) afin de conserver le plus haut niveau de chiffrement possible et acceptable.
Il n’est pas possible de modifier le niveau de chiffrement depuis la console « Active Directory Domain and Trusts », il faudra alors passer par une commande PowerShell pour y arriver.
Supprimer RC4
- Ouvrez une console PowerShell en mode administrateur et avec un compte ayant au minimum les droits administrateur du domaine.
- Entrez la commande suivante : ksetup /setenctypeattr « NOM_DU_DOMAINE_CIBLE » AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
A ce stade, seulement AES est pris en charge au sein de la relation d’approbation.
Nous pouvons le vérifier par deux moyens :
- Soit via la console « Active Directory Domain and Trusts »
- Soit via PowerShell
Via la console « Active Directory Domain and Trusts » :
Via PowerShell :
Supprimer AES 128
Si les deux environnements Active Directory peuvent communiquer en AES 256 bits, conserver l’algorithme de chiffrement AES 128 bits ne présente plus vraiment d’intérêt et donc sa suppression peut s’envisager.
Pour supprimer AES 128 bits de la relation d’approbation, nous allons utiliser la même commande que précédemment
- Ouvrez une console PowerShell en mode administrateur et avec un compte ayant au minimum les droits administrateur du domaine.
- Entrez la commande suivante : ksetup /setenctypeattr « NOM_DU_DOMAINE_CIBLE » AES256-CTS-HMAC-SHA1-96
A ce stade, seulement AES 256 bits est pris en charge au sein de la relation d’approbation.
Nous pouvons le vérifier par deux moyens :
- Soit via la console « Active Directory Domain and Trusts »
- Soit via PowerShell
Via la console « Active Directory Domain and Trusts » :
On remarque ici que la case n’est plus cochée ce qui est normal car si la case était cochée, les deux niveaux AES seraient pris en compte ce qui n’est pas notre but.
Via PowerShell :
Conclusion
Nous avons pu voir au travers de cet article comment apporter plus de sécurité au sein d’une relation d’approbation en y apportant le niveau de chiffrement AES et en supprimer le niveau de chiffrement RC4 car jugé obsolète par Microsoft et l’ANSSI.
Cette approche est vraiment importante afin de sécuriser au mieux les échanges entre deux forets et/ou domaines Active Directory.
En plus de cette couche de sécurité, il convient de changer le mot de passe utilisé lors de la création de la relation d’approbation au moins une fois par an pour être certain de ne pas faire l’objet d’une attaque de type « Man in the Middle ».
Article écrit par Joffrey MARTIN