Vous êtes sur la page 1sur 55

Analyse d’evidences pour Ordinateur

Mohammed-Amine KOULALI
m.koulali@ump.ac.ma

ENSAO/UMP

7 Février 2024

1
Plan

Introduction

Analyse d’évidences pour systèmes de fichiers

Démarrage de l’ordinateur

Organisation des Systèmes de Fichiers (SFs)

2
Analyse d’évidences

▶ Détecter des traces.


▶ Déterminer une séquence de traces.
▶ Attribuer un temps, lieu et responsable à une trace.

Pour:

▶ Détecter le non trivial.


▶ Aider à trouver des choses perdues.
▶ Contribuer à une enquête.

3
Analyse d’évidences

▶ Les traces sont exclusivement binaires.


▶ Un changement d’une donnée binaire ne laisse pas une autre
trace.
▶ Ainsi, il est possible de changer une donnée binaire sans être
capable de détecter avec certitude qui et quand cela a été fait.

4
Analyse d’évidences

▶ Elle couvre
▶ Contenu
▶ Événements
▶ Algorithmes
▶ Propriétés Matérielles

▶ Elle révèle
▶ Information
▶ Matériel
▶ Systèmes
▶ Communication

5
L’analyse d’évidences pour ordinateurs

Définition
L’analyse d’évidences pour ordinateurs désigne le processus de
collecte, d’examen et d’interprétation des données numériques afin
de détecter et d’analyser le contenu ainsi que les événements ayant
eu lieu sur un ordinateur.

Elle couvre les discipline suivantes:

▶ Détection des manipulations de contenu digital


▶ Cryptographie: Déchiffrer l’information
▶ Sténographie: Détecter les informations cachées (images)
▶ Reverse engineering logiciel/matériel

6
Ce que le cours couvrira

▶ Trouver des fichiers de données sur des supports numériques


▶ Trouver du contenu invisible dans des fichiers
▶ Identifier les processus et leurs arguments
▶ Identifier les communications avec d’autres ordinateurs et leurs
contenus
▶ Analyse du contenu des e-mails
▶ Analyse des journaux d’activité

7
Trouver des fichiers sur des supports numériques

▶ Scénarios:
▶ Crash ou dysfonctionnement de l’ordinateur ou des supports
▶ Crash du système d’exploitation ou des applications
▶ Erreurs de manipulation logicielle ou matérielle
▶ Activité malveillante de logiciels malveillants
▶ Suppression volontaire par des utilisateurs

▶ Objectifs de l’analyse d’évidences :


▶ Déterminer si les fichiers ont existé
▶ Reconstruire le contenu du fichier ou certaines parties
▶ Reconnaître le type de contenu pour un traitement ultérieur

8
Trouver du contenu invisible dans des fichiers

▶ Contenu des fichiers :


▶ Des métadonnées qui décrivent le fichier et son contenu
▶ Des données temporaires créées lors de la manipulation du
fichier
▶ Du contenu de fichiers anciens qui existaient au même endroit
physique

▶ Objectifs de l’analyse d’évidences :


▶ Trouver ces données
▶ Les présenter sous une forme utile

9
Identifier les processus

▶ Toute activité sur un ordinateur est réalisée par un processus.


▶ En analysant les activités d’un processus, on peut déterminer :
▶ Qui, Quoi et quand quelque chose a été fait
▶ Les programmes cachés qui supervisent les activités des
utilisateurs ou les programmes malveillants

▶ Objectifs de l’analyse d’évidences :


▶ Identifier les processus
▶ Identifier leurs activités
▶ Identifier les données qu’ils utilisent
▶ Identifier les autres machines avec lesquelles ils communiquent

10
Identifier les communications avec d’autres machines

▶ Les ordinateurs échangent des données entre eux :


▶ Via des requêtes explicites des utilisateurs (ou programmes
cachés) : SMTP, SSH, HTTP, FTP, etc.
▶ Ou automatiquement, comme des sous-systèmes techniques :
DNS, DHCP, ARP, etc.

▶ Objectifs de l’analyse d’évidences :


▶ Identifier les ordinateurs en communication
▶ Détecter les flux d’échange d’informations
▶ Trouver les données clés telles que les adresses, les clés, le
timing

11
Analyse du contenu des e-mails

▶ L’émetteur d’un e-mail peut être forgé.


