Skip to main content

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 ?
  1. Preuves falsifiées ou mal interprétées.
  2. Données perdues ou corrompues si mal manipulées.
  3. Violations de la vie privée (intrusion abusive dans les systèmes informatiques).
  4. Pressions ou menaces contre les experts forensiques.

À quoi ressemble un disque dur ? 

Sans titre.png

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 :

  1. Image du système d’exploitation (OS) : Une copie complète (ou "image") de Windows, Linux, etc.
  2. Outils de réparation : Programmes pour :
    • Réparer le démarrage.
    • Scanner le disque pour les erreurs.
    • Restaurer le système.
  3. Drivers : Pilotes essentiels pour le matériel (carte réseau, graphique, etc.).
  4. 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 ?
  1. 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.
  2. 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.

Screenshot_148.jpg

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 :
  1. 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.
  2. Objectif :

    • L'analyse forensique consiste à collecter, préserver, examiner et interpréter des preuves numériques.

Gestion de crise (technique) :
  1. É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).
  2. 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 :

  1. 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.
  2. 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).
  • 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.



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
  • 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