Dans l’article précédent, nous avons installé et configuré notre super environnement d’analyse de logiciel malveillant : Analyser un logiciel malveillant comme un nul(l) 1/2.
Analysons maintenant les rapports fournis par Cuckoo.
Analyse des fichiers créés
L’un des rapports que fournit Cuckoo contient la liste des fichiers créés par l’exécutable que nous analysons.
On remarque ici que notre exécutable crée le dossier d’installation du jeu : C:\Program Files (x86)\Mark of the Ninja
Tous les fichiers du jeu y sont placés et apparemment aucun fichier superflu n’est créé dans ce dossier :
- Le lanceur du jeu (game.exe)
- Un exécutable servant à désinstaller le jeu (TDU3k.exe)
- Tout un tas de fichiers de ressources
Le seul comportement étrange réside dans la modification de fichiers uxtheme.* dans le dossier système de Windows.
Nous devons vérifier manuellement le contenu de ces fichiers et les comparer avec des versions dignes de confiance à l’aide de diff ou tout autre logiciel de comparaison de fichiers binaires.
Mais là encore…
Les fichiers créés semblent légitimes.
Analyse des modifications de registre
Voyons maintenant les modifications apportées à la base de registre de notre système d’exploitation : n’y a-t-il rien d’anormal ?
En bref :
- Le support des caractères « surrogate » : http://winvnkey.sourceforge.net/webhelp/surrogate_fonts.htm
- Une variable indiquant le dossier d’installation dans la clef HKEY_CURRENT_USER\Software\THETA AnIn
Ici encore, rien d’alarmant. Rien n’est lancé automatiquement au démarrage du système.
Analyse rapide des échanges réseau
A priori, l’application que nous analysons n’installe aucun fichier ou clef de registre suspect.
Cependant, une application malveillante pourrait tout de même être lancée et exécutée en mémoire !
Pour nous assurer que ce n’est pas le cas, nous analyserons le trafic réseau durant l’exécution de notre programme.
Requêtes DNS
La plupart des logiciels malveillants servant à s’introduire dans un système se connectent à un centre de contrôle. Pour ce faire, ils utilisent souvent une résolution DNS afin d’assurer un changement régulier d’adresse IP du centre de commandes pour tenter d’échapper à la justice.
Voyons les requêtes DNS exécutées durant notre analyse :
Seuls des noms de domaines appartenant à Microsoft ont été résolus. Il s’agit sans aucun doute d’un trafic « normal » dû à l’exécution « normale » de Windows… « Normal » entre guillemets car Windows qui entretient une connexion régulière sur des sites de Microsoft, je trouve ça louche… bref.
Adresses IP contactées
Au-delà des résolutions de noms de domaines, certaines communications réseau ont directement été effectuées vers des adresses IP. Nous nous assurerons de la légitimité de chacune.
- 192.168.56.101 : l’adresse de mon Kali Linux.
- 224.0.0.22, 224.0.0.252 et 224.0.0.253 : des adresses réservées au multicast, nous verrons à quoi elles ont servi plus tard.
- 8.8.8.8 : un serveur DNS de google.
- 239.255.255.250 : une adresse réservée au multicast pour la résolution des hôtes.
- 192.168.56.255 : l’adresse de broadcast du réseau local, certainement utilisé par Windows pour lister les machines connectées.
- 94.245.121.253 et 94.245.121.254 : des adresses utilisées par Microsoft.
Ici encore, rien d’alarmant.
Analyse poussée des échanges réseau
Cuckoo joint à son rapport HTML un fichier dump.pcap. Ce fichier contient l’intégralité des échanges réseau effectués lors de l’exécution de notre logiciel malveillant.
Un logiciel comme WireShark est nécessaire pour l’ouvrir.
Vu la quantité de messages qui ont transité sur le réseau, nous devons concentrer notre analyse sur les adresses IP que nous ne connaissons pas forcément.
Voyons à quoi servent ces fameuses adresses multicast.
Nous voyons assez rapidement qu’il s’agit du protocole IGMPv3. Si l’on analyse les messages, on remarque aussi qu’ils ont une structure on ne peut plus normale.
Notez qu’en réalité, les adresses multicast de 224.0.0.1 à 224.0.0.254 sont réservées à des protocoles nécessaires au bon fonctionnement des réseaux (OSPF, IPX, IGMP, etc.). Ces adresses ne passent pas les routeurs et appartiennent exclusivement à votre réseau local.
Nous pouvons remarquer au passage que l’adresse de broadcast 192.168.56.255 est utilisée par Windows pour s’inscrire dans les groupes réseau de Microsoft :
Ici encore, il s’agit d’un protocole tout à fait standard : NBNS. C’est le protocole qui permet de publier votre ordinateur sur votre réseau local afin d’être visible par toutes les autres machines connectées.
Conclusion
Cette application ne crée aucun fichier suspect, pas plus que de clefs de registres étranges.
Aucun trafic réseau inhérent à l’application est détecté durant son exécution : nous n’avons vu que des messages échangés lors d’un fonctionnement normal de Windows.
Nous pouvons alors dire que cette application ne présente pas de menace. Nous pourrions pousser notre étude en analysant notre système durant l’exécution des applications game.exe et TDU3k.exe ainsi que de l’intégralité des fichiers DLL créés… Mais le processus d’analyse est sensiblement le même, je ne vais donc pas le faire.
Note : Si vous aviez eu le réflexe, vous auriez pu chercher le nom du logiciel malveillant repéré par certain utilisateurs (SPR/Tool.Keygen.3507). Cela vous aurait évité toute cette analyse car « Tool.Keygen » désigne en réalité les générateurs de clefs utilisés par les crackers, parfois embarqués dans les logiciels téléchargés comme celui que nous venons d’analyser. Certains antivirus comme Avira considèrent que ces applications sont malveillantes afin d’enrayer le piratage sur Internet.
Vous pouvez donc continuer à jouer gratuitement à un jeu génial, qui a nécessité de nombreuses heures de travail à des personnes comme vous et moi. Encore une fois, 15€ pour ce jeu, ce n’est pas excessivement cher : http://store.steampowered.com/app/214560/?l=french.
Parce que je n’ai pas la science infuse : sources
- http://winvnkey.sourceforge.net/webhelp/surrogate_fonts.htm
- http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Surrogates
- http://www.ip-adress.com/whois/94.245.121.253
- http://www.lovemytool.com/blog/2010/04/top-10-wireshark-filters-by-chris-greer.html
- http://fr.wikipedia.org/wiki/Multicast
- http://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP
- http://fr.wikipedia.org/wiki/Internet_Group_Management_Protocol
Sacré Avira !
Merci pour le tuto ❤
Arfffff. Tu peux passer la libpcap. Sur windows je ne pourrai pas te donner un exemple. Mais sur linux, tu peux dropper les packets de la table prerouting raw et envoyer directement tes packets par postrouting raw . La libpcap n’y verra rien.
Salut, J’ai découvert ton site hier, et c’est une vraie mine d’or, surtout pour un débutant en sécurité informatique comme moi, merci à toi !
J’ai cependant plusieurs questions concernant ce tutoriel, quelles auraient été les étapes si le logiciel était réellement malveillant ? Je veux dire, comment obtenir la signature du dit logiciel ? Comment l’intégrer à l’antivirus si il n’était pas détecté, si c’est possible (je suppose que cela diffère selon l’antivirus utilisé) ? Et comment réparer le logiciel sans détruire son intégrité (que le jeu fonctionne toujours, et que le virus soit inactif/détruis) ?
Merci d’avance pour ta réponse. Continue, super boulot !
Bonjour,
Pour que le fichier soit reconnu par un antivirus, le moyen le plus simple serait de l’envoyer à l’éditeur.
En ce qui concerne la réparation du logiciel, il n’y a pas 36 solutions : l’assembleur.
Tu devras désassembler ton application et rendre inopérant la portion de code malveillante (en la remplaçant par des « nop » par exemple).
Détecter quelle portion de code est malveillante est une autre paire de manches… Ça peut s’apparenter aux méthodes utilisées pour contourner les sécurités d’un logiciel : Le reverse engineering comme un nul(l) 1/?.