▶ L’analyse d’évidences essaie de découvrir, si possible, le vrai
émetteur réel ou au moins l’adresse IP utilisée pour l’envoi et
sa date exacte.
▶ Les pièces jointes peuvent être manipulées.
▶ L’analyse d’évidences essaie de découvrir et de détecter le vrai
type de contenu, ainsi que de reconstruire le contenu.

12
Analyse des journaux d’activité

▶ Sur un ordinateur actif, l’OS et les applications enregistrent les


activités dans des journaux (logs).
▶ Il existe plusieurs fichiers de logs.
▶ L’analyse d’évidences essaie de découvrir qui a fait quoi et
quand.

13
Ce que le cours ne couvre pas

▶ Détecter si une image a été éditée


▶ Détecter si un enregistrement audio est faux
▶ Chiffrer des messages chiffrés
▶ Reverse engineering de programmes
▶ Les attaques techniques sur :
▶ Ordinateurs
▶ Communications
▶ Personnes
▶ Informations
▶ Techniques de protection

14
Objectifs du cours

Objectifs:
▶ Montrer comment opère l’analyse d’évidence au niveau le plus
basique.
▶ Donner une vue d’ensemble sur le fonctionnement d’un
système de fichiers.
▶ C’est aussi la base des outils modernes d’analyse d’évidences.

Dans ce cours:
▶ Les concepts de base des systèmes de fichiers populaires seront
expliqués.
▶ Les concepts nécessaires pour approfondir les recherches sur
les systèmes de fichiers seront abordés.

15
Prérequis

▶ Connaitre la différence entre les systèmes de codage décimal,


hexadécimal et binaire et le passage d’un système à l’autre
▶ Différence entre :
▶ Big-endian : "network byte order"
▶ Little-endian : microprocesseurs "Intel format"
▶ Exemple : 201510 = 0x07 0xdf (Big-endian) et 201510 = 0xdf
0x07 (Little-endian)

16
Système de fichiers

▶ L’analyse d’évidences se focalise sur les supports de stockage


permanent
▶ Préservent l’information même en absence d’alimentation
▶ Typiquement : disques, cartes mémoires, USB, etc.
▶ Pour gérer la mémoire et donner un sens à chaque bit, toute
mémoire permanente devra être formatée avec un système de
fichiers
▶ Les objectifs de l’analyse de systèmes de fichiers sont de :
▶ Trouver des fichiers
▶ Restaurer les fichiers perdus ou supprimés
▶ Découvrir des données perdues

17
Qu’est-ce qu’un système de fichiers ?

▶ Une abstraction, un concept


▶ Un schéma organisationnel pour une mémoire permanente
▶ Réalise les opérations de :
▶ Organisation
▶ Gestion
▶ Stockage
▶ Récupération de données
▶ Permet aux ordinateurs de travailler avec des fichiers/données
▶ Il est le plus souvent organisé en hiérarchie

18
Stockage à accès séquentiel vs. Accès aléatoire
Accès Séquentiel :
▶ Les données sont lues ou écrites séquentiellement, l’une après
l’autre, du début à la fin.
▶ Il est nécessaire de parcourir toutes les données précédentes
pour accéder à une donnée spécifique.
▶ Exemples de supports de stockage à accès séquentiel :
▶ Bandes magnétiques, Bandes VHS, Cassettes audio

Accès Aléatoire :
▶ Les données peuvent être accédées directement, sans avoir à
parcourir les données précédentes.
▶ L’accès aux données est indépendant de leur position physique.
▶ Exemples de supports de stockage à accès aléatoire :
▶ Disques durs, Mémoires flash, CD-ROMs, DVD-ROMs

19
Stockage à accès séquentiel

20
Stockage à accès aléatoire

21
Les systèmes de fichiers les plus utilisés

▶ Windows :
▶ FAT12, FAT16, FAT32
▶ exFAT
▶ NTFS

▶ UNIX :
▶ ext, ext2 , ext3, ext4

▶ Autres :
▶ Mac OS : HFS, HFS+
▶ CD/DVD : ISO9660, UDF
▶ JFS, ReiserFS, XFS, UFS
▶ Google File System, Hadoop Distributed File System, etc.

22
Démarrage de l’ordinateur

▶ Au démarrage, l’ordinateur cherche typiquement une mémoire


permanente : Disque Dur, DVD, USB, etc. pour :
▶ Lire des instructions : Un programme
▶ Les charger en mémoire
▶ Les exécuter

