L'outil PeStudio s'utilise pour l'analyse statique des logiciels malveillants, et c'est l'un de mes outils préférés d'analyse de malwares.
Lorsque j'entame l'analyse d'un malware, je commence toujours par le charger dans PeStudio. Il fournit énormément de données sur l'échantillon ; c'est une véritable mine d'informations qui vont servir de base à mon rapport. PeStudio est idéal pour réaliser le triage initial d'un échantillon de malware.
Dans cet article, je vais vous présenter PeStudio et certaines de ses principales fonctionnalités, et vous expliquer comment vous pouvez l'utiliser pour démarrer l'analyse d'un malware.
Structure et fonctionnalités de base de PeStudio
J'apprécie particulièrement la facilité d'utilisation de l'outil PeStudio, et sa disposition claire et simple. Double-cliquez sur l'icône de bureau pour ouvrir l'outil, et faites simplement glisser l'échantillon de malware dans l'outil pour commencer à l'étudier.
Plusieurs onglets s'offrent maintenant à l'utilisateur, fournissant diverses informations extraites de l'échantillon par PeStudio
Onglet principal
Lors de l'ouverture d'un échantillon de malware dans PeStudio, l'utilisateur voit apparaître l'onglet « Main » (Principal).
Cet onglet donne des informations comme les hachages de l'échantillon. Si vous êtes confronté à un incident lié à un malware dans votre organisation, vous pouvez utiliser ces informations pour commencer à bloquer l'accès et à rechercher les appareils dont le système de fichiers contient ces hachages.
PeStudio fournit également les premiers octets en hexadécimal ; dans l'image ci-dessus nous pouvons voir la séquence « 4D 5A ». Cette information est utile car elle confirme que le fichier est bien un exécutable Windows. Les premiers octets de l'en-tête d'un fichier auront toujours le même motif selon le type de fichier. En tant qu'utilisateurs Windows, nous identifions généralement un fichier par l'extension ajoutée au nom du fichier, par ex. « .exe ». Toutefois, le système d'exploitation reconnaît chaque type de fichier d'après le motif d'octets dans l'en-tête ; un exécutable Windows commence toujours par « 4D 5A » en hexadécimal, ce qui équivaut aux valeurs « MZ » en ASCII.
L'entropie du fichier est également indiquée, ce qui est utile car la valeur d'entropie peut aider à déterminer si le malware est packé ou non. En effet, les malwares sont souvent packés, de sorte que leur code malveillant est masqué. La création d’un tel code demande du temps : les malandrins mettent donc tout en œuvre pour qu’il ne soit pas facile de l’étudier et de déterminer rapidement ce qu’il fait et comment le neutraliser.
L’entropie est mesurée sur une échelle allant de 0 à 8. Plus la valeur est élevée, plus il y a des chances que le malware soit packé ; des valeurs de 7-8 en sont quasiment la confirmation. C'est utile, car PeStudio nous indique ainsi que nous devrons dépacker le malware afin d'en extraire des indicateurs de compromission basés sur les données (IOC) dont nous pourrons nous servir.
Dans l'image ci-dessous, nous pouvons voir que PeStudio a identifié une signature pour UPX, un packer courant utilisé par les auteurs de malware. Donc, grâce à PeStudio, nous pouvons commencer à déterminer si un échantillon est packé ou non.
Onglet Indicateurs
L'onglet suivant dans PeStudio est l'onglet « Indicators » (Indicateurs), qui met en évidence les données de l'échantillon potentiellement malveillantes et donc intéressantes pour l'analyste de malware.
L'image ci-dessus montre que PeStudio a identifié plusieurs indicateurs et les a classés sur une échelle allant de 1 à 3, le niveau 1 étant un indicateur de malveillance probant. Dans cet exemple, l'outil a identifié des chaînes, des sections et des importations malveillantes et a trouvé un autre fichier au sein de l'échantillon.
Toutes ces informations sont utiles car PeStudio permet d'analyser en profondeur ces indicateurs suspects dans les onglets Chaînes, Sections et Importations situés sur le côté gauche.
Onglet Sections
Cet onglet affiche les différentes sections du fichier exécutable.
Dans l'image ci-dessus, nous pouvons voir les noms des sections associées au packer UPX, confirmant ainsi que le malware est effectivement packé. Nous constatons également que la section UPX1 contient le fichier qui a été mentionné en premier lieu dans l'onglet Indicateurs. Remarquez que cette section représente près de 88 % du fichier et possède aussi un niveau d'entropie élevé. Cela montre que le malware dépacké est stocké à cet emplacement. Une fois le malware dépacké, nous pouvons voir des sections plus typiques d'un exécutable.
L'image ci-dessus montre comment les noms des sections ont changé une fois le malware dépacké. Les sections peuvent s'appeler n'importe comment, mais certaines d'entre elles ont des noms que l'on retrouve couramment.
La section « .text » contient du code exécutable ; si nous examinons les colonnes des noms de sections, nous pouvons voir un « x » dans la colonne correspondant à la première section, à côté du volet d'autorisation, qui indique que cette section possède des autorisations exécutables.
Les sections « .rdata » et « .data » stockent des données ; comme on le voit, PeStudio a identifié que la section données est inscriptible.
La section « .idata » stocke la table des adresses d'importation (IAT), évoquée plus loin dans l'article.
La section « .rsrc » stocke les ressources pouvant être utilisées par le malware, comme les chaînes et les fichiers supplémentaires.
Onglet Bibliothèques
L'onglet « Libraries » (Bibliothèques) est utile car il affiche les fichiers DLL (Dynamic Link Library) en cours d'importation par le malware.
L'image ci-dessus montre que PeStudio a mis sur liste noire certains fichiers DLL, ce qui signifie qu'ils sont peut-être utilisés par le malware à des fins malveillantes. Si on examine les noms et les descriptions, il y a fort à supposer que urlmon.dll, wininet.dll et ws2_32.dll concernent la fonctionnalité réseau. Le rôle du fichier winmm.dll n'est pas immédiatement évident ; toutefois, une recherche rapide du fichier DLL sur Google peut vous éclairer.
Il semblerait que le malware importe peut-être des fonctionnalités servant à enregistrer de l'audio à partir d'un appareil piraté. Chaque fichier DLL contiendra un ensemble unique d'API ; il s'agit là de fonctions Windows légitimes qui peuvent être importées et utilisées par le malware. En cliquant sur l'onglet Importations, nous pouvons voir quelles sont ces fonctions.
Onglet Importations
L'onglet « Imports » (Importations) liste les fonctions/API que le malware a importées ; on l'appelle aussi IAT (table des adresses d'importation). Si on clique sur l'onglet « Blacklist » (Liste Noire), PeStudio triera l'API en déplaçant vers le haut toutes les fonctions mises sur liste noire.
Ces informations s'avèrent utiles pour comprendre comment le malware peut se comporter une fois qu'il a compromis un hôte. L'image ci-dessus montre l'API qui a été importée.
L'avantage, c'est qu'à côté de chaque nom d'API, PeStudio vous indique dans la colonne « group » (groupe) à quel type d'activité est liée l'API. Sur la capture d'écran ci-dessus, nous constatons que le malware a importé certaines fonctionnalités relatives au registre, et peut donc utiliser « RegCreateKeyA » pour créer une clé d'exécution qui lancera le malware au démarrage.
Nous pouvons également voir une API que PeStudio associe à l'activité réseau : « URLDownloadToFileA » indique clairement que le malware a la capacité de télécharger des fichiers supplémentaires à partir d'Internet. Ce type d'information est extrêmement utile, car avant d'exécuter le malware dans un laboratoire d'analyse des malwares ou dans Cuckoo Sandbox, nous pouvons nous faire une idée de son comportement.
Ces informations sont également utiles si par la suite, nous entamons la rétro-ingénierie du malware à l'aide d'un outil tel que x64dbg, car nous aurons déjà identifié certaines fonctionnalités intéressantes pour lesquelles nous pourrons définir certains points d'arrêt et voir quelles valeurs sont transmises à cette API par le malware.
Onglet Chaînes
L'onglet « Strings » (Chaînes) liste toutes les chaînes lisibles par un humain que PeStudio a identifiées dans le fichier binaire. PeStudio vous indique quel type de chaîne a été trouvé et où ces chaînes se trouvent dans le fichier binaire. Mais ce que je trouve utile dans cette partie de l'outil, ce sont les colonnes « blacklist », « hint » et « group ».
Les chaînes mises sur liste noire sont des chaînes que PeStudio a déjà trouvées dans des échantillons de malware. La colonne « hint » donne à l'utilisateur des indices sur la nature de la chaîne, tout comme la colonne « group ».
L'image ci-dessus montre que PeStudio a trouvé des chaînes intéressantes.
PeStudio confirme que la chaîne « Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0) » est un agent utilisateur. Il s'agit d'un ancien échantillon utilisé pour l'exemple dans ce blog. Toutefois, si un agent utilisateur unique était identifié dans le cadre d'un incident de cybersécurité, ce serait une information précieuse, car l'équipe de réponse aux incidents pourrait alors commencer à rechercher cet agent utilisateur dans les journaux proxy de l'organisation afin d'identifier tout hôte supplémentaire compromis.
La chaîne intéressante suivante est « Software\Microsoft\Windows\CurrentVersion\Run ». Il s'agit d'une clé d'exécution courante utilisée par les auteurs de malware pour lancer automatiquement le logiciel malveillant si l'appareil est redémarré. C'est ce qu'on appelle un mécanisme de persistance, et le malware utilise une fonctionnalité Windows légitime.
Les logiciels légitimes utilisent cette technique afin que votre logiciel préféré démarre automatiquement lorsqu'un appareil est mis sous tension. Si vous lancez l'éditeur du registre en tapant « regedit » dans la barre de recherche de Windows, vous pourrez vérifier quel logiciel dispose d'une clé d'exécution dans cet emplacement du registre pour démarrer automatiquement.
Dans l'image ci-dessus, j'ai navigué jusqu'à « HKLM\Software\Microsoft\Windows\CurrentVersion\Run » sur mon appareil hôte et je peux voir le logiciel qui sera lancé au démarrage. Dans mon laboratoire d'analyse des malwares, je pourrais également utiliser cette technique après avoir exécuté un malware pour voir s'il utilise un mécanisme de persistance, puis identifier l'emplacement du mécanisme de persistance du malware sur le disque.
Configuration de PeStudio
PeStudio est très facile à installer : rendez-vous à l'adresse https://www.winitor.com/ et la page suivante s'affichera.
Cliquez sur l'onglet « Download » (Télécharger), puis vous pourrez télécharger la version gratuite de PeStudio en cliquant sur « Download pestudio » (Télécharger pestudio).
Vous serez invité à télécharger la dernière version sous forme de fichier zip.
Il suffit de décompresser le fichier, et PeStudio fonctionnera comme une application autonome. Surveillez le site Web, car Marc Ochsenmeier, le créateur de PeStudio, fournit régulièrement des mises à jour de l'outil.
Conclusion
PeStudio est un excellent outil qui s'avère très complet, tant pour apprendre à analyser des malwares que pour trier un incident lié à un malware ou pour écrire une règle YARA. Chaque fois que j'ai besoin de créer un nouveau laboratoire d'analyse des malwares, c'est le premier outil que j'installe, et je l'utilise toujours en première instance pour examiner un malware.
Si vous cherchez à améliorer la posture de sécurité de votre organisation, consultez Varonis Edge : Détection de périmètre et Plateforme de sécurité des données.
Que dois-je faire maintenant ?
Vous trouverez ci-dessous trois solutions pour poursuivre vos efforts visant à réduire les risques liés aux données dans votre entreprise:
Planifiez une démonstration avec nous pour voir Varonis en action. Nous personnaliserons la session en fonction des besoins de votre organisation en matière de sécurité des données et répondrons à vos questions.
Consultez un exemple de notre évaluation des risques liés aux données et découvrez les risques qui pourraient subsister dans votre environnement. Cette évaluation est gratuite et vous montre clairement comment procéder à une remédiation automatisée.
Suivez-nous sur LinkedIn, YouTube et X (Twitter) for pour obtenir des informations sur tous les aspects de la sécurité des données, y compris la DSPM, la détection des menaces, la sécurité de l’IA et plus encore.