+ All Categories
Home > Technology > Research Paper on Digital Forensic

Research Paper on Digital Forensic

Date post: 16-Apr-2017
Category:
Upload: thomas-roccia
View: 240 times
Download: 6 times
Share this document with a friend
126
Ce document est disponible sous Licence Creative Commons Mémoire de recherche appliquée Contribution à l’investigation numérique Les méthodes de forensic Comment mener à bien une investigation numérique et corréler les données extraites ? Thomas ROCCIA Julien SOUPPOD Sécurité Informatique Maître de Mémoire : Kamal HENNOU 5A 2014
Transcript
Page 1: Research Paper on Digital Forensic

Ce document est disponible sous Licence Creative Commons

Mémoire de recherche appliquée

Contribution à l’investigation numérique

Les méthodes de forensic

Comment mener à bien une investigation numérique et corréler les

données extraites ?

Thomas ROCCIA

Julien SOUPPOD

Sécurité Informatique

Maître de Mémoire : Kamal HENNOU

5A 2014

Page 2: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 1

Résumé

L’utilisation massive des technologies de l’information et le développement de la cybercriminalité, a

conduit à créer une nouvelle branche dans le domaine de l’informatique : l’investigation numérique.

Le forensic est une suite de méthodes d’investigation qui permet de collecter des preuves

numériques dans une enquête judiciaire ou de traiter un incident lié à une attaque sur un système.

A travers ce document de recherche appliquée, nous nous sommes interrogés sur la manière de

mener une investigation numérique en utilisant les méthodes de forensic et sur les moyens

d’analyser et corréler les données extraites d’un système.

Nous avons élaboré ce document comme un guide pratique permettant aux enquêteurs d’avoir une

vision globale des méthodologies d’investigation (CTOSE, Digital Forensic Process, McKemmish) à

travers différents supports numériques (disque dur, mémoire vive, SSD).

Un focus a également été porté sur les aspects légaux dans un contexte national et international.

Tout au long de cette étude vous découvrirez les étapes d’une investigation numérique avec une

démonstration de certains outils spécialisés (Volatility, FTK, EnCase…) ainsi que les techniques

utilisées pour complexifier le travail des enquêteurs aussi appelées anti-forensic. Un chapitre a été

consacré à l’utilisation de ces techniques sur une analyse de malware.

Enfin nous avons choisi de terminer ce document sur la création d’une boite à outils installée sur une

clef USB, comprenant une partition multiboot ainsi qu’une suite d’utilitaires pour mener une

investigation sur n’importe quel système. Cette boite à outils est ouverte et permet à l’utilisateur d’y

inclure ces propres outils.

L’analyse forensic est un domaine technologique en plein développement du fait de la rivalité entre

ceux qui veulent voler et ceux qui veulent protéger les données des entreprises ou des particuliers.

Il constitue à ce jour une des meilleures approches pour la traque des cybercriminels et la protection

de nos données.

Mots clefs

Investigation Numérique Malware Reverse Engineering

Forensic

Post-mortem Méthodologie Anti-forensic Cybercriminalité Guide pratique

Page 3: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 2

Abstract

The massive use of information technologies and the growth of cyber criminality create a new branch

in computing science: digital investigation.

This branch named « forensic » is made of a suite of investigation methods with the aim to collect

digital proofs in case of judicial inquiry or fix a system attack.

With this document of applied research, we question ourselves about the way to develop a digital

investigation by using forensic methods and the resources to analyze and correlate extracted datas

from a system.

We elaborate this document as a user guide for investigators to give an overview of investigation

methods (CTOSE, Digital Forensic Process, McKemmish) applied to several digital storage items such

like hard drives, live memories and SSD.

We also complete this document focusing on national and international legal aspects.

Reading this study, you will go through a step by step digital investigation with demonstrations of

specialized dedicated tools (Volatility, FTK, EnCase…) and common techniques used to lose the

investigators named anti-forensic. A chapter has been dedicated to the use of those techniques

applied to a malware analysis.

Finally, we conclude this document giving a toolbox available in an USB key which contains a multi

boot partition and a suite of software tools to do a digital investigation on any known system. This

toolbox is open to welcome tools developed by the user.

The forensic analysis is a growing domain due to the competition between hackers and investigators.

The first ones want to corrupt or steal datas and the other ones want to protect data of companies

and private users.

This is the best way to track hackers and protect data.

Keywords

Investigation Digital Malware Reverse Engineering

Forensic

Post-mortem Methodology Anti-forensic Cybercriminality User guide

Page 4: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 3

Remerciements

Nous souhaitons adresser nos remerciements les plus sincères aux personnes qui nous ont apporté

leur aide et qui ont contribué à l’élaboration de ce document.

Ces remerciements vont tout d’abord au corps professoral et administratif de l’Ecole Supérieur de

Génie Informatique et plus particulièrement à Monsieur Kamal HENNOU, pour son accompagnement

tout au long de la rédaction de ce document.

Nous remercions également Monsieur Hubert BITAN et ses collaborateurs pour nous avoir reçus et

conseillés sur les techniques et méthodes de l’investigation numérique.

Page 5: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 4

Sommaire Résumé .................................................................................................................................................... 0

Abstract ................................................................................................................................................... 2

Remerciements ....................................................................................................................................... 3

Sommaire ................................................................................................................................................ 4

Licence Creative Commons ..................................................................................................................... 9

Préambule ............................................................................................................................................. 10

Introduction ........................................................................................................................................... 11

Chapitre I : Définition du forensic ......................................................................................................... 12

I.1 – Étymologie et usage .................................................................................................................. 12

I.2 – De la médecine à l’informatique ............................................................................................... 12

I.3 – Le cadre légal ............................................................................................................................. 14

Chapitre II : La méthodologie d’investigation ....................................................................................... 17

II.1 – Etat de l’art ............................................................................................................................... 17

A – La méthode McKemmish ......................................................................................................... 17

B – Le projet CTOSE ....................................................................................................................... 18

C – L’approche Smith et Petreski (DEFCON) .................................................................................. 18

D – Digital Forensic Process ........................................................................................................... 18

II.2 – Les supports numériques ......................................................................................................... 19

A – Disque Dur magnétique........................................................................................................... 19

B – Disque Dur « solides « (SSD) .................................................................................................... 22

C – Mémoire vive (RAM) ............................................................................................................... 25

II.3 – Les outils utilisés pour l’analyse forensic ................................................................................. 26

A – EnCase ..................................................................................................................................... 26

B – FTK (Forensic ToolKit) .............................................................................................................. 27

C – DFF (Digital Forensic Framework) ........................................................................................... 27

D – Les bloqueurs en écriture ........................................................................................................ 28

II.4 – Proposition d’une méthodologie .............................................................................................. 29

Chapitre III : Les méthodes de forensic ................................................................................................. 31

III.1 – Calcul de condensat ................................................................................................................. 31

III.2 – Acquisition et analyse de la mémoire volatile ......................................................................... 34

A – Acquisition de la mémoire volatile .......................................................................................... 34

B – Analyse de la mémoire volatile ............................................................................................... 37

III.5 – Acquisition et analyse de la mémoire non-volatile ................................................................. 42

Page 6: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 5

A – Acquisition de la mémoire non-volatile .................................................................................. 42

B – Monter une image ................................................................................................................... 44

C – Analyse de la mémoire non-volatile ........................................................................................ 46

Chapitre IV : Les méthodes anti-forensic .............................................................................................. 60

IV.1 – Stéganographie ....................................................................................................................... 60

IV.2 – Formatage Sécurisé ................................................................................................................. 61

A – Effacement des disques durs magnétiques ............................................................................. 62

B – Effacement des disques flash, SSD .......................................................................................... 63

C – Effacement de mémoire vive .................................................................................................. 63

D – Effacement sécurisé au niveau matériel ................................................................................. 63

IV.3 – Falsification de Timestamp ..................................................................................................... 63

IV.4 – Cryptographie .......................................................................................................................... 67

A – Détection de partition ou conteneur chiffré ........................................................................... 67

B – Récupération de mot de passe ................................................................................................ 70

IV.5 – Obfuscation de code et packers .............................................................................................. 73

A – Obfuscation ............................................................................................................................. 73

B – Packers ..................................................................................................................................... 74

Chapitre V : Analyse de malware .......................................................................................................... 75

V.1 – Définition et types de malwares .............................................................................................. 75

V.2 – Création d’un environnement d’analyse .................................................................................. 77

V.3 – Etude de cas : le malware NjRAT .............................................................................................. 80

A –Création du programme malveillant ........................................................................................ 82

B – Analyse statique ...................................................................................................................... 85

C – Analyse dynamique ................................................................................................................. 94

Chapitre VI : Création d’un outil .......................................................................................................... 108

VI.1 – Le multiboot USB ................................................................................................................... 108

VI.2 – RocFor : l’utilitaire « Live » .................................................................................................... 110

Conclusion ........................................................................................................................................... 112

Annexes ............................................................................................................................................... 113

A – Options Volatility ....................................................................................................................... 113

B – Script Hash.py ............................................................................................................................ 115

C – Script ForPower.ps1 .................................................................................................................. 117

D – Référence et bibliographie ........................................................................................................ 122

Page 7: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 6

Sommaire des tableaux

Tableau 1 - Représentation de la méthode d’allocation contigus ........................................................ 20

Tableau 2 - Représentation de la méthode d’allocation par lien .......................................................... 20

Tableau 3 - Représentation de la méthode d’allocation indexée ......................................................... 21

Tableau 4 - Représentation de la méthode par stratégie de stockage ................................................. 21

Tableau 5 - Temps de rémanence des données contenues dans la RAM ............................................. 35

Tableau 6 - Liste des fichiers relative aux emails .................................................................................. 57

Tableau 7 - Localisation des fichiers de configuration .......................................................................... 57

Tableau 8 - Comment accéder aux en-têtes d’emails ........................................................................... 59

Tableau 9 - Représentation des différents type d’effacement ............................................................. 61

Tableau 10 - Temps de cassage d’un mot de passe en fonction de sa complexité ............................... 72

Tableau 11 - Configuration de la machine infectée .............................................................................. 78

Tableau 12 - Configuration des autres machines .................................................................................. 79

Tableau 13 - Empreinte des 3 malware générés ................................................................................... 84

Tableau 14 - Extraction de la commande strings .................................................................................. 86

Tableau 15 - DLL utilisé par les keyloggueurs ........................................................................................ 88

Tableau 16 - Fichier créer par le malware ............................................................................................. 95

Tableau 17 - Clef de registre créer par le malware ............................................................................... 96

Tableau 18 - DLL nécessaire au fonctionnement du malware .............................................................. 96

Tableau 19 - Flux réseau du malware décodé ....................................................................................... 99

Sommaire des figures

Figure 1 - Les domaines de l’investigation numérique.......................................................................... 13

Figure 2 - Schéma général d’un disque dur ........................................................................................... 19

Figure 3 - Charge magnétique à la surface d’un disque ........................................................................ 20

Figure 4 - Schéma d’un disque dur SSD ................................................................................................. 22

Figure 5 - Représentation d’une cellule mémoire ................................................................................. 23

Figure 6 - Fonctionnement de TRIM ...................................................................................................... 24

Figure 7 - Représentation d’une barrette mémoire RAM ..................................................................... 25

Figure 8 - Interface d' EnCase ................................................................................................................ 26

Figure 9 - Interface de FTK..................................................................................................................... 27

Figure 10 - Interface de DFF .................................................................................................................. 28

Figure 11 - Bloqueur en écriture ........................................................................................................... 28

Figure 12 - Méthodologie d’une investigation numérique ................................................................... 30

Figure 13 - Principe de fonctionnement d’une fonction de hachage sur 3 entrées différentes ........... 31

Figure 14 - Calcul d’empreinte sous Linux ............................................................................................. 32

Figure 15 - Calcul de hash avec le script hash.py .................................................................................. 32

Figure 16 - Comparaison de hash avec le script hash.py ...................................................................... 33

Figure 17 - Copie de la mémoire vive avec l’utilitaire Dumpit .............................................................. 34

Figure 18 - Bombe à air sec ................................................................................................................... 35

Figure 19 - Gel de barrette mémoire .................................................................................................... 36

Figure 20 - Copie de la mémoire vive avec l’utilitaire MSRAWSDMP ................................................... 36

Figure 21 - Option imageinfo de Volatility ............................................................................................ 38

Figure 22 - Option pslist de Volatility .................................................................................................... 39

Figure 23 - Option memdump de Volatility ........................................................................................... 39

Figure 24 - Option procmemdump de Volatility ................................................................................... 39

Page 8: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 7

Figure 25 - Liste des ruches systèmes avec l’option hivelist de Volatility ............................................. 40

Figure 26 - Extraction des hash avec l’option hashdump de volatility .................................................. 40

Figure 27 - Décryptage du hash NTLM .................................................................................................. 41

Figure 28 - Copie d’un disque dur avec l’utilitaire dd ........................................................................... 42

Figure 29 - Copie d’un disque dur et calcul de condensat avec l’utilitaire dcfldd ................................ 43

Figure 30 - Copie d’une image virtuelle ESXi avec l’utilitaire esximager.pl........................................... 43

Figure 31 - Montage d’une image avec l’utilitaire mount ..................................................................... 44

Figure 32 - Conversion d’une image en vmdk ....................................................................................... 45

Figure 33 - Interface de Forensic Registry Editor .................................................................................. 47

Figure 34 - Affichage chronologique avec UserAssist ........................................................................... 48

Figure 35 - Utilisation de log2timeline .................................................................................................. 48

Figure 36 - Utilisation de photorec ........................................................................................................ 49

Figure 37 - Récupération de fichier jpg avec foremost ......................................................................... 49

Figure 38 - Récupération de tout type de fichier avec foremost .......................................................... 49

Figure 39 - Récupération de l’historique de navigation avec Browser Forensic Tool ........................... 50

Figure 40 - Extraction de mot de passe avec BrowserPasswordDump ................................................. 51

Figure 41 - Analyse de trace réseau avec Wireshark ............................................................................ 52

Figure 42 - Traces d’une activité d’envoi d’informations a un serveur Web (méthode POST) ............. 53

Figure 43 - Analyse d’une capture réseau avec Xplico .......................................................................... 53

Figure 44 - Analyse de trame SSL avec OSPY ......................................................................................... 54

Figure 45 - IHM de Transend Migration, conversion depuis gmail vers pst .......................................... 55

Figure 46 - IHM de Nucleus, conversion des fichiers ost ...................................................................... 55

Figure 47 - Interface de Paraben’s, énumération des emails d’un fichier OST ..................................... 56

Figure 48 - Enumération des pièces jointes .......................................................................................... 56

Figure 49 - Exemple d’une en-tête d’email ........................................................................................... 58

Figure 50 - Détection de logciciel de stéganographie avec StegDetect ................................................ 61

Figure 51 - Effacement de données avec DBAN .................................................................................... 62

Figure 52 - Falsification des dates d’un fichier avec Timestomp .......................................................... 64

Figure 53 - Falsification des dates d’un document WORD avec Timestomp ........................................ 65

Figure 54 - Propriété du document WORD après modification du timestamp ..................................... 65

Figure 55 - Propriété du document WORD affiché dans Office Word après modification du timestamp

Figure 56 - Document WORD dissocié avec 7zip ................................................................................... 66

Figure 57 - Contenu du fichier XML ....................................................................................................... 66

Figure 58 - Création d’un conteneur TrueCrypt .................................................................................... 68

Figure 59 - Analyse de l’entête d’un conteneur TrueCrypt ................................................................... 69

Figure 60 - Détection d’un conteneur TrueCrypt avec TCHunt ............................................................. 69

Figure 61 - Détection d’une partition TrueCrypt avec EDD ................................................................... 70

Figure 62 - Attaque simple sur un mot de passe avec John The Ripper ............................................... 71

Figure 63 - Attaque par dictionnaire sur un mot de passe avec John The Ripper ................................ 71

Figure 64 - Reset du mot de passe BIOS avec CmosPWD ..................................................................... 72

Figure 65 - Détection du packer UPX avec hexdump ............................................................................ 74

Figure 66 - Représentation de la diffusion de malware ........................................................................ 75

Figure 67 - Schéma de l’environnement d’analyse ............................................................................... 78

Figure 68 - Malware NjRAT/Bladabindi recensé fin 2013 ..................................................................... 80

Figure 69 - Interface de commande et de contrôle du malware .......................................................... 81

Figure 70 - Fonctionnalité du malware NjRAT ....................................................................................... 81

Page 9: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 8

Figure 71 - Emplacement du « Builder » ............................................................................................... 82

Figure 72 - Fenêtre de configuration du Malware ................................................................................ 82

Figure 73 - Utilisation du packer Themida ............................................................................................ 83

Figure 74 - Représentation des 3 versions du malware ........................................................................ 84

Figure 75 - Utilisation de l’outil file ....................................................................................................... 85

Figure 76 - Analyse des dépendances DLL du malware non packé ....................................................... 87

Figure 77 - Analyse des dépendances DLL du malware packé .............................................................. 88

Figure 78 - Détection de packer avec PEiD ............................................................................................ 90

Figure 79 - Détection de packer avec Stud_PE ...................................................................................... 91

Figure 80 - Détection de packer avec RDG Packer Detector ................................................................. 91

Figure 81 - Interface d' IDA pro ............................................................................................................. 92

Figure 82 - Analyse du code du malware avec CodeReflect ................................................................. 92

Figure 83 - Extraction du code contenant certaines informations du malware ................................... 93

Figure 84 - Analyse du processus du malware avec ProcessExplorer ................................................... 94

Figure 85 - Analyse de l’activité du malware avec Process Monitor ..................................................... 95

Figure 86 - Extrait du fichier du keyloggueur ........................................................................................ 95

Figure 87 - Contenu de la clef de registre créé par le malware ............................................................ 96

Figure 88 - Activité réseau du malware ................................................................................................. 97

Figure 89 - Activité réseau du malware ................................................................................................. 97

Figure 90 - Flux réseau échangé par le malware lors de son exécution ............................................... 98

Figure 91 - Récupération des informations échangées ......................................................................... 98

Figure 92 - Flux réseau de la fonctionnalité de gestion des fichiers ..................................................... 99

Figure 93 - Flux réseau de la fonctionnalité d’exécution de fichier .................................................... 100

Figure 94 - Flux réseau de la fonctionnalité bureau à distance .......................................................... 100

Figure 95 - Flux réseau de la fonctionnalité caméra à distance .......................................................... 101

Figure 96 - Capture d’écran de la caméra (côté C&C) ......................................................................... 101

Figure 97 - Flux réseau de la fonctionnalité terminal distant ............................................................. 102

Figure 98 - Flux réseau de la fonctionnalité gestion des processus .................................................... 102

Figure 99 - Flux réseau de la fonctionnalité d’accès au registre ......................................................... 103

Figure 100 - Extrait du fichier relatif au Keyloggueur.......................................................................... 103

Figure 101 - Flux réseau de la fonctionnalité Keyloggueur ................................................................. 104

Figure 102 - Flux réseau de la fonctionnalité messagerie instantanée ............................................... 104

Figure 103 - Flux réseau de la fonctionnalité de récupération de mot de passe ................................ 105

Figure 104 - Trame réseau de récupération des mots de passe ......................................................... 105

Figure 105 - Copie d’écran de l’extraction des mots de passe ............................................................ 106

Figure 106 - Réplication du malware sur une clef USB ....................................................................... 106

Figure 107 - Propriété du malware répliqué ....................................................................................... 107

Figure 108 - Copie d’écran du multiboot USB ..................................................................................... 108

Figure 109 - Copie d’écran de l’utilitaire RocFor ................................................................................. 111

Page 10: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 9

Licence Creative Commons

Cette œuvre, création, site ou texte est sous licence Creative Commons Attribution -

Partage dans les Mêmes Conditions 4.0 International. Pour accéder à une copie de cette

licence, merci de vous rendre à l'adresse suivante http://creativecommons.org/licenses/by-

sa/4.0/deed.fr ou envoyez un courrier à Creative Commons, 444 Castro Street, Suite 900,

Mountain View, California, 94041, USA.

Droits intellectuels et usage des noms et marques déposées :

L’usage des noms, marques produits et logos, personnes physiques ou morales figurants dans

le présent document se fait sous couvert de la tolérance accordée en matière de rédaction de

mémoires ou d’études journalistiques en vertu du droit à l’information et ce dans le respect

de la dignité humaine et de la vie privée ni sans porter atteinte aux entreprises ou

organisations détentrices des brevets, marques et modèles cités dans cet ouvrage.

Page 11: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 10

Préambule

L’utilisation massive des technologies de l’information et le développement de la cybercriminalité a

conduit à la création d’une nouvelle branche dans le domaine de l’informatique : l’investigation

numérique.

Les techniques et méthodes d’investigation ne cessent d’évoluer et la diversité des supports

numériques implique de suivre des règles et des procédures strictes, nécessaires à la recherche, la

conservation et l’interprétation des données extraites.

Cette branche initialement exercée par des experts judiciaires de la police nationale ou de la

gendarmerie à des fins de perquisition numérique, s’étend et se développe au secteur privé dans le

cadre d’audit de sécurité et de réponse à incident. Encore relativement nouvelle en France,

l’investigation numérique est de plus en plus demandée par des sociétés privées telles que les

banques et les multinationales.

Ainsi de nombreuses sociétés spécialisées en sécurité informatique ont développé cette activité pour

répondre à la demande croissante des entreprises. Certaines en ont fait leur cœur de métier en

créant des outils spécialisés et reconnus comme AccessData ou Arxys. D’autres encore telles que

LEXSI ou XMCO sont allées jusqu’à développer des offres spécialisées.

L’objectif de ce document est de traiter les différentes techniques d’investigation en apportant une

méthodologie basée sur les principes existants. Il a pour but de guider l’expert en charge de

l’investigation au moyen de règles dites de « bonnes pratiques » mais également de faire découvrir

les méthodes de forensic à toutes les personnes désirant développer leurs compétences dans ce

domaine. Un chapitre sera également consacré à l’analyse de malware qui est une branche

spécifique de l’investigation numérique.

Page 12: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 11

Introduction

A l’heure où la sécurisation des données est une des préoccupations principales et où les systèmes

informatiques sont de plus en plus piratés, l’informatique légale ou « computer forensic » apparait

comme une méthode d’investigation permettant d’identifier les traces laissées par une intrusion et

de rassembler les preuves numériques.

Souvent utilisée dans le cadre d’enquêtes criminelles ou en réponse à incident, l’analyse forensic

peut également être effectuée en laboratoire afin d’étudier le comportement de malwares ou autres

logiciels malveillants. Egalement utilisée pour le recouvrement de données, on retrouve cette

discipline dans les salles blanches pour extraire des données difficilement récupérables.

La diversification des supports numériques (Disque Dur, Mémoire vive, Smartphone…), complexifie

les recherches et les analyses. Il convient donc de maîtriser les différentes techniques d’investigation,

afin de collecter et corréler les informations le plus justement possible.

C’est dans un contexte de « cybercriminalité » ascendante, que ces méthodes apportent un appui

considérable à la lutte contre le cyber-crime.

Notre recherche se déroulera selon le schéma suivant :

Dans un premier temps nous définirons l’analyse forensic et le cadre légal associé.

Nous ferons ensuite un état de l’art des méthodologies existantes et présenterons les

différents supports numériques ainsi que les produits phare du marché.

Ce chapitre se terminera par une proposition d’une méthodologie d’investigation.

Notre troisième partie sera consacrée à la démonstration des techniques nécessaires à

l’investigation numérique.

Dans la quatrième partie nous aborderons les méthodes utilisées pour faire obstacle au

travail des enquêteurs dans leur investigation aussi appelées « l’anti-forensic ».

Dans la cinquième partie, nous appliquerons les méthodes de forensic sur un malware,

en utilisant notamment des techniques de rétro ingénierie (reverse engineering).

Enfin, nous proposerons un outil dédié aux analyses forensic.

Nous traiterons l'investigation numérique, principalement sur des systèmes Windows, car il s'agit du

système le plus utilisé en entreprise.

Page 13: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 12

Chapitre I : Définition du forensic

I.1 – Étymologie et usage Le terme « forensic » vient du latin « forēnsis » qui signifie « Avocat, Défenseur ». A l’époque romaine

le défenseur présentait le cas devant la justice, les arguments et les preuves énoncés déterminaient

l’issue du procès. Cette origine est la base de deux utilisations modernes du terme « forensic » :

Une preuve légale,

Une argumentation publique.

Aujourd’hui le terme « forensic » est synonyme du terme « légal » et est fortement associé au

domaine scientifique et notamment à la médecine légale.

Dans la littérature informatique on retrouve différentes orthographes pour désigner l’investigation

numérique. Le mot « forensic » vient de l’anglais : « computer forensic », mais on voit souvent écrit

« forensique » ou encore « inforensique » (contraction du mot « informatique » et « forensique »).

Etant donné qu’il n’existe à ce jour aucune traduction française officielle nous utiliserons par

conséquent le terme « forensic » dans ce document.

I.2 – De la médecine à l’informatique Comme énoncé ci-dessus, l’analyse forensic fait référence à la médecine légale qui permet de

déterminer les causes d'un décès, au moyen d'analyses approfondies et complexes.

Ainsi la médecine légale comporte trois champs d'activité :

La médecine légale judiciaire : principalement utilisée dans le cadre d'enquêtes judiciaires,

elle aide à définir les conditions et les causes d'un décès au moyen de l'autopsie médico-

légale.

La médecine légale clinique : elle consiste à étudier la victime. Utilisée dans les sciences

criminelles, elle vise à définir les origines d'un décès, ou comment est survenu l'acte

délinquantiel.

