Scénario de formation - Modification de mémoire
Nom du groupe
Données de formation - SQL Process Hollowing (Hive)
Scénario
Dans ce scénario de formation, nous allons exécuter une charge utile de rançongiciel via le process hollowing, une technique d'injection / d'évasion où un processus est démarré puis voit son code exécutable modifié pour effectuer un autre comportement.
Les techniques opérant en mémoire figurent parmi les plus difficiles à détecter, et encore plus difficiles à traiter par une réponse automatisée, c'est pourquoi elles sont souvent ignorées. La mémoire est par définition volatile et en constante évolution. Identifier des modifications au sein de la mémoire d'un processus nécessite d'identifier les sections pertinentes, puis de les évaluer à différents moments du cycle de vie du processus afin de déterminer si elles ont été altérées.
Comment l'identifier

Les réponses liées à des modifications de mémoire sont de loin les plus difficiles à examiner. Comme la mémoire est éphémère, elle est traitée comme une « boîte noire » et généralement tenue à distance. La bonne nouvelle, c'est qu'à partir de Cyber Crucible 4.4.1.3, nous disposons désormais de la capacité de collecter automatiquement la télémétrie des échantillons de mémoire modifiés, en identifiant les plages de mémoire modifiées ainsi que les modifications exactes qui y ont été apportées.
Ce type d'analyse est toutefois très laborieux à réaliser. Une bonne première étape consiste donc à examiner les processus associés dans le tableau de bord afin de se faire une idée du comportement lié. Étant donné que le processus en question ici est un SQLCMD.exe signé, il devrait rapidement être évident de déterminer s'il s'agit d'un processus SQL bénin ou de quelque chose de plus préoccupant.

Jusqu'ici, tout va bien : il s'agit de processus SQL normaux, sans rien de nécessairement suspect ou non. Cela dit, il n'est jamais rassurant de voir des CMD impliqués dans des réponses automatisées. Approfondissons un peu plus.

Et voilà ! Nous pouvons continuer à faire défiler et constater de plus en plus de comportements de ce type. L'exécutable SQLCMD exécute toutes sortes de commandes pour désactiver des services, modifier des configurations, et tout ce qu'un rançongiciel ferait de manière préventive.


Nous pouvons ici avoir un petit aperçu de ce qui nous attend lorsque nous commençons à approfondir l'analyse des différences en mémoire. La plupart des techniques suffisamment sophistiquées pour exécuter un logiciel malveillant entièrement en mémoire vont également obfusquer leur code en mémoire. Cela rend l'analyse extrêmement difficile, mais l'accès à cette télémétrie supplémentaire s'est déjà révélé inestimable pour l'identification des incidents ainsi que pour l'ajustement des comportements.
Documentation pertinente
Injection de processus
Mitre T1559 - La communication inter-processus peut fournir un contrôle sur le processus cible depuis l'injecteur une fois l'injection terminée.
Mitre T1106 - Les API natives constituent souvent l'accès le plus direct aux fonctionnalités du système d'exploitation pour accéder aux fichiers, exécuter des processus, et plus encore.
Mitre T1569 - L'injection dans un service système tel qu'un
svchostexistant peut permettre de déguiser du code malveillant afin qu'il soit signalé comme provenant d'un processus connu et fiable.Mitre T1055 - L'injection de processus, généralement utilisée pour exécuter du code malveillant au sein d'un processus cible tout en permettant au processus d'origine de continuer.
Mitre T1543 - La création ou la modification d'un processus système peut permettre de déguiser du code malveillant en un processus système normal et fiable afin d'échapper à la détection des logiciels malveillants.