Identification de fichiers connus
Mise à jour le Mardi, 18 Octobre 2011 18:37
| Index de l'article |
|---|
| Identification de fichiers connus |
| Recherches hors système de fichiers |
| Recherche par blocs |
| En pratique |
| Recherche probabiliste |
| Conclusions |
| Références |
| Toutes les pages |
Nous présentons dans cette article une méthode de recherche de fichiers connus permettant à l'enquêteur de rapidement obtenir des réponses en maîtrisant le risque de faux négatif, sans avoir à explorer l'ensemble d'un support de stockage.
Dans de nombreuses investigations, les éléments recherchés se rapprochent de questions du type "tel fichier a-t-il été copié sur tel support". Plus généralement, il s'agit d'identifier le transit (éventuel : rien n'est certain tant que cela n'est pas prouvé) d'un fichier ou ensemble d'informations sur un équipement informatique particulier (ou un ensemble d'équipements, que l'on peut analyser composant par composant). Si, dans cet article, nous évoquons souvent les supports de stockage classiques (disques durs, clés USB, mémoires SSD, etc.), la méthode décrite peut s'appliquer à un stockage temporaire comme de la mémoire vive ou un transit sur un réseau.
Nous parlerons de façon générale de recherche de fichiers connus afin de décrire cet ensemble d'activités.
La recherche de fichiers connus est souvent faite a posteriori :
- détection de copies ou (dans le cas d'un traitement en temps réel sur des paquets réseaux) de transferts non autorisés
- recherche de traces d'activités délictueuses (contenu protégé, confidentiel ou illégal).
D'une façon générale, on est confronté à deux types de situations :
- le ou les fichiers recherchés sont toujours sur les supports de stockage, mais ils peuvent être cachés ou avoir été modifiés,
- le ou les fichiers ont été présents sur les supports (nous dirons qu'ils ont transité sur les supports), mais ont été effacés.
Les méthodes de recherches peuvent elles-aussi être réparties en deux grands groupes :
- recherches dans le système de fichiers,
- recherches hors du système de fichiers.
Recherches dans le système de fichiers
Il s'agit des recherches les plus classiques, que tout utilisateur peut lancer. Il ne pourra cependant faire ses recherches que dans des répertoires auxquels il a accès, ce qui justifie l'utilisation d'un compte privilégié si l'on souhaite examiner tout un support de stockage. Ces recherches reposent sur l'hypothèse que les fichiers
- sont toujours présents sur le support de stockage, et
- présentent une ou plusieurs caractéristiques qui permet leur identification.
Ces caractéristiques peuvent être externe (nom, type) ou internes (contenu). Ce sont typiquement les critères de recherche qui seront utilisés.
Recherches sur des caractéristiques externes
Une commande find bien rédigée permettra de trouver le ou les fichiers (sous réserve que l'opérateur dispose des droits d'accès appropriés pour examiner l'ensemble des fichiers et répertoires du support) :
find / -name -type f -name 'Fichier clients.ods'
find /mnt/disque_externe -size +100M -size -110M
Cependant, une telle recherche se heurte à deux écueils majeurs :
- si le fichier a été effacé, il ne pourra pas être retrouvé : il n'est plus présent dans le système de fichiers.
- si les caractéristiques sur lesquelles la recherche repose ont été modifiées, le fichier ne sera pas trouvé.
Or, les caractéristiques sur lesquelles la recherche est faite (via find ou tout autre outil) sont très faciles à modifier.
Recherches sur des caractéristiques internes
Si le fichier recherché est connu, son contenu est lui-aussi connu. Il est donc facile d'en calculer un condensat (MD5, SHA1 ou autre) et d'examiner l'ensemble du système de fichiers à la recherche d'un fichier présentant le même condensat. Des outils comme tripwire ou Aide reposent sur le même principe (dans une optique différente de détection de modifications apportées aux fichiers ou répertoires scellés par l'outil).
La détection de plusieurs fichiers peut se faire en une seule passe, pour peu que l'on a calculé au préalable les condensats des cibles cherchées.
Cette méthode peut être utilisée à l'envers, afin d'éliminer de l'arbre des recherches tous les fichiers connus et innocents. Il existe des bases de données de condensats, comme la NSRL (www.nsrl.nist.gov). Après une passe sur le système de fichiers et élimination des fichiers ayant un condensat présent dans la base de données des innocents, les fichiers restants sont ceux de l'utilisateur (à analyser), des fichiers système spécifiques (fichiers de configuration, base de registres) ou des fichiers suspicieux.
Cette méthode de recherche se heurte de nouveau à deux écueils :
- si le fichier a transité sur le support, mais a été effacé, il ne sera pas détecté
- la moindre modification du contenu du fichier altère son condensat, empêchant alors sa détection.
Conclusions sur les recherches simples
Ces recherches ne sont pas à négliger, car dans les cas simples elles permettent d'obtenir rapidement des résultats. Toutefois, elles peuvent être très facilement mises en échec, et ne constituent donc pas un outil approprié dans la majorité des situations. Le principal inconvénient est évidemment qu'une telle recherche ne permet pas de trouver des fichiers qui auraient été effacés.



