Nagib lakhdari - Cours forensique 30/01/25
Un peu de théorie.
Le forensique (ou criminalistique) est une discipline qui vise à analyser des preuves scientifiques pour résoudre des enquêtes criminelles, juridiques ou informatiques. Voici un résumé rapide de ses fonctions, son intervention et ses risques :
📌 À quoi sert le forensique ?
Il permet de :
- Analyser des indices pour résoudre des crimes (ex. ADN, empreintes, traces numériques).
- Identifier les coupables ou innocenter des suspects.
- Préserver les preuves de manière légale pour les tribunaux.
🕵️ Que fait-il ?
- Forensique criminel : Analyse les scènes de crime (sang, armes, empreintes).
- Forensique informatique : Traque les cybercriminels et récupère des données effacées.
- Forensique financier : Détecte la fraude et le blanchiment d'argent.
⏳ Quand intervient-il ?
- Lorsqu’un crime ou incident est suspecté.
- Sur demande des autorités (police, justice, entreprises).
- Dans des affaires de piratage, fraude, corruption, vol de données.
⚠️ Les risques ?
- Preuves falsifiées ou mal interprétées.
- Données perdues ou corrompues si mal manipulées.
- Violations de la vie privée (intrusion abusive dans les systèmes informatiques).
- Pressions ou menaces contre les experts forensiques.
À quoi ressemble un disque dur ?
Pour les fichiers systèmes :
1. Partition Table (Table des partitions)
- Indique comment le disque est divisé en plusieurs "blocs" (partitions).
- Exemples : Partition Windows, partition Linux, etc.
2. Boot Sector (Secteur de démarrage)
- Contient des informations sur le système de fichiers et, si le disque est bootable, un petit programme pour démarrer l'ordinateur.
3. Directories (Dossiers)
- Des "boîtes" qui organisent les fichiers en catégories.
- Exemple : Dossier "Documents", "Images", etc.
4. Files (Fichiers)
- Les fichiers contiennent les données réelles : documents, photos, vidéos, programmes, etc.
5. File Allocation Table (Table d'allocation des fichiers)
- Une sorte de "carnet de bord" qui dit où chaque morceau de fichier est stocké sur le disque.
- Exemples : FAT32, NTFS, EXT4.
6. Metadata (Métadonnées)
- Données sur les fichiers : leur nom, leur taille, leur type, leur date de modification, etc.
7. Free Space (Espace libre)
- Zones du disque où aucun fichier n'est encore stocké.
8. Journaling (Journalisation - optionnel selon le système de fichiers)
- Une sorte de "cahier de brouillon" pour éviter de perdre des données en cas de crash.
Pour la partie RECOVERY :
1. Qu’est-ce que la partition Recovery ?
- C’est une partition spéciale sur le disque dur qui sert à restaurer l’ordinateur en cas de problème (comme un crash système ou un malware).
- Elle est souvent créée par le fabricant de l’ordinateur.
2. Que contient la partition Recovery ?
Elle contient tout ce qu’il faut pour remettre le système à neuf :
- Image du système d’exploitation (OS) : Une copie complète (ou "image") de Windows, Linux, etc.
- Outils de réparation : Programmes pour :
- Réparer le démarrage.
- Scanner le disque pour les erreurs.
- Restaurer le système.
- Drivers : Pilotes essentiels pour le matériel (carte réseau, graphique, etc.).
- Applications préinstallées : Programmes installés par le fabricant (souvent pas indispensables… mais présents !).
3. Où se trouve cette partition ?
- Généralement masquée (non visible pour l’utilisateur dans l’explorateur de fichiers).
- Elle est marquée comme "Recovery" dans la table des partitions.
- Taille : Environ 500 Mo à plusieurs Go, selon les outils et l’image système inclus.
4. Comment fonctionne le Recovery ?
- Accès : On y accède via une touche spéciale au démarrage (par ex. F8, F9, ou une combinaison spécifique au fabricant).
- Processus :
- L’ordinateur démarre sur la partition Recovery.
- Les outils de récupération permettent soit :
- Réparer (restaurer des fichiers système manquants ou endommagés).
- Réinitialiser (tout remettre à l’état d’usine en utilisant l’image du système).
5. Pourquoi est-elle importante ?
- Récupération rapide : Pas besoin de clé USB ou DVD d’installation.
- Facilité d’utilisation : Accessible même par des utilisateurs non experts.
- Sécurité : Permet de tout restaurer en cas de problème grave.
Concernant le MFT :
1. Où se trouve le MFT ?
- Le MFT est stocké dans une zone spécifique de la partition NTFS.
- Il est situé au début de la partition NTFS, juste après le secteur de démarrage (boot sector).
- Il occupe une position prioritaire sur le disque pour un accès rapide.
2. Que contient le MFT ?
Le MFT est une sorte de "base de données" contenant un enregistrement pour chaque fichier et dossier sur le disque. Chaque entrée contient :
- Nom du fichier.
- Emplacement du fichier (où il est physiquement stocké sur le disque).
- Taille du fichier.
- Permissions (qui peut lire, écrire, exécuter).
- Dates importantes (création, modification, accès).
3. Pourquoi le MFT est-il important ?
- C'est le "carnet d'adresses" du système de fichiers NTFS.
- Il permet de retrouver rapidement où sont les fichiers et leurs morceaux (clusters) sur le disque.
Et le formatage dans tout ça ?
1. Qu’est-ce que le formatage de bas niveau ?
- C’est une méthode qui consiste à effacer complètement un disque dur en réécrivant tous ses bits (les 0 et 1) sur la surface du disque.
- Contrairement au formatage classique ("rapide"), qui ne fait que supprimer les références aux fichiers, le formatage de bas niveau écrase les données réellement.
2. Pourquoi réécrire bit par bit ?
Quand tu écrases un disque :
- Chaque bit de données (0 ou 1) est remplacé par un nouveau bit (souvent tous des 0, ou parfois des 1 ou une combinaison aléatoire).
- Cela rend irréversible la récupération des données en écrivant par-dessus les anciennes données.
3. La règle des 35 passes
- Un monsieur appelé Peter Gutmann, dans les années 1990, a établi une théorie : pour qu’un disque dur soit complètement sécurisé et qu’on ne puisse jamais récupérer les données, il faudrait :
- Réécrire les données 35 fois avec des modèles spécifiques.
- Cela tenait au fait que les anciennes technologies de disques (magnétiques) pouvaient laisser des traces résiduelles (appelées "ghosts") des données même après un écrasement.
4. Pourquoi 35 passes, et est-ce encore utile aujourd’hui ?
Pourquoi 35 fois ?
- Les anciens disques durs magnétiques laissaient parfois des traces physiques d’anciens bits, et des outils très spécialisés pouvaient les lire (dans des laboratoires spécialisés).
- Peter Gutmann proposait donc de réécrire avec des modèles aléatoires complexes 35 fois pour éliminer toute chance de retrouver ces traces.
Aujourd’hui, ce n’est plus nécessaire !
- Les disques durs modernes (et surtout les SSD) :
- N’ont plus ces "traces fantômes".
- Une seule réécriture complète (ou 2-3 fois, pour être sûr) suffit largement à rendre les données irrécupérables.
5. Comment fonctionne un formatage de bas niveau aujourd’hui ?
- Réécriture simple (1 passe) :
- Les outils écrivent tous des 0, ou tous des 1, sur tout le disque.
- Déjà suffisant pour éliminer la plupart des données.
- Réécriture aléatoire (2-3 passes) :
- Les outils écrivent des combinaisons de 0 et 1 aléatoires pour rendre encore plus difficile toute récupération.
- C’est recommandé pour les disques durs classiques si on veut de la sécurité supplémentaire.
6. Et pour les SSD ?
- Les SSD fonctionnent différemment (ils utilisent de la mémoire flash au lieu des plateaux magnétiques).
- Pour effacer un SSD, le mieux est d’utiliser une commande spécifique appelée Secure Erase, qui dit au contrôleur du SSD d’effacer toutes les cellules de stockage.
- Réécrire plusieurs fois n’a pas beaucoup de sens sur un SSD, car il gère l’écriture de manière interne.
7. Pourquoi ce n’est plus d’actualité ?
- Les disques modernes et les SSD ne laissent plus de traces résiduelles comme les anciens disques magnétiques.
- Une seule passe (ou deux) suffit pour rendre les données quasiment impossibles à récupérer.
- Répéter l’opération 35 fois est un gaspillage de temps et de ressources.
Nos systèmes de fichiers aujourd'hui :
1. NTFS (New Technology File System)
-
Utilisation :
- Principal système de fichiers pour Windows.
- Utilisé sur les disques durs, SSD, et clés USB.
-
Forces :
- Sécurité : Gestion des permissions utilisateur (ACL) et chiffrement possible.
- Résilience : Journalisation (journaling) pour éviter les corruptions en cas de coupure.
- Compatibilité avec les fichiers volumineux : Gère des fichiers >4 Go et des disques très grands.
- Compression et quotas : Peut compresser les fichiers et limiter l'espace utilisé.
-
Faiblesses :
- Compatibilité limitée : Fonctionne bien sur Windows, mais support partiel sur macOS et Linux (en lecture/écriture avec des outils).
- Moins rapide pour de petites écritures sur des systèmes très fragmentés.
2. FAT32 (File Allocation Table 32-bit)
-
Utilisation :
- Systèmes anciens, clés USB, cartes SD.
-
Forces :
- Compatibilité universelle : Reconnu par Windows, macOS, Linux, appareils photo, consoles.
- Simplicité : Facile à mettre en œuvre.
-
Faiblesses :
- Taille maximale des fichiers : Limité à 4 Go par fichier.
- Absence de sécurité : Pas de permissions ou de journalisation.
- Moins efficace : Mauvaise gestion de la fragmentation et des grands volumes.
3. exFAT (Extended FAT)
-
Utilisation :
- Remplacement de FAT32 pour clés USB, cartes SD, et disques externes.
-
Forces :
- Compatibilité étendue : Fonctionne sur Windows, macOS, et partiellement sur Linux.
- Pas de limite de taille : Supporte des fichiers et disques très volumineux.
- Moins complexe : Idéal pour des appareils portables.
-
Faiblesses :
- Pas de journalisation : Moins sûr en cas de coupure de courant.
- Moins robuste : Pas de permissions ou de fonctionnalités avancées comme NTFS.
4. EXT4 (Fourth Extended File System)
-
Utilisation :
- Principal système de fichiers pour Linux.
-
Forces :
- Performances : Rapide, bien optimisé pour les SSD et HDD.
- Journalisation : Réduit les corruptions de données.
- Gestion des grands fichiers : Peut gérer des fichiers et volumes énormes.
- Efficacité : Bonne gestion de la fragmentation.
-
Faiblesses :
- Compatibilité limitée : Peu ou pas pris en charge nativement sur Windows et macOS.
- Complexité accrue : Moins intuitif pour les utilisateurs non techniques.
5. APFS (Apple File System)
-
Utilisation :
- Système de fichiers par défaut pour macOS, iOS, iPadOS.
-
Forces :
- Optimisation SSD : Conçu pour les disques SSD modernes.
- Snapshots : Permet des sauvegardes instantanées (Time Machine).
- Cryptage intégré : Sécurisé par défaut.
- Performance : Rapide pour les écritures et lectures.
-
Faiblesses :
- Compatibilité limitée : Exclusif à l'écosystème Apple.
- Moins adapté aux disques HDD classiques.
6. HFS+ (Hierarchical File System Plus)
-
Utilisation :
- Ancien système de fichiers pour macOS avant APFS.
-
Forces :
- Support étendu : Compatible avec macOS et certains systèmes plus anciens.
- Journalisation : Limite les corruptions.
-
Faiblesses :
- Performances inférieures : Moins rapide qu’APFS, surtout sur SSD.
- Propriétaire : Compatibilité limitée hors d’Apple.
7. Btrfs (B-Tree File System)
-
Utilisation :
- Système de fichiers Linux avancé, utilisé pour les serveurs et environnements complexes.
-
Forces :
- Snapshots : Sauvegardes instantanées et restauration facile.
- Compression : Réduit la taille des données.
- Résilience : Tolérant aux erreurs (self-healing).
- Scalabilité : Adapté aux très grands volumes.
-
Faiblesses :
- Stabilité variable : Certaines fonctionnalités encore jeunes.
- Moins performant pour des workloads simples.
8. ZFS (Zettabyte File System)
-
Utilisation :
- Conçu pour les serveurs et les environnements nécessitant une fiabilité extrême (NAS, serveurs).
-
Forces :
- Snapshots et clones : Idéal pour les sauvegardes et restaurations.
- Tolérance aux erreurs : Vérifie et corrige les corruptions automatiquement.
- Support des grands volumes : Conçu pour gérer des volumes massifs.
- Redondance : Intégré avec RAID (ZRAID).
-
Faiblesses :
- Complexité : Pas intuitif pour un usage quotidien.
- Demande beaucoup de RAM pour fonctionner efficacement.
- Compatibilité limitée (principalement Linux et FreeBSD).
9. ReFS (Resilient File System)
-
Utilisation :
- Système de fichiers avancé pour serveurs Windows.
-
Forces :
- Tolérance aux erreurs : Détecte et corrige les corruptions.
- Optimisé pour les grandes données : Idéal pour les disques durs massifs.
- Compatibilité avec NTFS : Peut coexister avec NTFS.
-
Faiblesses :
- Pas pour un usage courant : Principalement destiné aux environnements serveurs.
- Moins de fonctionnalités pour les utilisateurs classiques.
Processus de démarrage d'un système d'exploitation (Boot Process) :
Les étapes chronologiques du démarrage d’un ordinateur, depuis l’allumage jusqu’à l’exécution du système d’exploitation.
1. Alimentation (⚡️)
- Action : L’ordinateur reçoit une alimentation électrique.
- Rôle : Ce signal déclenche le démarrage matériel de la machine en activant le BIOS/UEFI.
2. BIOS/UEFI
- Mode de fonctionnement :
- Le BIOS fonctionne en mode 16 bits (système plus ancien).
- L’UEFI peut fonctionner en 32 bits ou même 64 bits (plus moderne).
- Rôle :
- Charge les bases nécessaires au démarrage.
- Initialise le matériel en effectuant un POST (Power-On Self Test).
3. POST (Power-On Self Test)
- Action : Le BIOS ou l’UEFI effectue un diagnostic du matériel.
- Rôle :
- Vérifie les composants essentiels (RAM, processeur, carte graphique, etc.).
- Si une erreur critique est détectée, le processus s’arrête.
4. Sélection du périphérique de démarrage
- Action : Le BIOS/UEFI identifie le périphérique qui contient un système d’exploitation.
- Rôle :
- Cherche un disque bootable (HDD, SSD, clé USB, etc.).
- Charge le Master Boot Record (MBR) ou une autre structure pour démarrer.
5. MBR (Master Boot Record)
- Action : Le BIOS/UEFI transmet le contrôle au MBR situé dans le premier secteur du disque.
- Rôle :
- Le MBR est une petite section (512 octets) au début du disque.
- Contient une table de partition et un petit programme pour transférer le contrôle au Volume Boot Record (VBR).
6. VBR (Volume Boot Record)
- Action : Le MBR charge le VBR de la partition active.
- Rôle :
- Le VBR identifie le système d’exploitation installé sur cette partition.
- Transmet le contrôle au chargeur d’amorçage principal.
7. BOOTMGR (Windows Boot Manager)
- Action : Le BOOTMGR est lancé par le VBR.
- Rôle :
- Charge le noyau du système d’exploitation (Windows, dans ce cas).
- Affiche un menu si plusieurs systèmes d’exploitation sont installés.
- Transmet le contrôle au fichier système KERNEL32.
8. KERNEL32 / Ancêtres comme NTLDR.exe
- Action : Le fichier système (KERNEL32) ou un équivalent (comme NTLDR pour les anciennes versions de Windows) est lancé.
- Rôle :
- Charge le noyau du système d’exploitation en mémoire.
- Démarre les processus système nécessaires pour initialiser Windows.
Que faire en cas de ransomware (ou autre attaque ?) :
Cas de ransomware :
-
Mesures immédiates :
- Couper immédiatement le réseau pour isoler les machines.
- Ne pas éteindre le PC :
- Sauvegarder la mémoire volatile.
- Éviter de générer de nouveaux logs qui pourraient écraser des données importantes.
-
Objectif :
- L'analyse forensique consiste à collecter, préserver, examiner et interpréter des preuves numériques.
Gestion de crise (technique) :
-
Étapes principales :
- Dump de la RAM en priorité, puis dump du disque.
- Noter :
- L’heure de sa montre.
- L’heure affichée sur l’ordinateur pour chaque action (ex. : branchement d’un disque, début du dump, etc.).
- Effectuer un dump bit à bit :
- Archiver les données sans compression (ex. : avec
tar
en mode zéro compression).
- Archiver les données sans compression (ex. : avec
-
Pourquoi analyser la RAM en premier ?
- La RAM est plus légère à analyser avec moins de fichiers dumpés.
- Contient des données essentielles comme des sessions, clés de chiffrement ou indicateurs pouvant guider l’analyse du disque.
Outils pour la forensic :
-
Pour le dump de données :
dd
: Pour copier bit à bit.testdisk
: Pour retrouver des partitions perdues.photorec
: Pour récupérer des fichiers supprimés.hexedit
: Pour analyser ou modifier des données hexadécimales.
-
Commande pour dumper un disque avec
dd
:
#windows
dd.exe if=\\?\Device\Harddisk0\Partition0 of=Z:\disk.raw --progress bs=17408
#linux
dd if=/dev/sdX of=/path/to/dump.raw bs=512 status=progress
Explication :
if=
: Fichier d’entrée (ici, un chemin de disque en norme Microsoft - Win32 Device Paths).of=
: Fichier de sortie (le dump du disque).--progress
: Affiche une barre de progression.bs=
: Taille de bloc (ici, 17408 octets pour améliorer la vitesse, au lieu des 512 octets par défaut).
Analyse d’un dump disque :
-
Vérification des partitions avec
fdisk
:- Exemple :
fdisk -l disk.raw
- Objectif : Confirmer le label du disque (ex. : DOS, GPT).
- Exemple :
-
Recherche des fichiers critiques dans une installation Windows :
- Fichiers à explorer dans le dump :
Windows/system32/config/SAM
Windows/system32/config/SECURITY
Windows/system32/config/SYSTEM
- Ces fichiers contiennent la base de registre et des informations cruciales comme :
- Utilisateurs enregistrés.
- Hashes de mots de passe.
- Fichiers à explorer dans le dump :
Liste des outils nécessaires à la forensique numérique
1. Outils pour la collecte de données :
-
dd
-
dcfldd
:- Version améliorée de
dd
, conçue pour la forensic. - Permet d’ajouter des fonctionnalités comme des logs ou des checksums.
- Exemple :
-
#linux dcfldd if=/dev/sdX of=/path/to/dump.raw hash=md5 hashlog=hash.log
- Version améliorée de
-
FTK Imager
:- Outil graphique pour Windows utilisé pour capturer et examiner des images disques.
- Permet de lire directement les systèmes de fichiers et d'exporter les données.
-
Memdump
/LiME
:- Outils pour effectuer des captures de la mémoire vive (RAM) en temps réel.
2. Outils pour l’analyse des disques et partitions :
-
testdisk
:- Analyse et récupère des partitions perdues ou corrompues.
- Utile pour examiner les structures de partitions.
- Exemple :
#linux testdisk /path/to/disk.raw
-
photorec
:- Conçu pour récupérer des fichiers supprimés (photos, documents, vidéos).
- Fonctionne avec plusieurs systèmes de fichiers.
-
autopsy
:- Interface graphique de The Sleuth Kit.
- Permet une analyse approfondie des fichiers, métadonnées et artefacts.
- Exemple :
-
#linux autopsy
hexedit
ou HxD
:
- Permet une analyse hexadécimale des dumps de disque ou fichiers spécifiques.
3. Outils pour l’analyse de la RAM :
-
volatility
:- Framework pour analyser les dumps de RAM.
- Commande pour charger un dump :
-
#linux volatility -f memory.dump imageinfo
- Permet de détecter les processus, connexions réseau actives, clés de chiffrement en mémoire, etc.
rekall
:- Alternative à Volatility pour analyser des images mémoire.
4. Outils pour la gestion des bases de registre Windows :
-
reglookup
:- Pour analyser les fichiers de la base de registre (SAM, SYSTEM, SECURITY).
- Exemple :
-
reglookup /path/to/SYSTEM
chntpw
:- Permet d’analyser ou modifier les fichiers de la base de registre pour manipuler les mots de passe.
5. Outils pour la gestion des hashes et mots de passe :
hashcat
:- Outil de craquage de mots de passe utilisant des hashes.
- Exemple :
-
hashcat -m 1000 hashfile.txt wordlist.txt
John the Ripper
:- Alternative pour craquer des mots de passe, compatible avec de nombreux formats de hash.
6. Outils réseau pour l’analyse forensique :
Wireshark
:- Analyseur de trafic réseau pour examiner les paquets capturés.
- Peut ouvrir des fichiers PCAP (captures réseau).
tcpdump
:- Capture de trafic réseau en ligne de commande.
- Exemple :
-
tcpdump -i eth0 -w capture.pcap
No Comments