Emmenez-moi à votre contrôleur de domaine : Protections & Atténuations à l'aide d'outils de confiance zéro
Dans la première partie de cette série de blogs, nous avons examiné comment les méthodes de découverte peuvent être utilisées dans le cadre d'une compromission initiale. La seconde montrait un exemple d'usurpation d'identité utilisant des techniques de "pass-the-hash" combinées à des outils d'accès à distance pour un mouvement latéral. Dans cette dernière partie, nous verrons comment atténuer les mouvements latéraux. Nous avons déjà abordé l'exemple pratique des deux approches complémentaires qui permettent le mouvement latéral : au niveau de l'application et au niveau du réseau.

Il convient de préciser que par "niveau réseau", nous entendons la communication d'hôte à hôte sur le réseau, et pas nécessairement les dispositifs de réseau tels que les commutateurs ou les routeurs. Un hôte peut être une charge de travail telle qu'une machine de contrôleur de domaine, une machine de serveur de base de données, qu'elle soit physique, virtuelle ou même conteneurisée. Le niveau de l'application fait également référence à ce qui se passe à l'intérieur de l'hôte lui-même. Par exemple, les binaires sur le disque, les processus dans la mémoire, les actions du registre, etc.
Lors du mouvement latéral évoqué dans le blog précédent, la technique "pass-the-hash" activée par Mimikatz a été utilisée à l'intérieur du système d'exploitation au niveau de l'application en récupérant des informations d'identification hachées dans la mémoire du processus Windows LSASS.

Le jeton d'accès élevé dérivé de cette attaque a ensuite été utilisé pour permettre l'accès à distance à l'aide de l'outil PAexec en s'appuyant sur Windows SCM.

Si l'on analyse cette séquence d'attaque spécifique par rapport aux deux niveaux décrits ci-dessus, le niveau application du système devrait d'abord empêcher l'utilisation de Mimikatz ou, à défaut, de PAexec, sur la base d'un refus par défaut utilisant une liste d' applications autorisées. Une autre solution consisterait à détecter le lancement du processus dans la mémoire, par exemple en surveillant les DLL chargées ou les appels d'API. Au niveau du réseau, il faudrait appliquer la microsegmentation au niveau de l'hôte pour empêcher les mouvements entre les systèmes, même s'ils se trouvent sur le même sous-réseau ou le même VLAN. Le Traffic Baselining permettra également de détecter d'éventuelles anomalies comme l'exfiltration de données.
L'image ci-dessous montre l'analyse statique des binaires de Mimikatz et de PAExec et de certaines dépendances du système comme les DLL qui sont importées.

Le processus en cours d'exécution dans la mémoire nous montre l'arborescence du processus cmd qui a été utilisé à la fois pour Mimikatz pass-the-hash et pour la connexion PAExec ultérieure au contrôleur de domaine.

L'analyse judiciaire du système de destination, en l'occurrence le contrôleur de domaine, montrera également le binaire utilisé sur le contrôleur de domaine pour faciliter la gestion à distance et, dans ce cas, le déplacement latéral.

L'image ci-dessous montre également le service associé.

Par défaut, il utilise la convention de dénomination standard pour les noms de processus binaires et résultants. Cette situation peut bien sûr être modifiée par un acteur de la menace.
Il est donc important que les approches d'atténuation prennent en considération ces niveaux d'attaque - les protections qui s'intéressent aux menaces au niveau de l'application et les protections qui s'intéressent à la sécurité au niveau du réseau en se concentrant sur la communication d'hôte à hôte. Cela signifie que la sécurité reste et se déplace avec l'hôte ou la charge de travail à protéger (par exemple, le contrôleur de domaine en tant que charge de travail et les machines d'extrémité qui accèdent au contrôleur de domaine).
En appliquant ce concept à deux niveaux au domaine et aux serveurs et clients associés, l'infographie ci-dessous montre quelques-unes des considérations de sécurité importantes à prendre en compte pour se protéger contre les menaces qui pèsent sur les contrôleurs de domaine et les autres systèmes de domaine, comme nous l'avons vu dans cette série de blogs.