La médecine légale scientifique : elle consiste à étudier les mécanismes et les aspects

médicaux légaux de la mort. elle permet ainsi d'identifier les changements corporels qui

accompagnent la mort et la période post-mortem. On parle ici de science thanatologique.

Ces différents aspects de la médecine légale sont principalement utilisés dans le cadre d'enquêtes

judiciaires ou de recherches scientifiques La médecine légale permet donc de définir les causes d'un

décès et de rassembler les différentes preuves, nécessaires à une action en justice.

Dans le cadre de la recherche scientifique elle permettra de mettre en place des vaccins (analyse de

virus) ou encore de découvrir les faiblesses immunitaires d'une personne.

Page 14: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 13

Par analogie, l'analyse forensic en informatique s'inspire de ces méthodologies et techniques. Basée

sur les mêmes principes, l'investigation numérique consiste à utiliser des techniques spécialisées

dans la recherche, la collecte et l'analyse de données issues de supports numériques.

Tout comme la médecine légale, l’investigation numérique peut être divisée en trois champs

d’activité :

L’analyse forensic judiciaire : principalement utilisée dans le cadre d'enquêtes judiciaires, elle

a pour but de rechercher toutes les preuves numériques (par exemple lors d’une

perquisition) afin de collecter et rassembler un maximum de preuves pouvant incriminer ou

innocenter le suspect d’une enquête.

L’analyse forensic en réponse à incident : elle vise à identifier les conditions et les origines

d’une attaque informatique, quel est le canal infecté ou encore par quel vecteur l’attaque est

survenue. Dans le cas d’une réponse à une intrusion, elle joue le rôle de « pompier » et

permet d’identifier rapidement les éléments du système d’information compromis, dans le

but de combler les failles et d’éradiquer le ou les malwares.

L’analyse forensic scientifique : elle consiste à étudier les mécanismes et les aspects

techniques d’un malware ou autre logiciel/matériel malfaisant, afin d’identifier les méthodes

utilisées par les assaillants pour pénétrer et compromettre un réseau informatique.

Les analyses sont souvent réalisées dans un environnement maîtrisé (sandbox) afin d’éviter

une infection totale du système hôte.

Figure 1 - Les domaines de l’investigation numérique

Les objectifs poursuivis par une analyse forensic sont donc variés. On peut schématiquement définir

l’analyse forensic comme un moyen de sanctionner (judiciaire) et de réparer (réponse à incident) des

actes de malveillance sur un système informatique mais également de les anticiper (R&D) pour une

meilleure sécurité.

Page 15: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 14

I.3 – Le cadre légal L’étendu d’Internet et des nouvelles technologies est très complexe à encadrer d’un point de vue

juridique ; il est en effet difficile d’identifier d’une part l’auteur de l’infraction sur Internet et d’autre

part, de collecter les preuves de l’infraction. Le fautif pourra très facilement déplacer, supprimer ou

rendre inaccessible les preuves de son infraction, d’autant plus si les données sont hébergées sur des

serveurs à l’étranger.

Afin de permettre aux autorités d’agir, la loi a dû s’adapter pour encadrer la collecte de preuves dans

l’environnement numérique international.

Le Conseil de l’Europe a d’ailleurs préconisé1 la création d’unités spécialisées requérant une expertise

en matière de technologie de l’information dans le but de mettre en application cette nouvelle

branche du droit.

Ci-dessous, les principales unités existantes pour agir dans le cadre de collecte de preuves

numériques :

L’IRCGN : Le département informatique de l’Institut de Recherche Criminelle de la

Gendarmerie Nationale a été créé en 1990. Il a pour mission de collecter des éléments

numériques pour les mettre à disposition des enquêteurs et des magistrats, et effectue des

expertises dans le cadre d’enquêtes judiciaires.

La BEFTI : La Brigade d’Enquêtes sur les Fraudes aux Technologies de l’information a été

créée en 1994. Sa mission consiste à lutter contre les atteintes aux systèmes de traitement

automatisés de données et la contrefaçon de logiciels ou matériels, ainsi que contre les

infractions liées à la loi informatique et libertés. Elle assiste aussi les autres services de la

police judiciaire dans la recherche de preuves numériques, lorsque celle-ci est confrontée à

un environnement informatique.

L’OCLCTIC : L’Office Central de Lutte contre la Criminalité liée aux Technologies de

l’Information et de la Communication a été institué par le décret du 15 mai 2000 pour

remplacer la Brigade Centrale de Répression de la Criminalité Informatique. Il a pour mission

de traiter toutes les formes de criminalité ayant recours aux nouvelles technologies.

Il existe d’autres organismes étatiques spécialisés dans les investigations cybercriminelles (DNRAPB,

ICC, STRJD, DGCCRF, le service Cyberdouane). Ces unités interviennent sur des périmètres bien

spécifiques de la cybercriminalité tels que la contrefaçon, la pédophilie ou encore les fraudes à la

consommation.

Tous ces organismes travaillent conjointement dans le but de faire appliquer la loi et protéger les

personnes victimes d’actes malveillants.

Page 16: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 15

Des organismes similaires ont également vu le jour à l’étranger :

La National Hi-Tech Crime Unit (NHTCU) au Royaume-Uni.

Le Korps Landelijke Politiediensten (KLPD) et le Computer Emergency Response Team aux

Pays-Bas.

Le Bundeskriminalamt (BKA) en Allemagne.

Le Gruppo Anticrimine Tecnologico (GAT) en Italie

Le Grupo de Delitos Telematicos (GDT) en Espagne.

Afin de réaliser les collectes de données dans un environnement numérique, les lois des différents

pays confèrent des pouvoirs aux autorités de police et judiciaire. Cependant, ces pouvoirs

connaissent des limites car ils peuvent difficilement être appliqués en dehors du cadre national.

Malheureusement, le domaine de la cybercriminalité dépasse par nature les frontières, ce qui rend

complexe et délicat l’encadrement juridique de la collecte de preuves.

En France, plusieurs lois ont été adoptées dans ce domaine. Dans le cadre de saisies à l’occasion de

perquisitions, le Code de procédure pénale (articles 54, 56, 76, 97) autorise les officiers de police

judiciaire effectuant la perquisition à saisir tous les éléments ayant servi à l’infraction, ainsi les

supports informatiques peuvent être mis sous scellés. Il est également possible pour les officiers de

police d’accéder directement aux systèmes informatiques sur les lieux de la perquisition, pour

recueillir les éléments nécessaires à l’enquête.

La Loi pour la Confiance dans l’Economie Numérique du 21 juin 2004 apporte des précisions

complémentaires :

« 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. » (LCEN, Article 43)

« Si une copie est réalisée dans le cadre de cette procédure, il peut être procédé, sur ordre du juge

d'instruction, à l'effacement définitif, sur le support physique qui n'a pas été placé sous main de

justice, des données informatiques dont la détention ou l'usage est illégal ou dangereux pour la

sécurité des personnes ou des biens. « (LCEN, Article 43)

Le Code de procédure pénale (articles 77-1-1, 77-1-2, 60-2) prévoit également la réquisition des

données de connexion susceptibles de contenir des éléments intéressant l’enquête, tandis que la

LCEN (article 6-II bis) permet la conservation et la communication des données de connexion aux

autorités compétentes

L’article R. 15-33-62 du Code de procédure pénale, prévoit expressément que l’officier de police

judiciaire en charge de l’enquête, habilité par le responsable de service, peut demander aux

organismes fournisseurs de service internet (FAI, hébergeurs…), la communication de données à

caractère personnel des abonnés et utilisateurs.

Page 17: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 16

Le déchiffrement des données est aussi prévu par le Code de procédure pénale à l’article 230-1.

« …lorsqu'il apparaît que des données saisies ou obtenues au cours de l'enquête ou de l'instruction

ont fait l'objet d'opérations de transformation empêchant d'accéder aux informations en clair qu'elles

contiennent ou de les comprendre, le procureur de la République, la juridiction d'instruction ou la

juridiction de jugement saisie de l'affaire peut désigner toute personne physique ou morale qualifiée,

en vue d'effectuer les opérations techniques permettant d'obtenir la version en clair de ces

informations ainsi que, dans le cas où un moyen de cryptologie a été utilisé, la convention secrète de

déchiffrement, si cela apparaît nécessaire. »

Enfin, l’article 156 du Code de procédure civile précise qu’un expert peut être mandaté par le

magistrat pour réaliser une investigation ou toute opération à caractère technologique nécessaire à

l’enquête. Cet expert intervient entre autres dans le but de caractériser des faits, d’analyser des

éléments de l’enquête, ou encore d’apporter son assistance lors de la perquisition.

Par ailleurs, en plus d’encadrer légalement la collecte de données dans un environnement

numérique, la Commission Européenne a créé la procédure CTOSE (Cybertools Online Search

Evidence), pour permettre aux enquêteur de collecter les preuves en respectant des règles de

bonnes pratiques, afin qu’elles soient recevables devant un tribunal.

On notera également que lors d’une investigation, il convient de préserver la preuve des données et

de faire appel à des techniques probatoires pour éviter tout risque de modification ou de destruction

des données par des fichiers pièges ou autres éléments destinés à corrompre les preuves.

Malgré les difficultés à réguler le domaine de l’informatique et des nouvelles technologies de

communication, la loi s’efforce de maintenir un équilibre entre la nécessité de réprimer les crimes et

délits qui constituent la cybercriminalité, et certains principes et libertés tels que la neutralité du net,

le respect du droit à la vie privée et la compétence territoriale des Etats.

Page 18: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 17

Chapitre II : La méthodologie

d’investigation

II.1 – Etat de l’art A l’heure où nous écrivons ces lignes, il n’existe pas de méthodologie officielle pour mener une

investigation numérique, seulement des méthodes dites de « bonne pratique ». Cependant plusieurs

experts ont formalisé le processus d’investigation numérique laissant apparaître les prémices d’une

méthodologie.

A travers ce chapitre nous en étudierons quelques exemples. La liste présentée ci-dessous n’est

cependant pas exhaustive.

A – La méthode McKemmish Rodney McKemmish, expert Australien en forensic, a ainsi formalisé le processus d’investigation

d’une réponse à incident en 4 étapes.

1. L’identification de la preuve digitale : cette première partie consiste à identifier clairement le

média d’analyse ( disque dur, clef USB mais aussi Smartphone…).

L’identification permet à l’analyste de choisir les bons outils dès le début de l’investigation.

2. La préservation de la preuve digitale : dans le cas d’une présentation devant une cour de

justice, il est essentiel de conserver la preuve en l’état originel. Cette partie est indispensable

pour garantir l’intégrité et l’authenticité des données extraites.

3. L’analyse de la preuve digitale : cette troisième partie consiste à extraire les données dans le

but de les reconstruire, de les identifier et de les rendre compréhensibles pour un être

humain.

4. La présentation de la preuve digitale : pour qu’une preuve soit recevable devant une cour de

justice, l’analyste doit la présenter sous une forme compréhensible par une personne non

technicienne.

Rodney McKemmish dans son approche de la méthodologie d’investigation énonce également les règles à respecter par les logiciels d’investigation, pour garantir une recevabilité devant un tribunal.

Pas ou peu de modification des données d’origine,

Documentation de tout changement intervenu pendant l’analyse,

Le respect des règles de bon usage des outils.

Page 19: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 18

B – Le projet CTOSE Le projet CTOSE (Cyber Tools On-line Search for Evidence) de la Commission Européenne a été mis en

place dans le but d’élaborer un modèle de processus destiné aux entreprises dans le cas d’un

incident informatique. L’objectif de ce projet est d’améliorer le processus d’investigation pour que

les preuves recueillies soit admissibles dans le cadre d’une procédure judiciaire.

Ainsi le projet CTOSE est regroupé sur 5 phases :

1. La phase de préparation

2. La phase d’exécution

3. La phase d’évaluation

4. La phase d’enquête

5. La phase d’apprentissage

C – L’approche Smith et Petreski (DEFCON) En 2010, deux experts en sécurité informatique, David C. Smith et Samuel Petreski de l’université de

Georgetown aux Etats-Unis ont également formalisé le processus d’investigation numérique et

proposé leur propre approche lors de la DEFCON (une des conférences de sécurité les plus réputées).

Leur méthode est basée sur trois composants.

1. La pré-analyse : définir le type de cas, les objectifs de l’analyse, et les exigences.

2. L’analyse : Sélection des méthodes optimales pour atteindre le but défini.

3. L’évaluation du temps de l’analyse : définir le temps d’analyse en fonction du but, de

l’expérience, du budget et de la taille des données.

D – Digital Forensic Process De nombreuses formalisations du processus d’investigation existent. Le modèle le plus utilisé

actuellement est nommé le « Digital Forensic Process » mis au point par Eoghan Casey. Ce dernier est

composé de 4 parties distinctes :

1. La saisie : cette étape correspond au moment où les différents média numériques sont saisis.

2. L’acquisition : elle consiste à extraire, dupliquer et conserver la preuve dans le but de ne pas

modifier l’original de la saisie.

3. L’analyse : Elle consiste à analyser et identifier les preuves de chaque support, afin d’en

extraire les éléments qui constitueront le dossier final. C’est lors de l’analyse que les

enquêteurs utiliseront les outils dédiés de l’investigation numérique.

4. La création du rapport : Après l’analyse des supports, les enquêteurs devront établir un

dossier comprenant tous les éléments de l’investigation et compréhensible par toutes les

personnes concernées par l’enquête.

Il existe de nombreuses autres méthodes pour mener une analyse forensic. Certaines plus

spécialisées sont destinées aux études en laboratoire mais peuvent également être appliquées dans

le cadre de réponse à incident.

Page 20: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 19

Les méthodologies d’analyse de malware sont quelque peu différentes des méthodes de l’analyse

légale, néanmoins elles utilisent les mêmes procédés et les mêmes outils.

Nous traiterons l’analyse de malware dans le chapitre 5 de ce document.

II.2 – Les supports numériques Il existe différents supports numériques qui peuvent faire l’objet d’une investigation. Au préalable, il

est nécessaire pour l’analyste de comprendre le fonctionnement de ces supports.

A – Disque Dur magnétique Un disque dur magnétique est composé d’éléments mécaniques et électroniques. La partie

mécanique est composée de :

Plateaux circulaires double face, la plupart du temps en aluminium, recouvert d’un

revêtement magnétique.

Un axe rotatif qui supporte les disques entrainés par un moteur. La vitesse de rotation peut

aller de 5400 tours/min pour les disques d’ordinateurs personnels et jusqu’à 15000

tours/min pour des disques haute performance souvent employés pour le stockage de

données sur des serveurs.

Les têtes de lecture/écriture : pilotées par un bras leur permettant de pivoter et balayer

toute la surface des disques. Ces dernières ne sont jamais en contact avec la surface.

La partie électronique est en charge du transport des données entre la carte mère et les disques. Elle

est composée de :

un circuit électronique permettant de faire fonctionner les différents composants du disque.

un micro-processeur qui convertit les signaux électriques en signaux digitaux.

une mémoire cache qui traite les informations temporaires que le disque doit effectuer.

Figure 2 - Schéma général d’un disque dur

Les données sont stockées sur un disque dur magnétique sous forme d’une série de bits. Il s’agit de

charges magnétiques positives ou négatives. Elles sont ensuite converties en code binaire. Un disque

est composé de pistes, de cylindres et de secteurs. Une piste est un sillon gravé à la surface du

disque. On parle de cylindres lorsque des données sont stockées sur la même piste de différents

plateaux. Chaque piste est divisée en secteurs (le plus souvent un secteur fait 512 octets).

Page 21: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 20

Figure 3 - Charge magnétique à la surface d’un disque

Au sein d’un disque dur il existe une table d’allocation de fichiers et des clusters. Un cluster est la

plus petite unité de stockage présente sur un disque dur, on l’appelle aussi unité d’allocation.

Un disque dur possède des milliers d’unités d’allocations. La table d’allocation répertorie les clusters

présents sur le disque et contient le statut de chacun d’eux. Un cluster peut présenter trois états

(disponible, réservé, ou défectueux). S’il est disponible, le système permet d’utiliser l’espace qu’il

occupe pour y stocker une information. Dans l’état réservé ou défectueux, aucune opération

d’écriture n’est possible. La table d’allocation référence aussi les clusters en groupe si un fichier est

stocké sur plusieurs d’entre eux.

Il existe trois méthodes d’allocation sur un disque :

1. La méthode d’allocation contigüe : les clusters se suivent les uns les autres. Elle est

aujourd’hui considérée comme obsolète, mais on la retrouve encore sur certains systèmes

d’exploitation industriels. Elle oblige à pré-allouer les clusters pour prévoir l’utilisation

grandissante de l’espace occupé par des fichiers, ce qui sous-entend une perte d’espace

disque, mais aussi des difficultés d’agrandissement du volume dans le cas où la pré-allocation

aurait été sous-dimensionnée.

Fichier A A A A B B B C C

Cluster 1 2 3 4 5 6 7 8 9

Tableau 1 - Représentation de la méthode d’allocation contigus

2. Méthode d’allocation par lien : chaque cluster contient, en plus de la donnée, un pointeur

vers la prochaine unité d’allocation. Les clusters n’ont donc pas besoin d’être contigus.

Fichier A A B A C A B B C

Cluster 1->2 2->4 3->7 4->6 5->9 6->1 7->8 8->3 9->5

Tableau 2 - Représentation de la méthode d’allocation par lien

Page 22: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 21

3. Méthode d’allocation indexée : la méthode indexée est particulière en cela qu’elle est gérée

par le système d’exploitation qui indexe chaque cluster d’un même ensemble. Comme avec

la méthode par lien, les clusters n’ont pas à être contigus. Les systèmes de fichiers FAT et

NTFS utilisent la méthode d’allocation indexée.

INDEX

Fichier A Clusters : 1, 2, 4, 6 Fichier B Clusters : 3, 7, 8 Fichier C Clusters : 5, 9

Fichier A A B A C A B B C

Cluster 1 2 3 4 5 6 7 8 9

Tableau 3 - Représentation de la méthode d’allocation indexée

Une autre approche consiste à s’intéresser à la manière dont le système d’exploitation alloue

l’espace disque.

Il existe trois stratégies de stockage :

La stratégie du premier emplacement disponible : si un fichier occupe 3 clusters, le système

placera le fichier au cluster 2, puis au 5 et enfin au 7.

La stratégie du prochain emplacement disponible : le fichier sera stocké aux clusters 5, puis 7

et 8.

La stratégie du meilleur emplacement disponible : le système recherchera l’emplacement le

plus petit possible où le fichier pourra être stocké sans être fragmenté, c’est-à-dire aux

clusters 7, 8 et 9.

Etat Alloué Alloué Dernier alloué

Alloué

Cluster 1 2 3 4 5 6 7 8 9

Tableau 4 - Représentation de la méthode par stratégie de stockage

Dans le cadre d’une investigation, il est important de connaître les méthodes de stockage et les

stratégies utilisées par le système de fichier, notamment pour permettre de procéder à des analyses

de cohérence surtout en matière de falsification de dates.

Page 23: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 22

B – Disque Dur « solides « (SSD) Un disque dur SSD est composé de puces électroniques, qu’on appelle aussi semi-conducteurs. La

majorité des constructeurs utilisent de nos jours des composants appelés mémoire flash. Les semi-

conducteurs sont réinscriptibles, c’est ce que l’on appelle une mémoire de masse. Contrairement à la

mémoire vive, les données ne disparaissent pas en cas de mise hors tension. La mémoire flash stocke

des bits de données dans des cellules de mémoire.

Puce

Cellule mémoire

Figure 4 - Schéma d’un disque dur SSD

Un SSD présente un avantage certain sur un disque dur magnétique, à savoir qu’il ne présente aucun

élément mécanique, ce qui le rend particulièrement résistant aux chocs. En revanche, en raison de la

présence de semi-conducteurs, il est nécessaire de limiter l’exposition d’un SSD à des rayonnements

électromagnétiques qui pourraient endommager les puces.

Au niveau de son interface, on trouve de nos jours des disques durs de types SATA, qui est l’interface

la plus utilisée dans les ordinateurs personnels, mais également des interfaces PCI Express haut de

gamme qui permettent d’améliorer encore de manière très significative les débits sur ce type de

composants.

Le processus d’écriture sur un SSD est très différent de celui d’un disque dur ordinaire, les stratégies

mentionnées lors de l’étude des disques durs ne s’appliquent pas. L’écriture sur un disque SSD ne se

fait pas simplement en écrasant la donnée comme pour un disque dur. Elle est en fait une suite de

bits qui sont eux-mêmes une charge électrique mémorisée par la cellule. Pour écrire dans une cellule,

le système doit effacer entièrement la page, qui contient plusieurs autres cellules, avant d’y inscrire

la donnée, ce qui entraîne un jeu de déplacement des données à l’intérieur des puces. Cela signifie

que le système ne réécrit pas nécessairement les données dans les mêmes cellules.

Page 24: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 23

La structure générale d’un SSD est assez simple par rapport à un disque dur magnétique, elle se

compose d’un « control chip » qui contrôle les opérations du disque :

ECC Checking (Error Correction Code) est un protocole de vérification d’erreurs sur les blocs

après écriture.

Wear Leveling (Répartition d’usure) va répartir l’utilisation des blocs afin d’optimiser la durée

de vie du disque.

True FFS est le processus de vérification du nombre de lectures/écritures d’un bloc.

Aujourd’hui, on estime à 100000 lectures/écritures sur un bloc avant qu’il ne soit plus

utilisable.

On retrouve trois types de puces à base de mémoire flash dans le commerce:

NOR : C’est une mémoire à accès rapide, l’écriture à répétition est plus problématique, c’est

pourquoi les ROM (Read Only Memory) comme les BIOS utilisent plus généralement ce

format.

NAND : C’est le type de mémoire le plus utilisé, décris ci-dessous.

DRAM : C’est le type de puce le plus rapide. Il est la plupart du temps utilisé dans la mémoire

vive. Ses caractéristiques structurelles font que l’information disparait si ses condensateurs

ne sont pas stimulés par une charge électrique plus de quelques millisecondes.

Structure de la mémoire NAND

Un composant tel qu’une puce de mémoire Flash est composé d’un grand nombre de cellules de

stockage. Chaque cellule est en réalité composée de plusieurs éléments, une base matérielle en

silicium surmontée de ce que l’on appelle une « floating gate » et d’un « contrôl gate ».

La « floating gate » ou « barrière flottante » est utilisée dans tous les composants à base de mémoire

flash, pour sa capacité à stocker une charge électrique même sans alimentation pendant très

longtemps. Pour stocker cette charge, un transistor est la plupart du temps composé de plusieurs

éléments électroniques dont des condensateurs destinés à contrôler la tension délivrée.

Figure 5 - Représentation d’une cellule mémoire

Il existe deux technologies de puces à mémoire flash, SLC (Single Layer Cells) et MLC (Multi Layer

Cells). Les puces à base de SLC ne stockent qu’un seul bit à la fois, quand la MLC en stocke plusieurs.

La durée de vie est sensiblement différente et les temps d’accès sont également différents sans être

une caractéristique importante pour les performances. Nous nous attarderons sur les puces MLC.

Page 25: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 24

Une puce MLC est constituée de plusieurs couches de cellules. Lors du processus d’écriture des

données, le système écrit sur toutes les couches. Les puces MLC peuvent donc stocker plus

d’informations que les SLC, pour une puce de taille identique.

Pour comprendre comment sont stockées les données, il faut connaitre la structure des puces MLC :

Il faut 8 cellules pour stocker un bit

16 cellules pour stocker un mot

Un secteur peut contenir entre 512 et 2048 bits

Un block fait 64 fois la taille d’un secteur

Un secteur a également 64 bits supplémentaires pour étiqueter le secteur

Une page est constituée de l’ensemble secteur plus un flag

Figure 6 - Fonctionnement de TRIM

La connaissance de la commande TRIM permet de comprendre comment fonctionne un SSD dans ses

processus d’écriture. La recherche de données après le passage de la commande TRIM est vaine dans

la mesure où les pages sont effacées après que le système a envoyé au contrôleur l’instruction de

libération des pages.

Il existe cependant une méthode qui consiste à dessouder les puces NAND et à analyser les

fragments de données. Toutefois, cette méthode n’a pas encore réellement fait ses preuves.

Page 26: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 25

C – Mémoire vive (RAM) La mémoire vive, qu’on nomme en anglais RAM (Random Access Memory), possède des

caractéristiques différentes des autres types de mémoire, disque dur magnétique et SSD. La

principale étant le temps d’accès considérablement plus faible, c’est la raison pour laquelle les

données en traitement sont toujours stockées dans la RAM.

La mémoire RAM est prise en charge par une carte mère sur un support de type DIMM, et est reliée

par un BUS très rapide pour fournir les données au processeur. Une autre caractéristique très

importante de la RAM est sa volatilité, en effet, en l’absence d’un courant électrique, la mémoire

vive se vide de ses données, lorsque l’on éteint un ordinateur, les données en mémoire sont donc

perdues.

Dans la mémoire vive, les données sont organisées sous forme de mots de 8, 16, 32, ou 64 bits.

La connaissance de la volatilité de l’information sur la mémoire vive est d’un intérêt capital lors de

réponse à incident. Dans de très rares cas où un expert a la possibilité d’analyser un ordinateur

infecté ou subissant une attaque, l’analyse de la RAM peut s’avérer importante. Un attaquant

préfèrera charger les éléments infectieux en RAM afin de faire disparaitre ses traces lors du

redémarrage de la machine.

Figure 7 - Représentation d’une barrette mémoire RAM

Page 27: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 26

II.3 – Les outils utilisés pour l’analyse forensic Les outils présentés ci-après sont ceux les plus utilisés et font partie des produits que les tribunaux

