Adieu NTLMv1 - Partie 0 - Introduction

Ce bon vieil NTLM... On en a connu des aventures... De OS2 à Windows Server 2016, en passant par Samba et Windows 98... Mais il est temps de passer à autre chose. Il est temps de désactiver NTLMv1. Une précision importante est due dès à présent. On parle de désactiver NTLMv1, pas de désactiver NTLM complètement. Idéalement, toutes vos applications utilisent Kerberos, donc désactiver toutes les versions de NTLM n'est pas une mauvaise idée d'un point de vue de la sécurité de votre environnement. Par contre, cela peut amener un terrible impact en termes de compatibilité (notez que l'on ne peut pas désactiver NTLM au niveau de système d'exploitation, par contre, on peut le bloquer, ou bien l'interdire grâce aux silos d'authentification ou bien au groupe Protected Users).

Cette série de billets propose une méthodologie pour détecter et se débarrasser de NTLMv1. Ce premier billet est une introduction. Les autres billets comportent la suite des opérations techniques à réaliser pour atteindre l'objectif.

Adieu NTLMv1 - Partie 0 - Introduction

Adieu NTLMv1 - Partie 1 - Détection Adieu NTLMv1 - Partie 2 - Consolidation

Adieu NTLMv1 - Partie 3 - Remédiation (en cours d'écriture)

 

Pourquoi désactiver NTLMv1?

NTLMv1 c'est le mal. Il y a même une KB qui en parle : Directives en matière de sécurité pour l'authentification réseau NTLMv1 et LM. En fait, NTLM c'est le mal, comme en témoigne l'extrait suivant:

"Implementers need to be aware that NTLM does not support any recent cryptographic methods, such as AES or SHA-256. It uses cyclic redundancy check (CRC) or message digest algorithms ([RFC1321]) for integrity, and it uses RC4 for encryption. Deriving a key from a password is as specified in [RFC1320] and [FIPS46-2]. Therefore, applications are generally advised not to use NTLM."

Section: Security Considerations for Implementers tirée de [MS-NLMP]: NT LAN Manager (NTLM) Authentication Protocol

Mais bon, j'entends déjà les cris effrayés des équipes applicatives. AAHHH MAIS VOUS ÊTES FOUS! Bref, commençons par nous débarrasser de la version 1... La version 1 utilise des challenges plus courts, et pour lesquels des tas d'attaques sont publiés sur Internet depuis des décennies...

Je n'ai aucune idée de qui (ou quoi) l'utilise dans mon environnement...

"Et donc je préfère ne rien faire: la garantie de ne rien casser." Quand on désactive une fonctionnalité pour des raisons de sécurité, on a plusieurs options:

  1. La manière forte: désactiver la fonctionnalité, et regarder fixement le téléphone en espérant que l'on n'a rien cassé.
  2. La manière faible: envoyer un message à toutes les applications et leur demander, s'ils leur plaisent, de ne pas utiliser NTLMv1. Bon, en général, soit ils ne savent pas qu'ils l'utilisent, soit ils ignorent le message et quand tu le désactives, ils ont l'impression que vous avez utilisé la première manière...
  3. La manière geek! On active l'audit (la plupart du temps, une grande partie de cet audit est déjà configuré par défaut), et on observe qui l'utilise (en éventuellement, on peut travailler avec eux -une fois identifié- pour s'en débarrasser).

Vous l'aurez compris, on va explorer la manière geek !

Cela nous emmène à la phase 1 de la désactivation de NTMLv1.

Phase 1 : Identifier qui et quoi utilisent NTLMv1 dans votre environnement.

cf Adieu NTLMv1 - Partie 1 - Détection

Phase 2 : Consolider l'information.

cf Adieu NTLMv1 - Partie 2 - Consolidation

Phase 3 : Contacter les applications.

cf Adieu NTLMv1 - Partie 3 - Remédiation   (en cours d'écriture)