Windows : comment sécuriser le protocole SMB
L’ouverture du port TCP 445 est nécessaire pour le partage des ressources, notamment celui des fichiers, mais cela fait du protocole SMB une cible facile pour les cyberattaques.
Lorsque l’on parle de ports réseau à protéger, on se concentre la plupart du temps sur les ports web bien connus 80 et 443. Mais, comme le savent les responsables de la sécurité, de nombreux autres ports TCP (numérotés de manière standard par l’Internet Assigned Numbers Authority) sont ciblés lors des attaques. L’un d’entre eux a fait l’objet d’une grande attention il y a quelques années : le port 445, qui a été exploité dans le cadre des attaques de ransomware WannaCry et NotPetya.
Le port 445 est aujourd’hui bien connu pour transporter les paquets du protocole SMB, lequel est principalement utilisé pour partager sur le réseau local des ressources : volumes de fichiers, surtout, depuis les serveurs de stockage NAS, mais également des imprimantes. Le trafic SMB est aussi important pour le fonctionnement d’Active Directory (alias AD), le service d’annuaire de Windows. Les deux sont intrinsèquement liés, puisque SMB utilise les mécanismes d’AD pour autoriser l’accès aux ressources partagées.
Si SMB est le nom générique du protocole, ses implémentations principales sont les couches logicielles CIFS, sur les serveurs Windows et les NAS de NetApp, ainsi que Samba, sur les machines Linux. Cela dit, on trouve également des implémentations tierces, qui revendiquent tantôt des débits supérieurs, tantôt une meilleure stabilité. C’est par exemple le cas de l’implémentation Tuxera SMB de l’éditeur éponyme, lequel conçoit des systèmes de stockage de fichiers pour les industriels.
La toute première implémentation de SMB fut NetBIOS, fourni avec les versions de Windows Server antérieures à Windows 2000. SMBv1 a été introduit en 1984. Il a été mis à jour à de nombreuses reprises. La version la plus récente, SMBv3.1.1, a été publiée en 2020.
Le partage des ressources étant l’une des principales raisons de la mise en réseau, il est courant que les entreprises utilisant Windows aient le port 445 ouvert et disponible à la fois sur les clients, tels que les ordinateurs portables, et sur les serveurs.
SMB n’est pas seulement disponible sur le port TCP 445. Les serveurs qui exploitent encore la version NetBIOS sur TCP/IP exploitent le port TCP 139, ainsi que les ports UDP 137 et 138. Le système RPC de Windows, pour l’utilisation des machines à distance, étend quant à lui la communication de SMB au port 135.
Quelles sont les failles de SMB ?
Pour que le partage des ressources et la communication fonctionnent, les ports doivent être ouverts et accessibles. Cet accès libre fait des ports SMB des cibles privilégiées lors des cyberattaques.
Si les attaques RPC et SMB sont nombreuses, l’exemple le plus connu est EternalBlue (CVE-2017-0144). Il s’agit de la vulnérabilité à l’origine de deux des attaques de ransomware les plus tristement célèbres : WannaCry et NotPetya. Tout système utilisant le protocole Windows SMBv1 est vulnérable. Outre les ordinateurs de bureau et les serveurs Windows, d’autres équipements, tels que les appareils médicaux, utilisent aussi ce protocole.
EternalBlue a été utilisé à la fois comme vecteur initial d’attaque et comme moyen d’effectuer des mouvements latéraux après l’infiltration d’un réseau. L’exploit fonctionne lorsque les attaquants envoient des paquets élaborés à un système utilisant le protocole SMBv1, ce qui leur permet d’exécuter du code à distance sur ce système.
Dans le cas de WannaCry, les attaquants ont exploité la vulnérabilité en chargeant des logiciels malveillants sur le système cible vulnérable, puis en diffusant ces logiciels malveillants via la même vulnérabilité à d’autres systèmes sur le réseau. EternalBlue a également été utilisé dans les attaques NotPetya et dans le cadre du cheval de Troie malveillant TrickBot.
Outre EternalBlue, SMBv1 est vulnérable aux attaques DDoS, qui peuvent entraîner des pannes de système. SMBv1 a aussi pour faille de se laisser prendre de vitesse par des ordres malveillants ; l’exemple le plus courant est celui d’un attaquant qui écrase la session en cours pour pouvoir exécuter à sa place des commandes en tant qu’utilisateur privilégié.
Comment détecter les vulnérabilités de SMB ?
Les tests d’intrusion sont un moyen pour les responsables de la sécurité de détecter les vulnérabilités des SMB. La plupart des tests commencent par une analyse des ports, qui peut indiquer si le port 445 est disponible et, le cas échéant, s’il exécute une implémentation vulnérable de SMBv1.
Le balayage des ports TCP est effectué à l’aide d’outils de balayage de réseau, tels que le célèbre scanner gratuit Nmap, ainsi que des scanners commerciaux, tels que NetScanTools Pro. Les scanners de vulnérabilité réseau, tels que Nessus et Qualys, intègrent également l’analyse des ports TCP. Quels que soient les outils utilisés par un testeur, l’analyse des ports TCP fait partie intégrante du processus de test de vulnérabilité et de test d’intrusion.
Comment se défendre contre les exploits du port 445
La meilleure façon d’améliorer la sécurité est de désactiver SMBv1 et d’adopter la dernière version de SMB. Les vulnérabilités évoquées ci-dessus affectent SMBv1 ; l’utilisation de versions ultérieures de SMB, non vulnérables, permet d’éviter les attaques dépendant de SMBv1. Notez que Microsoft a désactivé SMBv1 sur Windows 10. Il est également conseillé d’effectuer une mise à niveau vers la dernière version de Windows.
Une autre façon d’empêcher les exploits SMB est de désactiver le protocole et de fermer le port 445. Cette solution n’est toutefois pas adaptée à de nombreuses entreprises, car elle risque d’interrompre les communications réseau et de mettre hors ligne certains services Windows. Avant de désactiver ou de bloquer le port 445 sur les systèmes Windows, il convient d’effectuer une analyse approfondie de l’impact sur les services et les programmes qui y sont exécutés.
Les mesures suivantes peuvent être prises pour améliorer la sécurité tout en continuant à utiliser le protocole SMB :
- Bloquer le port TCP 445 au niveau du périmètre du réseau uniquement si les services critiques ne sont pas interrompus.
- Renforcer la détection des points d’extrémité, typiquement les PC des collaborateurs, avec un produit intégré qui comprend une défense antimalware avancée et une fonctionnalité de détection et de réponse des points d’extrémité. Cela permet d’empêcher les connexions malveillantes.
- Mettre en œuvre la segmentation du réseau et l’isolation des sous-réseaux dans la mesure du possible, pour empêcher les contaminations de proche en proche.
- Appliquer des mots de passe forts dans l’ensemble du domaine AD et pour les comptes Windows locaux.
- Maintenir un inventaire approprié des services et des applications fonctionnant sur vos systèmes.
- Activer des autorisations strictes pour les fichiers et les partages afin de verrouiller les informations sensibles
- Effectuer une surveillance proactive du système et lancer des alertes, en particulier pour les systèmes Windows critiques.
- Créer des règles de firewall qui n’autorisent que les adresses IP de confiance à accéder aux ports SMB.
- Rester au courant de toutes les vulnérabilités et les corriger dès que possible.