Vous êtes sur la page 1sur 41

Analyse d’évidences

Introduction
PhD. Mohammed-Amine KOULALI
m.koulali@ump.ac.ma
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 2 / 39

RAM

● Mémoire à accès aléatoire a.k.a. mémoire de travail où les program-


mes sont exécutés
● L’endroit où les programmes sont exécutés par opposition à la mé-
moire permanente (disque, clé USB, ROM, . . .) où les programmes
(et autres données) sont stockés
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 3 / 39

Pourquoi nous avons besoin d’analyser la RAM


● Chaque activité sur un ordinateur modifie l’état d’une partie de la
RAM.
● La RAM contient également des informations, introuvables ailleurs.

– messages de communication
– mots de passe, codes PIN, . . .
– texte temporaire, chiffres, . . .
● Les informations peuvent rester longtemps dans la RAM même
après la fin du processus
● Elle contient une abondance d’informations sur l’état du système
informatique
– Processus
– Données: données utilisateur, mots de passe,
– Connexions
– Informations système: charge, priorités, . . .
– Informations techniques: compteurs, pointeurs, registres, . . ..
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 4 / 39

Analyse de la RAM

● Énorme quantité de données binaires, apparemment sans structure


ni séquence
● Nous avons besoin d’outils d’analyse
1. Recherche d’un texte spécifique de séquence d’octets: grep, regex, HxD,
...
2. Des outils plus avancés qui comprennent les structures en mémoire
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 5 / 39

Informations en RAM

● Processus
● Noyau
● Réseau
● Interface utilisateur graphique
● Spécificités Windows
– activité / événement
– Journal des logs
– système de fichiers
● Spécificités Linux
– Bash
– l’historique
– dmesg
– Tampons du noyau
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 6 / 39

Processus

● Qu’est-ce qu’un processus?


– Un programme en cours d’exécution
– Ses données
– Structures de contrôle qui la soutiennent
● Que devons-nous savoir sur les processus
– Liste de tous les processus
– Heure de démarrage et d’arrêt (parfois)
– Contexte de sécurité: utilisateurs, privilèges
– Handles: connexions et fichiers ouverts
– Autre contenu de données
• SMS traités: mail, chat, . . .
• mots de passe, PIN,. . .
• structures de données
● Avertissement: certains logiciels malveillants peuvent obscurcir l’analyse
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 7 / 39

Liste des processus sous Windows


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 8 / 39

Liste des processus sous Linux


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 9 / 39

Noyau du système d’exploitation

● Modules chargés
– pilotes de périphérique
– pilotes de système de fichiers
– pilotes réseau
– appels système personnalisés
– interpréteur exécutable
● Toutes les structures et leurs descripteurs
– liste chaînée de processus (actifs)
– les connexions de réseau
– IO cachés
– timers
● Parfois même d’anciens processus qui ne sont plus présents dans
la RAM
– important lors de la recherche de rootkit"cependant, rootkit a accès à
toutes les structures du noyau et les modifie souvent pour se cacher et
se cacher des informations importantes
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 10 / 39

Réseau

● Adresse IP et numéro de port de la source et de la destination


● Heure d’ouverture et de fermeture d’une connexion (parfois)
● Liste des requêtes DNS récentes: découverte des connexions précé-
dentes, non actuellement actives
● Historique du (des) navigateur (s) Web
● Le reniflement de communication peut être détecté
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 11 / 39

Interface utilisateur graphique

● Aperçu des fenêtres et de l’état des composants


● Presse-papiers
● Les logiciels malveillants attaquent souvent l’interface graphique
par: key logging, insertion de publicités.
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 12 / 39

Spécificités de Windows

● journal des événements: problèmes d’application, installation du


programme
● Registre:
– les programmes et fichiers récemment utilisé
– informations non disponibles sur le disque
• HKLM\Matériel: créé au moment du démarrage, il identifie tout le ma-
tériel avant de charger les pilotes. Cette information est cruciale pour le
bon fonctionnement du système.
● Système de fichiers: par ex. MFT de NTFS
– les métadonnées des fichiers et même les petits fichiers complets sont
dans la RAM
– aide à l’analyse des disques chiffrés
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 13 / 39

Spécificités Linux

