Image d'un disque
Christophe Grenier <grenier@cgsecurity.org>, RSSI chez Global Service Provider
Téléphones, ordinateurs, CD, DVD, disques durs, clés USB, baladeurs MP3, appareils photos numériques, nous sommes entourés de supports d'informations numériques. Confrontés à une perte de données, il peut être risqué de tenter une réparation sans avoir pris soin d'établir au préalable une copie. Cet article présente quelques utilisations de copies de support numériques et donnent quelques conseils pour les réaliser.
Les outils de réparation de systèmes de fichiers ne sont pas capables de gérer efficacement tous les problèmes, cela ne va pas étonner grand monde. Pire, j'ai fait moi-même l'expérience de programmes de "réparation" supprimant tout élément considéré comme endommagé, à la fin de l'opération, le système de fichier était, il est vrai, consistant, mais désespérément vide. Il faut donc être en mesure de pouvoir tester plusieurs outils afin de trouver celui qui va permettre de récupérer enfin ses données sans risquer de tout perdre. La difficulté est de revenir à l'état initial. Certains outils disposent d'une fonction "Undo" pour annuler une réparation, mais celle-ci ne fonctionne pas si l'outil plante en plein milieu d'une opération ou si le système a été modifié depuis.
Même en utilisant des techniques de récupération de données copiant les fichiers récupérés, nul n'est à l'abri d'erreurs de manipulation, il vaut mieux prendre des précautions pour ne pas risquer d'altérer le média et empêcher toute récupération ultérieure effective. Une erreur humaine est souvent à l'origine de la perte de donnée, en état de stress, une erreur supplémentaire de manipulation n'est pas exclue.
En cas de panne matérielle légère, un disque dur peut rester malgré tout globalement accessible. Deux stratégies sont généralement à envisager: confier le disque à une société spécialisée ayant une expertise dans la récupération de données liées à des problèmes matériels ou bien prendre la situation en main: considérant que la panne risque de se généraliser et que l'on ne peut rien faire contre, copier les fichiers les plus importants en premier puis dupliquer le disque tant que cela est possible.
Lorsque des fichiers ont été effacés et que l'on souhaite les récupérer, il faut absolument éviter d'écrire la moindre donnée sur le disque sous peine de risquer d'écraser les fichiers perdus par de nouveaux ou bien d'écraser des blocs de données lorsque la taille de certains fichiers s'accroît. Les blocs de données d'un fichier effacé étant considérés comme libres, ils sont susceptibles d'être réalloués. Au moment de cette réallocation, le contenu du bloc "libre" est réinitialisé à 0 par le système d'exploitation, l'application peut alors y écrire de nouvelles données. Dès que la perte de fichier est détecté, pour éviter ce problème d'écrasement de données, il ne faut plus du tout utiliser le disque jusqu'à ce que toutes les données soient récupérées. En pratique, il peut y avoir une forte contrainte de temps rendant impossible de devoir immobiliser cette ressource: besoin d'utiliser des programmes présents sur ce disque, d'accéder à des données et divers autres impératifs de production. Une solution est de dupliquer le disque, ainsi le disque original peut être remis en production dès la fin de la copie, le processus de récupération de données, parfois long et complexe, s'effectue dans un second temps. On terminera en réintégrant les fichiers récupérés.
Dans certains cas, il est indispensable de conserver une information en l'état où elle était à un instant donné. On pensera particulièrement à la recherche de preuves informatiques.
Voici l'article L. 332-4 du Code de La Propriété Intellectuelle (CPI)
En matière de logiciels et de bases de données, la saisie-contrefaçon est exécutée en vertu d'une ordonnance rendue sur requête par le président du tribunal de grande instance. Le président autorise, s'il y a lieu, la saisie réelle. L'huissier instrumentaire ou le commissaire de police peut être assisté d'un expert désigné par le requérant. A défaut d'assignation ou de citation dans la quinzaine de la saisie, la saisie-contrefaçon est nulle. En outre, les commissaires de police sont tenus, à la demande de tout titulaire de droits sur un logiciel ou sur une base de données, d'opérer une saisie-description du logiciel ou de la base de données contrefaisants, saisie-description qui peut se concrétiser par une copie.
Une saisie-contrefaçon a pour but de démontrer une contrefaçon dans le cadre d'un procès. Dans ce cadre légal, comme le montre l'article de loi, la saisie des supports informatiques n'est pas l'unique possibilité pour acquérir des preuves, il est possible de réaliser des copies. En fait, il est plus facile d'obtenir le droit de réaliser une copie qu'une saisie, une saisie réelle dépossédant le saisi d'une partie de son matériel informatique, ce genre de saisie doit être particulièrement justifié. Je n'ai trouvé aucun texte sur les modalités pratiques de la copie mais il semble nécessaire de prendre des précautions afin qu'une contre-expertise soit possible.
Dans le cadre d'une procédure pénale, là encore une copie peut être réalisée:
Extrait de l'article 97 du Code de Procédure Pénale Il est procédé à la saisie des données informatiques nécessaires à la manifestation de la vérité en plaçant sous main de justice soit le support physique de ces données, soit une copie réalisée en présence des personnes qui assistent à la perquisition. ... Si les nécessités de l'instruction ne s'y opposent pas, copie ou photocopie des documents ou des données informatiques placés sous main de justice peuvent être délivrées à leurs frais, dans le plus bref délai, aux intéressés qui en font la demande.
Nouveau code de procédure civile, Article 145
S'il existe un motif légitime de conserver ou d'établir avant tout procès la preuve de faits dont pourrait dépendre la solution d'un litige, les mesures d'instruction légalement admissibles peuvent être ordonnées à la demande de tout intéressé, sur requête ou en référé.
Article 493
L'ordonnance sur requête est une décision provisoire rendue non contradictoirement dans les cas où le requérant est fondé à ne pas appeler de partie adverse.
Cela permet de ne pas prévenir la partir adverse si l'on craint que des informations soient détruites, mais attention, la saisie peut être contestée aussi bien la forme que le fond et rendre la saisie nulle.
Article 812
Le président du tribunal est saisi par requête dans les cas spécifiés par la loi. Il peut également ordonner sur requête toutes mesures urgentes lorsque les circonstances exigent qu'elles ne soient pas prises contradictoirement. Les requêtes afférentes à une instance en cours sont présentées au président de la chambre à laquelle l'affaire a été distribuée ou au juge déjà saisi.
Passons à la pratique.
Hors sujet: Remarque, dans les cas d'endettement, un ordinateur est considéré comme bien insaisissable s'il sert à l'activité professionnelle. Sinon il peut être saisi pour être revendu (saisie-vente) mais les étapes de ces procédures donnent le temps au saisi de réaliser une copie de ces données [SVENTE].
Une alimentation électrique faiblarde/en fin de vie peut être à l'origine d'une panne d'un disque dur, si vous suspectez ce problème ou bien un problème physique lié à la machine, utiliser un autre ordinateur pour copier le disque et récupérer vos données. Coté température, les disques durs récents supportent assez bien les températures un peu élevées mais sont sensibles aux températures basses [GOO2007].
Il est possible de contrôler et surveiller les systèmes de stockage en utilisant la technologie SMART (Self-Monitoring, Analysis and Reporting Technology system) intégrée dans les disques durs PATA, SATA, SCSI ainsi que certains Raid matériels. Dans le but d'anticiper les pannes, la technologie SMART surveille et informe de l'état de certains indicateurs de fiabilité comme la température, le nombre de secteurs réalloués, les erreurs de localisation des secteurs, le temps cumulé d'utilisation... Remarque, les disques connectés en USB ou en Firewire ne peuvent pas être surveillés dans la majorité des cas.
Quelques conseils:
Voici un exemple de reporting SMART pour un Raid matériel Compaq composé de disques Seagate, le disque est en bonne santé. Coté température, celle-ci est actuellement assez faible, 32°C, grâce au système de climatisation.
smartctl -a /dev/cciss/c0d0 -d cciss,0 smartctl version 5.36 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Device: COMPAQ BF07288285 Version: HPB2 Serial number: 3KP07MRF00007536XVTL Device type: disk Transport protocol: Parallel SCSI (SPI-4) Local Time is: Thu Nov 15 20:09:55 2007 CET Device supports SMART and is Enabled Temperature Warning Enabled SMART Health Status: OK Current Drive Temperature: 32 C Drive Trip Temperature: 68 C Elements in grown defect list: 0 Vendor (Seagate) cache information Blocks sent to initiator = 451086139 Blocks received from initiator = 120032659 Blocks read from cache and sent to initiator = 1083141278 Number of read and write commands whose size <= segment size = 822106214 Number of read and write commands whose size > segment size = 0 Vendor (Seagate/Hitachi) factory information number of hours powered up = 20534.87 number of minutes until next internal SMART test = 28 Error counter log: Errors Corrected by Total Correction Gigabytes Total ECC rereads/ errors algorithm processed uncorrected fast | delayed rewrites corrected invocations [10^9 bytes] errors read: 0 0 0 0 0 0.000 0 write: 0 0 0 0 0 0.000 0 Non-medium error count: 23 SMART Self-test log Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ] Description number (hours) # 1 Background short Completed - 0 - [- - -] Long (extended) Self Test duration: 1064 seconds [17.7 minutes]
Voici le monitoring d'un disque SATA de la machine qui me sert à écrire cet article. Cette fois-ci, coté température, on peut constater que le disque a atteint les 55°C (Appart sous les toits un jour d'été...). Heureusement, il semblerait que les disques soient beaucoup plus résistants aux températures élevées.
smartctl -A /dev/sda smartctl version 5.37 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 057 054 006 Pre-fail Always - 212994225 3 Spin_Up_Time 0x0003 096 096 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 1 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 085 060 030 Pre-fail Always - 337285762 9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 6454 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1482 194 Temperature_Celsius 0x0022 048 055 000 Old_age Always - 48 195 Hardware_ECC_Recovered 0x001a 057 053 000 Old_age Always - 212994225 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0
La colonne RAW_VALUE contient une donnée brute spécifique à chaque constructeur, voire à des modèles. Il faut donc lire les colonnes normalisées VALUE, WORST, THRESH, respectivement la valeur courante, la moins bonne valeur mesurée et le seuil d'alerte lorsqu'il y en a un.
Prenons l'exemple de l'attribut Reallocated_Sector_Ct
.
La table P-list
, permanent-list ou primary-list, contient la liste des secteurs défectueux détectés lors du processus de fabrication du disque, ces secteurs sont ignorés par l'électronique du disque, leur présence n'a pas d'impact sur les performances du disque. Il nous reste donc les secteurs défectueux qui se développent suivant les conditions d'utilisations du disque. La technologie SMART va placer les coordonnées des secteurs devenus défectueux dans la table G-list, growth-list. Tout accès à l'adresse d'un de ces secteurs va automatiquement rediriger l'opération de lecture/écriture vers un secteur sain de secours, cette opération se ressent au niveau des performances mais permet au disque de continuer de fonctionner normalement.
Cependant la table G-list
a une capacité limitée, l'attribut Reallocated_Sector_Ct indique qu'il reste 100 secteurs de secours, lorsque cette valeur sera descendue à 36 ou moins, le BIOS ou tout utilitaire de monitoring SMART devra émettre une alerte demandant un changement immédiat du disque.
Le simple fait de lister le contenu d'un répertoire ou de lire le contenu d'un fichier va modifier les dates d'accès. On risque aussi la création de fichiers temporaires, la création de miniature pour les images/pdf/..., l'indexation du contenu. Le simple fait de brancher un média déclenche sur la plupart des ordinateurs la détection d'une table des partitions et le montage des systèmes de fichiers (affectation d'une lettre d'unité sous Windows, montage en lecture/écriture dans /media sous Unix). Que ce soit une FAT16/FAT32/NTFS/ext2/ext3/..., chacun de ces systèmes de fichiers est modifié dès qu'il est rendu accessible en lecture/écriture: un flag est positionné pour indiquer que le volume est "dirty", ainsi si le média est déconnecté ou l'ordinateur éteint incorrectement, ce drapeau sera détecté automatiquement lorsque le média sera connecté/l'ordinateur redémarré. Les systèmes de fichiers d'origine Unix ext2/ext3/jfs/reiserfs/xfs/... comportent de plus un compteur s'incrémentant à chaque fois que le volume est monté en lecture/écriture.
La majorité des clés USB et certains disques durs ont un cavalier permettant de mettre le média en lecture seul,
c'est une précaution facile à mettre en place pour éviter une écriture accidentelle sur le disque. Sous Linux, la commande hdparm
propose de mettre en lecture seul un périphérique:
[root@test ~]# hdparm -r 1 /dev/sdb /dev/sdb: setting readonly to 1 (on) readonly = 1 (on)
Cependant cela n'a eu aucun effet en pratique lors de mes tests...
Dans un cadre forensics, il est préférable de copier le média vers un fichier image ainsi aucun accès en écriture ne sera effectué par le système d'exploitation.
La configuration de l'ordinateur dont le disque est copié peut être importante: date/heure/fuseau horaire et écart avec une source fiable sont nécessaires si on souhaite établir une chronologie, la disposition, l'ordre des disques et le modèle de contrôleur pour reconstituer un RAID, type de connexions (par exemple, PATA primary master) pour identifier correctement les points de montage ou les lettres d'unités...
La nature des informations à copier dépend des informations à récupérer ou à réparer.
chkdsk
de Windows, elle ne peut fonctionner que sur des systèmes de fichiers identifiés par une lettre d'unité.
Certains outils commerciaux sont même artificiellement bridés pour ne faire que de la récupération de fichier sur des cartes mémoires, d'autres que les CD/DVD et enfin certains que les disques durs.
Il faudra donc au final parfois recopier la sauvegarde sur un support analogue au média original.
Un système d'exploitation utilise la commande bas-niveau IDENTIFY DEVICE
pour connaître la taille d'un disque. Cependant si une zone constructeur Host Protected Area
(HPA) existe à la fin du disque, cette taille est inférieure à la taille réelle obtenable via la commande READ NATIVE MAX ADDRESS
.
Cette limite est positionnable avec la commande SET MAX ADDRESS
. La zone HPA a été introduite avec le standard ATA-4 [ATA-4] en 1998.
Cette zone HPA peut être utilisée pour y placer divers utilitaires comme un utilitaire de restauration disque. Cela a d'autres applications comme le système antivol lojack [LOJACK]. Celui-ci place une petite partie de son code au niveau du BIOS (Zone Core Managed Environment (cME) sur les BIOS Phoenix) qui se charge d'appeler le reste du programme stocké dans la zone HPA du BIOS de l'ordinateur. Ainsi même si l'ordinateur est volé et le disque reformaté, il suffit qu'au moment du boot l'ordinateur soit connecté à un réseau pour que le programme se connecte à un site de l'éditeur, l'adresse IP source permet alors la localisation de l'ordinateur. Cette zone peut aussi avoir des utilisations illégitimes comme servir à dissimuler des données illégales ou y cacher un rootkit.
.
Dans un cadre forensics, il est donc important de réaliser une copie complète du disque, y compris de cette zone.
disk_stat du SleuthKit [SLKIT] permet de détecter cette zone et disk_sreset (Amélioration de setmax [SETMAX] sous Linux) de la supprimer temporairement, mais ils ne gèrent que les disques de moins de 130 Go. La norme ATA-6 [ATA-6] introduit le support LBA 48 pour gérer les disques de plus de 130 Go, de nouvelles commandes READ NATIVE MAX ADDRESS EXT
et SET MAX ADDRESS EXT
sont à utiliser, malheureusement la dernière version 2.0.9 du SleuthKit ne les gère pas. Il faut donc utiliser des outils constructeurs ([HITACHI], [SEAGATE]) pour manipuler cette HPA sur les disques de grandes capacités.
Autre nouveauté de la norme ATA-6, elle introduit le Device Configuration Overlay (DCO)
. Il permet au constructeur de spécifier la taille du disque telle qu'elle sera retournée par la fonction READ NATIVE MAX ADDRESS
. Ainsi le constructeur peut proposer des disques aux caractéristiques identiques au secteur prêt. Là encore, il y a moyen de dissimuler des informations par ce moyen.
Par rapport à un disque dur, il n'y a donc aucun élément mobile dans une clé USB, elle est donc bien plus résistante aux chocs et à la poussière. Coté système d'exploitation, une clé USB est vu de manière similaire à un disque dur, un contrôleur intégré à la clé USB se charge des accès à la mémoire flash. La mémoire est découpée en pages de 512 ou 2048 octets, chaque page peut être lu individuellement. Pour l'écriture, c'est un peu plus complexe: chaque écriture est précédée par une phase d'effacement et ces deux opérations s'effectuent uniquement sur des blocs de pages, généralement des blocs de 32 pages de 512 octets ou 64 pages de 2048 octets. De technologie NAND, chaque bloc de mémoire peut subir un million de cycle d'effacement/réécriture avant de devenir corrompu, le contrôleur va donc gérer intelligemment l'organisation des données sur la mémoire flash pour maximiser la durée de vie de la mémoire en évitant que certains blocs subissent beaucoup plus de cycle d'effacement/réécriture que d'autres. En cas de "secteurs" défectueux, il est inutile de réitérer les tentatives de lecture, les conditions de lecture seront exactement les mêmes. Il n'y a pas d'élément mécanique, il n'y a donc pas de temps perdu significatif à chaque erreur de lecture.
Attention, cela ne s'applique pas aux disques branchés par USB.
Attention, si vous copiez l'intégralité d'un disque, la destination doit aussi être un disque et non une partition. Si vous copiez une partition, la partition destination n'a pas besoin d'être formatée, par contre, elle doit être suffisamment grande. Si la destination est plus grande que la source, il est conseillé d'initialiser la destination avec des zéros. De fait, copier l'intégralité du disque sur un disque vierge est fortement recommandé.
dd est une commande standard sous Unix, elle permet la copie de tout fichier et disque ("Sous Unix, tout est fichier").
Il existe aussi une version pour Windows [DDWIN].
La syntaxe est "assez" simple: dd if=source of=destination
.
Pour initialiser la destination avec des zéros: dd if=/dev/zero of=/dev/dev_destination
.
De façon à ce que la copie ne s'arrête pas si la source comporte des secteurs défectueux, il faut rajouter une option, la syntaxe devient: dd if=source of=destination conv=noerror
.
Exemple de copie
dd if=/dev/sda of=/dev/sdb conv=noerror
,dd if=/dev/sda1 of=/dev/sdb1 conv=noerror
,dd if=/dev/old_disk of=image_disque.dd conv=noerror
.bs=8k
, cela permettra de lire/écrire sur le disque dur par bloc de 8k. Cependant, cela a un inconvénient: il suffit d'un seul secteur défectueux pour que la lecture d'un bloc de données échoue, dans ce cas, dd écrit un bloc de zéros et passe à la suite, ignorant la possibilité que des secteurs sains aient pu être présents.
dd_rescue [DDRESCUE] pallie à ce problème de la commande dd: si la lecture d'un bloc de donnée échoue, dd_rescue va effectuer une lecture secteur par secteur. Ainsi cette commande bénéficie de la rapidité liée à la lecture de blocs de grandes tailles sans sacrifier à son efficacité. La syntaxe est dd_rescue source destination
. dd_rescue peut enregistrer dans un fichier la liste des erreurs de lecture ainsi que la liste des secteurs défectueux, en utilisant le script dd_rhelp, cela permet de retenter une récupération de ces secteurs défectueux.
dd_rescue permet aussi de générer des fichiers creux (sparse): dd_rescue -a source destination
. Si un bloc ne comporte que des zéros, dd_rescue choisit alors de ne pas réaliser d'écriture pour ce bloc, ainsi ce bloc est non alloué au niveau du système de fichier et donc le fichier destination occupe moins de place qu'un fichier classique. Les blocs non alloués sont lus comme comportant uniquement des zéros, le fichier se comporte de manière identique à un fichier classique. Attention, il ne faut jamais utiliser cette option si le fichier destination existe déjà, sans quoi, la source et la destination peuvent ne pas être identiques à la fin de la copie.
Dans un premier temps, GNU ddrescue [GNUDDRESC] copie les données en utilisant une taille de bloc lui permettant une bonne rapidité, ensuite il lit les zones endommagées secteur par secteur et enfin réessayer plusieurs fois de lire les secteurs défectueux. ddrescue récupère donc les données plus rapidement. Note, par rapport à dd_rescue, il ne créé pas de fichier creux.
La syntaxe est ddrescue source destination ddrescue.log
.
Des produits commerciaux comme Forensic Toolkit (FTK) [FTKIMG] ou EnCase Forensic [ENCASE] ont leurs propres formats d'acquisition de données. Ces formats ajoutent des sommes de contrôle pour vérifier l'intégrité des données, des métadatas pour documenter l'acquisition ainsi que de la compression pour que l'image prenne moins de place. J'utilise ici ewfacquire pour réaliser une image d'un DVD. Cet utilitaire vient avec libewf [LIBEWF], une librairie opensource pour gérer l'Expert Witness Compression Format (EWF). La commande ewfacquire permet donc de réaliser la réalisation d'une image d'un média, de nombreux paramètres sont disponibles tels que la compression et la gestion des erreurs de lecture.
./ewfacquire /dev/hda ewfacquire 20070512 (libewf 20070512, zlib 1.2.3, libcrypto 0.9.8, libuuid) Acquiry parameters required, please provide the necessary input ... The following acquiry parameters were provided: Image path and filename: test_dvd.E01 Case number: 1 Description: Copie d'un DVD Evidence number: 1 Examiner name: Christophe Grenier Notes: Media type: removable Volume type: physical Compression used: none Compress empty blocks: no EWF file format: EnCase 5 Acquiry start offet: 0 Amount of bytes to acquire: 290390016 Evidence segment file size: 665600 kbytes Block size: 64 sectors Error granularity: 64 sectors Retries on read error: 2 Wipe sectors on read error: yes Continue acquiry with these values (yes, no) [yes]: Acquiry started at: Mon Nov 12 21:59:42 2007 This could take a while. Status: at 0%. acquired 32 kB (32768 bytes) of total 276 MB (290390016 bytes). Status: at 1%. acquired 2.8 MB (2916352 bytes) of total 276 MB (290390016 bytes). completion in 6 minute(s) and 36 second(s) with 708 kB/s (725975 bytes/second). ... Acquiry completed at: Mon Nov 12 22:00:22 2007 Written: 276 MB (290390016 bytes) in 40 second(s) with 6.9 MB/s (7259750 bytes/second). MD5 hash calculated over data: 62c5d9a293af1401d821fcefc5fb4b6d
En réponse à ces formats propriétaires, Advanced Forensic Format (AFF) [AFFLIB] un format ouvert a été créé. Il permet l'ajout de métadatas personnalisées, de générer plusieurs fichiers plutôt qu'un seul fichier énorme (EnCase le permet aussi). La compression LZMA permet des gains de place de l'ordre de 30% par rapport à un fichier EnCase, mais par défaut la compression gzip est utilisée.
Elapsed Time: 00:00:11 IMAGING Mon Nov 12 22:22:24 2007 Source device: /dev/hda AFF Output: test_dvd.aff Model #: Disk Size: 290 MB (1024 byte sectors) Total sectors: 283,584 [=========> ] Currently reading sector: 32,768 (32768 sector chunks) (11.55% done) blank sectors: 0 Done in: 00:01:28 (this drive) Bytes read: 33,554,432 Bytes written: 26,028,978 Overall compression ratio: 22.43% (0% is none; 100% is perfect) Free space on capture drive: 2,959 MB WRITING ===>
./aimage --no_preview /dev/hda test_dvd.aff ****************************** IMAGING REPORT ****************************** Input: /dev/hda AFF Output file: test_dvd.aff Bytes read: 290,390,016 Bytes written: 259,361,209 raw image md5: 62C5 D9A2 93AF 1401 D821 FCEF C5FB 4B6D raw image sha1: FA82 4799 2EB8 79C2 B5FA 7BC2 0FC7 3A06 C935 2D69 raw image sha256: 19EF B16B D7AB 919E DC40 B28E 4772 151D 9081 C6A8 B1BC B475 5D84 514A 3E6D 29F4 Free space remaining on capture drive: 2,737 MB
Attention, par défaut, les adresses MAC des cartes réseaux ainsi que la sortie de dmesg (journal système) de la machine servant à l'acquisition figurent dans les métadatas.
Certains outils sont spécialisés pour ne copier que les métadatas, les données ne sont pas copiées, uniquement la structure du système de fichier: informations sur l'arborescence (noms des fichiers, répertoire, taille), sur l'allocation des données. e2image [E2FSPROGS] réalise ceci pour les systèmes de fichier ext2/ext3. Une copie des métadatas est suffisante pour réaliser une liste des évènements ayant eu lieu: accès/modification/création/suppression de fichiers. Cela peut être un compromis acceptable si la copie complète du disque est impossible.
ntfsclone [NTFSPROGS] est en premier lieu un outil de sauvegarde permettant de réaliser une copie rapide d'une partition NTFS vers un format spécifique ou un fichier creux (sparse) mais aussi un outil de duplication rapide comme son nom l'indique. Comme e2image pour les systèmes ext2/ext3, il permet de ne copier que les métadatas au besoin.
Utilitaire | Avantages | Inconvénients |
dd | En standard sous Linux/MacOSX/*BSD/ | Mauvaise gestion des secteurs défectueux |
dd_rescue | Gère les secteurs défectueux | Nécessite le script dd_rhelp |
GNU ddrescue | Gère les secteurs défectueux efficacement | |
ewfacquire | Forensics, Supporte les formats EnCase | Les formats EnCase ne sont pas supportés par le SleuthKit |
afflib | Forensics, introduit un format libre | Supporté par le SleuthKit |
e2image | Duplication rapide des systèmes de fichier ext2/ext3 | N'est utilisable en forensics que pour établir une liste d'événements |
ntfsclone | Duplication rapide des systèmes de fichier NTFS | N'est utilisable en forensics que pour établir une liste d'événements |
Il est possible d'utiliser des sommes de contrôle md5, sha1, sha512 pour calculer une empreinte d'un fichier ou bien d'un média. Voici un exemple sous Linux avec des commandes standards (core-utils):
[kmaster@adsl 1-extend-part]$ md5sum ext-part-test-2.dd ea19519fc310835dd1fc20fc3cf36481 ext-part-test-2.dd [kmaster@adsl 1-extend-part]$ sha1sum ext-part-test-2.dd 859e2e8a7dbd98d336469dc06ae9b3ca627e7b49 ext-part-test-2.dd [kmaster@adsl 1-extend-part]$ sha512sum ext-part-test-2.dd 3b19ef5b733cf7a415319baa10c67dee271b2bb5af637ce45a38fd6ac873557c1b4a5c86d81aee6fe3ba11839a8dc5683c8940d038d6ac8792d43b2fd2a18495 ext-part-test-2.dd
Ces empreintes numériques permettent de détecter toute modification accidentelle. Si l'empreinte est identique pour le média d'origine et sa copie, on peut considérer que la copie est identique à l'originale. Il est calculatoirement difficile de modifier un fichier tout en gardant la même empreinte numérique, cependant l'utilisation des algorithmes md5 et même sha1 n'est plus conseillé au vu de l'avancée des récentes attaques cryptographiques.
Sur un système de type Unix, mount -o loop,ro image.dd /mnt/image
permet de consulter les fichiers présents sur l'image du système de fichier. L'option ro
permet un accès read-only, ainsi on ne risque pas de modifier cette image.
Cet article vous a présenté quelques outils du monde libre permettant de dupliquer des supports, endommagés ou non, aussi bien dans le but d'une récupération de données que dans une optique légale. Ne négliger pas cette étape, même si cela prend du temps et monopolise des ressources, cela peut être le seul moyen de récupérer vos données ou d'obtenir une saisie valide.
[AFFLIB] AFF: The Advanced Forensic Format, http://www.afflib.org/
[ATA-4] AT Attachment with Packet Interface Extension (ATA/ATAPI-4), http://www.t10.org/t13/project/d1153r18-ATA-ATAPI-4.pdf
[ATA-6] AT Attachment with Packet Interface Extension (ATA/ATAPI-6), http://www.t10.org/t13/project/d1410r3a-ATA-ATAPI-6.pdf
[DDRESCUE] dd_rescue, utilitaire de copie de disque par Kurt Garloff http://www.garloff.de/kurt/linux/ddrescue/
[DDWIN] DD for Windows, http://www.chrysocome.net/dd
[DUPUY2007] Indiscrétions et "zones constructeurs" des disques durs, http://actes.sstic.org/SSTIC07/Indiscretions_Zones_Constructeurs_Disques_Durs/SSTIC07-Dupuy-Indiscretions_Zones_Constructeurs_Disques_Durs.pdf
[ENCASE] EnCase Forensic, http://www.guidancesoftware.com/products/ef_index.asp
[FTKIMG] FTK Imager, http://www.accessdata.com
[GNUDDRESC] GNU ddrescue, utilitaire de copie de disque par Antonio Diaz http://savannah.gnu.org/projects/ddrescue/
[GOO2007] Failure Trends in a Large Disk Drive Population, http://labs.google.com/papers/disk_failures.pdf
[HITACHI] Feature Tool, modification zone HPA http://www.hitachigst.com/hdd/support/download.htm
[LOJACK] Lojack, système antivol pour portable http://www.lojackforlaptops.com/
[NTFSPROGS] Ntfsprogs, ensemble d'utilitaires pour gérer des volumes NTFS http://www.tuxera.com/community/ntfs-3g-download/
[SLKIT] SleuthKit http://www.sleuthkit.org/
[SMARTMON] smartmontools, monitoring SMART http://smartmontools.sourceforge.net/
[SMARTREP] SMARTReporter, monitoring SMART http://homepage.mac.com/julianmayer/
[SVENTE] Saisie-Vente, http://www.ump.assemblee-nationale.fr/article_texte.php3?id_article=1660
[SETMAX] setmax, modification zone HPA http://www.win.tue.nl/~aeb/linux/setmax.c
[SEAGATE] DiscWizard Starter Edition, modification zone HPA http://www.seagate.com/www/en-us/support/downloads/discwizard