Comment un ordinateur connaît-il quel système de fichier la


mémoire permanente utilise ?

23
Démarrage de l’ordinateur

24
Organisation de la mémoire permanente

25
Master Boot Record

26
MBR

27
Bootstrap code
#include <stdio.h>
#include <stdlib.h>

int main() {
// Trouver la partition active en scannant la table
// de partitionnement
// Lire le premier secteur de la partition active
// Copier le programme trouvé en mémoire

// Démarrer le programme chargé


printf("Bootstrap : Démarrage du programme\n");

// Exécuter le programme chargé


// ...

return 0;
}
28
Table de partitionnement

▶ Partition : Une part du disque physique, un disque logique de


plus petite taille, permettant de séparer :
▶ L’OS des données
▶ Différents OS
▶ Les zones de swap/paging de l’OS (utiles si des parties du
disque sont endommagées)
▶ Le MBR dispose de 4 entrées pour les partitions, chacune
d’une taille de 16 octets.
▶ Chaque entrée contient des champs qui permettent de savoir :
▶ Si la partition est active
▶ Quel système de fichiers est utilisé pour formater la partition
▶ Sur quel secteur commence la partition
▶ La taille de la partition

29
Table de partitionnement

30
Partitions Primaires et Étendues, EBR et EPBR
▶ Partitions Primaires (max 4) : Des partitions directement
adressables par le MBR, utilisées pour installer des systèmes
d’exploitation ou stocker des données.
▶ Partition Étendue (max 1) : Une partition spéciale qui peut
contenir plusieurs partitions logiques.
▶ EBR (Extended Boot Record) : Un enregistrement de
démarrage similaire au MBR, contenu dans le premier secteur
de la partition étendue.
▶ EPBR (Extended Partition Boot Record) : Le premier
secteur de la partition étendue contient l’EBR. L’EPBR
contient des informations sur les partitions logiques dans la
partition étendue.
▶ Seules les deux premières entrées de la table de
partitionnement sont utilisées :
▶ La première décrit la partition logique courante.
▶ La seconde décrit où commence la prochaine partition étendue.
▶ Ainsi, une liste chaînée de partitions peut être créée.
31
Partitions Primaires et Étendues, EBR et EPBR

32
Boot Signature

▶ A la fin du MBR, il y a un champ sur 2 octets.


▶ Ce champ contient toujours la valeur 0x55 0xAA.
▶ Il indique la fin du MBR.
▶ Permet de vérifier si le MBR est :
▶ Présent
▶ Valide

33
Limitations du MBR

1. Seulement 4 entrées de partitions dans la table de


partitionnement :
▶ Limite le disque à seulement 4 partitions primaires.
▶ Peut être contournée par l’utilisation de partitions
étendues/logiques.
2. Le champ de taille d’une partition est sur 32 bits :
▶ Taille maximale d’une partition est 232 secteurs de 512 bytes,
soit 2 TB.
Pour contrer ces limitations, une alternative au Master Boot
Record a été inventée :
▶ GUID Partition Table (GPT)

34
GPT : Table de partitionnement avec GUID

▶ Nouveau standard avec pour objectif de remplacer le MBR.


▶ Chaque partition a un identifiant unique global (GUID).
▶ Contrairement au MBR :
▶ Pas de restrictions sur le nombre ou la taille des partitions
(MBR).
▶ Le GPT est stocké en plusieurs copies à travers le disque pour
garantir sa cohérence.

35
Que se passe-t-il après ?

▶ Le boot code du MBR :


▶ Scan de la table de partitionnement.
▶ Recherche de la partition "active" et bootable.
▶ Identification du système de fichiers utilisé pour son formatage:

▶ 0x07 = NTFS
▶ 0x83 = Linux
▶ Localisation de la partition et de son premier secteur en
commençant du début du disque.
▶ Lecture du(s) premier(s) secteur(s).
▶ Le boot code lit ensuite le bootloader :
▶ Recherche du fichier dans le système de fichiers du programme
(bootloader) et le charge en mémoire.
▶ À partir de cette phase, les spécificités des systèmes de fichiers
interviennent.

36
Bootloader

▶ Le bootloader :
▶ Comprend le système de fichiers particulier utilisé.
▶ Cherche dans ce système de fichiers le noyau de l’OS.
▶ Le charge en RAM.
▶ Et le démarre.

37
BootLoader

38
Dual Boot

▶ Plusieurs partitions peuvent être bootables.


