Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Research Study about Digital Forensic & Malware

Research Study about Digital Forensic & Malware

Dissertation study created as a guide for forensic and malware analyst.

Thomas Roccia

March 02, 2014
Tweet

More Decks by Thomas Roccia

Other Decks in Research

Transcript

  1. 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
  2. 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
  3. 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
  4. 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.
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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é.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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).
  21. 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
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. 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
  27. 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
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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
  33. 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).
  34. 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.
  35. 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.
  36. 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.
  37. 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
  38. 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.
  39. 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
  40. 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
  41. 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.
  42. 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.
  43. 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.
  44. 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
  45. 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
  46. 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.
  47. 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
  48. 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.
  49. 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.
  50. 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
  51. 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
  52. 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
  53. 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.
  54. 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.
  55. 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.
  56. 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).
  57. 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.
  58. 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.
  59. 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éé.
  60. 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.
  61. 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.
  62. 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.
  63. 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.
  64. 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…).
  65. 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.
  66. 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
  67. 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.
  68. 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.
  69. 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é.
  70. 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é.
  71. 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.
  72. 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.
  73. 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é
  74. 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…
  75. 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.
  76. 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
  77. 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.
  78. 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).
  79. 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
  80. 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.
  81. 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
  82. 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.
  83. 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
  84. 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
  85. 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.
  86. 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).
  87. 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.
  88. 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.
  89. 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.dll CreateFileW 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.
  90. 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/
  91. 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é.
  92. 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.
  93. 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
  94. 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
  95. 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.
  96. 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.exe Il 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
  97. 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 Description C:\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
  98. 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.
  99. 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.
  100. 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
  101. 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
  102. 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)
  103. 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).
  104. 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.
  105. 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.
  106. 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 : KiAqICogKiAqICogKiAqICogKiBhSFIwY0hNNkx5OTNkM2N1Wm1GalpXSnZiMnN1WTI5dEx3PT06YW5 WemIzVndjRzlrUUdkdFlXbHNMbU52YlE9PTpRR3B6YnpzeE9UZzFLZz09IA== 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.
  107. 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é.
  108. 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.
  109. 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
  110. 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.
  111. 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.
  112. 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.
  113. 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.
  114. 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
  115. 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
  116. 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)
  117. 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)
  118. 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}},
  119. 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
  120. 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 (
  121. 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 {
  122. 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
  123. 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.
  124. 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
  125. 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/