31/03/2021
Blog technique
Retour d’expérience de tests d’intrusion internes
Equipe Audit
Essor du numérique, diversification des surfaces d’exposition, multiplication des cyberattaques… Depuis plusieurs années, la sécurité informatique est devenue une composante essentielle de l’administration d’un Système d’Information (SI). Une des bonnes pratiques à avoir est d’auditer le SI de façon régulière afin d’identifier les failles et les vulnérabilités du système en vue de les corriger. L’un des objectifs de l’audit est de pouvoir établir un plan d’action en termes de sécurité du SI, à court, moyen et long terme. Voici un retour d’expérience de nos audits internes.
Divers événements récents mettent en lumière l’importance de la sécurité informatique dans la protection des données. De nombreux guides ont d’ailleurs été publiés par l’Agence Nationale de la Sécurité des Systèmes d’Information (ANSSI), notamment le Guide d’Hygiène Informatique, pour sensibiliser et expliquer simplement les premières étapes de durcissement d’un Système d’Information (SI). Il peut cependant être compliqué de prioriser les actions à mettre en œuvre.
Une des bonnes pratiques permettant de définir un plan d’action efficace est d’auditer ses SI de façon régulière afin d’identifier les failles et les vulnérabilités auxquelles celui-ci est exposé et de prioriser leurs remédiations.
Afin d’obtenir un état des lieux représentatif du niveau de sécurité de son SI exposé à Internet, il est recommandé de combiner différents types d’audits de sécurité : l’audit d’architecture donnant un avis sur l’implémentation, la défense périmétrique et le cloisonnement du SI, l’audit de configuration pour aller plus en profondeur sur le durcissement de certains équipements critiques ou génériques ou bien encore un test d’intrusion externe permettant, par simulation d’une attaque, de relever les faiblesses qui seraient ciblées par un attaquant externe.
Bien que le scénario d’une cyberattaque provenant d’Internet demeure le plus présent dans l’imaginaire collectif, il est considéré que la plupart des incidents de cybersécurité sont dus à des menaces internes. Que ce soit par malveillance (revanche, gains financiers…) ou par inadvertance (exécution d’une pièce jointe, installation d’un logiciel malveillant, clé USB piégée…). De plus, de nouveaux risques semi-internes sont apparus ces dernières années avec une utilisation de réseaux Wi-Fi parfois très étendus et la démocratisation du télétravail.
Le test d’intrusion interne est la méthode la plus employée chez AMOSSYS pour évaluer le niveau de sécurité des SI des entreprises qui nous sollicitent. L’objectif de ce type d’audit consiste à se connecter directement au sein du SI ciblé afin d’y simuler des attaques envers les actifs internes à l’entreprise. Les techniques d’attaque employées sont des techniques connues, actuelles et documentées. Ces mêmes techniques sont généralement celles utilisées par des malwares de type rançongiciel lors de leur propagation sur les SI.
Nous avons choisi de partager ici notre expérience en la matière pour expliquer les principales faiblesses que nous rencontrons chez nos clients et comment nous proposons d’y remédier par l’implémentation de « quick win ».
Cet article abordera plusieurs parties correspondant aux différentes phases d’un test d’intrusion interne. À chaque étape de la méthodologie, il est possible d’implémenter des mesures de sécurité pour freiner un attaquant. Ces mesures peuvent être symbolisées par l’image d’un mille-feuille. On parle alors de « défense en profondeur ».
1ère étape : la reconnaissance
La première étape de notre méthodologie d’audit est la reconnaissance. Cette phase consiste à se poser les questions suivantes :
- Où suis-je ?
- À quoi ai-je accès ?
- Quels sont les protocoles réseau utilisés ?
Durant cette étape, les auditeurs utilisent des outils de reconnaissance réseau, comme « nmap » par exemple. L’objectif est d’effectuer une cartographie du SI en mettant en lumière les machines et services exposés. Un attaquant qui a accès à un réseau « à plat » a énormément de services à sa disposition. Il y a alors davantage de probabilité pour lui de trouver une vulnérabilité sur un des systèmes lui étant accessibles.
Afin de pallier ce problème, il est recommandé de cloisonner le réseau. Cela permet de segmenter le SI en sous-systèmes selon les différents rôles par exemple : SI Bureautique, SI d’administration, SI R&D, SI industriel, DMZ, etc. Lorsque le SI est correctement cloisonné, il est nécessaire d’y ajouter du filtrage entre les différentes zones afin d’en restreindre l’exposition. Ainsi, un attaquant n’aura accès qu’à une partie limitée du SI et ses accès vers les autres sous-systèmes seront réduits aux usages légitimes (service de mail, intranet, etc.). Il est également possible de contrôler l’accès logique au réseau en implémentant une authentification (802.1x par exemple). Il sera alors plus complexe pour un attaquant ayant un accès physique aux locaux de pouvoir se connecter au réseau informatique.
2ème étape : identifier et exploiter des vulnérabilités
Voici une énumération de quelques vulnérabilités régulièrement constatées sur les systèmes audités. Elles permettent d’obtenir un accès authentifié :
- Utilisation de protocoles réseau non sécurisés,
- Système d’exploitation, ou applicatifs non à jour et vulnérables à des codes d’exploitation publics (souvent référencés par un identifiant CVE),
- Partages réseau ouverts donnant accès à des éléments d’authentification, des sauvegardes de mails, des scripts d’administrations, etc.
L’objectif du test d’intrusion est alors d’obtenir un maximum de privilèges pour avoir un impact théorique maximal sur le système d’information. Pour les environnements reposant sur un Active Directory (Microsoft), il s’agit idéalement d’obtenir des droits « administrateur du domaine » qui correspondent à une compromission de tous les équipements de l’environnement.
Durant cette étape, différents outils sont alors utilisés comme crackmapexec
, metasploit
, impacket
etc.
Lorsque l’on parle de protocoles réseau non sécurisés, il est nécessaire de prendre en compte les accès Web HTTP, mais aussi HTTPS lorsque ceux-ci utilisent des certificats n’étant pas de confiance. Ils peuvent en effet être usurpés et donnent la mauvaise habitude d’ajouter des exceptions de sécurité sur le navigateur pour accéder au service. Pour s’en protéger il est recommandé de proposer du chiffrement lorsque cela est possible et d’utiliser des certificats signés par l’autorité interne (PKI). S’il n’est pas possible de sécuriser ces protocoles, il faut alors en limiter l’accès au strict minimum par le filtrage. Les environnements Windows utilisent par défaut des protocoles de résolution de nom décentralisés, comme LLMNR et NBT-NS. Ceux-ci peuvent être exploités par un attaquant à l’aide d’attaque par relai (aussi appelée NTLM Relay). S’ils ne sont pas utilisés, il est recommandé de les désactiver. À noter qu’il existe également une autre mesure technique pour éviter ce type d’attaque : l’activation de la signature SMB sur tous les postes du domaine Active Directory.
L’application régulière de mises à jour permet par ailleurs de se prémunir contre les vulnérabilités ayant été publiées. Si une adhérence logicielle est présente et empêche l’application d’une mise à jour, le filtrage des accès à cette application est recommandé afin d’en limiter le risque d’exploitation.
Pour se prémunir de l’accès à des fichiers sensibles sur des partages réseau, il est recommandé de contrôler les droits sur ses services. Par exemple, un utilisateur n’étant lié à aucun groupe ou service (RH, administration…) ne doit disposer d’aucun droit métier et chaque droit accordé doit faire l’objet d’un besoin métier identifié (accès aux sauvegardes, aux fiches de paie…).
Pour aller plus loin, l’accès aux données de sauvegarde peut être considéré comme un second objectif. Si tel est le cas, un attaquant peut alors détruire ces données, empêcher la restauration du système d’information et ainsi avoir un impact décuplé.
Sur ce schéma, la méthodologie globale est détaillée avec une phase non authentifiée (en gris), puis une phase authentifiée en tant qu’utilisateur (en jaune). La dernière phase (en rouge) implique quant à elle la compromission d’un compte disposant de privilèges élevés (ex. : administrateur du domaine). Ces deux cycles sont composés d’une phase de reconnaissance, d’identification et d’exploitation des vulnérabilités, comme énoncées précédemment.
Quelques vulnérabilités accessibles uniquement de manière authentifiée sont récurrentes :
- Utilisation de mot de passe faible sur les comptes de services (attaque Kerberoast) ;
- Mot de passe dans l’attribut « description » au niveau des objets utilisateur de l’Active Directory ;
- Comptes ayant un mot de passe faible/identique à son nom de compte ;
- Identifiants présents dans des fichiers sur des partages réseau ;
- Utilisation du même mot de passe pour l’administration locale des postes de travail ;
- Utilisation de compte à haut niveau de privilèges sur des postes ou serveurs très utilisés.
Afin de pouvoir réagir en cas d’exploitation d’une vulnérabilité, il est recommandé d’implémenter des mécanismes de détection d’attaques, en complément des mesures énoncées précédemment.
3ème et dernière étape : la post-exploitation
La dernière étape d’une attaque consiste à effectuer l’action recherchée : déploiement d’un malware, vol d’informations sensibles, etc. Cette étape est appelée post-exploitation. Durant nos audits, nous nous intéressons aux événements redoutés afin d’avoir des exemples d’impacts efficaces et liés au métier : accès à des données sensibles, à des données de santé, au processus industriel, etc.
Nous avons aussi pris pour habitude d’extraire les hashs des mots de passe des utilisateurs du domaine, lorsque ceux-ci ne sont pas stockés de manière réversible… Le but est d’évaluer l’application de la politique de mot de passe, mais aussi la sensibilisation des utilisateurs, en essayant de casser ces hashs à l’aide de dictionnaires. Ces dictionnaires peuvent être génériques, mais aussi contextualisés en fonction de l’environnement du client.
Généralement, 30 à 50% des mots de passe sont obtenus en l’espace de quelques jours, sans équipement particulier.
L’application d’une politique de mot de passe robuste accompagnée d’une sensibilisation régulière des collaborateurs d’une entreprise permet donc d’assurer un premier niveau de sécurité au niveau des accès au SI.
En résumé, les nombreuses mauvaises pratiques d’administration ou défauts de configuration peuvent être exploités par un attaquant afin de porter atteinte à votre entreprise. Des mesures simples, comme l’application de mises à jour, la sensibilisation des utilisateurs, la mise en place de filtrages efficaces entre différentes zones du réseau permettent d’élever significativement le niveau de sécurité de votre SI. Le test d’intrusion interne permet d’évaluer votre niveau de sécurité de manière pragmatique en quelques jours et de vous fournir un plan d’action qui vous permettra de réduire le risque et l’impact d’une cyberattaque.
Cet article vous a plu ? Vous souhaiteriez en savoir davantage pour réaliser un test d’intrusion interne ou tout autre audit de sécurité sur votre SI ? Contactez-nous !