reconnaissent dans le cadre d’enquêtes où des supports numériques font l’objet d’analyse.

Ces outils sont retenus en fonction de leurs capacités à analyser et à préserver les objets. L’enquête

et l’analyse des supports ne doit pas altérer les éléments qui seront à terme présentés comme

preuves.

A – EnCase2 EnCase Forensic est une suite logicielle dédiée à l’investigation. Il dispose d’un moteur puissant

permettant la recherche rapide d’une grande variété de fichiers, de fournir un niveau de détail élevé

dans les rapports d’analyse et de préserver les données collectées.

C’est un logiciel très utilisé par les départements d’investigation numérique de la police et la

gendarmerie. Il constitue une des seules suites logicielles reconnues par les tribunaux pour la

recherche de preuves. Il supporte les analyses par mot clé, par comparaison d’empreintes et

implémente également son propre langage de scripting permettant ainsi le développement de ses

propres modules pour des analyses personnalisées.

Figure 8 - Interface d' EnCase

Page 28: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 27

B – FTK (Forensic ToolKit)3 FTK (Forensic ToolKit) est une autre suite de logiciel dédiée à l’investigation. Elle est capable

d’analyser tous types de systèmes, (FAT 12/16/32, NTFS, EXT).

Elle fonctionne uniquement sur Windows. Elle est livrée avec un moteur de base de données

PostgreSQL qui indexe toutes les données présentes sur le support et réduit considérablement le

temps de réponse des analyses.

FTK est également capable d’analyser des images créées à partir d’autres outils comme EnCase.

Figure 9 - Interface de FTK

C – DFF (Digital Forensic Framework)4 DFF (Digital Forensic Framework) est une suite logicielle spécialisée dans la recherche forensic. C’est

un outil open source écrit en C++ et Python. C’est aussi une plateforme de développement qui

permet de créer ses propres modules pour des investigations personnalisées et très fines.

DFF permet l’acquisition et la corrélation d’éléments suspects, provenant de différents types de

supports, disques, mémoire vive, puces électroniques (téléphonie mobile, etc.).

De nombreux professionnels de l’informatique utilisent aussi DFF pour récupérer des données

supprimées.

Page 29: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 28

Figure 10 - Interface de DFF

Il existe, en plus de ces différents logiciels, des distributions spécialisées dans la récupération de

données. Parmi les plus connues, SIFT et DEFT Linux, toutes deux basées sur Ubuntu et offrant un

environnement contenant de nombreux outils pour l’investigation numérique.

D – Les bloqueurs en écriture Les bloqueurs en écriture sont des dispositifs qui permettent de faire l’acquisition d’une image d’un

disque dur en bloquant le mécanisme d’écriture, mais pas de lecture, dans le but de préserver le

contenu. L’utilisation de ce type de dispositif permet de protéger le contenu du disque et garantit

ainsi son intégrité. Il existe des bloqueurs en écriture matériel et logiciel.

Il est possible de se procurer un bloqueur en écriture auprès de sociétés spécialisées telles que

TRACIP5.

Figure 11 - Bloqueur en écriture

Un bloqueur en écriture matériel s’interpose entre le disque dur (la preuve) et le PC qui servira à

l’acquisition de l’image.

Page 30: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 29

II.4 – Proposition d’une méthodologie La méthodologie présentée ci-dessous peut être appliquée dans le cadre de recherches en

laboratoire mais également sur le terrain lors d’une enquête ou d’une réponse à incident. Elle devra

être adaptée en fonction des besoins et de l’objectif poursuivi. En effet, u vol de données

confidentielles ne fera pas l’objet des mêmes techniques qu’une réponse à incident après un

piratage par exemple

1. Identification du contexte (Architecture réseaux, flux ouvert, heure, date, actions menées

par les utilisateurs ou les administrateurs) : Cette partie consiste à obtenir un maximum

d’informations de la part des utilisateurs, des administrateurs ou autres. Elle a pour but

d’identifier toutes les composantes du système d’information à analyser et de discerner les

éléments pouvant accélérer ou retarder l’analyse forensic (poste/serveur éteints après

intrusion : données volatiles effacées).

2. Copie et analyse de la mémoire RAM

a. Copie de la mémoire : réalisation d’une copie de la mémoire avec calcul de

condensat (MD5, SHA1..) conservation et intégrité des données.

b. Analyse de la mémoire : analyse des données volatiles, réalisation d’une chronologie

d’utilisation (timeline), extraction de données volatiles (mot de passe...).

3. Copie et analyse du disque dur

a. Copie du disque dur : réalisation d’une image système avec calcul de condensat

(MD5, SHA1..), conservation et intégrité des données.

b. Analyse du disque dur : analyse du système de fichier, de la base de registre et des

journaux d’évènements, de l’historique et des artefacts de navigation, décodage de

mot de passe, chronologie d’utilisation, extraction de binaires et de documents.

4. Analyse des éléments connexes : Logs annexes (logs firewall, logs d’IPS ou d’IDS, proxy,

Active Directory, serveur web), si possible.

5. Constitution du dossier des différentes preuves numériques pouvant servir en justice.

6. Corrélation des évènements

Un des éléments essentiels de l’analyse forensic est de noter et horodater tous les éléments. Dans le

but de ne pas compromettre le dossier de preuves pouvant servir en justice, l’analyste pourra par

ailleurs mandater un huissier de justice pour certifier la procédure.

Page 31: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 30

Le schéma ci-dessous représente la méthodologie énoncée :

Figure 12 - Méthodologie d’une investigation numérique

Ces méthodes et techniques peuvent être utilisées à mauvaise escient par des pirates. En effet il est

probable que dans le cas d’une attaque informatique ciblée (dans le but de récupérer mots de passe,

comptes utilisateur, documents sensibles…), un attaquant abuse de cette méthodologie pour

accéder à des informations confidentielles.

Page 32: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 31

Chapitre III : Les méthodes de forensic

Les méthodes de forensic constituent tous les éléments permettant de mener à bien une

investigation numérique. Chaque support nécessite des outils particuliers.

Nous verrons dans ce chapitre les outils existants ainsi que les méthodes nécessaires à l’extraction,

l’analyse et la corrélation des données.

III.1 – Calcul de condensat Lors d’une analyse forensic, il est primordial de calculer une empreinte qui identifiera le fichier à

l’aide d’une fonction de hachage. Cette empreinte doit être unique car elle permet de valider que le

fichier n’a pas été altéré durant l’investigation. Le calcul de condensat permettra ainsi de garantir

l’intégrité des fichiers analysés.

Figure 13 - Principe de fonctionnement d’une fonction de hachage sur 3 entrées différentes

Voici les fonctions de hachage les plus utilisées :

MD5 (Message Digest) : Hash de 128 bits

SHA1 (Secure Hash Algorithm) : Hash de 160 bits

SHA224 : Hash de 224 bits communément appelé SHA2

SHA256 : Hash de 256 bits communément appelé SHA2

SHA384 : Hash de 384 bits

SHA512 : Hash de 512 bits

Page 33: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 32

Sous linux il est possible d’utiliser les fonctions de hachage simplement :

r1tch1e@forensic:~$ md5sum case1.raw

edcdc33fd185c17e6d3813b1bcf77af9 case1.raw

r1tch1e@forensic:~$ sha1sum case1.raw

018f3bdf11378f8d69b1767058f6c7303707307a case1.raw

r1tch1e@forensic:~$ sha224sum case1.raw

304696ba8d9abf7f7eb4153c69b970abb328843a79b2ddc65abdab1a case1.raw

r1tch1e@forensic:~$ sha256sum case1.raw

e3126128f08662b496936d45d563f4e1acf012138a9a52557e9295f8ede8df4d case1.raw

r1tch1e@forensic:~$ sha384sum case1.raw

c89b5611dca6954261aff47bc10f63c0117c83e500829a302ee0f0b749ade077ae753846b04

1d46091859e29286dc7fb case1.raw

r1tch1e@forensic:~$ sha512sum case1.raw

29ed0d167a46991def4af168ec300d799d85075531dbc86116e7370540292b8e539910d901b

30ec499b7ca06dd5ef5ca4ca1e115877305a81d2bda9bb39283d7 case1.raw

Figure 14 - Calcul d’empreinte sous Linux

Afin de réaliser un contrôle d’empreinte sur un ensemble de fichiers, il peut être intéressant de

réaliser un script en python pour automatiser cette tâche. La bibliothèque « hashlib » permet de

réaliser des empreintes avec les algorithmes usuels.

Nous avons développé un script hash.py6 disponible en annexe.

Le script s’execute ainsi:

r1tch1e@forensic:~$ python hash.py -f case1.raw –msx

The MD5 hash is 37da7f205f894fd449d446e40422bdf1

The SHA256 hash is

30827d0e70951b12ad89c9747c63c22e0613f976e6d1c1d8d8d5316c308b28c1

The SHA512 hash is

ff4f639634f1e537b8a207f3603bf130a57f154dd2de3f83718ba78e2e440c085d06b6ef81c

82c6bd68178e8e100ec6318a93ebbbaac172adaf3e5c17297a7ba

Figure 15 - Calcul de hash avec le script hash.py

Il permet de générer une empreinte avec les 3 algorithmes principaux (MD5, SHA256, SHA512).

Page 34: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 33

Le script permet également de comparer 2 fichiers afin de vérifier que les deux empreintes

coïncident :

r1tch1e@forensic:~$ python hash.py -c case1.raw case1.raw -m

This is the same file ! :)

37da7f205f894fd449d446e40422bdf1 case1.raw

37da7f205f894fd449d446e40422bdf1 case1.raw

r1tch1e@forensic:~$ python hash.py -c case1.raw case2.raw -m

This is not the same file ! :(

37da7f205f894fd449d446e40422bdf1 case1.raw

66349e73f9a42db317292c34917ed8b2 case2.raw

Figure 16 - Comparaison de hash avec le script hash.py

Il est à noter que l’algorithme MD5 n’est plus totalement fiable car il a montré des faiblesses de

collision (2 empreintes identiques pour 2 fichiers différents).

Des banques d’empreintes de fichiers, mises à disposition sur internet permettent d’identifier tous

les fichiers connus inutiles pour l’analyse. Le site http://www.nsrl.nist.gov/ recense les hash connus,

il sera ainsi possible d’automatiser l’identification de fichier en comparant leurs empreintes sur le

site.

Page 35: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 34

III.2 – Acquisition et analyse de la mémoire volatile La mémoire vive d’un ordinateur peut contenir de nombreuses informations : mots de passe,

identifiants, clefs de chiffrement ou encore processus actifs. Lors d’une analyse forensic, l’étude de

l’image mémoire d’un système peut s’avérer utile.

La manipulation de la mémoire vive intervient dans le cadre d’une « analyse à chaud », c’est-à-dire

lorsque le système est encore en fonctionnement et n’a pas été arrêté ou redémarré au moment de

l’investigation.

Nous verrons dans cette partie comment extraire un dump de la mémoire RAM pour l’analyser.

A – Acquisition de la mémoire volatile L’acquisition de la mémoire vive intervient généralement lors d’une réponse à incident et sur un

système en fonctionnement. Lors de l’acquisition, l’analyste doit éviter au maximum toutes

modifications afin de récupérer une image fidèle du système à analyser.

Certains outils permettent spécifiquement de copier le contenu de la mémoire RAM.

L’utilitaire Dumpit

Afin de réaliser une image de la RAM nous utiliserons l’utilitaire gratuit de la société Moonsols :

Dumpit, disponible sur Internet7.

Cet outil est composé des 2 utilitaires suivants :

- Win32DD : permettant de réaliser une image mémoire d’un système Windows 32 bits

- Win64DD : permettant de réaliser une image mémoire d’un système Windows 64 bits

Nous lançons l’utilitaire :

Figure 17 - Copie de la mémoire vive avec l’utilitaire Dumpit

On obtient ici une image mémoire de 9Go, qui pourra par la suite être analysée.

Page 36: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 35

Extraction de la mémoire vive par « cold boot »

Lorsque l’on éteint subitement un ordinateur, la totalité des données présentes dans la mémoire vive

est disponible environ 5 à 10 secondes. Le tableau ci-dessous indique le temps de rémanence des

données après extinction.

Temps % de données

5 à 10 secondes 100%

10 à 60 secondes 80%

1 à 3 minutes 50%

après 3 minutes 0% à 2%

Tableau 5 - Temps de rémanence des données contenues dans la RAM

La technique de « cold boot » consiste à exploiter cette rémanence en refroidissant la mémoire vive.

Une étude menée par des chercheurs de l’université de Princeton aux Etats-Unis en 2008, a montré

que refroidir la mémoire vive à très basse température permettait de conserver plus longtemps les

données présentes. Il devient ainsi possible d’extraire les données sans être contraint par le temps. A

titre d’exemple, à moins 50 degrés les données peuvent être conservées jusqu’à 10 minutes. En

plongeant les barrettes mémoires dans l’azote liquide le temps de conservation peut alors s’élever à

plusieurs heures, voire plusieurs jours.

Pour réaliser cette technique, nous devons :

1 – Refroidir les barrettes mémoires sur un ordinateur allumé,

2 – Couper brusquement l’alimentation de l’ordinateur,

3 – Brancher les barrettes sur un autre ordinateur (ou sur le même),

4 – Booter sur un système tiers afin d’éviter que le système n’écrase les données,

5 – Dumper la mémoire.

Une bombe à air sec (disponible dans le commerce), nous permet de refroidir les barrettes

mémoires.

Figure 18 - Bombe à air sec

Puis nous utiliserons l’utilitaire MSRAWDMP8.

Page 37: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 36

Refroidissement de la mémoire vive de l’ordinateur allumé :

Figure 19 - Gel de barrette mémoire

Redémarrage de l’ordinateur et boot sur clef USB préparée avec l’utilitaire MSRAWSMP et copie du

contenu de la RAM pour récupération et exploitation des données :

Figure 20 - Copie de la mémoire vive avec l’utilitaire MSRAWSDMP

Page 38: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 37

B – Analyse de la mémoire volatile Afin de procéder à l’analyse de la mémoire volatile, nous traiterons ici de l’outil le plus réputé et le

plus utilisé dans l’investigation numérique pour les systèmes Windows : le Framework Volatility9.

Une version pour les systèmes Linux est également disponible : Volatilitux10.

Ainsi que pour les systèmes MAC : Volafox11.

Présentation du Framework Volatility

Volatility est un Framework open-source écrit en python, utilisé pour les réponses à incident ou pour

l’analyse de malware. Il est distribué par la société Volatile Systems.

Le Framework Volatility dispose des fonctionnalités suivantes :

Informations sur l'image (date, heure, nombre d'UC)

Extraction des processus en cours

Extraction des processus SID et des variables d'environnement

Affichage des sockets réseau

Affichage des connexions réseau

Extraction des DLL chargées pour chaque processus

Affichage des modules du noyau

Dump des processus, des DLL, ou des modules de disque

Cartographie des compensations physiques à des adresses virtuelles

Extraction des informations de descripteur d'adresses virtuelles

Extraction de la mémoire adressable pour chaque processus

Extraction des cartes de mémoire pour chaque processus

Extraction des échantillons exécutables

Extraction des historiques de commande (cmd.exe) et des tampons d'entrée/sortie console

Fonctions de l'API importées et exportées

Affichage des informations de version de PE

Affichage des tables d'appels système (IDT, GDT, SSDT)

Exploration des ruches du registre cache

Dump des hash LM/NTLM et secrets LSA

Analyse des modes d'octets, des expressions régulières, ou des chaînes en mémoire

Analyse du timers du noyau et des fonctions de rappel

Rapport sur les services Windows

La liste des options de Volatility est disponible en annexe.

Page 39: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 38

Identification du profil

La première étape pour l’analyse de l’image mémoire est d’utiliser l’option « imageinfo » pour

obtenir les informations concernant le système d’exploitation de l’image.

r1tch1e@forensic:~$ python vol.py –f case.dmp imageinfo

Volatile Systems Volatility Framework 2.2

Determining profile based on KDBG search...

Suggested Profile(s) : Win7SP0x86, Win7SP1x86

AS Layer1 : JKIA32PagedMemoryPae (Kernel AS)

AS Layer2 : FileAddressSpace(/case.dmp)

PAE type : PAE

DTB : 0x185000L

KDBG : 0x82929be8L

Number of Processors : 1

Image Type (Service Pack) : 0

KPCR for CPU 0 : 0x8292ac00L

KUSER_SHARED_DATA : 0xffdf0000L

Image date and time : 2013-01-12 16:59:18 UTC+0000

Image local date and time : 2013-01-12 17:59:18 +0100

Figure 21 - Option imageinfo de Volatility

La commande retourne les informations du système. Il faudra alors utiliser le profile Win7SP1x86

ou Win7SP0x86 avec l’option « --profile= », pour le reste de l’analyse.

Lister les processus en cours

Afin d’identifier les applications utilisées lors de la récupération de l’image mémoire, Volatility

permet de lister les processus en cours d’utilisation avec l’option « pslist ».

r1tch1e@forensic:~$ python vol.py --profile=Win7SP1x86 –f case.dmp pslist

Volatile Systems Volatility Framework 2.2

Offset(V) Name PID PPID Thds Hnds

---------- -------------------- ------ ------ ------ --------

0x83db4b78 System 4 0 94 496

0x8509f020 smss.exe 260 4 2 29

0x85078d40 csrss.exe 372 364 8 453

0x846ad760 wininit.exe 412 364 3 75

0x851ced40 csrss.exe 420 404 9 275

0x85770cc8 winlogon.exe 468 404 6 114

0x8582e820 services.exe 512 412 9 209

0x85833668 lsass.exe 520 412 6 588

0x85835898 lsm.exe 528 412 10 148

0x8597ed40 svchost.exe 644 512 11 353

0x859a1310 svchost.exe 704 512 7 277

0x859b1cd8 svchost.exe 756 512 22 492

0x85a4f530 svchost.exe 868 512 16 352

0x85a4f030 spoolsv.exe 1236 512 13 343

0x85a1d030 svchost.exe 1272 512 19 314

0x85a68a98 vmtoolsd.exe 1428 512 9 293

0x85d45420 TPAutoConnSvc. 1716 512 10 139

0x85d4fd40 svchost.exe 1760 512 7 94

0x85d521b0 svchost.exe 1856 512 5 101

0x85d80918 dllhost.exe 2016 512 15 192

0x85d6fd40 msdtc.exe 1008 512 14 147

0x85e03d40 svchost.exe 2040 512 15 356

Page 40: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 39

0x83ef62d8 SearchIndexer. 1828 512 11 602

0x83f21d40 SearchProtocol 288 1828 7 319

0x83f4b778 WmiPrvSE.exe 2404 644 6 111

0x85d0d430 taskhost.exe 2696 512 11 212

0x83f2a710 dwm.exe 2756 868 4 71

0x83f911e0 explorer.exe 2792 2740 34 982

0x83fab6c8 TPAutoConnect. 2816 1716 6 126

0x83f76398 conhost.exe 2824 420 1 33

0x83febd40 vmtoolsd.exe 2968 2792 7 187

0x83f594d0 audiodg.exe 3024 756 7 133

0x84c72ab0 wmpnetwk.exe 3332 512 11 213

0x84e90030 svchost.exe 3376 512 10 142

0x84d0cd40 firefox.exe 3820 2792 39 494

0x85e2e030 TrueCrypt.exe 4080 2792 6 258

0x85d7b720 SearchFilterHo 2536 1828 4 97

0x8523e030 KeePass.exe 852 2792 10 260

0x846a3030 DumpIt.exe 3816 2792 2 37

0x848018e8 conhost.exe 3892 420 2 53

Figure 22 - Option pslist de Volatility

On obtient ici toutes les informations liées au processus du système. Le PID d’un processus peut être

récupéré pour l’analyser plus en profondeur. Par exemple, dans le cas d’un utilitaire de protection de

mot de passe tel que Keepass, il peut être intéressant d’extraire un dump dans le but de récupérer

des identifiants stockés en mémoire ou le mot de passe principal.

Dumper l’image mémoire d’un processus

L’option « memdump » permet d’extraire l’image d’un processus afin de l’analyser. Pour dumper le

processus il faut d’abord récupérer son PID à l’aide de la commande « pslist ». Ici nous dumperons le

processus « KeePass.exe » avec le PID 852.

r1tch1e@forensic:~$ python vol.py --profile=Win7SP1x86 –f case.dmp memdump

-p 852 --dump-dir /tmp/

Volatile Systems Volatility Framework 2.2

************************************************************************

Writing KeePass.exe [ 852] to 852.dmp

Figure 23 - Option memdump de Volatility

Volatility crée ici un fichier nommé 852.dmp qui pourra par la suite être analysé.

Il est également possible de dumper le processus sous forme d’un exécutable avec l’option

« procmemdump ». L’exécutable pourra ensuite être décompilé et analysé. Nous prenons pour

exemple le processus « svchost.exe » avec le PID 2040.

r1tch1e@forensic:~$ python vol.py --profile=Win7SP1x86 –f case.dmp

procmemdump -p 2040 --dump-dir /tmp/

Volatile Systems Volatility Framework 2.2

Process(V) ImageBase Name Result

---------- ---------- -------------------- ------

0x85e03d40 0x00890000 svchost.exe OK: executable.2040.exe

Figure 24 - Option procmemdump de Volatility

Page 41: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 40

Extraction des hash LM/NTLM

Les données du registre Windows peuvent être extraites lors d’un dump de la mémoire volatile.

Volatility propose plusieurs options permettant d’afficher et, d’explorer (hivelist, hivescan…) la base

de registre et d’extraire les identifiants du système (hashdump).

On procédera comme suit pour extraire les hash NTLM.

r1tch1e@forensic:~$ python vol.py --profile=Win7SP1x86 –f case.dmp hivelist

Volatile Systems Volatility Framework 2.2

Virtual Physical Name

---------- ---------- ----

0x960de9d0 0x135329d0 \SystemRoot\System32\Config\SECURITY

0x961b78e8 0x12a3f8e8

\??\C:\Windows\ServiceProfiles\LocalService\NTUSER.DAT

0x82bb3140 0x02bb3140 [no name]

0x8760c008 0x19e8d008 [no name]

0x8761c008 0x19e1b008 \REGISTRY\MACHINE\SYSTEM

0x8763c6b8 0x19cbb6b8 \REGISTRY\MACHINE\HARDWARE

0x876c69d0 0x19e569d0 \SystemRoot\System32\Config\DEFAULT

0x882569d0 0x074a09d0 \SystemRoot\System32\Config\SAM

0x882f43f0 0x071193f0

\??\C:\Windows\ServiceProfiles\NetworkService\NTUSER.DAT

0x8b2999d0 0x1966c9d0 \Device\HarddiskVolume1\Boot\BCD

0x8cfb9008 0x17aaa008 \SystemRoot\System32\Config\SOFTWARE

0x900ec008 0x04efb008 \??\C:\System Volume Information\Syscache.hve

0x90bf5008 0x0157c008 \??\C:\Users\R1TCH1E\ntuser.dat

0x92ac7650 0x0f165650

\??\C:\Users\R1TCH1E\AppData\Local\Microsoft\Windows\UsrClass.dat

Figure 25 - Liste des ruches systèmes avec l’option hivelist de Volatility

On utilisera ensuite l’option « hashdump » en précisant le « -y » (qui correspond à l’OFFSET de la

ruche SYSTEM) et l’option « -s » (qui correspond à l’OFFSET de la ruche SAM, où sont stockés les mots

de passe).

r1tch1e@forensic:~$ python vol.py --profile=Win7SP1x86 –f case.dmp hashdump

-y 0x8761c008 -s 0x882569d0

Volatile Systems Volatility Framework 2.2

Administrateur:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c

0:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

R1tch1e:1000:aad3b435b51404eeaad3b435b51404ee:b9f917853e3dbf6e6831ecce60725930:::

Figure 26 - Extraction des hash avec l’option hashdump de volatility

Après avoir récupéré les hash il est possible de les décrypter.

Page 42: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 41

La copie d’écran ci-dessous illustre le décryptage12 du mot de passe :

Figure 27 - Décryptage du hash NTLM

Le hash retrouvé correspond ici à « passw0rd »

On notera tout de même qu’un mot de passe fort (constitué de plus de 8 caractères

alphanumériques minuscules, majuscules et caractères spéciaux) est très difficile à décrypter.

Volatility dispose de nombreuses autres options telles que « dlllist » qui permet de lister les DLL du

système ou celles utilisées par un processus. L’option « dlldump » permettra quant à elle d’extraire

une DLL en particulier afin de l’analyser.

D’autres options utilisées pour l’analyse de malware sont également présentes comme « malfind »

qui analyse les injections de code ou encore « yarascan » qui vérifie la signature YARA d’un binaire.

Enfin on ajoutera qu’il est possible d’ajouter des modules ou de développer ses propres outils pour

les utiliser avec Volatility.

Page 43: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 42

III.5 – Acquisition et analyse de la mémoire non-

volatile La mémoire non volatile est issue d’un support numérique qui conserve les données présentes même

lorsqu’il n’est pas alimenté électriquement.

On distingue alors la mémoire non-volatile de la mémoire volatile. Les supports non-volatiles

peuvent être des disques durs ou des clefs USB. On appelle cette partie l’analyse à froid ou post

mortem, elle sera effectuée après l’incident de sécurité ou lorsque que le système a été éteint ou

redémarré.

Lors d’une analyse forensic les supports numériques de données non volatiles peuvent fournir une

multitude d’informations à l’analyste. Nous verrons dans cette partie comment acquérir une image

d’un disque dur, comment l’utiliser et l’analyser.

A – Acquisition de la mémoire non-volatile Comme pour la mémoire volatile, l’acquisition de la mémoire non-volatile est une partie très

