Inside Out - Blog CyberSécurité Blog

L’analyse forensique de la mémoire dans le cadre de la réponse aux incidents

L’analyse forensique de la mémoire dans le cadre de la réponse aux incidents | Varonis

J’ai toujours trouvé que l’analyse forensique de la mémoire était très utile dans le cadre de la réponse à un incident de cybersécurité. En capturant la mémoire d’un appareil compromis, vous pouvez rapidement effectuer une analyse pour identifier les malwares potentiels et recueillir les indicateurs de compromission (IOC), qui peuvent ensuite servir à identifier d’autres appareils compromis.

Dans cet article, j’aborderai les sujets suivants :

  • Présentation de l’analyse forensique de la mémoire
  • Que sont les données volatiles et pourquoi sont-elles pertinentes dans le cadre de l’analyse forensique de la mémoire
  • Qu’est-ce qu’un vidage mémoire/de la RAM
  • Avantages de l’analyse forensique de la mémoire
  • Découverte de certains outils prisés qui peuvent être utilisés pour analyser la mémoire

Présentation de l’analyse forensique de la mémoire


L’analyse forensique de la mémoire est le processus qui consiste à capturer la mémoire d’exécution d’un appareil, puis à analyser la sortie capturée pour déceler la présence d’un logiciel malveillant. Contrairement à l’analyse forensique sur disque dur, lors de laquelle le système de fichiers d’un appareil est cloné et chaque fichier présent sur le disque peut être récupéré et analysé, l’analyse forensique de la mémoire se concentre sur les programmes en cours d’exécution sur un appareil lors de la capture du vidage mémoire.

La mémoire d’un appareil s’appelle la mémoire vive (RAM). Ainsi, quand vous achetez un nouvel ordinateur portable, vous pouvez voir dans les spécifications la taille du disque dur, par ex. 1 To, et la quantité de RAM, par ex. 16 Go.

Lorsqu’une application est ouverte sur un appareil, une certaine quantité de RAM lui est allouée afin qu’elle puisse s’exécuter. Si plusieurs applications sont ouvertes, l’appareil doit allouer une plus grande quantité de RAM. C’est pour cette raison que les appareils dotés d’une RAM plus importante sont plus rapides : ils peuvent exécuter plus d’applications en même temps.

Que sont les données volatiles ?

Tout technicien de réponse aux incidents doit être conscient des données volatiles ; en effet, lorsqu’un appareil est compromis, l’une des premières réactions peut être d’éteindre cet appareil pour contenir la menace.

Cette approche pose problème : tout malware s’exécutant sur l’appareil utilise sa mémoire vive, et par conséquent l’ensemble des données du malware liées aux connexions réseau et aux processus en cours seront perdues. Ces données volatiles ne sont pas écrites sur le disque et changent constamment dans la mémoire ; la mise hors tension de l’appareil détruit donc des preuves précieuses.

Le confinement réseau (isolement de l’appareil du reste du réseau) est la méthode recommandée pour écarter un appareil compromis. Cela permet de contenir l’incident de manière sécurisée tout en évitant la destruction des données volatiles en mémoire et en assurant la conservation de preuves importantes.

Qu’est-ce qu’un vidage mémoire ?

Un vidage mémoire, ou vidage de la RAM, est un instantané de la mémoire qui a été capturé pour analyser cette mémoire. Il contient des données concernant tous les processus en cours d’exécution au moment de sa capture.

Avantages de l’analyse forensique de la mémoire dans le cadre de la réponse aux incidents

Répondre à un incident de cybersécurité peut s’avérer complexe. Il arrive que le serveur compromis n’alimente aucun SIEM en journaux d’événements, voire même qu’il n’y ait pas de journaux du tout ! Dans ces circonstances, comment pouvez-vous commencer à enquêter sur l’appareil compromis et à rassembler des preuves en temps opportun dans le cadre d’un plan de réponse aux incidents ?

Vous devez d’abord confirmer la présence d’un malware sur l’appareil avant de pouvoir capturer un échantillon et d’entamer la rétro-ingénierie du malware au moyen d’outils spécialisés.