● Historique Bash: stocké sur disque il peut être désactivé mais reste
en RAM
● dmesg: les pilotes envoient des messages et sont stockés dans un
tampon du noyau. Plus tard ils sont stockés dans un journal sur le
disque
● Tampon réseau: accès aux messages actifs
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 14 / 39

Comment la RAM est analysée?

● L’image RAM est d’abord isolée dans un fichier


1. recherche simple de contenu connu grep, regex
2. outils avancés comprenant les structures du noyau
● Framework Volatility: http://www.volatilityfoundation.org
● WinDbg:
– outil officiel et gratuit de Microsoft pour le débogage
– https://msdn.microsoft.com/en-us/windows/hardware/hh852365.
aspx
● Mandian Redline:https://www.fireeye.com/services/freeware/
redline.html
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 15 / 39

Framework Volatility
http://www.volatilityfoundation.org

● Gratuit, open source


● Il prend en charge: Windows, Mac OS X, Linux
● Interface de ligne de commande (CLI) uniquement, mais d’autres
auteurs ont développé des interfaces graphiques
● Prend en charge divers formats d’image RAM du fichier brut au
fichier d’hibernation
● De nombreux modules: presse-papiers, cmdline, devicetree, conso-
les, dlllist, evtlogs, hashdump, iehistory, mftparser netscan, pslist,
screenshot, svcscan, truecryptmaster, vadtree, yarascan
● Rekall: un projet né de Volatility visant à améliorer les performan-
ces et la modularité
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 16 / 39

Modules de Volatility

● clipboard: présente le contenu du presse-papiers


● cmdline: affiche les arguments passés au processus lors du démar-
rage
● devicetree: liste des périphériques connectés
● consoles: historique des commandes de la console
● dlllist: liste des bibliothèques DLL chargées
● evtlogs: affiche le journal des événements (XP / 2003)
● hashdump: liste des hachages de mot de passe
● iehistory: historique du navigateur Web IE (Internet Explorer)
● mftparser: accès à MFT de NTFS
● netscan: affiche les connexions et les sockets
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 17 / 39

Modules de Volatility

● pslist: liste des processus (en utilisant la liste des objets EPROCESS)
● screenshot: reconstitue l’apparence du bureau
● svcscan: liste des services
● truecryptmaster: tente de récupérer la clé des tampons chiffrés avec
TrueCrypt
● vadtree: affichage de l’allocation de mémoire
● yarascan: recherche dans la mémoire les chaînes décrites avec les
règles Yara
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 18 / 39

WinDbg
https://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx

● Outil officiel et gratuit de Microsoft pour le débogage


● utilisé pour:
– programmes de débogage, pilote et système d’exploitation
– analyse des images de vidage sur incident
● L’outil le mieux adapté pour l’analyse des structures Windows, car
il est pris en charge par Microsoft
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 19 / 39

Mandian Redline
https://www.fireeye.com/services/freeware/redline.html

● outil professionnel gratuit


● prend en charge: Windows XP à 8 GUI conçu pour créer des rap-
ports de forensics
● analyses:
– tous les processus en cours
– pilotes
– système de fichiers
– journal des événements
– Connexions
– enregistrement
– historique web
● Une attention particulière est portée au flux chronologique et au
filtrage pour aider à trouver le moment de l’infection et des fichiers
infectés
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 20 / 39

Exemple avec Volatility


● Volatility avec le plug-in "editboxdétecte/extrait les chaînes dans
le processus notepad.exe"
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 21 / 39

Exemple avec Volatility


● Volatility avec le plug-in "vaddump"extrait une image du proces-
sus paint.exe"
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 22 / 39

Exemple d’organisation de la mémoire du processus


● Le dump de la mémoire peut être stocké dans un fichier contigu ou
divisé en fichiers comme ci-dessus
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 23 / 39

Comment créer une image mémoire

● Machine virtuelle: outils intégrés pour la mise en pause et le débo-


gage
● Logiciel de copie: nécessité une élévation de privilèges superutili-
sateur/administrateur
● Acquisition matérielle: bus avec accès DMA
– FireWire seulement 4 premiers Go
– Prise à chaud PCI express requise
– Cold Boot DDR2 OK, mais DDR3 et DDR4?
● Attention: l’acquisition de mémoire peut planter l’ordinateur: pilo-
te instable, etc. . . .
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 24 / 39

