Home

ISCIA : identi cation et quali cation des adresses IP

image

Contents

1. A 2 R sultats du professeur responsables N cas R sultat Remarque test 1 3 3 1 OK 1 3 3 2 OK Exception FileNotFound si on se trompe de nom de fichier KO 1 3 3 3 OK 103 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller N cas R sultat Remarque test 1 3 3 4 KO IPBL pas impl ment gt ne pas le faire tester 1 3 3 5 OK 1 3 3 6 OK KO Indiquer les unit s dans le programme de test 1 3 3 7 OK 1 3 3 8 OK 1 3 3 9 OK KO Pas test cause du probl me des serveurs bloquant l adresse IP Comment faire pour ne pas tre bloqu d finitivement 1 3 3 10 KO Pas de dates dans les logs pas d exception en entier dans le fichier de log A 3 R sultats du mandants N cas R sultat Remarque test 1 3 3 1 OK PublicIPregionCode et PublicIPregionName en plus 1 3 3 2 KO Les trois mails avec AOL n ont pas de user agent d tect s 1 3 3 3 OK KO Il manque PublicIPQualification et First MTAIPQualifica tion mais vu que IPBL non impl ment OK 1 3 3 4 OK 1 3 3 5 OK 1 3 3 6 OK 1 3 3 7 OK 1 3 3 8 OK 1 3 3 9 OK 1 3 3 10 OK Hes Projet de Dipl me Bachelor 104 117 Annexe B Suivi du projet Temps api Temps effectu T che T che Temps vu au 15 12 10 h au 15 12 10 h Diff rence 162 5 175 87 4 2 Conception 16 8 13 77
2. Une classe par RIR 35 tends la classe ResolveDefault et red finit la m thode query pour remplir le lt WhoisResponse retourn avec le NetName et l intervalle Une classe par RIR est n cessaire car chacun formule les r ponses aux requ tes sa mani re La liste des serveurs contenue dans WhoisServerPool a t compl t e pour que les requ tes sur les adresses IP se fassent via le bon r solveur en fonction du premier byte de l adresse IP Par exemple une entr e avec la chaine de caract re 2 est d finie avec la classe ResolveRipe pour que toutes les requ tes faites sur les adresses IP 2 x x x utilisent le r solveur RIPE qui se chargera de compl ter la WhoisResponse 6 4 Limitation du nombre de requ tes whois faites en cas de r ponses nulle Le temps de r ponse d une requ te whois est d peu pr s 3 secondes Mais le temps de r ponse d une requ te whois qui n aboutit pas peut tre de plus de 20 secondes ce temps d pends du timeout d finit qui a t mis 20 secondes En partant de ce point et en consi Hes Projet de Diplome Bachelor 76 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller d rant le diagramme 6 5 page 74 la partie trouver la prochaine adresse IP publique de ce diagramme fait incr menter la recherche de une adresse IP chaque fois qu une requ te n a pas aboutit Ce qui fait que si par exemple un serv
3. Hes Projet de Dipl me Bachelor 57 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 58 117 Chapitre 6 Module Whois Selon la 37 le protocole Whois permet un client de faire une requ te sur un serveur en format texte sur le port 43 Le serveur r pond alors avec du texte Le but initial de ce protocole est de pouvoir avoir des informations contenues dans une base de donn es Ainsi la commande Whois n est l origine qu un moyen d obtenir un renseignement par un serveur sur un texte envoy voir 6 pour plus d informations La commande Whois s est adapt e l ouverture d internet et permet pr sent d obtenir des informations sur une adresse IP ou sur un nom DNS Cette commande est donc toute d sign e pour fournir des informations sur des adresses IP trouv es dans des en t tes de courriels Le module dont on parle ici a t appel Whois car c est le but qu il cherche atteindre en obtenant des informations sur les adresses IP publiques trouv es par le module IP V rification Dans ce chapitre sont donn es les sp cifications du module C est dire les contraintes auxquelles doit r pondre le module Puis vient la conception o est expliqu e la fa on dont s int gre le module dans EmailHeaderQualif et la fa on dont il est impl ment La r alisation donne des informations sur le codage du module et des adaptation
4. tre trai t s ou encore de lib rer les ressources qu ils utilisent avant leur destruction Le gestionnaire et les modules doivent donc mettre disposition des m thodes qui permettent de faire ces initialisations et finalisations Ceci implique que l APT elle m me doit mettre disposition ces m thodes La suite donne les sp cifications de l analyseur modulaire 2 1 Sp cifications Les sp cifications donn es ici sont s par es en deux parties celles du contr leur de modules et celles des modules eux m mes Ce sont les deux composantes de l analyseur modulaire 25 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 1 1 Contr leur de modules Ici sont list es les sp cifications du contr leur de modules Elles sont tir es de la r flexion situ e en d but de chapitre N Explication 2 1 1 1 Le contr leur de module g re chacun des modules disponibles et les utilise les uns apr s les autres pour traiter les en t tes 2 1 1 2 Le contr leur g re les arbres de d pendances des modules 2 1 1 3 Le contr leur de modules v rifie qu il n y a pas d inter d pendance dans les modules lors du chargement pas de boucle dans le graphe des d pendances Si il y en a une exception doit tre lev e imm diatement 2 1 1 4 Le contr leur ex cute les modules selon arbre des d pendances ceux qui n ont aucune d pendances sont ex cut s en premier puis progressivem
5. Hes Projet de Dipl me Bachelor 3 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Clel Valeurl CRLF Cle2 Valeur2 CRLF Cle3 Valeur3 CRLF Cle4 Valeur4 CRLF CleX ValeurX CRLF CRLF CRLF corps du message Dans l en t te se trouvent potentiellement toutes les informations sur le cheminement d un courriel et sur sa source Ci dessous se trouve un exemple d en t te Delivered To xxxxxxx gmail com Received by 10 100 247 17 with SMTP id ul7cs54126anh Wed 20 Oct 2010 09 11 04 0700 PDT Received by 10 150 191 12 with SMTP id o12mr269888ybf 209 1287591063755 Wed 20 Oct 2010 09 11 03 0700 PDT Received SPF softfail google com best guess record for domain of transitioning Hetty Versnel INHOLLAND n does not designate 194 171 35 18 as permitted sender client ip 194 171 35 18 Received by 10 243 50 136 with POP3 id 8mf146158gyg 27 Wed 20 Oct 2010 09 11 03 0700 PDT X Gmail Fetch Info xxxxx hotmail com 1 pop3 live com 995 xxxxxx hotmail com X Message Delivery Vj0xL E7AXM9MDtsPTE7YTOxO0Q9IMTtTQOwW9IMA X Message Status n X SID PRA Versnel Hetty lt Hetty VersnelQINHOLLAND nl gt X AUTH Result NONE X Message Info PmtKMW2ZUbIr6ef2wSNeO is sST8y9Ka9j3420DY UrvNGTTGis3zcq8EhSmLhLp SZla7hzQewPjRYq PZqjL zoJn9qabox6INhGCvfMAE Received from smtp3 inholland nl 194 171 35 18 by col0 nc3 f18 Col0 hotmail com with Micros
6. getDependencies List lt Class gt checkStarted setStarted setNotStarted PRIVATEIP PUBLICIP PUBLICIPQUALIFICATION PUBLICIPNETNAME PUBLICIPRANGE PUBLICIPCOUNTRYCODE PUBLICIPCOUNTRYNAME PUBLICIPZIPCODE PUBLICIPCITYNAME PUBLICIPLONGITUDE PUBLICIPLATITUDE PUBLICIPTIMEZONE PUBLICIPREGIONNAME PUBLICIPREGIONCODE FIRSTMTAIP FIRSTMTAIPQUALIFIQUATION FIGURE 2 1 Sch ma UML simplifi de l analyseur modulaire Il est ais de faire le parall le avec le sch ma 1 2 page 12 La classe EmailHeaderQualif repr sente API et la classe ModuleControler le contr leur de modules La classe WhoisInformations repr sente le point d entr e de ModuleControler pour le mo dule Whois Tout module doit poss der une classe du m me type C est a dire une classe qui tend la classe AbstractModule Hes Projet de Diplome Bachelor 30 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 2 3 1 Classe EmailHeaderQualif La partie visible de l ext rieure ou publique est la classe EmailHeaderQualif Cette classe n est pas instanciable et toutes ses m thodes sont statiques car elle ne sert que d interface l ext rieur et n a aucune raison d tre instanci e On r duit ainsi la quantit de m moire n cessaire et acc l re l acc s aux m thodes EmailHeaderQualif d fini trois m thodes start Son but est d initialiser les diff rents modul
7. zipcode dmaCode 77 96 cityName aeraCode longitude 99 85 metroCode latitude FIGURE 10 3 Taux d informations sur les adresses IP sources trouv es dans l chantillon Les performances de g o localisation sont tr s bonnes En effet dans presque 100 des cas l adresse IP est localis e et ce au minimum dans le pays et dans 78 des cas dans une ville Le restant des informations de g o localisation d pends beaucoup de son empla cement Par exemple metroCode qui ne peut tre donn que pour des adresses aux USA Pour ce qui est des performances du module Whois correspondants aux valeurs range et NetName il y a 13 de r sultats retourn s par EmailHeaderQualif Cette valeur peut tre augment e par la suite car les donn es du module Whois utilis es sont celles obtenues apr s le probl me de bannissement d adresse IP publique sur les serveurs RIPE et ARIN voir 8 2 pour les d tails Une fois ce probl me r solu le pourcentage de r sultats peut augmenter significativement di Projet de Dipl me Bachelor 88 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 10 2 Int gration L int gration de EmailHeaderQualif dans ISCIA ou tout autre projet n cessite quelques points d adaptation Premi rement il faut contr ler la configuration de log4j pour la journa lisation afin de rester en harmonie avec le projet dans lequel EmailHeaderQualif s int gre Deuxi mement
8. A Primer On Internet and TCP IP Tools http www faqs org rfes rfc1739 html Decembre 1994 DOMAININFORMATION DE Whois server list http www domainin formation de whoisserver _list html ROMAIN CORNU Travail de Bachelor Analyse de la source et du cheminement d un e mail 7 Aout 2010 HEIG VD Yverdon les bains WIKIPEDIA RIPE http en wikipedia org wiki RIPE 3 Novembre 2010 ABDELALI GUERID BREGUET PIERRE ROTHLISBERGER HENRI Algorithmes et structures de donn es avec Ada C et Java Collection informatique 2004 99 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 17 ORACLE Interface Comparable lt T gt http download oracle com javase 6 docs api java lang Comparable html 2010 18 ORACLE Class TreeMap lt K V gt http download oracle com javase 6 docs api java util TreeMap html 2010 19 FREE SOFTWARE FOUNDATION INC Gnu General Public Licence http www gnu org licenses gpl html 29 Juin 2007 20 ORACLE Enum Thread State http download oracle com javase 6 docs api java lang Thread State html 2010 21 FR D RIC BoussINOT EMP CMA INRIA Les threads http www sop inria fr indes rp FairThreads FT Java french presentation index html Octobre 2010 22 ORACLE Interface XMLReader http download oracle com javase 6 docs api org xml sax X M LReader html 2010 23 ORACLE Interface Serializable http download oracle com javase 6 docs api ja
9. Cette classe est la classe d entr e du module pour l analyseur modulaire Son but est de pouvoir donner l intervalle de l adresse IP publique d une machine mettrice contenue dans les donn es pass es en param tre et le propri taire de cet intervalle Elle permet d initia liser les ressources utilis es par le module et de les lib rer le thread de mise jour fait Hes so Projet de Dipl me Bachelor 64 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller partie de ces ressources Elle tend AbstractModule voir 2 2 3 3 pour pouvoir tre utilis e par le contr leur de modules de EmailHeaderQualif De plus cette classe d fini deux m thodes suppl mentaires AbstractModule accessibles uniquement dans le paquetage de la classe protected setData getData Ces deux m thodes permettent WhoisRetriever de pouvoir respectivement modi fier obtenir les donn es utilis es par WhoisInformations dans sa m thode analyse Il est important de prendre en compte que les donn es WhoisData contenues dans la classe sont en code statique Il n y a donc qu un seul jeu de donn es pour toutes les instances de la classe Ceci premi rement parce que la classe n est pas cens e tre instanci e plusieurs fois Mais aussi pour des raisons d optimisation c f 2 3 1 Il en va de m me pour le thread de mise jour qui est d fini en statique dans la classe Ceci permet de l
10. Mozilla Thunder bird serA gent Outlook serAgent AOL Mail asa UserAgent Yahoo Mail UserAgent Mozilla Thunder bird null UserAgent Mozilla Thunder bird UserA gent Outlook UserAgent Mozilla Thunder bird Hes Projet de Dipl me Bachelor 20 117 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller N cas N Description R sultat attendu test sp cifi cation Il doit y avoir avec les deux tests au moins une fois chacun des re tours possibles d finis dans le ca hier des charges list s ci dessous et aucune cl n a pas de valeur associ e UserAgent PrivatelP 1 3 1 6 Lancer les modules lancer une Cut 1 3 3 3 1 3 1 8 analyse sur le fichier testAll txt i 1 3 1 15 et privatelP txt eee PublicIPRange PublicIPcountryCode PublicIPcountryName PublicIPzipcode PublicIPcityName PublicIPlongitude PublicIPlatitude PublicIPmetroCode PublicIPaeraCode PublicIPdmaCode PublicIPtimeZone FirstMTAIP First MTAIP Qualification 1 3 3 4 1 3 1 16 Lancer une analyse sur le fichier Il doit y avoir les champs test All txt PublicIPQualification Publi clPQualification2 First MTAIP Qualification et First MTAIP Qualification2 Ils doivent tous tre renseign s 1 3 3 5 1 3 1 17 Lancer une analyse sur le fichier la valeur null doit tre obtenue en testEmpty txt r sultat 1 3 3 6 1 3 1 19 Lancer une analyse sur le
11. arr t de EmailHeaderQualif doivent tre journalis s 1 3 2 6 Tout ce qui n est pas pr cis pr c demment n est pas journalis 1 3 3 Cas tests Le fichier de log auquel on se r fert dans les cas tests s appelle EHQlog log et se trouve dans le r pertoire d ex cution du programme Il est conseill de lire le manuel d utilisation du programme de test avant d effectuer ces cas tests Ces cas test ont t labor s pour couvrir les sp cifications et le cahier des charges Ils ont aussi t labor s partir des tests faits dans 14 N cas N Description R sultat attendu test sp cifi cation La liste fournie correspond pr ci s ment la liste d finie dans le cahier des charges UserAgent PrivatelP PublicIP PublicIP Qualification PublicIPNetName PublicIPRange PublicIPcountryCode PublicIPcountryName PublicIPzipcode PublicIPcityName PublicIPlongitude PublicIPlatitude PublicIPmetroCode PublicIPaeraCode PublicIPdmaCode PublicIPtimeZone First MTAIP First MTAIP Qualification PublicIPQualification ne com porte pas de num ro C est lors de l ajout d une qualification que le num ro est ajout automati quement Il en va de m me pour FirstMTATP Qualification Lancer le programme de test et 1 3 3 1 1 3 1 5 choisir l option afficher les retours possibles Hes Projet de Dipl me Bachelor 19 117 Haute Ecole d Ing nierie et de Gestio
12. lt resources gt Hes Projet de Dipl me Bachelor 108 117 Annexe D Manuel utilisateur du programme de test Ce manuel permet de mettre en place l environnement appropri pour tester EmailHea derQualif et explique les fonctions et l utilisation du programme de test Il faut savoir que la structure du programme de test a t reprise du programme de test fait par Romain Cornu dans son travail 14 D 1 Installation de l environnement Pour pouvoir lancer les tests il faut disposer du JREet du fichier jar contenant le pro gramme de test et API compl te Dans la suite de cette section sont donn s les m thodes d installation du JRE D 1 1 Installation du JRE Cette section s inspire du cite officiel java 5 Il sera d crit ici de fa on simplifi e l instal lation pour Windows et Linux du JRE Pour plus d informations se r f rer 5 Vous devez disposer des droits administrateur pour pouvoir faire cette installation D 1 1 1 Installation sous Windows 1 Aller sur la page http www java com fr download manual jsp et t l charger la version 6 x du JRE correspondant votre syst me d exploitation 2 Double cliquer sur le fichier t l charg 3 Accepter les termes du contrat de licence 4 L installeur peut proposer des programmes suppl mentaires Ils ne sont pas n ces saires au bon fonctionnement du programme de test Il n est donc pas n cessaire de les s lectionner pour installation 5 l
13. tions La section suivante donne la conception d coulant de ces contraintes et en prenant compte de la conception de l analyseur modulaire 6 2 Conception Ici sont trait s les diff rents points soulev s dans la sp cification pour en faire une structure de code et de fonctionnement pour le module Puis est donn e la structure du module et son fonctionnement Ensuite est d taill e la m thode de stockage et d acc s des donn es et la gestion de la mise jour des donn es Le but de ce module est donc d obtenir un intervalle d adresses IP et son propri taire en fonction de l adresse IP publique fournie Premi rement il faut prendre en compte que ce module poss de le cycle de vie d fini dans 2 2 3 2 avec les deux tats d marr et arr t Deuxi mement pour pouvoir s int grer correctement EmailHeaderQualif le module doit poss der une classe qui tende la classe Hes Projet de Dipl me Bachelor 60 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller AbstractModule c f 2 2 3 3 C est le point d entr e du module Le module doit disposer d une adresse IP publique analyser C est l adresse publique qui est extraite par IP Verification ce qui implique une d pendance sur ce module pour Whois Pour pouvoir obtenir des informations il est clair qu il serait possible d ex cuter une re qu te whois sur un serveur et d en interpr ter le r sultat
14. valuation coh rant durant le temps imparti ce travail En d finitive ce qui sera retourn ce sont les informations suffisamment fiables qui peuvent tre obtenues de l en t te Traitement des en t tes Hes Travail de dipl me de Muller Nicolas page 2 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Les en t tes fournis peuvent contenir plusieurs informations Le travail de R Cornu faisant d ja de l extraction d adresses IP la d tection de l agent utilisateur et la g o localisation il devra tre int gr sous forme de modules dans le projet EmailHeaderQualif et adapt aux besoins de celui ci L extraction d adresses IP devra tre adapt e pour extraire toutes les adresses IP trouvables et pertinentes dans une investigation IPs publique et priv e de la machine mettrice et IP publique du premier MTA Les informations sur les adresses IP ainsi extraites peuvent tre obtenues par deux moyens Le premier tant des serveurs fournissant des listes noires Le deuxi me tant les bases de donn es telles que RIPE qui stockent des informations sur les diff rentes adresses IP et intervalles ainsi que sur les propri taires de ces adresses Ces bases peuvent tre consult es l aide de la commande whois Il en d coule deux modules r alisables un module de qualification par liste noires IPBL et un module d informations IP par whois Il est important pour l utilisateur qu il puisse estimer la p
15. Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller tan 4 ys fl fl ys fe fL fl fz a N fs fl fl f a N fe fe fer fl Ub fe fl Ub Is fl Up fl fe fl Up 72 fl fl i f fl fl fl i fe fz fl fe fe fl for IAINS UOIQeWUSWNIOG S3NA33 U3 JANS a SIOUM 32 18d UONPPI EA UO1221109 SIOYM 33 19d S3INPOW UONPPLA uorepijeA SU0I1231109 Jn s jeuy UONEPneA UO JePneA a 2uy oddey 104u3 yoddes uoresijeur4 apo Np 2 913U09 18dl 110ddey sioym Joddey 23J181p341J3 U1 310ddeJ 1oAUZ 33181p314J33U1 oddey Jn s jeuy 310ddey podde SU01P231109 S2J1PJIUN sysop abepo uO1 d3 U0 suoneynads Ya 18di di SaJ10U sajs 3INPOW SU01P231107 S31PJIUN SISAL 26epo2 uonda2uo suone21ynads sjoym di suoyeuioqu a NPOW U01 23JJ0D S3JI931UN SISAL quaBy Jasn ajnpow np uonebaqui 13851 2907 035 ajnpow np vonesb37ul diuone2ynenb ap ajnpow di p Jnasfjeuy di P IN3JPIYLSA di P naea 1UO 18913149A di 3INPOW 152 ap awweJ60J4 sa npow ap Jna 9Jquo ainj2ns3s abepod uoljdaau0 gt suone ynads A 3JJEINPOW INIS JLUY a OLOZ PO 8L fosd np 1nq2a ys fzp paulewas 8pauiewas paujewas opaulewas spaulewas ppaulewas epaulewas zpaulewas LpaujeWas yenes 1 1 r 1 T 1 T 1 1 1 1 1 1 1 1 f H3 nendJapesHypew3 a WON ToL VoL OL vst est ost VSL si Srl Evil ol srl viril e
16. Si cela arrive le d marrage est annul les modules pr c demment d marr s sont arr t s toutes les erreurs sont journalis es 2 2 3 2 3 Traitement des requ tes Le diagramme d activit ci apr s repr sente le traitement effectu par le gestionnaire de module pour les requ tes re ues Sent gt Gestionnaire d marr Gestionnaire non d marr ever une ex Journaliser l erreur A un param tre est nul z amp P Journaliser l erreur Aucune exception lev e aucun param tre null Un module n a pas t utilise Utiliser le module pour l analyse Exception lev e par le module tout les modules ont t utilis s Journaliser l erreur Retourner le r sultat FIGURE 2 2 Diagramme d activit de l analyse d une requ te par le gestionnaire de mo dules Il est montr ici que le seul moment o cette partie de l analyseur modulaire l ve une exception c est quand il n a pas t pr alablement d marr Les exceptions lev es par les diff rents modules ne sont pas prises en compte ni la mauvaise formulation de requ te param tre null Hes Projet de Dipl me Bachelor 32 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 2 3 3 Classe AbstractModule Ce paragraphe traite de la classe abstraite que doit impl menter tout module Le but de cette classe est d avoir un moyen uniforme pour le contr leur de module
17. apporter la g o localisation pour qu elle s int gre correctement au syst me modulaire mis en place Ceci est fait dans l analyse S ensuit la conception dans laquelle est donn e la structure mise en place pour prendre en charge cette fonctionnalit et finalement les tests unitaires mis en place sur les diff rentes classes du module 4 1 Analyse La g o localisation telle qu elle a t faite dans 14 permet d obtenir des informations sur une adresse IP routable grace la m thode HashTable geoLocalisationIP Inet Adress ip Plusieurs ressources sont utilis es par cette m thode Une adresse IP routable analyser Une base de donn es pour la g o localisation contenue dans un fichier Un fichier de configuration d finissant diff rents param tres pour la base de donn es indiquant l intervalle temporel de mise jour de la base de donn es et l emplacement du fichier de donn es Globalement la m thode geoLocalisationIP utilise la base de donn es contenue dans le fichier GeoliteCity dat pour g o localiser une adresse IP Cette base de donn es doit tre mise jour a intervalles r guliers L intervalle de temps de mise jour est d finit dans le fichier de configuration ainsi que l emplacement du fichier de donn es La gestion de ces ressources doit tre prise en compte dans le module de g o localisation Normalement ces ressources devaient tre g r es directement en interne dans le trav
18. sujet n a t trouv Le chapitre suivant traite des diff rentes informations qu une commande whois retourne 1 1 3 whois La commande whois permet d obtenir des informations sur une adresse IP ou un nom DNS Ci apr s se trouve un exemple de r sultat d ex cution de commande whois sur l adresse IP 11 22 33 44 Query terms are ambiguous The query is assumed to be n 11 22 33 44 Use to get help C HR RE The following results may also be obtained via language Octave choose the language of the code basicstyle footnotesize the size of the fonts that are used for the code numbers left where to put the line numbers numberstyle footnotesize the size of the fonts that are used for the line numbers stepnumber 2 the step between two line numbers If it s 1 each line Hes Projet de Dipl me Bachelor 7 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller will be numbered numbersep 5pt how far the line numbers are from the code backgroundcolor color white choose the background color You must add usepackage color showspaces false show spaces adding particular underscores showstringspaces false underline spaces within strings showtabs false show tabs within strings adding particular underscores frame single adds a frame around the code tabsize 2 sets default tabsize to 2 spaces cap
19. 1 Analyse Comme dis dans le chapitre pr c dent la classe UA_IPSource_IPLocIP fournit les diff rentes m thodes faites dans 14 et notamment la m thode String findUA Map lt String String gt header Map lt String String gt firstReceived Cette m thode permet d ob tenir l agent utilisateur contenu dans un en t te de courriel pass en premier param tre Le deuxi me param tre est le premier received qui se trouve dans l en t te le plus vieux Il ne cera pas trait ici de la fa on dont UA_IPSource_IPLocIP obtient ces informations car c est un travail qui a d j t fait dans 14 mais uniquement des points de son int gration tels que les ressources utilis es et la structure mettre en place pour l int grer Pour pouvoir faire son travail cette m thode utilise indirectement des fichiers XML d finissant des r gles de d tection d agent utilisateur Plus pr cis ment les fichiers Full Trace xml et PartialTrace xml de plus un fichier de configuration configFindUA xml est aussi utilis La gestion de ces fichiers se passe directement durant l appel de la m thode findUA La m thode va charger les conifguration lors de son premier appel Puis lors des appels sui vants elle va recharger ces fichiers si un certain laps de temps d finit dans le fichier de configuration c est coul depuis le dernier chargement Cette fa on de g rer les change ments de fichier fait que a ne corre
20. 2 est contr l e ainsi que le constructeur qui ne doit pas pouvoir prendre de param tre null sans lever une exception Le constructeur doit aussi prendre deux adresses IP ordonn es la deuxi me doit tre plus grande que la petite IP La comparaison de deux adresses IP et d une adresse IP avec un intervalle tels que d finis dans 6 2 2 sont test s La cr ation d une adresse IP avec un format incorrect est contr l et l obtention d une adresse IP partir d une autre adresse que l on incr mente est contr l notamment le comportement aux bornes 0 0 0 0 et 255 255 255 255 Le chapitre Whois se termine ici Le chapitre suivant traite du module IPBL Hes Projet de Dipl me Bachelor 78 117 Chapitre 7 Module IPBL Le module IPBL n est pas impl ment en raison du temps disposition Il a t d cid que cette partie serait donn e pour un prochain travail de dipl me car la quantit de travail qu elle comporte est tr s cons quente Cependant une structure de base a t mise en place pour pouvoir int grer facilement ce futur travail dans les modules Elle est d crite dans ce chapitre en suivant la structure d analyse conception r alisation et Tests 7 1 Analyse Comme tout les autres modules celui ci doit poss der une classe servant de point d entr e pour le gestionnaire de modules C est ce qui a t mis en place ici Il n y a donc qu une seule classe cr er qui s appelle IPBLCh
21. Bachelor 34 117 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller A BC A O 1 0 M4 Bi 1 0 0 CNO 0 0 Enlever les d pendances C ne change pas la matrice Il est impossible d enlever les d pendances de B ou de A On arrive donc un graphe qui comporte toujours des arcs ce qui indique une d pendance circulaire C est comme ceci que fonctionne l algorithme de r solution des d pendances De plus durant cette r solution il faut trouver l ordre d ex cution des graphes pour viter les erreurs de d pendances durant le traitement des requ tes Pour ce faire il suffit qu chaque fois que les d pendances d un module sont enlev es il soit consid r comme un mo dule a ex cuter avant les modules ayant encore une ou plusieurs d pendance On obtient donc ainsi un ordre d ex cution Tout le d veloppement et le test de cet algorithme a un co t Cependant en consid rant que l ajout de module dans le projet n est pas vraiment un v nement qui survient souvent au mieux quelques mois d intervalle le temps pris d velopper cette fonctionnalit est un peu exag r Le contr le des d pendances la main avant chaque ajout de nouveau module aurait t moins co teux Cependant cette consid ration n a t faite qu apres le d veloppement de cet algorithme Il est donc en place 2 2 5 Fichier de configuration Le fichier de configuration du module est au format XM
22. Bachelor 91 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 92 117 Table des figures 1 1 1 2 1 3 2 1 2 2 3 1 4 1 4 2 9 1 9 2 6 1 6 2 6 3 6 4 6 5 6 6 7 1 10 1 10 2 10 3 D 1 D 2 D 3 R partition des diff rents botnets source 10 octobre 2010 6 Vue globale du projet i ears a snaa ged ns Bee Pak e A ede APE 12 Diagramme de Gant de la Planification 16 Sch ma UML simplifi de l analyseur modulaire 30 Diagramme d activit de l analyse d une requ te par le gestionnaire de modules 32 Sch ma UML de IP Verification 43 Diagramme de classe simplifi du module de g o localisation 48 Diagramme d activit du thread de mise jour des donn es de g o localisation 49 Diagramme de classe simplifi du module user agent 54 Diagramme d activit du thread de mise jour des donn es de UserAgent 55 Diagramme d activit du thread de mise jour du module Whois 62 Diagramme de classe simplifi du module Whois 64 Comparaison d intervalles 70 Gestion des intervalles englobants 71 Diagramme d activit de mise jour des donn es Whois 74 Diagramme de classe simplifi du code source Whois utilis 76
23. Diagramme de classe du module IPBL 79 Pourcentage de r sultats sur un chantillon de donn es 86 R partition des addresse IP source trouv es dans l chantillon 87 Taux d informations sur les adresses IP sources trouv es dans l chantillon 88 M nu prinGipal s a due a deu 24 boa bane MA RO Ge Bee AL 111 Format d affichage de la journalisation 114 Modification du niveau d affichage de log4j 115 93 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 94 117 Glossaire Notation Description Page List CRLF ISCIA Nigerian Connection 7 RMI SpamHaus donn es locales g o localisation nslookup phishing received spam Cariage Return Line Feed Indique un retour de chariot et un saut de ligne cons cutif pour marquer la fin d un en t te et le d but du message correspondant Internet Surveillance for Criminal Intelligence Analysis Arnaque connue qui utilise la cr dulit des gens pour leur faire verser des sommes pour aider une personne voir 7 pour plus d informations Remote Method Invocation interface de programmation API pour le langage Java qui permet d appeler des m thodes distantes 9 Organisation de listage d adresse IP Donn es utilis es par les modules Module de g o localisation d une IP nslookup est
24. OrgTechRef http whois arin net rest poc REGIS10 ARIN ARIN WHOIS data and services are subject to the Terms of Use available at https www arin net whois_tou html Les lignes pr c d es d un sont des commentaires ajout s automatiquement par le serveur qui r ponds la requ te Le restant est sous la forme cl valeur et donne les informations disponibles dans la base de donn es du serveur r pondant la requ te Il s y trouve une liste d informations int ressantes disponibles d crites ci apr s NetRange Intervalle d adresses dans laquelle se trouve l adresse IP NetName Nom de l organisation laquelle appartient cette adresse Le champ OrgName ou Org Name fournit aussi cette information et souvent de mani re plus explicite Le restant des informations varie selon la base de donn es utilis e pour r pondre la re qu te whois En effet plusieurs organismes sont charg s de g rer les adresses IP C est a ces organismes que la requ te est adress e selon le type d adresse Dans l exemple ci dessu c est ARIN voir 25 qui r ponds la requ te Si la requ te est faite sur une adresse IP eu rop enne tel que 178 198 134 179 ce sera RIPE voir 15 qui va r pondre l organisme de gestion europ en Ces organismes se nomme RIR Registre Internet R gional 35 et sont ARIN RIPE APNIC LACNIC et AfriNIC Chacun a une facon diff rente de r pondre La notion de cl va
25. Performances Une fois le projet termin des statistiques de performance de EmailHeaderQualif ont t effectu es sur un jeu de courriels fournit par le mandant Ce jeu de donn es est fournit sous forme de fichiers texte repr sentant des courriels Ces fichiers se trouvent dans l annexe E dans le r pertoire fichiers test TestAll La taille de l chantillon est de 35262 courriels Dans ces courriels deux d entre eux sont sans received Ces deux cas ne repr sente donc que 0 01 du jeu de donn es Leur impacte est donc n gligeable Le graphe suivant repr sente le pourcentage de r sultats obtenus dans cet chantillon R sultats trouv s dans les courriels 90 00 84 18 80 00 70 00 60 00 50 47 53 4 20 00 10 00 6 49 Adresse IP Agent utilisateur Adresse IP Aucun r sultat premier MTA envoyeur FIGURE 10 1 Pourcentage de r sultats sur un chantillon de donn es EmailHeaderQualif a donc permis d obtenir des informations sur plus de 73 des courriels de l chantillon Ce qui est une tr s bonne performance Plus significatif dans 84 des cas une adresse IP de machine mettrice est trouv e et dans 50 des cas une adresse IP de premier MTA a pu tre trouv e Ces adresses IP sont sujettes interpr tation car il n est pas garanti qu elles soient 100 pr cises certaines peuvent tre forg es par exemple Mais dans le cadre d une investigation cela offre une capacit de recoupement non n g
26. PrivatelP 192 168 0 1 IPSource_R_P UA Y txt PublicIP 44 55 66 77 IPSource_ XOI P_ UA H txt PublicIP 44 55 66 77 IPSource_ PublicIP txt PublicIP 209 85 227 103 IPSource_ PrivateIP txt PrivatelP 192 168 1 1 IPSource_ PublicMTA txt First MTAIP 20 23 24 25 IPSource_ PrivateMTA txt r sultat null IPSource_ MalformedIP txt r sultat null IPSource_ MalformedMTAIP txt r sultat null 1 3 3 9 1 3 1 22 Attention ce test peut prendre 1 3 1 24 plusieurs heures cause de la 26 mise jour des donn es 1 3 2 3 5 Hes Projet de Dipl me Bachelor 22 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller N cas N Description R sultat attendu test sp cifi cation Dans le fichier config WhoisMo Il doit tre indiqu dans les logs dule xml qui se trouve dans le que les mises jour pour les jar modifier whoisData dat en modules IPBL g o localisation et whoisDataOld dat Copier le whois sont faites Il est possible fichier whoisDataOld dat bak que la mise jour du module en le nommant whoisDa whois ne soit pas termin e Elle taOld dat stopper les modules peut prendre plusieures heures lancer les modules et attendre Les notifications de chargement la fin du lancement retour au r ussi ou chou s apparaissent menu principal Ne pas oublier dans les logs GeoIP dataSource de r tablir les fichiers xml leur has been not
27. appel analyseur mo dulaire puis des diff rents modules qui le composent Ensuite il y a un chapitre consacr la validation du travail effectu et finalement se trouve un retour sur le d roulement du projet et la conclusion Dans la suite de ce chapitre se trouvent la pr tude qui a permis d tablir le cahier des charges une partie des sp cifications et la structure du projet Puis se trouve la planifica tion du projet telle qu elle a t d cid e en fonction du cahier des charges 1 1 Pr tude Une pr tude de deux semaines a t faite pour tablir le cahier des charges et les sp cifi cations du projet Elle a aussi permis de d finir une structure au projet Dans la suite de cette section se trouve les diff rentes r flexions et analyses en d coulant La plus grande partie des deux semaines a t utilis e pour essayer de trouver les diff rents buts moyens et raisons de qualification Il a aussi fallu d finir la liste des diff rentes qua lifications possibles pour le cahier des charges et le moyen de qualifier des adresses IP Durant cette pr tude ont t fait le listage des buts et des moyens dont dispose Email HeaderQualif pour faire son travail mais aussi des r flexions sur son fonctionnement Le principal l ment voir est le cheminement d un courriel De l envoyeur au destinataire il y a plusieurs points de passage En partant du destinataire pour remonter l envoyeur il y a en premie
28. car son d veloppement est suppos court et pourra tre inscrit durant la premi re validation Apr s cette t che il sera possible d obtenir le user agent partir d un en t te de courriel Int gration du module G o Localisation Ce module est aussi inclus dans l analy seur car son d veloppement est suppos court et pourra tre inscrit durant la premi re validation Apr s cette t che les IP publiques pourront tre g o localis es Module informations IP whois Ce module est s par de l analyseur modulaire car le travail fournir pour son d veloppement est cons quent De plus les risques temporels qu il repr sente sont plus grands car aucun code source permettant de faire des requ tes whois n a t trouv pour l instant Apr s cette t che il sera possible d avoir des informations suppl mentaires sur les adresses IP publiques telles que l intervalle d adresses comprenant cette adresse Hes Projet de Dipl me Bachelor 14 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Module listes noires IP IPBL Tout comme le module whois le d veloppement de ce module est cons quent De plus cette partie est si le temps le permet Elle est donc s par e de l analyseur modulaire la fin de cette partie il sera possible de qualifier les adresses IP extraites Rapport Cette t che comprend plusieurs sous t ches pour chacune des phases du projet Le but est la r d
29. dans l en t te puis la liste des receiveds du dernier ins r au premier ins r D 2 3 1 2 R sultat des appels PAPI Les r sultats sont affich s selon le sch ma suivant Clel valeur cle2 valeur cleX valeur Chacune des valeurs possibles de retour est donn e dans le cahier des charges D 2 3 2 Informations d ex cution de l API Durant l ex cution du programme de test des informations sont affich es durant les appels la m thode headerQualif Plusieurs niveaux d informations sont donn s en se basant sur log4j et le format d affichage est un peu sp cial Ils sont tous les deux expliqu s dans la suite de cette section Hes Projet de Dipl me Bachelor 113 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller D 2 3 2 1 Niveau d information Le programme de test se base sur les logs de Email HeaderQualif pour faire l affichage des informations d ex cution log4j tant utilis pour faire cette journalisation il est important de comprendre son fonctionnement de base pour pouvoir en faire une interpr tation C est ce qui est expliqu ici Plus d informations sur log4j peuvent tre trouv es sur 4 log4j utilise des niveaux de journalisation La diff rence entre ces niveaux vient de leur importance Ci apr s se trouve une br ve description de chacun d eux de la priorit la plus haute la plus basse OFF Niveau le plus haut de journalisati
30. fichier JAR de EmailHeaderQualif L intervalle de mise jour peut tre d finie en mois jours heures minutes L option mi nutes a t prise pour faciliter les tests Le format pour indiquer l intervalle est xT o x est un entier et T est gal m d h min pour respectivement mois jours heures minutes Voici un exemple de fichier de configuration lt configurationWhoisModule gt lt dataFileLocation gt whoisData dat lt dataFileLocation gt lt updatelntervall gt 5m lt updatelntervall gt lt configurationWhoisModule gt Ce choix de structure s inspire du travail 14 Ce fichier ce trouve dans le fichier EmailHeaderQualif jar disponible sur le DVD dans Pannexe E et aussi dans le r pertoire de projet src main java ressource sur ce m me DVD L analyse et la sp cification du module ont t faites La section suivante traite la r alisation de ce module 6 3 R alisation Dans ce chapitre sont donn s les points importants r v l s durant la r alisation C est l adaptation du code source trouv et la gestion des r ponses infructueuses lors de requ tes whois 6 3 1 Adaptation du code source trouv Le code source trouv sur 28 a d tre adapt Son code source ne se trouve pas dans le m me r pertoire paquetage que le restant du projet vu qu il a t repris et par respect pour son auteur Il se trouve dans le r pertoire src main java org neverfear who
31. findUA de UA_IPSource_IPLocIP pour pouvoir obtenir l agent utilisateur partir de l en t te qui lui est fournit UserAgentModule poss de un thread de mise jour UADataChecker d finit en statique pour viter les threads de mise jour concurrents Ce thread va utiliser la classe UserAgent pour g rer les mises jour Une description plus d taill e de ces classe ce trouve dans la suite de ce document 5 1 1 Classe UserAgentModule Cette classe tends AbstractModule pour donner le point d entr e au gestionnaire de module ce qui permet de mettre en place les fonctionnalit s n cessaires sa gestion Sa m thodegetDependencies retourne une liste vide car ce module ne d pends d aucun autre UserAgentModule poss de en attribut statique un thread de gestion des donn es nomm UADataChecker qui s occupe de g rer les mises jour Il est d taill ci dessous Ce thread Hes Projet de Dipl me Bachelor 54 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller est cr et initialis durant le chargement du module m thode start Il est arr t la fermeture du module m thode close En dehors de ces deux m thodes le thread est ind pendant de UserAgentModule La classe repr sentant ce tread est d taill e ci apr s 5 1 2 Classe UADataChecker La gestion de la mise jour des donn es par cette classe est reprise du module de g o localisation Ce
32. il tait possible de l escroquer Avec la d mocratisation d internet est apparu un nou veau moyen d arnaquer les gens Ce moyen est le courriel De fa on quasiment anonyme il est possible d adresser un message quelqu un en le prenant parti en lui d crivant par exemple une situation qui le touche Si la cible de l escroquerie a le malheur de r pondre cette sollicitation il y a de fortes chances qu elle se fasse arnaquer Toute personne ayant une adresse de courriel qu il utilise un temps soit peu re oit r guli rement des spam Ce sont pour la plupart des messages publicitaires Mais nombre d entre eux sont aussi des tentatives d arnaque Pour n en citer que deux ce peut tre du phishing par ex lien sur un faux site de la poste o il faut entrer son identifiant et son mot de passe qui sont ensuite r cup r s pour une utilisation frauduleuse ou une arnaque simple visant payer des frais pour aider l arnaqueur se sortir d une situation compliqu e aussi appel Ni gerian Connection 7 Le montant de ces arnaques est estim 20 millions de dollars sous plainte selon 7 rien que pour les Pays Bas Et il faudrait toujours selon la m me source le multiplier par 10 pour prendre en compte le montant r el de ces arnaques Le projet ISCIA Internet Surveillance for Criminal Intelligence Analysis d velopp au sein de le HES SO a entre autres pour but d acqu rir et d analyser des pourriels pour in
33. liste des donn es pose probl me Et l ajout d un intervalle contenu dans un autre intervalle pose galement pro bl me Certes ces deux cas ne devraient th oriquement pas survenir Mais cela peut arriver Ne serait ce que par le risque de changement des donn es sur les serveurs durant la mise jour Mais en plus comme dit en 6 2 2 1 il faut rendre les intervalles comparables et les adresses IP aussi Il faut donc d finir une politique de traitement pour l ajout et la recherche de donn es C est la fa on dont on impl mente l interface Comparable qui va entrer en jeu Mais il faut aussi modifier le comportement par d faut de la TreeMap comme il est expliqu dans la suite Premi rement voici les diff rentes possibilit s de comparaison entre deux intervalles Intervalle originale tendue Emplacement Classement 1 Egal gal Au m me endroit 2 Englobante Chevauchant Non classable 3 Chevauchant Chevauchant Non classable 4 Chevauchant Chevauchant Non classable 5 Diff rente Apr s Apr s a 6 Englobante Chevauchant Non classable 7 Chevauchant Chevauchant Non classable 8 Chevauchant Chevauchant Non classable 9 Diff rente Avant Avant EA 10 Englob e Chevauchant Non classable hii FIGURE 6 3 Comparaison d intervalles Cette figure s interpr te comme suit L intervalle d adresses IP original est celle en bleu Les deux traits noirs descendants repr sentent les adresses IP de d but et de
34. me qui permettra d identifier de mani re plus efficace puis de qualifier les adresses IP sources l origine de ces messages malveillants Apr s avoir analys les besoins et effectu l tat de l art des techniques permettant d identifier p ex moteurs de spam et de qualifier les adresses IP actives sur Internet listes noires de zombies de serveurs pirat s etc il s agira de concevoir et d velopper en Java un module pr sentant une simple interface mais effectuant en amont toutes les recherches n cessaires p ex analyses maintenance de bases de donn es locales etc Hes Travail de dipl me de Muller Nicolas page 1 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Cahier des charges Le module r aliser que nous nommerons EmailHeaderQualif fournit un m canisme modulaire d analyse d en t te de courriel et de qualification via une API Il permet d obtenir diff rentes informations sur les en t tes Ce syst me modulaire doit tre extensible C est dire que des nouveaux modules d analyse doivent pouvoir tre ajout s EmailHeaderQualif par la suite et de fa on simple On entend par simple une intervention quasi nulle dans le code existant Id alement il devrait suffire de cr er et de compiler la classe correspondant un module et de d poser le fichier de la classe compil e au bon endroit pour que le module en question soit pris en compte Cet id al est videmment difficilement atteig
35. une commande permettant d obtenir le nom DNS correspondant une adresse IP L hameconnage ou phishing et parfois filoutage est une technique utilis e par des fraudeurs pour obtenir des renseignements personnels dans le but de perp trer une usurpation d identit 2 l ments ins r s dans un en t te de courriel par chacun des MTA Le spam pourriel ou polluriel est une communication lectronique non sollicit e en premier lieu via le courrier lectronique Il s agit en g n ral d envois en grande quantit effectu s des fins publicitaires 8 1 8 11 20 29 16 29 11 10 24 95 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Z icolas Muller Notation Description Page List user agent Logiciel ou service web utilis pour envoyer 1 10 un courriel 11 16 22 API Application Programm Interface Interface 8 19 de communication avec un programme par un programme tiers botnet Un botnet est un ensemble de bots 5 informatiques qui sont reli s entre eux Historiquement ce terme s est d abord confondu avec des robots IRC bien que le terme ne se limitait pas cet usage sp cifique qui tait un type de botnet particulier servant sur les canaux IRC DNS Domain Name System 7 headerQualif Nom de la m thode de qualification fournie 10 11 pour le projet 14 17 24 25 IP Une adresse IP avec IP pour Internet 1 3 40 Protocol est un num r
36. updated indique un configuration d origine chec de mise jour de Geo LiteCity et GeolP dataSource has been updated sa r ussite La ligne Update whois data est suivie de ok pour la r ussite de la mise jour des donn es whois failed pour son chec et inter upted si il a t interrompu 1 3 3 10 1 3 2 1 2 Effacer les fichiers de logs faire le Toutes les exceptions survenues test de la sp cification 1 3 1 23 sont journalis es comme erreur 1 3 3 11 1 3 1 1 Non testable sans aller contr ler 1 3 1 4 le code source 1 3 1 27 1 3 3 12 1 3 1 18 Non testable sans modification du code source 1 3 3 13 1 3 1 20 Non testable 21 Ceci termine l introduction du projet La suite du document traite de l analyseur modulaire Hes Projet de Dipl me Bachelor 23 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 24 117 Chapitre 2 Analyseur modulaire Dans ce chapitre est trait l analyseur modulaire C est ce qui se trouve sous l APT Email HeaderQualif et qui englobe chacun des modules Il y est fait une introduction sur l analy seur modulaire puis sont donn es les sp cifications du contr leur de modules et de chacun des modules Ensuite se trouve la conception de l analyseur puis la r alisation L analyseur modulaire est toute la partie cach e de l APT C est lui qui traite les en t tes fourni
37. 3 A 1 R sultats de l tudiant 103 A2 R sultats du professeur responsables 103 A 3 R sultats du mandants 104 B Suivi du projet 105 C Documentation de d veloppement 107 C 1 Utilisation des param tres de API en entr e 107 C 2 Structure des paquetages ee 107 AS RS LAN SL re eat re TOR de e Bt e 108 C 3 1 Fichier POM pour la configuration de Maven 108 D Manuel utilisateur du programme de test 109 D 1 Installation de l environnement 109 D 1 1 Installation du JRE 109 D 2 Manuel d utilisation 2 2 a 110 D 2 1 Lancement du programme de test et utilisation 110 D 2 2 Fonctionnalit s du programme de test 111 D 2 3 Analyse des r sultats et des informations affich es 113 D 2 4 Modification de l affichage des informations 114 D 2 5 Erreurs connues pouvant survenir 115 E DVD 117 Hes Projet de Dipl me Bachelor xvii 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor xviii 117 Chapitre 1 Introduction L abus de confiance est un moyen tr s vieux d arnaquer les gens La technique d approche passe souvent par une mise en confiance de la personne pour la mettre dans une situation o
38. 38 44 5 176 59 1 3 2 Programme de test 16 8 26 5 157 74 13 3 1 Extracteur d IP 8 95 24 1332 V rificateur d IP 5 59 52 1 3 3 3 Analyseur d IP 3 100 00 1 34 Module de qualification IP 0 100 00 1 3 5 Int gration du module User Agent 11 130 95 1 36 Int gration du module G o Localisation 13 154 76 14 Tests unitaires 208 33 5 Corrections 285 71 WIN 60 NO d ad o o d md md Sp cifications 5 5 130 95 Conception 17 202 38 Codage 42 5 168 65 Tests unitaires A d 9 5 75 40 Corrections y 7 17 202 38 Sp cifications Conception Codage Tests unitaires Corrections 181 55 Rapport e 15 89 29 Rapport IPBL o r 0 0 00 Rapport whois 7 9 5 113 10 Rapport interm diaire 8 E 72 428 57 Contr le du code y F 6 71 43 Finalisation rapport 80 5 191 67 6 1 Entrevues 15 12 6 126 10 79 37 6 2 Doc Suivi 0 5 4 2 42 13 25 315 48 Total 36 327 6 327 6 472 25 14415 105 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 106 117 Annexe C Documentation de d veloppement Dans ce chapitre ce trouvent quelques informations utile pour le d veloppement de ce projet C 1 Utilisation des param tres de PAPI en entr e Les donn es re ues dans le header sont sous la forme d une table de hashage Cette table de hashage tend la classe Map de Java Dans cette table les donn es et les cl s so
39. Cependant comme d fini dans les sp cifications le temps de r ponse maximal une requ te sur EmailHeaderQualif est court Mais le temps de r ponse une requ te whois sur un serveur est tr s variable et peut augmenter significativement le temps de r ponse de EmailHeaderQualif En effet en dehors du temps de r ponse standard il est possible que la connexion internet soit coup e ou encore lente Cette m thode n est donc pas acceptable Pour faire les choses correcte ment il faut poss der des donn es locales qui permettront d obtenir les informations sur les adresses IP La structure de ces donn es est d taill e dans 6 2 2 Puisqu il faut utiliser des donn es locales il faut aussi les mettre jour En effet les attri butions d adresses IP et d intervalles des organismes sont sujettes changements L utilisation de donn es locales et les mises jour impliquent qu il faut les charger en m moire utiliser un fichier de donn es pour les stoker et ne pas ralentir EmailHeaderQua lif lors de la mise jour de celles ci Le plus simple pour r soudre tous ces pr requis est de mettre en place un syst me de threads qui permet de charger en m moire et mettre jour les donn es r guli rement Le thread poss de le fonctionnement d crit dans le diagramme d activit qui suit Hes Projet de Dipl me Bachelor 61 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Lire fichier de con
40. Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Hes Projet de Dipl me Bachelor ISCIA identification et qualification des adresses IP sources de spam frauduleux Auteur Nicolas Muller Date 16 d cembre 2010 Module PDB Fili re TIC Propos par Professeur responsable Patrick Mast projet Ra amp D ISCIA Christian Buchs Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor ii 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud D partement TIC Fili re Informatique Candidat Muller Nicolas TRAVAIL DE DIPLOME 2010 ISCIA identification et qualification des adresses IP sources de spam frauduleux Propos par Patrick Mast projet Ra amp D ISCIA R sum du probl me Sur Internet de plus en plus de messages sont envoy s par des malfrats dans le but de s enrichir ill gitimement escroqueries p ex Nigerian Connection arnaques contrefa ons phishing et autres d lits par emails Des tudes pr alables ont permis d tablir certaines caract ristiques de ces messages et ont confirm la pr sence de leurs auteurs dans plusieurs pays europ ens Dans le but d aider le renseignement criminel le projet ISCIA Internet Surveillance for Criminal Intelligence Analysis propose entre autres un syst me d acquisition et d analyse de ces spams Ce travail a comme objectif de concevoir et de r aliser une partie de ce syst
41. L voir 29 pour plus d informations sur ce langage de description car toutes les fichiers de configuration dans ISCIA le sont Ceci permet de garder une uniformit vis vis de ISCIA Cette uniformit est gard e pour tout les fichiers de configuration du projet Voici un exemple de structure de ce fichier lt configurationModuleControler gt lt moduleClassList gt lt module gt ch iict iscia ehq modules whois WhoisInformations lt module gt lt module gt ch iict iscia ehq modules geoloc GeoLocModule lt module gt lt moduleClassList gt lt configurationModuleControler gt En premier il y a l identifiant configurationModuleControler qui est la base de la struc ture du fichier Ensuite il se trouve moduleClassList qui pr cise la structure de liste des modules que doit utiliser l analyseur modulaire Finalement il y a une liste de module Dans un de ces champs se trouve le chemin complet de la classe tendant AbstractModule qui peut tre utilis e comme point d entr e d un module Attention il est entendu par che min complet le nom du paquetage suivi du nom de la classe Hes Projet de Dipl me Bachelor 35 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 3 R alisation La conception ne tient pas toujours compte des parties inh rentes au codage Cette section traite des diff rents points qui n entre pas dans la conception mais qui interviennent d
42. PBy de ce m me en t te received La premi re adaptation apporter 14 est qu il ne permet d extraire que les adresses IP de la source d un courriel Il faut donc rajouter un traitement pour pouvoir extraire l adresse du premier MTA et pouvoir extraire plus d adresses IP que celles des trois r gles cit es pr c demment 3 1 1 Analyse de l extraction d adresse de la machine mettrice Hormis les trois r gles cit es pr c demment il est possible d obtenir des adresses IP dans d autres cas Fondamentalement le but de l extraction d adresses IP partir d en t tes permettra par la suite de recouper des adresses de plusieurs pourriels pour obtenir des informations sur la source d une s rie de courriels frauduleux Il faut donc essayer d extraire un maximum d adresses pour pouvoir permettre de recouper ces donn es Il est clair qu il est possible que certaines parties des en t tes soient forg s Cependant il est difficile de d terminer quel niveau cela ce situe Finalement le traitement d extraction d adresse est simple Dans l en t te suivant on trouve 20 23 24 25 et 209 85 227 103 deux adresses e mail qui peuvent tre potentiellement celle du premier MTA celle du haut et celle de la machine ayant mis le courriel celle du bas Ce sont toutes les deux des adresses qui apparaissent dans le champ from du premier et du second received dans leur ordre d insertion par les MTA R
43. Tout comme pour la classe GeoLocation cit e dans le chapitre pr c dent cette classe est reprise de 14 Elle t adapt e pour externaliser la mise jour des fichiers XML de sa m thode contain qui fait l obtention de l agent utilisateur Pour adapter cette classe il a suffit de s parer les bouts de codes concernant la lecture du fichier de configuration et la mise jour de la base de donn es et du fichier dans la m thode load cr e cet effet Cette m thode permet de faire le traitement chargement des donn es et mise jour des donn es et fait les actions suivantes 1 Lecture du fichier de configuration 2 Calcul de la date de mise jour 3 Mise jour si n cessaire 4 Calcul de la prochaine date de mise jour La technique de calcul de mise jour et la technique de mise jour sont laiss es telle qu l origine 5 1 5 Fichiers de configuration La structure des fichiers Full Trace xml et PartialTrace xml qui contiennent des r gles de d tection ne sera pas discut e ici Voir 14 pour plus d informations sur ces deux fi chiers En revanche le fichier de configuration configFindUA xml poss de la structure suivante lt configurationPath gt lt pathFullTrace gt FullTrace xml lt pathFullTrace gt lt pathPartialTrace gt PartialTrace xml lt pathPartialTrace gt lt update gt Im lt update gt lt configurationPath gt Hes Projet de D
44. a fin de l installation cliquer sur fermer pour terminer l installation D 1 1 2 Installation sous Linux Sous Ubuntu 109 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Ouvrir un terminal Ex cuter sudo apt get install sun java6 jre pour la version propri taire du JRE ou sudo apt get install openjdk 6 jre pour la version libre Pour plus de d tails voir http doc ubuntu fr org java Pour toutes les autres distributions Linux 1 Aller sur la page http www java com fr download manual jsp et t l charger la version 6 x du JRE correspondant votre syst me d exploitation 2 D placer le fichier d installation dans le r pertoire cible d installation 3 Ouvrir un terminal 4 Ex cuter cd lt rep_ t l chargement gt o lt rep_t l chargement gt est le r pertoire o se trouve le fichier ex cutable d installation du JRE 5 Ex cuter su 6 Ex cuter chmod a x lt nom_fichier gt bin o lt nom_fichier gt est le nom du fi chier ex cutable 7 Ex cuter lt nom _ fichier gt bin ce qui va lancer l installation 8 Ex cuter pwd le r pertoire qui vous est donn est le r pertoire d installation du JRE D 2 Manuel d utilisation Le programme de test de Email HeaderQualif a plusieurs fonctionnalit s Il permet de tester le lancement et l arr t de EmailHeaderQualif Il permet de faire des tests de EmailHea derQualif en se basant sur des fichiers contenant des en
45. a pr tude faite dans ce travail Les points importants de 14 et de la pr tude sont les suivants Les trois premi res r gles de d tection d finie dans 14 p 24 cit es ci apr s Utilisation des deux premiers received ins r s dans l en t te par les MTA Pour essayer d obtenir l adresse IP publique ou priv e de la machine mettrice et du premier MTA Contr le du type d adresse IP publique priv e ou sp ciale R gles de d tection d finies dans 14 1 Les mails envoy s par l agent utilisateur Hotmail contenant l en t te X Orignating IP dont l adresse IP est publique et que le champ With de l en t te received plus ancien contient la valeur http l adresse IP source est alors l adresse contenu dans le champ X Orignating IP 2 Les mails envoy s par l agent utilisateur Yahoo Mail contenant dans le champ IPBy de l en t te recieved le plus ancien une adresse IP publique et que le champ Via de ce m me en t te received contient la valeur http l adresse IP source est alors l adresse contenu dans le champ IPBy 3 Les pourriel contenant la mention MICROSOFT SMTP SERVER non sensible la casse dans le champ with de l en t te received le plus ancien contient 41 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller l adresse IP source priv e dans le champ I
46. action du rapport Cependant il faut prendre en compte que toute la partie de sp cification et de conception inclut aussi une partie de rapport Validation La validation est faite par le mandant et le professeur responsable Le temps de travail pris par cette validation n est donc pas comptabilis dans le temps de travail Cependant le temps des corrections apporter suite ces validations est pris en compte Suivi Cette t che est la partie de gestion du projet Elle prend en compte la r daction des documents de suivi journal de travail et rapport hebdomadaire et les entretiens hebdomadaires avec le professeur responsable Le temps de codage de chacune des parties est une estimation personnelle En revanche elle sert de base pour calculer les temps de sp cification conception test et correction En effet le calcul se base sur un ratio personnel 40 du temps de la t che est pris par le codage 10 du temps de la t che est pris pour les sp cifications 20 de la t che pour la conception 10 de la t che pour les tests unitaires 20 pour la correction Comme on peut le voir dans la figure 1 3 les t ches de suivi ne sont pas prises en compte dans le d roulement du projet C est parce qu elles sont r parties sur les diff rentes se maines du projet Le prochain chapitre donne les sp cifications d coulant de la pr tude et du cahier des charges Hes Projet de Dipl me Bachelor 15 117 heig vd
47. ail 14 Mais la fa on dont c est fait ne convient pas aux sp cifications de l analyseur modulaire En effet la sp cification 1 3 1 24 implique que la mise jour de la base de donn es ne ralentisse pas la m thode de g o localisation Or cette mise a jour est faite directement dans la m thode ce qui peut ralentir consid rablement son temps de r ponse Il faut donc 47 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller g rer le chargement et la mise jour de la base de donn es pour l externaliser de la m thode geoLocalisationIP Un thread de gestion est donc mis en place pour g rer ces mises jour Son fonctionnement et l impl mentation du module sont d taill s dans la section suivante 4 2 Conception L utilisation de la g o localisation faite dans 14 implique l utilisation de la classe UA_IPSource_IPLocIP qui fournit la m thode d obtention d information de g o localisation pour une adresse IP Mais aussi et surtout l utilisation de la classe GeoLocation qui g re les donn es de g o localisation Ci apr s se trouve un sch ma de classe simplifi d crivant le module et les classes de UA_IPSource_IPLocIP qui sont adapt es pour faire ce que l on veut n er Strin ap Ma Stri E pl E Hashtable lt String String gt findiPSource header Map lt String String gt FIGURE 4 1 Diagramme de classe simplifi du module de g o localisation On peu
48. ait plus cher en temps de d veloppement qu en temps de test Cela reviendrait faire les tests de validation directement dans les tests unitaires Hes Projet de Dipl me Bachelor 37 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La classe ParseConfigurationFileMC est contr l e durant les tests manuels Il n y a pas de tests unitaires la concernant 2 4 1 Tests unitaires de HeaderData Premi rement les contr les sur le constructeur s assurent de lever une exception si l en t te ou les les receiveds pass s en param tres sont null et qu ils ne sont pas modifi s Deuxi mement on s assure que l ajout d informations m thode addinfo returnkey Re turnKeys fonctionne et qu il ne modifie pas l en t te et les received contenus dans Hea derData Puis il est contr l que l insertion d une information avec une cl ou une valeur nulle l ve une exception Finalement il est contr l qu une information ins r e est retourn e telle qu elle a t entr e 2 4 2 Tests unitaires de ModuleControler Les tests unitaires sont faits avec 38 Junit permet de mettre en place un syst me de tests pour chaque classe Une classe de test corresponds une classe tester Il est alors possible de tester chacune des m thodes publiques d une classe Maven permet de lancer les tests unitaires avant d ex cuter la phase install Cette phase est la cr ation finale des fi
49. alheureusement pas diffus par ces organismes Il faut donc limiter le nombre de requ tes par jour pour la mise jour des donn es Le chapitre suivant revient sur le d roulement du projet Hes Projet de Dipl me Bachelor 82 117 Chapitre 9 Retour sur le d roulement du projet Dans ce chapitre est donn un bref retour sur le d roulement du projet Les documents complets retracant le d roulement du travail sont disponibles dans l annexe E dans le r pertoire sulvi L annexe B montre un tableau d crivant le suivi des heures de travail du projet On peut voir dans cette annexe que le nombre d heures totales de travail d passe largement le nombre d heures pr vues Les raisons de ce d passement sont donn es ci apr s Dans la phase initiale du projet beaucoup de temps a t utilis pour d finir le plus pr ci s ment possible le cahier des charges et la planification correspondante Initialement cette t che devait tre effectu e durant les deux premi res semaines du projet Mais cela pris plus de temps que pr vu suite aux multiples corrections et entrevues avec le professeur responsable Que ce soit pour des raisons de calendrier ou de pr cision cette d finition d bord sur la premi re semaine de d veloppement du projet De plus la correction de ce cahier des charges impliquait des recherches ce qui a augment le retard pris initialement Le d veloppement du gestionnaire de modules et l adap
50. alifier les adresses en question C est dire de pouvoir d finir quel est le moyen d envoi du courriel et ou type d envoi en question En effet une adresse permet d identifier une machine D s lors on peut essayer de savoir quel type de machine c est Il peut y avoir des machines zombies qui sont utilis es distance pour envoyer l e mail Ou encore des machines simples o l utilisateur a directement envoy le courriel via un client riche comme Outlook ou encore via un web mail tel que Hotmail Le projet inclut le travail de Bachelor de Romain Cornu Analyse de la source et du cheminement d un e mail ce qui permet d ajouter la g o localisation des adresses trouv es ainsi que la d tection du moyen d envoi aussi appel agent utilisa teur par ex Outlook Thunderbird Hotmail etc Ce travail a aussi fourni un moyen d extraire des adresses IP d un en t te Ces diff rentes informations viennent s ajouter ce que fournit d j ISCIA pour l analyse de messages frauduleux et augmentera ainsi les capacit s d ISCIA et les possibilit s de recoupement d informations pour l investigation Ce projet devrait permettre une am lioration significative des analyses criminelles en don nant une capacit de d finir l origine d un message frauduleux Ce rapport est le rapport interm diaire du projet Xi Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor xii 117 R
51. am Level xxx X NAI Spam Threshold 5 X NAI Spam Score 3 X NAI Spam Version 2 2 0 9286 core lt 3654 gt streams lt 556394 gt uri lt 70333 X OriginalArrivalTime 20 Oct 2010 15 16 06 0541 UTC FILETIME B7A98BD0 01CB7069 On peut y voire les diff rents champs de type cl valeur tel que Date Wed 20 Oct 2010 17 08 55 0200 mais surtout on y trouve les champs Received La principale caract ristique qui nous int resse dans notre cas c est la liste des champs received Ces champs sont introduits par les MTA lorsqu ils recoivent le courriel avant de le transmettre Normalement se trouvent dans cet en t te l adresse IP de la source de cet e mail et l adresse IP du premier MTA ayant fait le transfert du courriel Le dernier received ins r dans l en t te le plus haut dans un fichier est celui ins r par le dernier MTA Le premier received ins r peut donc tre celui du premier MTA et contenir les informations n cessaires pour pouvoir en extraire les adresses IP d sir es Le deuxi me peut aussi tre int ressant pour pouvoir confirmer l adresse du premier MTA ou l obtenir au cas o elle ne serait pas renseign e dans le premier Il est important de savoir que la norme concernant les received n est pas toujours respect e et que parfois il n est pas compl tement renseign comme on peut le voir dans l en t te d exemple pr c dent Le standard ne pr cise pas exac tement quelle a
52. amique de modules Hes Projet de Dipl me Bachelor 27 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 2 1 1 Initialisation et arr t propre des modules Certains modules devant disposer de ressources par exemple chargement de donn es en m moire partir d un fichier ces ressources doivent souvent tre initialis es C est pour quoi il faut un moyen d initialiser les diff rentes ressources Le gestionnaire de modules mets disposition une m thode qui permet de lancer cette initialisation Si cette initialisation n a pas t lanc e toutes requ tes pour obtenir des informations l vera une exception De m me que les ressources doivent tre initialis es elles doivent souvent tre lib r es Varr t du programme C est pourquoi l analyseur fournit aussi une m thode de lib ration des ressources Apr s l ex cution de cette m thode toute requ te d obtention d information sera refus e moins que la m thode d initialisation ne soit appel e Pour garantir l impl mentation de ces m thodes tous les modules ont comme point d entr e une classe h ritant d une classe abstraite AbstractModule qui d finira ces deux m thodes 2 2 1 2 Gestion des d pendances entre les modules Les modules peuvent poss der des d pendances sur d autres modules c est dire qu ils peuvent avoir besoin des donn es fournies par d autres modules Ceci implique que les modules dont ils d
53. ans le d veloppement de l analyseur modulaire Ici se trouvent les informations sur l optimisation du code et sur le moyen d invoquer les m thodes des diff rents modules partir du nom de leur classe Mais encore il est discut de l impl mentation des diff rents num r s utilis s dans l analyseur modulaire 2 3 1 Optimisation du code Presque toutes les m thodes d finies par les classes sont statiques La raison d un tel choix est d optimiser la vitesse de traitement car une m thode statique est plus rapide appeler qu une m thode sur un objet De plus seules les classes de modules sont instanciables toujours pour les m mes raisons d optimisation de vitesse mais aussi de m moire En effet une classe non instanciable ne peut g n rer d objets inutiles Et vu qu il n y a pas d appels concurrents sur PAPI c f sp cification 1 3 1 20 il n y a aucune raison d instancier des objets Les seules classes instanciables sont les modules Cependant afin de limiter les risques d instanciation surnum raires derri re les instances de modules sont utilis es des m thodes statiques pour les m mes raison d optimisation que celles cit es pr c demment 2 3 2 M thode de traitement de requ tes sur les modules Pour pouvoir acc der aux modules Module Controler ne dispose que de la Classe des modules et du nom de la m thode invoquer Ceci implique qu il faut faire de la r flexion java La r flexion java pe
54. ans les Map de receiveds pass s en param tres et les cl s donn es dans le Map de retour de EmailHea derQualif Pour permettre d y associer une cha ne de caract res il a fallu cr er un constructeur pour la classe repr sentant l enum qui prend en param tre un String et avoir un champ String dans la classe permettant d associer une entr e du type num r avec une cha ne de carac t res Finalement la m thode toString a t impl ment e pour permettre d obtenir cette chaine de caract res On obtient ainsi une impl mentation du type num r qui associe chaque valeur de l nu m r une cha ne de caract res Ceci permet d viter d utiliser des cha nes de caract res directement dans le code et limite le risque d erreurs au codage Mais surtout cela permet de pouvoir modifier ces valeurs de fa on centralis e sans avoir l obligation de v rifier tout le reste du code 2 4 Tests unitaires Les tests unitaires ont t r alis s de fa on contr ler qu aucune erreur de logique n appa raisse dans le code Ci apr s sont list s les diff rentes choses test es dans les tests unitaires selon les diff rentes classes La classe EmailHeaderQualif n est pas test e dans les tests unitaires Elle ne fait qu ap peler le gestionnaire de modules et son fonctionnement est contr l durant les tests manuels De plus la v rification de son bon fonctionnement par des tests unitaires co ter
55. arc orient Pour ce faire une matrice repr sentant le graphe a t utilis e Pour pouvoir r soudre les d pendances il a fallu d velopper un algorithme qui limine progressivement les sommets dont aucun autre module ne d pend repr sent par l limination de ses arcs Si la fin de l algorithme il reste des arcs dans le graphe indiquant ainsi la pr sence d au moins deux sommets c est qu il y a un cycle L exemple ci dessous repr sente le traitement de trois modules A B et C Le module Ca une d pendance sur le module B et le module B a une d pendance sur le module A Matrice du graphe ABC A O 0 0 Mi B 1 0 0 C O 1 0 Quand une colonne ne contient que des O cela signifie que le module correspondant cette colonne n a aucune autre module qui d pends de lui le module C dans l exemple ci dessus Donc si on enl ve les d pendances de ce module on ne risque pas de casser un cycle existant Ce qui donne le graphe suivant pour l exemple ci dessus ABC A O 0 0 M2 B 1 0 0 CNO 0 0 En r p tant l op ration pour B on arrive la matrice suivante ABC A O 0 0 M3 Bi 0 0 0 CNO 0 0 Il n y a plus d arc dans le graphe Ce qui implique qu il n y a pas de d pendances circulaires En prenant un cas de d pendance circulaire o A d pends de B et inversement on obtient la matrice suivante 1 On entend par r soudre v rifier l absence de cycle dans le graphe Hes Projet de Dipl me
56. ation d une classe est prise en compte pour la lecture et l criture directement sans avoir modifier tout le syst me d criture lecture parseur etc Inconv nients de la s rialisation des donn es Avoir un fichier de base est obligatoire dans le module Si le fichier est perdu il faut en recr er un Il est impossible de lire un fichier de donn es si les attributs le paquetage ou le nom des classes s rialis es ont chang Emp che la portabilit d autres langage Raison du choix de la s rialisation La s rialisation a t choisie car elle est facile et rapide a mettre en place et vite les erreurs dues au parsing des donn es lors de la lecture De plus les modifications sur les classes s rialis es sont prise en compte sans autre modification Il n a pas t pris le XML pour les raisons inverses 6 2 1 4 IP Cette classe est une classe simple qui permet de repr senter une adresse IP Elle n utilise qu un constructeur qui prend en param tre un String repr sentant une adresse IP et permet de r cup rer cette adresse IP avec la m thode getIP sous forme de string La classe Java InetAddress n est pas utilis e car il est tr s simple de repr senter une adresse IP de 32 bits avec un long Ce qui la rend ais ment comparable et est utile dans ce projet voir 6 2 2 pour plus de d tails Mais encore cette classe est une source d erreurs possibles En effet si on essaye de cr er u
57. avant d int grer le projet il faut r soudre le probl me du bannissement d adresse IP Une solution est propos e dans 8 2 pour ce faire Troisi mement il faut veiller ce que les fichiers de configuration et de donn es des diff rents modules soient disponibles L utilisation de EmailHeaderQualif se d roule en trois phase en utilisant la classe d entr e EmailHeaderQualif Appeler la m thode d initialisation start pour initialiser les ressources de EmailHeader Qualif et les modules qui la compose Utiliser la m thode headerQualif pour analyser les en t tes de courriel Appeler la m thode de terminaison stop pour lib rer les ressources utilis es par Email HeaderQualif et les modules qui la compose 10 3 Valeur ajout e au projet ISCIA par EmailHeaderQualif EmailHeaderQualif permet d obtenir dans la foul e d une identification de l adresse IP source d un courriel sa g o localisation et l intervalle auquel il appartient et son propri taire Ceci en garantissant une capacit de traitement sup rieure 100 000 en t tes par jour La structure modulaire mise en place dans EmailHeaderQualif permet de rajouter faci lement des modules suppl mentaires pour obtenir des informations sur des en t tes de courriels Par ce biais il est possible de r duire le co t de d veloppement d une nouvelle fonctionnalit concernant l obtention d informations partir des en t tes de courriels Il est aussi possible d activ
58. been not updated error while update puisse survenir durant le t l chargement de la base de donn e de g o localisation d adresse IP En effet lors de t l chargements r p t s le site ou se trouve le fichier de donn e bloque le t l chargement pour quelques heures Cela n emp che aucunement le fonctionnement de Email HeaderQualif Pour r soudre ce probl me il faut soit trouver un moyen de changer de connexion internet changement d adresse IP soit attendre que le t l chargement ne soit plus bloqu Hes Projet de Dipl me Bachelor 115 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 116 117 Annexe E DVD 117
59. car il est inutile d instancier cette classe qui ne contient aucun attributs Elle ne poss de qu une seule m thode IPInfos extractIP headerData HeaderData Cette m thode extrait simplement les adresses IP contenues dans les champs from et by des deux premiers received sans autre forme de contr le et les renvoie dans un objet IPInfos Cette m thode inclut aussi les r gles de d tection du travail de R Cornu 14 cit es pr c demment pour obtenir un maximum d adresses IP 3 2 4 Classe IPChecker Pour les m mes raisons que IPExtractor toutes les m thodes de cette classe sont d finies en statique Le code de cette classe a t repris de celui de 14 Son but est de pouvoir v rifier des adresses IP Ses m thodes sont les suivantes boolean isPrivate String ip retourne vrai si l adresse IP fournie en param tre est valide et priv e Hes Projet de Dipl me Bachelor 44 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller boolean isSpeciale String ip retourne vrai si l adresse IP fournie est valide et dans la cat gorie sp ciale des intervalles d adresses IP boolean isPublic String ip retourne vrai si l adresse IP n est ni sp ciale ni priv e void checkIP IPInfos infos HeaderData headerData permet de contr ler les adresses IP extraites et d ajouter les adresses IP trouv es et valid es dans headerData IP getNextPublic IP ip a t rajout e pour
60. chiers jars et des ressources n cessaires Ainsi on garantit au minimum que les tests unitaires sont valid s avant de cr er la cible finale du projet Premi rement les tests unitaires du gestionnaire se font sans modules activ s dans le fichier de configuration pour ne tester que le contr leur et son fonctionnement Ceci afin de gra nulariser les tests Les tests manuels et les tests de validation contr lent que l interaction avec les modules est correcte Il est v rifi que l tat du contr leur corresponde ce qui est d fini en 2 2 3 2 et que la m thode header ModuleCheck l ve bien une exception si le module n est pas d marr et qu elle n en l ve pas dans le cas contraire 2 4 3 Test manuel Les tests manuels sont les tests effectu s la main qui ne peuvent tre faits sans modifier de code Un seul test doit tre effectu la main C est celui des d pendances circulaires Il a t fait comme suit Ajouter une d pendance circulaire entre le module IPVerification et le module UserAgent puis essayer de d marrer EHQ la suite du d marrage trois messages apparaissent dans la console There are cycled dependencies in the modules Exception occured while starting modules Stopping et finalement Stopping modules OK Puis l exception RejectedExecutionException lev e doit appara tre avec le message Error while starting the modules Check modules dependencies Hes Projet
61. contenus dans cet en t te En effet ISCIA fait d j de l extraction d en t te Il n est donc pas n cessaire de refaire le m me travail Il suffit de rajouter la liste de ces en t tes dans les param tres de la fonction fournie par EmailHeaderQualif Le nom de la fonction devrait id alement tre le m me que celui de API Cependant pour des raisons de codage c est impossible Le nom qui lui a t donn est headerQualif Ce que retourne la fonction est d finie dans le cahier des charges Le retour de la fonction se fait via une table de hachage contenant les diff rents champs Suite la d cision de M C Buchs professeur responsable c est un objet de ce type qui est utilis afin de r duire le couplage entre ISCIA et EmailHeaderQualif En effet cr er un objet sp cifique pour le retour de headerQualif augmenterait le couplage en cas de modification ult rieur de l objet pour adaptation ou am lioration du projet Les r flexions pr c dentes l analyse du fonctionnement du travail de R Cornu et les dis cussions avec le mandant aboutissent une fonction avec la signature suivante donn e dans le cahier des charges Map lt String String gt headerQualif header Map lt Srtring gt lt String gt recei veds List lt Map lt String gt lt String La suite traite des performances devant tre fournie par le projet et les cons quences que cela a 1 1 6 Performances L valuation des performances se base su
62. de Dipl me Bachelor 38 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Ce test a fonctionn Tous les autres tests sont des tests de validation car il prennent en compte l int gralit du fonctionnement de EmailHeaderQualif Ils ne concernent plus uniquement l analyseur modulaire ou sont pris dans les cas tests Le chapitre suivant traite du module IP Verification Hes Projet de Dipl me Bachelor 39 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 40 117 Chapitre 3 Module IP Verification Ce chapitre traite du module d extraction et de v rification des adresses IP Une premi re analyse a t faite puis une conception des diff rentes parties du module a t effectu e La partie r alisation de ce chapitre expose les diff rents probl mes rencontr s durant son d veloppement 3 1 Analyse Le but de ce module est de remplir les sp cifications 1 3 1 8 9 et 11 donc de pouvoir extraire l adresse IP publique ou priv e de la machine mettrice d un courriel et du pre mier MTA de ce courriel Pour ce faire le travail 14 permettant d extraire des adresses IP source t utilis comme base de travail Il a d tre adapt car la d tection d adresses IP est limit es trois r gles qui sont tr s restrictives Le chapitre 3 de 14 t utilis comme base de travail pour l analyse ainsi que l
63. de EmailHeaderQualif Hes Projet de Dipl me Bachelor 36 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La facon dont sont g r les entr es de journalisation est importante de deux points de vue Le premier tant le risque de surcharge des disques durs avec des entr es de journal qui ne sont pas pertinentes Le second est l affichage utilisateur durant les tests La politique de journalisation utilis e prenant en compte les deux points pr c dents est la suivante Les entr es de journal de type debug ne sont pas enregistr es Elles ne sont l que pour aider au d veloppement et ne doivent pas surcharger les fichiers de log Toutes les entr es de journal de type sup rieur debug sont enregistr es dans un fichier de log Son nom est d fini dans le fichier de propri t s Ceci pour permettre de corriger des probl mes pouvant survenir Pour les besoins des tests et de la validation toutes les entr es sup rieures debug sont aussi affich es dans la console Ceci peut facilement tre modifi par la suite dans le fichier de configuration de log4j pour que ces entr es n apparaissent plus Seules les erreurs emp chant un module ou le gestionnaire de module de d marrer sont journalis es Les autres erreurs ne le sont pas 2 3 4 Impl mentation des num r s de r f rence Les num r s permettent de r f rencer les diff rentes cl s pr sentent d
64. de le fonctionnement d fini dans l encadr vert de la figure 6 1 La m thode run poss de le fonctionnement d fini dans l encadr bleu de la figure 6 1 Le calcul de la date de mise jour se base sur la date de modification du fichier de donn es En consid rant que le fichier a t modifi au temps t la prochaine mise jour est faite au temps t I o I repr sente l intervalle de mise jour d fini dans le fichier de configuration La suite du document donne la structure du module d coulant de cette analyse 6 2 1 Structure de base du module Des points lev s pr c demment d coulent les points suivants Une classe doit tendre AbstractModule pour donner une interface au contr leur de modules avec le module Whois Cette classe s appelle WhoisInformations Une classe doit tendre la classe Thread pour pouvoir g rer les mises jour C est la classe WhoisRetriever Une classe doit tre cr e pour contenir les donn es g rer et utiliser C est la classe WhoisData La classe WhoisData contient plusieurs entr es contenant des intervalles d adresses IP et des donn es associ es Ce sont les donn es trouv es gr ce WhoisRetriever ou qui taient dans le fichier de donn es Un intervalle d adresses IP est repr sent par la classe IPRange qui contient deux adresses IP La classe IP permet de repr senter une adresse IPv4 voir 1 On ne travaille
65. des donn es 74 6 2 4 Fichier de configuration 75 6 3 R alisation 24s 22 rada a a iaa 75 6 3 1 Adaptation du code source trouv 75 6 4 Limitation du nombre de requ tes whois faites en cas de r ponses nulle 76 6 5 TESTS gx 5 ce ea alo Sa li ui anal Me Ua Ma ai we wt a 77 6 5 1 Tests Unitaires gt s e na mo tadas keca gha e a ea a 77 Hes Projet de Dipl me Bachelor xvi 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 7 Module IPBL 79 Tell AMAS ar rd e de Ae ee e SAS RS LU 79 2 Conception 22422465458 Seabee dog eRe A A 79 7 3 R alisations sas 4 4 24 64 eee 4 he woe Pa De de NA 4 RR a 80 GAs RES 00 ae acta ne de AS Ss a te ee ep he AR ap a A SB te ke A 80 8 Validation 81 8 1 Premi re validation 81 8 2 Deuxi me validation 82 9 Retour sur le d roulement du projet 83 10 Conclusion 85 10 1 Retour sur les objectifs initiaux 85 10 1 1 Performances eos 4 4 4 4 dun be ewe us ue Das as 86 10 2 Integration perrera a Dae EA Rain er 89 10 3 Valeur ajout e au projet ISCIA par EmailHeaderQualif 89 10 4 D roulement du projet 90 10 5 Difficult s du projet 90 10 6 Apport personnel 90 A R sultats des tests de validation 10
66. des donn es poss de trois m thodes Elles ont les interactions suivantes en fonction de l tat 20 du thread tat NEW La m thode start a le comportement d fini dans l encadr vert de la figure 6 1 page 62 tat RUNNABLE BLOCKED WAITING TIMEDWAITING La m thode stop Arr ter imm diatement le thread en mettant le marqueur d arr t vrai et en r veillant le thread La m thode run ne doit pas pas tre appel e mais son code est le c ur de la mise jour par le thread Ses actions sont d finies dans l encadr bleu de la figure 6 1 page 62 Toutes les combinaisons Etat M thode qui ne sont pas d finies ici n ont aucune incidence Les donn es d j existantes dans WhoisInformations ne sont pas r utilis es Premi re ment pour viter des erreurs Mais surtout parce qu une mise jour couvre tout l intervalle d adresse IP possible Il n est donc pas n cessaire de faire cela Hes Projet de Dipl me Bachelor 74 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La prochaine section donne des informations relatives la possibilit de parall liser la mise jour 6 2 4 Fichier de configuration Le fichier de configuration du module poss de les informations suivantes Chemin du fichier de donn es Intervalle de mise jour Le chemin du fichier de donn es peut tre mis en relatif ou absolu Cependant il ne doit pas tre dans le
67. dresse IP il faut placer dans les diff rents champs ce qui laisse la possibilit aux diff rents MTA de mettre plusieurs adresses diff rentes Par exemple le champ from peut contenir l adresses IP de la machine mettrice du courriel ou celle du MTA Ce qui fait que les adresses IP extraites ne sont pas fiables 100 Cependant il faut aussi tre conscient de la pertinence de ces informations En effet un Hes Projet de Dipl me Bachelor 5 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller MTA ne fait que reprendre telles quelles les informations contenues dans le courriel et rajoutant au dessus ses propres champs Ainsi il n y a aucun contr le sur ce qui a t ins r avant Il est donc possible qu une partie de l en t te soit forg C est dire que des l ments peuvent avoir t ins r s par l envoyeur du message pour brouiller les pistes et emp cher de remonter jusqu lui En plus de cela il est possible d anonymiser l envoi des courriels Pour ce faire il suffit de passer par un proxy anonymiseur Les adresses IP qui seront obtenue sur l extraction seront donc celles du proxy et non de l envoyeur Ces adresses peuvent aussi faire l objet d une qualification L extraction d adresses IP peut se faire sur plusieurs types d adresses les adresses IPV4 et IPV6 voir 1 Seules les adresses IPV4 seront utilis es ici car le protocole IPV6 n est encore que tr
68. e ae ae ae eS be 44 3 2 4 Classe IPChecker 44 3 3 IRGALISAI NS horas FA Lab A ad E amp ad babe RAGS 45 BA Testi ene NE ae SU a ne Bb ae Le Ra a RES DE du Sa we a 45 4 Module de g o localisation 47 AA Analyse Li sua en Due eae ef amp 4 RUE ah da a oes 47 AD Conception 4 0 2 2 5 4 edie amp shui de le Ee ewe BS Rohe e 48 4 2 1 classe GeoLocModule 48 4 2 2 classe GLDataChecker 49 4 2 3 Classe UA_IPSource IPLocIP 50 4 2 4 Classe GeoLocation 50 42 5 Fichier de configuration 50 4 3 Realisation sab rada aaa da a da 51 AA Testa lea aaa la A A A A A se a 52 5 Module User Agent 53 DL Analyse wild ee ae a a a a ado deu 53 5 1 1 Classe UserAgentModule 54 5 1 2 Classe UADataChecker 00000000004 55 5 1 3 Classe UA IPSourte IPLOCIP ca Pare opte M a 56 5 1 4 Classe UserAgent 56 5 1 5 Fichiers de configuration 56 DA EN 57 Bid A SAN JADE a ae we we ape 57 6 Module Whois 59 6 1 Sp cification 2444 2444 bh bea Lh PRE EEO WE RE dd A Ad w 59 6 2 Conception ecaa kers sneu dd mie de a a due 60 6 2 1 Structure de base du module 63 6 2 2 Gestion des donn es 68 6 2 3 Fonctionnement du thread de mise jour
69. e code du m tro tats Unis uniquement PublicIPaeraCode L indicatif t l phonique o se trouve l adresse IP publique tats Unis uniquement PublicIPdmaCode Le code du march d sign DMA de l adresse IP publique tats Unis uniquement PublicIPtimeZone Le fuseau horaire o se trouve l adresse IP publique FirstMTAIP adresse IP du premier MTA ayant relay le courriel First MTAIPQualification1 La qualifiation peut aussi tre appliqu e au premier MTA par exemple relais ouvert ou proxy anonymiseur First MTAIPQualification2 Deuxi me qualification du MTA First MTAIPQualificationX X me qualifiations du MTA o X est un nombre plus grand que 1 le nombre de qualifications n est donc pas limit Qualifications On entend par qualification le fait de pouvoir dire quelle est l origine du mail Par exemple l envoi par une machine zombie Une qualification peut aussi tre vue comme un marqueur Par exemple un courriel peut avoir t envoy via un zombie connu comme un ordinateur envoyant des courriels de phishing On a donc ainsi deux qualifications pour une m me origine le zombie et le phishing Le nom du webmail ou user agent utilis pour envoyer un courriel peut aussi tre vu comme un de ces marqueurs Les MTA peuvent aussi tre qualifi s notamment Hes Travail de dipl me de Muller Nicolas page 4 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud comme relais ouverts ou comme pro
70. e d Ing nierie et de Gestion du Canton de Vaud 11 Le rapport en format Word ou OpenOffice ou LaTeX ainsi que la pr sentation en format PowerPoint ou OpenOffice doivent tre mis disposition sous forme de CD DVD lors de la d fense du projet de bachelor Ce CD DVD doit galement contenir les fichiers d crits au point pr c dant Si un accord de confidentialit et ou de droit de propri t s applique sur le projet de bachelor les documents appropri s et signatures n cessaires doivent tre obtenues par la ou le dipl mant e avant la remise de ce CD DVD 12 Si aucun accord de confidentialit ne s applique sur le projet de bachelor et en accord avec le mandant un apercu du travail r alis et de ses caract ristiques pourra tre publi sur Internet Le cas ch ant cette publication devra tre pr sent e lors de la d fense du projet de bachelor Le candidat Le professeur responsable Muller Nicolas Buchs Christian Le chef du d partement TIC Eduardo Sanchez Yverdon les Bains le 19 septembre 2010 Hes Travail de dipl me de Muller Nicolas page 8 R sum ISCIA est un projet pour l analyse d e mails pour la recherche de fraudes par e mail Ce document pr sente un projet de dipl me Bachelor qui permet ISCIA d obtenir partir des en t tes contenues dans un e mail les adresses IP pouvant fournir des informations per tinentes pour l investigation De plus ce projet fournit un moyen de qu
71. e de bannissement d IP par les serveurs whois de RIPE et de ARIN Le dernier point est tr s important pour l int gration de ce projet En effet au moment de la deuxi me validation le temps imparti pour corriger ce probl me n tait plus suffi sant pour le r soudre C est donc avant son int gration qu il faut corriger ce point Fort heureusement par aquis de conscience tous les tests impliquant le module whois taient fait depuis le domicile Ce qui fait que l adresse IP publique de la HEIG VD n a pas t bloqu e par ces serveurs Lors de la pr tude il avait t tabli qu il tait possible de faire des requ tes sans limitation sur les 5 serveurs whois des RIR Il appara t cependant que ce n est pas le cas Suite ce probl me les diff rentes solutions possibles pour r soudre ce probl me ont t tudi es La solution trouv e est de limiter le nombre de requ te sur une journ e En effet apr s tude des diff rentes politique de gestion des requ tes sur les sites officiels de RIPE 31 AfriNIC 30 APNIC 32 et ARIN 33 il est confirm que th oriquement il n y a aucune limite au nombre de requ te qui peuvent tre faites sur leurs serveurs Cependant pour des raisons de qualit de service chacun de ces organisme mets en place un syst me de comptage du nombre de requ tes par jour pour pouvoir bloquer les attaques de d ni de service Le nombre de requ tes tol r es par tranche de 24 heures n est m
72. e de entr e de journal D 2 4 Modification de l affichage des informations Il est possible de changer le niveau d affichage des informations dans le ficher log4j properties Il suffit de changer la valeur encadr e en rouge dans la figure D 3 Les valeurs qui peuvent tre mises ici correspondent au niveau existant dans log4j voir paragraphe pr c dent pour le d tail des niveaux Plus les priorit s baissent plus la quantit d informations affich e est grande 1 source http logging apache org log4j 1 2 apidocs org apache log4j Level html Hes Projet de Dipl me Bachelor 114 117 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Level and appende ogger d finition log4j rootLogge stdout stdout appender configuration log4j appender stdout org apache log4j ConsoleAppender layout d finition for stdout log4j appender stdout org apache log4j ConsoleAppender log4j appender stdout layout org apache log4j PatternLayout log4j appender stdout Layout ConversionPattern d hh mm ss FIGURE D 3 Modification du niveau d affichage de log4j D 2 5 Erreurs connues pouvant survenir Certaines erreurs connues peuvent survenir durant l utilisation du programme de test Ici sont d taill es les erreurs connues ou fr quentes et ce qui peut tre fait pour les contrer Erreur de mise jour de GeolP Il est possible qu une erreur GeolP dataSource has
73. e quand il faut entrer des chemins de fichier pour les diff rents tests Il est savoir que le programme tourne en boucle Peu importe ce qui se passe dans une des fonctionnalit s du programme Il peut m me survenir une exception le programme va Vafficher et retourner au menu principal Quand une fonctionnalit est termin e le pro gramme revient automatiquement au menu initial Comme on peut le voir EmailHeaderQualif est abr g ici en EHQ La section suivante d crit les fonctionnalit s du programme de test et la mani re de les utiliser D 2 2 Fonctionnalit s du programme de test Les diff rentes fonctionnalit s pr sent es dans la suite de cette section sont les suivantes les num ros correspondent au menus du programme 1 D marrage de EmailHeaderQualif Arr t de EmailHeaderQualif Analyse d un en t te contenu dans un fichier par EmailHeaderQualif Analyse des en t te contenus dans tous les fichiers d un dossier o A N Affichage des retours possibles D 2 2 1 D marrage de EmailHeaderQualif L option 1 du programme permet d appeler la m thode start de EmailHeaderQualif et d initialiser le gestionnaire de modules et les diff rents modules Une fois cette option choisie l initialisation est lanc e et les diff rentes s quences d initialisation sont affich es Puis le programme retourne au menu principal D 2 2 2 Arr t de EmailHeaderQualif L option 2 permet d appeler la m thode sto
74. eceived from fep18 mx upcmail net 62 179 121 38 by bay0 mc2 f20 Bay0 hotmail com with Microsoft SMTPSVC 6 0 3790 4675 Thu 18 Nov 2010 09 42 59 0800 Received from edge04 upcmail net 20 23 24 25 by viefep18 int chello at InterMail vM 8 01 02 02 201 2260 120 106 20100312 with ESMTP id lt 20101118174255 NJVN1353 viefep18 int chello at edge04 upcmail net gt Thu 18 Nov 2010 18 42 55 0100 Received from dftr5yre 209 85 227 103 by edge04 upcmail net with edge id YhiZ1f02r4XpT8904hibsX Thu 18 Nov 2010 18 42 55 0100 On obtient donc les r sultats en analysant les adresses IP contenues dans le champ from des deux premiers received Le deuxi me risque est que les adresses trouv es soient non valides des adresses ip impos sibles telles que 500 78 34 12 ou du mauvais type Par exemple une adresse IP priv e pour le premier MTA Dans ce cas ces adresses ne doivent pas tre retourn es Hes Projet de Dipl me Bachelor 42 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Une adresse IP de machine source doit donc poss der les caract ristiques suivantes pour tre prise en compte par ce module tre valide Etre publique ou priv e L adresse du premier MTA doit quand elle poss les caract risiques suivantes Etre publique Etre valide 3 2 Conception On peut extraire de l analyse deux parties 4 ce module Premi r
75. eckModule pour faire le point d entr e du module Le restant du travail tant faire Le but de ce module est de travailler sur une adresse IP publique de machine source il poss de donc une d pendance sur le module IP Verification Il est important de prendre en compte qu un tel module devra poss der des donn es et qu il faudra les g rer Pour ce faire il est conseill de s inspirer du thread de mise jour fait dans de module Whois d finit dans le chapitre 6 7 2 Conception La structure du module est simple car c est la structure de base de tout modules IPBLCheckModule ec odule lyse headerData ch iict iscia ehq modules HeaderData getDependencies List lt Class gt checkStarted setStarted setNotStarted isLoaded boolean FIGURE 7 1 Diagramme de classe du module IPBL 79 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La seule partie cod e dans IPBLCheckModule est la gestion du d marrage et de l arr t de ce module et la d claration de d pendance au module IP Verification Le restant du code doit tre fait dans un futur travail 7 3 R alisations La r alisation de ce module n a rien de sp cifique puisque elle n est compos que d une seule classe De plus le code de cette classe a t fait partir de celui d autres modules cod s pr c demment 7 4 Tests Un simple test unitaire est mis en place Il permet de contr ler s
76. ement la partie d extraction des adresses IP et deuxi mement la partie de contr le des adresses IP Cette s paration du traitement apporte deux avantages Le premier est la possibilit de s parer le d veloppement et les tests unitaires en deux parties distinctes Le deuxi me et le plus important est de pouvoir utiliser le contr le d adresses IP dans d autres modules par la suite De ces constatations et des pr requis d finit pour les modules d coule le diagramme de classe suivant rstFrom String firstBy String o String E IPAnalyserModule analyse headerData ch iict iscia ehq modules HeaderData getDependencies List lt Class gt checkStarted setStarted setNotStarted isLoaded boolean get ng cetFirstFrom firstFrom String getFirstBy String setFirstBy fi String getSecondFrom String Hem Le MEA String getSecondBy String setSecondBy secondBy String toString String IPChecker isS penie Strin TE Fr isPublic ip String boolean CheckiP ipinfos IPinfos headerData ch iict iscia ehq modules HeaderData FIGURE 3 1 Sch ma UML de IP Verification La suite liste les diff rentes classes et ce qu elle font Hes Projet de Dipl me Bachelor 43 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 3 2 1 Classe IPAnalyser Module C es
77. emerciements Des remerciements tous particuliers sont adress s M Eduardo Sanchez doyen du d par tement TIC de la HEIG VD qui m a permis de faire ce travail Je remercie galement M Christian Buchs professeur responsable du projet pour son soutien sa disponibilit sa compr hension et son suivi Merci M Patrick Mast mandant de ce projet pour sa dis ponibilit sa collaboration pr cieuse et son soutient dans ce projet Finalement je remercie ma famille et mes amis pour leur soutient moral tout au long de ce travail xiii Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor xiv 117 Table des mati res 1 Introduction 1 A TO A he A a PE tn ne nas es Sie Ae ps 2 1 1 1 En t te de courriel 3 Taa BOLD aie a a ne an SE af mets N at us Eu 6 LS VW AOIS mae ho eh oak a A RAR as A il IEA List s MOMO 34 ue amp A LUS he A RE A A Qi 10 1 15 Structure du Projets eia ee kh mel pates Dae ea PLY 11 1 1 6 Performances 4 4408 coo da Dia tent Ve Se 13 12 Plamificationiy 2 se rue at A PR EN bk he En Pa 14 1 3 Specifications 2252 2 44 doa ed pen dut bas ee he ERS ae 17 Bd ARB iis sas bel Be ele an fee hh Ye ee en ee 17 1 3 2 Jourtialisation 4422506 2 00 A hee ee ae a the ee BEE 18 Laa SCas tests A Peet EMRE EBA RE lt A 19 2 Analyseur modulaire 25 Yt Specihcations 4 928 4 aia Paton A ee A Re are
78. ent ceux dont les d pendances ont t ex cut es 2 1 1 5 Le contr leur ne g re pas les r sultats des modules Il ne fait que les appeler et leur passer l objet contenant les r sultats 2 1 1 6 Le contr leur initialise et lib re les modules la demande de ISCIA pour permettre celui ci d initialiser les modules avant lancement peut prendre un certain temps et de lib rer les ressources au cas o ISCIA devrait le faire pour quelle que raison que ce soit La plus probable tant l arr t propre de ISCIA 2 1 2 Modules Ici sont donn es les sp cifications auxquelles chacun des modules doit r pondre Elles ont t d finies selon le cahier des charges la r flexion sur l analyseur modulaire ci dessus et la pr tude N Explication 2 1 2 1 Chaque module d clare la liste des modules desquels il est d pendant 2 1 2 2 Si un champ d information du conteneur de donn es utilis par le module est manquant on ne l ve pas d exception 2 1 2 3 Tout module devant utiliser un fichier de configuration devra le faire de fa on ind pendante Il n y a pas de fichier commun de configuration 2 1 2 4 Tout module devra avoir une m thode d initialisation et une m thode de lib ration des ressources public void start pour l initialisation et public void stop pour la fermeture 2 2 Conception La figure 1 2 c f p 12 pr sente la structure globale du projet Il s y
79. eoLocModule La classe repr sentant ce tread est d taill e ci apr s 4 2 2 classe GLDataChecker Cette classe tends la classe thread Elle a t cr e pour palier au probl me de la mise jour en parall le qui n tait pas fait par d faut Le diagramme d activit ci apr s montre le fonctionnement du thread E Chargement des donn es de g o localisation LES Obtention de la date de la prochaine mise jour Marqueur d arr t Pas de margeur d arr t Ru Attendre jusqu la date de mise jour ou au r veil forc Marqueur d arr t Pas de margeur d arr t Mise jour des donn es de g o localisation FIGURE 4 2 Diagramme d activit du thread de mise jour des donn es de g o localisation L encadr vert repr sente le traitement de la m thode start et le rouge celui de la m thode run La m thode close non repr sent e sur ce sch ma permets d activer le marqueur d arr t et de r veiller le thread si il est en attente Le chargement des donn es la mise jour des donn es et l obtention de la date de mise jour se fait en utilisant la classe GeoLocation qui est d taill e dans la suite du document dee Projet de Dipl me Bachelor 49 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 4 2 3 Classe UA IPSource IPLocIP Cette classe est utilis e telle qu elle est fournie dans 14 On peut voir trois m thodes dans cette classe Cepe
80. eption il peut en exister plu sieurs Par exemple ARIN qui est charg de l attribution de l espace d adressage pour la partie Am rique du Nord peut tr s bien retourner l intervalle entier dont il est responsable si on fait une requ te sur une adresse qui ne fait partie d aucun intervalle attribu Mais ce genre de donn e n apporte aucune informations pertinente dans le cadre de ISCIA Les intervalles englobants seront donc simplement ignor s Mais encore il faut prendre en compte que la quantit de donn es g rer est tr s grande En effet en consid rant qu il y a 32 bits pour une adresse r seau soit 2 1 adresses possibles en consid rant que le dernier byte repr sente un sous r seau il reste 274 1 sous r seaux possibles videmment en consid rant les sous r seaux priv s et les sp ciaux il n y a pas autant de sous r seaux Mais la quantit d intervalles possibles reste tout de m me cons quente En consid rant que chaque intervalle est unique et peut tre ordonnanc on arrive la conclusion qu un arbre binaire est le meilleur choix possible Il poss de un temps d ajout et d obtention des informations en un temps Olog N c f 16 p 202 La structure de donn es mettre en place est donc un arbre Cependant aucune classe par d faut de Java ne repr sente directement une structure de donn es en arbre Mais la TreeMap utilise cette structure Elle permet d associer une cl avec une
81. er de ressources un dossier contenant les fichiers et dossiers requis pour le projet 2 Cette m thode est fournie par la classe Class Hes Projet de Dipl me Bachelor 51 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 4 4 Tests Les tests unitaires de ce modules sont ceux qui ont t faits dans 14 Ils se trouvent dans le r pertoire de projet src test JUnitsTests Des tests unitaires suppl mentaires ont t faits pour la classe lt GeoLocModule C est le fi chier de test GeoLocModuleTest java qui se trouve dans le paquetage ch iict iscia ehq modules geoloc emplacement src test java qui le fait Globalement y sont test s le d marrage et l arr t du module tels que d finit dans la figure 4 2 ce qui inclut le contr le du marquer d arr t Le prochain chapitre traite du module d obtention de l agent utilisateur utilis pour envoyer un courriel Hes Projet de Dipl me Bachelor 52 117 Chapitre 5 Module User Agent Ce chapitre traite de l int gration de l obtention de l agent utilisateur faites par R Cornu dans 14 chapitre 4 dans un module nomm UserAgent Premi rement une analyse de ce qui est fournit et de la fa on de l int grer est faite Puis la partie r alisation donne des informations sur la mani re dont t r alis ce module et finalement une br ve description des tests faits sur les classes du module est donn e 5
82. er et de d sactiver les modules d sir s volont via le fichier de configuration du gestionnaire de modules EmailHeaderQualif garantissant l utilisation d objets d finis dans Java 1 6 dans ses re tours et exceptions le couplage entre ISCIA et EmailHeaderQualif ne tient que par les cl s d identification dans les diff rentes tables pass es en param tres Ceci permet de presque compl tement s parer ISCIA et EmailHeaderQualif autant dans leur d veloppement que dans leur utilisation De plus l int gration du projet de Romain Cornu 14 n est plus faire dans ISCIA car elle a t faite dans ce projet Finalement le programme de test pr vu initialement uniquement pour contr ler le fonc tionnement de EmailHeaderQualif peut tre utilis pour obtenir des statistiques sur des chantillon de courriels Hes Projet de Dipl me Bachelor 89 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 10 4 D roulement du projet Le d roulement du projet a t marqu par la modification fr quente des sp cification et de la conception de ses diff rentes parties C est le r sultat d un manque de validation des sp cification des diff rentes parties du projet En effet la validation des sp cifications de chacune des parties aurait permis de ne pas revenir dessus durant les entrevues avec le professeur responsable et de ne pas avoir les modifier durant la r alisation Mise part ce po
83. er une exception Remplacer les donn es L ajout de donn es se passe toujours durant une mise jour La mise jour ne prenant pas compte des donn es pr existante avant celle ci on peut consid rer que les cas non clas sables sont des cas exceptionnels et qu il suffit de les ignorer puisqu il y a visiblement une incoh rence Attention toutefois le cas de l intervalle englobant et englob n entre pas dans cette consid ration pour des raisons de pr cision de donn es Ceci est expliqu dans la suite Le but de ce module est de renvoyer des donn es pr cises mais aussi indirectement de donner les informations requises pour un maximum d adresses IP Si on veut garder cette pr cision il convient de prendre en compte les intervalles englobants La figure suivante montre le comportement lors de l insertion d un intervalle englobant Original EE _ E Ajout de EE R sultat PE ss FIGURE 6 4 Gestion des intervalles englobants Les intervalles bleus repr sentent les intervalles d j pr sents et l intervalle vert l intervalle ajouter On constate que l intervalle vert est r parti dans les espaces vides qui ne sont pas couverts par les autres intervalles Ceci pour garder un maximum de pr cision dans les donn es WhoisData En prenant le cas inverse l ajout des intervalles bleu alors que l intervalle vert est d j pr sent le r sultat est le m me Ceci pour donner une pr cision maximale aux d
84. ertinence de ces informations C est pourquoi toutes les ressources utilis es pour chacun de ces modules listes des serveurs consult s et de l organisme qui les g re seront list es et d taill es De plus les limites de ces informations lors de l interpr tation des donn es seront expliqu es Plus globalement une API de traitement de courriel permettant de qualifier les en t tes sera r alis e Cette API fournit une m thode prenant en param tre un en t te structur et la liste des en t tes Received Ces derniers en particulier ceux introduits par les deux premiers MTA contiennent potentiellement l adresse IP priv e l adresse IP publique de la machine ayant envoy le courriel et l adresse IP du premier MTA Mail Transfert Agent En retour on obtient l agent utilisateur les adresses IP priv e et ou publique de la machine ayant envoy le courriel et du premier MTA L adresse IP publique de la machine ayant envoy le courriel est qualifi e voir ci dessous pour les diff rentes qualifications et celle du MTA aussi Il est clair qu il n est pas toujours possible de trouver ces informations auquel cas elles ne sont tout simplement pas retourn es Il ne faut pas g n rer d erreurs lors d une telle impossibilit La m thode prend en param tre l ensemble des Received pour permettre une extensibilit des modules sans devoir pour autant modifier la signature de la m thode La signature de la m thode est la suivante
85. es implications sur ces donn es c est lors de l initialisation et de la finalisation Cependant il se peut que l initialisation ne soit faite que tr s rarement puisque ISCIA ne red marre pas souvent Mais les sources de donn es initiales par exemple la base de donn e des informa tions de g o localisation peuvent changer plus souvent que ISCIA ne red marre Il faut donc que les modules g rent la mise jour r guli re de leurs donn es en m moire Pour ce faire ils doivent d eux m mes et sans bloquer les requ tes mettre jour leurs donn es en m moire Si la mise jour ne doit pas bloquer les requ tes c est parce qu il ne faut pas augmenter le temps de traitement des requ tes ou bloquer ISCIA sur une mise jour Hes Projet de Dipl me Bachelor 29 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 2 3 Structure de l analyseur modulaire La structure de l analyseur modulaire d coule des raisonnements pr c dents Ci apr s se trouve un diagramme de classe simplifi de l analyseur modulaire S ensuit une explication d taill e de chacune des classes pr sent es dans se sch ma He a header Map lt String String gt receiveds al Map lt ReturnKeys String gt addinfo entryKey ReturnKeys value String getinfo key ReturnKeys String getHeader Map lt String String gt ere LinkedList lt Map lt String String gt gt isLoaded boolean
86. es courriels pour en faire ressortir des r gles de d tection Cependant la difficult de trouver un logiciel de botnet qui fonctionne et dont les sources sont compl tes et disponibles a pos un gros probl me et une grosse perte de temps En effet la plupart des botnet fonctionne via IRC C est a dire que le client sur l ordinateur infect se connecte un canal IRC sur un serveur pr d fini pour recevoir ses ordres Cependant les informa tions de connexion se trouvent dans le code du client Ce qui implique de re compiler le client pour pouvoir cr er un botnet L obtention de sources fut d j difficile Rbot 34 et Hexbot ont t trouv s Cependant ces bots n taient pas fait pour envoyer des courriels La recherche et les tests de botnet pour trouver des r gles de d tection de botnets dans un en t te se sont donc trouv es infructueuses Cependant la recherche sur les botnets n a pas t totalement vaine En effet des listes noires d adresses IP existent l origine elles sont faites pour contrer les spams C est dire que les analyseurs de spam peuvent se baser sur ces listes pour filtrer les messages re us et d tecter les spams Ces listes d adresses sont utilis es aussi pour d autres usages Ceci est trait dans la section 1 1 4 Des recherches suppl mentaires ont t faites en biblioth que pour essayer de trouver des sources d informations sur les botnets Cependant aucune publication scientifique sur le
87. es qui pourraient demander un charge ment pr alable avant d tre ex cut s stop l inverse de start elle permet de lib rer correctement chacune des ressources uti lis es par les diff rents modules headerQualif C est la m thode qui permet d obtenir les diff rents informations via les modules disponibles Elle prend en param tre le header et la liste des receiveds conte nus dans l en t te Cette classe ne fait qu interfacer avec la classe ModuleControler 2 2 3 2 Classe ModuleControler Cette classe est le centre n vralgique de l analyseur modulaire C est elle qui g re les modules et les requ tes re ues Son fonctionnement est en soi assez simple Les m thodes publiques fournies par cette classe sont les m mes que pour 2 2 3 1 Tout le code de cette classe est d fini en statique afin d optimiser la vitesse d ex cution et le constructeur de la classe n est pas accessible pour qu elle ne puisse pas tre instanci e En effet il ne servirait rien d instancier cette classe car tous les modules sont aussi d fini en statique voir 2 3 1 De plus il ne peut y avoir d appel concurrent sur cette classe comme d fini dans la sp cification 1 3 1 20 2 2 3 2 1 Gestion de l tat des modules L un des r les de cette classe est de g rer l tat des diff rents modules Ceux ci peuvent avoir deux tats C est galement le cas du gestionnaire de module Il doit tout d abord tre initialis ce
88. est d taill e dans la suite de ce document 6 2 2 Gestion des donn es La gestion des donn es utilis es par le module se s pare en deux parties le stockage et la gestion Le stockage d taill ci apr s traite de la structure de donn es utilis e et la gestion des conflits du comportement de cette structure lors de l ajout et de la recherche 6 2 2 1 Stockage des donn es La classe WhoisData doit g rer des entr es de donn es Il est important de comprendre ce que repr sente une de ces entr es Fondamentalement c est le r sultat d une requ te d informations sur une adresse IP un serveur Mais en remontant plus haut il faut voir que c est une information sur la r partition des adresses IP dans le monde En consid rant qu un intervalle d adresses IP est attribu uniquement un seul organisme on comprend qu il ne peut pas y avoir d intervalles qui se chevauchent C est dire que deux intervalles ne peuvent jamais avoir d adresse IP en commun Il est donc possible d or donner ces intervalles et de les utiliser comme cl de tri pour le stockage des entr es et la recherche de r sultats Cependant au moins une exception existe En effet en faisant une requ te whois sur un espace d adressage non allou 0 0 0 0 par exemple par JANA on obtient l intervalle le plus grand possible soit de l adresse 0 0 0 0 l adresse 255 255 255 255 Il recouvre donc tous les autres Si on consid re qu il existe au moins une exc
89. et apportent peu au projet En revanche en modifiant le pro gramme de test pour prendre des fichiers texte bruts contenant des courriels un courriel par fichier il a t cr un outil simple de test mais aussi d valuation de jeu de donn es puisque le programme de test est capable d aller analyser tous les fichiers contenus dans un r pertoire et d en ressortir des statistiques Ces modifications ont t possibles gr ce au mandant qui a fournit un code permettant d extraire les informations partir de fichier texte qu il a suffit d int grer En revanche il a fallu corriger tout les fichiers de tests d origine pour correspondre au nouveau programme de test ce qui pris un certain temps Mise part le point du programme de test modifi le restant des modifications concerne les cas tests eux m me Il a fallu corriger les cas test pour les rendre plus pratique pour la 81 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller personne les faisant C est dire qu il a fallu r unir des cas test et rendre plus explicite et pr cis leur description et leur ex cution Pour ce qui est des fonctionnalit s tester tout tait OK par rapport au code d j fait 8 2 Deuxi me validation La deuxi me validation a fait ressortir plusieurs points Enlever la description compl te des exceptions lev es dans la journalisation Ajouter la date dans les fichiers de journalisation Probl m
90. et de Dipl me Bachelor 10 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 1 1 5 Structure du projet Cette section pr sent la r flexion sur la structure et le fonctionnement du projet La premi re partie de cette r flexion concerne la facon dont va tre utilis le projet En effet le projet doit s int grer ISCIA pour fournir des informations sur les en t tes Le plus simple tant dans notre cas d interfacer ISCIA avec le syst me d obtention d informations C est pourquoi une API a t choisie En plus une APT pr sente l avantage de pouvoir tre externalis e d ISCIA et peut donc par exemple plus facilement tourner sur un autre serveur Mais encore cela permet de l utiliser facilement dans un autre projet que ISCIA La deuxi me partie a t de trouver un nom cette API Le nom choisi est EmailHeader Qualif Il met en avant que le but premier de cette API est de qualifier des adresses IP contenues dans un en t te de courriel La troisi me partie t de d finir le fonctionnement de cet APT Pr c demment a t mon tr un en t te de courriel Au premier coup d il il appara t que la quantit d informations contenue dans un en t te est tr s grande et tr s vari e EmailHeaderQualif n ayant pas la pr tention de couvrir compl tement une analyse d en t te il a fallu prendre en consid ra tion qu il devait tre facile d agrandir le projet C est pourquo
91. et de Gestion du Canton de Vaud Nicolas Muller c est car tout est anonyme dans le courrier D finir quel est cet envoyeur et son but est la qualification Une personne qui envoie un courrier peut tre connue comme tant un malfaiteur Elle est donc qualifi e comme tel Dans un courriel il est possible obtenir l adresse de la ma chine ayant envoy le courriel C est donc cette machine qui est qualifi e Cependant cette machine peut tre infect e par un maliciel qui permet de la contr ler distance Cette machine est alors appel un zombie C est sa qualification Une machine est donc identifi e par son adresse IP qui est elle m me qualifi e Les machines zombies sont g n ralement utilis es en r seau C est dire que plusieurs machines anonymes sont dirig es par un seul ma tre Ce r seau est appel un botnet et son tude est trait e un peu plus loin dans ce chapitre Toutes les informations cit es pr c demment se trouvent dans l en t te du courriel C est la partie cach e du courriel qui n est pas visible par l utilisateur Il faut donc extraire si possible les adresses IP de l envoyeur et du MTA ainsi que les diff rentes informations de cet en t te L tude sur les en t te se trouve elle aussi la suite de ce chapitre Finalement il faut pouvoir obtenir diff rentes informations sur les adresses IP extraites Il a t trouv deux moyens d obtenir des informations en plus de celle d ja fo
92. eur tel que whois arin net ne r ponds pas toutes les adresses IP d un intervalle tel que 2 0 0 0 2 255 255 255 sont tes t es Le r sultat est que 274 requ tes sont faites dans le vide Si chaque requ te prends encore 20 secondes le temps de mise jour des donn es Whois est augment de 64 jours rien que pour cet intervalle Pour r soudre ce probl me rencontr le nombre de requ tes cons cutives est contr l Si il d passe deux requ tes infructueuses le troisi me byte de l adresse IP est incr ment de 1 Puis on recommence le contr le de deux requ tes infructueuses et c est alors le deuxi me byte qui est incr ment de 1 Si deux requ tes infructueuses se font encore on passe au prochain intervalle g n ral en incr mentant le premier byte et en mettant tout les autres 0 Le temps ainsi perdu pour un intervalle pour lequel il n y a pas de r ponses est de 22 20 secondes soit 1 minute et 20 secondes au lieu des 64 jours Ainsi il est aussi contr l que c est tout l intervalle pour lequel il n y a pas de r ponse et non pas les quelques premi res adresses La suite de ce chapitre traite des tests effectu s sur ce module 6 5 Tests Deux cat gories de tests sont pr vus pour ce module les tests unitaires et les tests de validation qui sont d finis dans les sp cifications chapitre 1 3 Les tests de validation sont utilis s pour contr ler le bon fonctionnement du module durant son d veloppe
93. faits durant la pr tude il semblerait ais d adapter du code java trouv pour faire cette t che Et finalement pour le d veloppement le module IPBL qui est plac en dernier car c est le module le plus risques En effet l obtention des sources de donn es pour avoir des donn es locales risque de poser probl me Un des moyen d obtenir une informations sur une adresse IP semble tre par une requ te nslookup et ce n est pas tol rable voir 1 1 6 Un autre moyen serait d obtenir une liste d adresses base de donn es ou simple liste Mais il est difficile de trouver de telles sources de donn es Les filtres anti spam utilisent ce genre de listes Le diagramme 1 3 sur la page suivante pr sente chaque phase de d veloppement d taill e ci apr s comportant une sp cification une conception une s rie de tests et des corrections Analyseur modulaire C est la base du projet et la partie qui prend le plus de temps et qui comprend les parties suivantes Codage structure Codage de la structure de l analyseur Ceci comprend le contr leur de modules et la structure objet pour la gestion des modules Module IP Verification Le d veloppement de ce module est pris dans cette phase de projet Le but tant d avoir une base d analyse pour la validation Apr s cette t che il sera possible d extraire des adresses IP d un en t te de courriel Int gration du module User Agent Ce module est aussi inclus dans l analyseur
94. fichiers de listes noires Whois Donne des informations suppl mentaires sur les diff rentes adresses IP telles que l intervalle dans lequel il se trouve et le propri taire de cet intervalle Whois Information Se charge d obtenir les diff rentes informations l aide des donn es locales Whois Config File Fichier contenant les configurations pour le module Whois Whois Local Informations Fichier contenant les donn es utilis es par Whois Informations Whois Retriever Se charge de mettre jour le fichier Whois local Informations User Agent Donne le user agent partir d un en t te configFindUA xml Fichier de configuration du module fullTrace xml R gles de d tection de user agent PartialTrace xml R gles de d tection partielles de user agent IP G o localisation Module de g o localisation d une IP GeoliteCity dat Base de donn es contenant les informations de g o localisation ConfigfileGL xml Fichier de configuration du module En plus des l ments cit s ci dessus le sch ma 1 2 montre le gestionnaire de modules Module Controler et son fichier de configuration qui contient la liste des modules 2 2 1 Principes de fonctionnement de l analyseur modulaire Voici la liste des diff rents principes de fonctionnement de l analyseur modulaire 1 Initialisation et arr t propre des modules 2 Gestion des d pendances entre les modules 3 Gestion des priorit s d ex cution des modules 4 Ajout dyn
95. figuration Charger le fichier de donn es Calculer la prochaine date de mise jour Journaliser l exception Lever une exception Attendre jusqu la prochaine date de mise jour ou au r veil forc Marqueur d arr t activ Marqueur d arr t d sactiv Date de mise jour dans le futur Remplacer le jeu de donn es de Whoisinformations Lire fichier de configuration Calculer la prochaine date de mise jour Journaliser l exception Date de misej jour d pass e Faire la mise jour des donn es Ecrire les donn es dans le fichier de donn es FIGURE 6 1 Diagramme d activit du thread de mise jour du module Whois Premi rement il y a deux cadres de couleur Le cadre de couleur verte correspond la m thode start du thread soit l initialisation du thread Le cadre bleu correspond l ex cution du thread soit la m thode run Deuxi mement on constate par deux fois la pr sence du contr le d un marqueur d arr t C est tout simplement un bool en qui permet d arr ter le thread de mise jour Ce bool en Projet de Dipl me Bachelor 62 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller est mis vrai lors de l appel de la m thode close non repr sent e sur ce sch ma Cette m thode r veille aussi le thread au cas o il serait en attente dans la m thode run ce qui permet de terminer coup s r le thread La m thode start poss
96. fin de Vintervalle original Chacune des barres rouges propose une possibilit de comparaison d intervalle avec l in tervalle original La colonne tendue donne une comparaison entre les deux tendues d adresses quelles sont les adresses couvertes La colonne Emplacement indique l emplacement de l intervalle par rapport aux possibi lit s d adresses IP La colonne classement donne le r sultat de classement entre les deux intervalles empla cement de l intervalle rouge par rapport l intervalle bleu Hes Projet de Dipl me Bachelor 70 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Les intervalles qui sont non classables le sont soit parce qu ils sont chevauchant adresses en commun soit parce qu ils sont englob s Le cas englobant est le m me que l englob mais invers Le r sultat de la comparaison est donc identique non classable La comparaison telle qu elle est utilis e dans Java 17 retourne un entier Si on compare un l ment A un l ment B A compareTo B en Java Les r sultats possibles sont les suivants Plus petit que 0 si B est plac avant gal 0 si leur emplacement est identique Plus grand que 0 si B est plus grand que Dans ce cadre que faire des cas non classables qui pourraient survenir lors d une inser tion Trois options sont disposition Ignorer et ne pas ins rer Lev
97. headerQualif header Map lt Srtring gt lt String gt receiveds List Map lt String gt lt String gt gt La liste des Received se donne dans une List Le premier l ment retourn par cette List Hes Travail de dipl me de Muller Nicolas page 3 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud est le dernier Received ins r dans l en t te Liste des valeurs retourn es UserA gent agent utilisateur utilis pour envoyer le courriel PrivatelP adresse IP priv e de la machine ayant envoy le courriel PublicIP adresse IP publique de la machine ayant envoy le courriel PublicIPQualification1 Premi re qualifications de l IP PublicIPQualification2 Deuxi me qualifications de l IP PublicIPQualificationX X me qualifications de l IP o X est un nombre plus grand que 1 le nombre de qualifications n est donc pas limit PublicIPNetName Nom de l organisation laquelle appartient l IP publique PublicIPRange Intervalle dans lequel se trouve l IP publique PublicIPcountryCode Code du pays o se trouve l adresse IP publique PublicIPcountryName Nom du pays o se trouve l adresse IP publique PublicIPzipcode Code postal o se trouve l adresse IP publique PublicIPcity Name Nom de la ville o se trouve l adresse IP publique PublicIPlongitude Longitude o se trouve l adresse IP publique PublicIPlatitude Latitude o se trouve l adresse IP publique PublicIPmetroCode L
98. i le module d marre et s arr te correctement et si la d pendance IP Verification est bien d clar e C est le fichier IPBLCheckModuleTest dans le r pertoire src test java ch iict iscia ehq mo dules ipbl de Pannexe E qui contient ces tests Ce chapitre clos la partie d veloppement de ce projet Le chapitre suivant traite de la validation faite sur ce projet Hes Projet de Dipl me Bachelor 80 117 Chapitre 8 Validation Dans ce chapitre sont trait s les r sultats des deux validations effectu es durant le projet et leurs cons quences Les tableaux de r sultats finaux de validation se trouvent dans l annexe A 8 1 Premi re validation La premi re validation a fait ressortir le besoin de poss der un moyen de tester Email HeaderQualif avec des fichiers texte contenant des courriels complets En effet la version originale du programme de test obligeait la cr ation des fichiers de donn es pour les tests partir de fichier texte pr format s la main Une fois ces fichiers de donn es cr s il tait possible de les reprendre pour pouvoir faire les tests d sir s Finalement pour faire un test sur un courriel donn il fallait Cr er un fichier texte avec uniquement l en t te du courriel analyser Mettre en forme cet en t te la main Utiliser le programme de test pour cr er un fichier de test A OO N E Lancer le test sur le fichier de test Ces tapes sont fastidieuses
99. i une structure modulaire a d entr e t prise en compte L id e derri re une structure modulaire est de pouvoir g rer diff rents modules qui extraient et fournissent des informations sur un en t te Cela implique qu au centre du projet se trouve un c ur qui g re les diff rents modules Il est possible de voir dans la figure 1 2 ci dessous ce gestionnaire de module qui s appelle Module Controler L ensemble du projet doit donc se composer de deux parties La partie visible de l iceberg qui est API EmailHeaderQualif et la partie cach e qui englobe les modules et le gestionnaire de module nomm Analyseur modulaire Hes Projet de Dipl me Bachelor 11 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller IPBL Config file configModuleControler xml Whois local informations configFindUA xml Whois Config file artialTrace xml GeoliteCity dat q onfigfileGL xml a A cr er CL reprendre du travail de R Cornu i adapter du travail de R Cornu FE Fichier FIGURE 1 2 Vue globale du projet Comme dit pr c demment le travail de Romain Cornu 14 fournit une extraction d adresses IP depuis un en t te de la g o localisation d adresses IP et l obtention du user agent de puis un en t te Ces diff rentes parties compl tent ce projet et doivent donc s int grer celui ci Chacune d entre elle est int gr e au projet com
100. iict iscia ehq modules NOMMODULE o NOMMODULE est le nom du module C 3 log4j Le syst me de journalisation log4j est utilis par ce projet Il est possible de modifier la fa on dont est configur log4j La configuration de log4j se fait l aide du fichier log4j properties si le projet n est pas inclus dans un autre qui prendrai en charge la journalisation Pour tout renseignements sur log4j se r f rer 4 C 3 1 Fichier POM pour la configuration de Maven Le fichier POM xml qui se trouve la racine du projet permets de configurer le projet pour Maven Il est configur de telle mani re prendre le programme de test en classe d entr e afin de pouvoir tester ou utiliser directement EmailHeaderQualif sans devoir passer par un autre programme Il est aussi configur pour g n rer deux fichiers JAR Le premier qui ne contient pas les d pendances de EmailHeaderQualif telles que log4j Et le deuxi me auquel est rajout with dependencies qui inclut ces d pendances Le fichier est aussi configur pour g rer les ressources utilis es par le projet C est dire que le r pertoire d finit dans le fichier comme montr ci apr s sera automatiquement inclus dans le fichier JAR Les fichiers dans ce r pertoire doivent tre acc d s par la m thode getRessource de la classe Class lt resources gt lt resource gt lt directory gt basedir src main resources lt directory gt lt resource gt
101. imiter les erreurs pouvant survenir cause de deux threads de mise jour s ex cutant en parall le La m thode analyse de la classe va juste chercher l adresse IP publique fournie dans le conteneur data qui lui est pass en param tre et va v rifier dans ses donn es WhoisData si il n y a pas un intervalle et un propri taire correspondant Si un intervalle est trouv il est rajout dans les donn es du conteneur ainsi que son propri taire 6 2 1 2 WhoisRetriever Ce thread permet de g rer les donn es C est dire qu il s occupe d aller lire le fichier de configuration du module en utilisant ParseConfigurationFileWhois d taill ci apr s puis de charger les donn es partir du fichier dont le chemin est d fini dans le fichier de configuration Et finalement s occupe de mettre jour les donn es intervalle r gulier Cet intervalle est aussi d fini dans le fichier de configuration voir 6 2 4 pour plus d informa tions sur le fichier de configuration Ci apr s sont d crites les diff rentes actions effectu es par les m thodes publiques du thread 1 start effectue les actions d finie dans l encadr vert de la figure 6 1 page 62 2 run effectue les actions d finie dans l encadr bleu de la figure 6 1 page 62 3 close Permet d arr ter le thread sortie de la m thode run en mettant le marqueur d arr t et en r veillant le thread pour qu il se termine 6 2 1 3 WhoisDataFile Pour pouvoi
102. int le projet s est d roul sans probl mes majeurs 10 5 Difficult s du projet Les difficult s techniques sont venues en premier de Maven En effet la cr ation et la compr hension d un projet Maven a pos quelques soucis au d part Cependant la plus grosse difficult a t de trouver les sources d informations n cessaires lors de la pr tude sur les botnets et sur les intervalles d adresses IP Un autre probl me est survenu lors de la gestion des fichiers utilis s par le projet En effet l utilisation de Maven permet de d finir un r pertoire de ressources pour contenir les fichiers utilis s par le projet Cependant une fois la g n ration de l archive JAR contenant le code compil les fichiers mis dans ce r pertoire ne sont plus accessibles via la classe File traditionnelle Ils n est pas possible non plus d crire dans ces fichiers Il a donc fallu mettre les fichiers de donn es hors de ce r pertoire 10 6 Apport personnel Le d roulement de ce projet m a permis de soulever un point que je n ai que tr s peu eu durant ma formation la validation par une personne externe Il est clairement apparu durant ce projet que ce n est de loin pas un r flexe chez moi Pourtant la valeur ajout e par une validation d une partie d un projet est non n gligeable Premi rement cela peut souvent viter de se retrouver avec un probl me qui aurait pu tre vit si une personne externe avait port un regard diff ren
103. ion du Canton de Vaud bachelor 7 Le rapport et la pr sentation doivent clairement d crire le raisonnement et les d marches entreprises par la ou le dipl mant e au cours de son projet de bachelor depuis le cahier des charges jusqu aux r sultats finaux 8 Le rapport doit contenir toutes les indications requises pour un ventuel d veloppement futur du travail r alis par de tierces personnes 9 Dans la mesure du possible le travail de d veloppement doit suivre les bonnes pratiques reconnues internationalement en mati re de qualit et de s curit IT Les bonnes pratiques utilis es doivent tre r f renc es et leur utilisation application clairement d crites 10 Afin que les experts et le professeur responsable puissent s ils le d sirent auditer et tester le travail r alis tous les fichiers n cessaires ex cutables sources configuration scripts etc la r g n ration d ploiement recompilation etc du travail r alis doivent tre joints au rapport sur un CD ou DVD dans une fourre annex e dans le rapport avec la proc dure d installation n cessaire et un mode d emploi suffisamment pr cis Si un accord de confidentialit et ou de droit de propri t s applique sur le projet de bachelor les documents appropri s et signatures n cessaires doivent tre obtenues par la ou le dipl mant e avant l envoi du rapport final et du CD DVD Hes Travail de dipl me de Muller Nicolas page 7 Haute Ecol
104. ipl me Bachelor 56 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Il s y trouve les param tres pathFull Trace et pathPartial Trace qui donnent les chemins des fichiers de r gle de d tection Le champ update permet de d finir l intervalle de mise jour Cet intervalle peut tre donn en mois m ou en jours d pr c d d un entier L analyse du module ce termine ici La suite du document traite de la r alisation et des tests du module 5 2 R alisation La seule particularit durant la r alisation est la m me que pour le module de g o localisation Ce sont les ressources qui ont pos probl me Une fois ce probl me r solu le module user agent a fonctionn sans probl mes 5 3 Tests Les tests unitaires de ce modules sont ceux qui ont t faits dans 14 Ils se trouvent dans le r pertoire de projet src test JUnitsTests Des tests unitaires suppl mentaires ont t faits pour la classe UserAgentModule C est le fichier de test User Agent ModuleTest java qui se trouve dans le paquetage ch iict iscia ehq modules userage l emplacement src test java qui le fait Globalement y sont test s le d marrage et l arr t du module tels que d finit dans la figure 4 2 ce qui inclut le contr le du marquer d arr t Le prochain chapitre traite du module Whois qui permet d obtenir l intervalle d une adresse IP publique et son propri taire
105. is de l annexe E Sa structure est la suivante Hes Projet de Dipl me Bachelor 75 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller oisQuery name String reset getResponse WhoisResponse 0155 Stril getTLD String query domain String WhoisResponse resolver Resol server String gt ResulveDefauliserver String port int getServer String getPort int query name String getbatal 4 String getName String getNetname String getRange ch iict iscia ehq utils IPRange getLines TreeMap lt String String gt setNetname netname String setRange range ch iict iscia ehq utils IPRange A FIGURE 6 6 Diagramme de classe simplifi du code source Whois utilis Pour faire une requ te sur un serveur Whois il suffit de cr er une WhoisQuery et d ex cuter son code get Response Cette m thode va appeler la m thode query de whoisServerPool qui en fonction du nom pass en param tre va aller consulter la liste de serveurs d finie en statique pour faire la requ te Le serveur en question utilise un r solveur pour ex cuter sa requ te ResolveDefault qui va retourner un objet WhoisResponse comme r ponse Trois adaptations sont apport es a ce code WhoisResponse a t adapt avec deux attributs suppl mentaires Le netName et et Vintervalle
106. kipedia org wiki Registre_ Internet _ regional 12 novembre 2010 Hes Projet de Dipl me Bachelor 100 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 36 ORACLE Class ClassLoader http download oracle com javase 6 docs api java lang ClassLoader html 2010 37 INTERNET ENGINEERING TASK FORCE rfc 3912 WHOIS Protocol Specification http www ietf org r fc r fc3912 txt 2004 38 WIKIPEDIA JUnit http en wikipedia org wiki JUnit 2004 Hes Projet de Dipl me Bachelor 101 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 102 117 Annexe A R sultats des tests de validation Dans ce chapitre sont donn s les tableaux de r sultats de la validation Celle ci a t faite par l tudiant le mandant et le professeur responsable A 1 R sultats de l tudiant N cas R sultat Remarque test 1 3 3 1 OK KO PublicIPregionCode et PublicIPregionName disponnible en plus 1 3 3 2 OK 1 3 3 3 OK KO 1 3 3 4 KO Aucune qualifications car le module IPBL n est pas impl ment 1 3 3 5 OK 1 3 3 6 OK 1 3 3 7 OK 1 3 3 8 OK 1 3 3 9 OK KO Il est apparu durant ces tests que les serveurs de ARIN et de RIPE ont bloqu les requ tes venant de l adresse IP pu blique Les tests ayant t fait expr s domicile cela n a aucun impact pour la HEIG VD 1 3 3 10 OK
107. lHeaderQualif dans ISCIA se fera apr s le travail de dipl me Technologies ISCIA utilise principalement les technologies Java pour le codage Unit pour les tests log4j Hes Travail de dipl me de Muller Nicolas page 5 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud pour la journalisation et Maven pour la gestion de projet Pour permettre une int gration optimale dans le projet le code fourni doit tre compatible avec ces technologies D livrables Documentation compl te du projet au format PDF Les sources ayant permis de cr er ce PDF en LaTeX sont galement a fournir Code source en anglais Documentation de d veloppement Manuel d installation et d administration des logiciels r alis s Documentation du code javadoc Programmes de tests et leurs sources avec un mode d emploi en annexe dans la documentation Liste des tests effectu s en annexe Lors des valuations interm diaire et finale du projet de bachelor une importance toute particuli re sera donn e au respect des directives suivantes 1 Avant chaque r alisation importante la ou le dipl mant e devra s assurer que les sp cifications et la conception de la phase correspondante ont t valid es par le professeur responsable et le mandant le cas ch ant 2 La ou le dipl mant e est tenu d effectuer un suivi r gulier de son projet et d en informer le professeur responsable suivi de l avancement r sum du j
108. les besoins du module whois Elle permet d obtenir la prochaine adresse IP publique partir d une adresse IP en se basant sur les intervalles d adresse qui sont d finit dans la classe Retourne null si il n y en a pas Pour pouvoir contr ler les diff rentes adresses IP la classe se base sur deux listes d inter valles d finis en statique dans la classe une liste d intervalles priv s et une liste d intervalles sp ciaux Le fichier fournit par IANA sur http www iana org assignments ipv4 address space ipv4 address space xml donne la liste des intervalles d adresse et leur attribution pu blique priv e ou sp ciale Il a t utilis comme base pour corriger les intervalles priv es ou sp ciaux d finis dans IP Checker 3 3 R alisations La seule difficult rencontr e durant la r alisation de ce module a t de faire les tests unitaires pour les intervalles d adresse IP La premi re m thode de test consistait tes ter l ensemble de chacun des intervalles pour les trois m thodes isPrivate isPublic et isSpeciale Evidemment le temps de d veloppement et surtout celui de test est beaucoup trop lev Finalement il n est test que le d but la fin et une adresse IP au milieu pour chacun des intervalles priv s et sp ciaux ainsi qu une petite s rie d adresse IP publique 3 4 Tests Les tests unitaires effectu s pour ce module sont d finis comme suit IPAnalyserModule Cette classe n a pas de test
109. leur reste pour chacun des organismes mais les cl s changent entre eux De plus les autres informations ne semblent pas directement pertinentes pour une investigation Une liste de serveur whois est disponible sur 13 Il en r sulte une partie d velopper exploitant les informations qu un whois peut retourner ou un quivalant Hes Projet de Dipl me Bachelor 9 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La prochaine section traite des listes noires et de ce qu elles peuvent apporter au projet 1 1 4 Listes noires Cette partie traite des listes noires d adresses IP Celles ci sont utilis es l origine pour filtrer les courriels Par exemple 11 permet de le faire Pour tester si une adresse IP fait partie d une liste noire la commande nslookup 12 est utilis e Cette commande est l origine pour r soudre un nom DNS en adresse IP Cepen dant en utilisant correctement cette commande il est possible de faire une requ te sur un serveur de liste noire Il suffit de concat ner l adresse IP avec l adresse DNS du serveur de liste noire Ceci revient au m me que configurer le serveur DNS de la machine par celui du serveur de liste noire Par exemple pour faire une requ te sur la liste zen de SpamHaus pour l adresse IP il suffit d crire la commande nslookup 2 0 0 127 zen spamhaus org La r ponse cette requ te est la suivante Non authorita
110. li geable Dans un peu plus de la moiti des cas un agent utilisateur a pu tre trouv Ce qui est une tr s bonne performance Pour les adresses IP de machine mettrice la r partition des r sultats entre adresse ip pri v e publique et aucun r sultat est donn e dans la figure ci apr s Projet de Diplome Bachelor 86 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller R sultats d obtention d adresses ip 15 82 415 WadesselP ue 80 02 FIGURE 10 2 R partition des addresse IP source trouv es dans l chantillon Il y a 80 des cas ou une adresse IP priv e est retourn e Ce qui est une tr s bonne per formance Le cas des adresses IP priv es est de 4 ce qui est un apport assez minime mais qui peut quand m me permettre des recoupement d informations Finalement se trouve sur la page suivante les r sultats d obtention d informations sur les adresses IP publiques trouv es Les valeurs des r sultats correspondent celles d finies dans le cahier des charges Hes Haute Ecole Sp cialis e Projet de Dipl me Bachelor 87 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Performance des obtentions d informations sur les adresses IP publiques de machines source trouv es NetName Range regionCode 100 00 Country Code 77 96 regionName 99 85 17 64 timeZone Country Na 99 85 90 60 13 77 4 507
111. lle s ex cute sur tout les fichiers contenus dans un dossier Le num ro de menu correspondant cette fonction est le 4 Une fois cette option choisie un chemin du dossier contenant les fichiers de test est de mand Ce chemin peut tre relatif ou absolu Par exemple si le programme s ex cute dans le r pertoire home et que le chemin du dossier est home fichier Test Il est possible de rentrer le chemin absolu home fichier Test ou le chemin relatif fichier Test Une fois le r pertoire de test s lectionn le programme de test va parcourir tous les fichiers et pour chacun d eux lancer une analyse avec la m thode headerQualif de EmailHeader Qualif Avant d tre analys le chemin du fichier contenant l en t te est affich Puis l analyse est faite et finalement le r sultat est affich ainsi que le temps d ex cution pour le fichier la fin est affich en secondes le temps d ex cution total pour l ensemble des fichiers la moyenne d ex cution par fichier le temps maximum d ex cution par fichier et le temps minimum d ex cution Ces temps repr sentent le temps de r ponse de la m thode header Qualif D 2 2 5 Affichage des retours possibles de EmailHeaderQualif L option 5 permet d afficher la liste des retours possibles de la m thode headerQualif de EmailHeaderQualif D 2 2 6 Terminaison du programme En s lectionnant l option 0 le programme sort de sa boucle infinie Attention toutefoi
112. me un module Ce qui nous donne donc trois modules ajouter l analyseur modulaire IP Verification Ce module se base sur l extraction fournie dans 14 Cependant il doit tre adapt car il ne d tecte pas syst matiquement toutes les adresses IP requises il ne prend que l adresse IP de la source et seulement dans certains cas de figures User Agent La partie user agent du travail de R Cornu est int grer telle quelle dans le projet comme un module IP Geo localisation La g o localisation est int grer telle quelle dans le projet en tant que module Hes so Haute Ecole Sp cialis e de Suisse occidentale Projet de Dipl me Bachelor 12 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller De la r flexion sur le whois 1 1 3 et sur les listes noires 1 1 4 d coulent les modules IPBL pour IP Black Listing qui permet de qualifier les adresses IP et Whois qui per met d obtenir l intervalle des adresses IP et le propri taire de cette adresse Un autre aspect de EmailHeaderQualif est les fonctions qu elle fournit et les param tres de ces fonctions Au premier abord il apparait qu une seule fonction soit n cessaire Elle doit prendre en param tre un en t te et retourner les diff rentes informations trouv es par l analyseur modulaire Cependant en s inspirant de 14 il appara t que les fonctions four nies prennent en param tre un en t te et la liste des received
113. ment Dans la suite de cette section sont donn s les explications sur ces trois cat gories 6 5 1 Tests Unitaires Afin de contr ler le code fait et ou modifi des tests unitaires permettant de contr ler certaines m thodes fournies par les diverses classes sont mis en place La liste des classes test es ce trouve ci apr s Le code source de ces tests unitaires se trouve dans le r pertoire src test java ch iict iscia ehq module whois et de E src test java ch iict iscia eh q utils WhoisDataFile Il est contr l que cette classe crit et lit correctement les donn es WhoisData WhoisData Pour cette classe il est contr l que l ajout se comporte tel que d finit en 6 2 2 WhoisInformations Le contr le du d marrage et de l arr t de module est fait dans ses tests unitaires Il y est aussi contr l qu avec un jeu de donn e WhoisData les bons r sultats sont retourn s par la m thode analyse WhoisRetriever Aucun tests unitaires n a t fait pour cette classe Le test des mises jour t fait la main en utilisant les cas tests de validation et en contr lant que le fichier de donn es tait bien mis jour quand il tait p rim lors du lancement d une mise jour Hes Projet de Dipl me Bachelor 77 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller IPRange La comparaison entre deux intervalles telle que d finie dans 6 2
114. mettent de les r cup rer Il est volontaire de ne pas pouvoir modifier les donn es de cette classe car le seul moyen d obtenir des informations sur un intervalle d adresses IP pour le module est la mise jour par le WhoisRetriever Et vu que la mise jour des donn es se base sur un jeu de donn es WhoisData vide voir 6 2 2 3 il ne va jamais modifier une entr e existante 6 2 1 7 WhoisData La classe repr sente un jeu d entr es whois WhoisEntry Elle a pour but de pouvoir faire une recherche sur une adresse IP et d en ressortir la WhoisEntry correspondante avec la m thode getInfos Son constructeur peut prendre en param tre une liste d entr es ceci dans le but de faciliter les tests unitaires mais aussi pour donner la possibilit au thread de mise jour de cr er facilement un jeu d entr es si besoin est La m thode addRange permet de rajouter une entr e La suppression d une entr e n est pas prise en compte Premi rement car la mise jour par le thread se base sur un nouveau jeu de donn es c f 6 2 2 3 et deuxi mement parce que c est lors de l insertion de donn es que l on va g rer les diff rents probl mes qu il pourrait y avoir dans le jeu de donn es Hes Projet de Diplome Bachelor 67 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller La structure de donn es qui est utilis e pour g rer les entr es et la facon dont elle est g r e
115. n du Canton de Vaud Nicolas Muller dans le dossier test _User_ Agent UserAgent P_ Mail System Version txt UserAgent_P_X Newsreader_OE txt UserAgent F_ Mailer txt UserAgent A Message ID txt UserAgent_P_ Mailer txt UserAgent_P_X ewsreader txt serAgent F Mail System ersion txt serAgent_Y Dkim ignature txt JserAgent A Dkim ignature txt JserAgent_F_X Newsreader txt UserAgent _P_ Originating Client txt U U U Gace e o e JserAgent Y _Message ID txt JserAgent P_ User Agent txt JserAgent F_ User Agent txt JserAgent_P_ X Mailer txt serAgent_A DomaineKey ignature txt serAgent_Y DomaineKey ignature txt JserAgent_F_X Mailer txt aGnawnad UserAgent no_ info txt UserAgent F_ Originating Client txt UserAgent_P_ X MimeOLE txt UserAgent_F_ X MimeOLE txt N cas N Description R sultat attendu test sp cifi cation 1 3 3 2 1 3 1 7 Lancer une analyse sur les fichiers L analyse de chacun des fi chiers doit sortir un user agent sauf l analyse de Use rAgent no _info txt qui ne retourne rien on doit trouver UserAgent Outlook a serAgent null UserAgent Mozilla Thunder bird UserAgent AOL Mail UserAgent Outlook UserAgent Outlook E serAgent Mozilla Thunder bird serAgent Yahoo Mail a UserAgent AOL Mail E serAgent Mozilla Thunder bird UserA gent Outlook UserAgent Yahoo Mail UserA gent Outlook UserAgent
116. nable mais il faut essayer de s en rapprocher au maximum Il en d coule plusieurs t ches list es ci apr s Cr er le syst me de traitement modulaire Cr er les modules d extraction des informations des en t tes en modifiant le travail de R Cornu pour extraire les adresses IP Trouver des sources d information consultables qualifiant les adresses IP listes noires Cr er les modules de recherche d informations gr ce ce qui a pu tre extrait pr c demment via whois Il s agit d int grer le travail de R Cornu dans le projet Ce travail comprend un moyen d extraction d adresses IP un syst me de v rification de la validit d une adresse IP la g o localisation d une adresse IP et l obtention de l agent utilisateur client utilis pour crire et envoyer un courriel partir d un en t te Le couplage entre le projet ISCIA et EmailHeaderQualif doit tre minimal C est dire que le seul l ment de couplage est la signature de l API Aucun autre l ment ne doit venir en augmenter le couplage notamment ne pas retourner de types ou d objets qui auront t cr s sp cifiquement pour le projet Attention toutefois il n est pas pr vu d valuer la pertinence de la qualification des adresses IP C est dire qu il n est pas pr vu de pouvoir dire par exemple l adresse IP XXX XXX XXX XXX est un botnet avec une probabilit de y En effet il serait trop complexe de mettre en place un tel syst me d
117. ndant le module n utilise que la m thode geoLocalisationIP pour g o localiser les adresses IP Cette m thode retourne les arguments suivants countryCode countryName regionName regionCode zipcode cityName latitude longitude metroCode area code dmaCode timeZone Ces arguments sont en suite ins r s par GeoLocModule dans le HeaderData avec les mar queurs correspondants donn s dans le cahier des charges 4 2 4 Classe GeoLocation Cette classe est la classe d origine utilis e par UA_IPSource_IPLocIP Elle est modifi e pour externaliser la mise jour des donn es de g o localisation Le travail fait sur cette classe est simple Il a suffit de s parer les bouts de codes concernant la lecture du fichier de configuration et la mise jour de la base de donn es et du fichier dans la m thode load cr e cet effet Cette m thode permet de faire le traitement chargement des donn es et mise jour des donn es et fait les actions suivantes 1 Lecture du fichier de configuration 2 Calcul de la date de mise jour 3 Mise jour si n cessaire 4 Calcul de la prochaine date de mise jour La technique de calcul de mise jour et la technique de mise jour sont laiss es telle qu l origine En plus de la m thode load une m thode close a t mise en place Le but tant de pouvoir fermer de fa on propre le gestionnaire utilis po
118. ne adresse IP partir d une cha ne de caract re Hes Projet de Dipl me Bachelor 66 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller non valide on risque d obtenir des effets de bords inattendus puisque cette chaine peut tre interpr t e comme un nom DNS La classe va alors tenter de r soudre ce nom et risque soit de provoquer une erreur soit de fausser les donn es Une adresse IP n est pas modifiable car elle n a pas de setter 6 2 1 5 IPRange Le but de cette classe est simplement de repr senter les diff rents intervalles contenus dans WhoisData Elle prend donc en param tre les deux adresses IP qui repr sentent son d but et sa fin La premi re adresse IP donn e dans le constructeur doit tre plus petite que la deuxi me sans quoi une exception est lev e Un intervalle n est pas modifiable ceci pour repr senter le fait que ce qu il repr sente est obtenu par une requ te whois et que ce r sultat ne change pas 6 2 1 6 WhoisEntry Cette classe permet de repr senter une entr e dans WhoisData Si on fait le parallele avec une requ te whois elle peut repr senter un fragment de son r sultat Elle contient un IPRange et le nom de l organisation laquelle cet intervalle appartient nomm par la suite NetName ou propri taire Son constructeur prend en param tre un IPRange et un String repr sentant le propri taire Les m thodes getNetName et getRange per
119. nt en String Chaque entr e correspond une entr e cl valeur de l en t te du courriel Les receiveds sont fournis dans une liste de table de hashage Ils tendent eux aussi la classe Map Les cl s des receiveds pris en entr e par API sont d crits ici Ces champs sont toujours pr sents mais pas toujours renseign es ils peuvent tre null Timestamp Date d insertion du received FromIp Adresse IP contenue dans le champ from FromDns Nom DNS contenu dans le champ from Bylp Adresse IP contenue dans le champ By ByDns Nom DNS contenu dans le champ by Via valeur de la cl Via dans le received With valeur de la cl With dans le received Id Num ro d ID trouv dans le receivd For Destinataire trouv dans le received C 2 Structure des paquetages Pour correspondre la structure de paquetage de ISCIA les paquetages prennent le pr fixe ch iict iscia Puis le pr fixe ehq est rajout pour indiquer que c est le paquetage de 107 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller EmailHeaderQualif Dans le paquetage ch iict iscia ehq se trouve la classe EmailHeaderQualif Toutes les autres classes se trouvent au minimum dans le paquetage ch iict iscia ehq modules Dans ce paquetage se trouve le code du gestionnaire de modules et les diff rents enums utilis s dans Email HeaderQualif Le code de chaque module se trouve dans un paquetage ch
120. o qui est attribu chaque appareil lectronique lorsqu il participe un r seau informatique utilisant lorsqu elle participe un r seau informatique utilisant l Internet Protocol comme protocole de communication entre ses n uds 1 IPBL Module de contr le de validit d adresse IP 16 par liste noire Black List Hes Projet de Dipl me Bachelor 96 117 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Z icolas Muller Notation Description Page List Java JRE log4j MTA Java est le nom de marque d une technique d velopp e par Sun Microsystems la technologie Java Elle correspond plusieurs produits et sp cifications de logiciels qui ensemble constituent un syst me pour d velopper et d ployer des applications Java est utilis e dans une grande vari t de plates formes depuis les syst mes embarqu s et les t l phones mobiles jusque aux serveurs les applications d entreprise les super ordinateurs et dans une moindre mesure pour les interfaces graphiques comme les applets Java du Web Environnement d ex cution en machine virtuelle pour Java Syst me de journalisation pour Java Mail Transfer Agent Agent de transfert de courriel Se charge du transport des courriels entre l envoyeur et le destinataire 15 40 43 15 3 4 14 39 Hes Projet de Dipl me Bachelor 97 117 Haute Ec
121. ocument 10 1 Retour sur les objectifs initiaux En r sum les objectifs initiaux taient Identifier l adresse IP de la source d un courriel Identifier le premier MTA utilis pour transmettre un courriel Int grer le travail de Romain Cornu 14 Obtenir l intervalle et son propri taire de l adresse IP source d un courriel OO Fe WD N RA Qualifier l adresse IP source d un courriel et l adresse IP du premier MTA utilis pour transmettre le courriel si le temps le permets 6 Cr er un syst me de traitement modulaire Tout les points ci dessus sont r alis s except la qualification d adresse IP pour laquelle le temps imparti na pas t suffisant Un des objectifs tait de pouvoir cr er facilement des nouveaux modules venant s ajouter facilement au traitement fait par EmailHeaderQualif C est chose faite Pour ce faire il suffit de cr er comme point d entr e du module une classe qui tende ch iict iscia ehq modules AbstractModu la compiler et la placer dans le dossier contenant le code java ex cutable correspondant En rajoutant le nom complet de la classe incluant le paquetage dans le fichier de configu ration configModuleControler et en red marrant EmailHeaderQualif le nouveau module sera pris en compte Les performances de Email HeaderQualif sont donn es dans la section suivante 85 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 10 1 1
122. oft SMIPSVC 6 0 3790 4675 Wed 20 Oct 2010 08 16 03 0700 Received from unknown 194 171 35 190 by smtp3 inholland nl with smtp id 079c_83d0_fe98980c_dc5b_11df b794 001422241924 Wed 20 Oct 2010 17 09 22 0200 Received from SR0482 intranet inholland nl 10 1 67 93 by SR0006 intranet inholland nl 10 1 70 72 with Microsoft SMTP Server TLS id 8 2 254 0 Wed 20 Oct 2010 17 08 57 0200 Received from SR0478 intranet inholland nl fe80 9023 a0a0 f840 9180 by SR0482 intranet inholland nl fe80 50d7 d7a9 9ba6 682a 14 with mapi Wed Hes Projet de Dipl me Bachelor 4 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 20 Oct 2010 17 08 56 0200 From Versnel Hetty lt Hetty VersnelQINHOLLAND nl gt Date Wed 20 Oct 2010 17 08 55 0200 Subject Confirmation Email Ref No JSPSD 11532264832140 Thread Topic Confirmation Email Ref No JSPSD 11532264832140 Thread Index AQHLcGi3M8ZZunkuz0mzQzT8SE90 Q Message ID lt 7304E1C44E5FD14A97761A2A26D55B9C0464912F47 SR0478 intranet inholland nl gt Accept Language nl NL Content Language nl NL X MS Has Attach X MS TNEF Correlator acceptlanguage nl NL Content Type text plain charset iso 8859 1 Content Transfer Encoding quoted printable MIME Version 1 0 To Undisclosed recipients Return Path Hetty Versnel QINHOLLAND nl X NAI Spam Flag NO X NAI Sp
123. ole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 98 117 Bibliographie 1 os 2 st 3 a 4 5 6 7 8 9 ist 10 11 12 13 14 15 16 WIKIPEDIA Internet Protocol http fr wikipedia org wiki Adresse_ip 5 d cembre 2010 WIKIPEDIA Phishing Hame onnage http fr wikipedia org wiki Phishing 12 d cembre 2010 WIKIP DIA Java http fr wikipedia org wiki Java_ technique 10 octobre 2010 CEKI G LC Short introduction to log4j http logging apache org log4j 1 2 manual html Mars 2002 SUN MYCROSYSTEMS Comment installer l environnement d ex cution Java http www java com fr download help download_options aml derni re consultation novembre 2010 WIKIPEDIA Whois http fr wikipedia org wiki W hois 2 d cembre 2010 CHRISTOPHE D ANTONIO Nigerian Connection http www ultrascan agi com public_html html news Nigerian_Connection html 4 mars 2004 WIKIPEDIA Spam http fr wikipedia org wiki Spam 2 d cembre 2010 WIKIPEDIA Remote Method Invocation Java http fr wikipedia org wiki Remote_method_invocation_ Java 15 septembre 2010 M86 SECURITY LABS Spam statistics http www m86security com labs spam_ statistics asp octobre 2010 THE SPAMHOUSE PROJECT http www spamhaus org index lasso derni re consultation 20 novembre 2010 INTERNET ENGINEERING Task FORCE RFC 1739
124. ole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller N Explication 1 3 1 16 Les qualifications retourn es pour une m me adresse IP sont dans des champs diff rents La cl d acc s ces champs est diff renci e par un num ro de 1 x o x est le nombre total de qualifications pour une IP c f liste des valeurs retourn es dans le cahier des charges 1 3 1 17 Si aucune information pertinente n a pu tre trouv e lors de l appel de la m thode headerQualif son retour est null 1 3 1 18 Si l en t te fourni headerQualif est inconsistant nulle ou de mauvais type lever une exception 1 3 1 19 EmailHeaderQualif doit pouvoir traiter 100000 en t tes par jour soit un en t te toutes les 0 86 secondes 1 3 1 20 EmailHeaderQualif n a pas besoin de prendre en charge des appels concurrents C est dire que ISCIA ne fera jamais deux appels simultan s de la m thode headerQualif 1 3 1 21 Seules les erreurs du standard Java sont utilis es pas de red finition d er reurs 1 3 1 22 Les donn es locales n cessaires sont charg es en m moire lors du lancement de EmailHeaderQualif 1 3 1 23 Si les donn es locales sont indisponibles Email HeaderQualif ne d marre pas 1 3 1 24 EmailHeaderQualif met jour p riodiquement les donn es en m moire partir des donn es locales sans ralentir le processus de qualification 1 3 1 25 L intervalle de mi
125. on qui a pour but d arr ter celle ci FATAL D signe une erreur fatale qui oblige l application s arr ter ERROR Ce niveau indique les v nements d erreur qui peuvent survenir mais qui n em p che pas forc ment l application s arr ter WARN Journalisation de situation qui peuvent tre critique pour le bon d roulement de l application INFO Niveau d information du programme qui permet de suivre le d roulement DEBUG Niveau d information plus fin que INFO utilis pour le d bogage des applications TRACE D signe un niveau d information l g rement sup rieur DEBUG Par exemple il affiche toutes les exceptions qui surviennent m me si elles ne sont pas trait es ALL Journalise toutes les informations de d bogage D 2 3 2 2 Format d affichage Le format d affichage est le suivant IPAnalyserModule start 111 Starting EHQ modules IPAnalyserModule start 112 Loads madules list IPAnalyscrModule itart 114 Builds epencencies start 116 Starts modules IPAnalyserModule FIGURE D 2 Format d affichage de la journalisation Le premier l ment 1 est l heure de l entr e de journalisation Ensuite 2 se trouve entre crochets le niveau de journalisation A la suite 3 se trouve entre crochets le nom de la classe paquetage compris d ot vient cette journalisation puis 4 la m thode dans la classe ainsi que la ligne de code entre parenth ses Finalement 5 se trouve la ligne de text
126. onn es Hes Projet de Dipl me Bachelor 71 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Pour viter de retourner des donn es comme le IANA BLOCK cit pr c demment les in tervalles xxx 0 0 0 xxx 255 255 255 sont filtr s lors de l insertion pour ne pas tre ajou t s Ces intervalles n apporte rien d un point de vue de EmailHeaderQualif ou pour une investigation Ce constat implique de modifier le comportement de la m thode put key value de la TreeMap pour adapter l insertion ces sp cifications lors de l insertion d un intervalle dans WhoisData Dans le cas d une galit on consid re que les donn es ajout es sont plus r centes que les donn es originales On remplace donc les donn es originales 6 2 2 2 1 Recherche de donn es La recherche de donn es relative une adresse IP est simple mettre en place Comme dit pr c demment il suffit de rendre comparable IP un intervalle Il faut donc impl menter l interface correspondante Les r sultats de la m thode de comparaison entre une adresse IP A et un intervalle B A compareTo B en Java sont les suivants Plus petit que 0 si l adresse de d but de l intervalle est plus grande que gal 0 si A est compris dans B Plus grand que 0 si A est plus grand que la derni re adresse de B Ainsi la m thode get Object o de la TreeMap retournera le WhoisEntry dont l inter
127. ournal de travail probl mes importants rencontr s etc au moins une fois par semaine 3 Le rapport doit tre r dig au fur et mesure de l avancement du projet Conform ment aux directives du d partement TIC de la HEIG VD une version interm diaire du rapport final sera soumise et valu e par le prof responsable la fin du deuxi me semestre 4 Le rapport doit contenir des informations d taill es concernant la planification du projet de bachelor savoir les diff rentes phases du projet et les r sultats attendus les co ts estim s en jours homme de chaque phase et de chaque t che Le rapport doit aussi contenir les m mes informations concernant le travail effectu durant le projet de bachelor phases et co ts r els Une comparaison entre les informations planifi es et effectu es est aussi incluse dans le rapport 5 La pr sentation lors de la d fense du projet de bachelor et le contenu du rapport de projet de bachelor doivent rigoureusement respecter les exigences d crites dans les directives mises par le d partement TIC de la HEIG VD 6 Toute contribution de tiers code images texte id e importante etc provenant d Internet ou de n importe quelle autre source doit tre explicitement indiqu e et r f renc e Tout manquement cette r gle est consid r comme grave et peut entra ner un rejet du projet de Hes Travail de dipl me de Muller Nicolas page 6 Haute Ecole d Ing nierie et de Gest
128. p cifiques qui doivent tre mis dans le code source Ceci tant Maven permet de d finir un dossier de ressources que le projet utilise Ayant utilis cette possibilit pour garantir une int gration facile dans ISCIA le probl me suivant s est pos Lors de la g n ration du fichier JAR final toutes les ressources sont inclues dans le fichier JAR Ceci tant elles ne sont plus accessibles via la classe File qui ne peut aller lire les fichiers se trouvant dans une archive JAR La solution ce probl me est d utiliser la m thode InputStream getResourceAsS tream String name source 36 qui permets d obtenir un InputStream pour pouvoir lire des fichiers de ressource Cette m thode est valable pour n importe quel fi chier Qu il soit dans le syst me de fichier ou dans le fichier JAR A ceci pr s que la chaine de caract re du nom de fichier doit poss der un en premier caract re pour les fichiers qui se trouvent dans le JAR Cette technique permet de lire un fichier sans soucis Ce qui convient tr s bien pour le fichier de configuration mais n est pas suffisant pour le fichier de donn es car il est im possible d crire avec cette fa on de faire Le fichier de donn es doit donc se trouver Vext rieur du fichier JAR et in extendo l ext rieur du dossier de projet qui contient les ressources La section suivante d crit les tests effectu s sur ce module 1 On entends par dossi
129. p de EmailHeaderQualif ce qui stoppe chacun des modules pour lib rer les ressources et stoppe le gestionnaire de module Hes Projet de Dipl me Bachelor 111 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller D 2 2 3 Analyse d un en t te contenu dans un fichier par EmailHeaderQualif Cette fonction a pour but de lancer un test partir d un fichier texte contenant un courriel entier en t te et corps Il faut s lectionner option 3 pour pouvoir l utiliser Un fois cette option choisie un chemin du fichier de test est demand Ce chemin peut tre relatif ou absolu Par exemple si le programme s ex cute dans le r pertoire home et que le chemin du fichier de test est home fichier Test test trt Il est possible de rentrer le chemin absolu home fichierTest test txt ou le chemin relatif fichier Test test trt Une fois le fichier de configuration s lectionn l en t te contenu dans ce fichier est affich sous forme structur e Puis le programme appelle la m thode headerQualif de EmailHea derQualif pour analyser cet en t te Une fois l analyse termin e le r sultat est affich toujours sous forme cl valeur correspondant la table de hachage retourn e De plus est affich le temps d ex cution de l analyse D 2 2 4 Analyse des en t te contenus dans tous les fichiers d un dossier L analyse de tout les fichiers contenu dans un dossier est semblable D 2 2 3 sauf qu e
130. pas avec les adresses IPv6 Une classe WhoisDataFile doit tre cr e pour pouvoir lire et crire les donn es WhoisData dans un fichier Elle tend la classe File pour h riter de toutes les m thodes que l ont peut d sirer pour un fichier et met disposition une m thode de lecture de fichier et une m thode d criture de fichier Une classe permettant d analyser le fichier de configuration c est la classe lt ParseConfigurationFileWhois Elle tend DefaultHandler afin de pouvoir facilement utiliser le XMLReader fournit par Java qui permet de lire le contenu d un fichier XML Pour plus de d tail sur le XML voir 22 Hes Projet de Diplome Bachelor 63 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Le sch ma de classe simplifi ci dessous repr sente la structure du module Un d tail de chaque classe se trouve la suite du sch ma le JA IPlipStr String _DefaultHandler getiP String ASA He E MARKER String UPDATE eee a Strin oisData Da read undef write data undef oisData WhoisData dataToWrite List lt WhoisEntry gt posal appt Le WhoisEntry ge E IPRange netName String ip utils IP WhoisEnt Price y utils IPRange getNetName String FIGURE 6 2 Diagramme de classe simplifi du module Whois Les classe en bleu sont des classes fournies parJava 6 2 1 1 WhoisInformations
131. pendent doivent tre ex cut s avant eux Cependant si il y a des d pendances circulaires entre les modules cela posera probl me durant le traitement des requ tes sur les en t tes car il sera impossible de d terminer lequel des modules ex cuter en premier dans la d pendance circulaire Pour viter cela le gestionnaire de modules contr le qu il n y ait pas de d pendances circulaires lors de l initialisation des modules Si il y a une d pendance circulaire l initialisation choue et une exception est lev e Le d tail de cette gestion est expliqu dans la partie r alisation de ce chapitre 2 2 1 3 Gestion des priorit s d ex cution des modules Les modules n ont pas de priorit s proprement parl Cependant les d pendances im plique que certains modules doivent tre ex cut s avant d autres C est ce qu on entend ici par priorit Pour chaque requ te tous les modules doivent tre appel s dans un ordre qui fait que les modules sans d pendances sont ex cut s en premier et petit petit les modules dont les d pendances ont d j t ex cut es sont ex cut s leur tour 2 2 1 4 Ajout dynamique de modules ISCIA tant red marr tr s peu souvent et in extenso EmailHeaderQualif aussi il est n cessaire de pouvoir ins rer un nouveau module sans pour autant devoir re compiler tout EmailHeaderQualif Pour ce faire un fichier de configuration contenant la liste des modules est utilis par le gestionnai
132. qui se fait avec la m thode start Si cette m thode n est pas appel e en premier lieu toute requ te aboutira sur une exception Le module poss de au final deux tats d marr et arr t La suite de cette section liste les diff rents tats et v nements appels de m thodes et leurs cons quences tat d marr start N a aucun effet stop Arr te chacun des modules en appelant sa m thode stop c f 2 2 3 3 3 et passe dans l tat arr t header ModuleCheck Lance l analyse de la requ te sur chacun des modules c f 2 2 3 3 1 tat arr t start La s quence d initialisation est lanc e c f 2 2 3 2 2 puis le gestionnaire passe en tat d marr Hes Projet de Dipl me Bachelor 31 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller stop Aucun effet headerModuleCheck L ve une exception Le gestionnaire doit tre lanc pour appeler cette m thode 2 2 3 2 2 S quence d initialisation La s quence d initialisation comprend plusieurs phases 1 Lecture du fichier de configuration 2 Construction du graphe des d pendances des modules 3 V rification de l absence de cycles dans le graphe des d pendances 4 D finition des priorit s d ex cution des modules selon les d pendances 5 D marrage des modules selon l ordre d ex cution pr alable Les points 2 et 3 sont explicit s dans la r alisation chacune de ces tapes peuvent survenir des erreurs
133. r per Le temps d ex cution moyen et le toire contenant tous les fichiers temps d ex cution maximal aff de test nomm TestAll Ce test ch s ne doivent pas d passer les peut prendre un certain temps 0 86 secondes 10min Hes Projet de Dipl me Bachelor 21 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller ATTENTION Il est apparu qu apr s une quantit tr s im portantes de requ tes whois de mise jour l adresse IP publique que l on a peut tre bloqu e DE FINITIVEMENT par certains serveurs whois Il est possible de faire ce test sans connexion inter net pour viter ce bannissement d adresse N cas N Description R sultat attendu test sp cifi cation 1 3 3 7 1 3 1 22 Renommer le fichier Config le lancement des modules doit 23 FindGL xml Lancer le pro chouer pour chacun des fichiers gramme de test lancer les modules ne pas oublier de le remettre par la suite R p ter l op ration pour les fichiers ConfigFindUA xml whoisData dat Fulltrace xml configModuleControler xml GeoLiteCity dat et partial Trace xml Les fichiers xml sont dans le fichier jar Les fichiers dat sont dans le m me r pertoire que le fichier jar 1 3 3 8 1 3 1 8 Lancer une analyse sur le dossier Les r sultats suivants doivent 1 3 1 11 ipSource tre obtenus pour les diff rents fi chiers IPSource R MSS IP PR txt
134. r de headerQualif corres pondent ceux donn s dans le cahier des charges c f Cahier des charges 1 3 1 6 Si une information n a pas pu tre trouv e l entr e dans la table de hachage n existe pas 1 3 1 7 headerQualif retourne si possible le user agent 1 3 1 8 headerQualif retourne si possible l adresse IP priv e de la machine ayant envoy le courriel 1 3 1 9 headerQualif retourne si possible l adresse IP publique du premier MTA 1 1 3 1 10 headerQualif qualifie c f Cahier des charges si possible l adresse IP du pre mier MTA 1 3 1 11 headerQualif retourne si possible l adresse IP publique de la machine ayant envoy le courriel 1 3 1 12 headerQualif qualifie c f Cahier des charges si possible l adresse IP publique de la machine ayant envoy le courriel 1 3 1 13 headerQualif retourne si possible l intervalle de l adresse IP publique de la machine ayant envoy le courriel 1 3 1 14 headerQualif retourne si possible le nom de l organisation laquelle appartient l intervalle d adresses IPs publiques de l envoyeur 1 3 1 15 headerQualif retourne si possible les informations de g o localisation de l adresse IP publique de la machine ayant envoy le courriel 1 On parle ici de l adresse IP publique de la machine ayant introduit le premier received 2 c f Cahier des charges pour le d tail des informations fournies Hes Projet de Dipl me Bachelor 17 117 Haute Ec
135. r le moyen de lecture du courriel Celui ci n entrant pas dans les pr rogatives de ce projet il est inutile de s tendre l dessus Avant la lecture du courriel il y a son cheminement En faisant l analogie un courrier postal peu importe que vous l ayez recu dans votre bo te au lettre ou retir au guichet Cela ne changera rien son contenu ni aux informations sur l envoyeur En revanche les personnes traitant ce courrier peuvent vous apporter diverses informations En remontant la fili re il y a en premier la personne qui vous remet le courrier Ensuite il y a toutes les personnes qui ont eu votre courrier en main durant son transfert Elles ne peuvent rien vous apprendre sauf la premi re qui a retir la lettre Elle peut vous dire o la lettre a t retir e et parfois m me qui la envoy e Pour en revenir aux courriels les personnes par qui passent le courriel sont les MTA Mail Transfer Agent Le premier MTA peut donc fournir des informations sur l envoyeur Or les MTA laissent une trace dans l en t te d un courriel Bien que certaines informations ne soient pas inscrites Dans le cheminement du courrier ce qui nous int resserait dans notre cas ce sont les in formations sur l envoyeur De pouvoir dire si c est une personne une victime d un abus de confiance qui ne fait que renvoyer ce qu on lui donne ou si il est impossible de d finir qui Hes Projet de Dipl me Bachelor 2 117 Haute Ecole d Ing nierie
136. r les besoins d SCIA En collaboration avec le mandant il a t tabli que l analyseur modulaire devait pouvoir analyser environ 100 000 en t tes en 24 heures soit un en t te toute les 0 86 secondes Ce qui implique qu aucun acc s une ressource ext rieure ne doit ralentir le traitement Ces acc s peuvent prendre la forme d acc s disque ou de requ tes sur un autre serveur Les cons quences sont que toutes les donn es utilis es par les modules doivent tre charg es en m moire pour r duire au maximum ces temps Hes Projet de Dipl me Bachelor 13 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Durant cette pr tude le cahier des charges se trouvant au d but du document a t fait ainsi que la planification qui suit correspondant ce cahier des charges et la pr tude 1 2 Planification Ici sont indiqu s les diff rentes tapes ayant d coul du cahier des charges tabli et de la pr tude Le d coupage des t ches se base sur la structure modulaire En effet la principale et premi re t che accomplir est la base de la structure et donc le gestion naire de modules Puis vient le module d extraction d IP qui permet d obtenir les adresses n cessaires pour certains des autres modules Il s ensuit la g o localisation et le module d obtention du user agent qui sont suppos s rapides int grer Puis le module whois car suite aux diff rents essais
137. r lire et crire dans un fichier les donn es utilis es il faut soit mettre en forme ces donn es sous forme de texte pour les crire dans un fichier et les r extraire au moyen d un parseur de texte Ou alors comme dans le cas de WhoisDataFile crire des don n es s rialisables 23 dans un fichier de donn es Hes Projet de Dipl me Bachelor 65 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Cette classe tend la classe File pour lui apporter tous ses avantages gestion des fichiers etc C est un apport facile et qui ne co te qu une extension de classe Cependant deux m thodes suppl mentaires ont t d finies read Retourne les donn es WhoisData contenues dans le fichier repr sent par cette classes write crit les donn es WhoisData pass es en param tre dans le fichier repr sent par cette classe Les donn es qui taient d j dans le fichier sont cras es Si il n existe pas il est cr La s rialisation de WhoisData implique que la classe impl mente l interface Serializable qui est un marqueur de s rialisation pour Java Toutes les donn es non statiques de WhoisData doivent impl menter cette interface et ceci de fa on r cursive pour ces classes Avantages de la s rialisation des donn es Facile mettre en place Pas d erreur dans l criture ou le parsing contrairement un fichier texte La modific
138. re de modules Quand le gestionnaire de modules d marre il va v rifier ce fichier pour charger les modules Il suffit donc de red marrer le gestionnaire de module pour prendre en compte le nouveau module 2 2 2 Principes de fonctionnement des modules En plus de leur fonction d analyse les modules r pondes ces diff rents principes 1 Toutes les donn es n cessaires au traitement sont charg es en m moire Hes Projet de Dipl me Bachelor 28 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 La mise jour des donn es en m moire doit tre g r e par les modules 2 2 2 1 Donn es de traitement en m moire Pour des raisons d efficacit c f Sp cification n 1 3 1 19 toutes les donn es n cessaires aux modules doivent tre charg es en m moire Un tel fonctionnement peut para tre dan gereux d un point de vue de la place m moire utilis e Cependant si un acc s aux fichiers ou un service externe est fait chaque nouvelle requ te le temps d ex cution sera d cupl par les temps d acc s ce qui n est pas tol rable au vu du nombre de requ tes traiter par jour 2 2 2 2 Gestion des donn es en m moire Comme dit au d but du chapitre le gestionnaire de modules doit g rer les diff rents mo dules Cependant il ne doit pas avoir agir pour ou sur les donn es n cessaires au fonc tionnement des diff rents modules Les deux seuls moments o son intervention a d
139. res pr d finis dans un fichier de configuration sans ralentir le processus de traitement de EmailHeaderQualif ce qui implique l utilisation de threads pour parall liser les mises jour voir 21 pour plus de d tails sur les threads Le ou les threads du module ne doivent pas poss der de priorit haute ou tre en temps r el pour ne pas monopoliser le processeur Toutes les informations d ex cution du module doivent passer par le syst me de journa lisation log4j ce qui inclut les exceptions les erreurs pouvant survenir le d marrage et Varr t du module ainsi que celui de son ses threads de mise jour La mise jour p riodique des donn es est galement journalis e ainsi que sa r ussite ou son chec Mettre disposition des m thodes d arr t et de d marrage du module qui doivent com prendre le d marrage et l arr t des threads g r s par le module D clarer la d pendance au module IP Verification pour avoir l adresse IP publique analyser Si l adresse IP publique n est pas disponible simplement quitter la m thode d analyse sans autre forme de traitement ou de journalisation Toutes les informations de configuration n cessaires au module se trouvent dans un fi chier de configuration Notamment l emplacement du fichier de donn es et l intervalle de mise jour de celui ci Ce sont les diff rentes contraintes et cons quences qui peuvent tre sorties des sp cifica
140. rmet de traiter les classes et les m thodes comme des objets C est dire d avoir un objet qui repr sente une classe et d instancier cette classe partir de cet objet Une fois l objet instanci il est possible d invoquer une m thode de cet objet en utilisant simplement le nom textuel de cette m thode Par exemple en utilisant la cha ne de caract res toString pour invoquer la m thode toString de l instance d un objet Les risques inh rents ce type d invocation sont que la classe n est pas r ellement celle qu il faudrait dans notre cas qui n tend pas la classe AbstractModule ou que la m thode invoqu e n existe pas Auquel cas des exceptions sont lev es Il faut donc g rer ces risques d erreurs dans le code La gestion des erreurs dues la r flexion ne doit pas remonter jusqu l appelant de Email HeaderQualif En effet une requ te ne doit jamais renvoyer une erreur sauf si l analyseur modulaire n a pas d marr La liste des classes dans le fichier de configuration peut tre fausse Ce qui a pour cons quence de lever une exception lors de l analyse avec la r flexion C est pourquoi il est contr l lors du d marrage que les classes d finies dans le fichier de configuration sont existantes et r pondent aux crit res des modules 2 3 3 Journalisation La journalisation se fait avec log4j Un fichier de configuration log4j properties contient toute la configuration de journalisation
141. s PAPI Il faut voir l analyseur modulaire comme un m canisme auquel on peut ajouter des moteurs pour en augmenter la puissance Ces moteurs ce sont les modules Chaque module analyse les donn es disposition et en tire des conclusions Chaque in formation suppl mentaire fournie par un module augmente la puissance du tout Le but premier d un analyseur modulaire est de pouvoir ajouter facilement des modules qui aug menteront le nombre d informations fournies en retour d une requ te tout en rendant cet ajout de puissance le moins co teux possible au d veloppement L analyseur modulaire doit donc mettre disposition un syst me de gestion de modules et un conteneur pour les donn es fournies pour le traitement et trouv es par les modules De plus il doit g rer l appel de ces diff rents modules pour pouvoir r pondre aux requ tes Cependant il ne doit en aucun cas intervenir sur les donn es du conteneur ceci dans le but d externaliser un maximum le traitement aux modules Mais encore le gestionnaire de modules n a aucune raison de modifier les donn es du conteneur puisque il ne fait pas d analyse de donn es Le conteneur de donn es contient donc deux types de donn es les donn es relatives l en t te analyser et les donn es trouv es La gestion des modules implique qu il faut aussi g rer leurs naissances mais aussi leurs morts C est dire que ces modules peuvent avoir besoin de s initialiser avant d
142. s cela n appelle pas la m thode stop de EmailHeaderQualif Les ressources ne sont donc pas Hes Projet de Dipl me Bachelor 112 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller lib r es correctement Cela tant le programme de test peut ne pas se terminer car un des threads reste actif D 2 3 Analyse des r sultats et des informations affich es Lors de l utilisation des diff rentes fonctionnalit s du programme plusieurs informations sont affich es Comme cit en D 2 2 3 et D 2 2 4 des temps d ex cution sont affich s Mais aussi les en t tes analys s et les r sultats obtenus De plus des informations sont affich es durant l appel aux fonctions de EmailHeaderQualif sur son ex cution Ci apr s sont don n s le format des en t tes affich s et des r sultats ainsi que l explication des diff rentes informations affich es D 2 3 1 Donn es affich es Deux types de donn es sont affich s les en t tes extraits des fichiers de test et les r sultats des appels la m thode headerQualif Ils sont expliqu s ci dessous D 2 3 1 1 Donn es dans les en t tes Un en t te est affich dans le format suivant header clel valeur cle2 valeur clex valeur receiveds ByDns Bylp For FromDns FromIp Id Timestamp Via With ByDns Bylp For FromDns FromIp Id Timestamp Via With On peut voir la liste des valeurs contenues
143. s Se A 25 2 1 1 Contr leur de modules 26 21 27 Modules A AE LE a di oh Ge 26 2 2 Conception as AA a A oe he ee 26 2 2 1 Principes de fonctionnement de l analyseur modulaire 27 2 2 2 Principes de fonctionnement des modules 28 2 2 3 Structure de l analyseur modulaire 30 2 2 4 Traitement des d pendances 34 2 2 5 Fichier de configuration 35 2 3 A Realisation of A A 8 at Ln 36 2 3 1 Optimisation du code 36 2 3 2 M thode de traitement de requ tes sur les modules 36 2 3 3 JOUFNANSATION RE a D Sie gee Vi net A Ve a 36 2 3 4 Impl mentation des num r s de r f rence 37 2 41 Test UNITAIT S lt r i ec IN 37 2 4 1 Tests unitaires de HeaderData 38 2 4 2 Tests unitaires de ModuleControler 38 24 3 Test manuel 5 4 4 4 a enced o ef MR A RENE 38 XV heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 3 Module IP Verification 41 dll Analy exitos TEARS A A 41 3 1 1 Analyse de l extraction d adresse de la machine Emettrice 42 3 2 CONCEPCION 4444 rune LAVAL RUE ER Bee es AU LE 43 3 2 1 Classe IPAnalyserModule 4 4 a das mous de dues none ue 44 3 22 Classe IPlnf g sgh rana du aux de dE des Les 44 3 2 3 Classe IPEXGtr ctol 2 lt 4 24242 d
144. s de g rer les modules Les paragraphes suivants donnent les m thodes et leurs buts Il est important de comprendre que le fonctionnement des modules est soumis aux m mes tats que le contr leur de modules c f 2 2 3 2 2 2 3 3 1 void analyse Cette m thode est celle appel e pour faire une requ te sur un header Elle prend les m mes param tres que la fonction headerQualif mais prend en plus le conteneur de donn es trouv es c f 2 2 3 4 2 2 3 3 2 void load Cette m thode permet de charger le module et le met en tat d marr Toute erreur de chargement du module l ve une exception 2 2 3 3 3 void stop Cette m thode permet d arr ter le module 2 2 3 3 4 Boolean isLoaded Cette m thode renvoie un bool en qui est vrai si le module a t charg 2 2 3 3 5 List lt Class gt getDependencies Cette m thode donne la liste des mo dules desquels est d pendant le module 2 2 3 4 Classe HeaderData Cette classe contient les informations trouv es par les diff rents modules Elle permet au gestionnaire de module de faire compl tement abstraction du traitement fait par les modules HeaderData contient une table de hachage avec les diff rentes informations trouv es Les cl s qui sont dans cette tables doivent correspondre aux retours d finis dans le cahier des charges La seule interaction qu a le contr leur de modules avec la classe HeaderData c est quand il doit retourner les r sultats de analy
145. s peu utilis L extraction d adresses IP est d taill e dans le chapitre 3 1 1 2 Botnet Dans cette section se trouve les diff rentes recherches effectu es sur les botnets Comme dit pr c demment un botnet est un r seau d ordinateurs zombies qui ob issent un ma tre Il peuvent servir envoyer des courriels depuis l ordinateur d une personne qui l ignore totalement Le vrai envoyeur reste donc anonyme et prot g de toutes recherches En ajoutant cela la possibilit de forger les en t tes il devient tr s difficile de trouver le r el envoyeur du courriel La figure ci dessous pr sente la liste des diff rents botnets les plus utilis s pour envoyer des messages de spam Ces statistiques sont bas es sur des honeypots bo te de courriel servant d app t des spams Spam by Spambot Type This chart is a percentage breakdown of spam received at TRACE spam traps for each spambot type Typically a small number of major botnets are responsible for the bulk of all spam GRUM 33 49 LETHIC BOBAX CUTWAIL 2 CUTWAIL 3 MAAZBEN CUTWAIL 1 DONBOT XARVESTER FESTI OTHER SOURCES FIGURE 1 1 R partition des diff rents botnets source 10 octobre 2010 L id e de base de recherche dans ce projet tait de faire des tests d envoi de courriels via un Hes so Projet de Dipl me Bachelor 6 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller bot et d analyser c
146. s qui ont d tre apport es la conception et finalement les tests donnent les r sultats et commentaires sur les tests pr alablement d finis dans les sp cifications 6 1 Sp cification Ici sont expliqu es les fonctionnalit s et contraintes du module Whois Premi rement il est important de voir que ce module a besoin d une adresse IP publique pour travailler Il est donc d pendant du module IPAnalyser voir chap 3 pour plus d informations sur ce module Le module Whois doit deuxi mement r pondre aux sp cifications de l API le concernant Ces diff rentes sp cifications combin es aux contraintes d finies dans 2 1 ont des cons quences sur le module Ces cons quences sont list es ci apr s Trouver si possible l intervalle d une adresse IP publique de la machine mettrice d un courriel et l associer si possible au nom de l organisation laquelle elle appartient 99 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Ne pas augmenter exag r ment le temps de r ponse de EmailHeaderQualif en cherchant ces informations Avoir un fichier de donn es que l on charge au lancement du module Si les donn es ne sont pas chargeables le module n est pas d marr et une exception est lev e Une exception est lev e lors de l appel de la m thode d analyse si le module n a pas t d marr Mettre jour p riodiquement les donn es selon des param t
147. s unitaires Elle ne fait que faire le pont entre le gestionnaire de module et IPChecker et IPExctractor et elle n a pas besoin d tre d marr e IPExctractor Il est simplement v rifi qu avec un HeaderData donn les bonnes adresses IP sont retourn es dans le IPInfos de retour pour extractIP IPChecker Les m thodes isPrivate is Public et isSpeciale sont test es pour chacun des intervalles d finis comme priv s ou sp ciaux Pour chaque intervalle on test sa pre mi re adresse sa derni re et une autre adresse situ e dans cet intervalle Des tests sont aussi effectu s pour chacune des m thodes avec des adresses IP qui ne sont pas valides et Hes Projet de Dipl me Bachelor 45 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller des adresses IP publiques Le chapitre suivant traite du module de g o localisation d adresses IP Hes Projet de Dipl me Bachelor 46 117 Chapitre 4 Module de g o localisation La g o localisation d adresse IP est trait e dans ce chapitre pour pouvoir localiser les adresses IP de machine mettrice de courriel L int gration du travail de R Cornu 14 implique d adapter la g o localisation d adresse IP qui y a t faite Il ne sera pas trait de la facon dont est faite cette g o localisation car c est un travail qui a d j t fait au pr alable Cependant il convient de lister les pr requis et adaptations
148. se jour des donn es en m moire est d finie dans les fichiers de configuration des diff rents modules 1 3 1 26 Le traitement peut monopoliser le processeur durant son ex cution mais ne doit pas bloquer la machine pas de temps r el ou de priorit haute 1 3 1 27 La seule partie visible de EmailHeaderQualif est la m thode headerQualif et les m thodes d initialisation et de terminaison de EmailHeaderQualif Tout le reste ne doit tre accessible que en interne EmailHeaderQualif 1 3 2 Journalisation Cette section liste les sp cifications pour la journalisation N Explication 1 3 2 1 La journalisation se fait avec log4j 1 3 2 2 Tout v nement levant une exception doit tre journalis 1 3 2 3 Quand un syst me de mise jour des donn es locales est d marr une noti fication doit appara tre dans le journal au d but et la fin de la mise jour avec l tat de la mise jour r ussite chec 1 3 2 4 La mise jour p riodique des donn es en m moire de EmailHeaderQualif de puis les donn es locales doit tre journalis e ainsi que son r sultat r ussite chec 3 On entend par donn es locales les donn es stock es dans un fichier et utilis es par EmailHeaderQualif Hes Projet de Dipl me Bachelor 18 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller N Explication 1 3 2 5 Le d marrage et l
149. se suite une requ te ce moment uniquement il utilise la classe HeaderData pour obtenir la table de hachage des r sultats La prochaine section traite de la fa on dont a t cod l analyseur modulaire 2 2 3 5 Classe ParseConfigurationFileMC Cette classe d fini permet de parser le fichier XML de configuration Elle tend la classe DefaultHandler pour tre pass e un parseur XML pr sent par d faut dans la machine virtuelle Java Les informations sur la structure du fichier de configuration se trouvent en 2 2 5 2 2 3 6 Enumeration ReturnKeys Cet enum donne la liste des cl s que retourne EmailHeaderQualif Il permet de centraliser ces informations et de ne pas faire d erreurs de codage sur des chaines de caract res et de modifier facilement les retours possibles Hes Projet de Diplome Bachelor 33 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 2 2 3 7 Enumeration ReceivedMapKeys Cet enum donne la liste des cl s disponibles dans les received pass s en param tre de la m thode headerQualif Il permet de centraliser ces informations et de ne pas faire d erreurs de codage sur des cha nes de caract res et de modifier facilement les retours possibles 2 2 4 Traitement des d pendances La gestion des d pendances tel que d crite en 2 2 3 2 2 implique l utilisation d un graphe orient de d pendances Chaque module est un sommet et chaque d pendance est un
150. sont pas bloqu es par les serveurs Hes Projet de Dipl me Bachelor 72 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Cependant pour des raisons de portabilit et de s curit ce code ne sera pas pris mais le code trouv sur 28 est un code source sous licence GPL 19 Il fournit de base un moyen de faire un whois sur des noms DNS mais peut aussi tre adapt pour le faire sur des adresses IP Hes Projet de Dipl me Bachelor 73 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller L algorithme de mise jour des donn es est repr sent dans le diagramme d activit sui vant C est la partie faire la mise jour des donn es du diagramme 6 1 Initialiser la premi re adresse IP Trouver la prochaine adresse IP publique Adresse nulle ou marqueur d arr t activ Adresse non nulle Adresse non publique Adresse publique Requete whois sur l adresse IP Resultat null Resultat non null Ajouter le r sultat au jeu de donn es D finir l adresse IP a trouver partir de celle de la fin de l intervalle trouv 1 FIGURE 6 5 Diagramme d activit de mise jour des donn es whois La suite du document traite de la proc dure de mise jour par le thread WhoisRetriever 6 2 3 Fonctionnement du thread de mise jour des donn es Comme dit dans 6 2 1 2 le thread de mise jour
151. sponds pas la sp cification 1 3 1 24 Il est clair que le chargement de fichiers XML ne pose pas en soi une grande augmentation du temps de r ponse de la m thode Mais cela rend la m thode plus sensible aux erreurs li es ces fichiers En externalisant ces chargements de la m thode il est possible de di minuer les risques d erreurs Par exemple 93 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Un des fichiers de configuration est manquant chaque ex cution de la m thode findUA une exception sera lev e alors que le module est d marr Si la gestion des donn es est externalis e au module cette erreur ne peut survenir puisque le module n aurai pas pu tre d marr sans les fichiers de configuration Tout comme pour le module de g o localisation le plus simple est de mettre en place un thread de gestion des donn es dans le module Il r sulte de ce raisonnement et des pr requis d un module la structure suivante UserAgentModulel analyse headerData ch iict iscia ehq modules HeaderData load stop getDependencies List lt Class gt checkStarted isLoaded boolean getNextDateFulliraceUpad getNextDatePartiallraceUpadte Date FIGURE 5 1 Diagramme de classe simplifi du module user agent La classe UserAgentModule donne le point d entr e du module en tendant la classe Abs tractModule Sa m thode analyse utilise la m thode
152. t tes types et il permet de cr er ces fichiers de donn es partir de fichiers texte pr format s Le programme de test est utiliser en ligne de commande et ne poss de aucune interface graphique Se trouvent dans la suite de ce manuel M thode de lancement du programme et premier contact Description d taill e des fonctionnalit s du programme et de leur utilisation Moyen d analyse des r sultats Modification de l affichage de la journalisation Erreurs connues pouvant survenir D 2 1 Lancement du programme de test et utilisation Premi rement v rifier que le fichier GeoLiteCity dat est bien pr sent dans le r pertoire o est ex cut le programme de test Dans le terminal lancer la commande java jar lt chemin du fichier jar gt ce qui aura pour effet de lancer le programme de test Apparaissent alors les informations suivantes Hes Projet de Dipl me Bachelor 110 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Chemin d ex cution du programme home Bureau validation Que voulez vous tester D marrer EHQ Arr ter EHQ Analyser une en t te partir d un fichier Afficher les retours possibles de l API Quitter 2 3 4 Analyser une en t te partir d une s rie de fichiers 5 O Votre choix FIGURE D 1 Menu principal La premi re ligne donne le r pertoire d ex cution du programme Cette information s av re util
153. t la classe d entr e du module qui est utilis e par le gestionnaire de modules Elle tends donc la classe AbstractModule Elle ne poss de rien de particulier car m me si elle en impl mente les m thodes elle ne n cessite pas de d marrage ou d arr t m thodes load et stop vu qu elle ne poss de aucune ressource charger ou lib rer La m thode analyse telle que d finie dans AbstractModule va extraire les informations en utilisant IPExctractor et va les valider en utilisant IPChecker 3 2 2 Classe IPInfos Conteneur pour les adresses IP trouv es dans les deux premiers received cette classe est utilis e dans la m thode analyse de AbstractModule Elle permet de faire le transfert des adresses IP trouv es dans IPExtractor IPChecker Y sont stock es les diff rentes adresses IP suivantes Adresse IP contenue dans le from du premier received Adresse IP contenue dans le by du premier received Adresse IP contenue dans le from du deuxi mereceived Adresse IP contenue dans le by du deuxi me received Aucune v rification n est faite sur ces adresses IP dans cette classe Elles sont juste stock e dans le conteneur sous forme de String 3 2 3 Classe IPExctractor Fondamentalement cette classe est voir comme une librairie En effet la m thode d finie ici est statique et cette classe n est pas instanciable Ce choix a t fait pour des raisons de performances mais aussi
154. t sur des sp cifications une analyse ou encore une conception Mais surtout cela permet de gagner un temps pr cieux et de r duire le co t de d veloppement D une fa on plus g n rale cela m a permis de mettre en pratique les th ories de gestion de projet et de constater leur importance N ayant travaill que sur des projets cette notion de gestion n avait jamais pris une telle importance pour moi Ce projet m a aussi permis d apprendre m arr ter dans mon d veloppement et me deman der si ma fa on de faire est la bonne lorsqu un probl me survient C est dire de prendre un papier et un crayon pour essayer de r soudre un probl me donn et moins fonctionner au cas par cas en continuant mon d veloppement D un point de vue technique ce projet m a permis d apprendre utiliser Maven qui est un outil tr s puissant pour le d veloppement et qui me semble maintenant presque indis pensable tout projet Il m a aussi donn la possibilit d approfondir mes connaissances en Java et d apprendre utiliser correctement log4j pour la journalisation J ai aussi eu l occasion d am liorer mes connaissances sur les courriels Cela va de la fa on dont ils sont Hes Projet de Dipl me Bachelor 90 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller g r s pour tre transmis aux donn es contenues dans ceux ci Yverdon les bains le 16 d cembre 2010 Nicolas Muller Hes Projet de Dipl me
155. t voir le point d entr e du module GeoLocModule qui utilise amp UA_IPSource_IPLocIP pour pouvoir g o localiser l adresse IP publique de la machine mettrice potentiellement pr sente dans HeaderData On voit aussi que GeoLocModule utilise un thread GLDataChecker pour g rer les mises jour des donn es utilis es par UA_IPSource_IPLocIP En fait le thread utilise directement la classe GeoLocation qui g re les donn es de g o localisation utilis es par UA_IPSource_IPLocIP Ci apr s sont donn s un bref descriptif de chaque classes 4 2 1 classe GeoLocModule Cette classe tends AbstractModule pour donner le point d entr e au gestionnaire de module ce qui permet de mettre en place les fonctionnalit s n cessaires sa gestion Sa m thode getDependencies doit retourner une liste contenant la classe IPAnalyserModule pour que le gestionnaire de modules puisse traiter les d pendances correctement GeoLocModule poss de en attribut statique un thread de gestion des donn es nomm GLDataChecker qui s occupe de g rer les mises jour Il est d taill ci dessous Ce Hes Projet de Dipl me Bachelor 48 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller thread est cr et initialis durant le chargement du module m thode start Il est arr t la fermeture du module m thode close En dehors de ces deux m thodes le thread est ind pendant de G
156. tation des modules tir s de 14 a pris moins de temps que pr vu dans l ensemble Mais les multiples corrections des sp cifi cations ont augment le temps de travail d volu l analyseur modulaire ce qui a impact sur le d but de la t che du module Whois Ce retard ajout la sous estimation du temps n cessaire pour d velopper le module Whois a impliqu l abandon du module IPBL et la prolongation du projet d une semaine Mise part ces points concernant le retard le projet s est bien d roul Tout au long du projet les multiples entretiens avec le professeur responsable ont permis de garder le travail sur une ligne directrice et une m thodologie de d veloppement correcte Ce commentaire sur le d roulement du travail clos le corps de ce document Dans le cha pitre suivant est donn une conclusion qui revient sur l ensemble du projet 83 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Hes Projet de Dipl me Bachelor 84 117 Chapitre 10 Conclusion Ce chapitre finalise le rapport en revenant sur les objectifs initiaux et les performances vis vis de ces objectifs Il s y trouve aussi une section sur l int gration de EmailHeader Qualif dans un autre projet et la valeur ajout e que cette API apporte ISCIA Ensuite le d roulement et les difficult s techniques rencontr es durant le projet sont expliqu s Finalement les apports personnels du projet closent ce d
157. tionpos b sets the caption position to bottom breaklines true sets automatic line breaking breakatwhitespace false sets if automatic breaks should only happen at whitespace title Istname show the filename of files included with lstinputlisting also try caption instead of title escapeinside x x if you want to add a comment within your code Ymorekeywords x http whois arin net rest nets q 11 22 33 44 showDetails true amp showARIN false NetRange 11 0 0 0 11 255 255 255 CIDR 11 0 0 0 8 OriginAS NetName DODIIS NetHandle NET 11 0 0 0 1 Parent Net Type Direct Allocation RegDate 1984 01 19 Updated 2007 08 22 Ref http whois arin net rest net NET 11 0 0 0 1 OrgName DoD Network Information Center Orgld DNIC Address 3990 E Broad Street City Columbus StateProv OH PostalCode 43218 Hes Projet de Dipl me Bachelor 8 117 heig vd Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Country US RegDate Updated 2010 08 25 Ref http whois arin net rest org DNIC OrgTechHandle MIL HSTMST ARIN OrgTechName Network DoD OrgTechPhone 1 614 692 2708 OrgTechEmail HOSTMASTER nic mil OrgTechRef http whois arin net rest poc MIL HSTMST ARIN OrgTechHandle REGIS10 ARIN OrgTechName Registration OrgTechPhone 1 800 365 3642 OrgTechEmail REGISTRAGnic mil
158. tive answer Name 2 0 0 127 zen spamhaus org Address 127 0 0 10 Name 2 0 0 127 zen spamhaus org Address 127 0 0 4 Name 2 0 0 127 zen spamhaus org Address 127 0 0 2 Il en ressort une s rie d adresses 127 0 0 x retourn es Vu qu au moins une adresse est re tourn e cela signifie que l adresse pour laquelle il a t fait une requ te est dans la liste noire Selon le serveur de liste noire utilis on peut en d duire une qualification Le x est un num ro permettant d interpr ter le r sultat Par exemple un 1 peut signifier Peu fiable ou encore Proxy anonymiseur Ce r sultat peut donc aussi tre utilis pour qua lifier une adresse IP Au contraire la r ponse pour l adresse 11 22 33 44 sera xx server can t find 11 22 33 44 zen spamhaus org NXDOMAIN Le NXDOMAIN signifie que l adresse n est pas dans la liste noire Les listes noires sont appel es DNSBL Le site 26 r f rence toute une s rie de listes noires pour le d veloppement de la partie de qualification par listes noires Chacun de ces DNSBL n a pas forc ment la m me signification Par exemple xbl spamhaus org r f rence des IP connues comme tant infect es machines zombie par exemple Alors que b barracudacentral org donne une r putation de l adresse IP La section suivante traite de la structure du projet 4 mettre en place pour pouvoir faire les diff rentes analyses pr c demment cit es Hes Proj
159. trouve PAPI qui sert d interface entre ISCIA et l analyseur modulaire Le nuage repr sente la possibilit de mettre un moyen d utilisation distance par exemple RMI L analyseur modulaire se s pare en deux groupes d l ments Le contr leur de module et les modules d analyse On peut aussi voir les diff rents fichiers de configuration et de donn es n cessaires chacun des modules Voici une br ve description de chacun des modules Une description compl te de chacun des modules est faite dans les chapitres suivants Hes Projet de Dipl me Bachelor 26 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller IP Verifiation C est le module qui permet d extraire les adresses IP d un en t te de courriel Il est s par en trois parties Cette s paration a pour but de granulariser le codage et les tests unitaires IP Analyser Il se charge de g rer les demandes d obtention d IP en utilisant IP Exctractor et IP Checker IP Exctractor Extrait les IP disponibles dans l en t te IP Checker Contr le les IP qu on lui fournit pour liminer les adresses incoh rentes ou non pertinentes IPBL Se charge de qualifier les IP publiques en se basant sur les listes noires utilis es pour filtrer les spams IPBL Check Essaye de qualifier les adresses IP IPBL Config File Fichier de configuration du module IPBL Files Fichiers contenant les listes noires IPBL Retriever Se charge de mettre jour les
160. tte classe tends donc la classe Java Thread Ci dessous se trouve le diagramme d activit de gestion des mises jour E Chargement des donn es de g o localisation aS A Obtention de la date de la prochaine mise jour Marqueur d arr t Pas de margeur d arr t o d Attendre jusqu la date de mise jour ou au r veil forc Marqueur d arr t Pas del marqgeur d arr t Mise jour des donn es de g o localisation FIGURE 5 2 Diagramme d activit du thread de mise jour des donn es de UserA gent L encadr vert repr sente le traitement de la m thode start et le rouge celui de la m thode run La m thode close non repr sent e sur ce sch ma permets d activer le marqueur d ar r t et de r veiller le thread si il est en attente dee Projet de Dipl me Bachelor 55 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Le chargement des donn es la mise jour des donn es et l obtention de la date de mise jour se fait en utilisant la classe UserAgent qui est d taill e dans la suite du document 5 1 3 Classe UA IPSource_IPLocIP Comme dis pr c demment seule la m thode findUA est utilis e dans cette classe faite dans 14 Le seul point important relever est que cette m thode utilise UserAgent pour trouver l agent utilisateur C est donc UserAgent qui est concern pour la mise jour des donn es 5 1 4 Classe UserAgent
161. ur aller lire dans la base de donn es lors de l arr t du module cette m thode est appel e via la m thode close de GLDataChecker 4 2 5 Fichier de configuration La gestion de la configuration du module est g r e d origine dans le travail 14 Elle n est donc pas modifi e Sa description est reprise ci dessous lt configurationGeoLocation gt Hes Projet de Dipl me Bachelor 50 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller lt update gt Im lt update gt lt pathGeoLocation gt GeoLiteCity dat lt pathGeoLocation gt lt configurationGeoLocation gt Le champ update permet de d finir l intervalle de mise jour Cet intervalle peut tre donn en mois m ou en jours d pr c d d un entier Le champ pathGeoLocation permet de renseiger l emplacement du fichier de donn es Cet emplacement Ce fichier ce trouve dans le fichier EmailHeaderQualif jar disponible sur le DVD dans l an nexe E et aussi dans le r pertoire de projet src main java ressource sur ce m me DVD Ceci clos la partie d analyse du module de g o localisation La suite du document traite de la r alisation de celui ci 4 3 R alisation La r alisation de cette classe n a pos qu un seul probl me l emplacement des fichiers de ressources utilis s pour la g o localisation Le fichier de configuration et le fichier de don n es doivent tre des emplacement s
162. urnies par le travail de Romain Cornu Le premier est une commande bien connue nomm e whois voir 6 et qui permet de consulter les bases de donn es des organismes g rant les adresses IP et les informations qui y sont relatives Le deuxi me est un syst me de listes noires uti lis pour filtrer les spams venant de machines list es comme tant des envoyeurs connus de spam Dans la suite de cette section se trouvent les diff rentes tudes faites La premi re concerne les en t tes de courriel La seconde concerne les botnets la troisi me le whois et la qua tri me les listes noires Finalement se trouve l tude sur la structure du projet 1 1 1 En t te de courriel Les en t tes de courriel contiennent des informations sur son cheminement de l envoyeur au destinataire Les normes utilis es pour construire cet en t te se trouvent dans 24 Ici sont trait s leur structure et leur interpr tation La premi re chose voir dans les en t tes ou header c est qu ils sont s par s du reste du message par un double CRLF Un CRLF est un marqueur compos de deux caract res ASCII 13 0x0D et 10 0x0A qui d signe une fin de ligne Tout ce qui vient apr s n est que le contenu du message et ne nous int resse pas dans le cadre de ce travail Tous les champs contenus dans un en t te sont sous la forme cl valeur Un champ se termine avec le caract re de fin de ligne CRLF comme dans l exemple ci dessous
163. va io Serializable html 2010 24 INTERNET ENGINEERING TASK FORCE RFC 5322 Internet Message Format http tools iet f org html rfc5322 avril 2001 25 AMERICAN REGISTRY FOR INTERNET NUMBERS ARIN Arin at glance https www arin net about_us overview html 26 DNSBL INFO Blacklists http www dnsbl info dnsbl list php 2010 27 WIKIP DIA Regional Internet registry http en wikipedia org wiki Regional Internet _ registry Decembre 2010 28 DOUG NEVERFEAR ORG Java WHOIS protocol implementation http never fear org blog view 91 A_ Java _WHOIS protocol implementation Janvier 2010 29 W3C Extensible Markup Language XML 1 0 Fifth Edition http www w3 org TR 2008 REC xml 20081126 Novembre 2008 30 AFRINIC AfriNIC Database Reference Manual http www afrinic net docs db af sup dbre fm200501 htm 17 Janvier 2005 31 RIPE NCC Acceptable Use Policy http www ripe net db support db aup pdf derni re consultation le 12 d cembre 2010 32 APNIC APNIC Whois Database Acceptable Use Agreement http www apnic net apnic info whois search about whois protecting whois copyright derni re consultation le 12 d cembre 2010 33 ARIN WHOIS Terms of Use https www arin net whois_tou html derni re consultation le 12 d cembre 2010 34 RBOT Rbot trac page http ruby rbot org derni re consultation octobre 2010 35 WIKIP DIA Registre Internet r gional http fr vi
164. valeur dans un n ud de l arbre en se basant sur la cl pour placer le n ud En consid rant une entr e WhoisEntry comme la valeur et l intervalle qu il contient comme Hes Projet de Dipl me Bachelor 68 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller cl la structure de donn es ainsi obtenue convient parfaitement nos besoins La seule contrainte de cette structure est de rendre la cl comparable La classe IPRange doit donc impl menter l interface comparable Le TreeMap permet d obtenir une entr e partir de n importe quel objet comparable c f 18 Pour obtenir une entr e partir d une adresse IP il suffit donc de rendre la classe IP comparable en impl mentant l interface Comparable de Java Le d tail du fonctionnement de la comparaison est donn dans la suite de ce document L ajout de donn es dans un TreeMap ne se fait pas sans risques Les risques et les solutions trouv es sont donn s dans la suite du document Comme dit pr c demment la suppression de donn es n est pas prise en compte Hes Projet de Dipl me Bachelor 69 117 Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 6 2 2 2 Ajout et recherche de donn es dans un jeu existant Les donn es sur les diff rents intervalles d adresses IP sont difficiles g rer Par exemple l ajout d un intervalle chevauchant un intervalle d j ins r dans la
165. valle compar e avec A donne 0 Si aucun intervalle ne correspond null est retourn Maintenant que la structure et la gestion des donn es whois sont d finis il faut poser la m thode de mise jour des donn es C est ce qui est trait la suite 6 2 2 3 M thode de mise jour des donn es La mise jour des donn es est l un des points critiques de ce module En effet l obten tion des donn es est compliqu e Une requ te whois passe par des serveurs pour trouver les diff rentes informations Les serveurs utilis s par d faut sous Ubuntu sont les 5 ser veurs fournis par les organismes du registre Internet r gional RIR voir 27 RIPE NCC ARIN APNIC LACNIC et AfriNIC soit respectivement whois ripe net whois arin net whois apnic net whois lacnic net et whois afrinic net Dans l id al il faudrait utiliser des bases de donn es fournies par ces organismes Cepen dant seul RIPE fournit la possibilit de t l charger un dump de cette base de donn es ARIN APNIC LACNIC et AfriNIC n offrent pas directement cette possibilit Cependant un code source Java trouv sur http www java2s com 0pen Source Java Document Search Engine yacy de anomic net whois java htm permet de faire une requ te Whois en utilisant les ressources syst me Ce code permet apr s quelques tests de faire correctement des requ tes Whois Apr s un nombre cons quent de tests la suite 2000 il appara t que les requ tes ne
166. vestigation sur des fraudes Dans cette analyse ISCIA doit obtenir si possible l adresse IP et diverses informations qui lui sont relatives Le but de ce projet est donc de fournir les moyens pour obtenir ces informations Il faut donc analyser des en t tes de courriel pour pouvoir en extraire les adresses IP et donner des informations suppl mentaires L extraction d adresses IP est un travail qui a d j t fait par Romain Cornu dans son projet de Bachelor 14 Ce travail comprend aussi la g o localisation d adresses IP et l ob tention du user agent Ce travail sera donc int gr et adapt ce projet En plus des informations qui pourront tre fournies par le travail de R Cornu ce projet a aussi pour but d ajouter des informations telles que l intervalle des adresses IP publiques et le propri taire de cet intervalle ainsi que la qualification de ces adresses Une qualification est une d signation permettant de dire cette adresse est celle d une machine zombie ou encore cette adresse est celle d un proxy anonymiseur Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller Finalement ce projet fournit donc une API qui prend en param tre un en t te de courriel et qui retourne toutes les informations qui peuvent en tre extraites De plus de nouvelles fonctionnalit s d analyse doivent pouvoir facilement tre rajout es Les chapitres suivant traitent premi rement du syst me d analyse
167. vil tv bee vil sel vel fer TEL VEL EL Szi val EZL TUL VOL aL SEL YUL ger SEUL ver EEEL TEELL VEEL EEL TELL ver ee 222 VEL VL ddl FIGURE 1 3 Diagramme de Gant de la Planification Hes so Haute Ecole Sp cialis e 16 117 Projet de Dipl me Bachelor de Suisse occidentale Haute Ecole d Ing nierie et de Gestion du Canton de Vaud Nicolas Muller 1 3 Sp cifications Dans cette partie sont donn es les sp cifications d coulant de la pr tude et du cahier des charges Puis sont donn s les cas test correspondants aux sp cifications Ces sp cifications sont g n rales au projet Elles concernent EmailHeaderQualif vu de l ext rieur Ce sont celles fournies pour le mandant et le professeur responsable et valid es par leurs soins 1 3 1 API Cette section liste les sp cifications du projet pour 1 API N Explication 1 3 1 1 EmailHeaderQualif fournit une m thode de qualification c f Cahier des charges d en t tes nomm e headerQualif 1 3 1 2 headerQualif prend en premier param tre une table de hachage contenant l en t te complet 1 3 1 3 headerQualif prend en deuxi me param tre la liste des received Chacun d eux est donn sous forme d une table de hachage 1 3 1 4 Le retour de headerQualif se fait sous forme d une table de hachage 1 3 1 5 Les noms des cl s dans la table de hachage du retou
168. xy anonymiseur Les qualifications possibles sont les suivantes liste sujette changements durant le projet Zombie Ordinateur quelconque infect phishing Ordinateur connu comme ayant envoy des courriels de phishing knownSpamSender Ordinateur connu comme envoyant des spams anonymiserProxy Proxy anonymiseur openRelay Ordinateur connu comme tant un relai ouvert M thodologie de d veloppement Le syst me tant compl tement s par de ISCIA il faut d velopper un programme de test pour pouvoir tester le projet Le projet comprend trois phases chacune d entre elles comprend une partie initiale de sp cification comprenant l tablissement des objectifs de la phase et des tests unitaires et fonctionnels effectuer une conception durant laquelle le travail r aliser est mod lis le codage de la phase les tests unitaires du code r alis les corrections faire d coulant de ces tests Ces trois phases sont 1 D veloppement de l analyseur modulaire en y int grant le travail de R Cornu 2 D veloppement du module de recherche d informations sur les adresses IP whois 3 Si le temps le permet module de qualification des IP par listes noires IPBL Chaque phase comporte un d lai pr cis Deux validations seront faites par le mandant et le professeur responsable La premi re pour l analyseur modulaire et la seconde pour les deux modules whois et IPBL L int gration de Emai

Download Pdf Manuals

image

Related Search

Related Contents

Sea Gull Lighting 4411-185 Installation Guide  nova230 for LON nova230 for LON  LDW 1003 - lombardini service  NEC Express5800/R120d-2E SR User's Manual  Handleiding Classic Power Nition CITROEN DS/ID/PERFO/11D met  CNC-Servo-Controller    Belson BS12100 Manual - Instructions Manuals  

Copyright © All rights reserved.
Failed to retrieve file