La capture d’une image mémoire peut prendre du temps, et il vous faudra ensuite transférer cette image (dont la taille pourrait être de 100 Go) vers un emplacement où elle pourra être analysée. Sans oublier le temps que prendra l’analyse de l’équipe de réponse aux incidents.

Face à ces contraintes, l’analyse de la mémoire peut être un atout majeur pour l’équipe de réponse. Alors qu’un disque dur serveur peut dépasser les 100 Go, la RAM de l’appareil est beaucoup plus petite, généralement entre 16 et 32 Go. La capture d’un vidage de la RAM d’un appareil sera donc bien plus rapide et moins volumineuse lors du transfert de la sortie.

En donnant la priorité à la capture d’une image de la RAM plutôt qu’à celle d’une image du disque dur lors du triage relatif à un incident, vous pourrez commencer à analyser le vidage de la RAM en vue de trouver des indicateurs de compromission tout en travaillant à l’obtention d’une image du disque dur.

Comment capturer la RAM pour l’analyser

Si vous répondez à un incident et requérez un vidage de la RAM, la méthode de capture des données diffère selon que l’appareil est une machine physique ou virtuelle.

Capturer la RAM d’une machine physique

La capture de la RAM d’une machine physique peut se faire à l’aide de plusieurs outils ; celui que j’ai souvent utilisé par le passé, et que j’ai trouvé très fiable et facile à utiliser, s’appelle WinPmem.

Le lien ci-dessus vous permet de télécharger une version 64 bits ou 32 bits de WinPmem. Une fois téléchargée la version appropriée, ouvrez une invite de commande avec des privilèges d’administrateur et accédez à l’emplacement du disque sur lequel l’exécutable a été téléchargé.

Conseil : lorsque vous capturez la mémoire d’un appareil, exécutez l’outil avec lequel vous effectuez le vidage mémoire à partir d’un périphérique USB dans la mesure du possible, et videz la sortie vers un partage réseau

Dans l’exemple ci-dessous, j’ai sauvegardé WinPmem dans mon dossier Téléchargements.

Pour lancer une capture de la mémoire, utilisez la syntaxe suivante en vue de créer un fichier de sortie brut.

winpmem_mini_x64.exe <nomdufichier>.raw

Dans l’image ci-dessus, j’ai appelé le fichier de sortie « physmem.raw ». WinPMem affichera ensuite la progression au fur et à mesure de la capture de la RAM.

Un fichier physmem.raw, qui contient la mémoire capturée de l’appareil, a été créé.

FTK Imager est un autre outil appréciable pour capturer les vidages de RAM. Une fois qu’il est installé, sélectionnez « Fichier », puis « Capturer la mémoire ».


Choisissez l’emplacement où vous souhaitez enregistrer la sortie en sélectionnant « Parcourir », puis « Capturer la mémoire ».

FTK Imager affichera alors la progression du processus de capture de la mémoire.


L’état sera ensuite mis à jour pour confirmer que la capture de la mémoire a été effectuée, et la sortie sera enregistrée à l’emplacement choisi.

Capturer la RAM d’une machine virtuelle

Il est facile de capturer la mémoire d’une machine virtuelle – un atout majeur lorsque vous devez répondre à un incident et que la rapidité est essentielle.

Prendre l’instantané d’une machine virtuelle crée un fichier vmem, qui peut ensuite être analysé à l’aide d’un outil tel que Volatility.

Outils d’analyse forensique de la mémoire

Vous trouverez ci-dessous quelques-uns des outils que j’ai déjà utilisés pour l’analyse de la mémoire. Bonne nouvelle, ils sont tous gratuits !

Volatility

Volatility est mon outil de prédilection pour l’analyse de la mémoire ; il existe pour Windows et Linux. Cet outil en ligne de commande vous permet d’extraire rapidement des informations utiles telles que les processus qui s’exécutaient sur l’appareil, les connexions réseau et les processus contenant du code injecté. Vous pouvez même vider les fichiers DLL et les processus pour une analyse plus approfondie.

