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.