Tiré du dessin animé "Il était une fois un chien"
Ainsi, les outils de surveillance standards deviennent insuffisants. Plusieurs facteurs y contribuent:
- les indicateurs de compromission (hachages, adresses IP et noms de domaine) sont souvent à usage unique, car les modifier est facile pour un attaquant, en particulier dans le cas d'APT;
- les attaquants utilisent des fichiers exécutables légitimes, des outils de système d'exploitation standard, etc.
- , ;
- , , ;
- .
Même si une attaque est détectée avec succès, vous n'aurez pas suffisamment d'informations pour répondre sans équivoque à la question: l'incident en cours a été épuisé ou certaines autres mesures sont nécessaires. Après tout, de nombreux événements ne sont tout simplement pas suivis: travailler avec le registre, créer des fichiers, charger des modules en mémoire, la ligne de commande du processus créé, etc.
La surveillance des terminaux étend considérablement la capacité de détection et de prévention des attaques: elle vous permet de passer de la détection des hachages, des adresses IP et des domaines à la détection des artefacts, des outils et du TTP de l'hôte (oui, la «pyramide de la douleur»).
Quelques exemples de techniques souvent rencontrées en pratique et non détectées sans surveillance de l'hôte:
- Détournement de DLL
- Vivre de la terre
- Utilisation de Mimikatz
Une surveillance supplémentaire des points de terminaison peut être effectuée à l'aide d'outils OS intégrés (audit avancé), d'utilitaires gratuits (tels que Sysmon) et de solutions commerciales (produits de classe EDR). Considérons les avantages et les inconvénients de ces approches à l'aide d'exemples de détection de diverses variations des techniques ci-dessus.
Audit avancé. Journalisation des événements Windows
Tout le monde connaît l'audit intégré. Comme le montre la pratique, en incluant un seul ensemble d'événements de création de processus avec la ligne de commande, vous faciliterez grandement le processus de surveillance et d'enquête sur les incidents (loi de Pareto en action).
Avec une configuration appropriée, nous comblons certaines lacunes de l'approche standard et voyons:
- faits de démarrage des processus avec la ligne de commande;
- Scripts PowerShell décodés (journalisation de bloc de script)
- partiellement - travailler avec les fichiers et le registre;
- activité liée aux comptes (création / suppression d'utilisateurs, etc.).
Nous avons la possibilité de détecter de nouvelles techniques:
- certaines options de détournement de DLL pour créer des fichiers avec des chemins spécifiques;
- en utilisant LOLBin et Mimikatz par des motifs dans la ligne de commande.
Cependant, un attaquant a toujours la capacité d'échapper à la détection. Dans le cas de LOLBin, cela peut être de copier le fichier dans un autre dossier sous un nom différent et de masquer la ligne de commande. Et Mimikatz peut être recompilé avec des commandes et des lignes modifiées, ce qui ne permettra pas de détecter son utilisation sur la ligne de commande. De plus, les options ne seront pas visibles lorsqu'un fichier binaire légitime sujet au détournement de DLL est placé sur la machine.
Code Mimikatz avec lignes modifiées
Vous pouvez configurer l'audit Windows sur n'importe quel système sans préinstaller un logiciel tiers, mais il existe également des inconvénients importants:
1. Configuration peu pratique et peu évolutive.
Exemple: pour surveiller une branche de registre spécifique, vous devez configurer séparément l'ACL pour elle. Le fait même que vous deviez agir, dans la pratique, se traduit par des problèmes et des retards, en particulier dans le cas de grandes infrastructures. Si cela est fait pour étendre la surveillance (par exemple, pour détecter un moyen de contournement UAC), le temps n'est pas critique. Mais si un tel besoin survient lors d'un incident, cela complique le processus de réponse.
2. Manque de contrôle.
Si les événements cessent de s'enregistrer ou d'entrer dans les systèmes de surveillance utilisés, il ne sera probablement pas possible de le comprendre à temps, car il n'y a pas de centralisation.
3. Facilité d'opposition.
Même les attaquants peu qualifiés savent se cacher des audits standard. La seule question est de savoir dans quelle mesure ils le feront de manière efficace et invisible.
Exemples de techniques:
- Nettoyage régulier des bûches. La probabilité d'une récupération réussie des événements dépend du temps écoulé depuis le nettoyage.
- Suspendre les threads du service d'audit, puis exécuter des actions malveillantes ou supprimer des événements (par exemple, à l'aide de l'outil github.com/QAX-A-Team/EventCleaner ).
- Masquage des événements en cassant la structure du fichier .evtx correspondant .
- Redirection temporaire des événements vers un fichier séparé. Nous avons parlé de cette technique dans l' article précédent .
4. En soi, la mise en place d'un audit ne fournira pas l'occasion d'organiser le suivi. Tout d'abord, vous devrez établir une collection centralisée d'événements, puis utiliser des outils supplémentaires, par exemple SIEM, pour les analyser.
5. Faible contenu d'information des événements. Il n'y a aucun moyen d'obtenir le hachage du processus en cours de lancement, de surveiller le chargement des bibliothèques dans la mémoire du processus, etc.
Similitudes entre Sysmon et EDR
Sysmon n'est pas une solution EDR complète, car il ne permet pas d'effectuer des actions proactives sur le système. Mais le mécanisme de collecte des événements est exactement le même que dans l'EDR commercial: il fonctionne sur deux technologies - les callbacks du noyau et l'ETW. Nous ne les décrirons pas en détail - nous considérerons uniquement comment les événements apparaissent et qui est l'initiateur de leur création.
• Les rappels du noyau. Par exemple, PcreateProcessNotifyRoutine, PcreateThreadNotifyRoutine.
Où et comment ces rappels et d'autres sont appelés peuvent être vus dans les fonctions du noyau correspondantes. Un exemple d'appel de rappels lors de la création d'un processus est illustré ci-dessous:
La boucle de rappel dans CreateProcessW → NtCreateUserProcess → PspInsertThread. Autrement dit, appelle ces rappels par le thread de processus parent qui a appelé CreateProcess.
• Fenêtres de suivi d'événements (ETW).
ETW fonctionne de la même manière pour les occurrences d'événements. Regardons à nouveau l'exemple de création de processus. Lorsque CreateProcessW est appelé, le thread de processus parent exécute les actions suivantes (schéma simplifié):
CreateProcessW (kernel32.dll)
NtCreateUserProcess (ntdll.dll, passer en mode noyau)
NtCreateUserProcess (ntoskrnl.exe, puis travailler en mode noyau)
PspInsertshread (ici aussi les callbacks i)
EtwTraceProcess
EtwpPsProvTraceProcess
EtwWrite
Ainsi, le thread de processus parent est l'initiateur direct de l'événement ETW. L'enregistrement d'autres événements, par exemple des événements de réseau, fonctionne à peu près de la même manière. Voici un exemple de création d'événements liés à l'activité du réseau:
Fonction de base EtwpNetProvTraceNetwork
De ce qui précède, deux conclusions découlent:
- Sysmon et EDR utilisent uniquement les fonctionnalités natives de Windows pour collecter les événements afin de garantir un fonctionnement fiable.
- Un attaquant pourrait utiliser des techniques d'obfuscation qui s'appliqueraient à la fois à Sysmon et à EDR. Les rappels du noyau peuvent être déposés dans la mémoire du noyau à l'aide d'un pilote signé. Et connaissant le mécanisme d'enregistrement d'événement décrit, vous pouvez comprendre pourquoi Sysmon et certains EDR ne peuvent pas détecter certaines techniques d'injection dans le processus (par exemple, en utilisant APC) ou l' usurpation PPID .
Sysmon
L'utilisation de Sysmon vous permet d'étendre les capacités de l'audit standard. Dans ce cas, les événements sont enregistrés dans un journal séparé. Quelques exemples d'informations non trouvées dans l'audit Windows, mais disponibles dans Sysmon:
- des informations plus détaillées sur les fichiers exécutables en cours de lancement (hachage, nom d'origine, signature numérique, etc.);
- chargement de pilotes et de bibliothèques;
- changer l'état du service Sysmon;
- créer un fil dans un autre processus;
- accès au processus;
- hachages de fichiers créés dans des flux de données alternatifs;
- création de tuyaux.
Les avantages de la surveillance des processus décrits ci-dessus sont évidents (il existe de nombreuses règles et articles sur le thème de la détection de diverses techniques dans le domaine public). De plus, il devient possible de détecter de nouvelles variations de techniques bien connues:
- la copie de LOLBin sous un nom différent peut être détectée par la correspondance des champs OriginalFileName, Image et Hashes de l'événement de création de processus;
- vous pouvez détecter le chargement de bibliothèques non signées, ce qui, dans certains cas, vous permet de détecter le détournement de DLL;
- il est possible de détecter Mimikatz en utilisant les méthodes ci-dessus ou par l'événement ProcessAccess dans le processus lsass.exe.
L'audit est configuré à l'aide d'un fichier de configuration, ce qui dans le cas de la création de fichiers et des événements de registre est beaucoup plus pratique que la configuration ACL.
Dans ce cas, les points suivants doivent être pris en compte:
- Le besoin d'outils supplémentaires. Étant donné que les événements sont journalisés, comme dans le cas de l'audit Windows avancé, Sysmon doit être utilisé avec d'autres outils, par exemple SIEM.
- . , Sysmon . .
, . - -. , . , Sysmon . : , , .
Vous pouvez en savoir plus sur les moyens de contourner certaines fonctionnalités de Sysmon ici , ici et ici .
Détection et réponse des points finaux
À mesure que l'infrastructure croît en taille et en criticité, les failles de Sysmon deviennent importantes. Les EDR de haute qualité présentent plusieurs avantages (nous ne décrirons pas les capacités spécifiques au produit):
1) Ensemble étendu d'événements enregistrés
Tout dépend du produit spécifique. Par exemple, il existe une journalisation de toutes les entrées interactives sur la ligne de commande, ce qui permet de détecter des techniques qui ne sont pas visibles ni avec l'audit Windows ni avec Sysmon.
Il vaut la peine de décrire le cas d'utilisation de Mimikatz que nous avons vu lors de l'une de nos enquêtes. Il existe un fichier exécutable qui contient des Mimikatz chiffrés dans les ressources. Lorsque le mot de passe et le vecteur d'initialisation corrects sont passés sur la ligne de commande, Mimikatz décrypte avec succès et accepte les commandes sur la ligne de commande interactive. En même temps, aucune commande n'apparaît dans les événements de création de processus.
La journalisation des entrées interactives, à son tour, aidera à détecter un tel cas si Mimikatz n'est pas recompilé (dans notre cas, les lignes n'ont pas été modifiées).
2) Gestion et configuration centralisées
Dans une grande infrastructure, la possibilité de vérifier de manière centralisée l'état de santé et de modifier les paramètres de l'agent est essentielle. Sans cela, la réponse peut être retardée d'heures, voire de jours.
3) Autosuffisance
Dans la plupart des cas, EDR est un produit autonome avec sa propre interface, qui peut être utilisé non seulement en conjonction avec d'autres outils, mais également séparément.
Il peut être possible d'écrire vos propres règles de détection. Étant donné que l'ensemble des données disponibles est plus important que celui de l'audit avancé ou de Sysmon, les analystes ont plus d'occasions de détecter différents modèles d'attaque.
4) Possibilité de réponse active
Lors d'une réponse à un incident, la nécessité d'agir sur plusieurs systèmes devient presque toujours un problème.
EDR vous permet d'effectuer de nombreuses actions sous une forme interactive pratique:
- travailler avec les fichiers et le registre
- bloquer les connexions réseau
- terminer les processus
- scan avec les règles yara
- collecter des artefacts pour une analyse plus approfondie (par exemple, une image mémoire)
- automatisation de tout ce qui précède à un degré ou à un autre
- et beaucoup plus.
Étant donné que la classe de produits EDR a été créée à l'origine pour fournir une surveillance et une réponse de l'hôte, ces solutions présentent beaucoup moins d'inconvénients dans ce domaine. Tout dépend des capacités d'un produit particulier. Non sans angles morts, par exemple, il n'y a pas de possibilité d'analyse approfondie de l'activité du réseau (un problème qui est résolu avec succès par les produits NTA / NDR).
La pratique montre que la présence d'EDR dans l'infrastructure élargit considérablement les capacités d'identification des menaces, accélère la réponse et facilite l'enquête sur les incidents, permettant une reconstruction plus précise de la chronologie des événements. Sysmon agit comme une demi-mesure, et dans le cas d'un seul audit standard, facile à contourner, vous devez vous contenter d'artefacts moins informatifs, y compris inhabituels, dont nous avons parlé dans l' article précédent .
Publié par Asker Jamirze, Ingénieur d'investigation technique senior, Département des enquêtes sur les incidents, JSOC CERT