Les Red Team pour améliorer la défense de votre SI
Définition des Red Team
Bien que lente, la prise de conscience des risques liés aux cyberattaques progresse et les budget alloués à la sécurité par les entreprises ne cessent d’augmenter. De nombreuses offres d’audits techniques permettant d’évaluer la sécurité d’un système d’information existent déjà : test d’intrusion, analyse de domaine Microsoft, audit de configuration. Mais il en est un dont la cote de popularité ne cesse d’augmenter de part sa capacité à simuler une attaque en condition réelle : l’exercice Red Team. Organiser une mission Red Team, c’est mettre en œuvre des scénarios d’intrusions complexes faisant intervenir des vecteurs d’attaques variés : intrusion physique, test d’exposition, attaque par ingénierie sociale, dépôt de backdoor persistante, etc. En plus de mettre en évidence des failles de sécurité, cet exercice permet de tester les capacités de détection et de réaction des équipes de défense interne.
Nous traiterons dans ce white paper de trois vecteurs d’intrusions couramment utilisé lors d’exercice Red Team : l’intrusion physique, les ressources exposées sur internet et le phishing.
La sécurité d'une entité repose sur son maillon le plus faible, qu’il soit physique, logiciel ou humain.
Test d'intrusion physique
Les risques d’intrusions physiques sont bien souvent négligés par les entreprises qui n’envisagent dans leurs scénarios de risques que des attaques informatiques distantes. Cependant, l’impact d’une faille de sécurité physique s’avère être souvent tout aussi important que n’importe quelle autre vulnérabilité applicative. Les vecteurs d’attaques sont nombreux : crochetage de serrure, attaque sur badges d'accès ou les serrures électroniques ou encore intrusion via un point d’entrée non protégé (porte non verrouillée, fenêtre mal fermée). Leur relative complexité font qu’ils ne sont que rarement exploités en premier lieu, des solutions plus simples existant.
La phase de reconnaissance vise à réunir toutes les informations nécessaires à l’élaboration de scénarios d’intrusions. Les sorties de secours sont-elles utilisées / verrouillées ? Des rondes de sécurité sont-elles mises en place ? Les employés portent-ils des badges apparents ? Cette phase de reconnaissance pourra être complétée par les différentes informations recueillies durant un potentiel test d’exposition (plan des bâtiments, horaires d’affluence, vision satellite du site, charte graphique des documents et badges d’accès, liste des évènements organisés au sein des locaux).
Les équipements physiques assurant la sécurité d’une infrastructure présentent une multitude de vulnérabilités, souvent facilement exploitables. Les tourniquets et portiques de sécurité à badges permettant le passage de plusieurs personnes simultanément devraient être proscrits, car ils offrent la possibilité de s’immiscer parmi un groupe d’employés légitimes. Leur petite taille les rend également vulnérables. La moindre erreur d’inattention d’un agent de sécurité donnera l’occasion à un attaquant d’enjamber cet obstacle qui, au final, n’en est pas vraiment un. Une caméra de sécurité peut être un élément dissuasif, mais la probabilité que les images filmées soient visionnées reste faible.
Les portes à digicode possèdent également leur lot de vulnérabilités. Les verrous des digicodes d’entrée de gamme peuvent être actionnés via l’utilisation de tringles de déblocage. L’usure des touches est quant à elle un bon indicateur des éléments composant le code ; muni d’un peu de patience, il est possible de le retrouver. Les portes antipaniques ainsi que la plupart des accès verrouillés de l’intérieur peuvent également être actionnés frauduleusement à l’aide d’outils spécifiques (under door tools). Les systèmes de loquet mis en place pour bloquer l’angle d’ouverture des fenêtres peuvent être démontés à l’aide d’un simple tournevis et de quelques contorsions. Toutes les fenêtres, quelle que soit leur localisation, devraient être fermées dès lors qu’aucune personne n’est présente dans la pièce en question.
Un accès physique à un équipement informatique non protégé permettra à un attaquant de récupérer des informations sensibles / confidentielles. Toute donnée d’un disque dur non chiffré peut être accédée via l’utilisation d’une clé USB bootable Linux ou d’une clé KON-BOOT (exécutable permettant de contourner le système d’authentification sur Windows 8 /10). Il sera ainsi possible d’extraire les certificats 802.1X ou les bases SAM et SYSTEM contenant les empreintes cryptographiques des mots de passe.
NAC : Netword Access Control
Une intrusion physique est souvent réalisée en vue de déposer une backdoor permettant d’obtenir un accès persistant au réseau interne de l’entreprise. Des tests doivent cependant être réalisés au préalable, afin de vérifier la présence potentielle de solution de contrôle d’accès au réseau, et de l’outrepasser le cas échéant.
Les méthodes de contrôle d’accès au réseau (NAC) visent à renforcer la sécurité interne en permettant aux seuls équipements autorisés d’accéder au réseau. Des règles spécifiques permettent d’isoler tout appareil ne répondant pas à certains critères pré-établis (adresse MAC inconnue, mise à jour de sécurité non installée, absence de certificat 802.1x, etc.).
La présence de NAC ne représente cependant pas une muraille infranchissable et des techniques de contournement existent. Dans certaines implémentations, la légitimité d’un équipement à accéder au réseau est déterminée en fonction de son adresse MAC. Des listes blanches / noires d’adresses et ou de masques d’adresses MAC sont alors mises en place. L’usurpation d’adresse MAC est une des solutions de contournement possibles (ip link set dev eth0 address aa:bb:cc:dd:ee:ff). Les équipements en libre-service tels que des téléphones IP (dont l’adresse MAC est souvent notée sur une étiquette au dos de l’équipement) sont de parfaits candidats.
Une deuxième solution consiste à brute-forcer ces adresses. Cette technique présente cependant le désavantage de générer un trafic réseau important au vu du nombre d’adresses existantes (une adresse étant composée de 6 octets, les trois premiers servant à identifier le constructeur de la carte réseau). Une optimisation possible consiste à tester en priorité des adresses MAC de constructeurs d’imprimantes, ce type d’équipement jouissant régulièrement d’autorisations spécifiques leur permettant d’accéder au réseau (liste blanche de masque d’adresse MAC). Toujours dans l’optique de limiter le trafic réseau, il peut être intéressant de n’implémenter qu’une seule partie du handshake DHCP. Suite à la réception d’un datagramme DHCP DISCOVER paramétré avec une adresse MAC usurpée, le serveur envoie un datagramme DHCP OFFER contenant l’adresse IP proposée au client. Il devient inutile de continuer le handshake en cas de champ vide ou d’adresse située dans une plage réseau isolée. Aucun datagramme DHCP REQUEST ni DHCPACK ne sera donc envoyé, réduisant ainsi le nombre de trames échangées.
Les contrôles d’accès au réseau basés sur l’utilisation de certificat 802.1x peuvent également être contournés via le rejeu d’un certificat préalablement extrait d’une machine dont le disque dur n’aurait pas été chiffré.
Ressources exposées sur Internet
Un test d'exposition permet d’identifier les ressources vulnérables d'une entreprise exposées sur Internet. Il représente un des points de départ possible d'une mission Red Team et peut être réalisé en parallèle d'une campagne de phishing ou d'une tentative d'intrusion physique. Cette phase de reconnaissance est habituellement réalisée à l'aide d'une pléthore d'outils, plus ou moins performants. Amass, TheHarverster, Recon-ng, Subfinder ou encore Cogiceo-Explorer sont autant d’outils permettant d’automatiser la récupération des informations relatives à une entité (FQDN, adresse IP, plage d'adresses IP) via différentes fonctionnalités :
- requêtes vers les API Shodan / Robtex / Bing
- enregistrement DNS (MX, NS, CNAME, A, AAAA, PTR, AXFR)
- enregistrement WHOIS
- recherche d’information dans les certificats
- utilisation de Google Dork
- brute-force de sous-domaine
Parmi les milliers de résultats collectés, seuls certains éléments bénéficieront d’une recherche plus approfondie. De nombreux outils, souvent gratuits et disponibles sur internet, permettent de cibler les services mal configurés que va pouvoir exploiter un attaquant (services SSH vulnérables, FTP acceptant des connexions anonymes, logiciels obsolètes, etc.). Concernant la surface d’attaque HTTP, la prise et l’analyse de captures d’écrans des pages d’accueil des applications web (via des outils comme EyeWitness) permet de dresser une liste de sites sensibles :
- interface d'administration
- interface d’accès à distance (VPN, Citrix)
- sites internet vulnérables (fonctionnalité d’upload de fichiers défectueuse, injections SQL, etc.)
Les mires d'authentification non protégées par de l’authentification forte et couplées à des politiques de mots de passe faibles représentent des points d'entrées facilement exploitables, via des attaques par force brute. Ces attaques nécessitent seulement d’avoir une liste de noms d’utilisateurs à tester.
La construction d'une telle liste d'utilisateurs peut être réalisée à l'aide de sources d'information publiques. Il est notamment possible d'extraire les noms et prénoms des collaborateurs ayant déclaré travailler pour l'organisation ciblée sur le réseau social professionnel Linkedin (des outils opensource tels que "linkedin2username" existent déjà). Le format des noms d'utilisateurs (identifiant incrémenté, "nom.prenom", "première-lettre-du-prenom.nom") peut être retrouvé à l'aide des métadonnées de documents accessibles sur Internet et facilement retrouvables, grâce à l'utilisation de Google Dork ("site:example.com filetype:docx"). En effet, nombre d'employés ne changent pas leur signature dans leur logiciel d'édition de documents, qui par défaut est leur nom d'utilisateur. Cette liste d'utilisateurs est ensuite étoffée à l'aide de différentes fuites de données ayant eu lieu au cours des dernières années ainsi que de recherches spécifiques sur les sites appartenant à l'entreprise ciblée (qui tient parfois à jour une liste de ses employés).
Il est bien plus aisé de trouver un utilisateur utilisant un mot de passe faible que de retrouver le mot de passe d'un utilisateur spécifique.
Une attaque par force brute peut maintenant être lancée à partir des listes d'utilisateurs précédemment créées et d'un mot de passe astucieusement choisi en fonction de différents paramètres (politique de mot de passe, nom de l'entreprise, année courante, fuites de données ayant impacté l'organisation ciblée). Plutôt que de tester un grand nombre de mots de passe sur un petit nombre de comptes, les attaquant testent habituellement un petit nombre de mots de passe (un ou deux par jours maximum) sur un grand nombre de comptes. Cette technique, appelée password spraying, permet en effet de contourner les règles de détection et de protection des comptes (souvent basées sur le nombre d'authentifications échouées pour un compte en particulier sans corréler les tentatives sur des comptes différents).
Aussi surprenant soit-il, ce type d’attaque pourtant triviale est d’une efficacité redoutable et permet fréquemment d’obtenir un accès à des applications critiques non protégées par de l’authentification forte.
Password spraying (en bas) vs attaque par force brute (en haut)
Phishing
Le phishing (ou hameçonnage) est un vecteur d'attaque très répandu de nos jours, notamment à cause de sa simplicité de mise en œuvre. De nombreuses attaques informatiques modernes débutent par une campagne de phishing (c’est par exemple le cas du piratage du parti démocrate américain en 2016). Le but de ces attaques est de faire croire à la victime qu'elle s'adresse à un tiers de confiance afin de :
- lui faire exécuter une action spécifique (par exemple déclencher la réinitialisation de son mot de passe, envoyer un document sensible à une personne tierce, effectuer un virement bancaire). Ce type d’attaque s’apparente souvent à de l’ingénierie sociale,
- installer un malware sur son poste client ou son téléphone, par exemple en exploitant une faille dans son navigateur, son client mail, lecteur PDF, ou via une macro malveillante dans un document Word,
- lui voler des informations personnelles, tels que son mot de passe ou des informations bancaires. Ce type d'attaque vise souvent à rediriger l'utilisateur vers un faux site internet imitant un site légitime. Lorsque la victime s'authentifie sur ce faux site web, l'attaquant récupère alors ses informations de connexion afin de les rejouer sur le site légitime.
Dans le cadre d'une attaque Red Team, l'attaquant cherche généralement à prendre le contrôle du poste client d'une victime, ou à lui voler ses informations de connexion, afin de se connecter au VPN, à la messagerie ou autre.
On distingue différents types d’attaques par hameçonnage :
- bulk phishing : une campagne visant un grand nombre de personnes (appartenant à la même organisation ou pas) sans personnaliser le contenu de la campagne pour chaque cible. Ce type d’attaque est plus facile à mettre en œuvre et permet de cibler un très large public. Le taux de réussite est cependant généralement assez faible, ce qui n’empêche pas d’avoir un grand nombre de personnes piégées si le lot de personnes ciblées est suffisamment large,
- spear phishing : une campagne visant un nombre restreint de personnes mais dans laquelle chaque scénario est personnalisé à l'aide d'informations personnelles (récupérées sur internet, via de l'ingénierie sociale ou par d'autres façons). Ces attaques sont plus difficiles à mettre en œuvre mais ont généralement des taux de réussite plus élevés. Elles sont également plus discrètes, ce qui a son importance dans le cas d'une attaque Red Team.
Bien que les mails soient le plus utilisés pour ce type d'attaque, d'autres supports existent, tels que la téléphonie et notamment les SMS (smishing), ou encore les équipements USB (envoie de goodies USB par voie postale, dépôt de clés USB piégées au sein des locaux d’une entreprise).
Les attaques les plus évoluées peuvent se dérouler en plusieurs temps : un première étape permet de gagner la confiance de la victime (l'attaquant contacte la victime dans un contexte légitime afin de ne pas éveiller ses soupçons). L'attaque est ensuite déclenchée dans un second temps une fois qu'une relation de confiance est établie. Afin d'augmenter le taux de réussite de la campagne, les attaquants créent souvent un environnement personnalisé pour la campagne et venant appuyer celle-ci : développement de faux sites internet web, création de faux profils sur les réseaux sociaux, fausses recommandations, etc. Lorsqu'une première victime a été piégée, il est également possible d'utiliser sa messagerie pour effectuer une seconde campagne de phishing, provenant cette fois d'un collaborateur de l'organisation ciblée. Les membres d'une même organisation ayant généralement naturellement confiance entre eux, cette seconde campagne permet de viser un public plus large avec un taux de réussite plus élevé.
Piratage du réseau interne
Une fois le premier accès obtenu, un attaquant tentera de se propager dans le réseau interne à la recherche des cibles qu'il s'est fixées. Selon les technologies utilisées (environnement Windows, environnement Unix, serveurs hébergés en interne ou chez un tiers) les attaques mises en œuvre ne seront pas les mêmes. Nous ne les aborderons pas dans cet article, ces techniques d’intrusions et les outils correspondant sont déjà bien documentés sur internet ou dans les revues spécialisées. L'enjeu pour l'attaquant est réussir à se propager dans le réseau interne sans se faire détecter par les équipes de sécurité (lorsqu’elles existent). Cela nécessite généralement de calibrer correctement les attaques mises en œuvre et les outils utilisés afin de ne pas dépasser les seuils de détection qui déclencheront des alertes auprès d’un éventuel SOC. Ces règles de détection n’étant à priori pas connues de l’attaquant, celui-ci se doit donc de procéder avec une extrême prudence afin de ne pas dévoiler sa présence. De l’autre côté du clavier, les équipes de défense doivent essayer de détecter des actions suspectes au sein de leur réseau, et lorsqu'une intrusion a été détectée et confirmée mener les opérations de forensique afin de définir le périmètre compromis et de rétablir les systèmes dans un état sain.
Une fois les cibles identifiées dans le réseau interne, il reste à en prendre le contrôle. Cette étape est généralement la plus compliquée car un attaquant peut se heurter à plusieurs niveaux de protection (par exemple : cloisonnement réseau, authentification à plusieurs facteurs, séparation des privilèges). Selon les objectifs de l’attaquant, la cible peut être un serveur en particulier (par exemple serveur de paye, CRM, NAS, etc) ou alors un grand nombre de machines (dans le but de déployer un cryptolocker ou un cryptominer par exemple). Dans tout les cas, la compromission de la cible nécessite souvent la compromission d’un périmètre plus large, notamment dans le cas d'authentification centralisée, tel qu'un Active Directory ou un serveur LDAP. En effet il est généralement plus facile de prendre le contrôle d’un Active Directory pour se connecter sur le poste client d’une personne travaillant à la comptabilité afin d’utiliser son navigateur pour contourner l’authentification à multi-facteurs mise en place sur le CRM (en supposant que l’utilisateur à déjà une session ouverte sur le serveur en question) plutôt que d’essayer de se connecter directement sur le CRM en question.
Conclusion
Un exercice Red Team vise donc à simuler une attaque informatique de bout en bout. A la différence d’un test d’intrusion classique qui se concentre sur les aspects techniques, ce type d’audit met en lumière des failles logiques, physiques, organisationnelles et humaines. En effet, ce type d'exercice permet de tester les facteurs humains, qui sont aujourd'hui au cœur des attaques informatiques modernes. Il permet notamment d'évaluer le niveau de sensibilisation des collaborateurs, en particulier lors des phases de phishing et d’intrusion physique. Il permet également de tester la capacité de détection et de réaction des équipes de sécurité (Blue Team) et met généralement en lumière des problèmes organisationnelles au sein de ces équipes lors de situations de gestion de crise. Pour les différentes raisons évoquées ci-dessus, un exercice Red Team est donc un excellent moyen de tester la robustesse d'une organisation face à une attaque informatique complexe, et d'entrainer les équipes de sécurité à gérer un incident de sécurité de grande ampleur.