importante de l’investigation numérique, elle doit respecter une procédure stricte afin de ne pas

altérer le contenu du support.

De nombreux outils ont pour but de copier le contenu d’un disque dur pour l’analyser.

L’utilitaire dd

L’utilitaire « dd », connu aussi sous la dénomination « GNU dd » est un outil en ligne de commande

permettant de copier des données en mode bloc. Il permet notamment de créer des images de

disques, ou de parties de disques qui seront ensuite utilisées avec des outils tels que FTK, DFF ou

EnCase.

L’utilitaire « dd » est par défaut disponible sur tous les systèmes Linux. Il permet de faire une copie

bit à bit garantissant ainsi une reproduction parfaite du disque dur.

Pour récupérer le contenu du disque dur d’un système Windows il suffit de booter la machine sur un

live cd ou USB afin d’obtenir un Shell Linux.

La commande pour cloner un disque dur entier sur un périphérique externe est la suivante :

r1tch1e@forensic:~$ dd if=/dev/sda of=/dev/sdb conv=notrunc,noerror

dd : writing to `/dev/sdb`

15769601+0 records in

15769600+1 records out

8074035200 bytes (8,1 GB) copied, 2449,65 s, 3.3 MB/s

Figure 28 - Copie d’un disque dur avec l’utilitaire dd

L’option « notrunc » signifie de ne pas tronquer le fichier en sortie.

L’option « noerror » signifie de continuer en cas d'erreur, dd s'arrête normalement en cas

d'erreur.

L’utilitaire « dd » permet également de nombreuses possibilités pour la manipulation de volume.

Page 44: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 43

L’utilitaire dcfldd

L’utilitaire « dcfldd »13 est une version de « dd » améliorée. Il permet de faire une copie bit à bit d’un

disque dur tout en calculant l’empreinte qui servira à garantir son intégrité. « dcfldd » est open

source.

r1tch1e@forensic:~$ dcfldd if=/dev/sda of=/dev/sdb hash=sha1 hash=md5

Figure 29 - Copie d’un disque dur et calcul de condensat avec l’utilitaire dcfldd

L’utilitaire Esximager

Esximager14 est un script perl qui utilise netcat pour effectuer une copie à distance d’un système

virtuel. La virtualisation étant de plus en plus présente dans nos infrastructures, il convient d’utiliser

les outils adéquats pour récupérer des images issues de logiciels de virtualisation comme VMWARE.

Figure 30 - Copie d’une image virtuelle ESXi avec l’utilitaire esximager.pl

Page 45: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 44

B – Monter une image Après avoir récupéré l’image d’un disque dur, l’analyste doit pouvoir exploiter son contenu afin d’en

récupérer les informations nécessaires à l’enquête. Il faut donc pouvoir monter l’image sur un

système tout en gardant à l’esprit que le support ne doit pas subir de modifications.

Le montage de l’image est ici une étape importante qu’il faut mener avec précaution.

L’utilitaire mount

Après avoir effectué la copie d’un système, l’analyste doit pouvoir y accéder facilement pour

l’analyser. Il s’agit ici de monter le disque dur ou l’image sur un système tiers. Il est important de

monter l’image seulement en lecture afin de ne pas entraîner de modifications.

L’utilitaire « mount » présent sur tous les systèmes UNIX permet d’effectuer cette action.

r1tch1e@forensic~$ mount -t FAT -o ro,noexec case1.dd /mnt

Figure 31 - Montage d’une image avec l’utilitaire mount

L’option « -t » permet de spécifier le système de fichier

L’option « -o » permet de spécifier plusieurs options :

o « ro » permet de monter l’image en lecture seulement (Read Only)

o « noexec » ne permet pas l’exécution de binaire sur le système monté

Le « /mnt » permet d’indiquer le répertoire de montage

Page 46: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 45

L’utilitaire Live view

L’utilitaire Live View15 sert à convertir une image en machine virtuelle pour VMWARE pour pouvoir la

démarrer dans un environnement virtualisé. Ainsi, l’analyste pourra naviguer dans le système de

fichiers et exploiter l’image de manière graphique. Il nécessite cependant l’installation du

« VMWARE’s Virtual Disk Developement Kit »16 pour fonctionner.

Figure 32 - Conversion d’une image en vmdk

L’utilitaire Live View est disponible sous Windows mais la conversion d’une image sous Linux est

également possible.

Page 47: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 46

C – Analyse de la mémoire non-volatile L’analyse du système consiste à récupérer et interpréter tous les éléments nécessaires à l’enquête

(les dernières actions de l’utilisateur, les fichiers effacés, l’historique des sites visités..). Cette étape

de l’investigation numérique est la plus étendue, car de nombreux éléments peuvent être analysés

sur l’image récupérée. Lors d’une enquête, l’analyste n’a pas souvent le temps nécessaire pour

examiner en profondeur tous les éléments du système. Il est donc important de prendre les éléments

qui fourniront les informations les plus judicieuses comme la base de registre, les logs ou encore les

boîtes mails.

Analyse du registre

L’analyse du registre fournit de nombreuses informations sur l’attaquant ou le logiciel responsable

de l’infection en question. Le registre regorge de clés depuis Windows 2000 permettant de démarrer

des programmes quand l’ordinateur est allumé ou quand un utilisateur y est connecté. Par exemple

un malware va laisser de nombreuses traces dans le registre local de l’utilisateur connecté.

Si une clé de registre suspecte s’y trouve, on peut facilement affiner ces recherches pour trouver la

source de l’infection.

L’analyse du registre se fait par le biais d’outils. Comme par exemple un l’éditeur de registre

Windows : regedit. Il est possible qu’il n’affiche pas les clés dont la valeur est nulle, la plupart du

temps les malwares utilisent ce genre de vecteurs pour infecter une machine, et sont difficiles à

détecter dans un système.

Voici une liste des emplacements où un malware peut être dissimulé pour s’exécuter :

Les clés de registre logiciel : HKLM(HKEY_LOCAL_MACHINE)\Software\

Microsoft\Windows\CurrentVersion\RunServicesOnce

Microsoft\Windows\CurrentVersion\RunServices

Microsoft\Windows\CurrentVersion\RunOnce

Microsoft\Windows\CurrentVersion\RunOnceEx

Microsoft\Windows\CurrentVersion\Policies\Run

Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

Microsoft\Windows NT\CurrentVersion\Winlogon\Notify

Microsoft\Windows\CurrentVersionShellServiceObjectDelayLoad

Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler

Les clés de registre utilisateur, que l’on retrouve dans le fichier de ruche NTUSER.DAT :

Software\ Microsoft\Windows\CurrentVersion\RunServicesOnce

Software\ Microsoft\Windows\CurrentVersion\RunServices

Software\ Microsoft\Windows\CurrentVersion\Run

Software\ Microsoft\Windows\CurrentVersion\RunOnce

Software\ Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

Software\ Microsoft\Windows NT\CurrentVersion\Windows\load

Page 48: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 47

L’analyse du registre est plus simple en utilisant un logiciel adapté. On peut citer le projet open

source FRED17 : un éditeur de registres disponible sur plusieurs plateformes.

Figure 33 - Interface de Forensic Registry Editor

Le registre n’est pas le seul endroit où l’on peut trouver des logiciels ou du code malveillant.

En effet, sur un ordinateur on trouve des fichiers de démarrage et autres exécutables :

C:\autoexec.bat : Fichier batch contenant des commandes à exécuter au démarrage du

système.

C:\config.sys : Contient des ordres de lancement de dispositifs matériels.

C:\windows\wininit.ini : Contrôle le démarrage des programmes.

C:\windows\winstart.bat : Contrôle le démarrage des composants de Windows

C:\windows\win.ini : Fichier de lancement des programmes Windows antérieur à Windows

XP

Analyse des journaux d’évènements et logs

Le journal des évènements de Windows peut être une bonne source d’informations lorsque l’on peut

analyser une machine sur un profil d’utilisateur ouvert.

L’outil UserAssist18, présent dans les versions antérieures à Windows Vista, visualise la chronologie

des évènements. UserAssist va afficher les accès aux logiciels, les double-clics, les lancements de

programmes etc., si par exemple le compte de l’utilisateur subit une attaque par force brute, les

évènements d’échec seront enregistrés dans les journaux systèmes.

Page 49: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 48

Figure 34 - Affichage chronologique avec UserAssist

Sous Linux, on utilisera alors l’outil log2timeline19 qui est un framework sous licence GPL permettant

de compiler les logs de différentes sources et de les afficher selon la date des évènements.

Figure 35 - Utilisation de log2timeline

La création d’une timeline et l’analyse des évènements permettent de retracer les dernières actions

effectuées par l’utilisateur ou un logiciel malveillant sur le système.

Récupération de fichier

La récupération des fichiers effacés d’un système fait partie intégrante de l’analyse forensic. En effet

l’auteur d’un acte malveillant peut très bien avoir supprimé certains fichiers qui pourraient

l’incriminer. Par ailleurs un système infecté peut avoir subi des pertes de fichiers. Les fichiers

recouvrés permettront dans certains cas d’identifier les intentions d’une personne.

Lorsqu’un fichier est effacé, seule sa référence dans l’index du disque dur est supprimée, mais le

fichier est encore présent. Il existe des outils pour permettre de récupérer ces fichiers effacés.

Néanmoins ils peuvent être supprimés de manière sécurisée c’est-à-dire qu’ils ne seront pas, ou

difficilement, recouvrables.

Page 50: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 49

L’utilitaire Photorec20 permet de récupérer des fichiers effacés. Il fonctionne aussi bien sur Linux que

sur Windows et est open source.

Figure 36 - Utilisation de photorec

L’interface de l’utilitaire Photorec est très intuitive. Ce dernier créera un dossier où les fichiers

récupérés seront stockés.

L’utilitaire Foremost21 permet également le recouvrement de fichiers.

Pour récupérer des fichiers jpg il faut entrer la ligne de commande suivante :

r1tch1e@forensic$ foremost -t jpg -i /dev/sda*

Figure 37 - Récupération de fichier jpg avec foremost

Pour récupérer tous types de fichiers il faudra entrer la commande suivante :

r1tch1e@forensic$ foremost -t all -i /dev/sda1*

Figure 38 - Récupération de tout type de fichier avec foremost

Page 51: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 50

Analyse du navigateur

L'analyse du navigateur est importante pour retracer les activités d'un utilisateur. En effet, il est

possible de reconstituer les étapes d'une infection, ou la fuite de données en observant les différents

fichiers créés par les navigateurs.

Internet Explorer est le navigateur par défaut des systèmes d'exploitation Microsoft depuis Windows

95, il est donc un bon candidat pour une analyse forensic. En entreprise, l'utilisation de navigateurs

alternatifs est sujet à des problèmes de sécurité et comporte des risques. En effet ils permettent

parfois de contourner les mesures de sécurité de l’entreprise, et l'infection de ces navigateurs peut

provoquer des dégâts conséquents sur le système d’information. Un poste de travail infecté peut,

par exemple, être à l’ origine de la prolifération de codes malveillants et d'attaques depuis

l'extérieur.

Les navigateurs internet stockent dans des fichiers temporaires un grand nombre d'informations. Ces

fichiers contiennent les url visitées, mais aussi des mots de passe. Les cookies, qui sont des fichiers

envoyés par les serveurs web, peuvent contenir diverses informations, par exemple : des paramètres

personnels d’un site, le contenu d'un panier électronique etc...

Les cookies peuvent être utilisés pour la gestion des sessions et transporter des noms d'utilisateurs et

les mots de passe associés à un site internet.

Pour extraire les données du navigateur il existe différents outils qui vont explorer le système à la

recherche des fichiers temporaires et cookies.

L’utilitaire Browser Forensic Tool22 classe les données extraites en fonction du type de navigateur

(Chrome, IE, Firefox, etc…) mais également selon des critères de classification des pages consultées.

Figure 39 - Récupération de l’historique de navigation avec Browser Forensic Tool

Page 52: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 51

A partir de Windows 7, Microsoft a choisi de centraliser les fichiers de données temporaires et les

informations contenues dans le cache d’Internet Explorer.

Ils se trouvent maintenant dans :

C:\Users\username\AppData\Local\Microsoft\Windows\Temporary Internet Files

Les fichiers temporaires de Google Chrome sont à l’emplacement suivant :

C:\Users\username\AppData\Local\Google\Chrome\User Data

Pour le navigateur Mozilla Firefox, on les stockent à l’emplacement :

C:\Users\username\AppData\Local\Mozilla\Firefox\Profiles

Connaître la localisation de ces fichiers permet de déceler facilement si un utilisateur a été

volontairement malveillant ou simplement négligeant. Les malwares, dont l’action est de voler des

informations sur le poste, laissent des traces dans les fichiers temporaires des navigateurs, c’est

pourquoi leur analyse n’est pas à négliger.

D’autres outils analysent les fichiers des différents navigateurs, et d’en extraire les mots de passe,

avec les URL associées. Par exemple l’utilitaire BrowserPasswordDump23.

Figure 40 - Extraction de mot de passe avec BrowserPasswordDump

Page 53: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 52

Pour Google Chrome, les mots de passes sont stockés dans une base de données Sqlite3, à

l’emplacement suivant :

C:\Users\username\AppData\Local\Google\Chrome\User Data\Default, dans le fichier login

data.

Firefox stocke les informations de connexion dans le fichier :

C:\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxx.default

Enfin, Internet Explorer conserve les mots de passe dans la base de registre de Windows à

l’emplacement suivant :

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2

Analyse de trace réseau

L'analyse de captures réseau implique que les activités sont enregistrées en permanence, pour

conserver les traces et faire une analyse en cas de besoin. Les traces réseaux sont des informations

précieuses puisqu'elles contiennent toute l'activité du réseau : adresses IP (source et destination),

protocoles utilisés, et de nombreuses en-têtes contenant des données. Le trafic non chiffré sera

rapidement identifiable et l'analyse grandement facilitée par les outils comme Wireshark24 qui

permettent une visualisation fine des traces réseaux à partir d'un fichier de capture au format

« pcap ».

Figure 41 - Analyse de trace réseau avec Wireshark

Wireshark offre de nombreux moyens de filtrage et d’analyse des traces. L’option follow TCP Stream

permet de suivre la totalité d’une session entre un client et un serveur.

Prenons l’exemple d’une session http entre un poste de travail et un site Web, ce type d’activité est

souvent tracé lors d’une contamination par un malware.

Page 54: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 53

Figure 42 - Traces d’une activité d’envoi d’informations a un serveur Web (méthode POST)

Xplico25 est un autre outil présent dans la plupart des distributions dédiées au forensic. Xplico est un

analyseur réseau.

Il est différent de Wireshark car il ne permet pas la capture de trames, mais dispose d’outils d’analyse

des fichiers au format « pcap ». Il utilise des techniques d’identification de ports et de protocoles

pour détecter les données transitant sur le réseau.

Figure 43 - Analyse d’une capture réseau avec Xplico

Ospy26 est un analyseur réseau qui a la particularité d’afficher les paquets chiffrés par SSL en clair. Il

s’attache à un processus et trace tout le trafic. Si du SSL est capturé il sera affiché en clair.

Page 55: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 54

Ci-dessous nous avons testé ces fonctionnalités avec la messagerie Gmail :

Figure 44 - Analyse de trame SSL avec OSPY

On remarque effectivement que le mot de passe est affiché en clair (flouté en fig 42), lors de la

connexion à la messagerie. D’autres tests ont été effectués sur le site d’une banque qui affiche bien

le numéro de compte et le mot de passe.

Ospy ne permet pas d’aller espionner son voisin puisqu’il ne s’attache qu’à un processus local.

Cependant cet outil est adapté si l’on souhaite faire du reverse engineering sur un protocole ou sur le

mode de fonctionnement d’une application utilisant le protocole SSL.

Analyse des emails

Aujourd’hui, l’utilisation de l’email est devenue un des principaux moyens de communication. Selon

une étude de Radicati Group27, il y a environ 182 milliards d’emails échangés chaque jour, moins de

la moitié de ces emails contiennent des informations personnelles, et environ 897 millions sont

envoyés depuis des terminaux mobiles.

L’utilisation quotidienne de moyens de communications électroniques permet aussi bien aux pirates

qu’aux éditeurs de services, distributeurs, annonceurs, etc. de récupérer des informations précieuses

sur les habitudes des utilisateurs.

Les emails sont de simples fichiers texte envoyés entre différents serveurs de mails en utilisant le

port 25. Trois éléments importants sont à prendre en compte lors de l’étude des fichiers constitutifs

d’un email : l’en-tête, le corps du mail et la pièce jointe (encodée sous forme de texte).

Qu’il s’agisse d’un client lourd (Outlook, ThunderBird) ou léger via une page web (Gmail, Yahoo!), ils

utilisent des fonctionnalités similaires définies dans des RFCs.

La recherche d’informations d’un client léger tel que Gmail, nécessitera une conversion dans un

format adapté pour son exploitation.

Page 56: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 55

Transend Migrator28 est un outil de conversion permettant de télécharger les mails d’un client léger

pour les convertir en fichier OST/PST.

Figure 45 - IHM de Transend Migration, conversion depuis gmail vers pst

Nucleus propose un outil appelé Kernel for OST to PST29 qui répare en cas de besoin des fichiers OST

(Offline Storage Table) corrompus.

Les fichiers au format OST permettent à un client Outlook non connecté à Exchange de continuer à

consulter les emails. La conversion d’un fichier OST en PST (Personal Storage Table) permet

d’importer dans un client Outlook autonome ou un logiciel d’analyse. En effet le format OST n’est pas

exploitable directement sauf s’il est lié à un compte de messagerie.

Figure 46 - IHM de Nucleus, conversion des fichiers ost

Paraben’s Email Examiner30 est un outil propriétaire payant, il analyse directement des fichiers OST

issus de clients Outlook sur Exchange Server. Il permet de faire des recherches très poussées dans les

fichiers, énumérer les pièces jointes, voir les contacts temporaires, les adresses en cache

(anciennement fichier .NK2, intégré au pst depuis Office 2007).

Page 57: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 56

Figure 47 - Interface de Paraben’s, énumération des emails d’un fichier OST

Figure 48 - Enumération des pièces jointes

Connaître l’emplacement des fichiers de configuration et des conteneurs des clients de messagerie

facilitent les recherches, car ces nombreux fichiers sont exploités chacun d’une manière différente.

Page 58: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 57

Le tableau suivant présente la liste des fichiers de configuration et leur emplacement :

Personal Storage Table (.pst)

C:\documents and settings\username\AppData\Local\Microsoft \Outlook

Offline Storage Table (.ost)

C:\documents and settings\username\AppData\Local\Microsoft \Outlook

Personal Address Book (.pab)

C:\documents and settings\username\AppData\Local\Microsoft \Outlook

Offline Address Book (.oab)

C:\documents and settings\username\AppData\Local\Microsoft \Outlook

Outlook Contact Nick (.nk2) (avant 2007)

C:\documents and settings\username\Application Data\Microsoft \Outlook

Rules (.rwz) C:\documents and settings\username\Application Data\Microsoft \Outlook

Signatures C:\documents and settings\username\Application Data\Microsoft \Signatures

Tableau 6 - Liste des fichiers relative aux emails

Sur les versions de Windows antérieures à Windows 7, le client mail par défaut était Outlook Express.

Ce client séparait la configuration et les mails dans différents fichiers localisés à différents endroits

selon la version du système d’exploitation.

Win 2000/XP/2003 C:\documents and settings\username\Application Data\ identities\chaine unique id\Microsoft\Outlook Express

Windows NT C:\winnt\profiles\username\Local Settings\Application Data\Identities\ chaine unique id\Microsoft\Outlook Express

Win 98/95/Me C:\windows\Application Data\Identities\chaine unique id\Microsoft\ Outlook Express

Tableau 7 - Localisation des fichiers de configuration

De telles versions de Windows sont encore largement utilisées en entreprise, aussi il est important

de connaître les emplacements des fichiers pour une bonne investigation.

Page 59: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 58

Les en-têtes présentes dans les emails sont riches en informations : adresse email de l’expéditeur,

adresse du destinataire, adresse du serveur SMTP, etc... Elles contiennent également les

caractéristiques du client utilisé pour envoyer le mail, le logiciel serveur d’origine, et le nom des

pièces jointes.

Ces informations sont très utiles dans le cas d’une investigation pour connaitre l’historique d’un mail,

et en cas d’infection, pour trouver d’où provient le code malicieux.

La RFC-822 établit les règles de construction des en-têtes. Les serveurs de messageries respectent

cette RFC et ajoutent automatiquement les en-têtes à chaque mail traité.

Description d’une en-tête :

Received: from localhost (localhost.localdomain [127.0.0.1])

by maia(Postfix) with ESMTP id 07058108013

for <djuj@forensic>;

Tue, 4 Feb 2014 16:42:40 +0100 (CET)

Received: from 46.216.13.89 (unknown [46.216.13.89])

by maia (Postfix) with SMTP id A18BE108011

for <djuj@forensic>; Tue, 4 Feb 2014 16:42:28 +0100 (CET)

Received: from unknown (HELO localhost) ([email protected]

@199.61.202.145)

By 46.216.13.89 with ESMTPA;

Tue, 4 Feb 2014 18:43:40 +0200

From: <[email protected]>

To: <djuj@foresic>

Subject: ***SPAM*** Do you want to amaze you at night?

Date: Tue, 4 Feb 2014 18:35:01 +0200

Message-ID: <20140204154229.A18BE108011@maia >

MIME-Version: 1.0

Content-Type: text/plain

Return-Path: < [email protected] >

X-MS-Exchange-Organization-AuthSource: CAIN

X-MS-Exchange-Organization-AuthAs: Anonymous

Figure 49 - Exemple d’une en-tête d’email

From: Identifie l’adresse email de l’expéditeur. Malheureusement, le protocole SMTP ne vérifie pas

l’identité de l’expéditeur, ce qui rend très facile la falsification de ce champ par manipulation des

commandes SMTP via Telnet par exemple.

From (différent de « From : ») : est une partie de l’en-tête ajoutée par le serveur, elle renseigne le

nom et l’IP du serveur. Si l’email a transité par plusieurs serveurs, chacun d’eux va ajouter un champ

« From » avec ses propres informations.

Reply-to: (Return-Path:) : renseigne l’adresse pour envoyer des réponses. Ce champ est facile à

falsifier, il est la plupart du temps vide. Pour les spammeurs, ce champ est intéressant pour inonder

des boîtes mails.

Sender: (X-Sender:) : ce champ renseigne normalement la version du client, cependant la plupart des

clients ignorent ce champ ; il disparait des en-têtes.

Message-id: Il s’agit d’une chaine unique assignée au mail par le serveur au moment où il est créé.

Page 60: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 59

Received: Sans doute le champ le plus intéressant, car il contient beaucoup d’informations :

le serveur ayant émis l’email avec son nom et son IP,

l’adresse mail de l’expéditeur,

la version du connecteur SMTP,

le timestamp contenant la date, l’heure et une information géographique (+0200 dans

l’exemple) qui correspond au décalage par rapport au méridien de Greenwich (GMT).

Dans l’exemple ci-dessus l’email a été envoyé depuis un des pays du fuseau horaire GMT +2

Beyrouth, Liban.

Le tableau suivant donne une liste des clients de messagerie les plus utilisés ainsi que la manière

d’accéder aux en-têtes :

Outlook Ouvrir un message, cliquer sur Fichier, Propriétés, puis En-tête Internet

Outlook Express Sélectionner un message et cliquer sur Ctrl+F3

ThunderBird Sélectionner un mail, cliquer sur Autres Actions, puis afficher la source

AOL Client Ouvrir un email, chercher Envoyé depuis Internet, puis cliquer sur Détails

Yahoo! Ouvrir un mail, cliquer sur Afficher l’en-tête complète

Gmail Ouvrir un mail, cliquer sur Afficher l’original

Hotmail Depuis la boite de réception, Choisir Options, Affichage, cocher la case Avancé sous En-tête des messages

Tableau 8 - Comment accéder aux en-têtes d’emails

L’analyse de la mémoire non volatile révèle de nombreuses informations sur les habitudes des

utilisateurs et sur l’activité générale d’une machine. Les utilisateurs peuvent être confondus en

retraçant leurs actions sur le poste : visites de sites controversés, envoi volontaire ou involontaire de

données à l’extérieur.

Ce sont des informations importantes pour l’enquêteur qui, avec l’aide de ses outils, pourra faire une

analyse exhaustive du système d’exploitation.

Page 61: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 60

Chapitre IV : Les méthodes anti-forensic

L’anti-forensic rassemble toutes les techniques employées pour masquer ou prévenir la création de

traces, tout en permettant de dissimuler ou protéger des données qui n’ont pas vocation à être

découvertes.

Ces méthodes sont non seulement utilisées par des pirates mais également par des entreprises ou de

simples utilisateurs pour protéger des données à caractère confidentiel. Ces techniques ralentissent

le travail de l’enquêteur et diminuent le risque d’identification d’un criminel.

Pour un criminel, il s’agit de falsifier, camoufler, détruire, effacer, chiffrer, ou supprimer les données

compromettantes.

Nous verrons dans cette partie quelques techniques d’anti-forensic ainsi que les méthodes de

l’enquêteur pour les déceler et les contourner.

IV.1 – Stéganographie La stéganographie est l’art de dissimuler des informations. Il s’agit de masquer un message dans un

conteneur anodin, une photo par exemple, de manière à le rendre invisible pour un individu qui n’est

pas concerné par le message, et de le transmettre en toute discrétion.

La stéganographie diffère de la cryptographie qui se contente de rendre le message inintelligible.

