mercredi 25 avril 2012

Les Sciences Forensiques !

M’intéressant fortement à l’analyse forensique ces derniers temps, j’ai décidé de faire un article pour présenter ce vaste domaine.
Définition
Lors d’un incident de sécurité au sein d’un SI, il est nécessaire de comprendre le mode opératoire de l’attaquant afin de retracer ses actions, mais également de pouvoir collecter assez de preuves pour pouvoir porter 
plainte. Pour cela, plusieurs techniques sont utilisées :
  • Récupération de fichiers effacés;
  • Analyse des logs;
  • Analyse des fichiers infectés;
  • Analyse de la mémoire;
  • Détection et analyse de Rootkits;
  • Etc…
Pour bien appréhender ce type d’analyse, il est nécessaire de connaître plusieurs outils permettant d’accomplir des tâches bien spécifiques. Par exemple, avec quels outils analyser/récupérer une image, un fichier mp3, un iso etc…  C’est ce que je vais détailler dans cet article.

Analyse de disques durs, fichiers images (.img, .dd etc.), et systèmes de fichiers
——————————————————————————-
Foremost
Description : outil en ligne de commande permettant de récupérer des fichiers qui ont été effacés.
Lien : ForemostUtilisation : foremost FS.dd
dd_rescueDescription : outil Linux permettant de récupérer des fichiers qui ont été effacés.
Lien : dd_rescue
Utilisation : dd_rescue /dev/hda monfichier.img
ScalpelDescription : outil Linux permettant de disséquer les fichiers stockés sur votre disque dur.
Lien : Scalpel
Utilisation : éditer le fichier de configuration /etc/scalpel/scalpel.conf et décommenter le système de fichier que vous souhaitez retrouver (exemple PDF)
[...]
pdf y 5000000 %PDF %EOF\x0d REVERSE
pdf y 5000000 %PDF %EOF\x0a REVERSE
[...]
Démarrer scalpel (hda6 est la partition ou se trouve les fichiers supprimés) :
scalpel /dev/hda6 -o output
NTFS Undelete
Description : outil multiplateforme permettant de récupérer des fichiers effacés sur le système de fichier NTFS.
Lien : NTFS UndeleteUtilisation : ntfsundelete /dev/hda1
FatbackDescription : outil Linux permettant de récupérer des fichiers effacés sur le système de fichier FAT.
Lien : FatbackUtilisation : fatback  image -o /home/lestutosdenico/recovered –auto
Sleuth KitVoir l’article suivant : http://www.lestutosdenico.com/outils/sleuth-kit-autopsy
Analyse d’images (.jpg, .bmp, .gif, etc.)——————————————————————————-
Exiv2
Description : librairie C++ et utilitaire en ligne de commande multiplateforme permettant de gérer les métadatas des images.
Lien : Exiv2
Utilisation : exiv2 -pc leperlestmerveilleux.jpg
Recoverjpeg 
Description : outil Linux permettant de retrouver des images au format JFIF (JPEG) et les films au format MOV (avec recovermov) sur un périphérique.
Lien : recoverjpegUtilisation : recoverjpeg /dev/sda1 (pour retrouver des fichiers sur la cible /dev/sda1.
Jhead
Description : outil multiplateforme permettant d’extraire les données EXIF de vos fichiers jpeg.
Lien : jhead
Utilisation : jhead pokemon.jpg
Forensic image viewer
Description : outil Windows permettant de traiter plusieurs types d’images (JPG, PNG, GIF etc.). Il permet de montrer les données EXEF et d’afficher les images sur des vignettes (traitement plus rapide qu’en ligne de commande).
Lien : forensic image viewer
Utilisation : installer le .exe
ExifprobeDescription : outil permettant de lire les fichiers d’images produits par les appareils photo numériques (ce qui inclut plusieurs des fameux formats « raw ») et rapporte la structure du fichier ainsi que les données auxiliaires et les métadonnées.
Lien : Exifprobe
Utilisation : exifprobe -Z toto.jpg
Analyse de la mémoire——————————————————————————-
Volatility
Description : framework multiplateforme incorporant une suite d’outils permettant d’analyser la mémoire (RAM).
Lien : Volatility
Analyse de PDFs——————————————————————————-
PDFiDDescription : outil Python permettant d’aider à détecter les PDF malicieux.
Lien : PDFiDUtilisation : pdfid.py toto.pdf
PDFMinerDescription : outil Python permettant d’extraire les informations d’un document PDF. Il vise principalement l’analyse des données textes et inclue une fonction de conversion de format (PDF en HTML etc.).
Lien : PDFMinerUtilisation : pdf2txt.py poney.pdf
PDFInfoDescription : outil Linux permettant d’extraire et manipuler certaines informations d’un document PDF (titre, sujet, auteur, etc.).
Lien : PDFInfoUtilisation : pdfinfo -chocapicz.pdf
Origami
Description : Outil Ruby permettant de parser, analyser et forger des documents PDF. Il est capable d’aider à la compréhension de code malicieux injecté dans le document.
Lien :  Origami
Utilisation : voir la présentation ci-dessous.
Présentation : http://www.security-labs.org/fred/docs/ossir09-origami-pdf.pdf
Analyse de MP3s——————————————————————————-
Id3Description : outil Linux permettant de lister, modifier ou supprimer les tags ID3 d’un fichier.
Lien : Id3Utilisation : id3 -l mon_petit_poney.mp3
Mp3infoDescription : outil multiplateforme permettant de lire les tags ID3 de fichiers MP3. Il permet d’afficher les caractéristiques des fichiers (bit-rate, fréquence, etc.).
Lien : Mp3info
Utilisation : mp3info la_lambada.mp3
Analyses diverses——————————————————————————-
Diff + Hexdump
Description : deux outils qui, couplés ensembles, permettent d’afficher la différences entre deux fichiers.
Lien : inclus dans Linux de base.
Utilisation : diff -u <(hexdump -C forensic.mp3) <(hexdump -C forensic.mp3.2)
FileDescription :  outil permettant de déterminer le type de fichier passé en argument.
Lien : inclus dans Linux de base.
Utilisation : file -f granola.c
Strings
Description : outil permettant de sortir sur la console les caractères affichables d’un fichier ou d’un flux.
Lien : inclus dans Linux de base.
Utilisation : strings exemple.bin
LddDescription : outil permettant de retrouver les librairies partagées utilisées appelées par un programme.
Lien : inclus dans Linux de base.
Utilisation : ldd truc
LtraceDescription : outil permettant de suivre les appels à des bibliothèques dynamiques.
Lien : inclus dans Linux de base.
Utilisation : ltrace truc
Strace
Description : outil permettant d’afficher chaque appel système réalisé par un programme.
Lien : inclus dans Linux de base.
Utilisation : strace truc
Readelf
Description : outil permettant de retrouver certaines informations sur les fichiers binaires ELF.
Lien : inclus dans Linux de base.
Utilisation :  readelf -a truc
Nm
Description : outil permettant de lister les symboles importés/exportés.
Lien : inclus dans Linux de base.
Utilisation : nm truc
ObjdumpDescription : outil permettant d’analyser les entêtes et les sections d’un binaire ELF, et comporte également un désassembleur.
Lien : inclus dans Linux de base.
Utilisation : objdump -d ./truc
OllyDbgDescription : outil permettant de déboguer et de désassembler des fichiers au format PE.
Lien : OllydDbg
Utilisation : outil en interface graphique.
IDADescription : outil permettant de désassembler une grande variété de formats exécutables pour différents processeurs et systèmes d’exploitation.
Lien : IDAUtilisation : outil en interface graphique.
Ci dessous un tutoriel simple pour analyser les photos et savoir si une photo est retouchée ou non: