Identification de fichiers connus - En pratique
En pratique
Frag_find
L'outil frag_find (code source dans la bibliothèque bloom) réalise une recherche basée sur les condensats des blocs composant un ou plusieurs fichiers. Si les fichiers recherchés ont transité sur le support que l'on examine, puis ont été effacé, il est particulièrement probable que l'on en retrouvera des bribes sous la forme de blocs non encore réalloués à d'autres fichiers. Si les fichiers sont toujours présents, la réussite de la recherche n'en sera que meilleure.
Le principe de fonctionnement de frag_find est le suivant :
- pour chacun des fichiers recherchés, calcul des condensats des blocs de 512 octets qui le compose. Cette liste de condensats est stockée en mémoire.
- examen de l'image disque (du support), et calcul du condensat de chacun des blocs de 512 octets qui le compose.
- détection des collisions de condensats.
Si un même bloc (du support) produit un condensat que l'on retrouve dans plusieurs des fichiers recherchés, le bloc sera affecté au fichiers ayant accumulé le plus grand nombre de condensats identifiés. Nous soulignons que cela signifie probablement que le bloc de données en question n'est pas discriminant (ou que les fichiers recherchés sont très semblables entre eux, par exemple des version successives d'une même image ou document).
Utilisation de la détection de blocs
La détection de blocs, sur le principe de celle réalisée par frag_find, permet d'identifier le transit de fichiers précis sur un support de stockage. Elle peut être étendue à une détection en temps réel :
- avec des pilotes de disque modifiés, qui peuvent calculer le condensat de chacun des blocs lus sur le disque et donc détecter la présence d'un condensat connu. Les performances obtenues (temps d'accès aux informations) seraient probablement désastreuses, mais la possibilité existe. L'intérêt d'une telle utilisation nous paraît donc limité - ce qui ne disqualifie pas pour autant l'idée.
- sur des échanges au travers d'un réseau. S'il existe un système de stockage de documents sensibles (un serveur de fichiers par exemple), il est possible de détecter que l'un des fichiers est en cours de transfert vers un poste qui ne devrait pas en réaliser lecture ou copie.
Les grands avantages de la détection de blocs, par identification de leurs condensats, sont les suivants :
- il n'est pas nécessaire de fournir les fichiers originaux au système de détection. Il suffit de calculer les condensats des blocs de stockage, et de fournir cette liste. La confidentialité des documents peut être protégée, y compris dans le cadre d'une procédure officielle (recherche du transit de documents très sensibles sur un ordinateur personnel par exemple).
- très peu de faux positifs, pour peu que l'on a nettoyé la liste des condensats afin d'en retirer ceux correspondants à des blocs non discriminants. L'expérience nous fait dire (c'est à confirmer dans la durée) que les blocs non discriminants seront souvent détectés sur des supports quelconques. Il suffit donc de quelques passes de pseudo-détection sur des supports dont on est certain qu'ils n'ont jamais contenu les fichiers recherchés pour identifier les blocs non discriminants et les éliminer.
- abaissement de l'espace de stockage nécessaire : une clé USB de 4Go peut contenir plusieurs centaines de millions de condensats pré-calculés.