Quand le message est dissimulé par la stéganographie l’enquêteur n’a pas connaissance de

l’existence d’un message caché. La recherche de contenu stéganographié repose donc la plupart du

temps sur des soupçons.

Pour un expert, il sera parfois nécessaire d’analyser des fichiers pour détecter un contenu caché.

Pour ce faire il existe plusieurs méthodes de détection, qui consistent à retrouver les traces que

laissent les différentes techniques de stéganographie.

La stéganalyse se propose de détecter des contenus stéganographiés dans des fichiers, ou des

médias physiques comme la peinture ou les images. Pour détecter un message à l’intérieur d’un

média numérique, il convient avant tout de comprendre comment l’information est dissimulée à

l’intérieur du média, cela revient à rechercher l’algorithme utilisé pour cacher un message dans un

fichier.

La recherche d’algorithmes connus pour la dissimulation de message constitue la principale méthode

de détection.

Page 62: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 61

Prenons un fichier dans lequel nous avons caché un contenu :

Figure 50 - Détection de logciciel de stéganographie avec StegDetect

StegDetect31 permet de révéler que l’image testée a été traitée avec le logiciel jphide.

La connaissance de la technique stéganographique et du logiciel utilisé permet de retrouver le

contenu caché en utilisant cette technique de manière inverse. Par exemple pour jphide, il suffit

d’utiliser un éditeur héxadécimal pour recouvrer les données. En effet, jphide exploite les champs

vides d’un fichier au format JPEG pour y cacher les données, on retrouvera donc les données soit en

fin de fichier, soit dans le champ de commentaires du fichier JPEG.

IV.2 – Formatage Sécurisé Si le formatage d’un disque n’est pas indispensable lors du changement de son ordinateur personnel,

ce formatage est essentiel en entreprise pour éviter toute récupération de données confidentielles.

Les mesures de sécurité en entreprise imposent que les disques soient formatés de manière

sécurisée, voire même détruits. En effet, les fuites de données en entreprise constituent un risque

majeur.

Type d'effacement Temps de réalisation (Disque 100Go)

Niveau de sécurité

Commentaire

Formatage classique ~ 1 minute Faible Ne supprime que les entrées de la table d'indexation

Effacement par la méthode DoD 5220.22-M

Jusqu’à plusieurs jours Moyen Nécessite 3 écritures successives

Effacement Sécurisé > 1 heure Haut Toutes les données accessibles sont écrasée (écriture par-dessus)

Effacement Sécurisé par la méthode NIST 800-88

< 1 minute Très haut Modifie la clé de chiffrement du disque et réattribue l'indexation

Tableau 9 - Représentation des différents type d’effacement

La simple suppression d’un fichier sur un disque dur ne suffit pas à rendre cette donnée

irrécupérable. De même, le simple fait de formater un disque dur indique au système que

l’emplacement est libre, mais les données toujours présentes, restent récupérables. Pour effacer un

disque de manière sûre, nous devons utiliser des logiciels spécialisés.

Peter Gutmann, chercheur en informatique et auteur de nombreux articles traitant de la sécurité des

architectures matérielles, décrit une méthode d’effacement sécurisée qui porte son nom « Peter

Gutmann 35 passes ». On l’appelle aussi le formatage bas niveau, qui consiste à remettre chaque bit

du disque à la valeur 0, du début à la fin du volume.

Page 63: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 62

DBAN32 est un système tiers contenant les outils mettant en œuvre les méthodes Quick Erase, DoD

5220.22-M, Gutmann Wipe, ces méthodes ne sont valables que pour les disques durs magnétiques.

Figure 51 - Effacement de données avec DBAN

A – Effacement des disques durs magnétiques L’effacement d’un disque dur magnétique sollicite les têtes de lectures qui vont remettre chaque bit

à 0. Certaines méthodes procèdent à plusieurs passages d’écriture/effacement pour aboutir à la

disparition totale des données. L’effacement est plus ou moins efficace selon la méthode. Nous

décrirons les plus utilisées mises en œuvre par DBAN.

Quick Erase : il s’agit d’un formatage simple qui met chaque bit a 0. Il n’y a qu’un seul

passage sur chaque secteur du disque.

DoD 5220-22.M : une méthode qui impose aux têtes de passer trois fois sur chaque secteur

pour le placer successivement à 0, 1 puis à nouveau 0.

Gutmann Wipe : C’est la méthode décrite par Peter Gutmann qui procède à 35 passages sur

chaque secteur du disque.

PRNG Stream : probablement la méthode la plus efficace pour définitivement effacer des

données, car elle écrit des données chiffrées sur chaque secteur de manière aléatoire. De

base elle s’emploie en 4 passes, mais donne un meilleur niveau de sécurité en 8 passes.

Page 64: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 63

B – Effacement des disques flash, SSD La méthode Secure Erase permet l’effacement sûr d’un disque SSD en deux étapes : l’effacement

simple du disque, les mécanismes d’optimisation d’un SSD.

Les systèmes d’exploitation postérieurs à Windows XP exploitent la technologie TRIM vue au chapitre

« II.2 – Les supports numériques », qui indique au contrôleur de disque quels blocs sont inutilisés.

TRIM est utilisée par la méthode « Wear Leveling » des SSD qui prolonge sa durée de vie, en

réécrivant régulièrement les blocs inutilisés pour répartir l’usure.

Ainsi sur un SSD formaté, après réécriture même partielle, il n’est pas possible d’y récupérer des

données.

C – Effacement de mémoire vive Il n’y a pas de méthode d’effacement sécurisée des données d’une mémoire vive. Comme vu au

chapitre « III.2 – Acquisition et analyse de la mémoire volatile » les données en mémoire vive sont

volatiles, et disparaissent dans la minute suivant la mise hors tension de l’ordinateur.

D – Effacement sécurisé au niveau matériel Certains constructeurs n’hésitent pas à proposer du matériel embarquant un système d’effacement

voire de destruction du support.

La société RunCore33, grand fabriquant de SSD pour l’industrie et l’armée, propose en effet des

disques possédant deux boutons, l’un permettant de réécrire entièrement le disque avec des

données aléatoires, (ce qui rend la récupération très difficile), et l’autre permettant tout simplement

de détruire la puce NAND, qui ne sera plus lisible et rendra la récupération impossible.

IV.3 – Falsification de Timestamp Les suites logicielles, et Framework d’analyse forensic, comme Encase, FTK, sont capables de

produire un calendrier des actions en indexant les journaux et logs ; fournissant une chronologie

d’accès aux différents fichiers du système.

Un attaquant ou un utilisateur malveillant a la possibilité de couvrir ses traces en falsifiant les

attributs d’accès aux fichiers (timestamp). Les outils comme TimeStomp34 dont le but est de modifier

les attributs des fichiers, sont capables de réécrire les dates d’accès des systèmes de fichiers NTFS

(date de création, modification, accès, etc…).

Page 65: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 64

Figure 52 - Falsification des dates d’un fichier avec Timestomp

Timestomp exploite une faille des systèmes de fichiers NTFS, en utilisant deux appels systèmes

permettant de falsifier les informations MACE (Modification, Accès, Création, Ajout (Entry)).

Les informations MACE identifient les modifications et les accès aux fichiers.

Ces appels sont :

NtQueryInformationFile() : permet de renvoyer les informations MACE du fichier. Il est

impliqué dans l’affichage des informations de dernier accès lorsqu’un utilisateur consulte les

propriétés d’un fichier.

NtSetInformationFile() : permet de modifier les informations MACE, c’est cet appel qui est

impliqué dans la modification de la date de dernière modification quand un utilisateur édite

un fichier.

L’utilisation de Timestomp falsifie les attributs MACE, on remarque ici qu’un fichier créé pour

l’exemple le 18/08/2013, une fois passé au Timestomp, a pour date de dernière modification (option

–m) le 18/01/2038 à 22h23.

Une analyse de cohérence des fragments de fichier sur un disque dur permet d’analyser les

modifications apportées aux informations MACE.

La connaissance des méthodes d’allocation de données sur un disque dur permet une analyse plus

fine pour déterminer si les fichiers du système ont subi des modifications.

Il existe toutefois dans de nombreux fichiers, des metadatas qui attribuent aux fichiers des

informations différentes de celles des propriétés du système.

Page 66: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 65

Pour l’exemple, nous prendrons un fichier créé avec le logiciel Microsoft Office Word que nous allons

modifier grâce à Timestomp.

Figure 53 - Falsification des dates d’un document WORD avec Timestomp

Le fichier est modifié, nous lui avons donné comme date de dernier accès : modification et création la

1er janvier 1985, le système de fichier NTFS renvoie les mêmes informations :

Figure 54 - Propriété du document WORD après modification du timestamp

Page 67: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 66

Le logiciel Microsoft Word en revanche ne possède pas les mêmes informations. Pour les vérifier,

nous ouvrons le fichier, et nous consultons ses propriétés :

Figure 55 - Propriété du document WORD affiché dans Office Word après modification du timestamp

On remarque que les dates ne correspondent pas.

Pour modifier ces informations, il faut intervenir dans les fichiers contenant les metadatas, il s’agit

des relations contenant les propriétés XML du fichier docx. Elles sont consultables en dissociant le

fichier Word avec un logiciel comme 7zip :

Figure 56 - Document WORD dissocié avec 7zip

Le dossier docProps contient deux fichiers XML, donc core.xml :

Figure 57 - Contenu du fichier XML

Ces informations sont exploitées par Word pour les afficher. Leur modification permet de renvoyer

des informations différentes, et contribue à rendre la falsification plus probante. Le fichier core.xml,

une fois falsifié devra aussi être passé au logiciel timestomp pour crédibiliser encore la falsification du

fichier.

Page 68: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 67

IV.4 – Cryptographie La cryptographie est l’art de protéger un contenu. C’est un domaine de la cryptologie qui assure la

confidentialité, l’authenticité, et l’intégrité des messages sécurisés à l’aide de clés, aussi appelées

« secret ».

La cryptographie diffère de la stéganographie car elle s’attache à chiffrer les messages et non à les

camoufler. L’existence d’un message n’est donc pas à prouver, mais il s’agit pour l’enquêteur de

décrypter le contenu de ce message.

La cryptographie est utilisée depuis l’antiquité. Les gouvernements, lors de conflits, l’ont associée à la

stéganographie pour diffuser des messages, et maintenir le contact avec les armées et les alliés. Le

recours à la cryptographie a été d’un intérêt stratégique très important, et la cryptanalyse a joué un

rôle déterminant dans le déroulement d’évènements historiques. Pendant la deuxième guerre

mondiale, la machine Enigma, développée par le gouvernement allemand, lui a permis de maintenir

un contact secret avec son armée. La découverte et le décryptage du code de cette machine par les

alliés ont conduit à la défaite de l’Allemagne.

La cryptanalyse est une technique de recouvrement de contenu en clair, cela implique que

l’enquêteur ne possède pas la clé de chiffrement et doit découvrir l’algorithme employé.

Aujourd’hui, la cryptographie est employée à de nombreux niveaux. On l’utilise pour chiffrer des

canaux d’échanges comme un tunnel VPN mais aussi pour chiffrer la communication entre un client

et un serveur (SSL). Elle est également utilisée sur un disque dur pour protéger des données

confidentielles.

Un enquêteur intervenant sur une machine ne va pas seulement chercher des fichiers selon les

critères qui lui sont imposés. Si une incohérence de taille de partition/disque révèle l’existence d’un

conteneur ou d’une partition chiffrée cachée, la recherche devra également porter sur ces derniers.

BitLocker et TrueCrypt sont les logiciels les plus répandus sur les systèmes d’exploitation Windows

pour chiffrer un conteneur ou toute une partition.

A – Détection de partition ou conteneur chiffré L’utilisation de TrueCrypt35 et BitLocker36, permet deux modes de dissimulation :

le mode conteneur chiffré,

le mode partition.

Le mode partition chiffre tout ou partie du disque dur, aucun fichier en clair n’est écrit sur le disque.

Les conteneurs sont aussi fiables que les partitions, mais présentent le risque d’être supprimés par

inadvertance, contrairement à une partition. Ils peuvent être partagés ou envoyés. Les fichiers

ajoutés à ces conteneurs ne seront plus lisibles une fois l’accès verrouillé par une passphrase, ou une

clé.

Truecrypt a la particularité de créer des fichiers qui n’ont pas d’en-tête, informant qu’il s’agit d’un

conteneur ou d’une partition Truecrypt. Ainsi une partition apparaitra vierge si le disque est analysé,

et un conteneur chiffré apparaitra comme un espace occupé sans pour autant révéler sa nature.

Page 69: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 68

La détection d’un conteneur ou d’une partition chiffrée n’est pas simple, il existe cependant des

outils spécialisés qui peuvent aider l’analyste dans ses recherches. Les outils TCHunt37 et EDD38

(Encryption Disk Detector) permettent de révéler sur un disque la présence plausible de conteneurs

chiffrés et/ou cachés.

Prenons l’exemple de TCHunt pour la détection de conteneurs chiffrés et/ou cachés. Il va effectuer

les tests suivants sur les fichiers du système :

La division par 512 de la taille du fichier doit être égale à zéro.

La taille minimum du fichier doit être supérieure à 19kb.

TCHunt effectue le test du χ² [khi-carré] sur les fichiers suspects.

Le fichier suspect ne doit posséder aucune en-tête permettant de déterminer son origine.

Le résultat de l’analyse est une liste de fichiers suspectée d’être des conteneurs chiffrés. Les auteurs

de TCHunt ont cependant affirmé que la survenance de faux positifs/négatifs était tout de même

possible. Une étude sur TCHunt a montré que 11% des fichiers d’un système d’exploitation

répondent à au moins 3 des 4 critères cités.

Nous avons créé un conteneur chiffré sur le disque dur d’une machine :

Figure 58 - Création d’un conteneur TrueCrypt

Les conteneurs chiffrés et masqués sont la base de la défense par déni plausible.

Le déni plausible est la possibilité pour une personne soupçonnée d’utiliser un logiciel de

chiffrement, de nier de manière tout à fait plausible l’existence d’un fichier chiffré créé par ce

logiciel.

Les conteneurs cachés résistent à l’analyse par éditeur hexadécimal, ils ne peuvent donc pas être

identifiés comme étant un espace de stockage chiffré, il est alors très simple de lui donner une

extension qui n’attirera pas la curiosité.

Il faut ensuite suivre les étapes de configuration du logiciel pour aboutir à la création du conteneur

caché.

Page 70: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 69

Voici l’en-tête du fichier ouvert avec un éditeur hexadécimal :

Figure 59 - Analyse de l’entête d’un conteneur TrueCrypt

Dans l’entête, il n’y a pas d’information du logiciel qui a produit ce fichier.

Utilisons TCHunt pour vérifier s’il détecte la présence du conteneur chiffré :

Figure 60 - Détection d’un conteneur TrueCrypt avec TCHunt

Ici TCHunt a détecté le fichier que nous venons de créer en lui donnant seulement comme critère de

recherche, un répertoire du système d’exploitation.

TCHunt est donc bien capable de détecter la présence possible d’un conteneur, comme expliqué

précédemment. Il est capable par analyse de la structure du fichier de déduire qu’il peut s’agir d’un

conteneur caché.

Page 71: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 70

L’utilitaire EDD permet quant à lui de déterminer si un disque contient une partition chiffrée, il

permet la détection d’outil tel que TrueCrypt ou encore Bitlocker.

Figure 61 - Détection d’une partition TrueCrypt avec EDD

La détection et l’acquisition de ce mode de camouflage sont essentielles pour un enquêteur. En effet,

une enquête ne peut réellement être menée à bien que si toutes les possibilités sont explorées. Le

recours à une partition ou conteneur caché se répand rapidement dans l’usage public et doit être

étudié avec attention lors d’une analyse forensic.

B – Récupération de mot de passe Lors d’enquête, la sécurité du système cible devra parfois être forcée. Il s’agit de récupérer des mots

de passe, clés de chiffrements, et autres permettant d’accéder au système dont les données sont

protégées.

L’acquisition d’images et de dump mémoire constituent la première étape de l’analyse, pour y

récupérer :

Soit directement les mots de passe en clair pour les applications non sécurisées,

Soit des hashs de mots de passe, souvent stockés dans les systèmes d’exploitation au

format MD5 ou SHA pour Linux, LM et NTLM pour Windows.

Nous utiliserons John The Ripper39 pour illustrer la récupération de mot de passe. John est l’outil de

cassage de mot de passe OpenSource le plus populaire. Il est utilisé par de nombreux professionnels

de la sécurité et auditeurs lors de tests d’intrusion.

Page 72: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 71

John The Ripper est capable de casser de nombreux formats de chiffrements de mots de passe tels

que MD5, BlowFish, AFS, les hashs LM et NTLM. D’autres extensions lui permettent de casser des

mots de passe stockés dans des bases MySQL et autres bases de données d’annuaire (LDAP).

Il existe trois modes d’utilisation de John :

Le mode simple : il s’agit de transformer le mot de passe sur la base du nom d’utilisateur ;

pour julien par exemple, il va tenter les mots de passe « jul1en, JuLiEn, julien123, etc… On

comprend qu’un mot de passe cassé par cette méthode est un mot de passe très faible.

Figure 62 - Attaque simple sur un mot de passe avec John The Ripper

L’attaque par dictionnaire : John utilise un fichier dictionnaire contenant de nombreux mots

susceptibles d’être le mot de passe testé. Il compare le mot de passe avec celui contenu dans

le dictionnaire pour le déterminer. Il est également capable d’utiliser une rainbow table

contenant des milliers de mots de passe et leurs hashs. John compare les Hashs pour

déterminer le mot de passe, lorsqu’un hash correspond le mot de passe est décrypté.

Figure 63 - Attaque par dictionnaire sur un mot de passe avec John The Ripper

L’attaque par force brute : elle consiste à tester une combinaison de caractères aléatoires

jusqu’à trouver le bon mot de passe. En fonction de la puissance de l’ordinateur et de la

complexité du mot de passe, l’attaque peut prendre beaucoup de temps.

Les techniques de récupération de mots de passe sont sensiblement identiques quel que soit le

logiciel employé. L’attaque simple par transformation ainsi que l’attaque par force brute sont

employées par ces logiciels.

Page 73: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 72

Si la récupération d’images ou de dumps mémoire n’est pas possible, à cause d’un mot de passe BIOS

protégeant le système, il est toutefois possible d’obtenir l’accès à la machine en cassant le mot de

passe par l’utilisation d’un système tiers contenant des logiciels du type CmosPwd40. Voici un

exemple d’utilisation :

Figure 64 - Reset du mot de passe BIOS avec CmosPWD

Dans ce cas, le mot de passe est simplement supprimé, et l’accès au système d’exploitation sur le

disque de la machine est accessible.

Le cassage de mot de passe n’est pas toujours simple. Dans de nombreux cas, la récupération du mot

de passe n’est pas possible, en raison de la complexité du mot, ou simplement de l’absence de traces

ou de stockage du mot de passe.

Cependant, les statistiques d’utilisation de mot de passe montrent que l’utilisateur a en général

recours à un mot de passe simple et facile à retenir. Ainsi le manque de rigueur de l’utilisateur peut

conduire à faciliter le travail de l’enquêteur en recouvrant un mot de passe faible.

Le tableau suivant représente le temps qu’il faut pour casser un mot de passe en fonction de sa

complexité :

Taille Minuscules Avec une Majuscule

Avec des caractères spéciaux

6 caractères 10 minutes 10 heures 18 jours

7 caractères 4 heures 23 jours 4 ans

8 caractères 4 jours 3 ans 463 ans

9 caractères 4 mois 178 ans 44 530 ans

Tableau 10 - Temps de cassage d’un mot de passe en fonction de sa complexité

Page 74: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 73

IV.5 – Obfuscation de code et packers A – Obfuscation L’obfuscation de code, ou rendre impénétrable un code, est une méthode de dissimulation du

langage. Il s’agit de rendre le code incompréhensible par un être humain, mais toujours compatible

avec le langage de l’ordinateur et compilable.

L’obfuscation est un moyen de protection du code source, en particulier pour une entreprise qui

souhaite protéger son investissement en développement. Les pirates utilisent également cette

technique pour dissimuler le fonctionnement de leur malware. Le but de l’obfuscation de code est

principalement de rendre plus difficile la rétro-ingénierie.

Il existe différentes méthodes pour obfusquer du code :

Méthode aléatoire : on remplace chaque identifiant ou variable du code, par une suite de

caractères aléatoires

Méthode Overload Induction : les identifiants du code sont remplacés par des caractères

aussi simples que possible a(), b(), etc…

Méthode d’invisibilité : les identifiants sont remplacés par des caractères accentués

généralement interdits dans le langage et inconnus pour les compilateurs

Exemple de code non obfusqué :

public obfucate void put(int key, Algorithm value) {

Integer I = new Integer(key);

super.put(I, (Object) value);

}

Obfusqué par la méthode aléatoire :

public obfucate void 5nbvj (int nfdjk, ke45v tbd6c) {

Integer cuzilb5cesqu5gf = new Integer(nfdjk);

super.vsd6qmv5fe9sqoi(nfdjk, (Object) tbd6c);

}

Obfusqué par la method Overload Induction :

public obfucate void a (int a, b c) {

Integer d = new Integer(a);

super.a(d, (Object) c);

}

Obfusqué par la méthode d’invisibilité :

public obfucate void #~a (int @b, f# a~) {

Integer #~b = new Integer(@b);

super.#~a(#~b,, (Object) a~);

}

Il existe encore plusieurs méthodes comme la suppression de commentaires, la suppression de style,

l’indentation ou encore le chiffrement des chaînes de caractères, etc…

Page 75: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 74

B – Packers Les packers ou compacteurs sont des logiciels permettant de compresser des fichiers exécutables,

certains peuvent aussi chiffrer le contenu.

Ils sont intéressants car le résultat de la compression est un fichier, qui une fois lancé, se

décompresse lui-même. Comme les packers agissent sur le code du binaire ou de l’exécutable, ils

vont nécessairement changer l’empreinte du fichier « packé », et laisser des traces dans l’en-tête.

Les antivirus sont sensibles à la modification du fichier par un packer s’il est connu. En effet l’analyse

d’un fichier avec un éditeur hexadécimal révèle qu’il contient des informations sur le packer utilisé.

Les créateurs de malware préfèreront faire le choix d’un packer en fonction de ses statistiques de

détection par les différents anti-virus du marché.

Figure 65 - Détection du packer UPX avec hexdump

Nous venons de voir et de décrire différentes méthodes anti-forensic.

Cette étude n’est pas exhaustive, mais présente un large panel de techniques utilisées au quotidien

par les particuliers, les entreprises et surtout les pirates.

Elles font aussi bien appel à des notions d’informatique, tant logicielle que matérielle, et ont toutes

une finalité : empêcher la découverte des actions menées sur le système.

Toutes ces techniques ont différentes parades, et il est évident que ceux qui les emploient auront

toujours une longueur d’avance sur ceux qui tentent de les contourner.

Nous verrons par la suite comment ces techniques peuvent être mises en œuvre dans des logiciels

malveillants appelés malwares.

Page 76: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 75

Chapitre V : Analyse de malware

Le développement des nouvelles technologies de l’information massivement utilisées aujourd’hui

dans nos sociétés a conduit à une nouvelle forme de menace : la cybercriminalité. Se présentant sous

diverses formes (arnaques, piratages, malwares…), ces menaces constituent un réel risque pour nos

données.

Les malwares (Trojan, Botnet, Vers…) sont depuis quelques années au cœur des problématiques de

sécurité et ne cessent de se développer tout en devenant de plus en plus complexes.

L’analyse de malware est une branche spécifique de l’investigation numérique, réalisée

généralement en laboratoire elle peut intervenir lors d’une réponse à incident dans le but d’identifier

les machines infectées.

Les chercheurs en sécurité réalisant ce type de tâche ont pour mission d’étudier le comportement de

ces logiciels malveillants afin de comprendre leur fonctionnement et identifier les personnes à

l’origine de ces logiciels.

Dans cette partie nous appliquerons les méthodes de forensic étudiées précédemment sur un cas

concret : le malware NJRAT/Bladabindi.

V.1 – Définition et types de malwares Un malware est un logiciel exécuté à l’insu de l’utilisateur, dans le but d’accomplir des actes

malveillants (vols de données, espionnage industriel, dénis de service…). Les malwares sont diffusés

de plusieurs manières : phishing, page web, téléchargement de contenus….

L’illustration ci-dessous présente de manière générale la diffusion d’un malware.

Figure 66 - Représentation de la diffusion de malware

Page 77: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 76

Voici la liste des principaux types de malwares :

Cheval de Troie : Un cheval de Troie ou Trojan est un programme malveillant effectuant des

actions malicieuses à l’insu de l’utilisateur. Il est dissimulé dans un programme sain afin de

faire croire à l’utilisateur qu’il s’agit d’un programme sans danger. C’est lors de l’exécution du

programme que se lancera le Trojan.

Ver : Un ver informatique est un programme malicieux capable de s’auto répliquer en

utilisant un réseau informatique comme Internet. En 2010, le ver Stuxnet a été découvert

dans une centrale Iranienne, il espionnait et reprogrammait les systèmes industriels.

RAT (Remote Access Tool) : Un RAT est un programme permettant la prise de contrôle totale,

à distance, d'un ordinateur depuis un autre ordinateur. Il est constitué de deux parties : le «

client » et le « serveur ». De nombreux Trojan sont définis comme étant des RAT car ils

permettent un contrôle total de la machine infectée. En 2012, le RAT DarkComet a ainsi été

utilisé à mauvais escient par l’armée syrienne dans le but de récupérer des informations sur

les insurgés.

