Identification de fichiers connus
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.