digital forensics framework - ossir · • framework orienté objet • développé en python et...

29
21/09/10 [email protected] 1 Digital Forensics Framework Os Ossir Groupe Paris 09/11/2010

Upload: others

Post on 29-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 1

Digital Forensics

Framework

Os

Ossir – Groupe Paris

09/11/2010

Page 2: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tables des matières

• Présentation d’ArxSys

• Présentation générale de DFF

• Présentation de l’API de DFF

• Démo

• Questions

21/09/10 [email protected] 2

Page 3: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tables des matières

• Présentation d’ArxSys

• Présentation générale de DFF

• Présentation de l’API de DFF

• Démo

• Questions

21/09/10 [email protected] 3

Page 4: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 4

• Issue d’un projet de fin d’études

• Jeune Entreprise Innovante créée en 2009

• Éditeur de logiciel open-source

d’investigation numérique

Page 5: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tables des matières

• Présentation d’ArxSys

• Présentation générale de DFF

• Présentation de l’API de DFF

• Démo

• Questions

21/09/10 [email protected] 5

Page 6: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Pourquoi ?

• Analyses forensiques :

Problèmes : Incidents, Fraudes, ...

Réponses à apporter: Qui ? Quand ? Quoi ? Ou ? Comment ?

• Besoin d'outils :

Open Source

Multiplateforme

Évolutif / Modulaire

21/09/10 [email protected] 6

Page 7: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Pour qui ?

Tous ceux qui font de l’investigation numérique, en particulier :

• Équipes sécurité des entreprises

• Enquêteurs & experts judiciaires

• Consultants en sécurité

• Étudiants

21/09/10 [email protected] 7

Page 8: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Comment ?En entrée :

Supports : Disques Durs, Mémoires Flash / RAM

• Copies (Analyses mortes)

• Périphériques (Analyses “live”)

• Chargement d’une sauvegarde

Interfaces :

• Shell

• Graphique

• Interpréteur

21/09/10 [email protected] 8

Page 9: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Comment ?Analyse : (Modules)

• Nodes : File System, VM, Volatility, phones, carver, ...

• Metadonnées : File System, embarquées, ...

• Visualiseurs : hexview, images, vidéos, ...

• Graph : timeline, type de fichiers, ...

• Réduction : filtres, hash, dictionnaires, …

Sortie : (Nodes, Favoris)

• Extraction

• Génération de rapports

• Sauvegarde

21/09/10 [email protected] 9

Page 10: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tables des matières

• Présentation d’ArxSys

• Présentation générale de DFF

• Présentation de l’API de DFF

• Démo

• Questions

21/09/10 [email protected] 10

Page 11: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tour d’horizon technologique

• Framework orienté objet

• Développé en Python et C++

• Interconnexion des langages via swig

• Interface Utilisateur Graphique en PyQt

• Chaîne de compilation avec Cmake

21/09/10 [email protected] 11

Page 12: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 12

Architecture

API

Modules

Interfaces

Page 13: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Interpréteur Python

ConsoleGUI

Manager

LoaderModules

Python/cpp

API GUI

Task

ManagerScheduler

ProcessusVFS

Exceptions

MagicArgument Module

21/09/10 [email protected] 13

Exécution d’un module

ProcessusProcessus

Post

Processing

Page 14: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Système de fichiers virtuels

• Maintien de l’arborescence générée par les modules de reconstruction

• Instance unique (singleton)

• Empilable

• Intègre un mécanisme d’évènements et de callbacks

21/09/10 [email protected] 14

Page 15: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Nodes / VFiles

• Représente une donnée au sein du VFS

• Encapsule les métadonnées

• Fournit le « mapping » d’un fichier

• Propose les interfaces classiques de Nodes dans les VFS

• Parents, fils, nombres de fils, …

• Méthodes d’ajout / suppression

- Node.open() Vfile

- VFile == Objet file de python

- VFile fournit des algorithmes de recherche

21/09/10 [email protected] 15

Page 16: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

FSO / MFSO [Mapped] File System Object

• FSO

• Classe mère des modules de reconstruction

• Fournit les interfaces d’ I/O avec les modules

• Vopen(), vseek(), vread(), …

• MFSO

• Simplifier le développement pour certains types de modules

• Manipulations des fichiers

• Gestion du cache

• Gestion des allocations / désallocations

• Fournir des interfaces spécifiques pour la visualisation avancée

• Représentation des « mappings » multicouche

21/09/10 [email protected] 16

Page 17: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

File Mapping

• Principalement utilisé par les modules de types MFSO

• Liste chaînée triee des blocs alloués (chunks)

• Relation blocs / offsets

• Agrégation de plusieurs Nodes

• Gestion de “shadow” blocs

21/09/10 [email protected] 17

Page 18: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

1) push(0, 512, dump.dd, 12348745)

File Mapping (exemple)

Page 19: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

File Mapping (exemple)

21/09/10 [email protected] 19

1) push(0, 512, dump.dd, 12348745)

2) push(512, 512, dump.dd, 10240)

Page 20: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 20

[…]

File Mapping (exemple)

1) push(0, 512, dump.dd, 12348745)

2) push(512, 512, dump.dd, 10240)

Page 21: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 21

N) push(1310720, 42, dump.dd, 4965478)

File Mapping (exemple)

[…]

1) push(0, 512, dump.dd, 12348745)

2) push(512, 512, dump.dd, 10240)

Page 22: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Résumé

21/09/10 [email protected] 22

Page 23: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 23

Résumé

Page 24: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 24

Résumé

Page 25: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 25

Résumé

Page 26: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 26

Résumé

Page 27: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

21/09/10 [email protected] 27

Résumé

Page 28: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Tables des matières

• Présentation d’ArxSys

• Présentation générale de DFF

• Présentation de l’API de DFF

• Démo

• Questions

21/09/10 [email protected] 28

Page 29: Digital Forensics Framework - OSSIR · • Framework orienté objet • Développé en Python et C++ • Interconnexion des langages via swig • Interface Utilisateur Graphique en

Questions

Contacts :

Frederic Baguelin : [email protected]

Solal Jacob : [email protected]

?21/09/10 [email protected] 29