Cuckoo – Traiter le résultat avec Gephi

Vous avez installé cuckoo et analysé plein de malwares. C’est sympa tout ça, mais vous n’avez peut-être pas envie de lire tous les rapports ?

Dans ce post, on va créer un rendu visuel de ces analyses, duquel on pourra extraire des informations pertinentes grâce au logiciel Gephi !


L’idée

Le but du traitement à réaliser est de trouver un moyen pour regrouper/classer les fichiers analysés. Dans les rapports, on va trouver pour chaque malwares plein d’indications, je vais appeler ça des comportements.

L’idée de départ était de regrouper les malwares étudiés entre-eux en fonction de leur comportement observé. Pour cela, chaque comportement partagé entre deux malwares donne un lien entre eux deux. Par conséquent, plus il existe de lien entre les malwares, plus leur comportement global est proche.

Cette idée pose deux problèmes majeurs :

  • En faisant comme ça on ne voit que les liens entre les malwares, c’est un peu pauvre, on veut aussi s’intéresser aux comportements.
  • C’est très lourd, ça implique de parcourir tous les rapports plusieurs fois, il faut aussi créer des algorithmes complexes pour identifier tous ces comportements (on ne peut pas se contenter de comparer chaque lignes)

Traitement

Pour résoudre ce problème, on va l’attaquer autrement. Les comportements seront prédéfinis (base comportementale) et correspondront chacun à un nœud. Les malwares qui auront ce comportement auront un lien avec lui. On aura donc un graphique bipartite (malwares et comportements ensembles).

Construire une base comportementale ça prend du temps, celle que je vous propose est donc loin d’être exhaustive et peut posséder des erreurs.
Voici un exemple de comportement :

SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32
2
Lancement automatique (Drivers32)

La première ligne désigne ce qu’il faut rechercher dans le rapport. La seconde pour le type (2 = clé de registre) et la troisième est une explication courte.

Base comportementale : base_comportement base_comportement_details

Maintenant il ne reste plus qu’à parcourir les résultats.
On met le contenu du répertoire storage/analyses dans un dossier à part avec les bases et le programme de traitement.

Ce programme a été écrit en C, c’est pas très jolie, c’est lourd, mais ça fait son travail.

Code : main.c

En sortie on aura 2 fichiers GDF (un format compréhensible par Gephi), l’un contiendra les nœuds, l’autre les liens.

s256, ,malware,'Trojan-FakeAV.Win32.SmartFortress2012.acxa',12

Voilà un exemple de nœud, c’est un malware détecté en tant que “Trojan-FakeAV.Win32.SmartFortress2012.acxa” par 12 antivirus.

Quand on assemble les deux fichiers on obtient un fichier GDF prêt à être chargé sur Gephi : result.gdf.

Gephi

Gephi est un logiciel open-source multiplate-forme de visualisation développé en Java.

Télécharger Gephi.

On charge le fichier GDF, il faut supprimer les nœuds orphelins si il y en a.

Dans l’onglet Laboratoire de données on retrouve nos nœuds et liens. La partie Vue d’ensemble nous permet de modifier notre graphique, on peut commencer par lui appliquer un algorithme de spatialisation comme le Force Atlas 2.

Graphique bipartite gephi

On obtient un (beau) graphique. On peut l’exporter au format pdf par exemple : gephi_bipartite_1.pdf

Graphique bipartite résultat

Un cluster bipartite 1

Un cluster bipartite 2

La suite par ici.

Pour toutes questions ou commentaires, vous pouvez aller sur le forum. ici

3 thoughts on “Cuckoo – Traiter le résultat avec Gephi

  1. Pingback: Cuckoo – Traiter le résultat avec Gephi 2 | Security-X

  2. Pingback: Analyse de malwares avec Cuckoo | Security-X

  3. Pingback: Cuckoo – Traiter le résultat avec ...

Comments are closed.