Rootkit : Un Rootkit permet de dissimuler les traces d’un pirate sur un système compromis

tout en pérennisant un accès (non autorisé) à l’ordinateur infecté.

Backdoor : Une Backdoor (porte dérobée), est une fonctionnalité inconnue de l’utilisateur

qui permet de donner un accès secret au logiciel ou matériel.

Ransomware : Un ransomware ou rançongiciel est un logiciel malveillant qui bloque l’accès

au contenu de la machine en chiffrant les données du disque dur. Une somme d’argent est

demandée à l’utilisateur en échange de la clef de déchiffrement. Fin 2013, le ransomware

CryptoLocker avait contaminé près de 250 000 machines dont 5,8% se trouvait en France.

Exploit : Dans le domaine de la sécurité informatique, un exploit est une fonctionnalité non

connue des concepteurs qui permet d’exploiter une faille de sécurité dans un système

d’exploitation ou dans un logiciel. Un exploit permet généralement de prendre le contrôle

d’un système, une élévation de privilège, ou d’effectuer une attaque de déni de service. Le

site http://www.exploit-db.com/ recense tous les exploits découverts.

Rogue : Un rogue est un faux logiciel de sécurité (anti-virus, anti-spyware) qui fait croire à

l’utilisateur que son système est infecté, dans le but de lui faire acheter ce faux logiciel.

Spyware : Un spyware ou logiciel espion est un logiciel malveillant qui s'installe dans un

ordinateur dans le but de collecter et transférer des informations sur l'environnement dans

lequel il s'est installé, très souvent sans que l'utilisateur en ait connaissance.

Adware : Un adware est un logiciel publicitaire qui affiche de la publicité de manière

intempestive sur le système de l’utilisateur. Certains adwares espionnent les habitudes de

l’utilisateur pour lui envoyer de la publicité ciblée.

Page 78: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 77

Keyloggueur : Un keyloggueur ou enregistreur de frappes est un programme qui permet

d’enregistrer tout ce qui est tapé au clavier de l’ordinateur. Il est ensuite récupéré par la

personne à l’origine de l’installation du keyloggueur dans le but d’espionner l’utilisateur.

Certains malwares utilisent des techniques d’obfuscation dans le but de ne pas être détectés par les

anti-virus ou de rendre l’analyse difficile. Les concepteurs de malware utilisent généralement des

logiciels appelés « Packer » qui permettent de dissimuler le code contenus dans le binaire.

Plusieurs sites recensent des échantillons de malware dans le but de les mettre à disposition de la

communauté et lutter contre leur expansion.

Voici quelques sites permettant de télécharger des échantillons (samples) de malware :

http://malwaredb.malekal.com/ : Site regroupant plus de 35000 échantillons de malware.

http://openmalware.org/ : Site regroupant plus de 5 000 000 d’échantillons de malware.

http://virusshare.com/ : Site regroupant plus de 15 000 000 d’échantillons de malware.

V.2 – Création d’un environnement d’analyse La création d’un laboratoire d’analyse ou « bac à sable « (Sandbox) est essentielle dans l’étude

comportementale des malwares. Elle permet d’étudier le malware sans infecter le système hôte. Un

environnement d’analyse ne dispose d’aucune protection. Les logiciels anti-malwares ne doivent pas

être présents sur la machine infectée et le pare-feu doit être désactivé pour permettre au malware

de s’exécuter totalement. Ainsi l’analyste pourra étudier pleinement le comportement du malware.

Pour la mise en place de cet environnement nous utiliserons le logiciel de virtualisation VMWARE

largement répandu dans ce type d’analyse. VMWARE permet d’isoler complètement la machine

infectée, ainsi le système hôte ne risquera pas d’être contaminé.

Certains malwares évolués arrivent à détecter qu’ils sont dans un environnement virtualisé. Il

conviendra donc de désactiver à minima les outils tels que les « VMWARE tool » afin que le malware

ne détecte pas la supercherie.

Dans le cadre de cette analyse nous disposons du serveur de commande et de contrôle (C&C).

Page 79: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 78

Notre architecture sera donc composée des machines suivantes.

Un serveur de C&C

Une machine infectée

Une machine supplémentaire saine pour étudier la possible capacité d’autoréplication

Une machine linux avec une distribution spécialisée

Notre architecture se présentera de la manière suivante.

Figure 67 - Schéma de l’environnement d’analyse

Configuration de la machine infectée Vmware : Lan Segment

Windows 7 SP1 32 bit (pas d’antivirus, pare-feu désactivé)

Le binaire du malware

Un éditeur hexadécimal

Un outil de capture réseau (Wireshark)

Des outils d'analyse d'exécutable (PEid, Stud_PE)

Des outils de supervision (Process Monitor, Process explorer, Autoruns)

Détecteur de packer (RDG packer detector)

Outil d'analyse de la mémoire vive (Volatility)

Outil de récupération de fichier (Foremost, Photorec)

Un désassembleur (IDA PRO)

Un débogueur (OllyDBG)

Tableau 11 - Configuration de la machine infectée

Page 80: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 79

Configuration du serveur C&C Vmware : Lan Segment

Windows 7 SP1 32 bit

Le serveur de contrôle du malware

Un packer

Un outil de capture réseau (Wireshark)

Configuration de la machine saine Vmware : Lan Segment

Windows 7 SP1 32 bit (pas d’antivirus, pare-feu désactivé)

Un éditeur hexadécimal (Hexédit)

Un outil de capture réseau (Wireshark)

Des outils de supervision (Process Monitor, Process explorer, Autoruns)

Configuration de la machine Linux Vmware : NAT

Une distribution Linux (Sift, RemNux, KALI…)

Le binaire du malware

Tous les outils par défaut (File, Strings…)

Tableau 12 - Configuration des autres machines

Dans le domaine de la sécurité informatique il existe également des logiciels appelés Honeypot (pot

de miel) qui sont des environnements volontairement vulnérables dans le but d’attraper et d’étudier

les nouveaux malwares en circulation. Ce genre de dispositifs nécessite de grandes précautions pour

éviter tout risque d’infection.

Page 81: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 80

V.3 – Etude de cas : le malware NjRAT Le malware NjRAT est un malware de type RAT (Remote Access Tool), c’est-à-dire qu’il permet un

accès total à l’ordinateur de la victime. Ce type de malware est légion sur Internet, car il est mis à

disposition gratuitement et est facile à mettre en place.

Voici quelques exemples de malware de type RAT :

DarkComet

Blackshales

Poison Ivy

Backorifice

Le malware NjRAT a été détecté par plusieurs anti-virus sous le nom de MSIL/Bladabindi.

Fin 2013, le site http://malwaredb.malekal.com/ recensait encore des malwares ayant la même

signature que NjRAT.

Le tableau ci-dessous montre les derniers malwares NjRAT recensés ayant la signature

MSIL/Bladabindi.

Le malware NjRAT dispose des fonctionnalités suivantes :

Gestion des fichiers : Possibilité de téléchargement, d’envoi, de modification, de création de

fichiers sur le poste de la victime.

Exécution de fichier : Possibilité d’exécuter des fichiers (script, programme..) à distance sur le

poste de la victime.

Bureau à distance : Prise de main à distance du poste infecté.

Caméra à distance : Possibilité d’activer la caméra du poste infecté à distance.

Terminal distant : Ouverture d’une fenêtre d’invite de commande à distance.

Gestion des processus : Gestion des processus en cours sur le poste infecté.

Registre : Accès et modification de la base de registre.

Figure 68 - Malware NjRAT/Bladabindi recensé fin 2013

Page 82: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 81

Enregistreur de frappe : Cette fonctionnalité permet d’enregistrer tous les éléments tapés au

clavier.

Tchat instantané : Discussion en direct avec l’utilisateur du poste infecté

Obtention des mots de passe : Possibilité de récupérer tous les mots de passe stockés sur le

poste infecté.

Gestion du malware : Cette fonctionnalité permet de gérer le malware (mise à jour,

suppression, déconnexion, renommage, redémarrage).

L’interface propose également une vue des machines infectées, ainsi qu’un « Builder »

permettant de générer le malware.

La copie d’écran suivante montre l’interface d’administration du malware.

Figure 69 - Interface de commande et de contrôle du malware

Le schéma ci-dessous illustre quelques fonctionnalités du malware NjRAT.

Figure 70 - Fonctionnalité du malware NjRAT

Lors de cette analyse nous créerons nous-même le malware grâce au « Builder » intégré à l’interface

du serveur de commande et de contrôle.

Page 83: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 82

A –Création du programme malveillant Avant de contaminer notre machine, nous devons créer le malware qui sera exécuté sur la machine

distante. Nous utiliserons pour ce faire le « builder » intégré à l’interface de NjRAT.

Figure 71 - Emplacement du « Builder »

Après avoir cliqué sur « Builder », la fenêtre suivante apparait.

Figure 72 - Fenêtre de configuration du Malware

Nous pouvons ici configurer le malware de la manière suivante :

Host : il s’agit de l’adresse IP du serveur C&C. Ici 192.168.42.100

Port : C’est le port sur lequel communiquera le malware avec le C&C. Ici le port 1177.

VicTim Name : C’est le nom qui apparaitra sur le serveur C&C lorsque la machine sera

infectée. HacKed est le nom donné par défaut par NjRAT.

ExeName : C’est le nom donné au malware. Ici ESGI.exe, il apparaitra sous ce nom dans la

liste des processus de la machine infectée.

1 2

3

4

5

6 7

1

2

3

4

Page 84: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 83

Directory : C’est le répertoire dans lequel s’exécutera le malware. Ici le répertoire TEMP.

o USB spread permet de configurer le malware pour qu’il se répande via les clefs USB

o Icon permet d’attribuer une icône (par exemple l’icône d’une image jpg), pour

tromper l’utilisateur afin qu’il exécute le malware. Pour l’analyse nous avons ici mis

une icône avec un point d’exclamation.

o Protect Process [BSOD] : permet de provoquer un écran bleu de l’ordinateur si le

processus du malware est stoppé.

o Randomize Stub : permet de générer des caractères aléatoires lors de la création du

malware afin de tromper les logiciels de sécurité.

Certains pirates utilisent des techniques d’obfuscation pour leur malware afin de compliquer la tâche

des analystes et des détecteurs de virus. Pour cette analyse nous allons créer une version obfusquée

de notre malware. Nous utiliserons ici un Packer connu destiné à compresser le binaire : Themida.

Themida41 est un logiciel payant permettant de compresser des fichiers exécutables. Lors de

l’exécution du binaire il sera alors décompressé et placé en RAM.

L’utilitaire s’utilise ainsi :

Figure 73 - Utilisation du packer Themida

Le logiciel comprend de multiples fonctionnalités permettant par exemple de détecter si le binaire

est exécuté dans une machine virtuelle. Ces utilitaires servent également à diffuser plusieurs versions

du malware.

5

7 6

Page 85: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 84

Nous avons donc créé 3 versions de notre malware :

Une version classique

Une version « random » créée avec l’option intégrée

Une version packée avec l’utilitaire Themida.

Figure 74 - Représentation des 3 versions du malware

Le tableau ci-dessous nous montre les différentes empreintes générées.

Nom du malware Empreintes Taille du binaire MD5 : 77813d77dcf59ecbf79e78f99fc9d13e

SHA256 : 8ebfb17e894434521101fa51f810f5197d0410804a1a9188e00a1d363ead5e32

MD5 : f961fdfae33404843421b095853f8c89

SHA256 : 60a7f7518d1f1b616f69f246517088a6cfac38e0112d162ac671db76fb2f0520

MD5 : 22e73587fbb304edb0a2c7a245c100a2

SHA256 : 349b853b6a1789bd2ae3fd7218f3ef190ce3b84cac119eb5d7f74a711d58f646

ESGI.exe

ESGI_random.exe

ESGI_packed.exe

44,5 Ko

44,5 Ko

1,11 Mo

Tableau 13 - Empreinte des 3 malware générés

Les empreintes récupérées ici nous montrent 3 versions du malware. Par ailleurs la taille du fichier

est la même pour les 2 premiers fichiers mais est complètement différente pour le binaire packé.

Nous avons comparé ces empreintes avec les bases de données publiques de malwares sur les sites

suivants :

http://malwaredb.malekal.com/

http://openmalware.org/

Aucune correspondance n’a été trouvée, nous venons donc de créer une nouvelle version du

malware. Bien que sans danger pour les utilisateurs, puisque destiné à une étude en laboratoire,

nous publierons ce malware à la fin de l’analyse.

Page 86: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 85

B – Analyse statique L’analyse statique consiste à étudier le binaire du malware, sans l’exécuter, afin d’extraire un

maximum d’informations. Il est ici nécessaire de désassembler le malware afin de comprendre son

fonctionnement.

Dans le cas d’un binaire packé, il conviendra d’utiliser des techniques de reverse afin de comprendre

le code désassemblé.

Analyse de base – Utilitaire File

L’utilitaire « file » nous permet d’obtenir des informations sur les binaires.

r1tch1e@forensic:~# file ESGI.exe

ESGI.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for

MS Windows

r1tch1e@forensic:~# file ESGI_random.exe

ESGI_random.exe: PE32 executable (GUI) Intel 80386 Mono/.Net

assembly, for MS Windows

r1tch1e@forensic:~# file ESGI_packed.exe

ESGI_packed.exe: PE32 executable (GUI) Intel 80386, for MS Window

Figure 75 - Utilisation de l’outil file

L’utilitaire « file » permet de déterminer le type d’un fichier. Ici nous voyons qu’il s’agit d’un

exécutable Windows au format PE32. A noté : le binaire packé est le seul qui ne montre pas le

langage dans lequel est codé le malware (VB.NET).

Page 87: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 86

Analyse de base – Utilitaire Strings

L’utilitaire « strings » permet d’extraire les chaines de caractères contenues dans les binaires.

L’extrait ci-dessous permet d’identifier clairement une différence entre les 3 binaires.

ESGI.exe ESGI_random.exe ESGI_packed.exe=+LS6 X%(' ]",G

=+LS6 I%(' |6;8m

3&(1 3&(0 &):_T

p.E +%(' ZvGV

q.@ 7%(' g=5+pL

=--sP p.E )tq/

BSJB q.@ FFquC)

v2.0.50727 r.; gZ47}

#Strings s.6 /*bg_X

#GUID t.1 #iFf

#Blob u., 0a]%j3tl

4@ v.' $9qp

w.exe w." :PIy

mscorlib #. Y`e.

Microsoft.VisualBasic 3 r] r}?;o

System.Windows.Forms .: a#/K

System .2 ;&~d

System.Drawing .% 2SFO

avicap32.dll B%(' BrMQ=

user32.dll =--sP P$~a;

kernel32 BSJB 6red

user32 v2.0.50727 A1Eq

ntdll #Strings T^#h(:

psapi #GUID iy4

kernel32.dll #Blob /#Vy

w.My & dIiW

ApplicationBase w.exe a6TQ

Microsoft.VisualBasic.ApplicationServices mscorlib )>fB

.ctor Microsoft.VisualBasic jH)k

GeneratedCodeAttribute System.Windows.Forms ZtV#(

System.CodeDom.Compiler System S|_@

EditorBrowsableAttribute System.Drawing rbV)i

System.ComponentModel avicap32.dll N+j|

EditorBrowsableState user32.dll fKl~}