Un bon point de départ est le document Best Practices for Securing Active Directory de Microsoft, qui détaille des approches de bon sens, comme l'interdiction de se connecter à des ordinateurs non sécurisés avec des comptes à privilèges ou de naviguer sur l'internet normalement avec un compte à privilèges élevés ou même directement à partir de contrôleurs de domaine. Une gestion efficace des privilèges et des listes d'autorisation d'applications peut également automatiser la restriction de l'utilisation des comptes privilégiés dans le domaine et empêcher l'utilisation d'applications non autorisées.
Par exemple, au niveau de l'application de la protection du système, Endpoint Detection and Response (EDR), combiné avec Identity & Privilege Management solutions based on Zero Trust, peut aider à traiter les menaces au niveau de l'application sur le système du domaine, comme le vol de crédences et la manipulation de la mémoire LSASS, en utilisant des outils comme Mimikatz ou Rubeus (même s'ils sont exécutés en mémoire seulement et ne touchent pas le disque).
L'exemple ci-dessous montre une solution EDR, CrowdStrike Falcon, qui détecte une série de comportements malveillants au niveau de l'application et du système.

Au niveau du réseau du système, comme avec le contrôleur de domaine et d'autres systèmes de domaine, les solutions de microsegmentation basées sur l'hôte comme Illumio Core peuvent fournir une sécurité Zero Trust et une microsegmentation. Illumio Edge étend cette protection aux points d'extrémité à l'intérieur et à l'extérieur du domaine. Cela est particulièrement vrai dans le cas de vulnérabilités de type "jour zéro" et dans les cas où les menaces ne sont pas détectées par la sécurité des applications et des systèmes au niveau des points finaux.
La plupart des réseaux modernes sont hétérogènes, complexes et étendus, en particulier à l'ère du travail à distance. Il n'est donc pas facile d'assurer la sécurité sans disposer d'une stratégie ciblée. Dans le cas des grands réseaux en particulier, il peut sembler presque impossible d'assurer une sécurité efficace en raison du nombre considérable de systèmes complexes et disparates dotés de politiques de sécurité variées. Il est donc important de revenir à l'essentiel :
- Sachez ce que vous avez
- Savoir ce qu'ils font
- Sécurisez-les
Cela est particulièrement vrai lorsque les charges de travail sont stockées dans le centre de données ou dans le nuage. Le moyen le plus simple et le plus efficace de savoir ce que vous avez est de commencer par regrouper les systèmes en fonction d'attributs spécifiques tels que leur emplacement, leur environnement et leur application. Il sera ainsi facile d'identifier les groupes de systèmes et d'applications critiques, les services de base utilisés par ces groupes et les autres systèmes et applications moins cruciaux. Naturellement, l'accent sera mis sur les actifs les plus critiques, les applications les plus précieuses et les services de base.

Une sécurité efficace n'existe pas de manière isolée, c'est pourquoi toute approche doit tenir compte de ces considérations clés :
- Visibilité
- Intégration
- Performance à l'échelle
- Efficacité
Le premier point important est la visibilité. Comme le montre l'exemple ci-dessous de la solution Core d'Illumio pour la protection de la charge de travail Zero Trust, le mappage des dépendances des applications et l'affichage des différents groupes d'applications et de leurs connexions ouvrent la voie à une définition et à un provisionnement éclairés des politiques directement sur les systèmes hôtes comme les contrôleurs de domaine, les serveurs de base de données et d'autres systèmes de charge de travail critiques dans le domaine - physiques, virtuels, conteneurs ou nuages. Cela signifie que la microsegmentation peut être appliquée même dans un environnement plat avec des systèmes qui s'étendent sur différents sites géographiques et existent sur différentes plateformes. Cela permet de savoir ce que font vos systèmes sur le réseau. L'exemple ci-dessous montre les groupes d'applications et leurs relations de trafic dans une carte de dépendance d'application.

Ces informations utiles au niveau du système peuvent également être intégrées dans les investissements existants en matière de sécurité, tels que les SIEM, les scanners de vulnérabilité ou les CMDB. Dans l'exemple ci-dessous, les informations provenant de la solution de microsegmentation basée sur l'hôte sont transmises à un SIEM ou à une solution d'analyse de la sécurité. Cet exemple montre l'intégration avec Splunk SIEM :

Et dans ce deuxième exemple, avec QRadar :

Cela signifie que les nouvelles solutions peuvent être combinées avec les investissements existants en matière de sécurité pour protéger l'ensemble des systèmes du domaine. Les performances et l'efficacité des solutions de sécurité à l'échelle doivent également être prises en compte afin que la sécurité puisse être augmentée ou réduite, à la fois dans des environnements fixes et agiles, tels que les conteneurs ou les migrations dans le nuage.
Une fois ces éléments en place, il est facile de définir des politiques de sécurité cohérentes pour tous les systèmes afin de surveiller, de détecter et de prévenir les comportements anormaux. L'image ci-dessous montre les différents types de politiques de microsegmentation qui peuvent être appliquées sur la base de modèles de trafic en temps réel d'hôte à hôte, c'est-à-dire au niveau du réseau.

Dans les versions plus récentes de Windows, comme Windows 10 et Server 2016, l'audit de l'événement 4768 - un ticket d'authentification Kerberos (TGT) a été demandé et de l'événement 4769 - un ticket de service Kerberos a été demandé, ainsi que la corrélation subséquente peuvent indiquer le début d'attaques par ticket d'or ou d'argent. Microsoft a également mis en place de nouvelles protections telles que Credential Guard, qui vise à protéger contre le dumping d'informations d'identification. En cas d'incident cybernétique, il est important qu'une stratégie de réponse à l'incident cybernétique soit déjà en place.
Les protections au niveau de l'application et du réseau devraient être étayées par une stratégie "assumez la violation", de sorte que, dans l'ensemble, la chasse active aux menaces, soutenue par l'analyse, la surveillance continue et la détection, soit toujours en vigueur d'une manière automatisée et structurée.