Sources complémentaires sur disque

1. Fichier Crash dump: ne contient (généralement) qu’une partie de


la RAM après une erreur système critique
2. Fichier d’hibernation: contient le contenu complet de la RAM avant
la mise hors tension
3. Fichier d’échange: contient des pages de mémoire actuellement in-
utilisées
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 25 / 39

Crash dump

● Lorsque le système d’exploitation détecte une erreur fatale, il s’arrête.


Avant cela, il stocke l’image RAM dans un fichier sur le disque
● Il peut stocker: une image RAM complète ou un noyau minimal ou
juste une partie de la mémoire au début
● Les lacunes sont:
– L’image ne contient généralement pas les premiers secteurs avec MBR
– Il se peut qu’il n’y ait pas suffisamment d’espace sur le disque ou que
le disque soit chiffré
– L’image peut être corrompue en raison de l’interférence d’un logiciel
malveillant
● Le vidage sur incident peut être délibérément provoqué par un pi-
lote manipulé, corrompu ou défectueux
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 26 / 39

Crash dump
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 27 / 39

Fichier d’hibernation

● La plupart des systèmes d’exploitation prennent en charge la «mi-


se en veille prolongée»: suspension temporaire des opérations et
mise hors tension de l’ensemble de l’ordinateur tout en conservant
la capacité de poursuivre toutes les opérations après la mise sous
tension
● Toute l’image RAM est stockée sur le disque
● Une analyse d’évidence complète de la RAM peut être effectuée sur
un fichier d’hibernation
● Le fichier d’hibernation est un risque à la sécurité car il peut conte-
nir un mot de passe pour le disque crypté
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 28 / 39

Architecture des ordinateurs


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 29 / 39

Fichier d’échange

● Pages?
● Mémoire virtuelle?
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 30 / 39

Mémoire virtuelle vs physique

● Le processeur utilise des adresses physiques


● Mais le processus utilise des adresses virtuelles
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 31 / 39

Pourquoi avons-nous besoin de mémoire virtuelle

1. Adresse de départ connue pour l’exécution de chaque programme


2. Séparation des processus de manière solide et sûre
3. Mémoire illimitée pour le processus et tous les processus
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 32 / 39

Adresses de départ connues


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 33 / 39

Séparation des processus

● Pour chaque processus, le système d’exploitation programme la


MMU pour autoriser l’accès d’un processus uniquement à une par-
tie spécifique de la mémoire physique
● Toute tentative du processus d’accéder à de la mémoire en dehors
de l’espace alloué génère une interruption du processeur
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 34 / 39

Mémoire illimitée pour le processus

● La mémoire du processus est divisée en blocs de taille fixe = Pages"


● Lorsqu’un processus a besoin de plus d’espace mémoire que ce qui
est physiquement disponible
1. Le système d’exploitation choisit une page de la mémoire du proces-
sus qui n’est pas utilisée,
2. l’écrit sur le disque et alloue cet espace physique au processus en tant
que nouvelle partie (étendue) de la mémoire virtuelle
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 35 / 39

Allocation de mémoire non existante


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 36 / 39

Paging
● L’espace mémoire est regroupé en pagesde 4 Ko
● Les pages peuvent être en RAM ou sur disque
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 37 / 39

Image RAM sur les pages

● Le fichier d’échange contient des parties de RAM actuellement in-


utilisées
● Les pages sont dans un ordre aléatoire, une table de pages est donc
nécessaire pour interpréter efficacement son contenu
● Linux utilise une partition dédiée pour la pagination. Cependant,
des outils avancés d’analyse de page sont encore en cours de déve-
loppement
ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 38 / 39

Organigramme d’acquisition de la mémoire


ISSIC4-M1 - Analyse d’évidences M.-A. KOULALI 10/11/2020 39 / 39

Conclusion

● Il y a environ 10 ans, les enquêteurs éteignaient l’ordinateur sans


hésitation
● Et n’utilisez le disque que pour l’analyse
● Analyse RAM aujourd’hui champ de recherche actif et grand nom-
bre de passionnés et d’utilisateurs
● Si des attaquants peuvent l’installer, vous pouvez le détecter!
Merci pour votre Attention!

Vous aimerez peut-être aussi