MOFORP : Un outil d`interprétation et visualisation de

Transcription

MOFORP : Un outil d`interprétation et visualisation de
Travail de diplôme
MOFORP : Un outil d'interprétation et
visualisation de résultats
d'investigations sur téléphones portables
Présenté par :
Karim Benmachiche1
Professeur responsable :
David Billard2
Département d'Informatique
Universités de Lausanne et Genève
Octobre 2006
ii
1 [email protected]
2 [email protected]
Travail de diplôme
ii
Karim Benmachiche
Résumé
Les téléphones portables sont devenus des outils inévitables de la vie de
tous les jours. Ils permettent non seulement de téléphoner et d'être atteint
à n'importe quel moment et presque n'importe où, mais peuvent également
eectuer d'autres tâches telles que l'échange de SMS (Short Message Service,
Service de message court) et MMS (Multimedia Messaging Service, Service
de message multimédia), la messagerie instantanée ou encore le courriel et
la navigation internet. La plupart des téléphones mobiles actuels servent
également d'appareil photo ou de lecteur mp3.
Lorsqu'ils sont impliqués dans une aaire criminelle, les téléphones portables peuvent être des sources d'informations extrêmement précieuses. Un
certain nombre d'outils, commerciaux ou libres, permettent d'extraire des
données de ces pièces à convictions. Néanmoins, si des outils commerciaux
permettent d'extraire et de visualiser un grand nombre d'informations, il
n'existe pas à ce jour d'outil libre permettant une visualisation aisée des
relations sociales (présence dans le carnet d'adresse, appels eectués) entre
diérents suspects d'une aaire criminelle.
Nous présentons donc ici un outil libre permettant d'eectuer cette visualisation.
Table des matières
Résumé
iii
1 Introduction
1
2 Etat de l'art
4
1.1
1.2
2.1
2.2
2.3
2.4
Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . .
Investigation sur téléphones portables . . .
2.1.1 Données potentiellement accessibles
2.1.2 Méthodologie d'investigation . . . .
2.1.3 Outils existants . . . . . . . . . . .
2.1.4 Visualisation de l'information . . .
Théorie des graphes . . . . . . . . . . . . .
2.2.1 Dénitions et propriétés . . . . . .
Réseaux sociaux . . . . . . . . . . . . . . .
2.3.1 Généralités . . . . . . . . . . . . .
2.3.2 Structure des réseaux sociaux . . .
Synthèse . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
4
4
5
7
8
8
8
12
12
12
14
3 Notre outil : MOFORP (Mobile Forensics Report Processor) 16
3.1
3.2
Cahier des charges . . . . . . . . . . . .
Réseaux de suspects . . . . . . . . . . .
3.2.1 Squelette de l'application . . . . .
3.2.2 Structure de données . . . . . . .
3.2.3 Formats de numéros de téléphone
3.2.4 Visualisation . . . . . . . . . . .
4 Implémentation
4.1
4.2
4.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
16
17
17
20
23
Vue d'ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Librairies utilisées . . . . . . . . . . . . . . . . . . . . . . . . . 23
Données à disposition . . . . . . . . . . . . . . . . . . . . . . . 25
Table des matières
4.4
4.5
4.6
4.7
4.8
4.9
Parseurs XML et Excel . . . . . . . . .
4.4.1 Rapports d'investigation XML .
4.4.2 Listings Excel des opérateurs .
Structure de données . . . . . . . . . .
Visualisation du graphe . . . . . . . . .
Gestion des chiers d'entrées et sorties
Scalabité . . . . . . . . . . . . . . . . .
Déploiement . . . . . . . . . . . . . . .
5 Expérimentations
5.1
5.2
5.3
5.4
5.5
v
But . . . . . .
Candidats . .
Extraction . .
Visualisation .
Synthèse . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Travaux futurs
6.1
6.2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Amélioration des fonctionnalités . .
Visualisation temporelle des actions
6.2.1 Source des données . . . . .
6.2.2 Visualisation . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
d'un suspect
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
27
27
28
31
32
32
34
34
34
34
35
37
39
39
39
40
40
7 Conclusion
42
Remerciements
43
7.1
7.2
But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Développement et résultats . . . . . . . . . . . . . . . . . . . . 42
Karim Benmachiche
v
Travail de diplôme
Table des matières
vi
Travail de diplôme
vi
Karim Benmachiche
Chapitre 1
Introduction
1.1 Contexte
Selon l'oce fédéral de la statistique [1], le nombre d'abonnés à la téléphonie mobile en Suisse dépassait les 6 millions de personnes en 2004, ce qui
représente près de 85% de la population, contre moins de 50% en 1999 et
25% en 1998. L'augmentation de l'utilisation des téléphone portables a donc
été fulgurante au cours des 5 dernières années, et en conséquence le nombre
de téléphones portables saisis au cours d'aaires criminelles également.
Fig.
1.1. Infrastructure téléphonique en Suisse, évolution 1990-2004
Dans le cadre d'une saisie dans une enquête, un téléphone portable peut se
2
CHAPITRE 1. INTRODUCTION
Fig.
1.2. Infrastructure téléphonique en comparaison internationale, 2004
révéler être une source d'information extrêmement précieuse. Tant le carnet
d'adresse que l'historique des appels, les SMS, ou encore les chiers multimédias sont susceptibles d'apporter des preuves à une enquête. Les enquêteurs se doivent donc de suivre une procédure bien précise an de garantir
l'intégrité et la non-modication des données extraites d'un téléphone pour
qu'elles soient recevables devant un tribunal. Un certain nombre d'outils [2],
tant commerciaux que libres, permettent déjà cela et nous en présenterons
brièvement certains par la suite.
1.2 Problématique
Comme nous venons de le voir, il existe déjà un certain nombre d'outils permettant l'analyse et l'extraction de données d'un téléphone portable.
Néanmoins, il n'en n'existe que très peu permettant une visualisation aisée
des relations sociales entre diérents suspects dans une aaire criminelle. La
plupart des outils actuels du marché ne permettent que de réaliser un rapport
brut, généralement sous forme de chier XML, et c'est ensuite à l'enquêteur
de faire lui-même les corrélations entre les diérents téléphones saisis.
Le but initial de ce travail était de réaliser une librairie pour un programme d'extraction de données bien précis permettant une visualisation
Travail de diplôme
2
Karim Benmachiche
1.2. PROBLÉMATIQUE
3
graphique des relations entre diérents suspects. Après avoir ré-évalué les
possibilités oertes, nous avons nalement décidé de réaliser un outil complètement indépendant, capable de lire des rapports générés par diérents
outils ainsi que des listings fournis par les diérents opérateurs de téléphonie
mobile, et de générer une visualisation sous forme de graphe représentant le
réseau social des diérents suspects d'une enquête.
An de garantir des possibilités de modications et d'améliorations, nous
avons choisi de distribuer notre outil de façon open-source, ce qui permet
aux utilisateurs de l'adapter véritablement à leur besoin, contrairement à la
rigidité impliquée par des programmes à sources fermées.
Karim Benmachiche
3
Travail de diplôme
Chapitre 2
Etat de l'art
2.1 Investigation sur téléphones portables
Il n'existe que très peu de littérature relative à la criminalistique, et encore
moins pour ce qui est des téléphones portables. Cet état de l'art se base donc
sur les quelques articles disponibles dans le monde policier, et essaie de faire
une synthèse de ces derniers.
2.1.1 Données potentiellement accessibles
Les informations à disposition lors de l'investigation d'un téléphone mobile se trouvent dans les éléments suivants :
La mémoire du téléphone : Les téléphones portables modernes pos-
sèdent une mémoire relativement importante, permettant notamment
de stocker des chiers multimédias. Les principales informations pouvant être récupérées sont le carnet d'adresses, l'historique des appels,
l'identité du téléphone (numéro IMEI - International Mobile Equipment Identity), les SMS et MMS, des chiers multimédias (photos et
sons enregistrés avec l'appareil s'il en a la possibilité), les paramètres
locaux (date et heure), l'agenda ainsi que certains chiers pouvant être
stockés de la même façon que sur une clé USB. Il est également possible
de récupérer un certain nombre de données eacées en fonction de la
manière dont les éléments sont stockés dans la mémoire.
La carte SIM : La carte SIM (de l'anglais Subscriber Identity Module) permet de stocker les informations spéciques à l'utilisateur. On
y trouve les données d'identication du suspect, le carnet d'adresses,
les SMS et un journal d'appels, ainsi que certaines données locales. An
de pouvoir accéder à la carte SIM, l'enquêteur a besoin de connaître le
2.1. INVESTIGATION SUR TÉLÉPHONES PORTABLES
5
code PUK, qu'il peut obtenir auprès de l'opérateur téléphonique, ou le
code PIN de la part de l'utilisateur.
La carte mémoire ash : Certains téléphones portables modernes
possèdent une mémoire amovible ash dont le but est d'étendre la capacité de stockage du téléphone, généralement an de stocker des chiers
multimédias.
Les informations disponibles auprès de l'opérateur : Les opérateurs sont tenus de fournir les listings téléphoniques d'un suspect sur
demande de l'autorité compétente. La législation suisse requiert que
les opérateurs conservent ces données durant 6 mois. Ces informations
contiennent la source et destination d'une communication, l'heure et la
durée de la communication, la localisation de la communication interceptée basée sur la localisation de la cellule de l'opérateur, le numéro
IMEI de la personne interceptée, ainsi que le type de communication
(voix, données, SMS, MMS, etc).
2.1.2 Méthodologie d'investigation
Tout comme lors de la saisie de matériel informatique tel que des ordinateurs, les enquêteurs se doivent de suivre des étapes rigoureuses lorsqu'ils
désirent extraire des informations d'un téléphone portable. An de pouvoir
garantir la validité des pièces à conviction, les étapes suivantes sont respectées
lors d'une saisie :
Création d'une copie identique des médias saisis an de préserver leur
intégrité.
Examen de cette copie et récupération des données.
Analyse de ces données et création d'un rapport documentant les données pertinentes.
Le principe de base est donc que les données ne doivent en aucun cas être
modiées durant ou suite à l'investigation. La méthodologie d'investigation
actuelle peut être résumée en deux étapes [3] :
Les téléphones sont généralement laissés allumés an d'éviter tout problème lié au code PIN, ce qui laisse le téléphone susceptible de recevoir
de nouvelles données (appels, SMS, etc) risquant d'eacer une partie
de la mémoire.
Les téléphones sont analysés en utilisant des outils passant par le système d'exploitation du téléphone, ce qui peut causer des modications
dans la mémoire et ainsi potentiellement détruire certaines informations
Karim Benmachiche
5
Travail de diplôme
6
CHAPITRE 2. ETAT DE L'ART
pertinentes.
Svein Willasen propose donc la méthodologie suivante lors de l'investigation d'un téléphone portable [3] :
Eteindre le téléphone le plus vite possible an d'éviter toute "contamination" (réception d'appels ou SMS qui pourraient écraser une ancienne
entrée dans la mémoire).
L'appareil saisi doit être analysé de façon séparée an d'éviter toute
nouvelle contamination.
La carte SIM doit être analysée en utilisant les outils adéquats et les
codes d'accès fournis par l'utilisateur ou l'opérateur téléphonique.
Les cartes de mémoire ash doivent êtres analysées en utilisant les outils
adéquats.
La mémoire interne du téléphone doit être analysée en créant une image
complète de cette dernière, puis en créant une liste complète de toutes
les preuves potentielles s'y trouvant.
Chacune de ces méthodes ore tant des avantages que des inconvénients.
Plusieurs études [4, 5] défendent également le fait d'isoler l'appareil le plus
rapidement possible. Néanmoins, si l'isolation assure de conserver l'intégrité
de la mémoire, elle empêche également la réception de nouvelles informations
pouvant être intéressantes (SMS ou appel d'un autre suspect potentiel). De
plus, une fois éteints, certains appareils perdent toute référence de date et
heure [3]. Amanda Goode note également que l'ordre dans lequel les diérents éléments (carte SIM, batterie) sont retirés est important car ils sont
susceptibles d'altérer la mémoire de l'appareil [5].
L'analyse de la mémoire d'un téléphone portable peut se faire de plusieurs
façons. An d'obtenir une copie exacte et protéger la mémoire de toute altération, Svein Willasen propose de se connecter directement au téléphone via
sa carte mère et de lire la puce mémoire, contournant ainsi le système d'exploitation [3]. Cette méthode requiert néanmoins une connaissance parfaite
du fonctionnement interne des téléphones, et n'est donc que peu envisageable
pour un enquêteur. La seule façon d'obtenir des informations de manière aisée est donc d'utiliser un programme permettant de se connecter au système
d'exploitation.
En ce qui concerne la carte SIM, elle peut être lue grâce à n'importe quel
lecteur de carte à puce standard. On peut également y accéder à travers le
téléphone, qui est capable de transférer des requêtes à la carte SIM et faire
suivre les réponses à l'outil utilisé pour envoyer ces commandes. Il n'y a
cependant pas de garantie que tous les téléphones en soient capables, car ces
Travail de diplôme
6
Karim Benmachiche
2.1. INVESTIGATION SUR TÉLÉPHONES PORTABLES
7
normes de commandes sont optionnelles, et il peut dans certains cas s'avérer
nécessaire de retirer la carte SIM et l'analyser séparément.
2.1.3 Outils existants
Nous allons ici présenter un certains nombre d'outils permettant l'extraction d'information d'un téléphone portable. Ces outils ont déjà fait l'objet
d'une étude relativement poussée [2], nous nous contenterons donc d'une
présentation relativement succincte.
TULP2G : TULP2G 1
est un outil open-source permettant l'extraction et
le décodage de données stockées dans un téléphone portable ou une
carte SIM [6]. Les données peuvent être récoltées en utilisant tant le
câble approprié qu'une connexion Bluetooth ou IrDA. Tous les rapports
générés sont en XML.
MOBILedit ! Forensic : L'édition forensique de MOBILedit ! 2 permet l'extraction de données d'un téléphone portable ou d'une carte SIM. Une
fois le téléphone connecté à l'ordinateur via un câble ou une connexion
Bluetooth ou IrDA, MOBILedit ! identie le téléphone (marque, modèle, numéro IMEI), puis collecte toutes les données possibles (carnet
d'adresses, journal des appels, etc) et remplit les diérentes sections de
son menu. Il est également possible de générer des rapports forensiques
au format XML.
Paraben's Device Seizure : Paraben's Device Seizure 3 combine les tech-
nologies de deux anciens produits, Paraben's PDA Seizure et Paraben's
. Les possibilités d'extraction d'informations incluent les
données supprimées et garantissent qu'aucune donnée n'est écrite sur
l'appareil analysé. Pour ce faire, seule une connexion par un câble sériel
ou USB peut être eectuée. Toutes les informations usuelles peuvent
être extraites et plusieurs options de rapports sont disponibles. Néanmoins, son prix est très élevé.
Cell Seizure
.XRY : .XRY 4 est un outil permettant l'acquisition de données non seule-
ment de téléphones de type GSM, mais également de nouvelles générations tels que CDMA et 3G. Les cartes SIM sont également supportées.
La connexion peut se faire soit via un câble approprié ou via Bluetooth
ou IrDA. Les données récupérées sont stockées dans un format propriétaires mais peuvent être exportées dans un format publique. Il n'est
1 http
://tulp2g.sourceforge.net/
://forensic.mobiledit.com/
3 http ://www.paraben-forensics.com/catalog/product_info.php ?products_id=342
4 http ://www.msab.com/en/product.jsp ?categoryId=25&productId=25
2 http
Karim Benmachiche
7
Travail de diplôme
8
CHAPITRE 2. ETAT DE L'ART
toutefois pas précisé lesquels sont supportés. Là aussi, son prix est relativement élevé.
Oxygen Phone Manager II Forensic Version : La version forensique
d'Oxygen Phone Manager 5 dière de la version de base en empêchant
complètement que les données soient modiées lors de l'extraction.
Seuls certains constructeurs sont toutefois supportés : Nokia, Samsung
et Mobiado. Les rapports générés le sont au format CSV, Excel ou
Word.
2.1.4 Visualisation de l'information
Il n'existe pour l'heure pas d'outil permettant de visualiser spéciquement
l'information extraite lors d'une enquête portant sur un téléphone. Certes, il
existe des programmes de visualisation d'information, tel Analyst Notebook,
mais ils sont pour la plupart onéreux et ne supportent généralement pas de
format de chier spécique et il n'y a pas de garantie que les rapports générés
par les outils d'extraction de donnée puissent être lus aisément. Ceci est la
motivation principale de notre travail : réaliser un outil open-source permettant la visualisation spécique de données extraites de téléphones portables.
Le problème principal lorsqu'un enquêteur se trouve avec un grand nombre
de téléphone à analyser est de réussir à les mettre en corrélation, an de pouvoir trouver de nouveaux suspects potentiels sur la base des contacts eectués
par téléphone entre les diérents protagonistes d'une aaire criminelle.
2.2 Théorie des graphes
La façon la plus intuitive de représenter un réseau social est d'utiliser
un graphe. Il est donc nécessaire d'introduire préalablement une certaine
terminologie dans ce document.
2.2.1 Dénitions et propriétés
Les conceptes suivants sont basiques et se retrouvent facilement dans la
littérature mathématique courante [7, 8].67
Graphe
: Un graphe ni G = (V, E) est déni par l'ensemble ni V =
{v1, v2, ..., vn}, (|V | = n) dont les éléments sont appelés sommets, et
5 http
://www.opm-2.com/forensic/
des dénitions : http ://www.apprendre-en-ligne.net/graphes
7 Source des images : http ://exchange.manifold.net/manifold/manuals/manifold/manifold.htm
6 Source
Travail de diplôme
8
Karim Benmachiche
2.2. THÉORIE DES GRAPHES
9
par l'ensemble ni E = {e1, e2, ..., em}, (|E| = m) dont les éléments
sont appelés arêtes. En donnant un sens aux arêtes d'un graphe, on
obtient un digraphe, ou graphe orienté. Nous ne traiterons toutefois
que des cas de graphes non-orientés.
Fig.
2.1. Exemple de graphe non-orienté à 4 sommets et 5 arrêtes
Ordre
: On appelle
graphe.
ordre
d'un graphe le nombre de sommets (n) de ce
Graphe simple : Un graphe est dit simple
s'il ne contient pas de boucles
et s'il n'y a pas plus d'une arête reliant deux mêmes sommets.
Fig.
2.2. Exemple de graphe simple
Boucle : Arête partant d'un sommet et allant vers lui-même.
Graphe planaire : Un graphe planaire est un graphe que l'on peut dessiner
sur une surface plate sans que ses arêtes se croisent. Les graphes que
l'on ne peut pas dessiner sans croisements sont dits non planaires.
Karim Benmachiche
9
Travail de diplôme
10
Fig.
naire
CHAPITRE 2. ETAT DE L'ART
2.3. Deux exemples du même graphe représenté de façon non-planaire et pla-
Graphe complet : Un graphe est complet
si chaque sommet du graphe est
relié directement à tous les autres sommets.
Fig.
2.4. Exemple de graphe complet à 5 sommets
Chaîne
: Une chaîne est une suite de sommets reliés par des arêtes. Une
chaîne est simple si chaque arête de la chaîne est empruntée une seule
fois. La longueur d'une chaîne est le nombre d'arêtes utilisées.
Distance : La distance entre deux sommets est la longueur de la plus courte
chaîne entre eux.
Diamètre : Le diamètre d'un graphe est la plus longue des distances entre
deux sommets de ce graphe
Graphe connexe : Un graphe connexe est un graphe dans lequel chaque
paire de sommets est reliée par une chaîne.
Graphe partiel : Soit G = (V, E) un graphe. Le graphe G0 = (V, E 0 ) est un
0
graphe partiel de G, si E est inclus dans E . Autrement dit, on obtient
0
G en enlevant une ou plusieurs arêtes au graphe G.
Sous-graphe : Pour un sous-ensemble de sommets A inclus dans V , le sousgraphe de G induit par A est le graphe G = (A, E(A)) dont l'ensemble
Travail de diplôme
10
Karim Benmachiche
2.2. THÉORIE DES GRAPHES
11
des sommets est A et l'ensemble des arêtes E(A) est formé de toutes
les arêtes de G ayant leurs deux extrémités dans A. Autrement dit,
on obtient G0 en enlevant un ou plusieurs sommets au graphe G, ainsi
que toutes les arêtes incidentes à ces sommets. Un graphe partiel d'un
2.5. Exemple d'un graphe à 6 sommets à 7 arrêtes et d'un de ses sous-graphes
à 4 sommets et 3 arrêtes
Fig.
sous-graphe est un sous-graphe partiel de G.
Clique : On appelle clique
un sous-graphe complet de G.
2.6. Exemple d'un graphe possédant 3 cliques, dans les sommets {1,2}, {1,
3,5} et {3,4,5,6}
Fig.
Degré d'un sommet
: Pour un graphe ou un multigraphe, on appelle
degré du sommet v , et on note d(v), le nombre d'arêtes incidentes avec
ce sommet. Une boucle sur un sommet est comptée deux fois.
Dans un graphe simple, on peut aussi dénir le degré d'un sommet
comme étant le nombre de ses voisins (la taille de son voisinage).
Degré d'un graphe : Le degré d'un graphe
ses sommets.
est le degré maximum de tous
Graphe régulier
: Un graphe dont tous les sommets ont le même degré
est dit régulier.
Karim Benmachiche
11
Travail de diplôme
12
CHAPITRE 2. ETAT DE L'ART
2.3 Réseaux sociaux
Le but de l'outil présenté dans ce document étant de permettre la visualisation d'un réseau social sur la base de téléphones saisis dans une enquête,
il est nécessaire d'introduire préalablement quelques concepts relatifs à ce
domaine de la sociologie. Nous resterons toutefois dans une considération
structurelle et descriptive des réseaux sociaux, puisque il s'agit de celle qui
nous intéresse dans le cadre de ce travail, et non pas sociologique.
2.3.1 Généralités
Un réseau social est un ensemble de relations de tout genre regroupant
diverses personnes. Ce concept a été évoqué pour la première fois au milieu
des années 50 [9]. Il représente la façon dont les gens sont reliés entre eux
de diverses façons, qu'elles soient personnelles, familiales, amicales, professionnelles ou autres. On utilise généralement la théorie des graphes an de
représenter un tel réseau. Les sommets deviennent alors des acteurs, et les
arêtes sont les relations liant ces diérents acteurs. Lorsque l'on désire établir la représentation d'un réseau social, il convient de dénir préalablement
quels types de relations sont étudiés. Il est en eet évident que pour un même
groupe d'acteurs, une représentation basée sur des relations professionnelles
ne générera pas le même réseau qu'une représentation basée sur des relations
amicales.
Le principal intérêt des réseaux sociaux réside dans leur approche diérente d'autres méthodes d'études sociologiques. En eet, la plupart d'entre
elles prônent qu'il s'agit des attributs (quels qu'ils soient) d'acteurs individuels qui sont importants. Les réseaux sociaux apportent donc un nouvel
angle d'observation, où les relations entre individus sont plus importantes
que les attributs personnels de chacun.
2.3.2 Structure des réseaux sociaux
L'utilisation de la théorie des graphes pour représenter la structure d'un
réseau social ore de nombreuses possibilités. On peut notamment parler de
proximité et distance entres les diérents acteurs, en calculant la distance les
séparant dans le graphe. L'une des mesures les plus importantes concernant
les diérents acteurs est celle de leur importance dans le réseau. Pour cela,
deux critères sont retenus : la centralité et le prestige [10]. Le prestige est une
mesure utilisée dans les graphes orientés. Comme il ne sera pas question de
ce type de graphe par la suite, nous ne nous intéresserons qu'à la centralité.
Elle peut se dénir de plusieures manières :
Travail de diplôme
12
Karim Benmachiche
2.3. RÉSEAUX SOCIAUX
13
La centralité de degré : Plus un acteur a de liens, plus il est central (ou
actif). Cette centralité se mesure de la façon suivante pour un acteur
i:
X
CDi =
xij
j
Cette valeur peut être standardisée :
P
CDi0 =
La
xij
g−1
j
x représentant la valeur du lien de i à j et g étant le nombre total
d'acteurs du réseau.
centralité de promiximité : On regarde ici la distance séparant un
acteur des autres. Plus un acteur est proche des autres, plus il est
central. Sa mesure est la suivante pour un acteur i :
CPi = Pg
1
j=1
dij
On peut également la standardiser :
g−1
= (g − 1)CPi
CPi0 = Pg
j=1 dij
dij est la distance les acteurs i et j , et le dénominateur est la distance
totale entre l'acteur i et les autres. Cette valeur ne peut néanmoins être
calculée que dans le cas d'un graphe connecté.
La centralité d'intermédiarité : Cette valeur représente le contrôle qu'un
acteur peut avoir lors de l'intéraction entre deux autres qui ne sont pas
adjacents. En eet, ces deux acteurs dépendent des acteurs au milieu
de la chaîne an de pouvoir intéragir correctement. Plus un acteur
se trouve sur le chemin d'une interaction, plus il est central. Cette
centralité se calcule ainsi, pour un acteur i :
P
j<k gjk (i)
CIi =
gjk
Si on la standardise :
CIi0 =
CIi
(g−1)(g−2)
2
gjk (i) est une chaîne entre j et k passant par i. La valeur maximale
de CIi est atteinte lorsqu'un acteur se trouve sur toutes les chaînes
possibles du graphe, et est nulle s'il n'est pas connecté au reste du
graphe.
Karim Benmachiche
13
Travail de diplôme
14
CHAPITRE 2. ETAT DE L'ART
Nous allons maintenant voir comment identier des sous-groupes d'acteurs
d'un réseau. En eet, réussir à isoler des sous-groupes cohésifs est l'un des
aspects les plus importants de l'analyse d'un réseau social. Pour ce faire, il
faut parvenir à réunir diérents acteurs à partir de l'existence de relations
fortes entre eux. On dénit ainsi une mesure de la cohésion sociale, qui peut
s'établir grâce à trois niveaux de critère, à savoir la densité, la connexité et
l'intensité des relations entre acteurs [11].
Densité
: On ne regarde ici que la notion d'adjacence entre les acteurs.
Les sous-groupes sont des cliques, ce qui a pour eet de générer des
sous-groupes extrêmement restrictifs, et donc rares dans un réseau relativement complexe. Il faut prendre en compte d'autres informations
sur les relations entre les acteurs. An de faire partie d'un sous-groupe,
on décide qu'un acteur doit être relié directement à un nombre déni d'autres membres du sous-groupe en question, et on perd ainsi
l'exigence d'avoir chacun des acteurs reliés entre eux comme dans les
cliques. Ceci introduit la notion de k-plex : un ensemble d'acteurs tel
que chacun est adjacent à tous sauf à k autres.
Connexité
: On considère ici des ensembles d'individus reliés entre eux
aussi bien directement qu'indirectement. Néanmois, des recherches ont
montré que la plupart des acteurs d'un même réseau sont reliés entre
eux de façon indirecte, ce qui tend à ne génèrer qu'un seul sous-groupe
équivalent au réseau entier. Les critères de cohésion ont donc été allégés,
notamment en distinguant la connexité simple de la connexité forte
dans les graphes orientés. Puis la notion de n-clique est apparue : il
s'agit d'un sous-graphe dans lequel la distance maximale entre deux
acteurs est inférieure ou égale à n.
Intensité : On associe ici une valeur à chaque arc du réseau, représentative
du type de relation entre les acteurs. Un sous-groupe est ensuite isolé
en ne retenant que les acteurs dont les valeurs des arcs sont supérieurs
à un certain seuil.
2.4 Synthèse
Nous avons vu dans ce chapitre quels sont les buts de l'analyse d'un téléphone portable, et les informations qu'il est possible d'en obtenir. Nous avons
introduit une certaine méthodologie d'investigation, ainsi que certains outils
servant à l'extraction de donnée. On peut constater qu'il n'en existe aucun
spéciquement destiné à la représentation et la visualisation de données récoltées de plusieurs téléphones diérents, alors que les méthodologies dénies
Travail de diplôme
14
Karim Benmachiche
2.4. SYNTHÈSE
15
mettent l'accent sur le fait que l'utilisation des informations récoltées est au
moins aussi importante que leur extraction.
Nous avons introduit un certain nombre de concepts relatifs à la visualisation d'information. Dans notre cas, il s'agira de la théorie des graphes, qui
est utilisée pour représenter un réseau social. Les concepts liés aux réseaux
sociaux pourront être utilisés pour interpréter les résultats obtenus.
Toutes ces considérations ont ainsi pu nous conduire aux choix qui ont
été faits pour réaliser notre outil de visualisation présenté dans le chapitre
suivant.
Karim Benmachiche
15
Travail de diplôme
Chapitre 3
Notre outil : MOFORP (Mobile
Forensics Report Processor)
3.1 Cahier des charges
Le but initial de ce travail est de réaliser une visualisation des rapports
générés par diérents outils d'investigation, ainsi que les informations fournies par les opérateurs. Il a été demandé de réaliser, comme visualisation
principale, un graphe représentant le réseau social de diérents possesseurs
de téléphones portable. Il fallait également évaluer la possibilité de réaliser
une représentation temporelle des actions d'un suspect, sur la base du journal des appels extrait du téléphone et des listings fournis par les opérateurs.
Cette partie n'a toutefois pas pu être réalisée pour des raisons pratiques, et
sera quelque peu développée dans le chapitre 6.
Nous allons présenter dans ce chapitre l'approche théorique menant à la
réalisation de notre programme.
3.2 Réseaux de suspects
3.2.1 Squelette de l'application
Notre programme se compose de plusieurs parties bien distinctes :
Un parseur va se charger de convertir les diérents rapports d'extraction
et des opérateurs en une structure de données.
Cette structure de donnée doit être la plus claire et précise possible an
de représenter au mieux les diérents téléphones investigués.
3.2. RÉSEAUX DE SUSPECTS
17
Un grapheur va ensuite se baser sur la structure de données an de
construire le graphe.
Le graphe doit pouvoir orir une visualisation interactive et aisée pour
l'utilisateur.
3.2.2 Structure de données
Si les données disponibles dans les rapports d'extraction varient légèrement d'un programme à un autre, il en est deux qui nous intéressent : le
numéro et le nom des contacts présents sur le téléphone. Le carnet d'adresse
fournit ces deux informations. En ce qui concerne les diérents journaux
d'appels et les SMS, il se peut certaines fois que le numéro soit masqué ou
que le nom soit inconnu s'il n'est pas enregistré dans le carnet d'adresses.
Il faut donc commencer par créer la structure d'un contact. Un contact
contient le nom et le numéro de téléphone d'une personne. Chaque téléphone
contenant plusieurs contacts, il faudra les stocker dans un même ensemble
pour chaque téléphone. Un même contact pouvant revenir plusieurs fois dans
le rapport d'un même téléphone (carnet d'adresse, SMS, journal des appels),
il faudra donc ltrer au moment d'ajouter chaque contact à la structure, sur
la base du numéro de téléphone. Pour ce qui est des téléphones, ils sont en
fait des contacts particuliers. Ils possèdent également un nom et un numéro,
mais seront stockés eux dans une liste chaînée de téléphones, et contiendront
chacun leur ensemble de contacts. Cette structure de données est représentée
graphiquement par l'illustration 3.1.
3.2.3 Formats de numéros de téléphone
Comme nous venons de l'expliquer, il est nécessaire de ne stocker chaque
contact qu'une seule fois dans l'ensemble de chaque téléphone investigué, en
ltrant sur la base du numéro. Pour ce faire, il faut parvenir à uniformiser la
représentation du numéro, car elle peut prendre plusieurs formes diérents.
Dans le cas suisse, pour le numéro "+41 (79) 123 45 67", les représentations
suivantes seraient susceptibles d'apparaître, tant dans les rapports d'extractions que les listings d'opérateurs :
"0041791234567", qui inclut l'indicatif de sortie du pays.
"+41791234567", format le plus usuel, avec le symbole '+' pour sortir
du pays si nécessaire.
"41791234567", rare, sans indicatif de sortie.
"0791234567", format interne au pays usuel.
"791234567", rare, sans indicatif de sortie régional.
Karim Benmachiche
17
Travail de diplôme
18
CHAPITRE 3. NOTRE OUTIL : MOFORP (MOBILE FORENSICS REPORT
PROCESSOR)
Fig.
3.1. Représentation de la structure de données de notre programme
Le format le plus usuel étant le second décrit ci-dessus, c'est celui-ci qui
a été choisi comme représentation unique dans notre structure de données. Il
a ensuite fallu concevoir un algorithme permettant de formatter les numéros
proprement, tout en sachant également reconnaître les numéros étrangers.
Pour ce faire, il sera nécessaire de demander à l'utilisateur quel est le pays
dans lequel l'investigation à lieu, an de connaître son indicatif. Certains
pays, comme l'Allemagne, ont un plan de numérotation à longueur variable
et ne sont pour l'instant pas supportés par notre algorithme. Néanmoins, ce
dernier fonctionne avec la plupart des pays européens, ainsi que les EtatsUnis et l'Australie. Il est représenté par l'illustration 3.2 et fonctionne comme
suit :
- Pour chaque pays supporté, on dénit une longueur maximale et minimale, en fonction du plan de numérotation du pays en question. La
longueur maximale est dénie comme la longueur de l'indicatif du pays
suivi du numéro, le tout sans préx de sortie. Si l'on reprend l'exemple
précédent, il s'agirait de "41791234567". La longueur minimale est elle
dénie par la longueur du numéro, indicatif régional inclu, mais sans
indicatif national. Dans le cas précédent, il s'agirait de "791234567".
- On regarde tout d'abord la longueur du numéro qui nous intéresse :
Travail de diplôme
18
Karim Benmachiche
3.2. RÉSEAUX DE SUSPECTS
19
- Si elle est plus longue que la longueur maximale autorisée, il s'agit
alors d'un numéro de type "+41791234567" ou "0041791234567", et on
change le second si c'est le cas.
- Si elle est égale, il s'agit d'un numéro de type "41791234567", et
on ajoute alors simplement le symbole '+' devant.
- Si elle est inférieure, on regarde alors la longueur minimale, car on
a aaire à un numéro régional, à savoir "0791234567" ou "791234567".
Dans les deux cas on vas alors ajouter le symbole '+' suivi de l'indicatif
du pays (en enlevant le '0' s'il y a lieu).
- Si la longueur du numéro est inférieure à longueur minimale,
c'est qu'il s'agit d'un numéro spécial interne au pays, tel que la police,
les renseignements, des numéros spéciaux de opérateurs, etc.
Fig.
3.2. Algorithme d'uniformisation de numéro de téléphone
Karim Benmachiche
19
Travail de diplôme
20
CHAPITRE 3. NOTRE OUTIL : MOFORP (MOBILE FORENSICS REPORT
PROCESSOR)
3.2.4 Visualisation
Une fois la structure de données construite correctement avec chaque
numéro de contact présent une seule fois par ensemble, il est possible de
convertir cette structure en un graphe. Notre graphe suit les dénitions des
réseaux sociaux : un noeud représente un acteur et un lien entre deux acteurs
représente une relation. En ce qui concerne le type de relation, nous sommes
restés au niveau le plus bas possibe : en eet, le moindre appel reçu, même si
son auteur n'est pas enregistré dans le carnet d'adresses, peut être intéressant
dans une enquète. Nous n'avons donc pas fait de distinction entre les liens,
qu'ils soient un SMS, une entrée du journal d'appels, ou un contact présent
dans le carnet d'adresses.
Pour représenter le graphe correctement, nous avons choisi d'utiliser une
table de hachage an de représenter les liens entres les diérents noeuds.
En eet, un même contact peut se retrouver sur plusieurs téléphones, et
un téléphone peut également être le contact d'un autre téléphone. Il faut
donc créer une matrice de liens qui soit susament robuste an de gèrer les
diérents liens.
Pour ce qui est de l'achage du graphe, il faudra qu'il soit le plus planaire possible an de garantir une compréhension optimale des liens entre
les individus. Les liens seront non-orientés car on peut partir du principe
que si deux personnes s'appellent ou s'échangent des SMS, la connaissance
(même minimale) est réciproque. De même on peut se dire que si quelqu'un
se trouve dans le carnet d'adresse d'un téléphone saisi, les deux personnes se
connaissent.
Exemple
An d'illustrer le processus de création du graphe, le meilleur moyen est
d'étudier un exemple. Nous considérons ici cinq téléphones saisis, T1, T2,
T3, T4 et T5. Chaque téléphone possède un certain nombre de contacts. T1
possède C1, C2, C3 et C4. T2 possède C2, C4, C6, C8 et C9. T3 possède C1,
C5, C6 ainsi que T2 dans son carnet d'adresse. T4 possède T1 et T2, ainsi
que C3, C4, C7 et C9. Finalement, T5 possède T4, ainsi que C1, C4 et C6.
Représenté sous forme de tableau, cela donne la chose suivante :
Téléphone
T1
T2
T3
T4
T5
Travail de diplôme
Contact
C1,C2,C3,C4
C2,C4,C6,C8,C9
C1,C5,C6,T2
C3,C4,C7,C9,T1,T2
C1,C4,C6,T1
20
Karim Benmachiche
3.2. RÉSEAUX DE SUSPECTS
21
Il est donc évident que l'on ne peut pas construire cinq graphes distincts
indépendants les uns des autres pour chaque téléphone, puisqu'on voit par
exemple que les noeuds C4 ou T2 se retrouvent plusieurs fois. Il faut donc
créer une table de hachage, an de représenter les liens de manière unique.
Nous aurons comme clé chaque noeud, et comme valeur les noeuds auxquels
ils sont reliés. L'algorithme suivant permet de créer notre table de hachage :
- Pour chaque téléphone (ici T1 à T5) :
- On l'ajoute à la table de hachage en tant que clé, avec chacun de
ses contacts comme valeur.
- Pour chaque contact du téléphone en question :
- S'il est déjà présent parmi les clés de la table de hachage, alors
on ajoute son téléphone comme valeur.
- Sinon on l'ajoute en tant que clé avec son téléphone comme
valeur.
On peut donc ainsi génèrer la table de hachage de notre exemple, où l'on
obtient, grâce à la colonne des clés, tous les noeuds de notre graphe, avec
dans la colonne des valeurs les noeuds auxquels ils sont liés.
Table
Clés
T1
C1
C2
C3
C4
T2
C6
C8
C9
T3
C5
T4
C7
T5
de hachage des noeuds et liens
Valeurs
C1,C2,C3,C4,T4,T5
T1,T3,T5
T1,T2
T1,T4
T1,T2,T4,T5
C2,C4,C6,C8,C9,T3,T4
T2,T3,T5
T2
T2,T4
C1,C5,C6,T2
T3
C3,C4,C7,C9,T1,T2
T4
C1,C4,C6,T1
Finalement, il est possible de dériver facilement la matrice des liens à
partir de la table de hachage. En observant cette matrice, on remarque qu'il
n'y a aucun lien dans la partie inférieure droite, ce qui est évident puisqu'il
n'est pas possible de savoir si deux contacts diérents présents sur deux
téléphones diérents se connaissent. Certains noeuds ne sont également liés
Karim Benmachiche
21
Travail de diplôme
22
CHAPITRE 3. NOTRE OUTIL : MOFORP (MOBILE FORENSICS REPORT
PROCESSOR)
qu'une seule fois, et sont donc susceptibles d'être moins intéressants que les
autres.
Liens
T1
T2
T3
T4
T5
C1
C2
C3
C4
C5
C6
C7
C8
C9
T1
-
X
X
X
X
X
X
T2
T3
X
X
X
-
X
X
X
X
X
X
X
X
Matrice des liens entre les
T4 T5 C1 C2 C3
X X X X X
X
X
X
X
X
X
X
X X
X
X
noeuds
C4 C5
X
X
X
X
X
-
-
C6
X
X
X
-
X
C7
C8
C9
X
X
X
-
X
-
La dernière étape consiste à construire le graphe à partir de la table des
liens, ce qui donne le graphe représenté dans l'illustration 3.3.
Fig.
Travail de diplôme
3.3. Graphe obtenu à partir de la table des liens
22
Karim Benmachiche
-
Chapitre 4
Implémentation
4.1 Vue d'ensemble
Une fois la structure de données et les diérents algorithmes prêts, il a
été possible d'implémenter notre programme. Nous avons choisi de l'écrire
en Java, à la fois pour des raisons de portabilité du code et de librairies.
Bien que Java ait le défaut d'être lourd et peu pratique d'un point de vue
de déploiement, les librairies open source que nous avons pu utiliser pour
implémenter nos parseurs XML et Excel ainsi que la visualisation du graphe
de façon interactive sont extrêmement puissantes et justient à elles seules le
choix de réaliser ce programme en Java. La version de Java utilisée et minimalement requise pour exécuter l'application est la version 1.5. L'illustration
4.1 représente la structure de notre programme et les diérentes intéractions
entre les classes, avec les principales méthodes de chacunes d'entre elles.
La classe Moforp est la classe principale. Elle s'occupe de gèrer l'interface
graphique et tout ce qui en découle comme l'ouverture ou la sauvegarde de
chiers. C'est elle qui appelle les parseurs, XML ou XLS suivant le format
du chier souhaité. Le parseur génère ensuite la structure de données, et la
classe principale peut appeler le grapheur, en lui donnant la référence de la
structure de données à analyser. C'est le grapheur qui s'occupe de convertir
ensuite la structure de données en un graphe visuel.
4.2 Librairies utilisées
Trois librairies open-source en Java ont été utilisées. Deux sont des parseurs, XML et XLS, la troisième étant le grapheur. Nous avons également
utilisé un petit outil Java permettant de créer des exécutables pour Windows.
24
CHAPITRE 4. IMPLÉMENTATION
Fig.
4.1. Diagramme des classes de MOFORP
Digester
Digester1 est un package permettant de mapper un chier XML en une
structure objet en Java. Pour ce faire, l'utilisateur dénit certaines règles
(créer un objet, modier la valeur d'une variable, etc) à appliquer lorsqu'un
certain schéma est rencontré lors de la lecture de la structure XML. C'est
un package relativement exible, et il est possible de mapper un chier XML
dans une représentation objet à peu près équivalente en terme de mémoire.
Il est de plus facile de manipuler les règles si la structure objet ou XML vient
à changer, ce qui est important d'un point de vue de développement.
POI-HSSF
POI2 est une série d'APIs Java permettant de manipuler diérents types
de chiers basés sur le format Microsoft OLE 2. HSSF3 est le package per1 http
://jakarta.apache.org/commons/digester/
://jakarta.apache.org/poi/
3 http ://jakarta.apache.org/poi/hssf/
2 http
Travail de diplôme
24
Karim Benmachiche
4.3. DONNÉES À DISPOSITION
25
mettant de traiter les chiers Excel. Il est ainsi possible de lire, modier
ou générer des chier au format Excel facilement. HSSF fournit aussi bien
des structures de bas niveau qu'une API minimale uniquement pour lire les
chiers en lecture seule, ou encore une API complète an de lire, créer et
modier des chiers.
Prefuse
Prefuse4 est un package permettant de construire des visualisations interactives d'information. Il peut être utilisé aussi bien pour créer des applications complètes que de simples modules ou applets web. Son but est de
simplier le processus de représentation des données, en les mappant en une
représentation visuelle (par exemple par la position dans l'espace, la taille,
la forme ou la couleur), et en donnant la possibilité de manipuler cette visualisation interactivement.
JSmooth
Le but de JSmooth5 est de faciliter le déploiement d'applications Java. Un
chier executable est créé, capable de lancer l'application Java d'un simple
double-clique sans que l'utilisateur n'ait à gèrer la compilation du code avec
les librairies, ou même la présence d'une machine virtuelle Java sur son ordinateur. Au moment de l'exécution du programme, ce dernier recherche la
présence d'une machine virtuelle sur l'ordinateur, et si aucune n'est trouvée,
il propose un lien de téléchargement.
4.3 Données à disposition
Nous avons traité deux formats de données diérents, XML pour ce qui
est des rapports générés par les programmes d'exctraction, et Excel pour ce
qui est des listings des opérateurs de télécommunications helvétiques. En ce
qui concerne les programmes d'extractions, trois types de rapports XML ont
pu être étudiés : TULP2G, MOBILedit ! et le format FSS (Forensic Science
Service), qui est le format utilisé par la police scientique britannique, et qui
est supporté par MOBILedit !. Les listings d'opérateurs ont été anonymisés
pour des raisons de condentialité, dans le seul but de connaître la position
des colonnes qui nous intéressent. Tous les tests sur les numéros de téléphone
ont donc été faits à partir des rapports XML.
4 http
5 http
://prefuse.org
://jsmooth.sourceforge.net/
Karim Benmachiche
25
Travail de diplôme
26
CHAPITRE 4. IMPLÉMENTATION
Pour ce qui est du nom et du numéro de téléphone du suspect sur lequel
on enquète, ils doivent être entrés par l'utilisateur, car ces données ne sont
pas disponibles systématiquement dans les rapports. On demande également
à l'utilisateur de préciser le pays dans lequel a lieu l'investigation an de
savoir comment traiter les numéros.
4.4 Parseurs XML et Excel
Les parseurs ont deux fonctions. La première est évidente, il s'agit de
génèrer la structure objet. Mais ils possèdent également une fonction permettant de détecter le type de chier que l'utilisateur aimerait lire. Pour ce
faire on se base simplement sur la syntaxe du chier (on regarde par exemple
ce qui est écrit dans le header XML ou dans la première case de la feuille
de calcul Excel). Ceci évite que l'utilisateur n'ouvre un chier XML ou Excel quelconque et génère une Exception. Dans ce cas, une simple boîte de
dialogue est ouverte lui signalant que le type de chier n'est pas correct.
4.4.1 Rapports d'investigation XML
Digester s'occupe de créer la structure objet en lisant le chier XML
et en obéissant aux règles que nous avons dénies en fonction du schéma
XML du chier lu. On crée d'abord la liste de téléphone (PhoneList.java),
puis on lui ajoute le téléphone (Phone.java) auquel on ajoute ses contacts
(Contact.java).
Le format de TULP2G présente une particularité : il est possible de génèrer plusieurs rapports pour des investigations sur des téléphones diérents
dans un même chiers XML. Il a donc fallu rajouter la gestion de ses diérentes investigations. C'est au moment de l'ouverture du chier que l'on fait
cette vérication. Si plusieurs investigations sont disponibles, on les ache
alors dans un petit menu déroulant, et l'utilisateur a alors le choix entre
toutes les visualiser ou bien choisir celles qui l'intéressent. Cette option a
toutefois une limitation : notre programme n'est pas cable de gèrer des investigations d'un même rapport de TULP2G portant sur de téléphones de
pays diérents. Si des téléphones provenant de pays diérents sont impliqués
et doivent être visualisés, il est donc nécessaire de les ajouter au graphe de
manière séparée. Ceci est montré par l'illustration 4.2.
Pour ce qui est du rapport de MOBILedit !, nous avons rencontré un problème, à savoir que certains rapports n'ont pas une syntaxe XML correcte.
En eet, il apparaît que certaines balises ne sont pas fermées, ce qui génère
évidemment une Exception lorsque Digester essaie de parser. Nous avons
Travail de diplôme
26
Karim Benmachiche
4.5. STRUCTURE DE DONNÉES
27
4.2. Exemple de l'ouverture d'un rapport TULP2G contenant plusieurs investigations. Si l'utilisateur choisit de toutes les ouvrir, il se voit demander d'entrer
les détails du possesseur de chaque téléphone investigué
Fig.
donc dù rajouter une vérication de syntaxe, et ainsi corriger le chier XML
si nécessaire, lorsqu'un rapport de type MOBILedit ! est détecté. De plus, les
rapports MOBILedit ! sont encodés sur 16 bits au lieu de 8, ce qui a sérieusement compliqué le code de correction car Java ne manipule pas très bien les
chiers sur 16 bits (il a fallu écrire les deux bytes de header manuellement).
4.4.2 Listings Excel des opérateurs
Le parsing des chiers Excel se fait de façon plus simple. On utilise les
fonctions disponibles de POI an d'ouvrir et accèder à la cellule désirée, en
passant par la bonne feuille de calcul et la bonne colonne. POI-HSSF n'est
toutefois pas très exible, et il faut connaître le type de cellule (numérique,
chaîne de caractère) à laquelle on a aaire si l'on ne veut pas lever une
Exception en la lisant incorrectement. On lit ici les colonnes d'appels et SMS
reçus et eectués, et on regarde quel est le numéro qui ne correspond pas
au numéro de l'utilisateur an de créer le contact approprié. Ce contact ne
contient pas de nom puisqu'il n'est pas disponible dans le listing.
4.5 Structure de données
Comme on le voit dans l'illustration 4.1, la structure objet que nous avons
créée est identique à celle modélisée dans le chapitre précédent (illustration
3.1). Nous avons simplement adapté les types de structures de Java à nos
besoins. La partie la plus importante est le HashSet utilisé pour stocker
Karim Benmachiche
27
Travail de diplôme
28
CHAPITRE 4. IMPLÉMENTATION
les contacts. En eet, un HashSet permet de stocker des objets de manière
unique, c'est-à-dire qu'au moment d'en ajouter un nouveau dans l'ensemble,
il vérie qu'il ne s'y trouve pas déjà, ce qui est très pratique lors du parsing
des rapports puisqu'un même contact peut revenir plusieurs fois. Pour ce
faire, il a fallu surcharger les méthodes equals() et hashCode() an de pouvoir comparer les objets de type Contact uniquement sur la base du numéro
de téléphone, et non pas de tous les attributs de l'objet. Ceci est l'une des nécessités de l'élaboration de l'algorithme de formattage de numéros, car sinon
deux numéros de type "0041791234567" ou "+41791234567" (par exemple)
seraient insérés à double. Il a donc fallu ajouté un traitement pour les numéros spéciaux courts (police, opérateurs, etc) et leur rajouter des '0' devant,
an d'obtenir une longueur standard pour tous les numéros.
4.6 Visualisation du graphe
La réalisation du graphe a été la partie la plus compliquée, notamment
dû au fait que la documentation sur Prefuse est extrêmement minimale. Il a
donc fallu se baser sur les diérents exemples disponibles avec le code source
pour comprendre le fonctionnement interne, notamment pour ce qui est de
la création de la structure du graphe. Prefuse utilise un système de tableaux
pour stocker les informations. Un tableau contient les noeuds, chaque colonne possèdant dans notre cas la valeur du nom et du numéro de téléphone,
et un autre tableau contient les liens, avec les valeurs de noeuds sources et
destinations. Nous avons rajouté une colonne dans la table des noeuds, an
de savoir si un noeud est le propriétaire d'un téléphone (et non pas un simple
contact), ce qui permet de le colorier de façon diérente lors de la visualisation. La conversion de structure de données à graphe a été expliquée au
chapitre précédent. Le tableau des noeuds de prefuse est donc rempli grâce
aux clés de la table de hachage générée, et les liens grâce aux valeurs.
Pour ce qui est de la visualisation, nous avons choisi d'utiliser un modèle
(interne à Prefuse), de type "RadialTreeLayout", utilisant un algorithme permettant une variation de la taille, tout en maintenant des contraintes à la
fois sur l'orientation et sur l'ordonnancement des noeuds an de faciliter une
visualisation interactive et aisée pour l'utilisateur [12]. Ce dernier a la possiblité de recentrer le graphe à volonté sur le noeud qui l'intéresse, le graphe se
redéployant ainsi autour du nouveau noeud centré. L'utilisateur a également
la possibilité de déplacer les noeuds en les faisant glisser avec la souris. Seul
point négatif, cet algorithme ne gère pas la planarité du graphe de manière
optimale, mais la possibilité est donnée à l'utilisateur de pouvoir déplacer les
noeuds comme il le souhaite, ce qui en fait malgré tout la meilleure visualiTravail de diplôme
28
Karim Benmachiche
4.6. VISUALISATION DU GRAPHE
29
sation possible.
Les noeuds achent le nom du contact comme texte, et le numéro de
téléphone s'ache à l'écran lorsque le noeud est survolé par la souris. Si le
nom du suspect n'est pas disponible, alors on l'ache comme inconnu, avec
le numéro de téléphone dans le titre du noeud. Comme dis précédemment,
les noeuds des propriétaires de téléphone sont coloriés d'une autre couleur.
Le système possède également un petit moteur de recherche, permettant à
l'utilisateur de rechercher un noeud dans le graphe sur la base du nom. Si un
noeud est trouvé, alors le système l'éclaire en rouge.
Fig.
4.3. Achage d'un graphe avec activation de la recherche d'un noeud
Trois modes de visualisation sont possibles. Le premier garde tous les
noeuds du graphe tels quels. Le second garde uniquement les noeuds dont le
degré est supérieur ou égal à 2 (illustration 4.4). Le dernier est un compromis
entre les deux, il garde uniquement les noeuds dont le degré est supérieur ou
égal à 2, mais si l'utilisateur décide de centrer sa visualisation sur un noeud
propriétaire de contacts, alors il achera tous les noeuds voisins du noeud
focalisé, même si ces noeuds ont un degré de 1 (illustration 4.5).
Karim Benmachiche
29
Travail de diplôme
30
CHAPITRE 4. IMPLÉMENTATION
4.4. Achage du graphe précédent en ne gardant que les noeuds dont le degré
est supérieur à 2
Fig.
Pour réaliser ce système de modes de visualisation, il a fallu créer un
moyen d'ajouter ou supprimer des noeuds à volonté, ce qui n'a pas été chose
aisée car Prefuse n'est pas très exible de ce point de vue. Il ore la possibilité
de masquer des noeuds, mais ce système n'est pas viable car les noeuds invisibles restent présent dans le graphe, et l'algorithme de repositionnement des
noeuds les prend en compte, ce qui fait que les noeuds visibles se retrouvent
généralement tous les uns sur les autres dans une toute petite portion de la
fenêtre de visualisation.
Pour résoudre ce problème, nous avons crée un système avec deux graphes.
Le premier graphe est celui qui est eectivement aché à l'écran, auquel on
enlève ou rajoute les noeuds lorsque c'est nécessaire, tandis que le second
agit comme une structure de support. Le graphe de support contient tous les
noeuds et les liens de départ, et n'est jamais modié. Le système de Prefuse
est tel qu'il est possible de créer les deux graphes de façon identique, c'està-dire de génèrer deux tables de noeuds et deux tables de liens contenant les
même informations dans les même lignes. Pour ce qui est de la suppression
Travail de diplôme
30
Karim Benmachiche
4.7. GESTION DES FICHIERS D'ENTRÉES ET SORTIES
31
4.5. Achage du graphe précédent en ne gardant que les noeuds dont le degré
est supérieur à 2, et les noeuds voisins du noeud propriétaire sur lequel le graphe
est centré. Les voisins se trouvent ici sur la gauche.
Fig.
des noeuds du graphe aché, il sut de regarder dans la table des noeuds
de ce graphe lesquels ont un degré de 1. Mais le problème se pose lorsqu'il
faut ré-insérer les noeuds. A ce moment là, on regarde quels sont les noeuds
propriétaires, et le graphe de support possède l'information de leur liens. Il
est donc possible de recréer les noeuds de degré 1 reliés à chaque propiétaire
en récupérant l'information du graphe de support.
4.7 Gestion des chiers d'entrées et sorties
Prefuse a l'avantage de gèrer le support du format GraphML6 . Il s'agit
d'un format XML permettant de représenter des graphes. Nous avons donc
ajouté des fonctions d'ouverture et de sauvegarde de ce type de chier à
notre programme. Ainsi, l'utilisateur peut sauver le graphe qu'il a à l'écran
6 http
://graphml.graphdrawing.org/
Karim Benmachiche
31
Travail de diplôme
32
CHAPITRE 4. IMPLÉMENTATION
directement au format GraphML, ce qui lui évite de devoir ré-ouvrir chaque
rapport de téléphone l'un après l'autre s'il désire visualiser le graphe à plusieurs moments d'une enquète.
4.8 Scalabité
Le programme a été codé de façon à laisser le plus possible de possibilités de modication du code et d'ajout de fonctionnalités. Les classes de
parser possèdent chacune une fonction pour chaque type de chier à parser.
Si on veut ajouter le support pour un nouveau format, il sut de créer la
fonction appropriée (le fonctionnement de Digester est relativement facile à
comprendre, surtout en pouvant s'inspirer du travail qui a déjà été fait), et
de modier la fonction retournant le type de chier, avec les diérents appels
dans la classe principale. La structure de donnée est elle aussi facilement
modiable, même s'il ne semble pas qu'il y ait besoin de la changer dans
un futur proche. Pour ce qui est du graphe, la seule partie qu'il pourrait
être nécessaire de modier est celle s'occupant de gèrer les diérents modes
d'achage (masquage des noeuds de degré 1, etc) en y rajoutant d'autres
fonctionnalités. Le code s'occupant de ceci est assez compliqué, notamment
dù à la complexité de Prefuse, mais a été commenté susamment an de
permettre à une personne désireuse de se plonger dedans de le comprendre
relativement rapidement.
4.9 Déploiement
Le déploiement d'applications Java pose souvent problème, car l'utilisateur ne possède pas forcèment une machine virtuelle installée au moment
de lancer une application. Il est donc important de ne pas négliger la façon
dont un programme est distribué an de faciliter au mieux l'utilisation du
programme pour l'utilisateur. Nous avons donc utilisé JSmooth, qui permet
la création d'un executable an de lancer l'application d'un simple doubleclique. L'exécutable recherche si une machine virtuelle est installée sur le
système (la version mimimale requise pour exécuter le programme a été dénie au moment de la compilation de l'exécutable). Si aucune n'est trouvée,
l'utilisateur se voit proposer de télécharger l'environnement Java approprié.
Il est également possible de distribuer le JRE désiré avec l'application ellemême, et de préciser au moment de la compilation de l'exécutable quel est
le répertoire relatif où il se trouve. Nous avons donc choisi de proposer les
deux solutions, un package contenant l'exécutable sans JRE (car celà augTravail de diplôme
32
Karim Benmachiche
4.9. DÉPLOIEMENT
33
mente sensiblement la taille de l'archive, et il est inutile de l'avoir si Java est
déjà installé), et l'un avec. Le programme est distribué avec le code source
complet, sous license GNU GPL7 .
7 http
://www.gnu.org/copyleft/gpl.html
Karim Benmachiche
33
Travail de diplôme
Chapitre 5
Expérimentations
5.1 But
An de montrer concrètement les possibilités et le fonctionnement de
MOFORP, le meilleur moyen est de prendre un exemple réel. Néanmoins, il
a été très dicile de recueillir des données à partir desquelles le réaliser, car
la plupart des gens ne possèdent par forcément de câble permettant de relier
leur téléphone à un ordinateur, et d'autres ne souhaitaient tout simplement
pas y participer malgré les garanties de condentialité oertes.
Finalement, nous avons toutefois pu réaliser l'expérience suivante : nous
avons pris trois téléphones appartenant à des étudiants diplômant, et avons
tenté de reconstituer un réseau regroupant les étudiants de la même classe
en informatique de l'Université de Genève.
5.2 Candidats
Les trois téléphones auxquels nous avons eu accès sont les suivants :
Sony Ericsson K750i, appartenant à Patrick Jordan.
Sony Ericsson W300i, appartenant à Christophe Charpilloz.
Motorola Razor V3, appartenant à Karim Benmachiche.
5.3 Extraction
L'extraction des données s'est faite à la fois avec TULP2G (Sony Ericsson
K750i, Motorola Razor V3) et MOBILedit ! Forensic (Sony Ericsson W300i).
Ces extractions n'ont pas été réalisée aisément, et il a fallu un certain temps
avant de réussir à connecter les téléphones à l'ordinateur proprement sans
5.4. VISUALISATION
35
qu'il n'y ait de problèmes de drivers ou de visibilité sur le port USB. Néanmoins tout a pu se faire correctement au nal, et les trois rapports ont été
générés. Il est évident que nous ne pouvons pas les diuser dans ce document
pour des raisons de condentialités.
5.4 Visualisation
Une fois l'extraction terminée, il a été possible d'ouvrir les trois rapports
dans MOFORP. Le résultat est montré dans l'illustration 5.1.
5.1. Ouverture de trois rapports d'investigations de téléphones d'étudiants de
l'Université de Genève
Fig.
On peut tout de suite remarquer qu'il y a un certain nombre de contacts
en commun entre les trois possesseurs de téléphone, mais le nombre de noeuds
présents dans la visualisation rend impossible tout interprétation du graphe
à vue d'oeil. Il faut donc modier le mode d'achage, et l'on choisit le mode
ne gardant que les noeuds possédant au moins deux liens. Le résultat est
illustré par l'image 5.2.
Karim Benmachiche
35
Travail de diplôme
36
CHAPITRE 5. EXPÉRIMENTATIONS
5.2. Visualisation des trois rapports en mode ne gardant que les noeuds de
degré supérieur à 2
Fig.
Ce résultat donne désormais une bonne idée des liens qui existent entre
les contacts des trois téléphones. Néanmoins, les noeuds qui ont été conservés
ne sont pas forcément tous intéressants. Certains contacts font eectivement
partie de la même classe que les trois possesseurs, mais d'autres sont des
connaissances communes de l'Université, ou même externes à cette dernière.
C'est ici qu'intervient l'utilisateur, qui fait lui-même le tri entre les diérentes catégories de personnes qui l'intéressent. Dans le cas présent, nous
avons choisi de séparer en sous-groupes les gens de la même classe, les gens
de l'université, et les connaissances extérieures à l'université. Ceci donne le
résultat nal présenté dans l'illustration 5.3.
Ici, le groupe en haut à gauche représente les gens de la classe d'informatique. Les gens en bas à gauche sont les connaissances communes internes à
l'université, et le petit groupe du bas à droite les connaissances externes à
l'université. Les quatre noeuds sur la droite sont les numéros des domiciles
des possesseurs de natel investigué, et nalement le noeud intitulé "unknown"
est une entrée XML n'ayant pas pu être parsée par Digester. Certains noms
Travail de diplôme
36
Karim Benmachiche
5.5. SYNTHÈSE
Fig.
37
5.3. Tri manuel de la visualisation des trois rapports d'investigation
apparaissent à double, il s'agit en fait d'une même personne dont plusieurs
numéros diérents (domicile, portable) sont stockés dans les natels investigués, et dont les noms sont diérenciés par les modèles Sony Ericsson par
des abbréviations de type "/H" pour "Home" ou "/M" pour "Mobile".
A noter que pour des raisons pratiques et de condentialité, cette expérience a été réalisée en deux temps. La première capture d'image a été faite
au laboratoire de l'université. Les rapports ont ensuite été rouverts dans un
ordre diérent, puis le graphe a été sauvegardé en ne visualisant que les
noeuds de degré supérieur à deux, et nalement rouvert à domicile. Ceci explique la diérence d'apparence de la fenêtre, ainsi que les noms des noeuds,
qui varient en fonction de l'ordre dans lequel les rapports sont chargés.
5.5 Synthèse
Ce chapitre nous a permis d'illustrer un cas concret auquel MOFORP
pourrait être utile, à savoir comment recréer un réseau à partir d'un petit
Karim Benmachiche
37
Travail de diplôme
38
CHAPITRE 5. EXPÉRIMENTATIONS
nombre de téléphones. Nous pouvons constater que le réseau recherché n'est
pas le seul réseau a être apparu, puisque deux autres étaient également présents. Ceci est également une illustration d'un cas pouvant arriver dans la
réalité, puisqu'il n'est pas nécessaire que des contacts communs entre deux
personnes fassent parties d'un sous-réseau bien précis. Il en va donc ici de
la logique de l'enquèteur, qui doit lui-même interpréter les résultats selon
ses propres besoins. Un autre résultat intéressant apparaît dans le graphe
nal : on peut constater qu'il y a contact ressortant du graphe qui est relié à la fois aux trois possesseurs (Julien Dubath). En plus d'isoler certains
sous-réseaux potentiellement intéressants ou non, la possibilité est également
donnée d'orienter une enquète dans la direction de certains suspects bien
précis, qui ont une forte connexion par rapport aux possesseurs des téléphones investigués. Le cas étudié n'est pas idéal puisqu'il n'implique que
trois téléphones, mais cette orientation se révelèrait probablement des plus
intéressantes dans un cas plus grand.
Travail de diplôme
38
Karim Benmachiche
Chapitre 6
Travaux futurs
6.1 Amélioration des fonctionnalités
Il est évident que MOFORP est appelé à être développé dans le futur.
Notamment de par le fait que son développement se fait principalement sur
la base d'exemples de rapports et de données réelles. Deux axes d'extension
sont envisageables pour le futur : un élargissement des types de rapports et
listings pris en charges, et une amélioration des modes de visualisation.
Comme la plupart des outils permettant d'extraire de l'information de
téléphones portables sont commerciaux, il n'a pas été possible de s'en procurer un grand nombre. Si de nouveaux types de rapports venaient à être
disponibles dans le cadre du développement de MOFORP, il est évident que
nous ajouterions le support nécessaire. Pour ce qui est des listings des opérateurs d'autres pays, il est également possible de rajouter du support pour de
nouveaux types de listings. Grâce à sa scalabilité, MOFORP devrait pouvoir
être maintenu longtemps de ce point de vue.
En ce qui concerne la visualisation d'information, nous avons également
été handicapés par le manque d'exemples à disposition. Il n'a pas été possible
de réaliser de grands réseaux. On peut toutefois imaginer qu'il soit intéressant
dans le futur de rajouter de nouveaux modes de visualisation, notamment en
s'inspirant des formules d'isolation de sous-graphes inhérentes à la théorie
des réseaux sociaux.
6.2 Visualisation temporelle des actions d'un
suspect
Finalement, un dernier point mériterait d'être considéré : la création de la
visualisation des actions d'un suspect. Cette visualisation nécessite de dispo-
40
CHAPITRE 6. TRAVAUX FUTURS
ser de listings réels an de pouvoir être mise en place, et son développement
n'est donc envisageable que dans le cadre d'un travail en commun avec la
police. De plus, il serait probablement possible de réaliser cette visualisation
grâce à Prefuse, ce qui permettrait de rester dans le même style de graphisme
à l'écran. Il est évident que ce travail est soumis à de grosses contraintes
d'ordre pratique, mais il serait néanmoins très intéressant à réaliser. An
de donner une idée de la forme de cette visualisation, nous avons étudié les
nécessités et les possibilités oertes. Cette section a pour but de poser les
bases de la réexion théorique menant à la réalisation de cette visualisation.
6.2.1 Source des données
Les informations nécessaires pour pouvoir établir une telle représentation
sont le journal d'appels et les SMS, ainsi que les listings des opérateurs.
Néanmoins, pour ce qui est des SMS stockés dans le téléphones, il semblerait
qu'il ne soit pas possible de connaître la date d'envoi de messages, bien qu'il
soit possible de connaître la date de réception. Pour ce qui est du journal
d'appel, il est généralement de trop petite taille pour pouvoir donner des
informations vraiment pertinentes (généralement seuls les dix derniers appels
sont stockés). Les seules données restantes sont donc celles des opérateurs.
Les informations essentielles pouvant s'y trouver sont :
Une colonne identiant le début de la communication.
Une colonne identiant le numéro source de la communication.
Une colonne identiant le numéro destination de la communication.
Une colonne identiant le type de communication (voix, SMS, MMS,
etc).
6.2.2 Visualisation
Il serait ainsi possible, à partir de ces données, de créer une visualisation
du type illustré par l'image 6.1. L'axe horizontal du bas représente ici le temps
t, et celui du haut les diérents intervenants dans les communications du
suspect. Chaque acteur est relié à un temps t par un type de communication,
le sens de la communication dépendant de la source et de la destination. Il
faut également ajouter la possibilité de ltrer sur une période donnée, puisque
les listings portent généralement sur 6 mois. Dans notre cas, le ltre porte
sur 4 jours. Une telle représentation, qui serait générée automatiquement en
lisant un chier Excel, peut permettre un gain de temps précieux, puisque de
tels graphiques sont généralement dessinés manuellement par les enquèteurs.
Travail de diplôme
40
Karim Benmachiche
6.2. VISUALISATION TEMPORELLE DES ACTIONS D'UN SUSPECT
Fig.
41
6.1. Visualisation temporelle des actions d'un suspect
Karim Benmachiche
41
Travail de diplôme
Chapitre 7
Conclusion
7.1 But
Le but initial de ce travail était de réaliser un outil open-source permettant la visualisation d'informations extraites de téléphones portables.
7.2 Développement et résultats
Nous avons réalisé un programme fonctionnel permettant cette visualisation, capable de gèrer plusieurs sources d'informations diérentes. Les algorithmes mis en place sont stables, la structure de données également. Le
code a été écrit de façon à permettre des modications de manière aisée et
donne donc la possibilité au programme d'être amélioré. Le développement
a toutefois été limité par des contraintes d'ordre pratique, mais est malgré
tout prometteur pour le futur si des données sources venaient à être mise à
disposition an d'améliorer les possibilités de notre programme.
L'un des atouts principaux de notre outil réside dans le fait qu'il répond à
une certaine demande, puisqu'il n'existe à ce jour aucun outil ne permettant
précisément ce type de visualisation. Confronté au seul cas réel qu'il a été
possible de créer, le résultat a été conforme aux attentes et a montré les
possibilités oertes à l'utilisateur.
La diusion de manière open-source ore un intérêt supplémentaire à
notre programme. Ainsi, chaque personne désirant l'utiliser pourra l'adapter
à ses besoins, ce qui dans le cas présent est un atout non-négligeable. Il
devient en eet par exemple possible pour un enquêteur étranger d'adapter
le support aux listings fournis par les opérateurs de son propre pays. Il n'est
en eet que dicilement envisageable pour nous de gèrer un support pour
les diérents opérateurs de téléphonie mobile internationaux.
Remerciements
Les personnes suivantes ont activement contribué, de près ou de loin, à
la réalisation de ce travail de diplôme :
David Billard pour sa supervision, la liberté qu'il m'a oerte, ses conseils
et ses réponses.
Sébastien Capt pour sa disponibilité, ses conseils et ses réponses.
Patrick Jordan pour le support technique, tant Java que LATEX et sa participation à l'expérimentation.
Michel Laskowski pour la relecture, les cinq dernières années en commun,
et pour être le meilleur co-équipier quand il s'agit d'organiser le ratio
temps/travail.
Christophe Charpilloz pour sa participation à l'expérimentation.
Yacine Boussekine pour avoir osé prêter son natel en début de projet et
pour la relecture, les conseils et les bouquins de socio.
Alexandre Martin pour avoir osé prêter son natel et ses prouesses guitaristiques.
Julien Wicki pour la relecture et avoir mené le Bloody Dragon aux extrêmes
limites de la Terre.
Julien Dubath pour être toujours présent lorsqu'il s'agit de boire et manger.
Basilio Noris pour les six ans de support technique tous domaines confondus.
Björn Kruse, Reiner Pittinger et Jerey Heer des forums de Prefuse pour
leur aide et support technique vis-à-vis de cette géniale librairie.
Bibliographie
[1] Oce fédéral de la statistique. Infrastructure téléphonique en suisse,
évolution 1990-2004, 2006.
[2] Rick Ayers, Wayne Jansen, Nicolas Cilleros, and Ronan Daniellou. Cell
phone forensic tools : An overview and analysis. October 2005.
[3] Svein Willassen. Forensic analysis of mobile phone internal memory.
2005.
[4] Barrie Mellars. Forensic examination of mobile phones.
gation, 1 :266272, 2004.
Digital Investi-
[5] Amanda Goode. Forensic extraction of electronic evidence from gsm
mobile phones. 2001.
[6] Jeroen van den Bos and Ronald van der Knij. Tulp2g - an open source
forensic software for acquiring and decoding data stored in electronic
devices. International Journal of Digital Evidence, 4, Fall 2005.
[7] F. Harary.
. Reading : Addison-Wesley, 1969.
Graph Theory
[8] Reinhard Diestel.
. Springer, 3rd edition, 2005.
Graph Theory
[9] J.A. Barnes. Class and committees in a norwegian island parish.
Relations, 1954.
[10] Emmanuel Lazega. Réseaux sociaux et structures
sais-je ? Presses Universitaires de France, 1998.
[11] Pierre Mercklé. Sociologie
Découverte, 2004.
Human
relationnelles
. Que
. Repères. Editions La
des réseaux sociaux
[12] Ka-Ping Yee, Danyel Fisher, Rachna Dhamija, and Marti A. Hearst.
Animated exploration of dynamic graphs with radial layout. In INFOVIS, pages 4350, 2001.