Lors de tests d'intrusion d'internes (LAN) chez nos clients, nous constatons malheureusement les mêmes défauts de sécurité qui reviennent systématiquement. De par leur exposition restreinte en comparaison de sites web sur Internet, de la confiance qui est généralement associée au personnel y ayant accès, et de la nécessité pour Microsoft de conserver la compatibilité avec les anciens systèmes, les réseaux internes sont généralement très vulnérables et rarement bien configurés, mis à jour et sécurisés.
Nous allons présenter dans cet article un top 5 des vulnérabilités les plus fréquemment rencontrées en audit interne, à savoir :
- Politique de mot de passe faillible
- Utilisation de protocoles réseau obsolètes
- Absence de segmentation réseau et de séparation des privilèges
- Mauvaise gestion des privilèges
- Mots de passe stockés en clair
Cette liste n'est bien évidemment pas exhaustive, et de nombreux autres défauts pourraient figurer dans ce top. Par exemple, nous ne mentionnerons pas les privilèges trop larges sur les partages réseau, ou encore l'absence de politique de mise à jour.
Politique de mots de passe faillible
L'absence d'application d'une politique de mots de passe solide entraîne plusieurs mauvaises pratiques chez les utilisateurs :
- L'utilisation de mots de passe courts
- L'utilisation de mots de passe triviaux ou liés au contexte, incluant le nom de la société, la saison, l'année...
- L'utilisation de mots de passe figurant dans une liste de mots de passe connue, par exemple
password1234
oup@ssw0rd
- La réutilisation d'un même mot de passe en ajoutant un chiffre à la fin
En tant qu'attaquant, l'une de nos premières actions lors d'un audit interne est "d'écouter le réseau" afin de tenter d'intercepter des séquences d'authentification. Si la politique de mots de passe est trop faible, nous réussissons rapidement à casser des mots de passe utilisateurs afin d'avoir accès à leurs postes de travail et à des serveurs.
Un autre problème lié aux mots de passe est la réutilisation du mot de passe de compte d'administration locale sur les serveurs et postes de travail, qu'il s'agisse du compte Administrateur par défaut, ou d'un autre compte d'administration spécifique à l'entreprise. Il arrive fréquemment que ce compte soit identique sur toutes les machines. Compromettre ce mot de passe sur une machine nous donne alors les privilèges d'administration sur toutes les machines.
Notre conseil : nous recommandons de durcir la politique de mots de passe avec un minimum de 8 caractères voire plus, un historique de 13 mots de passe, et d'intégrer un mécanisme permettant d'empêcher les utilisateurs de saisir un mot de passe se trouvant dans une liste connue, par exemple avec l'API de HaveIBeenPwned.
Toutefois, cette recommandation technique ne peut s'appliquer du jour au lendemain, et va nécessairement de pair avec une formation des utilisateurs au choix de mots de passe sûrs. Nous recommandons à ce titre d'utiliser des mots de passe composés de plusieurs mots courants, séparés par des caractères spéciaux et agrémentés de chiffres. Le site password.garden peut être utilisé pour cela.
Enfin, pour les mots de passe de comptes d'administration locaux, nous recommandons d'utiliser la solution LAPS de Microsoft afin que le contrôleur de domaine gère automatiquement les mots de passe d'administration locale, complexes et différents entre chaque machine, avec une rotation régulière.
Utilisation de protocoles réseau obsolètes
Nous constatons que bien souvent, des protocoles réseau obsolètes sont toujours actifs. Leur utilisation provient généralement d'un ancien équipement type NAS, imprimante ou scanner. Le fabricant peut avoir abandonné le support de son produit, qui reste bloqué dans une configuration vulnérable. Voici quelques exemples de protocoles réseau qui peuvent être exploités par des attaquants dans le but d'obtenir l'accès à des comptes.
- LLMNR, NBT-NS : ces protocoles permettent de faire de la résolution de nom, c'est à dire permettre d'établir la correspondance entre un nom d'hôte et son adresse IP. Toutefois, un attaquant connecté au réseau peut facilement "imposer sa réponse" au réseau pour inciter une machine à lui envoyer sa séquence d'authentification, au lieu de l'envoyer à une machine légitime du réseau.
- LM, NetNTLMv1 : ces protocoles rentrent dans la catégorie des challenges d'authentification, c'est à dire qu'ils servent à authentifier un utilisateur sur le réseau sans que son mot de passe ne circule en clair. Malheureusement, de par leur ancienneté, ces protocoles n'apportent pas suffisamment de garanties qu'un attaquant ne pourra pas récupérer facilement le mot de passe d'un utilisateur en clair en "cassant" les séquences d'authentification récupérées.
- SMBv1 : le protocole SMB permet le partage de fichiers ainsi que l'exécution de commandes à distance. Il a toujours son utilité dans les réseaux modernes, mais la version 1 expose plusieurs vulnérabilités. Notamment, le fait que la signature des paquets n'y soit pas activée par défaut, permettant ainsi d'envoyer des paquets en se faisant passer pour un hôte ou un compte légitime. Cette absence de signature des paquets par défaut est également présente dans la v2, mais pas dans la v3.
- WPAD : lorsque ce protocole est activé, les machines du réseau récupèrent la configuration de leur proxy, leur permettant d'accéder à Internet, en interrogeant le réseau. Toutefois, un attaquant peut effectuer une attaque lui permettant de répondre à la place du serveur légitime, afin d'inciter les machines du réseau à utiliser une configuration proxy malveillante. Cette configuration permet ensuite à l'utilisateur de capturer des mots de passe.
Notre conseil : désactiver ces protocoles obsolètes. Désactiver LLMNR et NBT-NS peut être fait rapidement et facilement en cas de présence d'un serveur DNS fonctionnel. Désactiver WPAD nécessitera d'installer les réglages proxy sur toutes les machines du réseau, plutôt que de les laisser trouver automatiquement la configuration. Les autres protocoles cités nécessiteront, avant d'être désactivés, d'identifier les machines et matériels qui en ont toujours besoin pour fonctionner, puis faire évoluer ces machines.
Absence de segmentation réseau et de séparation des privilèges
Obtenir les identifiants d'un compte ne fait pas tout, encore faut-il pouvoir se connecter aux machines. Les réseaux d'entreprises peuvent être "à plat", c'est à dire que des périphériques tels que des postes de travail ou des imprimantes peuvent avoir accès aux sous-réseaux contenant des serveurs applicatifs sensibles, ou encore des machines d'administration. De fait, une fois en possession d'un compte, nous pouvons rapidement nous connecter aux différentes machines que nous avons identifiées comme étant les plus critiques en termes de données ou de fonctionnalités accessibles.
Notre conseil : découper le réseau et suivre le modèle d'administration par tiers préconisé par Microsoft. Ce modèle propose de segmenter le réseau en trois parties :
- un Tiers 0 contenant les contrôleurs de domaine
- un Tiers 1 contenant les serveurs applicatifs
- un Tiers 2 contenant les postes de travail et imprimantes
Ce point ne concerne pas uniquement la configuration réseau, mais implique également de créer des comptes spécifiques aux tiers privilégiés (tiers 1 et tiers 0), empêcher les comptes utilisateurs standard (tiers 2) de se connecter à des machines de tiers privilégiés, et inversement. Un utilisateur ayant des accès privilégiés sur certains serveurs devrait utiliser un compte spécifique, différent de celui qu'il utilise au quotidien pour les tâches bureautique, pour s'y connecter. En complément, un serveur bastion sécurisé peut être mis en place dans le but de restreindre les connexions d'administration en provenance de cette machine uniquement.
Mauvaise gestion des privilèges
Ce problème fait suite au précédent. Voici quelques exemples de mauvaise gestion :
- Les utilisateurs peuvent avoir les droits d'administration locale des postes de travail.
- Les utilisateurs peuvent avoir les privilèges pour rajouter leur propre machine personnelle au domaine.
- Certains utilisateurs peuvent utiliser leur compte bureautique quotidien afin de mener des tâches d'administration.
- Les techniciens du support peuvent avoir des comptes très privilégiés sur le domaine, alors que leurs responsabilités nécessitent uniquement de pouvoir réinitialiser le mot de passe des utilisateurs, ou ajouter des machines au domaine.
- Des comptes de services, c'est à dire utilisés pour exécuter des tâches automatiques ou faire fonctionner des services, peuvent avoir été créés avec des privilèges très élevés (parfois, des privilèges d'administration du domaine).
Notre conseil : toujours intégrer le principe du moindre privilège. Les utilisateurs de postes de travail ne devraient pas avoir les droits d'administration, et ceux qui en ont besoin devraient utiliser un compte spécifique. Les privilèges accordés aux unités organisationnelles d'utilisateurs devraient être réduits au strict minimum. La délégation d'administration devrait être implémentée, afin de donner les droits minimums aux personnes du support (par exemple, uniquement pour réinitialiser le mot de passe des utilisateurs). Des Group-Managed Service Accounts devraient être utilisés plutôt que des comptes de service classiques, ceux-ci ayant la faculté de pouvoir être gérés par le contrôleur de domaine afin de bénéficier d'un mot de passe très solide à rotation régulière. Enfin, d'un point de vue organisationnel, une revue régulière des privilèges des utilisateurs devrait être mise en place dans l'entreprise, ainsi qu'un processus strict d'habilitation et de suppression.
Mots de passe stockés en clair
Nous trouvons fréquemment des mots de passe stockés en clair sur les partages de fichiers d'un réseau informatique. Il peut s'agir de mots de passe laissés par les utilisateurs dans des fichiers Word, Excel ou PDF, de mots de passe stockés dans des profils Firefox non chiffrés, mais aussi de mots de passe de comptes administratifs enregistrés dans des scripts d'administration ou des tâches planifiées et stockés sur le partage SYSVOL accessible à tous les utilisateurs.
Notre conseil : nous recommandons de sensibiliser les utilisateurs à la sécurité informatique, et les former à l'utilisation d'un gestionnaire de mots de passe tel que KeePass. Pour la partie scripts d'administration et tâches planifiées, il est aujourd'hui recommandé d'utiliser des gMSA (Group-Managed Service Accounts).
Le mot de la fin
Les vulnérabilités que nous avons identifiées dans cet article sont très fréquentes dans les réseaux informatiques, mais ce sont également celles qui ont un fort impact sur la sécurité. De fait, les recommandations associées peuvent être lourdes à mettre en place, et demander du temps. Notre société se tient bien évidemment à votre disposition afin de vous aider à implémenter ces mesures de sécurité informatique dans votre environnement. Nous pouvons également effectuer des audits de réseau interne (LAN) vous permettant d'identifier les points d'amélioration principaux d ela sécurité. N'hésitez pas à nous contacter et nous évaluerons ensemble vos besoins !
À propos : Le blog d'AlgoSecure est un espace sur lequel notre équipe toute entière peut s'exprimer. Notre personnel marketing et commercial vous donne des informations sur la vie et l'évolution de notre société spécialisée en sécurité sur Lyon. Nos consultants techniques, entre deux tests d'intrusion ou analyses de risque, vous donnent leur avis ainsi que des détails techniques sur l'exploitation d'une faille de sécurité informatique. Ils vous expliqueront également comment sécuriser votre système d'informations ou vos usages informatiques particuliers, avec autant de méthodologie et de pédagogie que possible. Vous souhaitez retrouver sur ce blog des informations spécifiques sur certains sujets techniques ? N'hésitez pas à nous en faire part via notre formulaire de contact, nous lirons vos idées avec attention. Laissez-vous guider par nos rédacteurs : Alexandre, Amine, Antonin, Arnaud, Benjamin, Enzo, Eugénie, Fabien, Françoise, Gilles, Jean-Charles, Jean-Philippe, Jonathan, Joël, Joëlie, Julien, Jéromine, Ludovic, Lyse, Nancy, Natacha, Nicolas, Pierre, PierreG, Sébastien, Tristan, Yann, et bonne visite !