Introduction à la plateforme Digital Forensic Framework (DFF) (2)

L’interface graphique de DFF

L’interface graphique de DFF est développée utilisant le framework PyQt qui est un framework graphique multi-plateformes donc DFF est capable de fonctionner sur plusieurs plateformes : Linix, FreeBSD, Windows(XP, Vista), MacOS. L’interface principale est composée de 4 zones principales :

  • « Application menus » – Les menus de l’application. Pour la définition détaillée de tous les menus, veuillez consulter la page suivante du wiki DFF.
  • « Application toolbar » – La barre d’outils est utilisée pour effectuer des actions telles que l’ajout d’un container des données ou d’un disc en DFF, ou l’ouverture de vues graphiques. Pour la définition détaillée de la barre d’outils, veuillez consulter la page suivante du wiki DFF.
  • « Project Browser » – La zone où les résultats des analyses seront affichés. Il peut être comparé à un navigateur de fichiers sur un système d’exploitation. Pour la définition détaillée du « project bowser », veuillez consulter la page suivante du wiki DFF.
  • « Project Toolbar » Cette zone serve à modifier l’affichage des résultats d’analyse et de naviguer dans les résultats de l’analyse.
  • « Task Manager » – Zone qui montre l’historique des tâches exécutées, les messages d’erreurs et d’information générés par l’exécution des différents modules et la liste des modules qui peuvent être utilisés, avec la liste des paramètres, qu’ils peuvent prendre en entrée. Pour la définition détaillée du « task manager », veuillez consulter la page suivante du wiki DFF.
L'interface graphique de DFF
L’interface graphique de DFF

Cas pratique IHM (chercher des fichiers d’images dans un container EWF)

Ce cas pratique a comme but de charger un container de données EWF et de chercher des fichiers de type JPG.

Les étapes du cas pratique sont les suivantes :

  • charger le container des données ;
  • monter le système de fichiers contenu dans le container ;
  • chercher des fichiers d’images sur le système de fichiers ;
  • sauver les fichiers retrouvés sur le disque.

Charger le container de données

Dans le  menu File-> « Open evidence file(s) » ou dans la barre d’outils click sur l’icône  dff16. Ensuite on choisit le container de données a charger (voir la figure suivante).

Chargement d’un container de données dans l'IHM de DFF
Chargement d’un container de données dans l’IHM de DFF

Même si c’est n’est pas visible, l’IHM de DFF a utilisé le module ewf pour créer n VFS.

Monter le système de fichiers contenu dans le container

Une fois le container chargé, il faut monter le système de fichiers. DFF est capable de savoir que le container chargé contient un système de fichiers NTFS et vas automatiquement utiliser le module ntfs. Pour appliquer le module ntfs sur le container il faut aller dans le « Data display area » et faire un click droit ensuite choisir l’option « Relevant module » (voir la figure suivante). On voit ensuite apparaitre l’arborescence du disque après le traitement par le module NTFS.

Chargement d’un système de fichiers NTFS dans l’IHM de DFF
Chargement d’un système de fichiers NTFS dans l’IHM de DFF

Chercher des fichiers d’images sur le système de fichiers

Une fois le système de fichiers chargé, on peut naviguer sur ce système de fichiers  ou on peut appliquer des modules pour récupérer d’informations. On appliquera le module find sur le nœud NTFS (voir figure suivante) :

L'utilisation du module "find" sur un noeud NTFS
L’utilisation du module “find” sur un noeud NTFS

Le module find accepte quelques paramètres comme le nom du filtre (ce nom sera utilisé pour créer un nouveau nœud dans le VFS contenant les résultats de la recherche), si la recherche est récursive ou pas, l’expression utilisée pour rechercher des fichiers (dans notre cas l’expression sera name == w(“*.jp?g”, i)).

Les paramètres du module "find"
Les paramètres du module “find”

Le module find a trouvé des fichiers et a stocké les résultats dans le nouveau nœud du VFS nommé comme le nom du filtre. Ce nouveau nœud est attaché au noeud « Searched Items » (voir la figure suivante).