Computer kernel32 0(|Q

Microsoft.VisualBasic.Devices user32 7ry&_

DebuggerHiddenAttribute ntdll g?0$

System.Diagnostics psapi :Kde-

Object kernel32.dll t-^o

get_GetInstance <Module> YHoU

User MyApplication 8wy+/kf

.cctor w.My vFrg?

[…] […] […]

Tableau 14 - Extraction de la commande strings

Le fichier « ESGI.exe » laisse apparaitre tout le contenu du binaire. On identifie ici le langage utilisé

(Visual Basic .NET) grâce à la chaîne de caractères « BSJB » en en-tête, mais aussi les appels système

et les DLL chargées.

Le fichier « ESGI_random.exe » laisse apparaitre des éléments présents dans le premier binaire,

cependant nous remarquons une plus forte disparité de caractères aléatoires au début du fichier.

Ceci s’explique par la génération de caractères aléatoires lors de la création du binaire.

Le fichier « ESGI_packed.exe » ne laisse apparaitre qu’une suite de caractères illisibles.

Page 88: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 87

Analyse de base – Utilitaire Dependency Walker

Un outil intéressant pour l’analyse de malware est l’outil Dependency Walker42. Cet outil permet

d’afficher les dépendances entre un programme et les librairies (DLL).

Identifier les DLL auxquelles fait appel le malware, permet de déduire un grand nombre de ces

fonctionnalités.

Figure 76 - Analyse des dépendances DLL du malware non packé

Nous voyons ici que notre malware (ESGI.exe) fait appel au DLL suivantes :

KERNEL32.DLL : Elle est une des plus utilisées, elle permet plusieurs fonctionnalités telles que

l’accès et la manipulation de la mémoire, des fichiers mais aussi du matériel (hardware).

USER32.DLL : Elle contient tous les composants de l’interface utilisateur (bouton, barre de

défilement) ainsi que les composants qui permettent les actions utilisateurs.

OLEAUT32.DLL : Elle facilite la communication de données entre les applications logicielles.

Elle permet aux applications de manipuler des fichiers et des informations créées par

d'autres applications.

ADVAPI32.DLL : Elle permet d'accéder aux principaux composants avancés de Windows tels

que le gestionnaire de services et le registre.

SHLWAPI.DLL : Elle contient des fonctions pour des chemins d'UNC et d'URL, des entrées de

registre, et des configurations de couleur.

URLMON.DLL : module qui contient des fonctions employées par Microsoft OLE.

VERSION.DLL : module qui contient des fonctions (API) d'interface de programmation

d'applications employées pour les versions de Windows.

Typiquement, une DLL implémente une ou plusieurs fonctions et les exporte pour une utilisation par

un exécutable qui peut ensuite les importer et les utiliser.

Page 89: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 88

Si le malware est packé, il y aura beaucoup moins d’importations de DLL. Ci-dessous, nous voyons la

liste des DLL importées pour le binaire ESGI_packed.exe.

Figure 77 - Analyse des dépendances DLL du malware packé

Nous voyons clairement une différence entre le binaire original (7 DLL) et le binaire packé (2 DLL).

A titre de comparaison, même un programme basic de type « Hello World » fait appel à plus de DLL

que le binaire packé.

Comme la majorité des programmes, le malware (non packé) contient de nombreuses fonctions

importées. Cependant, seulement quelques fonctions sont intéressantes pour l’analyste.

Il est possible de reconnaitre des fonctionnalités d’un malware en analysant les DLL auxquelles il fait

appel.

Le tableau ci-dessous fait référence aux fonctions communément utilisées par les keyloggueurs.

Kernel32.dll User32.dllCreateFileW ShowWindow

FindFirstFileW RegisterClassExW

FindNextFileW RegisterHotKey

GetCurrentProcess SetWindowTextW

GetProcessHeap SetWindowsHookExW

OpenProcess

ReadFile

WriteFile

Tableau 15 - DLL utilisé par les keyloggueurs

Comme vu précédemment, notre malware possède la fonctionnalité de keyloggueur, en analysant les

fonctions utilisées par notre binaire, nous avons retrouvé toutes les fonctions du tableau ci-dessus.

Cette analyse nous permet d’affirmer que notre malware dispose de la fonctionnalité d’enregistreur

de frappes.

Page 90: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 89

Analyse sur le site Virus total

Le site https://www.virustotal.com/ permet d’effectuer des analyses en ligne. Nous avons soumis

nos malwares au site afin d’identifier le degré de détection par les anti-virus.

L’analyse du binaire « ESGI.exe » est disponible à cette adresse :

https://www.virustotal.com/en/file/8ebfb17e894434521101fa51f810f5197d0410804a1a9188e00a1

d363ead5e32/analysis/1388949363/

Le binaire ESGI.exe est détecté par 34 anti-virus sur 47. On retrouve dans l’analyse la signature du

malware (MSIL/bladabindi).

L’analyse du binaire « ESGI_random.exe » est disponible à cette adresse :

https://www.virustotal.com/en/file/60a7f7518d1f1b616f69f246517088a6cfac38e0112d162ac671db

76fb2f0520/analysis/1388949912/

Le binaire « ESGI_random » est détecté par 34 anti-virus sur 47. Il n’y a pas de grande différence avec

le premier binaire.

L’analyse du binaire « ESGI_packed.exe » est disponible à cette adresse :

https://www.virustotal.com/en/file/349b853b6a1789bd2ae3fd7218f3ef190ce3b84cac119eb5d7f74a

711d58f646/analysis/1388950258/

Page 91: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 90

Le binaire « ESGI_packed.exe » n’est détecté que par seulement 15 anti-virus sur 47. Le fait qu’il soit

packé dissimule sa signature auprès de nombreux anti-virus.

On remarque également que les signatures détectées par les 15 anti-virus ne font pas référence à la

signature de NjRAT (MSIL/Bladabindi), cependant un des antivirus (ESET) fait référence au packer

utilisé pour le malware en l’occurrence Themida. Cette information permet à l’analyste d’identifier le

packer utilisé et ainsi de pouvoir le dépacker.

Après cette première approche nous pouvons clairement identifier que le malware Bladabindi est

développé en Visual Basic .NET. Nous pouvons affirmer qu’il s’agit de ce langage après l’analyse du

premier (ESGI.exe) et du second binaire (ESGI_random.exe). Par ailleurs, l’analyse du 3ème binaire n’a

rien laissé apparaître concernant le langage utilisé. De plus ce type de configuration (Binaire packé,

faible détection antivirale, chaines de caractères illisibles) est le cas le plus fréquemment rencontré.

Nous allons donc nous attarder sur la détection du packer utilisé.

Détection de packer

Les concepteurs de malware usent de nombreux stratagèmes pour rendre la détection et l’analyse de

leur code très difficile. Une des techniques les plus utilisées pour dissimuler le contenu d’un binaire

est le recours à un packer. Pour mémoire, un packer est un logiciel servant généralement à protéger

le contenu de son programme en le compressant ou en l’encodant ou encore en le chiffrant. Ces

actions n’altèrent en aucun cas le fonctionnement du binaire. De nombreux packers sont disponibles

sur internet, certains gratuits et d’autres payants. Des plus connus nous pouvons citer UPX, Armadillo

ou encore Themida (celui que nous avons utilisé pour notre malware).

Le but de cette analyse est de retrouver le binaire original afin de rendre son contenu lisible pour

l’analyste ; cette méthode s’appelle l’unpack.

Certains malwares utilisent plusieurs couches de packers, il sera alors nécessaire d’unpacker le

binaire couche après couche.

Il existe des outils qui permettent d’identifier un packer.

Un des plus connus est le logiciel PEid43 qui permet d’identifier le packer utilisé pour un binaire.

Figure 78 - Détection de packer avec PEiD

Comme le montre la copie d’écran ci-dessus, PEid n’a pas trouvé le packer utilisé.

Page 92: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 91

Le logiciel stud_PE44 permet également de détecter le type de packer utilisé. Il propose de

nombreuses autres fonctionnalités qui permettent de parcourir ou encore de modifier le binaire

utilisé.

Figure 79 - Détection de packer avec Stud_PE

Stud_PE n’a, lui non plus, pas détecté le packer pour ce malware.

Un autre outil spécialisé dans la détection de packer est le logiciel RDG Packer Detector45.

Figure 80 - Détection de packer avec RDG Packer Detector

Le logiciel à cette fois-ci détecté le packer utilisé. On notera également que cette détection

correspond à la détection d’un anti-virus que nous avons vu lors de l’analyse du binaire sur le site

Virus Total.

Seul l’antivirus ESET NOD32 avait détecté que le binaire était packé avec Themida.

Page 93: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 92

Reverse Engineering

Le reverse engineering consiste à étudier un objet, dans notre cas un malware, afin d’en déterminer

son fonctionnement interne.

Lorsque le malware est désassemblé, son contenu est affiché en code assembleur qui est un langage

machine de bas niveau.

Le logiciel IDA46 est une référence en matière de désassemblage et est incontournable dans l’analyse

de malware.

Figure 81 - Interface d’IDA pro

Comme nous l’avons vu précédemment au cours de notre analyse, le malware est développé en

Visual Basic .NET. Il existe des outils capables de décompiler ces programmes, tel que le logiciel

CodeReflect47.

Afin de retrouver le code source de notre application, nous avons décompilé notre malware.

Figure 82 - Analyse du code du malware avec CodeReflect

Page 94: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 93

La copie d’écran ci-dessus nous permet d’obtenir des informations précises sur le malware.

Le nom donné à la victime (en base 64) : « SGFjS2Vk » => « HacKed »

Le répertoire du malware : « TEMP »

L’adresse IP du serveur C&C : « 192.168.42.100 »

Le port d’écoute du malware : « 1177 »

Une chaine de caractère non identifiée : « 8684ab1615a0f981e3e7f894c4e1ff95 »

Ces informations sont capitales lors d’une analyse car elles permettent de bloquer les fonctionnalités

du malware, par exemple en bloquant l’IP du serveur de commande et de contrôle.

Figure 83 - Extraction du code contenant certaines informations du malware

Page 95: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 94

C – Analyse dynamique L’analyse dynamique consiste à exécuter le malware dans un environnement contrôlé afin d’étudier

son fonctionnement en action. Il est ainsi possible de voir en direct les modifications système

effectuées par le malware. Dans cette partie nous analyserons donc les points suivants :

Les flux réseaux (ports…)

Les modifications système (registre)

La création de fichiers

Les données échangées

Le code du malware en exécution

Sa capacité d’autoréplication

Modification Système

Après avoir exécuté le malware nous analysons ses actions sur le poste infecté.

Le logiciel Process Explorer48 permet d’analyser les processus de la machine infectée. Nous obtenons

ici des informations sur l’emplacement du processus mais aussi sur sa clef de registre.

Figure 84 - Analyse du processus du malware avec ProcessExplorer

Lors de son exécution le malware NjRAT se place dans le répertoire

« C:\Users\R1tch1e\AppData\local\Temp ».

On voit également qu’une clef de registre permettant de lancer le malware automatiquement à

chaque démarrage a été créée :

« HKCU\Software\Microsoft\Windows\CurrentVersion\Run\8684ab1615a0f981e3e7f894c4e1ff95 ».

Le nom de la clef de registre correspond à la chaine de caractères non identifiée lors de la

décompilation du malware.

Page 96: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 95

Le logiciel Process Monitor49 nous permet de surveiller l’activité de la base de registre ainsi que les

fichiers liés à un processus.

Figure 85 - Analyse de l’activité du malware avec Process Monitor

Ici nous voyons les actions effectuées par le processus ESGI.exe, notre malware.

Ci-dessous la liste des fichiers utilisés par le binaire :

Fichiers relatifs au malware Description

C:\Users\R1TCH1E\AppData\Local\Temp\ESGI.exeIl s'agit de l'emplacement d'origine du

malware

C:\Users\R1TCH1E\AppData\Roaming\Microsoft\Windows\Start

Menu\Programs\Startup\8684ab1615a0f981e3e7f894c4e1ff95.exe

Ce fichier est une copie du malware avec un

nom différent. Il est ici placé dans le dossier

"startup", ce qui lui permet d'être persistant à

chaque redémarrage

C:\Users\R1TCH1E\AppData\Local\Temp\ESGI.exe.tmp

Il s'agit du fichier de keyloggeur toute les

touches du clavier tapées par l'utilisateur sont

enregistrées dans ce fichier

Tableau 16 - Fichier créer par le malware

Voici un extrait du fichier ESGI.exe.tmp :

Figure 86 - Extrait du fichier du keyloggueur

Page 97: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 96

Clef de registre créées par le malware Description

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\8684ab16

15a0f981e3e7f894c4e1ff95

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

Ces clefs sont utilisées pour le démarrage

automatique du malware

Tableau 17 - Clef de registre créer par le malware

Ci-dessous, le contenu de la clef de registre :

Figure 87 - Contenu de la clef de registre créé par le malware

DLL nécessaire au bon fonctionnement du

malware DescriptionC:\Windows\assembly\NativeImages_v2.0.50727_32\mscorlib\8c17

70d45c63cf5c462eeb945ef9aa5d\mscorlib.ni.dll

C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Config

uration\4b1350e31ff09cc583b34854816d8036\System.Configuration.

ni.dll

C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Windo

ws.Forms\fedf1ba58dced4f0b3f8c457648ceed9\System.Windows.Fo

rms.ni.dll

C:\Windows\assembly\NativeImages_v2.0.50727_32\System\5ba3b

f5367fc012300c6566f20cb7f54\System.ni.dll

C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll

C:\Windows\System32\dwmapi.dll

Ces DLL sont des librairies .NET elles

permettent le bon fonctionnement du

malware

Tableau 18 - DLL nécessaire au fonctionnement du malware

Page 98: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 97

Analyse Réseau

L’analyse réseau consiste à observer les connexions vers le serveur C&C ainsi que les ports ouverts et

les données qui transitent.

Après avoir exécuté notre malware, nous observons les ports de connexion grâce à l’outil netstat.

Figure 88 - Activité réseau du malware

Ici nous voyons qu’une connexion TCP est établie entre la machine infectée et le serveur C&C.

Nous voyons également que le serveur est connecté sur le port 1177, la machine infectée est, quant

à elle, connectée sur un port dynamique (49160).

Il est possible d’affiner la recherche afin d’identifier l’application qui est à l’origine de cette

connexion avec la commande : netstat –naob

Figure 89 - Activité réseau du malware

Ici nous voyons la connexion établie avec le serveur C&C, il s’agit du processus ESGI.exe.

Page 99: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 98

Avec l’analyseur de réseau Wireshark nous pouvons voir le flux de données échangées lors de

l’exécution du malware.

Figure 90 - Flux réseau échangé par le malware lors de son exécution

En utilisant la fonction « follow tcp Stream » nous pouvons voir les interactions avec le serveur.

Figure 91 - Récupération des informations échangées

Nous voyons ici qu’un flux de données est échangé, nous allons à présent lister et décoder les

éléments de cette capture.

Page 100: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 99

Chaine de caractère échangée (Base 64) Chaine décodée Description

SGFjS2VkX0ZBMDEwQkND HacKed_FA010BCC

Nom attribué à la machine

infectée pour la gestion dans

l'interface d'administration du

serveur C&C

INFECTED Nom de la machine infectée

R1TCH1E Nom de l'utilisateur courant

05/01/2014

Date de création du malware

(mais afficher comme étant la

date d'installation)

FRA Le pays d'infection ici France

Win.7 .dition Familiale Basique sp0 x86 Le système infecté

Yes

Ce "yes" n'est identifiable

qu'avec l'interface

d'administration. Il correspond

à la présence de webcam sur

l'ordinateur infecté

0.5.0E La version du malware

UHJvY2VzcyBFeHBsb3JlciAtIFN5c2ludGVybmFsczogd

3d3LnN5c2ludGVybmFscy5jb20gW0lORkVDVEVEXFI

xVENIMUVd

Process Explorer - Sysinternals:

www.sysinternals.com

[INFECTED\R1TCH1E]

Le malware communique ici la

fenêtre active

QXV0b3J1bnMgLSBTeXNpbnRlcm5hbHM6IHd3dy5ze

XNpbnRlcm5hbHMuY29t[endof]P[endof]P[endof]ac

t|'|'|QWRtaW5pc3RyYXRldXLCoDogQzpcV2luZG93c1

xTeXN0ZW0zMlxjbWQuZXhl[endof]act|'|'|

Autoruns - Sysinternals:

www.sysinternals.comzwh|vzwh}-

Administrateur :

C:\Windows\System32\cmd.exeProcess

Explorer - Sysinternals:

www.sysinternals.com

[INFECTED\R1TCH1E]

Le malware communique ici la

fenêtre active

Q2FwdHVyaW5nIGZyb20gQ29ubmV4aW9uIGF1IHLD

qXNlYXUgbG9jYWwgICAgW1dpcmVzaGFyayAxLjEwL

jUgIChTVk4gUmV2IDU0MjYyIGZyb20gL3RydW5rLTEu

MTApXQ==

Capturing from Connexion au réseau

local [Wireshark 1.10.5 (SVN Rev 54262

from /trunk-1.10)]

Le malware communique ici la

fenêtre active

QWRtaW5pc3RyYXRldXLCoDogQzpcV2luZG93c1xTeX

N0ZW0zMlxjbWQuZXhl

Administrateur :

C:\Windows\System32\cmd.exe

Le malware communique ici la

fenêtre active

N/A

Tableau 19 - Flux réseau du malware décodé

Le tableau ci-dessus nous montre les flux entre le malware et le serveur C&C. Il est à noter que le

malware communique également les fenêtres actives au premier plan.

Nous allons à présent effectuer une analyse réseau sur chaque fonctionnalité du malware.

Gestion des fichiers à distance.

Figure 92 - Flux réseau de la fonctionnalité de gestion des fichiers

Page 101: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 100

Sur la capture ci-dessus, nous pouvons identifier l’indicateur de la fonction utilisée :

o FM qui correspond à File Manager

o UP qui correspond à Upload

o Les chaines de caractère en base 64 correspondent à des chemins UNC

(QzpcVXNlcnNcUjFUQ0gxRVxEb2N1bWVudHNc => C:\Users\R1TCH1E\Documents\)

Ici le pirate a donc effectué une navigation dans le système de fichiers de la victime et a envoyé un

fichier sur son poste. En décodant la chaine de caractères à la suite de l’indicateur UP nous pouvons

retrouver le fichier envoyé.

(QzpcVXNlcnNcUjFUQ0gxRVxEZXNrdG9wXGZpcmVzaGVlcC0wLjEtMS54cGk= =>

C:\Users\R1TCH1E\Desktop\firesheep-0.1-1.xpi)

Il s’agit ici du fichier « firesheep-0.1-1.xpi ».

Exécution de fichier à distance

Figure 93 - Flux réseau de la fonctionnalité d’exécution de fichier

Ici, les différents éléments de la fonction à dissocier sont :

o RN, en début de trame, qui correspond à la fonction RUN.

o VBS, qui est le format de fichier utilisé lors de l’exécution.

o La chaine de caractères correspond à la commande envoyée depuis le C&C.

Bureau à distance

Figure 94 - Flux réseau de la fonctionnalité bureau à distance

Page 102: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 101

La trame du bureau à distance est presque exclusivement composée de flux en temps réel, de

données permettant la prise de main à distance, on distingue cependant quelques éléments :

o L’adresse IP du client et le port utilisé (192.168.42.10 :49159).

o SCPK, qui correspond à l’appel de la fonction Remote Desktop.

o Le PID du processus de connexion à distance.

Caméra à distance

Figure 95 - Flux réseau de la fonctionnalité caméra à distance

Ici encore pour la caméra à distance, les données transmises occupent presque entièrement la

trame, mais on repère tout de même les appels de fonctions :

o CAM correspond à l’appel de la fonction Remote Cam.

o Le matériel de la victime ici Laptop Integrated Webcam.

o La taille de l’affichage, 260x160 en pixels.

o Le port utilisé par le client pour envoyer le flux video.

Figure 96 - Capture d’écran de la caméra (côté C&C)

Page 103: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 102

Terminal distant

Figure 97 - Flux réseau de la fonctionnalité terminal distant

Compte tenu du fait que le terminal distant fait intervenir des commandes explicites et des

affichages en mode texte, il est possible de décomposer la trame en différents éléments :

o RSS qui correspond à la fonction Remote Shell.

o Des chaines de caractères en base 64 correspondantes à la commande et au résultat

de celle-ci.

Dans la capture de la trame ci-dessus, la chaine en rouge [aXBjb25maWc=] correspond à la

commande IPCONFIG exécutée depuis le serveur C&C.

La chaine ci-dessus correspond à une partie du résultat de la commande, à savoir l’adresse IP de la

machine [ICAgQWRyZXNzZSBJUHY0LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuOiAxOTIuMTY4LjQyLjEw]

-> [Adresse IPv4. . . . . . . . . . . . . .: 192.168.42.10] une fois décodée.

Gestion des processus

Figure 98 - Flux réseau de la fonctionnalité gestion des processus

Cette fois, la trame du gestionnaire de tâches est bien plus claire, aucun texte n’est encodé en base

64, et on remarque qu’il s’agit de la liste des processus de la machine infectée :

o Proc correspond à la fonction Process Manager du serveur C&C.

o Chaque processus a son numéro PID associé, et son chemin d’exécution

o Lorsqu’un processus est tué depuis le serveur C&C, le caractère « k » apparait, suivi

du PID du processus tué. Ici nous avons tué le processus 4004, qui correspond à

c:\Windows\system32\wuauclt.exe (Windows Update).

Page 104: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 103

Accès au registre

Figure 99 - Flux réseau de la fonctionnalité d’accès au registre

Ici encore, la trame est facile à comprendre :

o RG correspond à la fonction REGISTRY qui permet l’accès depuis le serveur

o Les entrées de registre Windows

Les entrées de registre ne sont pas encodées, on remarque que le chemin employé par le pirate est

lisible et nous permet d’identifier la clef de registre qu’il cherche à modifier.

Enregistreur de frappe

Le serveur possède une fonction d’enregistrement de frappe. Lorsque le client infecté saisit des

données au clavier, elles sont lisibles directement en streaming par l’utilisateur du serveur C&C :

Figure 100 - Extrait du fichier relatif au Keyloggueur

Ici, on remarque que l’utilisateur a saisi d’abord une phrase, puis l’a effacée pour en saisir une

nouvelle.

Page 105: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 104

Figure 101 - Flux réseau de la fonctionnalité Keyloggueur

o Kl au début de la trame, correspond à la fonction « keylogger »

Ici la chaine de caractères soulignée correspond à la phrase saisie en dernier au clavier que l’on peut

voir sur la capture ci-dessus. On comprend que la suite de caractères [bQmFja11] correspond à la

saisie de la touche [Back] du clavier de l’utilisateur.

Messagerie instantanée

Figure 102 - Flux réseau de la fonctionnalité messagerie instantanée

Ici la trame est très courte, nous allons la décomposer :

o CH correspond à la fonction CHAT (instant messaging).

o L’adresse IP du client.

o Le pseudo du pirate.

o Un caractère indiquant qu’il s’agit d’un message reçu, ici le point d’exclamation.

o Le texte envoyé depuis le serveur C&C.

o Un caractère indiquant qu’il s’agit d’un message envoyé vers le serveur C&C, ici un

arobase.

o Le texte envoyé au serveur.

Obtention des mots de passe

La capture des mots de passe fait intervenir des fichiers que nous avons référencés au « III.5 –

Acquisition et analyse de la mémoire non-volatile ».

Le malware va exploiter ces fichiers à la recherche des mots de passe enregistrés dans les fichiers de

base de données SQLite3.

Page 106: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 105

Lors de l’analyse réseau, nous observons différentes informations :

Figure 103 - Flux réseau de la fonctionnalité de récupération de mot de passe

o CAP représente l’appel de la fonction de capture des mots de passe.

o La suite de la trame correspond à la lecture des fichiers SQLite3 dans lesquels

sont stockés les mots de passe des différents navigateurs.

Dans la suite de la trame, nous pouvons voir la fin de la lecture des fichiers contenant les mots de

passe, ainsi que la trace de l’envoi des URL, noms d’utilisateurs et mots de passe au serveur C&C :

Figure 104 - Trame réseau de récupération des mots de passe

La toute dernière ligne est en réalité une concaténation de toutes les informations envoyées au

serveur C&C. Décoder la ligne entière nous donne le résultat suivant :

KiAqICogKiAqICogKiAqICogKiBhSFIwY0hNNkx5OTNkM2N1Wm1GalpXSnZiMnN1WTI5dEx3PT06YW5WemIzVndjRzlrUUdkdFlXbHNMbU52YlE9PTpRR3B6YnpzeE9UZzFLZz09IA==

Décodé en base64 :

* * * * * * * * * * aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tLw==:anVzb3VwcG9kQGdtYWlsLmNvbQ==:QGpzbzsxOTg1Kg==

Les étoiles cachent le mot de passe. Décoder à nouveau le reste de la ligne permet d’obtenir les

informations en clair :

https://www.facebook.com/W6WDv6Xxxx;0005*

L’adresse URL, ainsi que le mot de passe de l’utilisateur.

Le résultat obtenu est indexé dans une fenêtre affichée sur le serveur C&C.

Tous les sites pour lesquels l’utilisateur a enregistré son mot de passe sont affichés en clair. Cette

fonction est aussi fiable que l’utilisation des logiciels de récupération de mots de passe utilisables par

un utilisateur.

Page 107: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 106

Figure 105 - Copie d’écran de l’extraction des mots de passe

Réplication du malware

Nous n’avons pas détecté de réplication via le réseau, cependant lors de la connexion d’une clef USB

sur la machine infectée, le malware se copie automatiquement sur la clef.

Figure 106 - Réplication du malware sur une clef USB

Ici le malware se réplique sur la clef USB avec son nom « codé » et en tant que fichier caché pour ne

pas être détecté.

Page 108: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 107

Figure 107 - Propriété du malware répliqué

Il est à noter que le malware se réplique à chaque fois qu’on le supprime de la clef USB.

Lors de ce chapitre nous avons étudié quelques techniques utilisées pour l'analyse de malware.

Ainsi nous avons pu voir qu'il était possible de détecter un code malveillant à travers plusieurs

dispositifs d'analyse tels que l'étude de la base de registre ou du trafic réseau.

Cette branche de l'investigation numérique est très variée car de nombreux types de malwares

existent. Un ransomware ne fonctionnera pas de la même manière qu'un Trojan ou un ver et

nécessitera une investigation adaptée.

La cybercriminalité a ainsi pris un tournant ces dernières années à cause du développement de

nouvelles formes de malware, tels que les malwares polymorphes capables de se modifier selon des

paramètres ou des situations définies. Le travail des analystes consiste à répertorier et étudier ces

nouvelles souches pour réduire le risque de contamination et éradiquer les menaces.

Les techniques d'analyse et de traque ne cessent d'être réinventées pour lutter contre la

prolifération de ces malwares. Néanmoins, les cybercriminels gardent toujours une longueur

d'avance.

Page 109: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 108

Chapitre VI : Création d’un outil

Lors d'une analyse forensic et particulièrement dans des environnements en cours de production, il

est nécessaire de disposer des outils adéquats qui permettront de mener à bien l'investigation.

Ces outils sont quelques fois difficiles à transporter, et souvent payants. C'est pour cela que nous

avons créé un outil USB facilement transportable et regroupant des outils gratuits spécialisés.

L'objectif de cet outil est de concentrer des utilitaires de forensic dans une clef USB afin de pouvoir

les transporter et les utiliser facilement.

Il est séparé en deux parties distinctes :

Une partie « MultiBoot » qui permettra de booter sur un système tiers afin d'enquêter sur le

support numérique. Ce multiboot est composé de plusieurs systèmes spécialisés en

investigation numérique et permet à l'analyste de faire le choix du système le plus adapté à

une investigation.

Une partie « Live Forensic » qui permettra d'effectuer une analyse sur un système en cours

de fonctionnement. Les utilitaires spécialisés et gratuits qui composent notre outil

permettent à l’analyste de disposer d’un choix d’outils pour réaliser son enquête.

Il accompagnera l'enquêteur dans toutes les situations de terrain mais également lors de recherche

«post mortem» en laboratoire.

VI.1 – Le multiboot USB Lors d'une analyse forensic, l'enquêteur peut avoir besoin de démarrer sur un système tiers dans le

but de copier le contenu du support numérique ou de l'analyser sans pour autant effectuer des

modifications ni altérer son contenu.

Cette manipulation permettra de conserver l'intégrité du support et garantira ainsi son authenticité

devant la justice.

Le multiboot USB permet de proposer à l'enquêteur une suite de systèmes tiers spécialisés en

forensic basée aussi bien sur des systèmes Unix que Windows.

Figure 108 - Copie d’écran du multiboot USB

Page 110: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 109

Grace au logiciel Yumi50 nous avons sélectionné les systèmes suivants :

DEFT Linux 8 : Digital Evidence & Forensic Toolkit, est une distribution live dédiée au Forensic

et à l’investigation numérique. Basée sur Ubuntu, elle regroupe un grand nombre d’outil

d’acquisition, de recouvrement de données, analyse et de réponse à incident.

CAINE : Computer Aided INvestigative Environment est une autre distribution dédiée au

Forensic, basée également sur Ubuntu. La majeure partie des outils de Caine proposent une

interface graphique conviviale et les suites logicielles contiennent de nombreux scripts de

traitement automatique permettant une prise en main rapide et la production de rapports.

SIFT : SANS Sift est une distribution distribuée par le SANS (Organisation ayant pour but de

mutualiser les connaissances en sécurité informatique), disponible en Appliance ou en DVD.

Elle propose des outils d’acquisition et d’analyse permettant l’analyse forensic de nombreux

systèmes, la production de timeline et de rapports détaillés.

Santoku Linux : Santoku est une distribution linux en live CD dédiée au forensic sur

smartphone, et l’analyse de malware. Elle propose des outils d’analyse, et de test de sécurité

sous forme de script exécutables sur les plateformes mobiles.

REMnux : REMnux est une distribution basée sur Ubuntu utilisé pour l’analyse de malware et

la retro-ingénierie de code malicieux. La plupart des outils sont dédiées à l’analyse

d’exécutables pour Windows, basés sur les navigateurs Internet, et JavaScript. Cette

distribution propose aussi l’analyse de fichier PDF et d’autres formats de documents.

Ophcrack : Ophcrack est une distribution en live CD dédiée à l’exploitation de la base SAM de

Windows, permettant de réinitialiser un compte Windows, changer le mot de passe, le

mettre à zéro, ou encore de donner des droits super-utilisateur a un compte de la base.

DBAN : C’est un live CD permettant l’effacement sécurisé de disques durs proposant

différentes méthodes.

Afin de compléter ce dispositif nous avons développé une boîte à outils pour des systèmes en cours

de fonctionnement et qui permet la recherche d'informations.

Page 111: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 110

VI.2 – RocFor : l’utilitaire « Live » RocFor est un utilitaire développé en VB.NET et destiné à une investigation numérique sur des

systèmes Windows. Il est conçu pour 'assister l'enquêteur lors de recherches d'informations sur des

systèmes en cours de fonctionnement. En effet, des éléments tels que la mémoire vive ou encore les

processus actifs ne peuvent être analysés que lorsque le système est allumé.

RocFor regroupe plusieurs outils disponibles gratuitement en un seul. Ces outils sont ainsi classés

sous différentes catégories facilement identifiables :

Acquisition : Les outils regroupés dans cette catégorie permettent à l’analyste d’effectuer

une copie fidèle d’un support numérique tel que le disque dur ou encore la mémoire RAM. Ils

permettent également la copie de fichiers protégés par le système.

Analyse : Les outils regroupés dans cette catégorie permettent à l’enquêteur d’analyser le

contenu d’un support numérique, le système de fichier, les processus actifs, les logs et

évènements du système.

Recouvrement : Les outils regroupés dans cette catégorie permettent à l’enquêteur de

récupérer des fichiers effacés ainsi que des mots de passe ou encore des données cachées.

Réseau : Les outils de cette catégorie permettent d’analyser les flux réseau d’une machine.

Malware : Cette catégorie regroupe des outils destinés à l’analyse de malware. Ils

permettent d’identifier le comportement d’un binaire et d’analyser son contenu.

Scripts : Cette catégorie regroupe différents scripts et les interpréteurs nécessaires à leur

fonctionnement (python, ruby, perl). De nouveaux scripts peuvent également être importés.

Utilitaires : Cette catégorie regroupe des outils pouvant servir à l’élaboration du rapport final

mais également dans la recherche de preuves.

Page 112: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 111

Figure 109 - Copie d’écran de l’utilitaire RocFor

Nous avons conçu RocFor de sorte qu'il soit évolutif. Chaque utilisateur pourra ajouter ses propres

outils grâce à la fonction « Add Tools ». L'ajout de nouvelles catégories est également possible.

Page 113: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 112

Conclusion

L'investigation numérique est un domaine relativement récent de l'informatique qui tend à se

développer.

Avec l’évolution des nouvelles technologies, les pirates ne cessent de rivaliser d'ingéniosité pour

dérober nos données numériques.

A travers ce document nous avons souhaité élaborer un guide pour l'analyste en apportant une

méthodologie d'investigation qui lui permettra de suivre un schéma directeur lors d'une enquête.

Le chapitre « analyse de malware » vise, quant à lui, à aiguiller l'analyste dans sa compréhension du

fonctionnement d'un logiciel malveillant.

Comme nous avons pu le voir, la législation française encadre la collecte de données dans un

environnement numérique international mais définit aussi les prérogatives accordées aux cybers

gendarmes.

Cependant les plateformes et les systèmes ne cessent de se diversifier, notamment pour la mobilité

avec des systèmes tels qu'Android ou encore iOS, nécessitant une adaptation de la méthodologie

même si les fondements restent identiques.

Il y a de fortes chances que dans les années à venir l'investigation numérique s'étende à d'autres

matériels que nos ordinateurs et nos smartphones.

Le développement des systèmes embarqués, l'arrivée des robots dans nos domiciles mais aussi la

bio-informatique sont autant de domaines qui intéressent les cybercriminels de demain.

Ainsi, dans un futur proche, il pourra être possible de pirater une voiture pour en prendre le contrôle,

de s'introduire dans une maison par le biais d'un robot compromis, ou encore d'arrêter les

battements d'un cœur artificiel à distance ou de contrôler un membre robotisé.

C'est dans ces environnements vulnérables que l'investigation numérique peut contribuer à la

protection de nos données mais également de l’individu.

Page 114: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 113

Annexes

A – Options Volatility Usage: Volatility - A memory forensics analysis platform.

Options:

-h, --help list all available options and their default values.

Default values may be set in the configuration file

(/etc/volatilityrc)

--conf-file=.volatilityrc

User based configuration file

-d, --debug Debug volatility

--plugins=PLUGINS Additional plugin directories to use (semi-colon

separated)

--info Print information about all registered objects

--cache-directory=C:\Users\R1TCH1E/.cache\volatility

Directory where cache files are stored

--cache Use caching

--tz=TZ Sets the timezone for displaying timestamps

-f FILENAME, --filename=FILENAME

Filename to use when opening an image

--profile=WinXPSP2x86

Name of the profile to load

-l LOCATION, --location=LOCATION

A URN location from which to load an address space

-w, --write Enable write support

--dtb=DTB DTB Address

--output=text Output in this format (format support is module

specific)

--output-file=OUTPUT_FILE

write output in this file

-v, --verbose Verbose information

--shift=SHIFT Mac KASLR shift address

-g KDBG, --kdbg=KDBG Specify a specific KDBG virtual address

-k KPCR, --kpcr=KPCR Specify a specific KPCR address

Supported Plugin Commands:

apihooks Detect API hooks in process and kernel memory

atoms Print session and window station atom tables

atomscan Pool scanner for _RTL_ATOM_TABLE

bioskbd Reads the keyboard buffer from Real Mode memory

callbacks Print system-wide notification routines

clipboard Extract the contents of the windows clipboard

cmdscan Extract command history by scanning for _COMMAND_HISTORY

connections Print list of open connections [Windows XP and 2003 Only]

connscan Scan Physical memory for _TCPT_OBJECT objects (tcp connections)

consoles Extract command history by scanning for _CONSOLE_INFORMATION

crashinfo Dump crash-dump information

deskscan Poolscaner for tagDESKTOP (desktops)

devicetree Show device tree

dlldump Dump DLLs from a process address space

dlllist Print list of loaded dlls for each process

driverirp Driver IRP hook detection

driverscan Scan for driver objects _DRIVER_OBJECT

dumpcerts Dump RSA private and public SSL keys

dumpfiles Extract memory mapped and cached files

envars Display process environment variables

eventhooks Print details on windows event hooks

evtlogs Extract Windows Event Logs (XP/2003 only)

filescan Scan Physical memory for _FILE_OBJECT pool allocations

gahti Dump the USER handle type information

gditimers Print installed GDI timers and callbacks

gdt Display Global Descriptor Table

getservicesids Get the names of services in the Registry and return Calculated

SID

Page 115: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 114

getsids Print the SIDs owning each process

handles Print list of open handles for each process

hashdump Dumps passwords hashes (LM/NTLM) from memory

hibinfo Dump hibernation file information

hivedump Prints out a hive

hivelist Print list of registry hives.

hivescan Scan Physical memory for _CMHIVE objects (registry hives)

hpakextract Extract physical memory from an HPAK file

hpakinfo Info on an HPAK file

idt Display Interrupt Descriptor Table

iehistory Reconstruct Internet Explorer cache / history

imagecopy Copies a physical address space out as a raw DD image

imageinfo Identify information for the image

impscan Scan for calls to imported functions

kdbgscan Search for and dump potential KDBG values

kpcrscan Search for and dump potential KPCR values

ldrmodules Detect unlinked DLLs

lsadump Dump (decrypted) LSA secrets from the registry

machoinfo Dump Mach-O file format information

malfind Find hidden and injected code

mbrparser Scans for and parses potential Master Boot Records (MBRs)

memdump Dump the addressable memory for a process

memmap Print the memory map

messagehooks List desktop and thread window message hooks

mftparser Scans for and parses potential MFT entries

moddump Dump a kernel driver to an executable file sample

modscan Scan Physical memory for _LDR_DATA_TABLE_ENTRY objects

modules Print list of loaded modules

mutantscan Scan for mutant objects _KMUTANT

patcher Patches memory based on page scans

printkey Print a registry key, and its subkeys and values

privs Display process privileges

procexedump Dump a process to an executable file sample

procmemdump Dump a process to an executable memory sample

pslist Print all running processes by following the EPROCESS lists

psscan Scan Physical memory for _EPROCESS pool allocations

pstree Print process list as a tree

psxview Find hidden processes with various process listings

raw2dmp Converts a physical memory sample to a windbg crash dump

screenshot Save a pseudo-screenshot based on GDI windows

sessions List details on _MM_SESSION_SPACE (user logon sessions)

shellbags Prints ShellBags info

shimcache Parses the Application Compatibility Shim Cache registry key

sockets Print list of open sockets

sockscan Scan Physical memory for _ADDRESS_OBJECT objects (tcp sockets)

ssdt Display SSDT entries

strings Match physical offsets to virtual addresses (may take a while,

VERY verbose)

svcscan Scan for Windows services

symlinkscan Scan for symbolic link objects

thrdscan Scan physical memory for _ETHREAD objects

threads Investigate _ETHREAD and _KTHREADs

timeliner Creates a timeline from various artifacts in memory

timers Print kernel timers and associated module DPCs

unloadedmodules Print list of unloaded modules

userassist Print userassist registry keys and information

userhandles Dump the USER handle tables

vaddump Dumps out the vad sections to a file

vadinfo Dump the VAD info

vadtree Walk the VAD tree and display in tree format

vadwalk Walk the VAD tree

vboxinfo Dump virtualbox information

vmwareinfo Dump VMware VMSS/VMSN information

volshell Shell in the memory image

windows Print Desktop Windows (verbose details)

wintree Print Z-Order Desktop Windows Tree

wndscan Pool scanner for tagWINDOWSTATION (window stations)

yarascan Scan process or kernel memory with Yara signatures

Page 116: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 115

B – Script Hash.py

#!/usr/bin/python

import sys

import getopt

import hashlib

def usage():

print '**********************************************************************'

print '* Calculate Hash | by R1tch1e (Thomas ROCCIA) *'

print '* *'

print '* Usage : hash.py [FILEPATH] [OPTIONS] *'

print '* -h or --help : Display the help *'

print '* -f or --filepath : Put your filename *'

print '* -m or --md5 : Calculate a MD5 hash *'

print '* -s or --sha256 : Calculate a SHA256 hash *'

print '* -x or --sha512 : Calculate a SHA512 hash *'

print '* -c or --compare : Compare two hashfile *'

print '* *'

print '* Exemple : r1tch1e@forensic:~$ python hash.py -f /home/myfile -md5 *'

print '* Exemple : r1tch1e@forensic:~$ python hash.py -c file1 file2 -md5 *'

print '**********************************************************************'

def hashmd5(filename):

fichier = open(filename, 'r')

c = hashlib.md5()

while 1:

try:

d = fichier.next()

c.update(d)

except: break

fichier.close()

return c.hexdigest()

def hashsha2(filename):

fichier = open(filename, 'r')

c = hashlib.sha256()

while 1:

try:

d = fichier.next()

c.update(d)

except: break

fichier.close()

return c.hexdigest()

def hashsha5(filename):

fichier = open(filename, 'r')

c = hashlib.sha512()

while 1:

try:

d = fichier.next()

c.update(d)

except: break

fichier.close()

return c.hexdigest()

def compare(file1, file2):

if sys.argv[4] == «-m» or sys.argv[4] == «--md5»:

filename = file1

hash1 = hashmd5(filename)

Page 117: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 116

filename = file2

hash2 = hashmd5(filename)

elif sys.argv[4] == «-s» or sys.argv[4] == «--sha256»:

filename = file1

hash1 = hashsha2(filename)

filename = file2

hash2 = hashsha2(filename)

elif sys.argv[4] == «-x» or sys.argv[4] == «--sha512»:

filename = file1

hash1 = hashsha5(filename)

filename = file2

hash2 = hashsha5(filename)

else:

usage()

sys.exit(2)

if hash1 == hash2:

print «This is the same file ! :)»