▶ Une seule partition est marquée bootable/active.
▶ Le bootloader est dans la partition active/bootable.
▶ Configuré pour charger n’importe quel OS :
▶ LILO, GRUB, NTLDR, etc.
▶ Le plus souvent utilisé dans une distribution Linux.
▶ Détecte tous les OS bootable sur le disque.
▶ Demande à l’utilisateur lequel charger.
▶ Le charge à partir de la partition choisie.
▶ L’exécute (démarre l’OS).

39
Liste des Bootloaders
▶ AiR-Boot
▶ AKernelLoader
▶ Barebox
▶ BootX (Apple)
▶ BootX (Linux)
▶ Darwin Boot Loader
▶ Das U-Boot
▶ FreeLoader
▶ GNU GRUB
▶ GRUB4DOS
▶ Gujin
▶ iBoot
▶ LILO
▶ NTLDR
▶ SYSLINUX
▶ systemd-boot / Gummiboot
▶ ...
40
BootLoader

41
Système de Fichiers FAT16

▶ Le système de fichiers FAT16 est composé de plusieurs


éléments :
1. Boot Sector : Le secteur d’amorçage, également connu sous
le nom de secteur de démarrage, contient des informations
essentielles pour démarrer le système de fichiers, telles que le
code de démarrage et les paramètres de formatage.
2. File Allocation Table (FAT) : La table d’allocation des
fichiers est une structure de données essentielle qui répertorie
l’emplacement de chaque fichier sur le disque.
3. Root Directory : Le répertoire racine est le répertoire de
niveau supérieur du système de fichiers qui contient les entrées
de répertoire pour chaque fichier et sous-répertoire dans le
volume.
4. Clusters contenant les données : Les données réelles des
fichiers sont stockées dans des clusters, qui sont des unités de
stockage de données de taille fixe.

42
Système de Fichiers FAT16

43
Secteur d’Amorçage (Boot Sector)

44
Secteur d’Amorçage (Boot Sector)

▶ Le secteur d’amorçage est une section vitale du système de


fichiers FAT16, composée de plusieurs éléments :
1. Instructions de Saut : Les instructions de saut (EB, 3C, 90)
permettent au processeur de sauter vers le début du code
d’amorçage exécutable.
2. Nom de l’Original Equipment Manufacturer (OEM) : Le
nom de l’OEM qui a formaté le volume.
3. Bloc des Paramètres du BIOS : Contient des données clés
sur la partition, telles que le nombre de bytes par secteur, le
nombre de secteurs par cluster, le nombre de secteurs réservés,
etc.
4. Boot Code Exécutable : Le code d’amorçage exécutable qui
charge le système d’exploitation.
5. Signature : La signature 0xAA55, qui indique la validité du
secteur d’amorçage.

