Dans la première partie de cet article, Lou vous expliquait comment travailler sur des leaks d’emails, en prenant pour exemple ceux du chef de campagne du Président Ukrainien. Cette fuite de données ne concernait que 167 emails, assez simple à analyser avec un simple éditeur de texte.
Toutefois, trouver un si petit nombre de mails est assez rare. Ainsi, dans la cas des « Macron Leaks » en 2017, ce ne sont pas moins de 21.000 mails, issus de plusieurs boites, qui avaient fuité, rendant une analyse manuelle assez complexe à mener dans un temps très court. Oui, explorer les mails à la main, surtout en si grande quantité, peut-être assez fastidieux.
Heureusement, il est possible d’automatiser un peu le processus d’analyse et utilisant quelques outils libres et gratuits.
Comment sont livrés les mails?
La première question à se poser est de savoir comment les mails sont leakés. S’agit-il d’un lot de fichiers EML (chaque mail livré un par un), d’une boite mbox?, d’un fichier pst (Outlook)?
Le plus simple à analyser est le plus souvent d’avoir un mail par fichier.
Pour le format pst – c’est de loin le format le plus pénible – on peut importer ce fichier dans Outlook, à condition de le posséder, puis exporter cette boite au format EML. Sous Linux, il existe une bibliothèque appelée libpst, capable de convertir du pst en eml.
Pour le format mbox, j’utilise souvent Thunderbird, associé au plugin importexporttools, qui permet d’importer et d’exporter les boites mail dans un peu tous les formats.
Indexer les mails pour mieux les interroger
Les moteurs de recherches d’Outlook ou de Thunderbird sont assez pathétiques en terme de fonctionnalités. Faire de la recherche fine peut s’avérer très pénible. Lorsqu’on a récupéré des courriels en abondance, rien de tel qu’un bon outil d’indexation pour requêter précisément.
En fonction du besoin et du niveau de compétence dont vous disposez, mais également de l’investissement en temps et en argent que vous souhaitez y consacrer, il est possible de recommander trois outils :
1- Rapide à déployer, portable et puissant, fonctionnant sous Windows, Mac et Linux, DocFetcher reste un outil d’indexation incontournable. L’interface est austère mais efficace : vous créez un index de vos mails. Puis vous lancer vos requêtes à l’aide de la syntaxe de Lucène, le moteur d’indexation.
2- Un poil plus complexe à paramétrer, Overview-Project dispose des mêmes fonctionnalités de recherche fine mais permet également de tagguer des documents, de faire des liens entre eux.
3- La Rolls du moment, même si il est plus complexe, OpenSemanticSearch, est un outil d’indexation complet, permettant notamment de faire de la reconnaissance d’entité nommées (NER), et donc d’enrichir automatiquement vos documents en retrouvant par exemple des sociétés des personnes, des lieux, etc…
Enfin, on surveillera de près Datashare, développé ces temps-ci par l’ICIJ (coucou Pierre!), qui permettra de faire tout cela dans une interface sexy en diable.
Travailler sur les entêtes des mails
Les entêtes des emails (ou headers) recèlent une foule d’informations et ne sont pas forcément très étudiés.
Pour les analyser en masse, il va falloir les extraire et si possible automatiquement. Pour cela, il existe une bibliothèque python très intéressante : mailparser. Une fois installée sur votre machine, cette commande permet d’extraire les informations suivantes :
- bcc
- cc
- date
- delivered_to
- from_
- message_id
- received
- reply_to
- subject
- to
Pour l’exemple des mails ukrainiens, voici la commande utilisée sous bash/Linux :
for i in *.eml;do mailparser -f « $i » -r -b >> emails.csv;done
Ce qui signifie : « pour chaque mail au format .eml, récupère les entêtes (-h) et le corps du message (-b) et enregistre tout dans un unique fichier appelé emails.csv ».
Une fois ce fichier créé, il est possible d’utiliser OpenRefine, pour nettoyer et enrichir ce fichier et d’obtenir cette feuille de calcul :
- extraction des expéditeurs et destinataires
- extraction du sujet, et de l’adresse IP d’envoi du message
- identification et géocodage des adresses IP
Il est possible de voir immédiatement les aberrations, ou les détails qui ne collent pas dans un jeu de données de ce type, comme par exemple ces deux mails qui sortent du champ habituel des mails reçus ou adressés par le titulaire.
Le renommage des colonnes en Source et Target peut vous sembler curieux mais il est en fait très utile pour importer rapidement les données dans Gephi.
Au cas présent, le rendu des échanges sous forme de graphe est peu parlant (faible nombre de mails, et d’interlocuteurs…).
Mais avec un jeu de données plus important, notamment bien horodaté, il est possible de faire des choses très visuelles comme cette petite animation des échanges entre plusieurs boites mail, par Alexandre Léchenet.
Pour conclure…
Il s’agit de quelques suggestions et de techniques pour analyser un jeu de données de type emails et lui donner rapidement du sens, en comprendre les enjeux…
Souvenez-vous toutefois qu’avec ce type de leaks, il convient d’être particulièrement prudent : les pièces jointes des mails peuvent être contaminées et il conviendra de prendre toutes les précautions nécessaires avant de commencer cette exploration (Machine virtuelle, antivirus, etc…).
Sortez couvert-e-s!