Volatility prend également en charge l’analyse des vidages mémoire à partir d’appareils Unix, et la communauté forensique a conçu une vaste gamme de plugins.

L’un des problèmes de Volatility était la nécessité de définir un « profil » correspondant au système d’exploitation de l’appareil sur lequel la mémoire avait été capturée pour que l’outil fonctionne. Toutefois, la définition d’un profil n’est plus nécessaire dans Volatility3, ce qui accroît encore sa facilité d’utilisation.

L’image ci-dessous montre comment Volatility peut être utilisé pour analyser un fichier vmem, et qu’aucun profil de système d’exploitation ne doit être déclaré.

 

Rekall

Rekall est similaire à Volatility car il s’agit d’un autre outil en ligne de commande. Le choix de l’un d’entre eux dépend de vos préférences personnelles.

Redline

Redline est un outil d’analyse de la mémoire qui, contrairement à Volatility et à Rekall, est uniquement à interface utilisateur graphique (GUI). L’inconvénient de Redline est qu’il prend uniquement en charge l’analyse des périphériques Windows.

L’image ci-dessous montre à quel point il est facile de filtrer des processus spécifiques pour rendre l’analyse de la mémoire bien plus facile et accessible.

Quels indices rechercher dans un vidage mémoire ?

J’ai toujours à l’esprit l’adage selon lequel « un malware à beau se cacher, il doit s’exécuter ». Les malwares sont généralement dissimulés dans des endroits auxquels l’utilisateur ne peut pas accéder, mais lorsqu’un malware s’exécute, l’appareil fait apparaître un processus en cours d’exécution pour ce malware. Par conséquent, le moyen le plus simple de rechercher un logiciel malveillant est d’examiner de près les processus en cours sur un appareil.

Repérez les noms de processus que vous ne reconnaissez pas en examinant les listings de processus. Lorsque vous recherchez ces noms sur Google, des résultats s’affichent-ils ?

L’examen de l’arborescence des processus est un autre excellent point de départ. Regardez quels processus ont été créés et quels sont les processus parents. L’activité repérée a-t-elle lieu d’être ?

Il est particulièrement recommandé d’examiner les processus portant des noms Windows légitimes tels que « svchost.exe ». Les processus système Windows ont toujours des processus parents et des emplacements d’exécution bien définis. Si vous repérez un processus en cours d’exécution depuis un emplacement inattendu, cela peut valoir la peine de l’examiner plus avant.

Ce poster de SANS, qui affiche des conseils pour « dépister le mal », est une excellente ressource qui vous aidera à identifier tout processus malveillant.

Vérifiez les connexions réseau. Existe-t-il des connexions à des ports inhabituels ? Recherchez ce que l’on appelle des « mains de poker », c’est-à-dire des ports établis par les hackers et numérotés avec les mêmes chiffres, par exemple « 4444 », ou avec une suite de chiffres incrémentielle, par exemple « 1234 ».

Quelques réflexions pour conclure

Cet article illustre comment l’analyse forensique de la mémoire peut être un excellent outil à avoir dans votre arsenal de réponse aux incidents. Personnellement, il m’est arrivé d’être appelé au petit matin et de devoir fournir rapidement des instructions et des conseils sur une infection potentielle par un logiciel malveillant. L’extraction d’un fichier vmem et son analyse à l’aide de l’outil Volatility constituent un excellent moyen de procéder rapidement au triage de l’incident.

Vous souhaitez en savoir plus sur la façon dont Varonis peut vous aider à améliorer la posture de sécurité de votre entreprise ? Découvrez comment DATALERT et la plateforme de sécurité des données de Varonis peuvent détecter les menaces et protéger vos données sensibles.

Nous sommes Varonis.

Depuis 2005, nous protégeons les données les plus précieuses du monde des mains de vos ennemis grâce à notre plateforme de sécurité des données, leader sur le marché.

Comment fonctionne Varonis ?