45
Secteur d’Amorçage (Boot Sector) - FAT12
▶ Le secteur d’amorçage du système de fichiers FAT12 est
structuré comme suit :
▶ Octets 0-2 : Instructions de saut vers le bootstrap.
▶ Octets 3-10 : Nom/version de l’OEM (par exemple, "IBM
3.3", "IBM 20.0", "MSDOS5.0", "MSWIN4.0").
▶ BIOS Parameter Block : Bloc de paramètres BIOS :
▶ Octets 11-12 : Nombre d’octets par secteur (512).
▶ Octet 13 : Nombre de secteurs par cluster (1).
▶ Octets 14-15 : Nombre de secteurs réservés (1).
▶ Octet 16 : Nombre de copies de la FAT (2).
▶ Octets 17-18 : Nombre d’entrées du répertoire racine (224).
▶ Octets 19-20 : Nombre total de secteurs dans le système de
fichiers (2880).
▶ Octet 21 : Type de descripteur de média (f0 : 1.4 MB floppy,
f8 : disque dur, ...).
▶ Octets 22-23 : Nombre de secteurs par FAT (9).
▶ Octets 24-25 : Nombre de secteurs par piste (12).
▶ Octets 26-27 : Nombre de têtes.
▶ Octets 28-29 : Nombre de secteurs cachés (0).
▶ Octets 30-509 : Code de démarrage (Bootstrap).
▶ Octets 510-511 : Signature 55 AA.
46
Secteur d’Amorçage (Boot Sector) - FAT16

▶ Le secteur d’amorçage du système de fichiers FAT16 est


structuré comme suit :
▶ Octets 11-27 : Comme précédemment.
▶ Octets 28-31 : Nombre de secteurs cachés (0).
▶ Octets 32-35 : Nombre total de secteurs dans le système de
fichiers.
▶ Octet 36 : Numéro de lecteur logique (pour une utilisation
avec INT 13, par exemple 0 ou 0x80).
▶ Octet 37 : Réservé.
▶ Octet 38 : Signature étendue (0x29).
▶ Octets 39-42 : Numéro de série de la partition.
▶ Octets 43-53 : Étiquette de volume ou "NO NAME".
▶ Octets 54-61 : Type de système de fichiers (par exemple,
"FAT12", "FAT16", "FAT" ou tous zéro).
▶ Octets 62-509 : Code de démarrage (Bootstrap).
▶ Octets 510-511 : Signature 55 AA.

47
Répertoire Racine (Root Directory)

▶ Le répertoire racine est un secteur (ou plusieurs) qui contient


des entrées 32 bits sur les fichiers stockés à la racine du
système de fichiers. Les entrées du répertoire contiennent des
informations telles que :
▶ Nom du fichier.
▶ Extension du fichier : .txt, .pdf, .rar.
▶ Temps de création.
▶ Dernier accès.
▶ Dernière modification.
▶ Position sur le disque.
▶ Taille du fichier.

48
Table d’Allocation des Fichiers (FAT)

▶ La table d’allocation des fichiers (FAT) a une entrée pour


chaque cluster sur le disque qui contient des données.
▶ Chaque cluster contient un pointeur vers le prochain cluster du
fichier ou vers la fin du fichier (0xFFFF pour indiquer la fin).
▶ La table peut être dupliquée, et le nombre de copies est
généralement stocké dans le secteur d’amorçage (Boot Sector).

49
Table d’Allocation des Fichiers (FAT)

▶ Exemple : Trois fichiers différents occupant 7 clusters :

50
Clusters

▶ Les clusters sont des unités de stockage situées sur le disque


immédiatement après le répertoire racine.
▶ Les informations sont stockées dans des clusters, qui sont
composés de plusieurs secteurs de disque consécutifs.
▶ La taille des clusters est définie dans le secteur d’amorçage
(Boot Sector), par exemple 64 ko, exprimée en nombre de
secteurs (512 octets chacun).
▶ Les tailles de clusters typiques sont : 1, 2, 4, 8, 16, 32, 64,
128 secteurs.
▶ Le cluster est la plus petite unité de stockage. Par exemple, un
fichier de 10 ko occupe la totalité du cluster de 64 ko.
▶ Problème : L’espace non utilisé dans les clusters peut conduire
à la possibilité de cacher des informations.

51
NTFS - Structure de Base

1. Secteur d’amorçage de la partition (Partition Boot


Sector)
2. MFT - Master File Table
3. Zone de fichiers (File Area)
▶ En NTFS, tout est un fichier.
▶ NTFS a été conçu comme une base de données.

"Le MFT est une base de données relationnelle qui se com-


pose de lignes d’enregistrements de fichiers et de colonnes
d’attributs de fichiers. Il contient au moins une entrée pour
chaque fichier sur un volume NTFS, y compris le MFT lui-
même." Microsoft

52
NTFS - MFT

53
Boot Sector de la Partition

1. Boot Sector de la Partition


▶ Similaire au boot sector de la FAT, le Boot Sector de la
Partition contient :
▶ BPB (BIOS Parameter Block) et l’Extended BPB, qui
contiennent des champs définissant des paramètres tels que le
nombre d’octets par secteur, le nombre de secteurs par cluster,
le nombre de secteurs réservés, le nombre total de secteurs, etc.
▶ Contient la position de la Master File Table (MFT), qui est
une composante clé du système de fichiers NTFS.

54
Master File Table (MFT)

▶ Tout fichier sur un volume NTFS est représenté par un


enregistrement dans la MFT.
▶ Les enregistrements sont stockés dans la MFT.
▶ La taille de l’enregistrement est variable (1024 octets).
▶ Si le premier enregistrement de la MFT est corrompu, NTFS
lit le deuxième enregistrement pour trouver le fichier MFT
miroir (backup partiel de la MFT).
▶ Si le fichier est de petite taille, il peut être stocké dans un
enregistrement MFT dans le champ ’data attribute’.
▶ Les fichiers larges sont stockés comme des attributs externes.

55

Vous aimerez peut-être aussi