Qu’est ce que la signature SMB ?
La signature SMB est un mécanisme cryptographique qui garantit l’intégrité et l’authenticité des échanges SMB entre les machines. Chaque paquet est signé à l’aide d’un HMAC basé sur une clé de session négociée, et toute modification invalide la communication. Elle empêche ainsi un attaquant en position MITM (Man-In-The-Middle) de modifier les flux SMB et de relayer des authentifications vers d’autres services (NTLM relay).
Risques
L’absence de signature SMB expose principalement l’infrastructure à des attaques de type Man-in-the-Middle. Un attaquant présent sur le réseau interne peut intercepter les communications SMB, les modifier ou se faire passer pour un service légitime. Dans ce contexte, il devient possible de mener des attaques de type NTLM relais, qui consistent à capter une tentative d’authentification NTLM émise par une machine ou un utilisateur, puis à la relayer en temps réel vers un autre service (SMB, LDAP, HTTP, MSSQL, WinRM, etc.) afin de s’authentifier sans jamais connaître le mot de passe.
Si le compte relayé est privilégié, l’attaquant peut directement usurper son identité et disposer de ses droits sur la cible, ce qui permet typiquement l’exécution de commandes à distance, le déploiement de services malveillants, l’accès aux partages administratifs et, selon le périmètre, la compromission d’une ou plusieurs machines, voire du domaine Active Directory.
Si le compte relayé ne dispose pas de privilèges élevés, l’impact immédiat est souvent limité à des accès de type lecture/écriture. Néanmoins, la présence de partages sensibles, de dépôts de fichiers ou de mécanismes automatisés (scripts, déploiements, GPO, services) peut permettre des compromissions indirectes. De plus, l’imprévisibilité des comptes susceptibles de s’authentifier rend ce vecteur particulièrement critique dans un environnement Active Directory.
Remédiations
Il est donc recommandé d’activer la signature SMB afin de garantir l’intégrité et l’authenticité des communications SMB et de se prémunir contre les attaques de type Man-in-the-Middle et NTLM relais.
Pour cela, il convient de configurer la stratégie de sécurité locale (ou via une GPO) sur les postes et serveurs concernés en suivant les étapes suivantes :
Ouvrir le Local Group Policy Editor :
Naviguer vers Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options:
Dans ce menu, 2 options doivent nous intéresser:
- Activer “Microsoft network client: Digitally sign communication (if server agrees)” dans un premier temps avant d’appliquer la stratégie à l’ensemble des stations du réseau interne. Nous vous recommandons d’effectuer des tests sur un groupe restreint de machines afin de vérifier que l’activation de la signature SMB ne provoque pas de perturbation. En effet, l’activation de la signature SMB amène des calculs cryptographiques lourds afin de vérifier l’intégrité. On peut donc parfois observer des latences suite à l’activation de cette sécurité, particulièrement sur le protocole SMBv1. Néanmoins, cette latence est beaucoup moins perceptible sur les versions 2 et 3 du protocole SMB.
- Une fois les tests effectués activer “Microsoft network client: Digitally sign communication (always)”.
Informations complémentaires
Lors du déploiement de la signature SMB, pensez à surveiller les Event IDs 3021 et 3027 dans Microsoft‑Windows‑SMB Server/Security, qui signalent respectivement les clients SMB refusant ou ne supportant pas la signature, afin de détecter et corriger les problèmes de sécurité post‑déploiement.
La signature SMB est un excellent “canari” de maturité sécurité. En effet, un environnement capable d’imposer la signature SMB sans incident est souvent un environnement : à jour, avec peu de dépendances legacy, et prêt pour des durcissements plus avancés (LDAP signing, désactivation NTLM, etc.).
Pour aller plus loin : Consultez notre article Red Team sur les techniques d'exploitation du NTLM relais.
Besoin d'un audit de sécurité ou d'un accompagnement sur mesure ?
Découvrir nos services →