Le résultats de l'exécution du module "find"
Le résultats de l’exécution du module “find”

Sauver les fichiers retrouvés sur le disque

La dernière étape consiste à extraire les résultats trouvés a l’étape précédente sur le disque. Pour transformer un nœud du VFS en fichier (physique) sur le disque, il faut utiliser le module extract.

L'utilisation du module "extract"
L’utilisation du module “extract”

L’interface en ligne de commande de DFF

A part l’interface graphique, DFF a aussi une interface en ligne de commande (CLI). Il y a deux façons de démarrer l’interface en ligne de commande :

  • a partir de l’IHM de DFF en cliquant sur l’icône dff23 (shell) dans la barre d ‘outils
  • en exécutant la commande dff.py à partir d’une console.

L’utilisation de l’interface en ligne de commande suit le même patron de conception (‘’pattern’’) que l’utilisation de l’IHM. Dans la figure suivante, on peut voir tous les modules disponibles à partir de la ligne de commande.

L'interface en ligne de commande de DFF
L’interface en ligne de commande de DFF

Les scripts sont une des nouvelles fonctionnalités de la version 1.2  de DFF. Les scripts sont des fichiers contenant des commandes shell DFF et peuvent être exécutés utilisant la ligne de commande suivante dff.py –b leFichierDeScript.

Cas pratique scripting (chercher des fichiers d’images dans un container EWF)

On prend le même cas pratique que celui utilisé pour illustrer l’utilisation  de l’IHM.  Le script qui exécute les mêmes actions que celles de l’IHM est le suivant :

#charger le container de données utilisant le module ewf 
ewf WinXP2.E01
#monter le système de fichiers utilisant le module ntfs
ntfs WinXP
#utiliser le module find pour chercher des fichiers
find /WinXP/NTFS --filter_name jpg_images --recursive --save_result 
 --expression 'name==w("*.jp?g",i)'

#utiliser le module extract pour stocker sur disque les images 
#retrouvées par le module find 
extract --recursive --files Searched\ items/jpg_images --syspath ./

L’idée des scripts DFF semble être très bonne, pourtant dans la version actuelle, l’implémentation ne semble pas totalement achevée. Parmi les principaux défauts de cette implémentation, le plus évident est le fait de ne pas pouvoir récupérer le code de retour de l’exécution d’une commande (module). La deuxième faiblesse est l’absence totale d’instructions conditionnelles et des boucles. Ces deux défauts rendent impossible la création et l’exploitation des scripts automatiques pour la plateforme DFF.

 

Le produit commercial DFF Live

Depuis le mois de Juin 2012, ArxSys commercialise un produit basé sur DFF, appelé « DFF Live » [DFFLIVE]. DFF Live est livré sur une clé USB et est présenté comme un laboratoire d’investigation digitale nomade.

D’après la société ArxSys, le produit « DFF Live » a des fonctionnalités d’investigation numérique des systèmes vivants (liste de connexions réseaux, extraction des fichiers de temporaires, collection des données volatiles)  et des fonctionnalités d’investigation numérique a  froid (analyse des différents systèmes des fichiers, analyse des journaux d’évènements Windows, récupération des données cachées et supprimées).

Conclusion

Le framework DFF est un produit assez nouveau, mais pourtant il commence à avoir une certaine reconnaissance internationale. Le produit est présent dans certaines distributions numériques comme DEFT, BackTrack et SAN SIFT. DFF est facile à installer et l’interface graphique est ergonomique et facile a utiliser. Techniquement parlant, DFF a certains atouts : il est multi-plateformes, la notion de système de fichiers virtuel (VFS) rend la compréhension du framework plus facile, la possibilité d’étendre les fonctionnalités de base par l’ajout des modules écrits en Python. Par contre, DFF manque cruellement d’une documentation claire et précise, surtout pour les développeurs (il n’y a pas de documentation de l’api Python concernant le VFS).