Nuix et le dilemme MD5
Introduction
Les valeurs MD5 sont généralement décrites comme étant les “empreintes électroniques” des fichiers. Elles sont communément utilisées comme identifiants uniques de données électroniques. Elles permettent de confirmer l’intégrité de fichiers ou de prouver que deux fichiers ont le même contenu. Bien que le cadre original des valeurs MD5 soit très strict et fiable, la pratique est parfois moins rigoureuse, comme présenté ci-dessous.
Bien que l’algorithme MD5 soit explicitement mentionné, le sujet couvert par cet article est plus vaste et peut être étendu à d’autres algorithmes de hachage. De ce fait, les risques de collisions ne seront pas traités ici.
Définition
Un hash MD5 est une valeur de 128 bits qui est habituellement présentée sous la forme d’un nombre hexadécimal de 32 caractères. Ce nombre est obtenu en hachant le contenu binaire d’un fichier avec l’algorithme MD5. Cet algorithme est tel qu’une différence d’un seul bit renverra une valeur complètement différente et qu’il n’est pas possible de déduire le contenu d’un fichier d’après son empreinte électronique. De plus, puisqu’il dépend uniquement du contenu du fichier, le hash est dès lors complètement indépendant du contexte du fichier, comme son nom, son chemin d’accès ou ses dates. Il en résulte que le hash est entièrement portable et reproductible.
Limitations
Dans la pratique, les valeurs MD5 sont largement utilisées pour prouver la non-altération d’un fichier ou la similarité entre deux fichiers. Tandis que cela semble plutôt intuitif, ces démarches souffrent en fait de plusieurs limitations. Un problème bien connu des enquêteurs de police est l’impact du formatage et de la compression sur les vidéos et images. Bien que les hash MD5 soient un outil très utile pour identifier directement du matériel pertinent dans les cas de pornographie, tout changement de format ou compression modifie la valeur MD5, rendant sa fonction d’identification automatisée inutilisable. Un autre problème impactant plutôt l’aspect eDiscovery est la diversité des fichiers de courriels. En matière de courriel, l’en-tête varie selon les serveurs par lesquels il passe. L’application cliente utilisée pour recevoir et lire le courriel peut également avoir un impact au travers du formatage qu’elle applique. De plus, le champ BCC n’apparaît pas à tous les destinataires. De ce fait, la définition stricte de l’empreinte MD5 ne permet pas de reconnaître un courriel dans la boîte d’envoi de l’auteur et dans les boîtes des destinataires comme étant identique. Strictement parlant, ils ne sont en fait pas identiques. Cependant, d’un point de vue logique, les différences sont négligeables. En conséquence, certaines applications calculent des valeurs MD5 « adaptées » pour les courriels, afin de restaurer la capacité d’identification, tout en perdant cependant la portabilité.
Particularités de Nuix
Nuix est l’une des applications qui adressent la problématique des courriels avec une valeur MD5 adaptée. Ce n’est toutefois pas la seule spécificité de cet outil en matière de MD5.
Fichiers Libres (loose files)
Pas de surprise du côté des fichiers libres: le hachage suit les conventions habituelles. Tout le contenu binaire du fichier est haché pour calculer l’empreinte MD5 qui est dès lors complètement portable et reproductible. Tout autre outil sur le marché obtiendrait le même résultat.
Courriels
En matière de courriels cependant, les hashes MD5 de Nuix sont propriétaires. L’algorithme en soi reste le même, mais le fichier est adapté au préalable. La documentation de Nuix (5.0.5) contient les détails suivants à cet égard:
"Since not all email types actually have a binary stream and two copies of the same message can have completely different header information, we compute an email’s MD5 digest by taking the following data encoded using UTF-8 as input:
- Subject header
- From header
- To header
- Cc header
- Email body text tokenized so whitespace and irrelevant characters are removed
- Binary streams of all attachments
For address headers the personal part is discarded an only the address part is used. The email body is tokenized to ignore white-space differences, which can be a factor when comparing HTML and plain text messages."
Depuis la version 4, l’utilisateur peut également choisir dans les préférences d’ingestion d’inclure également le champ BCC et/ou la date (d’envoi ou de réception) dans le calcul de l’empreinte MD5.
Bien que cela soit particulièrement utile en matière de déduplication, il y a toutefois des désavantages à retirer l’aspect portable de l’empreinte électronique de façon à ce qu’aucun autre outil ne puisse reproduire le résultat.
Objets sans Valeur MD5
Bien entendu, des objets sans contenus tels que les dossiers n’ont pas de valeur MD5. Il n’y a en effet aucune donnée binaire à hacher. Vous pourriez vous attendre à ce que cela soit lié à la notion d’« immatériel » (merci de vous référer à notre article “Immaterial Items" dans Nuix, la zone d’ombre” pour plus de détails sur le concept d’« immatérialité »). Il n’y a toutefois aucune relation, puisque certains de ces objets immatériels (principalement les objets inclus) possèdent en fait une valeur MD5. Bien qu’ils ne soient pas indépendants de leurs parents, ils possèdent toutefois un contenu et du coup des données binaires à hacher.
Concernant les objets matériels sans valeur MD5, la première piste à creuser est leur taille. Avez-vous remarqué le champs « maximum digest size » des options d’ingestion? Cette valeur, fixée par défaut à 256 MB, restreint les fichiers hachés selon leur taille. Typiquement, si vous conservez la valeur par défaut et que votre cas contient des vidéos, il est fort probable qu’elles ne possèdent pas d’empreinte MD5.
Il y a toutefois d’autres objets matériels sans valeur MD5. Certains sont en fait de peu d’intérêt, comme les fichiers « Microsoft Outlook Property Block », « Inaccessible Content », « Empty File », etc. Alors que des objets de type « Inaccessible Content » ou « Empty File » ont une bonne raison de ne pas avoir de valeur MD5, les documents « Microsoft Outlook Property Block » ont en fait un contenu binaire (Nuix parvient même à en extraire du texte). De ce fait, ne pas calculer l’empreinte MD5 de ces objets relève d’un pur choix d’implémentation. D’une manière ou d’une autre, cela n’aura probablement que peu d’impact sur l’analyse du cas.
Des types de fichiers que Nuix a commencé à prendre en charge plus récemment génèrent des descendants inhabituels: les historiques Internet ou de navigateurs et les données Skype. Si vous n’avez pas encore essayé d’ingérer ce type de fichiers avec Nuix 4 ou une version plus récente, soyez prêts à perdre vos repères! Ces types de fichiers ont une structure similaire à une base de données. Nuix extrait leur contenu et crée de nouveaux objets pour chaque nouvelle entrée. Tandis que ce comportement peut s’avérer utile à l’analyse, il est hautement surprenant d’observer que ces objets n’ont pas de valeur MD5. Ils ont bel et bien un contenu binaire, mais un choix d’implémentation les a laissé sans hash. Contrairement aux objets matériels mentionnés précédemment, ces objets-ci vont probablement être utilisés pour les analyses ou les revues. L’absence de valeur MD5 peut dès lors avoir un réel impact.
Impact des Objets sans Valeur MD5
Avoir connaissance d’un état de fait est une chose. Comprendre toutes ses implications est une toute autre question. Bien que quelques-uns soient conscients de la possibilité de ne pas avoir de hash MD5 dans Nuix, malheureusement peu ont une compréhension étendue de tous les tenants et aboutissants de cette situation. Voici donc une petite liste pour ouvrir votre esprit à quelques limitations de l’application liées à l’absence de valeur MD5:
- Intégrité du fichier: Ne pas avoir d’empreinte MD5 pour un fichier n’en altère pas pour autant le contenu, bien entendu. Toutefois, que se passe-t-il si quelqu’un remet en question l’intégrité du fichier? Comment allez-vous en apporter la preuve? Il est également possible que les tribunaux vous demandent de produire les documents électroniques avec un hash pour permettre une vérification de leur intégrité.
- Déduplication: La déduplication consiste en l’exclusion des doublons présents dans la masse de données. Les fichiers sans hash ne peuvent être dédupliqués. C’est particulièrement gênant lorsque votre set de données contient des films trop grands pour avoir une valeur MD5 et que du coup les doublons ne peuvent être supprimés. Alors que la déduplication permet de réduire drastiquement le volume des données, elle échoue ici sur les objets les plus volumineux.
- Propagation des décisions: La propagation des décisions consiste en l’application automatique des décisions prises par les réviseurs concernant un document, par exemple quant à son importance, à tous ses doublons. Elle est souvent utilisée en eDiscovery pour s’assurer que les décisions soient cohérentes lorsque les documents sont les mêmes et pour écourter le temps nécessaire à la revue des documents. Malheureusement, la propagation n’est pas possible en l’absence de valeur MD5. De plus, la cohérence des décisions sur les différents doublons ne peut plus être contrôlée de façon analytique.
- Listes de valeurs MD5 (digest-lists): Les listes de valeurs MD5 sont utilisées pour des contrôles de qualité, afin de dédupliquer une collecte de données antérieure par rapport aux précédentes, ou pour identifier des fichiers spécifiques dans une masse de données. Cependant, un objet sans valeur MD5 ne fera jamais partie d’une telle liste. En termes de contrôles qualité, c’est une limitation importante. Lorsque vous ré-ingérer des données dans le système, les listes de valeurs MD5 permettent de vérifier si certains objets n’avaient pas été découverts lors de la première itération. L’absence de hash rend malheureusement ce test caduc. Vous obtiendrez un nombre important d’objets dans le premier cas qui ne semblent pas apparaître dans le second et vice versa, puisqu’il n’est plus possible de les reconnaître comme étant identiques. Une réconciliation complète des données est donc impossible. Comme mentionné plus haut, toute déduplication est également impossible sans valeur MD5. Vous vous retrouverez finalement dans la même situation lorsque vous souhaiterez identifier des fichiers connus dans un autre set de données en vous basant sur les empreintes MD5.
- Décryptage/OCR: Pour améliorer la performance du décryptage ou de l’OCR, il est courant de dédupliquer les fichiers au préalable et de faire correspondre après coup le résultat obtenu avec tous les fichiers partageant la même valeur MD5. Ce processus ne peut simplement pas fonctionner avec des objets ne possédant pas de hash. De plus, si vous utilisez un script pour automatiser le processus d’export des fichiers candidats au décryptage ou à l’OCR et les renommer selon leur valeur MD5, vous allez au-devant de gros problèmes.
Conclusion
En fin de compte, bien que l’algorithme MD5 soit un standard reconnu et documenté, son implémentation connaît quelques variantes. En ce qui concerne Nuix, les valeurs MD5 adaptées pour les courriels et les objets sans hash sont une spécificité dont il vous faut être conscient. Nous entendons souvent dire que « la connaissance est la clé ». Toutefois, j’irais plus loin. Bien qu’une connaissance approfondie de vos outils soit la clé, c’est la compréhension des tenants et aboutissants des particularités de vos outils qui vous permettrons réellement d’offrir à vos clients un conseil avisé. Le chemin jusqu’à la maîtrise d’un outil est long, mail il reste le challenge le plus excitant des experts forensiques.