print hash1, file1

print hash2, file2

else:

print «This is not the same file ! :(«

print hash1, file1

print hash2, file2

try:

opts, args = getopt.getopt(sys.argv[1:], «hf:msxc», [«help», «filepath»,

«md5», «sha256», «sha512»])

except getopt.GetoptError as err:

print(err)

usage()

sys.exit(2)

output = None

verbose = True

for o, a in opts:

if o in («-h», «--help»):

usage()

sys.exit()

elif o in («-f», «--filepath»):

output = a

filename = a

elif o in («-m», «--md5»):

print 'The MD5 hash is', hashmd5(filename)

elif o in («-s», «--sha256»):

print 'The SHA256 hash is', hashsha2(filename)

elif o in («-x», «--sha512»):

print 'The SHA512 hash is', hashsha5(filename)

elif o in («-c»):

file1 = sys.argv[2]

file2 = sys.argv[3]

compare(file1, file2)

Page 118: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 117

C – Script ForPower.ps1 <#

Forensic script

Author: Thomas ROCCIA - [email protected]

#>

Write-Host ************************************************************

Write-Host *Forensic script for windows V1 by Thomas ROCCIA [@R1tch1e_]*

Write-Host ************************************************************

# WARNING for execute this script on system you can enter this command line "set-

executionpolicy remotesigned" in admin powershell first

# Global Variable

[String]$date = $((get-date).tostring(‘dd-MM-yyyy’))

$Fulldate = get-date

$var =

"================================================================================"

$PCname = (Get-ItemProperty -path

registry::"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerN

ame").ComputerName

# Creating the target directory & files

md D:\Forensic_Report_$date

echo "Generated on $Fulldate" > D:\Forensic_Report_$date\Machine_Info.txt

echo "Generated on $Fulldate" > D:\Forensic_Report_$date\Account_Info.txt

echo "Generated on $Fulldate" > D:\Forensic_Report_$date\Network_Info.txt

# Obtain Information System

$title = "...............................System

Information..............................."

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

echo $title >> D:\Forensic_Report_$date\Machine_Info.txt

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

Get-WmiObject -Class Win32_ComputerSystem >>

D:\Forensic_Report_$date\Machine_Info.txt

# Obtain Bios Information

$title2 = "...............................BIOS

Information................................."

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

echo $title2 >> D:\Forensic_Report_$date\Machine_Info.txt

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

Get-WmiObject -Class Win32_BIOS -ComputerName . >>

D:\Forensic_Report_$date\Machine_Info.txt

# Obtain Installation Date & OS version

$title3 = "........................Date Installation & OS

version.........................."

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

echo $title3 >> D:\Forensic_Report_$date\Machine_Info.txt

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

# Fonction Get OS Information

Function Get-OSInfo

{

param ([String]$ComputerName = '.')

$infos = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName

$infos | Select-Object -property @{Name='ComputerName'; Expression = {$_.Csname}},

@{Name='OS'; Expression = {$_.caption}},

Page 119: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 118

@{Name='ServicePack'; Expression =

{$_.csdversion}},

@{Name='InstallationDate'; Expression

={[system.Management.ManagementDateTimeConverter]::ToDateTime($_.Installdate)}}

}

Get-OSInfo | Format-Table -AutoSize >> D:\Forensic_Report_$date\Machine_Info.txt

# Obtain last boot time

$title4 = "................................Last Boot

Time.................................."

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

echo $title4 >> D:\Forensic_Report_$date\Machine_Info.txt

echo $var >> D:\Forensic_Report_$date\Machine_Info.txt

#Return the last reboot time of a computer

Function Get-LastBootUpTime

{

param ([string]$computername=$env:computername)

$computername = $computername.toupper()

Get-WmiObject -ComputerName $computername win32_operatingsystem| select csname,

@{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

}

Get-LastBootUpTime $PCname | Format-Table -AutoSize >>

D:\Forensic_Report_$date\Machine_Info.txt

###########################################################################

# Obtain Account information

$title5 = ".............................Account

Information................................"

echo $var >> D:\Forensic_Report_$date\Account_Info.txt

echo $title5 >> D:\Forensic_Report_$date\Account_Info.txt

echo $var >> D:\Forensic_Report_$date\Account_Info.txt

$strComputer = "."

$colItems = get-wmiobject -class "Win32_UserAccount" -namespace "root\CIMV2" -

filter "LocalAccount = True" -computername $strComputer

$envuser = $env:username

echo "Curent user is : $envuser" >> D:\Forensic_Report_$date\Account_Info.txt

echo $var >> D:\Forensic_Report_$date\Account_Info.txt

foreach ($objItem in $colItems) {

$account = $objItem.AccountType

echo "Account Type: $account" >> D:\Forensic_Report_$date\Account_Info.txt

$caption = $objItem.Caption

echo "Caption: $caption" >> D:\Forensic_Report_$date\Account_Info.txt

$desc = $objItem.Description

echo "Description: $desc" >> D:\Forensic_Report_$date\Account_Info.txt

$disa = $objItem.Disabled

echo "Disabled: $disa" >> D:\Forensic_Report_$date\Account_Info.txt

$dom = $objItem.Domain

echo "Domain: $dom" >> D:\Forensic_Report_$date\Account_Info.txt

$fname = $objItem.FullName

echo "Full Name: $fname" >> D:\Forensic_Report_$date\Account_Info.txt

$Idate = $objItem.InstallDate

echo "Installation Date: $Idate" >>

D:\Forensic_Report_$date\Account_Info.txt

$Lacc = $objItem.LocalAccount

echo "Local Account: $Lacc" >> D:\Forensic_Report_$date\Account_Info.txt

$lock = $objItem.Lockout

echo "Lockout: $lock" >> D:\Forensic_Report_$date\Account_Info.txt

Page 120: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 119

$nname = $objItem.Name

echo "Name: $nname" >> D:\Forensic_Report_$date\Account_Info.txt

$passch = $objItem.PasswordChangeable

echo "Password Changeable: $passch" >>

D:\Forensic_Report_$date\Account_Info.txt

$passex = $objItem.PasswordExpires

echo "Password Expires: $passex" >>

D:\Forensic_Report_$date\Account_Info.txt

$passreq = $objItem.PasswordRequired

echo "Password Required: $passreq" >>

D:\Forensic_Report_$date\Account_Info.txt

$sid = $objItem.SID

echo "SID: $sid" >> D:\Forensic_Report_$date\Account_Info.txt

$sidt = $objItem.SIDType

echo "SID Type: $sidt" >> D:\Forensic_Report_$date\Account_Info.txt

$status = $objItem.Status

echo "Status: $status" >> D:\Forensic_Report_$date\Account_Info.txt

echo $var >> D:\Forensic_Report_$date\Account_Info.txt

}

###########################################################################

#Obtain network configuration and share

$title6 = ".............................Network

Information................................"

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

echo $title6 >> D:\Forensic_Report_$date\Network_Info.txt

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

ipconfig /all >> D:\Forensic_Report_$date\Network_Info.txt

$title8 = "............................Share directory

Local..............................."

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

echo $title8 >> D:\Forensic_Report_$date\Network_Info.txt

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

net view \\127.0.0.1 >> D:\Forensic_Report_$date\Network_Info.txt

$title7 = "...........................Share directory

distant.............................."

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

echo $title7 >> D:\Forensic_Report_$date\Network_Info.txt

echo $var >> D:\Forensic_Report_$date\Network_Info.txt

net view >> D:\Forensic_Report_$date\Network_Info.txt

###########################################################################

#Obtain process id

$title8 = "..............................Process and

path.................................."

echo $var >> D:\Forensic_Report_$date\Process_Info.txt

echo $title8 >> D:\Forensic_Report_$date\Process_Info.txt

echo $var >> D:\Forensic_Report_$date\Process_Info.txt

Get-WmiObject win32_process | select

processname,@{NAME='CreationDate';EXPRESSION={$_.ConvertToDateTime($_.CreationDate)}}

,ProcessId,CommandLine |sort CreationDate -desc | format-table –auto -wrap >>

D:\Forensic_Report_$date\Process_Info.txt

###########################################################################

#Obtain Antivirus Information

function Get-LHSAntiVirusProduct {

[CmdletBinding()]

[OutputType('PSobject')]

param (

Page 121: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 120

[parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]

[Alias('CN')]

[String[]]$ComputerName=$env:computername

)

BEGIN {

Set-StrictMode -Version Latest

${CmdletName} = $Pscmdlet.MyInvocation.MyCommand.Name

Write-Verbose -Message "${CmdletName}: Starting Begin Block" >>

D:\Forensic_Report_$date\AV_Info.txt

Write-Debug -Message "${CmdletName}: Starting Begin Block"

} # end BEGIN

PROCESS {

Write-Verbose "${CmdletName}: Starting Process Block" >>

D:\Forensic_Report_$date\AV_Info.txt

Write-Debug ("PROCESS:`n{0}" -f ($PSBoundParameters | Out-String))

ForEach ($Computer in $computerName) {

Write-Debug "`$Computer contains $Computer"

IF (Test-Connection -ComputerName $Computer -count 2 -quiet) {

$OSVersion = (Get-WmiObject win32_operatingsystem -computername

$Computer).version

$OS = $OSVersion.split(".")

Write-Debug "`$OS[0]: $($OS[0])"

IF ($OS[0] -eq "5") {

Write-Verbose "Windows 2000, 2003, XP" >>

D:\Forensic_Report_$date\AV_Info.txt

Try {

$AntiVirusProduct = Get-WmiObject -Namespace root\SecurityCenter

-Class AntiVirusProduct -ComputerName $Computer -ErrorAction Stop

} Catch {

Write-Error "$Computer : WMI Error"

Write-Error $_

Continue

}

# Output PSCustom Object

$AV = $Null

$AV = New-Object PSObject -Property @{

ComputerName = $AntiVirusProduct.__Server;

Name = $AntiVirusProduct.displayName;

versionNumber = $AntiVirusProduct.versionNumber;

onAccessScanningEnabled =

$AntiVirusProduct.onAccessScanningEnabled;

productUptoDate = $AntiVirusProduct.productUptoDate;

} | Select-Object

ComputerName,Name,versionNumber,onAccessScanningEnabled,productUptoDate

$AV

} ElseIF ($OS[0] -eq "6") {

Write-Verbose "Windows Vista, 7, 2008, 2008R2" >>

D:\Forensic_Report_$date\AV_Info.txt

Try {

$AntiVirusProduct = Get-WmiObject -Namespace root\SecurityCenter2

-Class AntiVirusProduct -ComputerName $Computer -ErrorAction Stop

} Catch {

Page 122: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 121

Write-Error "$Computer : WMI Error"

Write-Error $_

}

# Switch to determine the status of antivirus definitions and real-

time protection.

# The values in this switch-statement are retrieved from the

following website: http://community.kaseya.com/resources/m/knowexch/1020.aspx

switch ($AntiVirusProduct.productState) {

"262144" {$defstatus = "Up to date" ;$rtstatus = "Disabled"}

"262160" {$defstatus = "Out of date" ;$rtstatus = "Disabled"}

"266240" {$defstatus = "Up to date" ;$rtstatus = "Enabled"}

"266256" {$defstatus = "Out of date" ;$rtstatus = "Enabled"}

"393216" {$defstatus = "Up to date" ;$rtstatus = "Disabled"}

"393232" {$defstatus = "Out of date" ;$rtstatus = "Disabled"}

"393488" {$defstatus = "Out of date" ;$rtstatus = "Disabled"}

"397312" {$defstatus = "Up to date" ;$rtstatus = "Enabled"}

"397328" {$defstatus = "Out of date" ;$rtstatus = "Enabled"}

"397584" {$defstatus = "Out of date" ;$rtstatus = "Enabled"}

default {$defstatus = "Unknown" ;$rtstatus = "Unknown"}

}

# Output PSCustom Object

$AV = $Null

$AV = New-Object -TypeName PSobject -Property @{

ComputerName = $AntiVirusProduct.__Server;

Name = $AntiVirusProduct.displayName;

ProductExecutable = $AntiVirusProduct.pathToSignedProductExe;

DefinitionStatus = $defstatus;

RealTimeProtectionStatus = $rtstatus

} | Select-Object

ComputerName,Name,ProductExecutable,DefinitionStatus,RealTimeProtectionStatus

$AV

} Else {

Write-Error "\\$Computer : Unknown OS Version"

Exit

} # end If $OS

} Else {

Write-Warning "\\$computer DO NOT reply to ping"

} # end IF (Test-Connection -ComputerName $Computer -count 2 -quiet)

} # end ForEach ($Computer in $computerName)

} # end PROCESS

END { Write-Verbose "Function Get-LHSAntiVirusProduct finished." >>

D:\Forensic_Report_$date\AV_Info.txt }

} # end function Get-LHSAntiVirusProduct

#####################################################

$title9 = "..............................Anti-virus

Info...................................."

echo $var >> D:\Forensic_Report_$date\AV_Info.txt

echo $title8 >> D:\Forensic_Report_$date\AV_Info.txt

echo $var >> D:\Forensic_Report_$date\AV_Info.txt

Get-LHSAntiVirusProduct >> D:\Forensic_Report_$date\AV_Info.txt

Page 123: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 122

$report = "D:\Forensic_Report_$date"

(New-Object -ComObject wscript.shell).popup("Script Completed ! Your report is in

$report")

D – Référence et bibliographie Publications

Paul Rascagnerès, « Analyse de botnet », itrust consulting, 27 mars 2013.

Jean-Marc Robert, « Computer Forensics », dans Génie logiciel et des TI, Département de génie

logiciel (dir.).

Hal Pomeranz, « Detecting Malware with Memory Forensics », dans SANS institute.

Christopher LT. Brown, « Detecting & Collecting whole disk encryption media », dans Technology

Pathways, 2005.

Emilien Girault, «Volatilitux, analyse de la mémoire physique des systèmes Linux », Sysdream, 04

décembre 2010.

Gordon Hughes, Tom Coughlin, « Tutorial on Disk Drive Data Sanitization », Center for Magnetic

Recording Research, 2003.

Jean-Baptiste Bédrune, Jean Sigwald, « Forensics iOS », SSTIC 2012.

Arnaud Malard, « H@ckRAM, j’ai la mémoire qui flanche », dans Devoteam, 15 décembre 2012.

Gerald L. King, « Forensics plan guide », dans SANS Computer Forensics, 12 juin 2006.

Tilo Müller, Michael Spreitzenbarth, Felix C. Freiling, « FROST, Forensic Recovery of Scrambled

Telephones » dans Département of Computer Sciences, University of Erlangen-Nuremberg, octobre

2012.

Peter Hannay, Andrew Woodward, « Cold Boot Memory Acquisition », dans School of Computer and

Information Science, janvier 2011.

Vincent Le Toux, « Les dumps mémoires », dans HAKIN9, avril 2008.

Travail de diplôme

Cyril Chevalley, « Analyse des données récupérables à partir de disques dur hors-service », David

Billard (dir.), HGE Genève, 24 février 2012.

Gian-Luca Corbo, « Forensic Analysis and Data Recovery from Mobile Phones », David Billard (dir.),

HGE Genève, 24 février 2008.

Ljupce Nikolov, « Stéganographie, Détection de messages cachés », Stéphan Robert (dir.), HEG

Canton du Vaud, 14 décembre 2013.

Page 124: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 123

Articles

Cédric Bertrand, « Forensic, Recherche d’information à froid », dans

http://lepouvoirclapratique.blogspot.fr/ (blog.), 08 avril 2012.

Jean-Marc Robert, « Computer Forensics », dans Génie logiciel et des TI, Département de génie

logiciel (dir.).

Nicolas Ruff, « Autopsie d’une intrusion tout en mémoire sous Windows », dans EADS-IW SE/CS, Acte

du symposium SSTIC 07, 2007.

Livres

Andrew Hoog, « Android Forensics: Investigation, Analysis, and Mobile Security for Google Android »,

15 juin 2011.

Aaron Philipp, David Cowen, Chris Davis, « Hacking Exposed, Computer Forensics », 2010.

Michael Sikorski, Andrew Honig, « Practical Malware Analysis », dans no starch press San Francisco,

2012.

Cabinet d'avocats FERAL-SCHUHL / SAINTE-MARIE, « Cyberdroit », 2011.

Paul Rascagnerès, « Malwares », 2013.

Franck Ebel, « Hacking et Forensic », 2012.

ACISSI, « Sécurité Informatique, Ethical Hacking », 2011.

1 RECOMMANDATION N° R (95) 13 du 11 septembre 1995

2 http://www.guidancesoftware.com/products/Pages/encase-forensic/overview.aspx

3 http://www.accessdata.com/products/digital-forensics/ftk

4 http://www.digital-forensic.org/en/

5 http://www.tracip.fr

6 https://github.com/r1tch1e/hash.py

7 http://www.moonsols.com/2011/07/18/moonsols-dumpit-goes-mainstream/

8 http://mcgrewsecurity.com/projects/msramdmp/ 9 https://www.volatilesystems.com/default/volatility

10 https://code.google.com/p/volatilitux/downloads/list

11 http://code.google.com/p/volafox/downloads/list 12

http://www.md5decrypter.co.uk/ntlm-decrypt.aspx 13

http://dcfldd.sourceforge.net/ 14

http://sourceforge.net/projects/esxiimaging/files/ 15

http://sourceforge.net/projects/liveview/files/ 16

https://my.vmware.com/group/vmware/details?downloadGroup=VSP510-VDDK-510&productId=268 17

https://www.pinguin.lu/index.php 18

http://blog.didierstevens.com/programs/userassist/ 19

http://log2timeline.net/ 20

http://www.cgsecurity.org/wiki/PhotoRec 21

http://foremost.sourceforge.net/ 22

https://www.phrozensoft.com/index.php?&page=processdl&id=2 23

http://securityxploded.com/browser-password-dump.php 24

http://www.wireshark.org/ 25

http://www.xplico.org/ 26

https://code.google.com/p/ospy/ 27

www.radicati.com

Page 125: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 124

28

https://www.transend.com/products_transend_migrator.asp 29

http://www.nucleustechnologies.com/exchange-ost-recovery.html 30

https://www.paraben.com/email-examiner.html 31

http://www.outguess.org/detection.php 32

http://www.dban.org/ 33

http://www.runcorestore.com/ 34

https://www.anti-forensics.com/tag/timestompexe/ 35

http://www.truecrypt.org/ 36

http://windows.microsoft.com/fr-fr/windows7/products/features/bitlocker 37

http://16s.us/TCHunt/index.php 38

http://info.magnetforensics.com/encrypted-disk-detector/ 39

http://www.openwall.com/john/ 40

http://www.cgsecurity.org/wiki/CmosPwd 41

http://themida.fr.malavida.com/ 42

http://www.dependencywalker.com/ 43

http://www.aldeid.com/wiki/PEiD 44

http://www.cgsoftlabs.ro/studpe.html 45

http://www.retn.fr/index.php/post/RDG-Packer-Detector-v0.7.0-2013-Vx-Edition 46

https://www.hex-rays.com/products/ida/ 47

http://www.devextras.com/decompiler/ 48

http://technet.microsoft.com/fr-fr/sysinternals/bb896653.aspx 49

http://technet.microsoft.com/fr-fr/sysinternals/bb896645.aspx http://www.unixgarden.com/index.php/category/misc 49

http://www.pendriveapps.com/

Page 126: Research Paper on Digital Forensic

Mémoire de recherche appliquée 2014

Page 125

E – Charte plagiat


Recommended