125
REPUBLIQUE TUNISIENNE MINISTERE DE L'ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE ***** FACULTÉ DES SCIENCES DE TUNIS Département des Technologies de l’Informatique RAPPORT De Projet de Fin d’Études Présenté en vue de l’obtention du diplôme D'ÉTUDE D'INGÉNIEUR EN INFORMATIQUE Sujet : Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens Élaboré par Mohamed BEN BOUZID Encadré par : Mme Hela KAFFEL BEN AYED (FST) Mr Sami MABROUK (ANSI) Société d’accueil : L'Agence Nationale de la Sécurité Informatique (ANSI) Année Universitaire : 2008/2009

Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Embed Size (px)

DESCRIPTION

Ce présent rapport présente une étude théorique et expérimentale sur les moteur de recherche et les Honeyclients Open Source, cette étude à permis la mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens.

Citation preview

Page 1: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

REPUBLIQUE TUNISIENNE MINISTERE DE L'ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE

***** FACULTÉ DES SCIENCES DE TUNIS

Département des Technologies de l’Informatique

RAPPORT

De Projet de Fin d’Études

Présenté en vue de l’obtention du diplôme

D'ÉTUDE D'INGÉNIEUR EN INFORMATIQUE

Sujet :

Mise en place d'une solution de détection

des pirates et des malwares

dans les sites tunisiens

Élaboré par

Mohamed BEN BOUZID

Encadré par :

Mme Hela KAFFEL BEN AYED (FST)

Mr Sami MABROUK (ANSI)

Société d’accueil : L'Agence Nationale de la Sécurité Informatique (ANSI)

Année Universitaire : 2008/2009

Page 2: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens
Page 3: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Dédicace

Je dédie ce travail

A ma mère A mon père

A mes frèresA mes proches

A tous mes amis Et à tous ceux qui me connaissent

Page 4: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Remerciements

Nous voudrions remercier notre encadrant à la FST Mme. Hela Kafel BEN AYED, pour

son soutien et ses recommandations judicieuses. À Mr. Sami Mabrouk, notre encadrant au sein

de la société, qui nous a permis de nous exprimer, nous a encadré, soutenus et qui n’a jamais

cessé de nous encourager. Aussi, remercions-nous Mr Ahmed Amine SOUAYAH et tout

personnel de l'Agence Nationale de la Sécurité Informatique (ANSI) ayant contribué de près ou

de loin dans le bon déroulement du projet.

Nous devons chaque bribe de notre connaissance à nos enseignants à la Faculté des

Sciences de Tunis qui ont si bien mené leur noble quête d’enseigner les bases de l’informatique.

Nous les remercions non seulement pour le savoir qu’ils nous ont transmis, mais aussi pour la

fierté et l’ambition que leurs personnes nous aspirent.

Non loin de tout projet ambitieux, il existe des gens qui partagent sans jamais se lasser

ses meilleurs et ses pires moments. Ce sont des personnes qui nous ont soutenus dans chacun de

nos instants de faiblesse, et qui, sans leurs extrême attention et gentillesse, nous ne serions pas ce

que nous sommes devenu aujourd’hui. En tête de liste de ces gens nous placerons nos familles

bien aimées qui n’ont jamais hésité à nous offrir le meilleur qu’elles pouvaient. Viennent alors

tous nos camarades de promotion , les membres du Club des Logiciels Libres à la Faculté des

Sciences de Tunis ainsi que tous nos amis qui nous ont aidés de façon directe ou tout simplement

par leur présence et leur soutien moral.

Page 5: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

TABLE DES MATIÈRES

INTRODUCTION .....................................................................................................................

CHAPITRE I : ÉTAT DE L'ART

1. Objet de l'étude …..........................................................................................................

2. Présentation de l'entreprise …........................................................................................

2.1. Historique et présentation ….................................................................................

2.2. Objectif ….............................................................................................................

2.3. Organigramme …..................................................................................................

3. Présentation du projet …................................................................................................

3.1. Intérêt de l'ANSI pour le projet …........................................................................

3.2. Étude de l'existant ….............................................................................................

3.3. Problématique …...................................................................................................

3.4. Approche suivie …................................................................................................

4. Le piratage (Hacking) et les Malwares ….....................................................................

4.1. Le piratage (Hacking) …......................................................................................

4.1.1. Différents types de pirates informatiques …................................................

4.1.1.1. Les Hackers …....................................................................................

4.1.1.2. Les Hacktivistes ….............................................................................

4.1.1.3. Les Crackers …...................................................................................

4.1.1.4. Les Carders ….....................................................................................

4.1.1.5. Les Phreakers ….................................................................................

4.1.2. Le défacement Web .....................................................................................

4.1.2.1. Présentation du défacement …............................................................

4.1.2.2. Exemples de pages web défacées …...................................................

4.1.3. Motivations des Hackers ….........................................................................

4.1.4. Cibles des Hackers …..................................................................................

4.1.5. Le piratage en Tunisie ….............................................................................

4.1.6. Aspects juridiques …...................................................................................

1

3

3

3

4

4

5

5

6

6

7

8

8

8

8

9

9

9

10

10

10

11

13

13

14

15

I

Page 6: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

4.2. Les malwares …....................................................................................................

4.2.1. Les Virus ….................................................................................................

4.2.2. Les Vers …...................................................................................................

4.2.3. Les Chevaux de Troie …..............................................................................

4.2.4. Les Spywares …..........................................................................................

5. Conclusion ….................................................................................................................

CHAPITRE II : ÉTUDE SUR LES MOTEURS DE RECHERCHE OPEN SOURCE

1. Introduction …...............................................................................................................

2. Définition …...................................................................................................................

3. Moteurs de recherche et les systèmes de gestion de base de données ….......................

4. Fonctionnement ….........................................................................................................

4.1. Un outil d'exploration ….......................................................................................

4.2. Un outil d'indexation …........................................................................................

4.3. Un outil de recherche ….......................................................................................

5. Moteurs de recherche propriétaires …...........................................................................

6. Moteurs de recherche open source …............................................................................

7. Étude comparative sur les moteurs de recherches Open Source …...............................

7.1. DataParkSearch …................................................................................................

7.2. Nutch …................................................................................................................

7.3. Solr …...................................................................................................................

8. Choix technologique …..................................................................................................

9. Étude sur le moteur de recherche Nutch …...................................................................

9.1. Introduction …......................................................................................................

9.2. Architecture du moteur de recherche Nutch …....................................................

9.3. Performance du moteur de recherche Nutch …....................................................

9.4. Terminologies de Nutch …...................................................................................

9.5. Le crawling avec Nutch …...................................................................................

9.6. Systèmes de fichiers HDFS…..............................................................................

10. Prise en main de Nutch …...........................................................................................

10.1. Installation …......................................................................................................

10.2. Configuration ….................................................................................................

11. Conclusion …..............................................................................................................

16

16

17

18

18

19

20

21

21

21

21

22

22

23

24

24

25

25

26

29

29

29

30

30

31

32

33

33

33

34

35

II

Page 7: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

CHAPITRE III : ÉTUDE SUR LES HONEYCLIENTS

1. Introduction …...............................................................................................................

2. Honeypots …...........…..................................................................................................

2.1. Définition ….........................................................................................................

2.2. Fonctionnement …...............................................................................................

3. Honeyclients ….............................................................................................................

3.1. Définition ….........................................................................................................

3.2. Honeyclients à haute interaction …......................................................................

3.3. Honeyclients à interaction faible ….....................................................................

4. Comparaison entre les Honeyclients ….........................................................................

4.1. Honeyclients à haute interaction …......................................................................

4.1.1. Capture-HPC …...........................................................................................

4.1.2. Honeyclient ….............................................................................................

4.1.3. HoneyMonkey ….........................................................................................

4.1.4. UW Spycrawler ….......................................................................................

4.1.5. Web Exploit Finder ….................................................................................

4.2. Honeyclients à faible interaction ….....................................................................

4.2.1. SpyBye …....................................................................................................

4.2.2. HoneyC …...................................................................................................

4.2.3. HoneyD …...................................................................................................

5. Choix technologique ......................................................................................................

6. Étude sur le Honeyclient MonkeySpider …..................................................................

6.1. Introduction …......................................................................................................

6.2. Architecture …......................................................................................................

6.3. Composantes de Monkey-Spider ….....................................................................

6.3.1. Script de Monkey-Spider …........................................................................

6.3.2. Heritrix ........................................................................................................

6.3.2.1. Présentation …....................................................................................

6.3.2.2. Caractéristiques …..............................................................................

6.3.2.3. Fichiers .ARC …................................................................................

6.3.3. ClamAV …...................................................................................................

6.3.3.1. Présentation …....................................................................................

6.3.3.2. Fiche technique et caractéristiques …................................................

36

36

37

37

38

38

39

39

40

40

40

41

41

42

42

43

43

44

45

46

46

46

46

47

47

47

47

48

49

50

50

50

III

Page 8: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

6.3.3.3. Performance …...................................................................................

6.4. PostgreSQL …......................................................................................................

7. Prise en main de Monkey-Spider …..............................................................................

8. Conclusion …................................................................................................................

CHAPITRE IV : ANALYSE & SPÉCIFICATION DES BESOINS

1. Introduction …...............................................................................................................

2. Analyse des besoins …..................................................................................................

2.1. Besoins Fonctionnels ….......................................................................................

2.2. Besoins non Fonctionnels …................................................................................

3. Identification des acteurs et des cas d’utilisation …......................................................

3.1. Identification des acteurs ….................................................................................

3.2. Identification des cas d’utilisation …...................................................................

3.2.1. Diagramme des cas d'utilisation pour l'acteur « utilisateur » …..................

3.2.2. Diagramme des cas d'utilisation pour l'acteur « administrateur » …..........

4. Conclusion …................................................................................................................

CHAPITRE V : CONCEPTION

1. Introduction …...............................................................................................................

2. Pourquoi La Méthodologie UML? …............................................................................

3. Détermination des diagrammes de séquence et d'activité .............................................

3.1. Définition ….........................................................................................................

3.2. Diagramme de séquence détaillé pour « la recherche des signatures des pirates

dans les sites infectés …............................................................................................

3.3. Diagramme de séquence pour « la connexion de Eurêka » ….............................

3.4. Diagramme de séquence pour « l'ajout d'une signature d'un pirate » …..............

3.5. Diagramme d'activité pour « la recherche des malwares avec Monkey-Spider »

4. Conclusion …................................................................................................................

CHAPITRE VI : RÉALISATION ET MISE EN PLACE DE LA SOLUTION

1. Introduction …...............................................................................................................

2. Installation et configuration du serveur …....................................................................

2.1. Pourquoi Ubuntu serveur 9.04 ? …......................................................................

2.2. OpenSSH …..........................................................................................................

51

51

52

54

55

55

55

56

56

56

57

57

58

59

60

60

60

60

61

63

64

66

67

68

68

68

70

IV

Page 9: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

2.3. Apache Tomcat …................................................................................................

2.4. PostgreSQL …......................................................................................................

3. Installation et configuration de Monkey-Spider et de Nutch …....................................

3.1. Intégration de Nutch dans MonkeySpider ….......................................................

3.2. Amélioration du comportement de Monkey-Spider …........................................

3.3. Personnalisation de la recherche avec Nutch …..................................................

4. Scripts et interface de gestion des malwares et des sites « Eurêka » …........................

4.1. Scripts de gestion des sites …...............................................................................

4.2. Interface de gestion des sites et des malwares « Eurêka » …...............................

5. Testes et résultats ...........................................................................................................

6. Conclusion …................................................................................................................

CONCLUSION GÉNÉRALE …...............................................................................................

70

71

71

72

74

74

76

76

77

78

80

81

V

Page 10: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

LISTE DES TABLEAUX

Tableau N°1 : Parts de marché des moteurs de recherche dans le monde …........................

Tableau N°2 : Étude comparative sur les moteurs de recherche open source …..................

Tableau N°3 : Faible interaction vs Haute interaction …......................................................

Tableau N°4 : Comparaison entre les honeyclients à haute interaction …............................

Tableau N°5 : Comparaison entre les honeyclients à faible interaction …............................

23

27

40

43

45

VI

Page 11: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

LISTE DES FIGURES

Figure N°1 : Organigramme de l'Agence Nationale de la Sécurité Informatique …...............

Figure N°2 : Google Maroc avant et après le défacement – Le 09/05/2009 ….......................

Figure N°3 : sony.co.nz avant et après le défacement – Le 09/05/2009 …..............................

Figure N°4 : Site de la police Britannique après l'attaque d'un pirate Tunisien …..................

Figure N°5 : Mode de fonctionnement du moteur de recherche Nutch …..............................

Figure N°6 : Processus cyclique du crawling …......................................................................

Figure N°7 : Interface graphique par défaut de Nutch …........................................................

Figure N°8 : Honeyclient vs Honeypot …...............................................................................

Figure N°9 : Architecture simplifié de Monkey-Spider …......................................................

Figure N°10 : Interface de Héritrix pour la gestion des jobs …...............................................

Figure N°11 : Étude sur la performance de ClamAV …..........................................................

Figure N°12 : Diagramme des cas d’utilisations général pour l'acteur « utilisateur » …........

Figure N°13 : Diagramme des cas d’utilisations général pour l'acteur « administrateur » .....

Figure N°14 : Diagramme de séquence pour « la recherche des signatures des pirates dans

les sites infectés » ….........................................................................................

Figure N°15 : Diagramme de séquence pour la connexion avec Eurêka …............................

Figure N°16 : Diagramme de séquence pour l'ajout d'une signature d'un pirates …...............

Figure N°17 : Diagramme d'activité pour la recherche des malwares avec Monkey-Spider...

Figure N°18 : Serveurs installés par défaut avec Ubuntu SE …..............................................

Figure N°19 : Avant couplage de Nutch avec Monkey-Spider …...........................................

Figure N°20 : Après couplage de Nutch avec Monkey-Spider …...........................................

Figure N°21 : Écran de recherche classique avec Nutch ….....................................................

Figure N°22 : Écran de recherche des pirates dans les sites Tunisiens …...............................

Figure N°23 : Écran des statistiques du crawling des sites avec Heritrix …...........................

Figure N°24 : Écran de connexion à « Eurêka » ….................................................................

Figure N°25 : Interface de « Eurêka » pour la gestion des malwares trouvés ….....................

Figure N°26 : Interface de « Eurêka » pour la gestion des sites …..........................................

4

11

12

12

32

32

34

38

47

49

51

57

58

62

63

64

66

69

73

73

74

75

76

77

79

79

VII

Page 12: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Introduction générale

Introduction générale

Aujourd'hui, Internet se développe de plus en plus et les personnes qui s'y connectent se

sont multipliées de façon considérable. Avec cette croissance, l'ampleur des menaces pour ces

personnes est en augmentation et la sécurité informatique est devenue un besoin vital vis-à-vis

des incidents et des vulnérabilités. Des contres mesures sont nécessaires pour la protection des

systèmes informatiques ainsi que le suivi de l'évolution de ces attaques.

Cette extension rapide de l'Internet a fait naître de nouveaux horizons en terme de

communication et d'échange bouleversant profondément nos habitudes. Mais ce brusque

changement a vu naître aussi la peur du « pirate informatique».

Nous définissons les pirates informatiques comme des internautes qui utilisent leurs

connaissances pour défaire ou contourner, à but malveillant, les systèmes et les réseaux

d’informations.

Ce genre de délinquance sur le Net ne cesse de se développer, et nous entendons parler

aujourd'hui de la cybercriminalité, les pirates se font de plus en plus efficaces, diversifient leurs

stratégies et techniques d'attaques et deviennent plus professionnels que jamais. Ils s'installent

sur notre ordinateur, ils enregistrent nos mots de passe au moment où nous nous connectons à

notre banque pour consulter notre compte, ils utilisent notre carte bancaire pour acheter des

objets sur internet. Il y a aussi ces fausse annonces, les sites piégés. Aujourd'hui les

cybercriminels ne sont plus des jeunes en manque d'autorité, ils sont des techniciens appartenant

à des réseaux mafieux qui font exploser les frontières de l'arnaque facile.

Leurs cibles peuvent être n’importe quel réseau d’entreprise, des serveurs névralgiques

d’Internet ou institutions éducatives, des sites de gouvernement, ou même de simple

internautes... Ils sont aussi à l’origine d’un certain nombre de menaces tels que les virus, vers,

espions, etc.

Mais comment arrive-t-on à prendre contrôle de notre ordinateur? Comment copie-t-on

notre code secret? C'est simple, on y introduit un programme espion, un Cheval de Troie sans

que nous le sachions SIMPLEMENT quand nous nous connectons sur internet.

- 1 -

Page 13: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Introduction générale

Avec la diversification des méthodes utilisées par les Hackers, il est presque impossible

de les empêcher d'introduire des malwares dans les sites, jugés même parfois sécurisés. C'est là

notre point de départ qui consiste à étudier la vulnérabilité des sites web Tunisiens ainsi que les

hackers dont ils sont victimes.

Le présent rapport est structuré en six chapitres. Nous allons commencer par présenter

notre projet dans le premier chapitre. Nous essayerons d'introduire le piratage (Hacking) et les

types de Malwares, et nous finirons par mettre en valeur les risques des attaques web ainsi que

les avantages de détection de malwares dans les sites.

Dans le deuxième chapitre, nous présenterons les moteurs de recherche ainsi que leurs

mode de fonctionnement, puis nous présenterons une étude comparative sur les moteurs de

recherche Open Source. Suite à notre choix technologique, nous allons procédé à détailler le

fonctionnement d'un moteur de recherche suivie d'une installation et mise en place de ce moteur

de recherche.

Tout comme le deuxième chapitre, nous essayons de présenter dans le troisième chapitre

les composantes de notre projet. Dans ce chapitre, nous présenterons l'utilité des Honeypots, la

notion de Honeyclients à haute interaction et à faible interaction, et nous finirons par une étude

comparative sur les clients Honeypots.

Dans le chapitre suivant, on brossera les spécifications fonctionnelles de notre projet

englobant les besoins fonctionnels et non fonctionnels, ainsi que notre approche de mise en place

de l'application.

Le cinquième chapitre sera consacré à la conception de notre projet. c'est ainsi quelques

diagrammes de séquence et d'activité seront présentés pour décrire les besoins fonctionnels de

notre projet.

Enfin, le dernier chapitre étalera les différentes étapes de mise en place de l’application,

la plateforme d’utilisation, les fichiers de configurations des différents outils, l’intégration des

uns avec les autres ainsi que les codes sources à implémenter pour mettre en concordances tous

ces outils. Une analyse des résultats sera présentée pour mettre en valeur l'apport de notre projet.

- 2 -

Page 14: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

CHAPITRE 1

Présentation du projet et état de l'art

1. Objet de l'étude

Le présent rapport de stage a été réalisé dans le cadre du projet de fin d'études, en vue de

l'obtention du diplôme d'étude ingénieur en informatique à la Faculté des Sciences de Tunis. Le

sujet du stage a été proposé par l'Agence Nationale de la Sécurité Informatique (ANSI -

Direction Technique). Il a pour but de définir et de mettre en place une solution de détection de

pirates informatique à travers leurs signatures textuelles, et des Malwares hébergés dans les

sites Tunisiens.

Nous allons commencer par une installation et configuration d'un serveur Ubuntu SE 9.04

pour passer ensuite à l'installation et la configuration des différentes composantes de la solution,

puis nous réaliserons une interface graphique de gestions des Malwares trouvés, ainsi que la

listes des sites et les serveurs qui les hébergent. Enfin, nous allons essayer de présenter quelques

statistiques résultants d'une suite de tests d'évaluation de la solution réalisée.

2. Présentation de l'Agence Nationale de la Sécurité Informatique (ANSI)

2.1. Historique et présentation

La sécurité des données a toujours constitué une préoccupation majeure des pouvoirs

publics en Tunisie au même temps qu'elle constitue une garantie pour le respect individuel.

C'est dans ce contexte qu'il y a eu en 1999 le lancement d'une "Unité de gestion par

objectifs pour la réalisation du développement de la sécurité informatique" au sein du Secrétariat

d'État en informatique dont le rôle était de suivre de près les derniers développements en matière

de sécurité informatique et de veiller à l'amélioration de la sécurité des applications pour une

- 3 -

Page 15: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

mise en œuvre efficace.

Pour cet effet, suite à une décision présidentielle, l'Agence Nationale de la Sécurité

Informatique (ANSI) fut créé en 2004 [1].

2.2. Objectif

L'Agence Nationale de la Sécurité Informatique effectue un contrôle général des systèmes

informatiques et des réseaux relevant des divers organismes publics et privés, elle est chargée

des missions suivantes:

• Veiller à l'exécution des orientations nationales et de la stratégie générale en matière de

sécurité des systèmes informatiques et des réseaux.

• Suivre l'exécution des plans et des programmes relatifs à la sécurité informatique dans le

secteur public à l'exception des applications particulières à la défense et à la sécurité

nationale et assurer la coordination entre les intervenants dans ce domaine.

• Établir des normes spécifiques à la sécurité informatique et élaborer des guides

techniques en l'objet et procéder à leur publication.

• Œuvrer à encourager le développement de solutions nationales dans le domaine de la

sécurité informatique et à les promouvoir conformément aux priorités et aux programmes

qui seront fixés par l'agence.

• Participer à la consolidation de la formation et du recyclage dans le domaine de la

sécurité informatique.

• Veiller à l'exécution des réglementations relatives à l'obligation de l'audit périodique de la

sécurité des systèmes informatiques et des réseaux.

2.3. Organigramme:

Figure N°1 : Organigramme de l'Agence Nationale de la Sécurité Informatique

- 4 -

Direction générale

Direction Technique Direction Suivi et stratégie Direction Cert-TccDirection administration

et finance

Page 16: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

La Direction Générale: elle a pour rôle de contrôler les autres départements de

l'organisation, de veiller sur les biens de la société, à choisir les bonnes directives et les

bonnes décisions.

La Direction Technique: elle a pour rôle de tester des produits et le développement du

code source.

La Direction Suivi et Stratégie: cette direction a pour fonctions:

• L'étude des normes et méthodologies d'audit;

• L'étude des cahiers de charge de sécurité;

• Le suivi des rapports d'audit;

• La certification des auditeurs externes.

La direction Cert-Tcc: La direction Computer Emergency Response Team-Tunisian

Coordination Center a pour rôle de:

• Sensibiliser les locuteurs à propos des Virus et des Vulnérabilités propagés dans

notre pays par l'envoi des mails.

• Assurer un service Call-Center dédié à répondre aux incidents.

• Déclarer les incidents et leurs circonstances.

• Étudier les attaques et l'environnement de leurs propagations en Tunisie.

3. Présentation du projet

3.1. Intérêt de l'ANSI pour le projet

À travers le monde, et particulièrement en Tunisie, les entreprises, les sociétés, les

institutions éducatives, d'enseignement et bien d'autres sont totalement conscientes du poids que

représente la médiatisation d'informations à travers internet, le gain de temps apporté par cette

dernière au niveau des échanges d'informations, ainsi que le gain d'argent qu'elles peuvent avoir

du fait que la nature de leurs activités sont destinées à des clients distants.

Le problème est que ces organisations vont ouvrir leurs systèmes de communication à

travers des sites web non seulement aux clients, mais aussi, involontairement, aux concurrents et

aux agresseurs et internautes malveillants. Cet ensemble de réseaux, éparpillés de part et d'autre

dans le monde, représente donc un environnement idéal pour laisser infiltrer les intrus de tout

genre. C'est un immense terrain de chasse, quasi infini, pour ce qu'on appelle les cybercriminels.

Dans le monde entier, la guerre contre les pirates s'accentue et la lutte contre le piratage

- 5 -

Page 17: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

devient une préoccupation primordiale. C'est dans ce cadre que l'Agence Nationale de la Sécurité

Informatique a décidé de s'investir dans un projet de détection de pirates et de Malwares dans les

sites Tunisiens.

3.2. Étude de l'existant

À l'ANSI, nous faisons référence aux sites spécialisés dans l'archivage des sites défacés

tels que zone-h.org, comme l'une des approches de détection des défigurations. Nous avons

recours aussi à la recherche par Google de l'ensemble des sites tunisiens qui peuvent contenir un

mot appartenant à un ensemble de mots se référant au domaine de piratage, tel que : hacked,

owned…

L’agence Nationale de la Sécurité Informatique dispose de plusieurs solutions pour

garantir la surveillance du cyber-espace tunisien à temps réel, notamment le régime de sécurité

«SAHER». Lancé à l’occasion de la tenue du Sommet Mondial sur la Société de l’Information à

Tunis (2005), Saher est la composante technique du CERT-TCC. C'est un ensemble d'outils

techniques établis dans un environnement open source.

Il est constitué de trois parties :

SAHER-IDS: identification des activités non autorisées et potentiellement malicieuses

(attaques, scans, DDOS,…) ciblant les systèmes informatiques tunisiens.

SAHER-WEB: surveillance des sites web tunisiens contre les attaques de type

défacement de contenu web, Phishing, …

SAHER-SRV: contrôle de la disponibilité des services Internet tels que les serveurs DNS,

les serveurs Mail, … contre les attaques de type Mail Bombing [G1], DNS Poisoning

[G2], …

3.3. Problématique

Dans notre problématique, nous avons deux points importants à mettre en relief. Le

premier consiste au fait que nous utilisons le moteur de recherche Google pour la recherche des

sites web défaillés ou contenant des malwares. Le deuxième est la fréquence de visite de ces

sites.

Le projet Saher mis en place à l’ANSI, utilise le moteur de recherche Google. Ce dernier

est configuré de telle manière qu’il revisite les sites, pour ré-indexer leur contenu en intégralité,

suivant leur référencement et le nombre de liens qui pointent vers eux. Tant que ces délais ne

sont pas publiés en publique, nous constatons à l'agence qu'une même URL est revisitée en

- 6 -

Page 18: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

moyenne une fois tous les cinq ou six jours. Ainsi les sites hébergés dans le domaine tunisien

sont parcourus en entier dans ce délai, un délai qui ne garantit pas un contrôle de contenu et

fiable des sites web.

Une fois les pages sont visitées, elles sont enregistrées sur le disque dur d’un serveur avec

la commande Wget (Wget est un programme en ligne de commande non interactif de

téléchargement de fichiers depuis le Web. Il supporte les protocoles HTTP, HTTPS et FTP ainsi

que le téléchargement au travers des proxis HTTP). Cette commande est très performante mais

on verra par la suite les avantages d’avoir son propre outil de téléchargement des pages web.

Utiliser Google comme moteur de recherche, ne nous permet pas de bien contrôler les sites

tunisiens.

Enfin, notons les difficultés rencontrées pour la détection des site défaillés, ou contenant

des malwares En effet, actuellement, la recherche des pirates se fait par consultation des sites un

par un, ou la par la déclaration des internautes qu'un site a était piraté, ce qui n'est pas de tout

fiable, ni rapide.

3.4. Approche suivie

Notre idée de départ était de mettre en place un moteur de recherche pour déterminer les

sites piratés à travers les signatures textuelles des pirates, donc l'idée principale partait d'une

installation d'un moteur de recherche Tunisien. Puis, au fur et à mesure, nous constations que la

plupart des pirates utilisent des techniques très évoluées, non pas pour modifier le contenu d'un

site, mais plutôt pour placer dans ces sites des codes malveillants tel que des Keyloggers [G3],

des Espions, ou des Chevaux de Troie leurs permettant d'espionner non pas les sites, mais plutôt

les clients de ses sites. Donc, suite à cette constatation, nous avons pensé à étudier la

vulnérabilité des sites web en scannant leurs contenu par l'intermédiaire d'un client Honeypot.

Lors des premiers tests de cette solutions, plusieurs problèmes font face dont,

principalement, le problème de la redondance du crawling. En effet, dans notre approche, les

deux outils à savoir le moteur de recherche, et le Honeyclient font tous les deux leur propre

crawling qui est identique à l'autre. Ceci nous a amené à penser à faire un seul crawling, et faire

de la sorte que le deuxième outil fait le crawling à partir du premier crawling,

Un autre problème incontournable était le fait que notre Honeyclient prenait en paramètre

le chemin d'un seul fichier ARC crawlé la Heritrix. De ce fait nous avons pensé à modifier le

code source pour prendre en paramètre tous les .ARC d'un répertoire donné et c'est ainsi que la

génération d'un fichier log détaillé était nécessaire.

- 7 -

Page 19: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

Enfin, nous avons pensé au développement d'une interface graphique en J2EE pour

faciliter la gestion des sites Hyperliens et des malwares trouvés ainsi que la liste des signatures

des hackers.

4. Le piratage (Hacking) et les Malwares

4.1. Piratage (Hacking)

Serveurs piratés, numéros de cartes bancaires volés, sites web défigurés (defacing),

données personnelles publiées ou vendues sur le Net,... nous estimons aujourd'hui à moins de

quatre minutes le temps moyen pour qu'un PC non protégé connecté à Internet subisse une

tentative d'intrusion ou soit contaminé par un programme malicieux [2]. De nos jours, les pirates

informatiques font de plus en plus parler d'eux.

4.1.1. Différents types de pirates informatiques

Dans le domaine du piratage informatique, il existe plusieurs types de pirates :

4.1.1.1. Les Hackers

L'origine du mot « Hacker » remonte à l'arrivée du premier ordinateur au MIT

(Massachusetts Institute of Technology, université Américaine située à Cambridge): l'IBM 704.

Cet ordinateur devient rapidement la proie d'étudiants passionnés qui vont pousser la machine à

bout, la « bidouillant » dans les moindres détails, sans se soucier des protocoles d'utilisation

d'IBM pour une machine de plusieurs millions de dollars. A l'époque, nous qualifions leurs

travaux avec le terme Hacking qui était le fait d'utiliser une machine ou une technologie à des

fins qui n'étaient pas prévus. Aujourd'hui, le mot Hacker désigne un grand spécialiste de

l'informatique, que ce soit dans le domaine de la sécurité que celui de la programmation ou d'un

quelconque autre domaine de l'informatique[3,4].

Nous distinguons différentes catégories de Hackers :

➢ Le Hacker White Hats : les white hats utilisent leurs savoirs et leurs connaissances au

service de la société actuelle. Ils peuvent être consultants en sécurité, administrateurs

réseaux ou travailler au sein de la communauté open source. Certains d'entre eux sont

d'ailleurs à l'origine de l'open source et de la philosophie qui en découle. Devenir un

hacker white hats c'est assimiler des connaissances et de l'expérience en participant aux

projets de la communauté afin d'être accepté par ses membres. Cela nécessite de

- 8 -

Page 20: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

l'investissement dans des projets open source et d'adopter une certaine culture.

➢ Le Hacker Black Hats : les black hats utilisent leurs connaissances pour défaire ou

contourner, à but malveillant, les systèmes et les réseaux d'informations. Ils ont

également leur propre communauté. Nous pouvons les qualifier de « pirates

informatiques » dans le sens où leurs actions sont nuisibles.

➢ Le Hacker Grey Hats : les grey hats sont entre les White Hats et les Black Hats: ils n'ont

pas de buts nuisibles mais n'hésitent pas à pénétrer certains réseaux ou systèmes de façon

illégale. Ils cherchent plutôt l'exploit et la renommée.

4.1.1.2. Les Hacktivistes

« Hacktivisme » vient de la fusion des mots Hacker et activisme. L'Hacktiviste est un

Hacker dont les objectifs sont politiques et emploie ses connaissances en informatique pour

diffuser et promulguer ses opinions. Ses actions les plus spectaculaires sont notamment le

piratage de sites informatiques en altérant les données, en détournant des serveurs, en remplaçant

des pages d'accueil afin de détourner la signification et l'engagement de ces sites. Si le

Hacktivisme est une nouvelle forme de protestation et bien souvent une manière de se faire

entendre, cela reste une action totalement illégale. « Hacktiviste » est donc évidemment un autre

sens que nous donnons au « pirate informatique » [4].

4.1.1.3. Les Crackers

Le cracker est spécialisé dans le cassage des protections des logiciels. Il possède de très

bonnes connaissances en assembleur ainsi que des outils (désassembleur, débogueur…) qui lui

permettent d'analyser le code d'un programme transmis au processeur. Cela lui permet de

neutraliser ou contourner les mesures de protections d'un logiciel en créant un patch (ou crack),

ou bien un « keygen » dans le cas de logiciels protégés par des clefs [4].

4.1.1.4. Les Carders

Ce sont les Hackers pour les systèmes embarqués. Ces pirates s'attaquent principalement

aux systèmes de cartes à puces (en particulier les cartes bancaires) pour en comprendre le

fonctionnement et en exploiter les failles [4].

- 9 -

Page 21: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

4.1.1.5. Les Phreakers

Les Phreakers sont les Hackers des systèmes téléphoniques. Ils peuvent se décrire comme

le détourneurs de services de télécommunication, par divers procédés, dans le but d'éviter les

grosses factures de téléphone ou les oreilles indiscrètes. Un autre type de piratage téléphonique

est l'utilisation détournée des téléphones cellulaires. Avec ce type de téléphones, aucune

connexion physique n'est nécessaire et il est facile d'écouter les conversations au moyen de

scanners GSM et autres. Les téléphones cellulaires sont aussi facilement reprogrammables : les

malfaiteurs peuvent ensuite les utiliser sans payer leurs communications, qui seront facturées aux

véritables propriétaires [4].

4.1.2. Le défacement Web

4.1.2.1. Présentation du défacement

Parmi les attaques les plus répondues, le Web « defacement », défaçage ou défiguration

de page web, est un anglicisme désignant la modification non sollicitée de la présentation d'un

site Web, suite au piratage de ce site. Il s'agit donc d'une forme de détournement de site Web par

un pirate. Elle touche la crédibilité et la réputation de l'organisation en général.

Les défacements sont provoqués par l'utilisation de failles présentes sur une page Web ou

tout simplement une faille du système d'exploitation du serveur Web. En effet, le pirate doit en

premier lieu récupérer les noms et les mots de passe des utilisateurs pour accéder au serveur qui

héberge les sites web. Ceci est faisable par le biais des techniques de collecte de données, qui

exploite les vulnérabilités du système (par exemple : la lecture des pages web global.asa [G8] qui

sont supposées inaccessibles, les informations publiques telles que les enregistrements des noms

de domaines (domain registration records))… Après avoir récupérer un nom d'utilisateur du

système, il peut deviner le mot de passe. Cette tâche est facilitée par les études sociales menées

(date de naissances, numéro de téléphone…)

Une fois introduit, le pirate a pour but de bénéficier des droits d’administration pour avoir

accès à toutes les données et les opérations. Il s’informe sur la version exacte et les niveaux des

patchs associés au système d’exploitation, les versions des paquets installés sur la machine ainsi

que les services et les processus actifs sur la machine. Il peut par la suite s’infiltrer par une faille

qu’il découvre dans les programmes installés. Ainsi il gagne des privilèges d'accès et contrôle du

serveur. Le défacement est effectué ensuite par la modification du contenu des pages du site visé.

- 10 -

Page 22: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

La plupart du temps, les sites défacés le sont uniquement sur la page d'accueil.

Une page défacée peut contenir plusieurs éléments :

• Un fond uni, qui peut être le seul indice de défacement d'un site; la plupart du temps la

page d'accueil est blanche ou noire.

• Généralement, un simple mot, comme « owned », « hacked » ou bien le pseudonyme du

défaceur.

• Une image est assez souvent présente, et affiche les revendications du défaceur. Nous

trouvons souvent des symboles se référant à la mort (crânes…), un drapeau sous lequel le

défaceur est fier d'agir etc.

• Parfois plus qu'un simple mot, plusieurs phrases pouvant être de différentes natures

(insultes envers des États, des défaceurs adverses, une revendication spécifique…).

• Une explication simple de la façon dont le défaceur a acquis l'accès en écriture sur le site

accompagnée à l'occasion d'une moquerie envers le webmestre ou l'administrateur du site

en question.

• plus rarement des fichiers audio, vidéo ou même Flash.

4.1.2.2. Exemples de pages web défacées

• Google Maroc : Google.co.ma, illustré dans la figure N°2, a été défacé par le groupe de

pirates pakistanais "PAKbugs". Une fois encore une faille d'injection SQL a été utilisée

chez le registrar domain.ma, les défaceurs ont ensuite accédé au NIC marocain (nic.ma)

avec les mêmes identifiants d'administrateurs récupérés sur domain.ma afin de modifier

les serveurs DNS associés au nom de domaine.

Avant Après: le 09/05/2009

Figure N°2 : Google Maroc avant et après le défacement – Le 09/05/2009

- 11 -

Page 23: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

• Le 21/04/2009, certains defacers turcs ont pénétré dans le bureau d'enregistrement basé

en Nouvelle-Zélande « Domainz.net » (qui appartient à MelbourneIT) et ont défacé

certains de leurs sites Web de leurs clients de haut niveau comme Microsoft, HSBC,

Coca-Cola, F-secure, Bitdefender, Sony et Xerox.

Avant Après: le 21/04/2009

Figure N°3 : sony.co.nz avant et après le défacement – Le 09/05/2009

• Le site Internet de la police Britanique piraté par un cyber intrus Tunisien : Après le

Home Office Crime Reduction Unit, la police britannique a connu le 09/06/2008 un

nouveau passage d'un pirate informatique dans ses e-murs. Le site web de la police de

Bedfordshire a été piraté par un jeune internaute de 17 ans qui a signé son attaque sous le

pseudonyme de <nom_et_prénom_du_pirate>. Le jeune barbouilleur a affiché, en plus

d'une tête de mort et d'un porte drapeau le message « This site was hacked by

<nom_et_prénom_du_pirate> » [5].

Figure N°4 : Site de la police Britannique après l'attaque d'un pirate Tunisien – Le 09/05/2009

- 12 -

Page 24: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

4.1.3. Motivations des Hackers

Certains affirment s'attaquer aux systèmes informatiques juste pour le plaisir et pour le

challenge. Certains veulent juste se faire connaître, d'autres, cherchent à trouver un emploi parce

que le Hacking est devenu aujourd'hui un métier. Aujourd'hui, les pirates qui attaquent des

serveurs pour gagner de l'argent ou accéder aux données financières ne sont pas très nombreux.

Car ce type de piratage nécessite des compétences de très haut niveau. Dans le monde entier, la

majorité des attaques proviennent des script-kiddies [G4]. Ils n'ont pas besoin de compétences

pointues et se contentent d'installer des chevaux de Troie téléchargés sur le Net.

4.1.4. Cibles des Hackers

Contrairement aux idées reçues, les particuliers font partie des cibles privilégiées des

pirates informatiques car ils ne disposent souvent d'aucun moyen de protection. Certain affirment

que c'est un jeu d'enfant pour un Hacker d'accéder à leurs mots de passe Internet ou à leurs

documents personnels. Mais qu'est-ce qu'un Hacker espère trouver sur un ordinateur personnel ?

Les histoires de piratage ne sont-elles pas réservées aux grandes entreprises?

Les chevaux de Troie ou « Troyens » constituent pour les pirates un des meilleurs

moyens pour s'infiltrer dans un ordinateur. A la différence des virus, les chevaux de Troie ne

cherchent pas à contaminer les fichiers mais agissent comme un espion au service du pirate qui

l'a envoyé. Cachés derrière une apparence innocente, généralement les images ou des document

PDF, mais aussi des logiciels gratuits, un accélérateur d'affichage ou un jeu, ils contiennent

souvent des logiciels de prise de main à distance qui permettent au pirate de voir toutes les

actions sur les ordinateurs de ses victimes pendant leurs connexion Internet, y compris les mots

de passe tapés à l'écran via les Keyloggers qui permettent d'enregistrer tous caractères saisie par

le clavier. Le pirate prend ainsi le contrôle total de la machine cible : il peut lancer des logiciels,

bouger le curseur, lire les courriers, détruire les documents ou encore redémarrer l'ordinateur.

Les chevaux de Troie ouvrent aux pirates les portes virtuelles de l'ordinateur. Au nombre

de 65000 sur un ordinateur, ces ports sont des voies virtuelles d'entrée et de sortie des

informations provenant de l'Internet. Généralement, les port les plus utilisés sont les ports

TCP/IP qui permettent la communication des ordinateurs sur Internet, le port 80 qui est consacré

au chargement des pages web et le port 25 dédié à la messagerie.

Les chevaux de Troie utilisent un de ces ports pour communiquer via le web avec le

- 13 -

Page 25: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

pirate. Un ralentissement notable de l'ordinateur victime ou l'activité inhabituelle du modem

alors que la victime n'est pas entrain de l'utiliser peuvent être des signes d'infection par un cheval

de Troie.

Mais l'objectif principal des Hackers en prenant contrôle les machines des particuliers

reste sans doute la possibilité des attaques par rebond [G5] ou attaques DDOS [G6]. Pour cela, et

pour faciliter la propagation du Cheval de Troie, les Hackers font recourt aux sites les plus

visités ou les sites de confiance comme les sites gouvernementaux ou des établissement publics.

Et pour arriver à leurs bout, les Hackers commencent par déterminer les failles dans ces sites afin

d'injecter un virus ou un cheval de Troie dans la page principale des sites. Lors du chargement de

ces sites par un simple internaute, le malware sera télécharger et installer automatiquement et

d'une manière transparente vis à vis de l'internaute. Au bout de quelques jours, le Hacker

construira toute une armé de bots (pouvant atteindre les des millions de bots) et à ce moment, un

désastre est attendu pour le serveur victime.

Notre projet, entre dans le cadre de lute contre ce genre de propagation de malwares en

essayant de détecter les malwares dans les sites Tunisiens et informer les administrateurs des

serveurs contaminés d'une tel existence de malwares.

4.1.5. Le piratage en Tunisie

En Tunisie, l'histoire du piratage a commencé non pas par l'apparition de l'internet mais

bien plus que cela. En effet, le piratage a commencé avec deux entreprises profondément

touchées : la Société Tunisienne d'Électricité et de Gaz (STEG) par le vol des connections

électriques et Tunisie Télécom avec le piratage des lignes téléphoniques « phreaking » puis le

piratage des communication dans les taxiphones en modifiant les règles de taxations.

L'arrivée d'internet marque l'introduction des pirates Tunisiens expatrié (principalement

en Allemagne) mais aussi des jeunes « newbie » et des lamers Tunisiens. Vers la fin des années

90 et début des années 2000, un groupe de lamers fait son apparition sur la scène. Parmi les

premières activités de ce groupe fut l'achat du nom de domaine tunisietelecom.com et le rediriger

vers leur site (ce n'est pas un acte de piraterie mais son impact dans le domaine fut grandiose) le

groupe se nomme Magattack. Ce groupe de lamers a réussi à l'époque à faire un défacement de

plusieurs sites en utilisant des scripts et des outils développés par les autres pirates. Plusieurs

jeunes y ont adhéré et rapidement Magattack est devenu le plus grand groupe de pirates

Tunisiens. Il regroupe aussi bien des lamers, defacers que de hackers professionnels, des

- 14 -

Page 26: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

phreakers et des crackers. Parmi les Hackers Tunisiens, on peut citer: darkr0ot, blackr0ot,

localhost, azraael, yvan, blackdevil, blackhat, et le petit dernier K3M (k3vin Metnick).

Parmi leurs exploit fut l'ATI, TT, AmenBank et beaucoup d'autres établissements publics.

Enfin, il est à noter qu'un nouveau né dans le domaine du Hacking Tunisien, c'est le

groupe de lamers « Tunisian Power Team ».

4.1.6. Aspects juridiques pour intrusion aux systèmes

informatiques

• Est puni d'un emprisonnement de deux mois à un an et d'une amende de mille dinars ou

de l'une de ces deux peines seulement quiconque, frauduleusement, aura accédé ou se

sera maintenu dans tout ou partie d'un système de traitement automatisé de données. La

peine est élevée à deux ans d'emprisonnement et l'amende à deux mille dinars lorsqu'il en

résulte, même sans intention, une altération ou la destruction du fonctionnement des

données existantes dans le système indiqué.

• Est puni d'un emprisonnement de trois ans et d'une amende de trois mille dinars,

quiconque aura intentionnellement altéré ou détruit le fonctionnement du traitement

automatisé.

• Est puni d'un emprisonnement de cinq ans et d'une amende de cinq mille dinars,

quiconque aura frauduleusement introduit des données dans un système de traitement

automatisé de nature à altérer les données que contient le programme ou son mode de

traitement ou de transmission. La peine est portée au double lorsque l'acte susvisé est

commis par une personne à l'occasion de l'exercice de son activité professionnelle. La

tentative est punissable.

• Est puni d'un emprisonnement de deux ans et d'une amende de deux mille dinars,

quiconque aura introduit une modification de quelque nature qu'elle soit sur le contenu de

documents informatisés ou électroniques originairement véritables, à condition qu'elle

porte un préjudice à autrui.

• Est puni des mêmes peines, quiconque aura sciemment détenu ou fait usage des

documents susvisés. La peine es t portée au double lorsque les fais susvisés sont commis

par un fonctionnaire public ou assimilé. La tentative est punissable [6].

- 15 -

Page 27: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

4.2. Les malwares

Dans le domaine des codes malveillants, il existe plusieurs types de malwares, nous nous

limitons à présenter les plus vulnérables et les plus répondus [4].

4.2.1. Les Virus

Un virus est un programme informatique malicieux conçu et écrit pour qu'il se

reproduise. Cette capacité à se répliquer, peut toucher généralement les ordinateurs ayant les

systèmes d'exploitation Windows, d'une manière transparente et sans prendre la permission du

propriétaire. En termes plus techniques, le virus classique s'attachera à des programmes

exécutables et se copiera systématiquement sur tout autre exécutable. Il n'y a pas de génération

spontanée de virus informatiques. Ils doivent avoir été écrits dans un but spécifique.

A part se répliquer, le virus peut avoir ou non une action plus ou moins néfaste, allant de

l'affichage d'un simple message à la destruction de toutes les données. Tandis que certains virus

vont tout simplement se manifester par l'apparition d'un message sur l'écran de ordinateur,

d'autres vont être plus dangereux. Par exemple, ils pourront supprimer des données, formater un

disque dur et même endommager quelques composant physique de la machine cible. La majorité

des virus se propagent par courrier électronique en pièce-jointe ou par une simple consultation de

pages web. Néanmoins, nous pouvons classer les virus en plusieurs catégories:

• Virus furtifs : ces virus, comme leur nom l'indique, vont se camoufler de façon à ne pas

être détecté par les antivirus. Un virus furtif, va se cacher lorsque l'antivirus ou

l'utilisateur accède au fichier infecté, à ce moment, le virus le saura et va se cacher offrant

à l'antivirus et à l'utilisateur une version non infectée du fichier.

• Virus polymorphes : ces virus, assez rare, ont la faculté de changer de signature de

façon à berner les antivirus. Les virus polymorphes incluent un code spécial permettant

de rendre chaque infection différente de la précédente. Ce changement constant rend la

détection de ce type de virus compliqué. Souvent le code change, mais l'action pour

lequel il a été créé est toujours la même. Par exemple, le virus peut intervertir l’ordre des

instructions de son action en son sein, ou rajouter de fausses instructions afin de tromper

la vigilance de l'antivirus, qui lui, recherche une signature précise.

Beaucoup de virus polymorphes sont aussi encryptés. Le virus encryptera son code et ne

le décryptera que lorsqu’il doit infecter un nouveau fichier, le rendant encore plus

difficile à détecter.

- 16 -

Page 28: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

• Macros : ce sont des virus écrits en VBA (Visual Basic Application) de la suite

Microsoft Office. Les virus Macros sont la plus grande menace à ce jour, ils se propagent

lorsqu’un document Microsoft Word, Excel ou PowerPoint contaminé est exécuté. c'est

une série de commandes permettant d’effectuer un certain nombre de tâches

automatiquement au sein des applications ci dessus. Les Virus Macros non supprimés se

répandent très rapidement. L’ouverture d’un document infecté va contaminer le

document par défaut de l’application, et ensuite tous les documents qui seront ouverts au

sein de l’application. Les documents Word, Excel et PowerPoint étant les documents les

plus souvent partagés, envoyés par Internet, ceci explique la diffusion rapide de ces virus.

De plus le langage de programmation des Macros est beaucoup plus facile à apprendre et

moins compliqué qu’un langage de programmation classique.

• Virus composites : ces virus sont tout simplement une combinaison des catégories

mentionnées ci-dessus.

4.2.2. Les Vers

Un Ver est un logiciel malveillant indépendant qui se copie d’ordinateur en ordinateur.

La différence entre un ver et un virus est que le premier ne peut pas se greffer à un autre

programme et donc l’infecter, il va simplement se copier via un réseau ou Internet, d’ordinateur

en ordinateur. Ce type de réplication peut donc non seulement affecter un ordinateur, mais aussi

dégrader les performances du réseau dans une entreprise. Comme un virus, ce ver peut contenir

une action nuisible du type destruction de données ou envoi d'informations confidentielles.

L'objectif d'un ver n'est pas seulement de se reproduire. Le ver est un logiciel malveillant

qui permet d'espionner et de détruire des données sur l'ordinateur où il se trouve, d'ouvrir une

porte dérobée à des pirates informatiques ou même de participer à une attaque DDOS en

envoyant de multiples requêtes vers un serveur Internet dans le but de le saturer.

L'activité d'un ver a souvent des effets secondaires comme le ralentissement de la

machine infectée ou du réseau utilisé par cette machine infectée. En plus, les vers peuvent

planter quelques services ou complètement le système d'exploitation de la machine infectée.

Des vers écrits sous forme de script peuvent être intégrés dans une page HTML [G8] et

ils sont activés par simple consultation de la page Web.

- 17 -

Page 29: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

4.2.3. Les Chevaux de Troie

Un Cheval de Troie est un programme en apparence légitime mais conçu pour exécuter

d'une façon cachée vis à vis de l'utilisateur des actions au profil du pirate. Leur nom vient du

fameux Cheval de Troie de la Grèce antique, offert en cadeau, mais qui en fait avait pour but de

causer la ruine et la destruction de la ville ayant reçu ce cheval en bois.

Un Cheval de Troie sur un ordinateur est un programme exécutable indépendant présenté

comme ayant une action précise. Néanmoins lorsque ce programme est lancé, il va détourner,

diffuser ou détruire des informations, formater le disque dur, voler les mots de passe, envoyer

des informations confidentielles au créateur via Internet ou encore pour ouvrir une porte dérobée

« backdoor » qui permettra à un attaquant de prendre à distance le contrôle d'un ordinateur.

Un Cheval de Troie peut aussi être à l'origine d'une bombe logique qui, une fois exécutée,

produira ses effets à un moment précis. Par exemple, la bombe logique Tchernobyl s'est activée

le 26 avril 1999 (jour du 13ème anniversaire de la catastrophe nucléaire en Bulgarie), mais la

bombe peut également attendre une combinaison de touches bien précise de la part de

l'utilisateur pour se déclencher ou attendre qu'un fichier s'exécute. Le choix des programmeurs

quant à son déclenchement est sans limite.

4.2.4. Les Spywares

Un spyware, ou logiciel espion, est un logiciel malveillant qui s'installe dans un

ordinateur dans le but de collecter et transférer des informations sur l'environnement dans lequel

il s'est installé, très souvent sans que l'utilisateur n'en ait connaissance. Après la collecte

d'informations, le Spyware transmet les données au pirate.

Un logiciel espion est composé de trois mécanismes distincts :

◦ Le mécanisme d'infection qui installe le logiciel. Ce mécanisme est identique à celui

utilisé par les virus, les vers ou les chevaux de Troie.

◦ Le mécanisme assurant la collecte d'information.

◦ Le mécanisme assurant la transmission des informations aux pirates. Ce mécanisme

est généralement assuré via le réseau Internet. La destination peut être le concepteur

du programme ou une entreprise.

Le logiciel espion peut afficher des offres publicitaires, télécharger un virus, installer un

cheval de Troie (ce que fait WhenU.SaveNow, par exemple), capturer des mots de passe en

- 18 -

Page 30: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 1 Présentation du projet et État de l'art

enregistrant les touches pressées au clavier (keyloggers), espionner ou exécuter les programmes

à une heure précise ou encore espionner les sites internet visités.

5. Conclusion

Ce chapitre a donné une vue globale sur le cadre spatial temporel du projet de fin des

études. Nous avons essayé d’introduire la problématique du sujet et notre approche suivie pour

résoudre les problèmes relevés, Nous avons aussi présenté une étude sur le piratage en Tunisie,

les malwares et les menaces d'internet que nous risquons et qui sont indispensables à la

compréhension de l'objectif de notre projet.

Le chapitre suivant présentera une étude sur les moteurs de recherche open source.

- 19 -

Page 31: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

CHAPITRE 2

Étude sur les Moteurs de Recherche

Open Source

1. Introduction

Parfois comparé à la Bibliothèque d’Alexandrie, le Web est composé d’un nombre

inestimable de sites, eux-mêmes composés d’un nombre incalculable de pages... Heureusement,

les moteurs de recherche sont une des principales ressources mises à la disposition de

l’internaute pour l'aider à trouver son aiguille dans des milliers de pages Web.

Le moteur de recherche (ou Search Engine) est un programme, comparable à une base de

données archivant des sites web, des pages web et les mots les composant. Cette base est mise à

jour régulièrement, à mesure que de nouveaux sites web sont créés ou que le contenu des pages

est modifié.

Pour trouver le thème recherché, le moteur « scrute » dans sa base de données l’existence

de la chaîne de caractères demandée et la restitue, le cas échéant, sous la forme d’une liste de

sites ou de pages web, selon sa nature.

De nos jours, le nombre de moteurs de recherche diminue drastiquement et la situation

d'oligopole dans laquelle nous nous trouvons risque de se transformer en monopole avec une

seule compagnie « Google », contrôlant presque toute la recherche Web, avec des visées

commerciales.

Tous les principaux moteurs de recherche ont des formules de classement propriétaires et

n'expliqueront jamais pourquoi telle ou telle page a été classée d'une certaine façon. De plus,

certains moteurs de recherche choisissent les sites à indexer en échange d'une rémunération plus

- 20 -

Page 32: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

que sur la valeur intrinsèque du site. Donc la solution est de faire appel à un moteur Open Source

gratuit. Cette solution nous permet de configurer le délai de ré-indexation des sites et les

composantes à y récupérer (texte brut : recherche textuelle).

Dans ce chapitre, nous procédons à une étude théorique sur les moteurs de recherche

Open Source, suivi d'une implémentation et configuration du moteur de recherche Nutch.

2. Définition

Un moteur de recherche est un outil de recherche sur internet permettant de retrouver des

informations demandées associées à des mots quelconques. Ces moteurs sont constituées

essentiellement de Crawlers (robots) qui parcourent les sites web de façon régulière et

automatique afin de chercher de nouvelles adresses web, et de collecter les ressources jugées

intéressantes. Ensuite, ces liens et ces ressources collectés seront indexés et accessibles par la

suite par la recherche.

3. Moteurs de recherche et les systèmes de gestion de base de données

Les moteurs de recherche ont une structure similaire à un système de base de données, les

documents sont stockés dans un dépôt et un index est maintenu. les requêtes utilisateurs sont

évaluées par traitement de l'index et les entrées correspondantes sont retournées à l'utilisateur.

Cependant, il existe quelques différences, les requêtes utilisateurs sont simples : un

ensemble de mots (ou termes) ou une phrase alors que les requêtes aux bases de données sont

complexes (avec par exemple des expressions logiques ou régulières).

Une autre différence est que les bases de données retournent tous les enregistrements

correspondant à la requête alors qu'un moteur de recherche ne retourne qu'un nombre fixé de

documents classés par pertinence, selon des mesures statistiques.

4. Fonctionnement

Un moteur de recherche est composé essentiellement de trois outils :

4.1. Un outil d'exploration

L'exploration ou le crawling consiste à injecter un ensemble de robots sur internet

permettant de chercher de nouvelles adresses web, et de collecter les ressources jugées

intéressantes. Depuis l'apparition d'internet, sa taille ne cesse d'augmenter, cette croissance

- 21 -

Page 33: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

touche à la fois le nombre de pages, mais aussi la taille moyenne de chaque page, en effet,

images, vidéos et les animations flash deviennent de plus en plus utilisés dans nos sites.

Par contre, la bande passante disponible pour crawler le web est toujours limitée. Il est

donc indispensable, et même stratégique, d'optimiser les crawlers pour qu'ils puissent indexer la

Toile de manière efficace.

Cette efficacité se mesure en fonction de trois facteurs :

1. L'exploration doit être rapide : c'est la condition la plus exigée pour qu'un robot

puisse passer souvent et assurer que les pages figurants dans l'index aient une "fraîcheur

suffisante".

2. L'exploration doit être complète : nous savons qu’elle ne peut pas être

exhaustive, car certaines portions du web ne sont pas reliées entre elles par des liens. Mais le

robot doit être capable d’indexer une portion significative de la Toile.

3. Dans le même temps, l'exploration doit respecter les sites visités : notamment,

le robot doit tenir compte de la configuration du moteur de recherche de telle façon qu'il n'aspire

pas des centaines de pages à la seconde...

4.2. Un outil d'indexation

L'indexation permet aux moteurs de recherche d'extraire les mots considérés comme

significatifs à partir des pages web récupérés, ils seront ensuite enregistrés dans une base de

données organisée compréhensible par le moteur de recherche. Le poids, attribué à chaque mot

récupéré, correspond à une probabilité d'apparition du mot dans la page web.

A cette étape, nous pouvons intervenir un Anti-dictionnaire qui permet d'ignorer les mots

« vides » (mots non désirables tels que "de", "le", "la") qui sont définies au préalable par

l'administrateur du moteur de recherche.

4.3. Un outil de recherche

La recherche nous permet de retrouver les sites contenants l'objet recherché, cette phase

consiste à analyser les informations disponibles dans la base de données des sites web crawlés et

indexés, et de retourner une liste de sites par ordre de pertinence. Subissant l'évolution de

l'internet, les algorithmes de recherche sont devenus de plus en plus complexes. Ainsi, nous

retrouvant des moteurs de recherche très simples qui se limitent à une recherche booléenne de

- 22 -

Page 34: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

l'objet (comparer les mots d'une requête avec ceux des documents). Les moteurs plus évoluées se

basent dans leurs recherche sur le poids de l'objet recherché, ce poids est calculé pour chaque

recherche par la formule TF-IDF [G9].

Pour améliorer encore plus les performances d'un moteur de recherche, il existe de

nombreuses méthodes telles que la méthode d'analyse sémantique latente qui permet de faire la

recherche aussi des co-occurrences du mot recherché, ainsi, par exemple, le terme "voiture" est

automatiquement associé à ses mots proches tels que "garage" ou BMW, etc.

Autres techniques consistent à utiliser différents plugins tels que les traducteurs, la

correction d'orthographe ou les dictionnaires de synonymes et d'acronymes.

5. Moteurs de recherche propriétaires

Bien que plusieurs moteurs de recherche Open Source commencent à prendre leurs parts

dans le marché des moteurs de recherche, ce domaine reste toujours dominé par les trois acteurs

majeurs: Google, Yahoo, et MSN [7] :

• Google: environ 65.4% des 64.3 milliards de recherches sur internet

(90.61% de part de marchés en France sur le mois de Juin 2008 [8]).

• Yahoo: 8,5 milliards de recherches, soit 14% du total

• Live Search: 2,1 milliards de recherches, 3,4%

Moteur Janvier 2008 Février 2008

63.1% 62.8%

12.2% 11.9%

4.6% 4.5%

3.1% 3.1%

Tableau N°1 : Parts du marché des moteurs de recherche dans le monde.

- 23 -

Page 35: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

6. Moteurs de recherche Open Source

Étant donné que la quantité d'informations disponibles sur les sites Internet ne cesse

d'augmenter, il devient nécessaire de donner à l'utilisateur la possibilité d'effectuer des

recherches sur des domaines bien définis. En décidant d'installer un moteur de recherche pour un

besoin bien spécifique, les administrateurs sont face à un choix entre les solutions commerciales,

et dans ce cas, des frais supplémentaires non négligeables sont exigés, ou opter pour une solution

Open Source qui peut donner pour quelques moteurs de recherche les mêmes fonctionnalités que

les solutions commerciales, avec les avantages de la philosophie Open Source : transparence du

fonctionnement de ces moteurs de recherche, la gratuité de ces solutions, les logiciels mis à jour

activement, possibilité de personnaliser les codes afin de répondre à des besoins bien spécifiques,

etc

Aujourd'hui, il existe de nombreuses solutions Open Source qui peuvent être utilisées, et

chacune d'entre elles présente des caractéristiques différentes qui doivent être prises en

considération afin de déterminer laquelle choisir. Ces moteurs de recherche peuvent être classés

selon plusieurs critères à savoir le langage de programmation utilisé, la façon dont il stocke les

indexes, ses capacités de recherche, le type de fichiers capables d'indexation (HTML, PDF, texte,

etc).

D'autres facteurs importants à considérer sont la dernière date de mise à jour du logiciel,

la version actuelle et l'activité du projet. Ces facteurs sont très importants, car un moteur de

recherche qui n'a pas été mis à jour récemment, peut présenter des problèmes au moment de sa

personnalisation. Ces caractéristiques sont utiles pour faire une classification globale des

moteurs de recherche et être capable de limiter le nombre de solutions disponibles. Ensuite, il est

important de tenir compte de la performance de ces moteurs de recherche (temps de l'exploration

(crawling), le temps d'indexation, et de recherche sur des bases très volumineuses).

7. Étude comparative sur les moteurs de recherche Open Source

Se limitant sur les moteurs de recherche Open Source les plus utilisés, nous essayons

dans cette partie de présenter une étude comparative entre les trois moteurs les plus utilisés à

savoir DataParkSearch, Solr et Nutch.

- 24 -

Page 36: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

7.1. DataParkSearsh

DataParkSearch est un moteur de recherche Open Source écrit entièrement en C, il est

destiné à organiser la recherche dans les sites Web, un groupe de Sites Web, ou sur intranet. Ce

moteur de recherche dispose d'une large variété de fonctionnalités, il se compose essentiellement

de deux mécanismes qui fonctionnent simultanément, le premier, c'est un mécanisme

d'indexation pour la recherche de nouvelles ressources sur internet, et le deuxième partie qui est

un mécanisme de recherche.

Doté de plusieurs outils de reconnaissance linguistique, DataParkSearch permet la

reconnaissance automatiquement des langues, et de faire des recherches en utilisant une

technologie de négociation du contenu1 pour récupérer les versions de la même page dans

différentes langues, il peut effectuer aussi une recherche avec les caractères spéciaux ou faire de

la segmentation de phrases en Chinois, Japonais, Coréen et Thai. Il est possible d'utiliser des

synonymes, des acronymes et et des abréviations pour étendre les résultats de la recherche.

Afin d'optimiser la recherche et de répondre aux attentes des utilisateurs, DataParkSearch

utilise la technique de « Neo Popularity Rank » qui permet de classer les pages web selon les

pays du réseau neurologique, il permet aussi de construire automatiquement le sommaire de

chaque page index « Summary Extraction Aalgorithm, SEA », ce sommaire sera par la suite

utilisé pour améliorer le rang des sites web.

Enfin, DataParkSearch permet la personnalisation des résultats de la recherche en

fournissant aux utilisateurs la possibilité de classer les pages web par pertinence, popularité,

importance ou par date de la dernière modification.

7.2. Nutch

Initié en 2003 par Doug Cutting, Nutch est un moteur de recherche Open Source complet

: il dispose de son propre outil de crawling, alors que l'indexation et la recherche se basent sur les

bibliothèques de Lucene. Développé entièrement en Java et basé sur une architecture hautement

modulaire, Nutch permet aux développeurs de créer des plugins pour différentes phases du

processus : exploration, indexation et recherche.

1. Négociation de contenu : c'est un mécanisme qui permet de négocier le contenu de la page afin de fournir la forme la mieux adaptée aux utilisateurs, ainsi un utilisateur qui ne comprend pas la forme PNG, peut avoir la forme GIF (bien évidement, chaque ressource doit être disponible sous plusieurs formes).Autre forme de négociation du contenu, c'est la négociation de la langue à afficher.

- 25 -

Page 37: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

En juin 2003, Nutch fût un grand succès après sa présentation d'une version

opérationnelle sur une base regroupant 100 millions de documents, ce succès lui a permis de

prendre sa place dans le domaine des moteurs de recherche.

Publiée le 1er juin 2004, l'étude2 [9] menée par Lyle Benedict présente une comparaison

des résultats du célèbre Google et de son homologue libre Nutch dans le cadre restreint du site

internet de l'Université de l'État de l'Oregon sur une base de 100 requêtes. Par exemple, sur des

notes allant de 0 à 10 où 10 est la meilleure note, elle a trouvé 28 requêtes pour lesquelles Nutch

et Google ont obtenu la note maximale.

Ce succès a énormément encouragé plusieurs organismes internationaux d'adopter cette

solution Open Source. En effet, en décembre 2006, le gouvernement du Québec a opté pour

Nutch comme moteur de recherche pour le repérage de l'ensemble de ses sites selon une

présélection. Autre migration vers Nutch fût celle de l'Oregon State University en septembre

2004, qui a remplacé son pôle de recherche Google par Nutch. Cela lui a permit de réaliser des

réductions de coûts significatives (estimée à 100 000$ par an selon l'Open Source Lab) et de

promouvoir la transparence de ce moteur de recherche [10].

En janvier 2005, l'équipe de Nutch décide de migrer vers la licence Apache. Et après cinq

mois d'incubation, Nutch devient un sous-projet de Lucene.

7.3. Solr

Tout comme Nutch, Solr est un moteur de recherche Open Source basé sur la

bibliothèque Lucene. D'abord, il a était développé chez CNET Networks pour améliorer les

capacités de recherche de l'entreprise, puis en début 2006, CNET Networks décide de rendre le

code source ouvert et de le remettre à Apache Software Foundation. Solr est maintenant un sous-

projet de Lucene qui lui ajoute une surchouche XML lui permettant de recevoir les requêtes en

HTTP et de rendre le résultat en XML [G10].

2. Comparision of Nutch and Google search engine implementations on the Oregon State University website - Lyle Benedict - 1 Juin 2004: cette étude montre bien l'efficacité de Nutch par rapport à Google. Parmi les 54 résultats utilisables, une comparaison entre ces deux moteurs de recherche montre que:

- Pour 28 requêtes: Nutch et Google ont tous deux répondu parfaitement à la demande et 3 un peu moins parfait.

- Pour 5 requêtes Nutch a été légèrement en avance par rapport à Google (les deux étaient presque parfaits)- Pour 8 requêtes Google a été légèrement en avance par rapport à Nutch (les deux étaient presque parfaits)- Pour 3 requêtes Nutch a été beaucoup mieux que Google - Pour 4 requêtes de Google a été beaucoup mieux que Nutch de 10 à 6 - Pour 2 requêtes Nutch a très mal répondu, Google a fait un peu mieux- Pour 1 requête, Nutch n'a pas pu satisfaire la demande, Google, un peu mieux, mais il a répondu très mal.

- 26 -

Page 38: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

Bien qu'il dispose d'une interface graphique d'administration, Solr ne fournie pas encore

aucune interface graphique de recherche, ce qui pousse les utilisateurs de Solr à développer leurs

propres interfaces recherche avec leurs langages de programmation préférés (Java, PHP, Ruby,

Python ...). Cet outil peut aussi prendre la forme d'un Web service et permet donc d'être intégré à

n'importe quel programme, indépendamment du langage de programmation (Java, PHP, C# et

autres).

Le point fort de Solr c'est sans doute son outil de recherche qui lui permet de

personnaliser les recherches. Par exemple, Solr supporte le “faceting” qui permet de

personnaliser la recherche en ajoutant des critères supplémentaires ou d’implémenter des filtres

sur des champs variés. (par exemple, faire un filtre par gamme de prix, couleur et taille pour la

recherche d'un article donné).

En se basant sur Lucene (qui lui fournit des outils d'indexation, et de recherche),

l'inconvénient majeur de Solr reste toujours qu'il ne dispose pas encore d'un outil de crawling. En

effet, pour utiliser Solr, les administrateurs doivent toujours faire recours à des outils de crawling

propriétaires tel que WebCrawler, Methabot, FAST Crawler, Google crawler, etc. Ou même des

Crawlers Open Source tels que Heritrix, GNU WGet, HTTrack, Aspseek, Nutch, etc.

Ce tableau résumera les caractéristiques de chacun des trois moteurs de recherche :

DATAPARKSEARCH SOLR NUTCH

Date première version

27 Novembre 2003 17 Janvier 2006 Juin 2003

Date dernière version

25 Avril 2009 15 Septembre 2008 23 Mars 2009

Version actuelle 4.52 1.3.0 1.0

Système d'exploitation

FreeBSD, Linux, Solaris Windows, Linux, Mac, BSD, Unix

Windows, Linux, Mac, BSD, Unix

Langage de programmation

C Java Java

Communauté Réduite: Forums, Mailing List, Blogs, Pages Wiki

Active : Forums, Mailing List, patch

Très active:Forums, Mailing List, patch, Tutoriels, Astuces,

consultants indépendants offrant une assistance

spécialisée.

Licence GNU GPL - Version 2 Apache License 2.0 Apache License 2.0

Exploration Oui Non Oui

Indexation Oui Oui, utilisant les bibliothèques Oui, utilisant les bibliothèques

- 27 -

Page 39: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

de Lucene de Lucene

Recherche Oui Oui, utilisant les bibliothèques de Lucene

Oui, utilisant les bibliothèques de Lucene

Interface Graphique

Non Seulement d'administration Oui

Fichiers supportés Texte, HTML, XML, Audio, Vidéo, Images/GIF, PDF, Flash, Word, Excel, RTF,

PowerPoint

Pas de crawler Texte, HTML, XML, JavaScript, OpenOfice.org

ODF & Star Office, Microsoft Power Point & Word, Adobe PDF, RSS, RTF, MP3, ZIP,

Flash, etc

Personnalisable Avec divers templates Avec divers templates Code compréhensible

Extensible Non Non Nutch-Wax, Hadoopi, solr, etc

Distribué Non Oui Hadoopi

plugin Non Non LanguageIdentifierPlugin XMLParser Plugin,

DocumentationTemplate GeoPosition , German

JapaneseAnalyzer plugin index-extra, protocol-smb

Autres caractéristiques

● Indexation multilangues des sites ● Recherche de tous les mots proches ● Support des synonymes, acronymes, abréviation ● Liste d'interdictions de mots.● Indexation et recherche en même temps sur la même base de données (Multithread). ● Résultat par importance, pertinence, popularité ou par date. ● Correction d'orthographe.● Recherche par abréviation .● Support des caractères spéciaux. ● Support du Chinois, japonais, etc. ● Nécéssite un SGBD. (MySQL, PostGreeSQL ou Oracle)

● Hit Highlighting (coloration du mot recherché) ● Communication via HTTP, JSON, XML, PHP, Ruby et Python.● Simple à mettre en place: pas de Tomcat. ● Interface d'administration (en HTML). ● Possibilité de réplication de serveurs. ● Extensible avec de nouveaux plugins. ● Caching (mémorisation en cache de toutes recherches). ● Recherche filtrée et par catégorie (faceted search) ● Optimisé pour une recherche web très volumineuse.● Configuration personnalisable et flexible. ● Statistiques complètes sur l'utilisation du cache, mises à jour, requêtes, etc.

● Communauté très active.● Code source compréhensible. ● Robuste et complet● Extensible avec plusieurs plugins ● Possibilité d'intégrer Solr avec Nutch.● Support de Base de données très volumineuse.● Nécessite le générateur de servlette Tomcat.● Possibilité de réplication de serveurs.

Site offciel http://www.dataparksearch.org/ http://lucene.apache.org/solr/ http://lucene.apache.org/nutch/

Tableau N°2 : Étude comparative sur les moteurs de recherche Open Source.

- 28 -

Page 40: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

8. Choix technologique

La solution du départ consistait à l'utilisation d'un moteur de recherche Open Source,

cette solution nous permet d'économiser, en premier lieu, de l'argent vis à vis des solutions

propriétaires3 [11]. En plus, l'adoption des solutions Open Source nous permet de profiter de tout

les atouts de ces derniers à savoir la possibilité de modifier le code source ainsi l'adapter à nos

besoins, elle nous permet aussi d'avoir une idée détaillée sur les algorithmes de classement des

sites.

Parmi les solutions proposées, Nutch se distingue comme étant la solution la plus

appropriée pour répondre à nos besoins à savoir principalement la recherche textuelle dans une

base de quelques milliers de sites tunisiens. En effet, Nutch est un moteur de recherche basé sur

la Bibliothèque Lucene qui est une bibliothèque écrite en java destinée pour la création de

puissants moteurs de recherche orientés texte.

L'avantage indéniable aussi de Nutch c'est qu'il permet de crawler plusieurs milliards de

pages par mois et donc d'avoir un crawler très performant et d'avoir un corpus de très grande

taille.

9. Étude sur le moteur de recherche Nutch

9.1. Introduction

La recherche textuelle a pris une importance considérable depuis quelques années, suite

notamment au succès de l'Internet et de ses moteurs de recherche. Elle n'est pas seulement

utilisée sur le Web mais l'est également par les systèmes d'exploitation par exemple, pour la

recherche de fichiers sur les ordinateurs personnels ainsi qu'au sein des entreprises pour faciliter

la recherche des données en intranet.

Les outils de recherche d'informations indexent aujourd'hui un nombre gigantesque de

pages. Pour avoir un ordre d'idée, Google référençait en 2005 plus de 8 milliards de pages avant

de cesser de communiquer ce chiffre. Ainsi, le défi de la recherche documentaire est de toujours

améliorer les algorithmes de classement des documents (méthodes statistiques ou autres) et les

structures de données mises en place.

3. Google Mini est un moteur de recherche destiné pour les entreprises. Existant en plusieurs versions, la moins chère permet de lancer des recherches sur 50 000 documents pour 2 600 €. La version de 300 000 documents peut aller jusqu'à 8 600 €.

- 29 -

Page 41: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

Les moteurs de recherche sont des outils pour trouver des documents dans un ensemble

de documents, qui ont une bonne concordance avec la requête de l'utilisateur. Les types de

documents que l'on peut rencontrer sont des pages Web, des articles de journaux, des

publications, des rapports, des pages de manuels, des encyclopédies, des bibliographies, … Nous

nous intéresserons dans notre projet qu'à la recherche textuelle et non multimédia (image, audio,

vidéo, …)4.

9.2. Architecture du moteur de recherche Nutch

Le moteur de recherche nutch est articulé autour de trois composantes principale à savoir

le Crawler (explorateur), l'Indexer (indexeur) et le Searcher (serveur de requête).

Dans un premier temps, nous initialisons le crawler avec une liste d'URLs. Le crawler

parcourt cette liste et stocke chaque document dans un entrepôt (un indexe), puis un outil

indexeur « parse » les documents de l'entrepôt et stocke les URLs présentes dans les liens

hypertextes. Le crawler parcourt cette nouvelle liste d'URLs. Nous avons donc un système

cyclique.

L'indexeur quant à lui, va parser les documents, construire le dictionnaire des mots

recensés dans tous les documents et créer l'index qui constitue une interface entre le crawler et le

serveur de requête.

Lorsqu'un utilisateur veut faire une recherche, sous la forme d'une requête d'un ou

plusieurs termes via son navigateur Web, le serveur de requête (ou "Searcher") va interroger

l'index qui va par la suite lui retourner l'ensemble des documents correspondant à la requête.

9.3. Performance du moteur de recherche Nutch

L'un des critères les plus importants pour un moteur de recherche est le temps de réponse.

Lorsqu'un utilisateur lance une requête au serveur de requêtes, il attend une réponse quasi

immédiate. Il faut donc avoir :

◦ Une structure de données adaptée ;

◦ Un algorithme de traitement de la requête optimisé.

4. Cette approche est la méthode classique pour le crawling des sites web, nous verrons par la suite (dans le chapitre réalisation) les modifications apportées à Nutch pour optimiser son crawler en le couplant avec notre honeyclient.

- 30 -

Page 42: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

La structure de données évoquée est l'index. Il faut que la recherche dans celle-ci soit très

rapide.

Un deuxième critère important est la pertinence des résultats (documents) retournés par

rapport à une requête donnée. Contrairement à une base données, on ne demande pas d'avoir en

retour l'intégralité des documents correspondant à la requête mais ceux considérés comme

pertinents vis à vis de la requête.

9.4. Terminologies de Nutch

L'outil de crawling de Nutch permet de construire et de maintenir à jour plusieurs

structures de données importantes, comme la base de données du Web crawlé (crawldb), la base

de données des liens (linkdb), un ensemble de segments et l'index.

• La base de données du Web crawlé, ou crawldb, est une structure de données

représentant le graphe du Web des pages crawlées. Elle est utilisée pendant la phase de

crawl et d'indexation mais ne joue aucun rôle lors de la phase de recherche par un

utilisateur.

Elle contient toutes les informations concernant chaque page connu par le crawler,

comme le nombre de liens dans la page « outlinks », la date où le crawler devra de

nouveau récupérer la page et le score de la page. Ce dernier est une mesure pour

déterminer l'importance de la page, il est notamment basé sur le nombre de pages faisant

un lien vers celle-ci (idée de Pagerank de Google).

• La base de données des liens, ou linkdb, contient la liste des liens connus par le crawler.

Un lien est représenté par une page source, un texte et une page cible. Un segment est un

ensemble de pages récupérées (par le crawler) et indexées lors d'un seul lancement du

crawl.

• La fetchlist pour un segment est la liste des URLs que le crawler a récupéré et qui est

générée de la base de données du Web crawlé, vu précédemment. Les segments ont un

temps de vie limité, qui est par défaut à 30 jours. Lorsque les segments deviennent

obsolètes, ils doivent être re-crawler. Pour faciliter la maintenance, les segments sont

nommés par rapport à leur date de création. Par exemple, un segment créait le 16/04/2009

à 18h48 et 52 secondes aura comme nom : "20090416184852".

• Un segment est un répertoire avec plusieurs sous-répertoires :

✔ crawl generate : nom de l'ensemble d'urls récupérées ;

- 31 -

Page 43: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

✔ crawl fetch : contient l'état de récupération (si page inexistante ou redirigée par

exemple) pour chaque url ;

✔ content : contient le contenu de chaque url ;

✔ parse text : contient le texte parsé pour chaque url ;

✔ parse data : contient les liens et les métadonnées pour chaque url ;

✔ crawl parse : contient les liens de toutes les pages, il est utilisé pour la mise à jour.

Figure N°5 : Mode de fonctionnement du moteur de recherche Nutch

9.5. Le crawling avec Nutch

Comme nous l'avons vu précédemment, le crawler parcourt le graphe du Web en vue

d'indexer les pages rencontrées. Le graphe du Web est un graphe représentant la structure du

Web. Les nœuds seraient les pages Web est les arcs orientés seraient les liens hypertextes entre

les pages.

Étapes du crawling

L'action de crawler est un processus cyclique : le crawler génère un ensemble de

fetchlists à partir de la crawldb ; récupère le contenu téléchargé des pages de la fetchlist ; met à

jour la crawldb avec les nouveaux liens qu'il a trouvés ; et enfin génère un nouvel ensemble de

fetchlists (pour les liens qui n'ont pas été récupérés depuis une période donnée, y compris les

nouveaux liens trouvés dans le cycle précédent) et le cycle est répété.

- 32 -

Page 44: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

Figure N°6 : Processus cyclique du crawling

Les URLs avec le même nom de domaine sont toujours mis dans la même fetchlist et ceci

pour des raisons de politesse vis à vis des sites explorés. L'action de crawler étant multi-thread,

cela évite d'avoir plusieurs threads récupérant en même temps plusieurs pages sur le même site

et ainsi surcharger le serveur du site.

9.6. Systèmes de fichiers HDFS

HDFS (Hadoop Distributed Filesystem) est un système de fichiers distribué qui supporte

des applications distribuées à données intensives. Il était conçu pour supporter la distribution

pour Nutch. C’est une collection de bibliothèques de logiciels libres écrites en Java, utiles pour

créer des systèmes de fichiers distribués étendus. Il est capable d’enregistrer de gros fichiers

stores large files(taille multiple de 64MB) à travers plusieurs machines. Il a recours à la

réplication des données sur plusieurs nœuds. On précise trois nœuds, deux nœuds sur le même

support et le troisième dans un support séparé.

Hadoop est né du besoin de Yahoo! d'une solution de "grid computing" performante et

opensource. Il est maintenant utilisé par AOL, Facebook, Google, IBM, ImageShack, Last.fm...

Depuis janvier 2008, Hadoop est un projet top-level de la fondation Apache, puis il deviens un

sous-projet de Lucene. L'annexe 3 présentera en détail le système de fichier HDFS, ainsi que ces

principales caractéristiques.

10.Prise en main de Nutch

10.1. Installation

Nutch est un moteur de recherche écrit entièrement en JAVA, donc nous avons procédé

premièrement par une installation et configuration de l'environnement JAVA dans un système

d'exploitation GNU/Linux Ubuntu SE 9.04.

- 33 -

Page 45: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

Bien que Nutch tourne parfaitement en ligne de commande Shell, il dispose aussi d'une

interface graphique simple pour lancer la recherche à partir d'un navigateur web. Pour installer

cette interface graphique nous avons chois d'installer le générateur de servlet J2EE Apache

Tomcat.

Figure N°7 : Interface graphique par défaut de Nutch

10.2. Configuration

Pour optimiser le rendement du moteur de recherche Nutch, nous avons pensé à le

configurer de telle façon qu'il ne puisse crawler seulement les domaines des sites Hyperliens.

Cette configuration consiste essentiellement à éditer les fichiers :

• conf/nutch-site.xml et nutch-default.xml : pour configurer :

◦ L'agent du crawling : on va choisir l'agent par défaut : profondeur de l'arborescence

égale à 5, nombre de threads égale à 20 et nombre des sites à crawler à partir de

chaque Hyperliens est égale à 50,

◦ La taille de fichiers téléchargés est illimitée,

◦ Le nombre de mot indexés est illimité,

◦ Les plugins à prendre en considération : autrement dit, les types de fichiers à indexer.

- 34 -

Page 46: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 2 Étude sur les moteurs de recherche Open Source

◦ Le répertoire de l'indexe (ce répertoire est indispensable seulement pour une

recherche à partir de l'interface graphique).

• conf/crawl-urlfilter.txt : ce fichier permet la limitation du crawling seulement dans les

domaines des sites Hyperliens. Dans ce fichier, nous avons indiqué pour chaque site, son

domaine. Par exemple, pour le site http://www.apache.org/ le domaine du crawling est :

+^http://([a-z0-9]*\.)*apache.org/

Le premier annexe présente tous les détails d'installation et de configuration du moteur de

recherche Nutch ainsi que la possibilité de son intégration avec le moteur de recherche Solr pour

bénéficier de la recherche avancée.

11. Conclusion

Dans ce chapitre nous avons essayé de présenter les moteurs de recherche Open Source,

et suite à notre choix technologique, nous avons détaillé le mode de fonctionnement du moteur

de recherche Nutch et nous avons procédé à une installation et configuration de base pour ce

moteur de recherche.

Le chapitre suivant sera consacré à une étude sur les honeyclients à haute et à faible

interaction.

- 35 -

Accepter tous les sites commençant par : http://Par exemple, les sites commençant par https:// ne seront pas acceptés.

Accepter tous les sites commençant par des caractères alphanumériques, puis un point, et se terminent par apache.orgPar exemple : http://wiki.apache.org/

Accepter toutes arborescences du sitePar exemple : http://www.apache.org/lucene/

Page 47: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

CHAPITRE 3

Étude sur les clients Honeypots

1. Introduction

La sécurité informatique demeure une des grandes préoccupations des responsables des

systèmes d’information. Pour faire face aux nombreuses attaques sur ces systèmes, plusieurs

mécanismes ont été mis en œuvre à savoir les détecteurs d’intrusion, les firewalls, les antivirus,

pour ne citer que ceux ci.

Mais aujourd’hui ces mécanismes sont contournés par les nombreux pirates présents sur

internet. C’est pourquoi de nouvelles voies ont été inspectées afin de mieux assurer la sécurité

des systèmes. Les honeypots ou plus précisément les Honeyclients font partie de cette vague. Il

s’agit d’une ressource de l’architecture de sécurité dont l’objectif est la détermination des

malwares injectés par les pirates dans les sites web afin de déterminer les sites vulnérables et

pouvoir par la suite faire des statistiques sur les cibles des bidouilleurs et prendre les mesures

nécessaires pour renforcer leurs sécurité.

Le présent chapitre a pour but de définir les Honeypots et les honeyclients et de présenter

l'architecture du honeyclient Monkey-Spider qui permet de scanner les sites internet et par la

suite, la recherche des sites malveillants.

2. Honeypots

« All warfare is based on deception »« Toute guerre est fondée sur la tromperie »

Sun Tzu [12]

La tromperie est une technique utilisée pour piéger les criminels non seulement dans les

enquêtes criminelles mais aussi dans la sécurité informatique.

Comme dans le monde réel, l'une des méthodes les plus fiable pour mettre la main sur les

attaquants sans s'exposer à aucun risque, c'est d'essayer de créer un environnement similaire à

- 36 -

Page 48: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

l'environnement réel et de tromper les attaquants avec cet environnement virtuel.

2.1. Définition

Un Honeypot (en français pot de miel) est un dispositif (programme, machine virtuelle,

serveur) de tromperie qui permet la détection des attaques web. Il sert à attirer les pirates en les

faisant croire qu'il peuvent exploiter une vulnérabilité système, ainsi prendre le contrôle d'une

machine cible. Les Honeypots permettent la prise de conscience sur la réalité des menaces

provenant d'Internet, ainsi que la prise de toutes les précautions nécessaires pour protéger notre

réseau et l'amélioration de la protection des ressources.

Un Honeypot permet en premier lieu la surveillance de tout le trafic réseau circulant à

travers la machine contenant le Honeypot, ainsi que la journalisation de tous les évènements dans

ce réseau. En plus de la surveillance, les Honeypots permettent la collecte d'information grâce à

des outils appelés « renifleurs » qui étudient les paquets présents sur le réseau et stockent les

évènements dans des bases de données. Enfin, les Honeypots permettent l'analyse des

informations recueillies; et c'est grâce à ces analyses que nous pourrons découvrir les

défaillances du réseau à protéger et les motivations des pirates.

2.2. Fonctionnement

La stratégique d'un honeypot se compose essentiellement de deux parties :

1- Comme dans le monde réel « une porte ouverte peut séduire un saint », sur ce concept

se base la première partie de la stratégie de ces Honeypots. En effet, cette phase consiste à la

mise en place d'une machine Honeypot (généralement des machines virtuelles). Ces machines, et

en fonction du besoin de la société, doivent contenir des failles (volontairement laissées sans

correction) qui servent comme appâts pour les pirates. Cette première phase du fonctionnement

d'un Honeypot permet d'attirer les pirates et de simuler un environnement virtuel similaire aux

environnements réels.

2- La deuxième partie de la stratégie est la collecte de renseignements. Une fois qu'un

intrus exploite une faille, celle ci sera examinée pour relever les méthodes d'intrusion utilisées

par cet intrus. Ces renseignements peuvent être utilisés pour construire des contre-mesures

spécifiques aux techniques des intrusions.

- 37 -

Page 49: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

3. Honeyclients

3.1. Définition

Les Honeypots ou Pots de miel sont des dispositifs de sécurité (généralement des

serveurs ou de dispositifs qui exposent les services du serveur) qui attendent passivement les

attaques, alors que les Client honeypots sont des dispositifs de sécurité qui permettent la

recherche de serveurs malveillants qui attaquent les clients. Ces honeyclients se comportent

comme étant des clients qui interagissent avec les serveurs pour déterminer si une attaque pourra

avoir lieu en consultant ces serveurs.

Il y a plusieurs termes qui sont utilisés pour décrire les Client Honeypots. Outre le Client

Honeypot qui est la classification générique, Client Honeypots est l'autre terme qui est

généralement utilisé et accepté. Cependant, il y a une subtilité ici, en tant que Honeyclient qui

pourrait faire référence à la première application Client Honeypots open source. Dans tout ce que

nous allons exposé dans notre travail, Client Honeypots fera référence bien évidemment à la

technologie et non pas à une application.

Un client pot de miel comporte trois composantes : La première c'est un « crawler »

(explorateur) qui possède une liste de sites et qui parcoure ces sites pour télécharger les pages

qu'ils contiennent. La deuxième composante est un outil qui permet la détections des malwares

et/ou des attaques web, il est responsable de déterminer si une attaque a eu lieu sur le

Honeyclient. Enfin, un client pot de miel comporte un outil d'analyse des malwares et d'attaques

trouvées.

HoneyPot HoneyclientFigure N°8 : Honeyclient vs Honeypot

En plus de ces éléments, les clients pots de miel sont généralement équipés d'une sorte de

stratégie interdisant les pirates pour ne pas aller au-delà de la machine du Honeyclient. Cela est

- 38 -

Page 50: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

généralement réalisé par l'utilisation de pare-feu et de bacs à sable de la machine virtuelle.

Comme les Honeypots, les Honeyclients sont principalement classés selon leur niveau

d'interaction: élevée ou faible (high-interaction ou low-interaction).

3.2. Honeyclients à haute interaction

Les Honeyclients à haute interaction sont des systèmes comparables à de véritables

systèmes réels avec de vrais clients. Les attaques contre les Honeyclients à haute interaction sont

détectés par l'inspection de l'état du système après interaction avec un serveur cible de ce test. La

détection de changements (présence d'un nouveau fichier ou d'un fichier modifié) sur la machine

Honeyclient peut indiquer tous types d'attaques, même les attaques « zero days ».

Les Honeyclients à haute interaction sont très efficaces pour détecter les attaques

inconnues sur les clients. Toutefois, le compromis de cette précision est un coup aux

performances du système qui doit être suivi afin de faire une évaluation de l'attaque. Aussi un

inconvénient majeur des Honeyclients à haute interaction c'est la lenteur de l'analyse du réseau

ce qui leur empêche d'analyser un grand nombre de sites.

3.3. Honeyclients à interaction faible

Les Honeyclients à faible interaction diffèrent des Honeyclients à haute interaction dans

la mesure où ils n'utilisent pas l'ensemble d'un système réel mais plutôt ils utilisent des clients

légers ou simulées pour l'analyse des sites. Les réponses des serveurs sont directement examinés

afin de déterminer si une attaque a eu lieu. Cela pourrait être fait, par exemple, en examinant la

réponse (présence de chaînes de caractères malicieux ou un tel malware (virus, espion, ver, etc)).

Les Honeyclients à faible interaction sont plus faciles à déployer et à exploiter que les

Honeyclients à haute interaction et sont aussi de meilleures performances. Toutefois, ils sont

susceptibles d'avoir un taux de détection plus bas par rapport à leurs équivalent à haute

interaction (les nouvelles attaques « zero day » sont susceptibles de passer inaperçues). Ils

souffrent également du problème de la fraude par les exploits qui peut être aggravée en raison de

leur simplicité et ce qui rend plus facile pour un exploit de détecter la présence du Honeyclient.

- 39 -

Page 51: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Faible interaction Haute interaction

Honeypot Simulation des systèmes et des services. De vrais systèmes et services.

Honeyclient Simulation des clients et des systèmes Web. De vrais clients et systèmes Web.

Avantages • Très rapide.• Ne consomme pas beaucoup de ressources.• Multithread et multi-système.• Extensible.

•Détection des exploits « zero day ».•Analyses détaillées des attaques.•Un environnement réel de détection

d'intrusions.

Inconvénients •Ne détecte pas les exploits « zero day » • Très lent dans l'analyse des attaques.• Lourde dans le chargement.• architecture complexe et peu extensible.

Tableau N°3 : Faible interaction vs Haute interaction

4. Comparaison entre les Honeyclients

4.1. Honeyclients à haute interaction

4.1.1. Capture-HPC

Capture-HPC est un Honeyclient à haute interaction développé dans un cadre

universitaire par des chercheurs de l'Université Victoria de Wellington, Nouvelle-Zélande.

Capture-HPC est une technologie de sécurité permettant la détection des malwares sur un réseau,

il est caractérisé principalement par sa rapidité (par rapport aux autres Honeyclients à haute

interaction) et la détection des malwares utilise des Snapshots pour l'analyse des changements

d'état de la machine suite à une attaque par un malware en temps réel. Si l'état du système est

modifié, alors qu'aucune autre activité n'est en cours sur la machine qui contient le honeyclient,

alors le serveur avec lequel Capture-HPC communique est classé comme hostile.

En plus, capture-HPC peut être utilisé comme un serveur central capable de surveiller de

nombreux clients à travers un réseau. Cette surveillance permet d'observer le système de fichiers,

la base de registre et les processus système au niveau noyau.

Enfin, Capture-HPC est un honeyclient qui permet d'utiliser différents clients. La version

initiale prenait en charge seulement Internet Explorer, mais la version actuelle prend en charge

pratiquement tous les navigateurs (Internet Explorer, Firefox, Opera, Safari) ainsi que d'autres

applications client HTTP courantes telles que les applications de bureau et de médias.

- 40 -

Page 52: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

4.1.2. Honeyclient

HoneyClient est le premier client honeypot à haute interaction open-source. Il est conçu

pour les navigateurs web (Internet Explorer / Firefox) par Kathy Wang en 2004 et par la suite il a

été adapté et développé par MITRE.

Un mélange de Perl, C++ et Ruby, HoneyClient est fondé sur l'état et détecte les attaques

sur les clients Windows en contrôlant les fichiers, les processus des événements et les entrées de

registre. Il a intégré capture-HPC pour vérifier, en temps réel, l'état de la machine serveur

contenant le Honeyclient.

HoneyClient contient aussi un robot d'exploration, de sorte qu'il puisse initier sa

recherche à partir d'une liste d'URL et continuer par la suite sans parcourir des sites Web à la

recherche d'un code malveillant.

4.1.3. HoneyMonkeyStrider HoneyMonkey est un projet de recherche de Microsoft pour détecter et analyser

les malwares existants sur internet. Basé sur le projet Honeynet, il est constitué d'un réseau de

machines virtuelles sous Windows XP à différents stades de mises à jour de sécurité qui surfent

de façon aléatoires sur Internet, surtout sur les sites Web d'hébergement de code malveillant dans

le but de contaminer ces machines par des failles qui ne seraient pas encore divulguées chez

Microsoft et qui profiteraient pour le moment à des développeurs peu scrupuleux qui

préféreraient garder les failles pour leur profit personnel.

Contrairement au honeypot traditionnel et sa relative passivité, à savoir un ensemble de

machines vulnérables qui attendent d'être attaquées dans le but d'attirer et piéger les pirates,

l'attitude adoptée par HoneyMonkey est dite proactive : elle permet d'analyser automatiquement

les serveurs Web et de tirer parti de la moindre vulnérabilité connue ou pas, affectant notamment

un système Windows, ainsi elle permet de détecter les malwares 0-day.

Preuve d'efficacité de cet outil, au cours de tests menés par Microsoft, HoneyMonkey

aurait identifié 752 URLs uniques appartenant à 287 sites représentant une menace pour les

utilisateurs d'Internet Explorer dans un environnement Windows XP en été 2005. Toujours dans

le cadre de cette première expérimentation, une vulnérabilité encore non rendue publique (0-day)

aurait été détectée et divulguée.

- 41 -

Page 53: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Le réseau de machines virtuelles, fonctionnant sous Windows XP à différents niveaux de

patchs, constituants HoneyMonkey est un programme automatisé qui tente d'imiter l'action des

utilisateurs qui surfent sur le net. Une fois une machine quitte un site, elle sera analysée pour

déterminer si un programme malveillant a été chargé, ainsi un changement dans une machine

non connu sera déclaré comme une attaque 0-day. L'exploration se base sur une liste initiale de

sites connus comme hébergeurs de logiciels malveillants et après visite de chaque site la machine

enregistre tous changement de son état système, puis elle redémarre dans un état initial en cas de

détection de malwares.

4.1.4. UW Spycrawler

Le UW Spycrawler développé à l'Université de Washington est un honeyclient à haute

interaction élaboré par Alexendre Moshchuk en 2005. Ce honeyclient est destiné pour les

navigateurs Mozilla Firefox et Internet Explorer.

UW Spycrawler est basé sur les événements et l'analyse de l'état du système et permet de

détecter les attaques sur la machine par le contrôle des fichiers, des processus, des registres et

des fichiers temporels du navigateur Firefox.

L'inconvénient majeur de cette honeyclient c'est le manque de documentation et aussi la

non disponibilité pour le téléchargement.

4.1.5. Web Exploit Finder

Web Exploit Finder est un système automatisé de détection de malware dans un

environnement virtualisé, développé par Thomas Müller, Benjamin Mack et Mehmet Arziman,

en 2006. Géré avec une interface Web, il permet aux utilisateurs de contrôler et surveiller le

système en partant d'une liste d'URL que le système doit contrôler. (un crawler peut être utilisé

pour explorer les sites Web). Ensuite, il visite l'URL dans un bac à sable, via un bac à sable mis

en œuvre en tant que image guest dans une machine virtuelle VMware Server. Cette procédure

peut être répétée n fois, selon le nombre de machines virtuelles de Windows XP utilisés pour

vérifier les URL simultanément. Cela dépend aussi de la performance du système hôte VMware.

Les images virtuelles sont enregistrées et amorcées par l'intermédiaire du Vmware Server.

Une fois le processus de démarrage est terminé, un Snapshot (capture instantanée) sera enregistré

pour chaque machine virtuelle et, après visite des sites, les machines seront comparées avec les

Snapshots enregistrés. En utilisant cette technique, le système peut faire une restauration rapide

- 42 -

Page 54: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

vers un état sein une fois que le système est infecté.

Web Exploit Finder est un honeyclient à haute interaction open source développé dans un

cadre universitaire, et racheté par la suite par Xros.

Capture - HPC HoneyClient HoneyMonkey Spycrawler Web Exploit Finder

Licence Logiciel LibreGPLv2

Logiciel LibreGPLv2

Propriétaire Propriétaire Logiciel LibreGPLv2

destination Tous les naviagteurs

Internet explorerFireFox

Internet explorer Internet explorerFireFox

Tous les naviagteurs

Outil d'analyse des malwares

Son propre outil Son propre outil Strider Tools FDR, GB, GK

Lavasoft AdAware

Son propre outil

Date de première version

2006 2004 2005 2005 2006

Version actuelle 2.5.12 Septembre 2008

1.0.2 Pas commercialisé

Pas commercialisé

2.029 Octobre 2007

Système d'exploitation

Multi OS Windows Windows Windows Virtualisation de Windows XP

Développeur Université de Welington

Mitre Microsoft Research

Université de Washington

Université de Hochschule der

Medien - Stuttgartet XNOS

Leader du projet Christian Seifert Kathy Wang -- Alexander Moshchuk

Thomas Müller Benjamin Mack

Mehmet Arziman

Site web https://www.client-honeynet.org/captu

re.html

http://www.honeyclient.org/trac

http://research.microsoft.com/en-

us/um/redmond/projects/strider/hone

ymonkey/

http://www.lavasoft.com/products/ad_aware_free.php

http://www.xnos.org/security/web-exploit-finder/

Tableau N°4 : Comparaison entre les honeyclients à haute interaction

4.2. Honeyclients à faible interaction

4.2.1. SpyBye

SpyBye est un outil pour aider les administrateurs de sites Web à déterminer si leur pages

Web peuvent infecter leurs visiteurs. C'est un outil qui ne permet pas de protéger les utilisateurs,

par contre c'est juste un moyen préventif sur risques qui peuvent avoir lieu en consultant

quelques sites et de prendre des précautions raisonnables pour éviter l'infection pendant la visite

des sites.

- 43 -

Page 55: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Comment SpyBye travaille? SpyBye fonctionne comme un proxy HTTP et permet de

surveiller tout le trafic web récupéré par le navigateur d'internet. Il applique des règles très

simples à chaque URL récupérée à la suite du chargement d'une page Web. Ces règles nous

permettent de classer un site Web en trois catégories: sans danger, inconnu ou dangereux. Ainsi

les administrateurs peuvent travailler sur les URLs classées comme dangereuses ou inconnues et

de déterminer si elles doivent être là ou non. Si une URL récupéré n'est pas celle attendue par

l'administrateur alors c'est une bonne indication que cette page a été introduite par un pirate.

Depuis la version 0.2, SpyBye a changé de licence libre pour migrer vers la GLP après

avoir été sous une autre licence libre (la BSD).

4.2.2. HoneyC

HoneyC est un honeyclient à faible interaction qui permet d'identifier des machines

hostiles sur Internet. Plutôt que d'utiliser un système d'exploitation et un client pour effectuer

cette tâche (qui est déjà faite par les clients à forte interaction comme HoneyMonkey ou

Honeyclient), HoneyC utilise des clients émulés1 qui sont capables de demander autant de

réponses que nécessaires à un serveur pour analyser les contenus hostiles.

HoneyC se compose de trois éléments: file d'attente, visiteur, et moteur d'analyse:

• La file d'attente est le composant chargé d'explorer les sites internet et de chercher les

nouvelles URLs pour préparer une liste de sites à visiter par le visiteur.

• Le Visiteur est l'élément responsable d'interagir avec le serveur. Il fait une demande au

serveur et reçoit la réponse pour l'analyser avec le moteur d'analyse.

• Le moteur d'analyse est le composant chargé d'évaluer si les politiques de sécurité ont été

violés après l'interaction du visiteur avec le serveur. Ainsi plusieurs méthodes de

recherches ou algorithmes d'analyse sont appelées pour analyser les réponses des

serveurs. Essentiellement les serveurs malveillants sont détectés par l'examen de la

réponse du serveur par le biais d'un système de détection d'intrusion Snort.

1 Alors que les honeyclient à haute interaction explorent le web avec de vrais navigateurs (Internet Explorer, firefox, etc) et effectuent l'analyse

de l'exploitation avec des outils agissants directement sur les vrais systèmes (comme la surveillance des changements au système de fichiers, la

configuration et la liste des processus), HoneyC fait appel à des émules de clients (par exemple: wget pour émuler Internet Explorer) et le moteur

d'analyse qui pourraient faire usage d'un algorithme d'autres OS que d'inspection par l'État (par exemple correspondant à la signature).

- 44 -

Page 56: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

4.2.3. HoneyD

HoneyD est un Honeyclient open source à faible interaction. Il permet d’intégrer des

machines virtuelles sur un réseau dans le but de détecter toutes activités illégales sur le réseau.

La règle principale étant que toutes connexions sur une machine virtuelle sont considérées

comme une intrusion potentielle.

Complet et simple d'utilisation grâce à ses fichiers de configuration, HoneyD a été

développé sur un grand nombre de plateformes (Unix/Linux, Solaris, Windows, BSD) et permet

de simuler tous types de machines sur un réseau: serveurs, PC, routeurs, etc. Nous pouvons

configurer un serveur pour qu'il fonctionne sous différents systèmes d'exploitation et faire

tourner des services (FTP, HTTP, etc.) qui sont en réalités émulés grâce à des scripts écrits en

Perl, python ou même des scripts Shell. Enfin HoneyD peut simuler des milliers2 [13] d'hôtes

virtuels en même temps. Ce qui permet de dissuader les adversaires en cachant de véritables

systèmes au milieu de systèmes virtuels.

SpyBye HoneyC HoneyD Monkey-Spider

Licence Logiciel Libre GPLv2

Logiciel LibreGPLv2

Logiciel LibreGPLv2

Logiciel Libre GPLv3

destination Tous les navigateurs crawler HTTP, FTP, etc crawler/émail

Outil d'analyse des malwares

ClamAV Snort Libevent, libpcap, libnet, arpd

(packages sous linux)

ClamAV

Date de première version

2007 2006 2003 2006

Version actuelle 0.309 Juin 2007

1.2.013 Septembre 2008

1.5c27 Mai 2007

0.223 Mars 2009

Système d'exploitation

Multi OS Multi OS Unix/linux BSD et windows avec cyguin

Multi OS

Développeur Niels Provos Université de Welington - Nouvelle-Zélande

Niel Provos Université de Mannheim

Leader du projet Niels Provos Christian Seifert Niel Provos Ali Ikinci

Site web http://www.spybye.org/ https://projects.honeynet.org/honeyc

http://www.honeyd.org/ http://monkeyspider.sourceforge.net/

Tableau 5 : Comparaison entre les honeyclients à faible interaction

2 Honeyd est un honeyclient qui crée des hôtes virtuels sur un réseau, il a été testé avec succès avec 65536 hôtes virtuels sur un réseau LAN.

- 45 -

Page 57: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

5. Choix technologique

Assurant à la fois la simplicité, la fiabilité et la rapidité, notre objectif était de mettre en

place une solution nous permettant de scanner les sites internet Tunisiens. Le choix de départ se

limitait sur les Honeyclients open source et suite à notre étude comparative sur les Honeyclients,

Monkey-Spider représente une solution idéale pouvant répondre à notre besoin. En effet,

Monkey-Spider est un Honeyclient open source à faible interaction simple à utiliser et fiable

avec code source (écrit en Python) compréhensible et modifiable. Cette solution nous permet de

déterminer les sites contaminés qui seront enregistrés par la suite dans une base de données ainsi

que toutes informations relatives aux malwares trouvés.

6. Étude sur le Honeyclient Monkey-Spider

6.1. IntroductionLes honeypots sont utilisés pour collecter des informations en vue d’apprendre les

techniques, les méthodes récentes et les motivations des hackers (pirates). C'est dans ce sens que

Monkey-Spider nous permet de collecter des informations sur les malwares présents dans nos

sites tunisiens et ainsi avoir une idée sur les cibles des pirates.

Monkey-Spider est un client honeypot (Honeyclient) à faible interaction open source

disponible sous licence GPLv3 depuis le 23 mars 2009. C'est une solution :

• Performante

• Modulaire et extensible

• Multi-processus (Multithreads)

• Simple et facile à utiliser

6.2. Architecture

Ensemble de scripts écrits en Python et basé sur l'interaction de plusieurs outils open

source, le principe de Monkey-Spider est assez simple, il permet en premier lieu d'analyser des

sites en les aspirant par un crawler et les scannant ensuite par un antivirus. Par la suite, si un

malware est détecté dans un site web, il sera automatiquement ajouté à la base de données.

- 46 -

Page 58: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Figure N°9 : Architecture simplifié de Monkey-Spider

6.3. Composantes de Monkey-Spider

6.3.1. Scripts de Monkey-Spider

Le code source de Monkey-Spider est constitué de plusieurs scripts dont principalement

trois que nous allons utiliser dans notre projet :

• ms-processfolder.py : C'est le main-script (script principal) qui permet de tester

l'existance de fichiers .ARC dans le dossier passé en paramètre pour ce script. Il fait appel

à ms-extract-arc.py puis à ms-scanner-clamav.py.

• ms-extract-arc.py : Ce script permet d'extraire et de convertir les fichiers .arc.gz

contenant du code MHTML [14] en fichiers web et multimédia (HTML, images, flash,

PDF, etc).

• ms-scanner-clamav.py : C'est avec ce script que nous allons scanner les fichiers

résultants de l'extraction des fichiers ARC. Un enregistrement de tout site hébergeant un

code vulnérable sera effectué automatiquement suite à la détection d'un malware.

6.3.2. Heritrix

6.3.2.1. PrésentationHeritrix est un robot d'exploration (crawler) conçu et utilisé par Internet Archive pour

l'archivage du web. C'est un logiciel libre sous licence « GNU Lesser GPL » programmé en

langage Java. Son interface principale est accessible depuis un navigateur web, mais un outil en

ligne de commandes peut aussi être optionnellement utilisé pour lancer l'indexation.

Heritrix a été développé conjointement par Internet Archive et les Bibliothèques

- 47 -

Page 59: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Nationales Nordiques en 2003. Sa première sortie officielle a eu lieu en janvier 2004 et il a

depuis été continuellement amélioré par les membres d'Internet Archive et par des tiers

intéressés.

Hautement configurable, Heritrix permet le crawling des sites internet à partir d'une liste

de sites initiale, ces sites seront par la suite compressés et enregistrés dans des fichiers ARCs.

Depuis des années, plusieurs organisations et bibliothèques nationales [15] utilisent

Heritrix, parmi lesquels :

• La Bibliothèque Universitaire Nationale d'Islande.

• La Bibliothèque Nationale de Nouvelle-Zélande.

• Bibliothèque et Archives Canada.

• La Bibliothèque Nationale d' Australie : ~190 millions URLs, ~6.7 TB non compressés et

4.5TB compressés.

• La Bibliothèque nationale de France : 13 machines, ~100 millions URLs, ~3TB

compressés.

• US National Archives (NARA) : 5 machines, ~75 millions URLs, ~6.5 TB compressés.

6.3.2.2. Caractéristiques

• Très grande capacité d'exploration.

• Automatisation des tâches.

• Hautement configurable.

• Extensible.

• Exploration en continu.

• détection automatique du changement des pages web.

• Solution distribuée sur plusieurs machines.

• Écrit entièrement en JAVA

• Multithread.

• Gérable à partir d'une interface graphique

- 48 -

Page 60: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Figure N°10 : Interface de Héritrix pour la gestion des jobs

6.3.2.3. Fichiers .ARC

Par défaut, Heritrix enregistre les ressources qu'il collecte dans un fichier Arc compressé,

format qu'Internet Archive [16] utilise depuis 1996 pour stocker ses archives. Heritrix peut

également être configuré pour stocker les fichiers dans un format de répertoire similaire au robot

d'indexation Wget, qui nomme le répertoire et le fichier de chaque ressource d'après son URL.

Dans le format Arc, de multiples ressources archivées sont stockées dans un seul fichier,

afin d'éviter d'avoir à gérer un grand nombre de petits fichiers. Un fichier consiste en une

séquence d'enregistrements d'URL, chacun étant accompagné d'une en-tête contenant des

métadonnées à propos de la manière dont la ressource a été demandée, de l'en-tête HTTP, et du

code de la réponse. La taille d'un fichier Arc peut atteindre 600 Mo.

Pour des raisons de limitation de la taille de la mémoire RAM du serveur, nous avons

choisi de limiter la taille des fichiers ARC à 100Mo.

Lors de la création des fichiers ARC, heritrix utilise le format de nomination suivant :

<IAH>-<DATE_TEMPS_DE_LA_TACHE>-<NUMERO_DU_FICHIER>-<NOM_DE_LA_HOTE>.arc.gz

- 49 -

Page 61: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

6.3.3. ClamAV

6.3.3.1. PrésentationL'explosion du nombre de connexions Internet ces dernières années a entraîné une

explosion des attaques virales en tous genres infectant un très grand nombre d'ordinateurs de par

le monde. Le phénomène des virus n'est bien évidemment pas nouveau et les plus anciens se

souviendront de l'époque où les ordinateurs s'infectaient à partir de disquettes, période où le web

ne faisait pas partie du quotidien de nos ordinateurs. Aujourd'hui, sans prendre un minimum de

mesures de précautions, chaque ordinateur connecté à internet se trouve vite infecté de virus et

autres malwares... L'antivirus fait partie des outils indispensables pour se connecter sans danger

sur internet.

ClamAV est principalement utilisé pour détecter les virus attaquant les systèmes

Windows qui sont de loin les plus menacés. Néanmoins, Clam antivirus est un antivirus très

puissant qui s'installe bien sur windows que sur les systèmes GNU Linux, Unix et même MacOS.

Basé sur le projet OpenAntivirus, cet antivirus détecte à l’heure actuelle plus de 575 649 virus

[17] et ses mises à jours sont quotidiennes.

Disponible sous Linux en interface (ClamTK) et en ligne de commande avec la

commande clamscan, il nous permet de bénéficier d'une légèreté incomparable avec le reste des

antivirus. Les mises à jours, quand à elles, s’effectuent très simplement par la commande

freshclam.

6.3.3.2. Fiche Technique et caractéristiques

◦ Licence : GNU GPLv2

◦ Plateformes : Windows (ClamWin et ClamMail), Linux/Unix (ClamTK pour GTK et

KlamAV pour KDE), MacOS (ClamXAV)

◦ Mises à jours quotidiennes,

◦ Site Web : http://www.clamav.net/

◦ Dernière version : 0.95.2

◦ Développeur : Tomasz Kojm puis racheté en 2007 par Sourcefire

◦ Très léger et très performant

- 50 -

Page 62: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

6.3.3.3. PerformanceDisposant dans sa base de signature plus de 575 000 signatures de virus [17], ClamAV

fait partie des antivirus les plus performants. En effet, dans une étude comparative sur 10

antivirus faite le 09 aout 2007 par LinuxWord, montre bien les performances de ClamAV qui se

pointe en deuxième place après Kaspersky et devant Norton AntiVirus.

Figure N° 11 : Étude sur la performance de ClamAV

6.4. PostgreSQL

A l'origine POSTGRES était un projet de recherche en base de données dirigé par le

Professeur Michael Stonebraker de l'Université de Berkeley. Sa fonction principale était de

fournir une plate-forme de test pour l'implémentation de nouvelles idées dans la recherche en

matière de base de données. En 1994, Andrew Yu et Jolly Chen ont ajouté le langage SQL à

POSTGRES et à partir de 1996, un nouveau nom, PostgreSQL, fut choisi pour refléter la relation

entre le POSTGRES originel et les versions plus récentes supportant SQL.

Aujourd'hui, PostgreSQL s'appuie sur le modèle relationnel mais apporte plusieurs

extensions telles que les classes, l'héritage, les types de données utilisateurs (tableaux, structures,

listes...), les fonctions, portable sur plus de 20 environnements depuis la version 6.4, etc. Cela

permet de qualifier PostgreSQL de système de gestion de base de données de «relationnel-objet»

(SGBDRO).

- 51 -

Page 63: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Caractéristiques

• Déploiement illimité : déploiement sur plusieurs serveurs avec autant de CPU.

• Excellent support : Le support assuré par la communauté PostgreSQL est excellent et

gratuit. De plus, de nombreuses SSLL peuvent offrir un contrat de support formel sur

mesure.

• Économies significatives sur les coûts de personnel : PostgreSQL nécessite beaucoup

moins de maintenance et de paramétrage que les grandes bases de données commerciales,

tout en proposant la plupart de leurs fonctionnalités et surtout la fiabilité et les

performances que l'on attend d'un tel produit. Contrairement à beaucoup de bases de

données commerciales, PostgreSQL ne nécessite pas de suivre plusieurs semaines de

formation, ni d’avoir un administrateur de bases de données à plein temps.

• Fiabilité et stabilité légendaires : Il est très courant que des sociétés rapportent que

PostgreSQL n'a jamais crashé, même pendant des années. Pas une seule fois. Tous les

SGBDR ne peuvent pas en dire autant. En particulier, PostgreSQL ne craint pas les

coupures électriques.

• Conçu pour une grande capacité : De par sa conception, PostgreSQL ne craint pas les

bases de données de grande taille ou ayant un grand nombre d’utilisateurs simultanés.

Plusieurs organisations l’utilisent pour des bases de données de plus d’un Teraoctet. Le

système mondial d’enregistrement des noms de domaine en « .org » est géré avec une

base de données PostgreSQL par Afilias [19].

• Outils graphiques de modélisation et d'administration : Plusieurs outils graphiques

existent pour administrer les bases de données. Citons pgadminIII, pgaccess,

phppgadmin, …

• Très bonne compatibilité SQL : Comme beaucoup d'outils Open Source, PostgreSQL met

un point d'honneur à suivre les normes et en particulier les normes SQL 92 et 99.

7. Prise en main de Monkey-Spider

Développé en Python, Monkey-Spider est un ensemble de scripts facilement installable

(soit par le script install.sh fourni avec monkey-spider, soit en déplaçant les scripts dans

/usr/bin/), mais pour le faire tourner, il est indispensable d'installer plusieurs outils

communiquant avec notre lui.

- 52 -

Page 64: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

Nous commençons tout d'abord par installer notre crawler Heritrix. Pour ce faire,

l'installation de l'environnement JAVA est indispensable puisque cet outil est lui aussi développé

en JAVA

Ensiute, pour faire lancer Héritrix il suffi d'aller dans son dossier et de taper dans un

terminal la commande :

./bin/heritrix -a admin -p 8070 -b 0.0.0.0

• -a admin :

◦ L'option « -a » nous permet d'attribuer un mot de passe pour tous les utilisateurs.

◦ Cette option est indispensable pour le fonctionnement de Heritrix.

• -p 8070 :

◦ L'option « -p » nous permet d'attribuer un nouveau port de connexion à l'interface

graphique de Heritrix (http://localhost:8070/).

◦ Par défaut le port utilisé par Heritrix est le 8080.

◦ Nous avons pensé à modifier le port de Heritrix pour éviter un conflit avec le port de

Apache Tomcat qui utilise par défaut l port 8080.

• -b 0.0.0.0 :

◦ L'option « -b » nous permet de spécifier les hôtes pouvant se connecter à l'interface

graphique de Heritrix.

◦ Par défaut, seule la machine locale « localhost » accède à Heritrix,

◦ L'adresse « 0.0.0.0 » permet la connexion de toutes les hôtes avec notre crawler.

◦ Cette option est indispensable lors d'une mise en place de Heritrix dans un serveur,

sinon, seule la machine serveur peut accéder à cet outil.

Pour facilité son utilisation, nous avons pensé à créer un job modèle. L'administrateur

dois juste le copier dans un nouveau job, attribuer la liste des sites « seeds » et le lancer.

Maintenant que notre crawler est bien configuré, nous passons à la suite des outils

indispensables pour le fonctionnement de Monkey-Spider. En effet, bien que l'environnement

Python est installé par défaut dans Ubuntu SE, MonkeySpider à besoin de trois autres

bibliothèques à savoir pygresql, soappy, pysearch.

Enfin, la détection des malwares nécessite l'antivirus ClamAV pour l'analyse des fichiers

- 53 -

Page 65: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 3 Étude sur les clients Honeypots

ARC, ainsi, les malwares seront enregistrés dans une base de données PostgreSQL, donc ces

deux outils sont aussi indispensables pour le bon fonctionnement de Monkey-Spider.

Pour la gestion des malwares et des sites infectés, nous avons pensé à développer une

interface accessible via le navigateur web, cette interface fera l'objet d'une analyse profonde dans

les chapitres suivants.

Le deuxième annexe présentera tous les détails d'installation et de mise en place de

Monkey-Spider.

8. Conclusion

Tout au long de ce chapitre, nous avons défini les honeypots. Nous avons présenté une

étude comparative sur honeyclients à faible et à haute interaction. Suite à notre choix

technologique, nous avons détaillé le fonctionnement de Monkey-Spider et nous avons procédé à

une installation et configuration de base pour cet Honeyclient.

Le chapitre suivant présentera l’analyse et l’étude des besoins, une étape primordiale dans

l’élaboration et la création de toute application.

- 54 -

Page 66: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 4 Analyse & spécification des besoins

CHAPITRE 4

Analyse & spécification des besoins

1. Introduction

La première étape dans le développement de toute application consiste à analyser les

besoins de base afin de bien dresser la liste des fonctionnalités qui devront être présentes dans le

système. Cette phase est impérative pour déterminer les possibilités de l’application. Le présent

chapitre s'intéresse à l'analyse des besoins et est composé de deux parties. La première est

consacrée à l’analyse des besoins fonctionnels et non fonctionnels de l’application. La deuxième

représente une identification des acteurs et des cas d’utilisation selon la méthodologie de

modélisation UML.

2. Analyse des besoins

2.1. Besoins fonctionnels

• Mise en place d'un moteur de recherche pour la recherche textuelle dans une base de sites

tunisiens : cette étape consiste à installer et configurer le moteur de recherche Nutch;

• Mise en place d'une solution de détection des malwares dans les sites tunisiens : cette

étape consiste à l'installation et la configuration d'un Honeyclient,

• Intégration des outils utilisés pour une optimisation temporelle et spatiale de notre

solution,

• Développement d'une interface de gestion des malwares trouvés, des sites Hyperlients et

des signatures des pirates,

• Personnalisation du moteur de recherche pour une recherche optimisée sur les malwares

et les sites piratés : cette étape consiste à modifier le code source de Nutch pour l'adapter

à nos besoins fonctionnels,

- 55 -

Page 67: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 4 Analyse & spécification des besoins

• Rédaction d'un manuel d'installation et d'utilisation pour tous les outils utilisés dans notre

projet,

• Test et évaluation de la solution : cette phase consiste à mettre en place la solution, la

tester, évaluer les résultats trouvés et apporter les améliorations nécessaires en cas de

besoin.

2.2. Besoins non fonctionnels

• Contrainte temporelle du temps d’exécution : vu le temps non négligeable de l’exécution

de l’outil, une bonne configuration du moteur de recherche pourrait être prise en

considération lors de l'installation.

• Les outils de développement doivent être tous open source et sous l’environnement

Linux.

• Utilisation de la base de données PostgreSQL (base utilisée dans la plus part des projets à

l'ANSI),

• Interface ergonomique.

3. Identification des acteurs et des cas d’utilisation

3.1. Identification des acteurs

Nous avons recensé deux types d’acteurs qui auront à interagir avec notre solution :

• L’utilisateur : cet acteur interagie avec l'interface graphique principale de notre système,

il a pour mission :

◦ la recherche (classique ou personnalisée) dans le moteur de recherche Nutch,

◦ La gestion des malwares trouvés, des sites Hyperliens et des signatures des pirates,

◦ L'administration de crawler Heritrix,

• L'administrateur : cet acteur interagira avec la console Terminal du système, il aura pour

mission :

◦ L'administration du moteur de recherche Nutch,

◦ L'administration du Honeyclient MonkeySpider,

◦ La mise à jour de l'antivirus ClamAV.

- 56 -

Page 68: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 4 Analyse & spécification des besoins

3.2. Identification des cas d’utilisation

3.2.1. Diagramme des cas d’utilisations pour l'acteur « utilisateur »

Figure N°12 : Diagramme des cas d’utilisations général pour l'acteur « utilisateur »

Description du cas d'utilisation :

La figure précédente illustre le diagramme d’utilisation générale de l'acteur

« utilisateur », cet acteur interagira avec :

• L'interface principale de notre moteur de recherche Nutch (page accueil) ainsi il pourra

faire une recherche classique sur les sites tunisiens, il pourra aussi interagir avec les

pages de recherche personnalisées de notre moteur de recherche :

◦ Recherche par site : cet écran permet la recherche textuelle (mot tapé à la main) dans

un site bien spécifique faisant partie de la listes des sites Tunisiens. Dans le cas où

l'utilisateur ne choisi aucun site, la recherche s'effectue dans tous les sites.

◦ Recherche dans les sites infectés : cet écran permet la recherche dans un site bien

spécifique faisant partie des sites infectés. De cette façon, l'utilisateur pourra

optimiser sa recherche en se limitant sur les sites infectés. Dans le cas où l'utilisateur

ne choisi aucun site, la recherche s'effectue dans tous les sites.

◦ Recherche par signatures des pirates : cet écran permet la recherche des sites

- 57 -

Page 69: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 4 Analyse & spécification des besoins

défaillés en choisissant comme mot à chercher une signature d'un pirate (choix de la

signature s'effectue à partir d'une liste « select »).

◦ Recherche par signatures des pirates dans les sites infectés : cet écran permet la

recherche des pirates dans un site infecté. Autrement dit, il permet la recherche du

pirate qui a attaqué le site infecté.

• L'utilisateur peut aussi accéder à l'interface de gestion des sites infectés, des signatures

des pirates ou la listes de tous les sites.

• Enfin, l'utilisateur pourra accéder à l'interface d'administration de Heritrix afin de

consulter les statistiques du crawling des sites tunisiens.

3.2.2. Diagramme des cas d’utilisation générale pour l'acteur

« administrateur »

Figure N°13 : Diagramme des cas d’utilisation général pour l'acteur « administrateur »

Description du cas d'utilisation :

La figure précédente illustre le diagramme des cas d’utilisation générale de l'acteur

« administrateur ». Cet acteur interagira avec les composantes principales de notre projet à savoir

le moteur de recherche Nutch, le Honeyclient Monkey-Spider, et le crawler Heritrix, il aura pour

mission aussi de mettre à jour l'antivirus ClamAV :

• Nutch : la mise à jour de la base de Nutch par deux méthodes :

◦ À partir des fichiers ARC crawlés par heritrix : nous avons développé un script pour

automatiser la conversion des fichiers ARC en segments compréhensibles par Nutch,

puis en index accessible par la recherche.

- 58 -

Page 70: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 4 Analyse & spécification des besoins

◦ À partir d'une liste des Hyperliens : c'est la méthode classique d'administration du

moteur de recherche Nutch. Dans ce cas, le crawling et l'indexation se font d'une

manière transparente vis à vis d'administrateur.

• Détecter les malwares avec Monkey-Spider : cet honeyclient est constitué principalement

par trois scripts python qui permettent de scanner les fichiers ARC crawlés par Heritrix,

puis en cas de découverte d'un malware dans un site infecté il sera ajouté à notre base de

données. L'administrateur doit simplement spécifier le répertoire des fichiers ARC à

scanner.

• Crawler les sites avec Heritrix : Une fois Heritrix est lancé, l'administrateur sera chargé

de :

◦ Gérer les Jobs en cour d'exécution (arrêter, pauser, ou supprimer les jobs).

◦ Supprimer les sites des Jobs.

◦ Ajouter de nouveaux Jobs.

• Mettre à jour ClamAV : un inconvénient majeur de l'antivirus est qu'il ne met pas à jour

sa base de signatures antivirus, c'est pourquoi l'administrateur est appelé à mettre

régulièrement ClamAV à jour.

4. Conclusion

Dans ce chapitre, nous avons présenté les exigences et les besoins du système et des

différents acteurs de ce système. Nous avons tout d’abord dégagé les besoins fonctionnels et non

fonctionnels auxquels devront répondre les différents outils à intégrer dans notre système. Nous

avons ensuite représenté ces besoins en spécifiant plus en détail les fonctionnalités attendues à

travers le diagramme des cas d’utilisation. Nous pouvons ainsi passer à la phase de conception

qui fera l’objet du prochain chapitre.

- 59 -

Page 71: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

CHAPITRE 5

Conception

1. Introduction

Après avoir défini la spécification du projet, la phase de conception vient pour mieux

l’éclaircir. En effet, la conception définit une démarche à suivre pour mettre en place un produit

robuste, fiable et évolutif. Nous commencerons dans une première section par la description des

choix conceptuels et nous détaillerons l’architecture générale de l’application. Ensuite, nous

entamerons la conception détaillée du système avec des schémas à l'appui. Ces derniers

expliciteront la manière avec laquelle a été conçu chaque module. .

2. Pourquoi la méthodologie UML

Face à la diversité des formalismes utilisés par les méthodes d’analyse et de conception

objet, UML constitue un réel facteur de progrès par l’effort de normalisation réalisé. En effet,

UML constitue une étape importante dans la convergence des notations utilisées dans le domaine

de l’analyse et de conception objet. Par ailleurs, l’adhésion à UML des grands éditeurs du

marché informatique montre bien l’intérêt qui est porté à cette norme dans le monde objet. Ses

capacités à organiser et à formaliser paraissent indispensables à toute démarche d’ingénierie et

de développement à base de composants. De plus, c’est un outil de notation, une source de

normalisation et un facteur de communication entre les acteurs d’un projet; UML permet de

penser en termes de réutilisation des éléments et de stabilité des modèles.

3. Détermination des diagrammes de séquence et d'activité

3.1. Définition

Un diagramme de séquence ou d'activité est une forme de diagramme comportemental qui

vous permet de spécifier les intéractions qui existent entre un groupe d’objets. Même si d’autres

- 60 -

Page 72: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

diagrammes comportementaux peuvent convenir, les diagrammes de séquence ou d'activité sont

les plus utilisés, principalement parce qu’ils permettent de voir comment les objets s’utilisent

mutuellement. Grâce à ces informations, nous pouvons déterminer plus précisément pourquoi

deux objets sont liés. Comme ils sont toujours lus du haut vers le bas, ils illustrent l’ordre dans

lequel les messages sont envoyés entre les objets.

Vu le nombre élevé des diagramme de séquences dans notre système, on va se limiter à

représenter les plus importants :

3.2. Diagramme de séquence détaillé pour « la recherche des signatures

des pirates dans les sites infectés »

Description

La description textuelle du diagramme de séquence détaillé pour la recherche des

signatures des pirates dans les sites infectés illustré par la Figure 14 est la suivante :

✔ Sommaire d’identification

Titre : Recherche des signatures des pirates dans les sites infectés.

But : La recherche des pirates qui ont attaqué un site infecté à travers leurs signatures

textuelles.

Résumé : pour la recherche d'un ou des pirates qui ont attaqué un site infecté, l'utilisateur

doit choisir en premier lieu le site infecté. Ensuite, il doit choisir soit toutes les signatures (dans

ce cas, le résultat de la recherche sera la détermination des pirates qui ont attaqué le site infecté),

soit une signature d'un pirate (dans ce cas, le résultat sera la vérification si le pirate a attaqué le

site ou non).

Acteurs : Utilisateur.

✔ Description des enchaînements

Pré-conditions : écran de recherche des signatures des pirates dans les sites infectés.

Enchaînement nominal :

1. L’utilisateur doit choisir en premier lieu le site infecté,

2. Choisir soit :

2.1. Toutes les signatures,

2.2. Une seule signature,

3. Valider par le bouton « chercher »

- 61 -

Page 73: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

Enchaînements alternatifs :

1. Erreur de connexion à la base de données : impossible d'importer la liste des sites.

2. Erreur de connexion à la base de données : impossible d'importer la liste des

signatures.

Besoins d’IHM : Écran de « recherche des signatures des pirates dans les sites infectés ».

Figure N°14 : Diagramme de séquence pour « la recherche des signatures des pirates dans les sites infectés »

- 62 -

Page 74: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

3.3. Diagramme de séquence pour « la connexion de Eurêka »

La description textuelle du diagramme de séquence détaillé pour connexion à l'interface

de gestion des sites infecté et de signatures de pirates « Eurêka » illustré par la Figure 15 est la

suivante :

Figure N°15 : Diagramme de séquence pour la connexion avec Eurêka

Description

✔ Sommaire d’identification

Titre : Connexion à Eurêka.

But : Accéder à l'interface de gestion des sites infecté et des signatures des pirates.

Résumé : Cet écran permet la connexion à Eurêka. Cette connexion s'effectue par

identification des utilisateurs ayant comme rôle « admin » dans la base de données.

Acteurs : Utilisateur.

✔ Description des enchaînements

Pré conditions : rien.

Enchaînement nominal :

1. Saisie de l'identifiant et du mot de passe,

2. Validation avec « Login ».

Enchaînements alternatifs :

2. Erreur d'authentification : Login ou mot de passe incorrect.

Besoins d’IHM : Écran de « connexion à Eurêka ».

- 63 -

Page 75: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

3.4. Diagramme de séquence pour « l'ajout d'une signature d'un pirate »

La description textuelle du diagramme de séquence détaillé pour l'ajout d'une signature

d'un pirate illustré par la Figure 16 est la suivante :

Figure N° 16 : Diagramme de séquence pour l'ajout d'une signature d'un pirates

- 64 -

Page 76: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

Description

✔ Sommaire d’identification

Titre : Ajout d'une signature d'un pirates.

But : Ajouter une signature d'un pirates.

Résumé : Cette écran permet l'ajout d'une signature d'un pirates, l'utilisateur doit en

premier lieu activer les champs de saisie des paramètres via le bouton « New ». Après saisie des

paramètres, il doit valider avec le bouton « Save ». Si l'ajout s'effectue sans erreur, cette

signature sera ajoutée à la liste des signatures, sinon un message d'erreur nous indique le type

d'erreur.

Acteurs : Utilisateur.

✔ Description des enchaînements

Pré conditions : connexion établie à Eurêka.

Enchaînement nominal :

1. Activation des champs de saisie avec « New ».

2. Saisie des paramètres de la signature.

3. validation avec « Save »

Enchaînements alternatifs :

3. Types ou format de paramètres incorrects.

3. Erreur d'intégrité de données : identifiant de la signature existe dans la base de

données.

Besoins d’IHM : Écran de « gestion des signatures ».

Les diagrammes de recherche, d'ajout, de modification et de suppression des malwares ou

des sites (infectés ou non infectés) sont similaires au diagramme d'ajout d'une signature d'un

pirate.

- 65 -

Page 77: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

3.5. Diagramme d'activité pour « la recherche des malwares avec

Monkey-Spider »

Figure N° 17 : Diagramme d'activité pour la recherche des malwares avec Monkey-Spider

- 66 -

Page 78: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 5 Conception

Description

La description textuelle du diagramme d'activité pour la recherche des malwares dans les

sites tunisiens avec Monkey-Spider illustré par la Figure 4 est la suivante :

✔ Sommaire d’identification

Titre : Recherche des malwares avec Monkey-Spider.

But : Chercher les malwares existant dans les fichiers ARC.

Résumé : Ce diagramme illustre la phase de recherche des malwares avec Monkey-

Spider, il permet d'extraire les fichiers ARC et de scanner leur contenu avec l'antivirus ClamAV.

Lors d'une découverte d'un malware, il sera ajouté à la liste des malwares ainsi que le site qui

l'héberge qui sera lui aussi ajouté à la liste des sites infectés.

Acteurs : Administrateur.

✔ Description des enchaînements

Pré conditions : Sites Web crawlés avec Heritrix sous format ARC.

Enchaînement nominal :

1. Via console : /usr/bin/ms-processfolder.py <répertoire_des_fichiers_ARC>.

1.1. Vérification d'existence de fichiers ARC

1.2. Extraction du contenu des fichiers ARC avec ms-extract-arc.py

1.3. Scan du contenu des fichiers ARC avec ClamAV

1.4. Si découverte d'un virus : enregistrement dans la base de données

1.5. Si plus de fichier ARC alors fin, sinon revenir à l'étape 1.2.

Enchaînements alternatifs :

1.1. Erreur : pas de fichier(s) ARC.

1.3. ClamAV n'est pas à jour, impossible de trouver les virus les plus récents.

1.4. Erreur : connexion impossible avec PostgreSQL.

Besoins d’IHM : pas d'interface IHM (via Terminal Shell).

4. Conclusion

Tout au long de ce chapitre, nous avons prévu une conception de notre application à

travers ses différents modules afin d’avoir une implémentation souple et facile à l’étape suivante.

Le chapitre suivant met en évidence les différents résultats de développement de cette

application.

- 67 -

Page 79: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

CHAPITRE 6

Réalisation et mise en place de la

solution

1. Introduction

Après avoir décrit la spécification et la conception de notre projet, ce chapitre vient

présenter l’environnement système pour la mise en place de la solution, les modification

apportés aux codes source afin d'améliorer le comportement des outils utilisés et enfin le

développement de l'interface de gestion des malwares et des sites infectés.

2. Installation et configuration du serveur

2.1. Pourquoi Ubuntu serveur 9.04 ?

Assurant à la fois la stabilité, la fiabilité et la facilité d'administration, Ubuntu fût l'un des

distributions GNU/Linux les plus utilisées dans le domaine de gestion des serveurs. Le choix de

la distribution est sans doute un débat sans fin mais voici quelques arguments qui mettent

Ubuntu SE en valeur pour une utilisation de type serveur :

– Facilité : Ubuntu dispose d’un système de gestion de paquets qui lui permet

d'installer les applications par simple lignes de commande. Il permet notamment la

mise à jour de l’intégralité de la distribution en quelques commandes.

En plus, lors de son installation, Ubuntu SE nous facilite énormément l'installation de

quelques serveurs tel que le serveur DNS, LAMP, OpenSSH, Samba, Tomcat, Mail,

etc.

- 68 -

Page 80: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

Figure N° 18 : Serveurs installés par défaut avec Ubuntu SE

– Stabilité : Ubuntu GNU/Linux est construit autour du noyau Linux de la même

manière que Debian, RedHat et les autres distributions. C’est sans aucun doute un

premier gage de stabilité mais ce n’est pas ce qui différencie Ubuntu. Ce qui fait

réellement la différence c’est la politique de release (sortie de version) adoptée. Bien

que cette politique soit souvent critiquée, (deux versions par an en avril et en

octobre), elle permet d’avoir une release stable appelé version LTS disponible tout les

deux ans (en avril des années paire, la version actuelle LTS est la 8.04, la prochaine

version sera la 10.04) qui est véritablement stable grâce à une longue période de tests

et de correction de bugs pour chacun des paquets intégrés. Cette politique ne permet

pas l’intégration rapide des applications récentes mais ce n’est sûrement pas d’une

grande nécessité pour une machine orientée serveur. Notons que les paquets, même

s’ils ne sont pas toujours très récents, bénéficient de mises à jour de sécurité très

régulières.

– Sécurité : après des années de développements, GNU/Linux devient assez sûr et

Ubuntu en bénéficie. De plus, Ubuntu est très réactif pour garantir que les correctifs

de sécurité soient intégrés rapidement dans la distribution (habituellement ils le sont

en quelques jours). L’histoire a montré que la sécurité par l’obscurité ne fonctionne

pas. La disponibilité du code source permet que la sécurité de Ubuntu soit évaluée de

- 69 -

Page 81: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

façon transparente ce qui évite que de mauvais modèles de sécurité soient

implémentés.

– Pérennité : créée en 2004, Canonical Ltd est une société fondée (et financée) par

l'entrepreneur sud-africain Mark Shuttleworth et dont l'objet est la promotion de

projets open source et la sponsorisation du système d'exploitation Ubuntu. Depuis sa

création, Canonical Ltd a promis que Ubuntu sera libre et gratuit à vie et que les

versions Ubuntu LTS SE seront maintenues pour cinq ans.

– Communauté : avoir un support technique de qualité, efficace, rapide et proche est

devenu un critère primordial pour le choix de notre distribution. La communauté

Ubuntu est la communauté la plus active des distributions GNU/Linux. En effet,

depuis presque un an, la communauté Ubuntu-tn (la LoCo team tunisienne) est

devenue officiellement approuvée par la Communité Council Team et elle offre un

support de qualité gratuit pour les utilisateurs de Ubuntu en Tunisie.

Activation du compte Root

Une notion de base pour la sécurité des serveurs, est d'abord l'activation du compte root

(déactivé par défaut). Pour cela, nous devons nous connecter au compte root à partir du compte

utilisateur (créé lors de l'installation) avec la commande sudo su (le mot de passe utilisateur est

demandé) et pour activer le compte root, il suffit de lui attribuer un mot de passe avec la

commande passwd puis nous redémarrons notre machine, et nous nous connectons avec le

compte root.

2.2. OpenSSH

OpenSSH est une version libre de la suite de protocole de SSH, des outils de connectivité

de réseau sur lesquels un nombre croissant de personnes sur l'Internet viennent s'appuyer.

Beaucoup d'utilisateurs de Telnet, FTP, ou d'autres programmes identiques, ne se rendent pas

compte que leur mot de passe est transmis à travers les réseaux en clair. OpenSSH chiffre tout le

trafic (y compris le mot de passe). OpenSSH est fournie dans les dépôt de Ubuntu, donc pour

l'installer il suffit de taper dans un terminal la commande apt-get install openssh-server.

2.3. Apache Tomcat

Apache Tomcat est un serveur d'applications Java open source. Cela signifie deux

choses : d'abord, il est intégralement écrit en Java; ensuite, les applications web qu'il est capable

- 70 -

Page 82: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

d'exécuter doivent être développées en Java (moteur de recherche Nutch, le crawler Heritrix, et

le gestionnaire des sites et des malwares). Donc Il doit savoir exécuter des applications web pour

répondre aux requêtes entrantes. Il doit également être capable de convertir une requête en objet

Java, pour qu'elle soit exploitable par l'application. Et, en retour, savoir convertir l'objet Java

contenant la réponse générée, en réponse compréhensible par le serveur web. Le cœur d'un

serveur d'applications Java est le conteneur de servlets, puisque les servlets sont les éléments

essentiels d'une application web écrite en Java (elles reçoivent les requêtes et renvoient les

réponses). Le conteneur de servlets gère des servlets (sait où se trouvent physiquement les

classes Java, pour quelles URL les appeler...), et les exécute lorsqu'elles sont demandées.

Bien que Apache Tomcat est disponible dans les dépôts de Ubuntu (version 6.0.18),

autrement dit installable par lignes de commande, nous avons préféré d'installer la dernière

version de Tomcat disponible dans le site officiel de Tomcat1 (version 6.0.20) qui a été stable

pendant tout le projet

L'annexe 1 présente en détail toutes les étapes d'installation d'Apache Tomcat.

2.4. PostgreeSQL

PostgreSQL est un système de gestion de bases de données relationnel et objet

(SGBDOR) très performant sous licence BSD. Ces fonctionnalités sont comparables à celles de

ses concurrents propriétaires comme Oracle. Tout comme Tomcat, ou OpenSSH, PostgreSQL est

disponible dans les dépôts de Ubuntu et peut être aussi installé directement lors de l'installation

du serveur Ubuntu.

Pour accéder à notre base de données, nous avons installé et configuré le client graphique

phppgadmin pour qu'il permette l'accès à notre base de données avec d'autre hôtes. Pour cela,

nous avons édité le fichier /etc/phppgadmin/apache.conf et avons autorisé l'accès à tous les

utilisateurs : allow from 0.0.0.0/0.0.0.0 ::1/128 .

3. Installation et configuration de Monkey-Spider et de Nutch

Après avoir installé notre serveur et l'avoir configuré pour qu'il puisse être accédé depuis

d'autre machines, nous avons installé nos deux composantes principales par un simple « copier

coller » de ces deux outils dans /usr/local/. Cette étape était bien détaillée dans les deux annexes

1 et 2.

1 Site officiel de Tomcat : http://tomcat.apache.org/

- 71 -

Page 83: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

Après avoir étudié le fonctionnement des deux composantes principales de notre projet à

savoir le moteur de recherche Nutch et le Honeyclient Monkey-Spider, nous nous sommes

trouvés face à des inconvénients dont principalement :

• Le crawling effectué par chaque outil (et identiquement par Nutch ou Monkey-Spider)

dure plusieurs heures pour quelques milliers de sites. Donc faire un seul crawling serait

plus intéressant en terme de temps et d'espace disque dur. Le deuxième outil fera son

crawling à partir des fichiers crawlés par le premier outil.

• Les fichiers .ARC sont des fichiers compressés d'une centaine de méga octets. Cette

limitation de taille nous permet d'avoir plusieurs dizaines de ces fichiers. Le problème

était que notre Honeyclient effectue l'analyse de ces fichiers .arc un par un. C'est ainsi

que le fait d'effectuer cette tâche manuellement nous paraissait pénible et ennuyeuse.

• Pas d'interface de gestion des malwares trouvés.

• Lors de découverte d'un malware, il était très intéressant pour nous de savoir l'adresse du

serveur qui héberge le site infecté. C'est ainsi que nous pourrions connaître tous les sites

hébergés dans le même serveur et qui peuvent être aussi infectés.

3.1. Intégration de Nutch dans MonkeySpider

Les deux crawlings identiques effectués par Nutch et Monkey-Spider étaient un handicap

majeur pour l'avancement du projet vu la bande passante limitée et le temps que prenait cette

étape de crawling. Nous avons décidé donc de coupler ces deux outils et faire de sorte qu'un seul

accède à internet pour aspirer les sites et que l'autre utilise les sites crawlés par le premier outil.

Après une étude de faisabilité du couplage de Nutch et Monkey-Spider, nous avons

constaté que notre moteur de recherche peut interpréter les fichiers .arc. Par conséquence, il

devient inutile de faire le crawling de Nutch à partir d'internet.

Il est à noter qu'une petite modification a été effectuée sur le code source de Nutch pour

faciliter l'utilisation de la nouvelle fonctionnalité de Nutch (conversion des fichiers ARC en

segments compréhensibles par nutch). Enfin, nous avons développé un script permettant

d'automatiser les différentes commandes saisies pour convertir les fichiers arc et leurs indexation

par l'outil d'indexation de Nutch.

- 72 -

Page 84: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

Figure N°19 : Avant couplage de Nutch avec Monkey-Spider

Figure N°20 : Après couplage de Nutch avec Monkey-Spider

Toutefois, la possibilité de lancer Nutch indépendamment de Heritrix reste toujours

possible et ce, en utilisant l'ancienne méthode du fonctionnement de Nutch (utiliser son propre

crawler pour aspirer les sites d'internet).

L'annexe 3 présente les deux méthodes permettant la mise à jour Nutch soit à partir des

fichiers .ARC soit en utilisant son propre Crawler.

- 73 -

Page 85: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

3.2. Amélioration du comportement de Monkey-Spider

Par défaut, la taille des fichier ARC est de 100Mo. Ceci nous amène à gérer, lors du

crawling de quelques milliers de sites web, des dizaines de fichiers ARC. L'inconvénient majeur

de Monkey-Spider c'est qu'il ne permette pas de scanner plusieurs fichiers .ARC passés en

paramètre pour la commande.

Cet inconvénient nous a obligé à modifier le code source de Monkey-Spider pour qu'il

puisse prendre en paramètre tous les fichiers .ARC d'un Job de Heritrix. Notons qu'un job de

Heritrix contient des dizaines de fichiers .ARC, voire des centaines de fichiers .ARC selon le

nombre des sites à crawler par Heritrix et la nature de ces sites.

L'annexe 4 présente le code source modifié de Monkey-Spider ainsi que le script

permettant la recherche des malwares à partir de tous les Jobs de Héritrix.

3.3. Personnalisation de la recherche avec Nutch

Par défaut, Nutch nous offre une seule interface de recherche nous permettant d'effectuer

une recherche classique d'un mot saisi par l'utilisateur et dans toute la base des sites. Afin de

faciliter la recherche des sites infectés et la recherche des pirates, nous avons modifié le code

source de Nutch en ajoutant quelques écrans de recherche personnalisés.

Figure N° 21 : Écran de recherche classique avec Nutch

- 74 -

Page 86: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

Bien que les pages créées sont des pages JSP, la page d'accueil reste toujours une page

HTML pour une performance optimisée au niveau de temps de chargement de Nutch. Ces pages

créées sont accessible à partir de la page d'accueil :

• Recherche par site : cet écran permet la recherche textuelle (mot tapé à la main) dans un

site bien spécifique faisant partie de la listes des sites Tunisiens. Dans le cas où

l'utilisateur ne choisi aucun site, la recherche s'effectue dans tous les sites.

• Recherche dans les sites infectés : cet écran permet la recherche dans un site bien

spécifique faisant partie des sites infectés, comme ça, l'utilisateur pourra optimiser sa

recherche en se limitant sur les sites infectés. Dans le cas où l'utilisateur ne choisi aucun

site, la recherche s'effectue dans tous les sites.

• Recherche par signatures des pirates : cet écran permet la recherche des sites défaillés en

choisissant comme mot à chercher une signature d'un pirate (choix de la signature

s'effectue à partir d'une liste « select »).

• Recherche par signatures des pirates dans les sites infectés : cet écran permet la

recherche des pirates dans un site infecté, autrement dit, il permet la recherche du pirate

qui a attaqué le site infecté.

Figure N°22 : Écran de recherche des pirates dans les sites Tunisiens

- 75 -

Page 87: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

L'utilisateur peut aussi accéder à deux autres interfaces :

◦ L'interface de gestion des sites infectés, des signatures des pirates ou la listes de tous

les sites.

◦ L'interface d'administration de Heritrix pour la consultation des statistiques du

crawling des sites tunisiens.

Figure N° 23 : Écran des statistiques du crawling des sites avec Heritrix

4. Scripts et interface de gestion des malwares et des sites « Eurêka »

Un autre inconvénient de Monkey-Spider est l'absence d'une interface graphique qui

permet la gestion des malwares trouvés et des sites à crawler par Heritrix. Donc nous étions

amenés à développer une interface graphique pour la gestion des sites et des malwares trouvés.

4.1. Scripts de gestion des sites

L'utilité de ces scripts est qu'ils permettent en premier lieu de récupérer l'adresse IP des

serveurs hébergeant ces sites, en plus ils permettent d'enregistrer ces sites dans une base de

données PostgreSQL. Plusieurs tests sur ces scripts nous ont permis de prendre en considération

quelques cas particuliers (telles que l'inaccessibilité d'un site ou la réplication du site sur

plusieurs serveurs).

- 76 -

Page 88: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

La fonction principale de ses scripts se base essentiellement sur la commande nslookup.

Nslookup (Name System Look Up) est un outil permettant d'interroger un serveur de noms DNS

(Domain Name System) afin d'obtenir les informations concernant un domaine ou un hôte.

L'annexe 5 présente les scripts d'insertion des sites dans la base de données ainsi que les

adresses IP des serveurs qui les hébergent. Quand à l'annexe 6 il présente l'architecture complète

de notre projet.

4.2. Interface de gestion des sites et des malwares « Eurêka »

De même, l'absence d'une interface graphique pour la gestion des malwares trouvés

présentait un handicap pour la visualisation de la recherche effectuée sur les malwares. Nous

avons donc pensé au développement d'une interface graphique permettant de remédier à cet

inconvénient (recherche, ajout, suppression et modification des malwares).

Prenons compte de la disposition d'un serveur d'application Apache Tomcat, nous avons

décidé de développer notre interface en J2EE. WaveMaker se présente comme une API idéal

pour le développement de cette interface.

Basé essentiellement sur les frameWorks Spring, Hebernate et DOJO, cette API nous

permet de créer notre interface par simple Drog and drop (glisser/déposer) des composantes de

notre interface.

Nous avons pensé aussi à nommer notre application. C'est ainsi que nous avons choisi le

nom de « Eurêka » référence au célèbre mot prononcé par Archimède2 qui veut dire J'ai trouvé

une solution !.

Figure N°24 : Écran de connexion à « Eurêka »

2. Cette célèbre expression fut prononcée par Archimède lorsqu'il se rendit compte, en prenant son bain, de l'effet

de son poids sur le niveau de l'eau. Il venait de découvrir la fameuse "poussée" qui portera plus tard son nom. Si

content de lui, il sortit en criant "eurêka" ("j'ai trouvé"). Depuis, cette expression est restée et il n'est pas rare de

l'entendre prononcée lorsqu'une personne trouve la solution à un problème. Eurêka pour nous c'est que nous avons

trouvé des malwares dans nos sites!

- 77 -

Page 89: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

5. Tests et résultats

Les premiers tests de la solution était pour nous très encourageants. En effet, ces tests

nous on permit de prendre une idée sur la vulnérabilité des sites Tunisiens et plus précisément

prendre une idée sur des sites défectueux qui ne sont pas encore déclarés.

Nous avons lancé le premier test sur une base d'une dizaines de sites choisi au hasard

parmi une liste de milliers de sites, le résultat de ce test était vraiment pour nous un coup de

pouce pour aller plus loin et mettre notre solution réellement dans un serveur pour la faire

tourner sur des milliers de sites.

Pour facilité l'administration de notre projet, nous avons pensé à planifier la tâche tous les

dimanches à minuit. Pour ce faire nous avons utilisé un outil de planification de tâches « FCron »

qui est un daemon utilisé pour programmer des tâches devant être exécutées périodiquement et à

un moment précis. Ce Cron aura pour mission l'exécution de deux scripts qui permettent la

recherche des malwares avec Monkey-Spider et la mise à jour de notre moteur de recherche

Nutch.

5.1. Résultat et statistiques

• Un premier test sur une base d'un dizaine de sites nous à permit de découvrir trois

malwares hébergés dans deux sites.

• Il est prévu de lancer ce projet sur une base de six milles sites tunisiens répartie sur trois

catégories et sur six jobs Heritrix, chaque job sera de mille sites (la taille maximale pour

un job est de 1 056 sites).

• Le deuxième test sur 2 000 sites a duré environ 8 heures pour le téléchargement de tous

les sites (vitesse moyenne de téléchargement est de 380Ko/s). Nous avons configurer les

jobs de Heritrix pour crawler les sites infiniment, autrement dit, après une première phase

de crawling, il recommence à télécharger seulement les modifications apportées aux sites.

Donc les 8 heures représentent seulement la première phase du crawling, la deuxième

phase de mise à jour des sites modifiés est négligeable (en terme de taille de fichiers

téléchargés) devant la première phase.

• La taille des fichiers téléchargés pour 2 000 sites est de 10Go.

• La mise à jour de Nutch à partir des fichiers .ARC crawlés par Heritrix dure une heure

(pour 6 000 sites), donc un gain de 23 heures.

- 78 -

Page 90: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

Figure N° 25 : Interface de « Eurêka » pour la gestion des malwares trouvés

Figure N°26 : Interface de « Eurêka » pour la gestion des sites

- 79 -

Page 91: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

5.2. Exemple de Fichier Log pour la recherche de malwares

Ce fichier Log représente le résultat de recherche des malwares dans un job

contenant deux fichiers .ARC. Le résultat est intéressant dans la mesure où il convergeait

avec notre objectif de recherche : le premier fichier est contaminé avec trois virus

hébergés dans deux sites.Processing ARC files in Folder: /home/mbb/heritrix-1.14.3/jobs/infected_sites-20090422213830850/arcs ms-extract-arc: Extracting IAH-20090422214632-00000-mbb-laptop.arc.gz Done extracting IAH-20090422214632-00000-mbb-laptop.arc.gz Fin de l extraction ms-scanner-clamav: LibClamAV Warning: *********************************************************** LibClamAV Warning: *** This version of the ClamAV engine is outdated. *** LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq *** LibClamAV Warning: *********************************************************** Scanning folder /home/mbb/heritrix-1.14.3/jobs/infected_sites-20090422213830850/arcs/IAH-20090422214632-00000-mbb-laptop for viruses with ClamAV

################################################################################################## ALLERTE MALWARE # # Sites Infectes, Veuillez consultez votre base de donnees pour voir la liste des virus trouves # #################################################################################################

Connection avec la base de donnees etablie avec succe: MALWARES ===> 12,'GUROVUR25DA5MQQQQF2AOYQKYE5YROIP.html','http://www.atc.org.tn/index.html','GUROVUR25DA5MQQQQF2AOYQKYE5YROIP',0,'2009-04-22 21:53:25','HTML.Iframe-32'

################################################################################################## ALLERTE MALWARE # # Sites Infectes, Veuillez consultez votre base de donnees pour voir la liste des virus trouves # #################################################################################################

Connection avec la base de donnees etablie avec succe: MALWARES ===> 13,'GU4CI65PWIWXEJZE4RQ2I6BURMWN6HG4.html','http://www.atc.org.tn/','GU4CI65PWIWXEJZE4RQ2I6BURMWN6HG4',0,'2009-04-22 21:46:36','HTML.Iframe-32'

################################################################################################## ALLERTE MALWARE # # Sites Infectes, Veuillez consultez votre base de donnees pour voir la liste des virus trouves # #################################################################################################

Connection avec la base de donnees etablie avec succe: MALWARES ===> 14,'62KAAJDQZ7377TPEYUKFNXK2ZVG4MUSU.html','http://nipkelo.net/?click=1380f44','62KAAJDQZ7377TPEYUKFNXK2ZVG4MUSU',0,'2009-04-2222:17:00','JS.Agent-43' Fin du scan

ms-extract-arc: Extracting IAH-20090422214632-00001-mbb-laptop.arc.gz Done extracting IAH-20090422214632-00001-mbb-laptop.arc.gz Fin de l extraction ms-scanner-clamav: LibClamAV Warning: *********************************************************** LibClamAV Warning: *** This version of the ClamAV engine is outdated. *** LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq *** LibClamAV Warning: *********************************************************** Scanning folder /home/mbb/heritrix-1.14.3/jobs/infected_sites-20090422213830850/arcs/IAH-20090422214632-00001-mbb-laptop for viruses with ClamAV Fin du scan ........... Done!

- 80 -

Page 92: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Chapitre 6 Réalisation et mise en place de la solution

6. Conclusion

Dans ce chapitre, nous avons décrit tout ce qui concerne la partie réalisation. Nous

avons commencé par une installation du serveur, puis installation et configuration de Nutch et

Monkey-Spider. Ensuite nous avons présenté l'interface de gestion des sites et des malwares

trouvées Eurêka. Enfin, nous avons exposé quelques résultats des tests effectué sur une base de

quelque sites tunisiens.

- 81 -

Page 93: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Conclusion & perspectives

Conclusion & perspectives

Notre projet avait pour objectif la mise en place d'une solution de détection des malwares

dans les sites tunisiens et la détection des pirates informatiques à travers leurs signatures

textuelles.

Ce projet comporte deux volets. Dans le premier, nous avons procédé à une étude

théorique sur les moteurs de recherche open source et sur les Honeyclients. Cette étude nous a

permis d'adopter Nutch pour la recherche des pirates dans les sites défaillés et Monkey-Spider

pour la recherche des malwares hébergés dans les sites web. Une installation et une configuration

de ces deux outils nous ont permis de déterminer leurs inconvénients. Dans un deuxième volet,

nous avons procédé à une personnalisation et une intégration de Nutch dans Monkey-Spider et

nous avons développé une interface J2EE pour la gestion des sites et des malwares trouvés.

Nous tenons à préciser que ce projet nous a permis de prendre conscience des menaces et

des risques d'internet et d'étudier le Hacking dans le monde et plus précisément en Tunisie. De

plus, ce projet nous a offert l’occasion d’approfondir nos connaissances sur les notions de

sécurité informatique et les technologies récentes comme les Honeyclients et le développement

J2EE.

Du point de vue général, ce projet nous a aussi permis d’acquérir un savoir non

négligeable et d'améliorer notre aptitude à communiquer, collaborer et s’adapter avec

l’environnement professionnel.

En terme de perspectives, des améliorations sont possibles pour augmenter la

performance de cette solution selon l’apparition de nouvelles technologies. Sinon, le

développement d'une interface graphique permettant l'administration du moteur de recherche et

de Monkey-Spider serai d'un grand avantage.

- 82 -

Page 94: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Bibliographie et Netographie

[1] JORT : Loi N°2004-5 du 3février 2004 relative à la sécurité informatique.

[2] La durée de vie d'un ordinateur non protégé est de ... 4 minutes :

http://bugbrother.blog.lemonde.fr/2009/02/20/la-duree-de-vie-dun-ordinateur-non-protege-

est-de-4-minutes/

http://isc.sans.org/ survivaltime.html

[3] http://catb.org/esr/faqs/hacker-howto.html

[4] http://projet.piratage.free.fr/acteurs.html

[5] http://www.zataz.com/news/17277/Internet--police--piratage.html

[6] Code Pénal : « Art 199 bis » ajouté par la Loi n° 99-89 du 2 août 1999

[7] AFP, "Google leader écrasant de la recherche sur internet mondial", 10 octobre 2007

http://afp.google.com/article/ALeqM5hmg2WxR4pLsvDGhzplle3bZWfcxg

[8] Webrankfino.com - Parts de marché des moteurs de recherche en Juin 2008 :

http://www.xitimonitor.com/fr-fr/barometre-des-moteurs/barometre-des-moteurs-juin-

2008/index-1-1-6-134.html

[9] http://wiki.apache.org/nutch/Evaluations : Comparision of Nutch and Google search engine

implementations on the Oregon State University website - Lyle Benedict -

[10] http://osuosl.org/

[11] http://www.google.fr/enterprise/mini/index.html

[12] Sun Tzu – The Art of War par Sunzi, 6th cent. B.C.

http://www.gutenberg.org/etext/132 et http://en.wikipedia.org/wiki/The_Art_of_War

[13] http://www.honeyd.org/general.php

[14] http://fr.wikipedia.org/wiki/MIME_Encapsulation_of_Aggregate_Documents,_such_as_H

TML

[15] Source : http://iwaw.europarchive.org/05/stack1.pdf

[16] Source : http://www.archive.org/index.php

[17] Le 18/06/2009 à partir du site officiel de ClamAV : http://www.clamav.net/lang-pref/fr/

[18] Source : http://virus.untangle.com/ et http://blog.untangle.com/?p=96

[19] Source : http://archives.postgresql.org/pgsql-fr-generale/2004-11/msg00073.php

Page 95: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

GLOSSAIRE

[G1] Le Mail Bombing consiste à envoyer un nombre faramineux d'emails (plusieurs

milliers par exemple) à un ou des destinataires. L'objectif étant de saturer soit le serveur

de mails, soit la bande passante du serveur et du ou des destinataires, ou bien rendre

impossible aux destinataires de continuer à utiliser l'adresse électronique.

[G2] Le DNS Poisoning est une technique permettant de leurrer les serveurs DNS afin de

leur faire croire qu'ils reçoivent une requête valide tandis qu'elle est frauduleuse. Une fois

que le serveur DNS a été empoisonné, l'information est mise dans une cache, rendant

ainsi vulnérable tous les utilisateurs de ce serveur. Ce type d'attaque permet, par exemple,

d'envoyer un utilisateur vers un faux site.

[G3] Un keylogger (littéralement enregistreur de touches) est un dispositif chargé

d'enregistrer les frappes de touches du clavier et de les enregistrer, à l'insu de l'utilisateur.

Il s'agit donc d'un dispositif d'espionnage.

[G4] Un Script kiddie est un terme péjoratif désignant les pirates informatiques néophytes

qui, dépourvus des principales compétences en matière de gestion de la sécurité

informatique, passent l'essentiel de leur temps à essayer d'infiltrer des systèmes, en

utilisant des scripts ou programmes mis au point par d'autres hackers.

[G5] Les attaques par rebond consistent à utiliser un ou des systèmes intermédiaires,

participant à leur insu, et permettant au hacker de rester caché, mais aussi d'utiliser les

ressources de l'ordinateur intermédiaire qui est plus puissant (CPU, bande passante...)

pour attaquer.

[G6] Le DDoS (Distributed Denial of Service, déni de service distribué) est une version

avancée de l'attaque par DoS (Denial of Service, déni de dervice). Tout comme l'attaque

DoS, le DDoS tente de bloquer des services importants s'exécutant sur un serveur en

inondant de paquets le serveur de destination. La spécialité du DDoS est que les attaques

ne proviennent pas d'un seul réseau ou hôte, mais d'un certain nombre d'hôtes ou de

réseaux différents qui ont été précédemment compromis.

[G7] global.asa : Afin de permettre de configurer une application (un site web) avec des

paramètres par défaut sans devoir modifier la configuration du serveur, le modèle ASP

propose l'utilisation d'un fichier de configuration, nommé global.asa, qui, placé à la

Page 96: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

racine du site web, permet à son concepteur d'exécuter des instructions, d'initialiser des

variables, avant ou après l'exécution d'un script.

[G8] Le HTML (« HyperText Mark-Up Language ») est un langage dit de « balisage »

dont le rôle est de formaliser l'écriture d'un document web avec des balises de formatage.

Les balises permettent d'indiquer la façon dont doit être présenté le document et les liens

qu'il établit avec d'autres documents.

[G9] La formule TF-IDF est une méthode qui permet d'évaluer l'importance d'un mot par

rapport à un document indexés. Le poids augmente proportionnellement en fonction du

nombre d'occurrences du mot dans le document. Il varie également en fonction de la

fréquence du mot dans le corpus.Nous retrouvons ainsi la formule TF-IDF simplifiée

comme étant le quotient du nombre d'occurrences du mot recherché par le nombre des

mots total, le tout multiplié par log(2/3).

[G10] XML ( eXtensible Markup Language) est en quelque sorte un langage HTML

amélioré permettant de définir de nouvelles balises. Il s'agit effectivement d'un langage

permettant de mettre en forme des documents grâce à des balises (markup).

[G11] Un pare-feu « firewall » est un élément du réseau informatique, logiciel et/ou

matériel, qui a pour fonction de faire respecter la politique de sécurité du réseau. Il a pour

principale tâche le contrôle du trafic entre différentes zones de confiance, en filtrant les

flux de données qui y transitent. Généralement, les zones de confiance incluent Internet

(une zone dont la confiance est nulle), et au moins un réseau interne (une zone dont la

confiance est plus importante).

[G12] Dans le domaine de la sécurité des systèmes informatique, un bac à sable

« sandbox » est un mécanisme qui permet l'exécution de logiciel(s) avec moins de risques

au système d'exploitation. Ces derniers sont souvent utilisés pour exécuter du code non

testé ou de provenance douteuse. Le terme sandbox est aussi utilisé dans un sens plus

large pour faire référence à un environnement de test pour logiciels ou sites web.

[G13] Une attaque « zero day » est tout simplement une attaque qui est inconnu par des

spécialistes en sécurité et du fabricant du logiciel qui est ciblé. Ces attaques exploitant

une faille dans un programme ou un logiciel encore non résolu par les éditeurs de

solutions de sécurité IT. Le nombre de ces attaques ne cesse d'augmenter, en deux ans,

leurs nombre a presque triplet et en 2006 il y a eu 6500 attaques zero days.

[G14] MHTML : MHTML est un format de fichier proposé à la normalisation par l'IETF

en 1999 dans le cadre d'une RFC intitulée « MIME Encapsulation of Aggregate

Documents, such as HTML ». Il s'agit d'un format de fichier ouvert et non propriétaire

permettant d'enregistrer et d'envoyer un fichier HTML qui inclut dans le corps de celui-ci,

Page 97: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

au format MIME, les images et autres éléments externes de la page HTML

correspondante.

[G15] GNU Lesser GPL : La Licence publique générale limitée GNU, ou GNU LGPL

(pour GNU Lesser General Public License) est une licence utilisée par certains logiciels

libres. Elle présente de grandes ressemblances avec la Licence publique générale GNU

(ou GNU GPL), rédigée par le même organisme, la Free software foundation, visant à

promouvoir le développement de logiciels libres. La différences avec la licence GPL est

que la LGPL autorise de lier le programme sous cette licence à du code non LGPL.

[G16] Internet Archive est une organisation à but non lucratif consacrée à l'archivage du

Web, située dans le Presidio de San Francisco, en Californie. Le projet sert aussi de

bibliothèque numérique. Cette archive est constituée de clichés (copie de pages prises à

différents moments) du réseau internet, de logiciels, de films, de livres et

d'enregistrements audio. Internet archive est le fondateur du projet Heritrix.

Page 98: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 1

Installation et configuration du moteur

de recherche Nutch-1.0

Cet annexe décrit toutes les étapes d'installation et de configuration du moteur de

recherche Nutch-1.0 sur une plateforme GNU/Linux.

1. Introduction

Nutch est un moteur de recherche Open Source complet :

◦ Outil d'Exploration

◦ Outil d'Indexation

◦ Outil de recherche

◦ Interface Graphique

◦ Distribué et répliqué (Hadoop)

Depuis le 23 Mars 2009, une nouvelle version de Nutch est disponible. Cette version

inclue plusieurs nouveautés :

◦ Nouveau FrameWork pour l'Indexation

◦ Nouveau FrameWork pour le scoring (référencement)

◦ Intégration de Apache Solr

◦ Support des dernières versions de

▪ Lucene 2.4

▪ Hadoop 0.19.1

▪ Tomcat 6

▪ JDK6

▪ etc.

- 1 -

Page 99: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

2. Environnement

• Ubuntu SE : 9.04

• JDK : 1.6.0_13-b03

• Apache Tomcat : 6.0.18

• Nutch : 1.0

• Slor : 1.3.0

3. Pré-requis

Pour cette installation de Nutch, nous supposant que Ubuntu est bien installé et que

l'administrateur a tous les droits du compte super-utilisateur.

Nous supposons aussi qu'un minimum de connaissances des commandes Shell et de

l'environnement Lunix (Ubuntu) soit acquis.

4. Installation et configuration de JAVA

L'un des avantages de Nutch, c'est sa portabilité. En effet, Nutch s'installe sur toute plate-

forme supportant la machine virtuelle Java. Pour cela, nous allons commencer notre installation

de Nutch par l'installation et la configuration de l'environnement Java JKD 1.6 update 13:

• Télécharger la dernière version de java JDK 1.6 update 13 à partir du site de Sun :

http://java.sun.com/javase/downloads/index.jsp

• Sélectionner Java SE Development Kit (JDK), cela nous mène à une page nous

permettant de définir votre OS (Linux), puis Télécharger le : jdk-6u13-linux-i586.bin et

• Placer le dans /usr/local/

• Dans un terminal tapons:

sudo chmod u+x jdk6u13linuxi586.bin ./jdk6u13linuxi586.bin

• Définition de JAVA_HOME pour le système : pour cela, éditons le fichier bashrc : $sudo gedit /etc/bash.bashrc

• À la fin du fichier, tapons : export JAVA_HOME=/usr/local/jdk1.6.0_13 export PATH=$JAVA_HOME/bin:$PATH

• Vérifions avec : $java version java version "1.6.0_13" Java (TM) SE Runtime Environment (build 1.6.0_13b04) Java HotSpot (TM) Server VM (build 11.2b01, mixed mode)

- 2 -

Page 100: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

5. Installation et configuration d'Apache Tomcat

Bien que Nutch tourne parfaitement en lignes de commande (dans un terminal Shell), il

est indispensable de penser à une utilisation via son interface graphique qui tourne sur Tomcat 6,

pour cela :

• Téléchargeons la dernière version d'Apache Tomcat 6.0.18 à partir du site de d'Apache :

http://tomcat.apache.org/download-60.cgi • À selectionner le .tar.gz du Binary Distributions, cela nous permet de télécharger le

fichier : apache- tomcat-6.0.18.tar.gz

• Décompressons le et placons le dans /usr/local/ puis rénommons le en tomcat-6.0.18 pour

faciliter son utilisation.

• Nous allons ensuite ajouter un administrateur de Tomcat, pour cela éditons le fichier : tomcat-users.xml edit /usr/local/tomcat6.0.18/conf/tomcat-users.xml et ajoutons deux rôles, et un utilisateur :<?xml version='1.0' encoding='utf-8'?>

<tomca-users> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="admin,manager"/>

</tomcat-users> • Pour éviter tout conflit de notre serveur, nous avons changé le port de Tomcat (par défaut

c'est le 8080 qui est utilisé), nous allons le changer pour utiliser le 8086, pour cela éditons

le fichier /conf/server.xml et modifions la ligne : <Connector port="8086"

protocol="HTTP/1.1" ...

• Lançons ensuite tomcat: ./usr/local/tomcat-6.0.18/bin/startup.sh

• Nous devons avoir quelque chose comme ça: Using CATALINA_BASE: /usr/local/tomcat6.0.18 Using CATALINA_HOME: /usr/local/tomcat6.0.18 Using CATALINA_TMPDIR: /usr/local/tomcat6.0.18/temp Using JRE_HOME: /home/mbb/jdk1.6.0_13

• Dans un navigateur : http://localhost:8086/

• Et pour la page manager : http://localhost:8086/manager/html/

6. Installation et configuration de Nutch

Nous allons passer maintenant à l'installation de Nutch-1.0. Dans cette partie nous allons

- 3 -

Page 101: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

nous limiter à une installation minimale de Nutch :

• Téléchargeons la dernière version de Nutch-1.0 sur le site de Apache : (nutch-1.0.tar.gz) http://lucene.apache.org/nutch/index.html

• Décompressons la dans notre répertoire /home/user/ ( ~/ ) et créons un dossier urls dans le dossier d'installation de Nutch, puis un fichier urls.txt dans ce dossier : mkdir /usr/lib/nutch/urls touch /usr/lib/nutch/urls.txt

• Editons ce fichier et ajoutez les hyperliens. Dans notre cas, on va se limiter à un seul site: http://lucene.apache.org/nutch/

• Éditons le fichier conf/crawl-urlfilter.txt et remplaçons MY.DOMAIN.NAME par le nom de domaine que nous voulons crawler. Par exemple, nous voulons limiter le crawling aux domaines d'apache.org seulement, donc la ligne sera comme suit: +^http://([a-z0-9]*\.)*apache.org/

• Éditons le fichier conf/nutch-site.xml et ajoutons ces propriétés: <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. -->

<configuration><property>

<name>http.agent.name</name><value></value><description>HTTP 'User-Agent' request header. MUST NOT be empty - please

set this to a single word uniquely related to your organization.NOTE: You should also check other related properties:

http.robots.agentshttp.agent.descriptionhttp.agent.urlhttp.agent.emailhttp.agent.version

and set their values appropriately. </description></property>

<property> <name>http.agent.description</name> <value></value>

<description>Further description of our bot- this text is used in the User-Agent header. It appears in parenthesis after the agent name.

</description></property>

<property><name>http.agent.url</name>

<value></value> <description>A URL to advertise in the User-Agent header. This will appear

- 4 -

Page 102: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

in parenthesis after the agent name. Custom dictates that this should be a URL of a page explaining the purpose and behavior of this crawler.

</description></property>

<property> <name>http.agent.email</name> <value></value>

<description>An email address to advertise in the HTTP 'From' reques theader and User-Agent header. A good practice is to mangle this address (e.g. 'info at example dot com') to avoid spamming.

</description></property>

</configuration>

• Ensuite, éditons le fichier /conf/nutch-default.xml et cherchons ces paramètres en les attribuant ces valeurs suivantes:

Paramètres Valeurs attribuées

http.agent.name <name>http.agent.name</name> <value>NUTCHCRAWLER</value>

http.content.limit <name>http.content.limit</name> <value>-1</value>

indexer.max.tokens <name>indexer.max.tokens</name> <value>2147483647</value>

plugin.includes <name>plugin.includes</name> <value>protocol-http|urlfilter-regex|parse-(text|html|js|pdf|msword|mspowerpoint|msexcel)|index-basic|query-(basic|site|url)|summary-basic| scoring-opic|analysis-(fr)</value>

searcher.dir <name>searcher.dir</name> <value>/home/mbb/nutch-1.0/crawldir/</value>

• Lancement de Nutch :./bin/nutch crawl urls -dir crawldir -threads 10 -depth 3 -topN 50

Avec : ◦ urls : nom du répertoire contenant les fichiers des hyperliens.◦ -dir crawldir : nom du répertoire de l'indexe et des segments téléchargés. ◦ -threads 10 : le nombre de processus qui vont faire le crawling simultanément. ◦ -depth 3 : détermine la profondeur du crawling. ◦ -topN 50 : détermine le nombre de pages maximum à crawler.

- 5 -

Page 103: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

• Recherche dans un terminal : mbb@mbb-laptop:~/nutch1.0$ bin/nutch org.apache.nutch.searcher.NutchBean

nutch Total hits: 25 0 20090406235738/http://lucene.apache.org/nutch/ ... is available here . June 2005: Nutch graduates from IncubatorNutch has now graduated from the ... of Lucene. January 2005: ... 1 20090406235751/http://wiki.apache.org/nutch/ ... wrote Lucene and Nutch. Stefan's Nutch Documentation Frutch WikiFrench Nutch ... to come). Larger / better quality Nutch ... 2 20090406235843/http://www.apache.org/dyn/closer.cgi/

lucene/nutch/ ... osuosl.org/pub/apache/lucene/nutch/ ftp://www.ibiblio.org/pub

... net/pub/apache.org/lucene/ nutch/ ftp://apache.cs.utah.edu

• Interface Graphique de Nutch : 1- Déploiement de l'interface de Nutch dans Tomcat:

▪ Dans http://localhost:8086/manager/html/ allons à la section « WAR file to deploy » et chargeons le fichier ~/nutch-1.0/nutch-1.0.war

▪ L'application sera ajoutée dans la section « Applications » 2- Allons ensuite à /usr/local/tomcat-6.0.18/webapps/nutch-1.0/WEB-INF/classes et

remplaçons ces trois fichiers par ceux du répertoire ~/nutch-1.0/conf ◦ crawl-urlfilter.txt ◦ nutch-site.xml ◦ nutch-default.xml

3- Rechargeons ensuite l'application dans l'interface manager de Tomcat. 4- Et voilà, il ne reste plus qu'aller à la page : http://localhost:8086/nutch-1.0/fr/ et lancer

nos recherches à partir de l'interface graphique.

7. Intégration de Solr avec Nutch

Depuis la dernière version de Nutch-1.0, l'une des nouvelles fonctionnalités de Nutch la

plus remarquable, c'est l'intégration de Solr avec Nutch. Dans ce cas, Solr sera utilisé comme un

outil de recherche seulement, alors que Nutch sera utilisé où il excelle : l'exploration et

l'extraction du contenu.

L'utilisation de Solr nous permet de bénéficier de ces atouts dans la phase de recherche,

par exemple, la vérification orthographique, les statistiques faites sur les requêtes, l'utilisation du

cache, les mises à jour, ainsi que son interface graphique d'administration, alors que Nutch, lui il

nous permet de bénéficier d'un ensemble complet de fonctionnalités telles que l'intelligence des

robots de crawling, la robustesse et l'évolutivité (Nutch fonctionne sur Hadoop, de sorte que vous

pouvez exécuter Nutch sur une seule machine ou sur un cluster de 100 machines).

Nous essayons dans cette partie de décrire les étapes d'installation et d'intégration de Solr

- 6 -

Page 104: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

avec Nutch:

• Commençons par télécharger la dernière version de Solr sur cette page (version Linux

23bits) : http://www.lucidimagination.com/Downloads et extractons le dans notre dossier

Home.

• De même, téléchargeons la dernière version de Nutch à partir de ce site

http://lucene.apache.org/nutch/index.html et extractons la dans notre dossier Home aussi.

• Copions le fichier schema.xml de apache-nutch-1.0/conf dans apache-solr-

1.3.0/example/solr/conf (remplaçons le fichier existant). Ensuite cherchons l'attribut

« content » et mettons le à true

<field name=”content” type=”text” stored=”true” indexed=”true”/>

• Éditons le fichier de configuration de Solr apache-solr-

1.3.0/example/solr/conf/solrconfig.xml en y ajoutons cette configuration:

<requestHandler name="/nutch" class="solr.SearchHandler" ><lst name="defaults">

<str name="defType">dismax</str><str name="echoParams">explicit</str><float name="tie">0.01</float><str name="qf">content^0.5 anchor^1.0 title^1.2</str><str name="pf">content^0.5 anchor^1.5 title^1.2 site^1.5</str><str name="fl">url</str><str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str><int name="ps">100</int><bool hl="true"/><str name="q.alt">*:*</str><str name="hl.fl">title url content</str><str name="f.title.hl.fragsize">0</str><str name="f.title.hl.alternateField">title</str><str name="f.url.hl.fragsize">0</str><str name="f.url.hl.alternateField">url</str><str name="f.content.hl.fragmenter">regex</str>

</lst></requestHandler>

• Lançons ensuite Solr avec:

cd apache-solr-1.3.0/examplejava -jar start.jar

• Ensuite nous passons à la configuration de Nutch, pour cela commencons par éditer le fichier conf/nutch-site.xml et ajoutons ces propriétés: <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. -->

- 7 -

Page 105: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

<configuration><property>

<name>http.agent.name</name><value>nutch-solr-integration</value>

</property><property>

<name>generate.max.per.host</name><value>100</value>

</property><property>

<name>plugin.includes</name><value>protocol-http|urlfilter-regex|parse-html|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>

</property></configuration>

• Ensuite, éditons le fichier ~/conf/regex-urlfilter.txt et modifions la configuration existante par: -^(https|telnet|file|ftp|mailto):# skip some suffixes-\.(swf|SWF|doc|DOC|mp3|MP3|WMV|wmv|txt|TXT|rtf|RTF|avi|AVI|m3u|M3U|flv|FLV|WAV|wav|mp4|MP4|avi|AVI|rss|RSS|xml|XML|pdf|PDF|js|JS|gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$# skip URLs containing certain characters as probable queries, etc.-[?*!@=]# allow urls in foofactory.fi domain+^http://([a-z0-9]*\.)*apache.org/ # deny anything else-.

• Créons ensuite un dossier urls dans le dossier d'installation de Nutch, puis un fichier urls.txt dans ce dossier pour y mettre les Hyperliens: mkdir /usr/lib/nutch/urls echo "http://lucene.apache.org/nutch/" > urls/urls.txt

• Puis exécutons ses commandes une après l'autre dans le dossier racine de Nutch:◦ bin/nutch inject crawl/crawldb urls◦ bin/nutch generate crawl/crawldb crawl/segments◦ export SEGMENT=crawl/segments/`ls -tr crawl/segments|tail -1`◦ bin/nutch fetch $SEGMENT -noParsing◦ bin/nutch parse $SEGMENT◦ bin/nutch updatedb crawl/crawldb $SEGMENT -filter -normalize◦ bin/nutch invertlinks crawl/linkdb -dir crawl/segments◦ bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb

crawl/linkdb crawl/segments/*

Enfin, pour lancer nos recherches, allons à la page http://127.0.0.1:8983/solr/admin dans notre navigateur web ou directement sur cette adresse http://127.0.0.1:8983/solr/nutch/?q=solr&amp;version=2.2&amp;start=0&amp;rows=10&amp;indent=on&amp;wt=json

- 8 -

Page 106: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 2

Installation et configuration du

Honeyclient Monkey-Spider 2.0

Cette annexe décrit toutes les étapes d'installation et de configuration du client Honeypot

Monkey-Spider sur une plateforme GNU/Linux.

1. Introduction

Monkey-Spider est un client Honeypot à faible interaction, il permet d'explorer les sites

internet afin de détecter les menaces existantes dans ces sites. Initialement développé dans un

cadre universitaire par M. Ali Ikinci et est poursuivi et publié comme Logiciel Libre, il viens de

publier dernièrement sa nouvelle version (version 2.0) le 24 Mars 2009 sous la licence GPLv3.

Monkey-Spider est un client de détection de Malwares rapide et facilement extensible

avec d'autres outils de détection, il est basé sur deux grands mécanismes : l'exploration et le

téléchargement des sites internet, ensuite ces sites seront scannés par un anti-virus pour détecter

les codes malveillants qui seront par la suite stockés dans une base de données.

2. Environnement

• Ubuntu SE : 9.04

• JDK : 1.6.0_13-b03

• Python : 2.6

• Heritrix : 2.0.2

• ClamAV : 4.08

• PostGreSQL : 8.3.7-1

• Monkey-Spider : 2.0

- 9 -

Page 107: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

3. Pré-requis

Pour l'installation de Monkey-Spider, nous supposant que Ubuntu est bien installé, et que

l'administrateur à tous les droits du compte super-utilisateur (root), et qu'un minimum de

connaissances des commandes Shell et de l'environnement Lunix (Ubuntu) soit acquis.

Nous supposons aussi que les outils suivants sont installés : sed 4.1.5-8, mawk 1.3.3,

wget 1.11.4, grep 2.5.3, unzip 2.25, Python 2.6 et Java 1.6 (JVM).

Notons aussi qu'il faut installer Heritrix, PostgreSQL et ClamAV ainsi que toutes leurs

composantes nécessaires (PyGreSQL, SOAPpy, pYsearch) pour faire tourner Monkey-Spider.

Pour cela, nous allons commencer par l'installation de ces outils, puis on va détailler l'installation

et l'utilisation de Monkey-Spider.

4. Installation et configuration de Heritrix

Heritrix est un robot d'exploration Open Source développé en Java par Internet Archive et

les Bibliothèques Nationales Nordiques en 2003. Il permet d'aspirer les sites internet et de les

archiver sous format ARC.

Afin d'éviter d'avoir la gestion d'un grand nombre de petits fichiers, le format ARC,

permet de stoker de multiples ressources (texte, images, vidéo, etc) dans un seul fichier. Un

fichier consiste en une séquence d'enregistrements d'URL, chacun étant accompagné d'un en-tête

contenant des métadonnées à propos de la manière dont la ressource a été demandée, de l'en-tête

HTTP, et du code de la réponse. La taille d'un fichier Arc est comprise entre 1 et 600 mégaoctets.

Dans cette partie nous essayons de détailler l'installation de Heritrix 2.0.2 disponible

depuis le 11 Novembre 2008, pour cela :

• Commençons par télécharger le fichier heritrix-2.0.2-dist.tar.gz à partir de ce site :

http://sourceforge.net/project/showfiles.php?group_id=73833&package_id=254931&release_id=638948

• décompressons le dans notre dossier Home:

tar -xfz heritrix-2.0.2-dist.tar.gz

• Définitons HERITRIX_HOME pour le système : pour cela éditons le fichier bashrc : $sudo gedit /etc/bash.bashrc

• À la fin du fichier, tapons : export HERITRIX_HOME=~/heritrix-2.0.2/export PATH=$HERITRIX_HOME/bin:$PATH

- 10 -

Page 108: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

• Vérifions avec : mbb@mbb-laptop:~$ echo $HERITRIX_HOME /home/mbb/heritrix-2.0.2/

• Donnons ensuite le droit d'exécution des fichier Heritrix à votre utilisateur:% cd $HERITRIX_HOME% chmod u+x $HERITRIX_HOME/bin/heritrix

• Testons ensuite Heritrix avec:% $HERITRIX_HOME/bin/heritrix helpUsage: heritrix --helpUsage: heritrix --nowui ORDER.XMLUsage: heritrix [--port=#] [--run] [--bind=IP,IP...] --admin=LOGIN:PASSWORD \

[ORDER.XML]Usage: heritrix [--port=#] --selftest[=TESTNAME]Version: @VERSION@Options:-b,--bind Comma-separated list of IP addresses or hostnames for web server to listen on. Set to / to listen on all available network interfaces. Default is 127.0.0.1.-a,--admin Login and password for web user interface administration. Required (unless passed via the 'heritrix.cmdline.admin' system property). Pass value of the form 'LOGIN:PASSWORD'.-h,--help Prints this message and exits.-n,--nowui Put heritrix into run mode and begin crawl using ORDER.XML.Do not put up web user interface.-p,--port Port to run web user interface on. Default: 8080.-r,--run Put heritrix into run mode. If ORDER.XML begin crawl.-s,--selftest Run the integrated selftests. Pass test name to test it only (Case sensitive: E.g. pass 'Charset' to run charset selftest)Arguments:ORDER.XML Crawl order to run.

• Lancons ensuite Heritrix avec un utilisateur et son mot de passe:

% $HERITRIX_HOME/bin/heritrix -a PASSWORD -p 8070 -b 0.0.0.0 WARNING: No $HERITRIX_HOME/conf/jmxremote.password found.WARNING: Disabling remote JMX.Tue Jul 17 14:00:25 PDT 2007 Starting heritrixNo JNDI context.Engine registered at

org.archive.crawler:instance=14306161,jmxport=8849,name=Engine,type=org.archive.crawler.framework.Engine,host=0.0.0.0

Web UI listening on localhost:8070.

• Nous passons maintenant à la configuration et le création d'un Job avec Heritrix, pour

cela rendons nous à l'adresse http://localhost:8070/ :

a) Après authentification, allons à Engine ID, et choisissons le premier profile

basic_seed_sites puis Sheets puis Edit , allons ensuite vers :

▪ operator-contact-url et saisissons l'adresse web de votre société,

▪ operator-from et saisissons le mail de l'administrateur.

▪ operator-name et saisissons le nom de l'administrateur.

- 11 -

Page 109: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Enfin, enregistrer avec Submit changes.

b) Allez ensuite à la configuration d'un profil pour ce job: (Jobs > Settings): par défaut,

il existe un profil prédéfini, donc nous allons le modifier pour qu'il puisse être

opérationnel, pour cela cherchons le paramètre http-headers et modifions ces propriétés:

user-agent: Mozilla/5.0 (compatible; heritrix/2.0.2 + <site_société>)from: <mail_administrateur>@domain.com

c) Dans Jobs > Modules allons vers le paramètre Select Crawl Scope et modifions le

pour qu'il puisse faire seulement le crawling dans les domaines des hyperliens fournis

dans le job (choisir la valeur org.archive.crawler.scope.DomainScope), n'oublions pas

d'enregistrer.

d) Avant, de lancer le crawling des Jobs créés, assurons nous que la configuration à

était bien saisie (ce n'est pas toujours le cas), allons vers le dossier ~/heritrix-2.0.2/jobs/ et

choisissons le job que nous avons créé, dans ce répertoire ouvrons le fichier de

configuration du Job order.xml vérifions maintenant que la configuration est bien celle

que nous avons saisi, en particulier la ligne de configuration du domaine de recherche du

crawling : <newObject name="scope" class="org.archive.crawler.scope.DomainScope">

puis le fichier seeds.txt qui contient la liste des sites à crawler.

e) Voilà, maintenant que le job est bien configuré, il ne nous reste plus qu'aller à

Console et démarrer notre Job (pensons à rafraichir la fenêtre pour vérifier que notre job

est en cour de fonctionnement).

5. Installation de KlamAV

ClamAV est un antivirus Open Source (Licence GPL) Gratuit et très puissant, il est

disponible sur les systèmes GNU/Linux mais également sur Windows (ClamWin) et Mac OS X

(ClamXav). Il peut tout aussi bien être utilisé sur des serveurs que sur des postes de travail.

ClamAV est principalement utilisé pour détecter les virus attaquant les systèmes

Windows qui sont de loin les plus menacés, les systèmes GNU/Linux l’étant peu. En décembre

2008, ClamAV possède dans sa base de données plus de 575 000 logiciels malveillants

reconnus1.

1 Source : http://www.clamav.net/ http://doc.ubuntu-fr.org/clamav

- 12 -

Page 110: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Il est très utilisé dans le domaine professionnel par plusieurs sociétés comme « NGX

VPN-1 Edge Embedded », « Barracuda Network », « Netasq » et « Sysun Secure ».

Dans notre projet, ClamAV nous sert à scanner tout les fichiers téléchargés pat Heritrix

pour détecter tous les malwares cachés dans les sites internet. Son installation est très facile via

apt. En effet, ClamAV fait partie des dépôts de Ubuntu. Pour cela, il suffit de taper dans un

terminal:

$ sudo apt-get install clamav

si ClamAV ne se trouve pas par défaut dans la liste des miroirs de Ubuntu, dans le menu

général de Ubuntu, allez à Système>Administration>Sources de mise à jour et crochez la case

des dépôts multiverse, puis recharger la liste, et réessayez la commande apt.

6. Installation et configuration de PostgreSQL

Initié par Michael Stonebraker en 1985, PostgreSQL est un gestionnaire de base de

données relationnel et d'objet très puissant sous licence BSD dont les performances sont

comparables à Oracle ou SQL server de Microsoft. Très riche en fonctionnalités et facile à

utiliser, il reste le SGBD le plus rapide et le plus utilisé en entreprise de nos jours2

PostgreSQL est disponible dans les dépôts de ubuntu, donc pour l'installer, il suffit de

taper dans un terminal :

$ sudo apt-get install postgresql

Nous passons ensuite à sa configuration, et nous commençons par activer l'utilisateur par

défaut postgres :

$ sudo -s -u postgres Password:

vérifier ensuite que PostgreSQL fonctionne parfaitement avec la commande psql

Maintenant, nous allons ajouter un utilisateur-administrateur (avec une méthode très

sécurisée pour que l'utilisateur ait un mot de passe crypté), donc éditons le fichier suivant :

sudo gedit /etc/postgresql/8.3/main/pg_hba.conf

# TYPE DATABASE USER CIDR-ADDRESS METHOD# Database administrative login by UNIX socketslocal all postgres md5# "local" is for Unix domain socket connections onlylocal all all md5# IPv4 local connections:host all all 127.0.0.1/32 md5

2 Source : http://www.postgresql.org/http://doc.ubuntu-fr.org/postgresql

- 13 -

Page 111: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

# IPv6 local connections:host all all ::1/128 md5

Nous pouvons ensuite créer notre utilisateur :

$ sudo -s -u postgres$ createuser admin

Le nouvel rôle est-il superutilisateur ? (o/n) n Le nouvel rôle est-il autorisé à créer des bases de données ?(o/n) o Le nouvel rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n

$ psql -d template1 -c "alter user admin with password 'admin'"$ sudo /etc/init.d/postgresql-8.3 restart

Enfin selon notre choix, nous somme invités à installer l'un de ces outils de gestion

graphique de PostgreSQL:

$ sudo apt-get install pgadmin3

ou$ sudo apt-get install phppgadmin

Nous passons maintenant à la création une base de données qui sera utilisée par la suite

avec Monkey-Spider pour stocker toutes les informations relatives aux malwares trouvés. Pour

cela, rendons nous à la page http://localhost/phppgadmin/ (nous supposons que phppgadmin est

le client graphique choisi et installé) et connectons nous avec le compte utilisateur créé

précédemment. Créons ensuite une nouvelle base de données malwaredb et exécutons le code

SQL déjà récupéré du fichier monkey-spider-0.2/examples/mw-db-scheme.sql

Autre méthode avec les lignes de commande (dans le dossier ~/monkey-spider-

0.2/examples/) :

psql -f mw-db-scheme.sql malwaredb

voilà, maintenant que notre base de données est configurée, nous passons à l'installation

et la configuration de Monkey-Spider

7. Installation et configuration de Monkey-Spider

Nous commençons par télécharger l'archive de Monkey-Spider à partir du site :

http://sourceforge.net/project/showfiles.php?group_id=211520 puis décompressons le dans notre

dossier Home.

Ensuite, nous devons installer les plugins manquants de Python et nécessaires pour que

Monkey-Spider puisse fonctionner :

$ sudo apt-get install python-pYsearch $ sudo apt-get install python-soappy

- 14 -

Page 112: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Enfin, rendons nous au dossier de Monkey-Spider et lançons le script install.sh:

sudo ~/monkey-spider-0.2/install.sh

Nous passons maintenant à la configuration de Monkey-Spider pour qu'il puisse

communiquer avec PostgreSQL, pour cela éditons le fichier de configuration :

sudo gedit /etc/monkey-spider.conf

#$Id: monkey-spider.conf 40 2009-02-26 13:23:29Z riker2000 $# Configuration file for the Monkey-Spider system[ms-database]# Database configuration hostname=localhostdatabasename=malwaredbusername=adminpassword=admin[ms-scanner]# where the found malware should be storedmwattic=../found-malwareusername=adminpassword=admin[ms-scanner]# where the found malware should be storedmwattic=../found-malware

Maintenant que Monkey-Spider est configuré pour qu'il puisse communiquer avec

PostgreSQL, et que Heritrix a déjà commencé à faire des Jobs, nous passons à l'analyse des

fichiers .arc.gz par l'anti-virus pour cela, il suffit de lancer le script ms-processfolder de Monkey-

Spider :

sudo /usr/bin/ms-processfolder.py ~/heritrix-2.0.2/jobs/<FolderARC>/arcs

Et voilà, les virus trouvés seront mis dans un dossier ../found-malware et des

informations relatives à ces virus seront ajoutés automatiquement à la base de données

malwaredb.

- 15 -

Page 113: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 3

Script de mise à jour de nutch à partir

des fichiers ARC

• Mise à jour de Nutch à partir des fichiers ARC

◦ nutch-ARC.sh : mise à jour de Nutch à partir d'un seul Job (un seul répertoire)

#!/bin/bash# script de mise à jour de nutch à partir des fichiers ARC

#verification de la ligne de commandeif [ $# -eq 1 ]then

REP=$1a=$(date +'%Y%m%d%H%M%S')echo " a: "$a

elseecho "ERREUR 1: parametre introuvable : donnez le dossier contenant les fichiers ARC"exit

fi

if [ -d $REP ]; thenecho "######### Nouvelle tache le : " `date` " ############"echo "######### Nouvelle tache le : " `date` " ############"> ~/nutch-

1.0.3/logs/nutch-ARC.logecho "debut d'injection des urls"./bin/nutch inject ArcCrawlDir/crawldb urls >> ~/nutch-1.0.3/logs/nutch-ARC.logecho "injection effectuee avec succes"for i in $REP*.arc.gzdo

echo " ************* Fichier ARC : "$i" ****************"echo "debut de conversion du ARC en segements"`./bin/nutch org.apache.nutch.tools.arc.ArcSegmentCreator $i ~/nutch-

1.0.3/ArcCrawlDir/segments >> ~/nutch-1.0.3/logs/nutch-ARC.log`echo "conversion effectuee avec succes"s1=`ls -d ArcCrawlDir/segments/2* | tail -1`#echo "s1 : "$s1if test -d $s1then

echo "debut de l'update"./bin/nutch updatedb ArcCrawlDir/crawldb $s1 >> ~/nutch-

1.0.3/logs/nutch-ARC.logecho "fin de l'update"

elseecho "ERREUR 3: Le dossier ne contient pas des fichiers ARC"exit

fidone

if test -d $s1

- 16 -

Page 114: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

thenecho "debut de invertlinks"./bin/nutch invertlinks ArcCrawlDir/linkdb -dir ArcCrawlDir/segments >>

~/nutch-1.0.3/logs/nutch-ARC.logecho "fin de invertlinks"

if test -d ArcCrawlDir/indexesthen

rm -rf ArcCrawlDir/indexesfiecho "debut de l'index"./bin/nutch index ArcCrawlDir/indexes ArcCrawlDir/crawldb ArcCrawlDir/linkdb

ArcCrawlDir/segments/* >> ~/nutch-1.0.3/logs/nutch-ARC.logecho "fin del'indexe et fin de la tache"

fi

else echo "ERREUR 2: Le répertoire : " $REP " n'existe pas"fi

◦ RunNutchWithARC.sh : Mise à jour de Nutch à partir de tous les Jobs Heritrix

#!/bin/bash# script permettant la mise à jour du moteur de recherche Nutch à partir des fichiers .ARC

for N in `ls /usr/local/heritrix-2.0.2/jobs`do

/usr/local/nutch-1.0.3/nutch-ARC.sh /usr/local/heritrix-2.0.2/jobs/$N/arcs/done

• Mise à jour de Nutch à partir de son propre crawler

◦ RunNutchWithoutARC.sh : méthode classique pour la mise à jour de Nutch.#!/bin/bash# script qui permet la mise à jour du moteur de recherche Nutch indépendament des fichiers ARC# les sites seront crawlés par Nutch (son propre crawler# ce script sert à mettre à jour Nutch indépemdament de Monkey-Spider

# récupération des sites à partir de tous les jobs Heritrixrm -f /usr/local/nutch-1.0.3/urls/*for N in `ls /usr/local/heritrix-2.0.2/jobs`do

cat /usr/local/heritrix-2.0.2/jobs/$N/arcs/seeds.txt >> /usr/local/nutch-1.0.3/urls/urls.txtdone# lancement de nutch indépendament de Heritrix/usr/local/nutch-1.0.3/bin/nutch crawl urls -dir ArcCrawlDir -threads 10 -depth 3 -topN 50

- 17 -

Page 115: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 4

Code source de Monkey Spider

L'annexe suivant présente le code source de Monkey-spider pour la recherche des

malwares à partir de tous les fichiers .ARC et à partir de tous les Jobs de Heritrix.

• Code source de Monkey-Spider : ms-scanner-clamav.py modifié pour la recherche des

malwares à partir de tous les fichiers d'un seul Job Heritrix.

#!/usr/bin/env python#$Id: ms-scanner-clamav.py 43 2009-03-24 07:34:44Z riker2000 $

# ms-scanner-clamav - Scans a given directory with clamav. Moves found malware # to a seperate attic directory and updates the malware database.

# Copyright (C) 2006-2008 Ali Ikinci (ali at ikinci dot info)## This file is part of the Monkey-Spider project.# http://monkeyspider.sourceforge.net## The Monkey-Spider project is free software: you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation, either version 3 of the License, or# (at your option) any later version.## the Monkey-Spider project is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with the Monkey-Spider project. If not, see http://www.gnu.org/licenses/

# depends on clamav from http://www.clamav.net and pygresql from # http://www.pygresql.org/

from os.path import basenameimport sysimport ConfigParserimport osimport string

try: import pgexcept: print 'Error importing the pg module. Check your pygresql installation' sys.exit(2) def usage():

- 18 -

Page 116: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

print "Usage: ms-scanner-clamav.py [directory]"

def parseReportFile(): config = ConfigParser.ConfigParser() config.read("/etc/monkey-spider.conf") try: dbName = config.get('ms-database', 'databasename') dbHost = config.get('ms-database', 'hostname') dbUser = config.get('ms-database', 'username') dbPass = config.get('ms-database', 'password') mwattic = config.get('ms-scanner', 'mwattic') except: print 'Unable to read configuration. Check the configuration file.' exit(2)

#create attic for collected malware-binarys os.system("mkdir -p %s" % mwattic)

#cdx file name workdir = sys.argv[1] os.chdir(workdir) cdxfile = workdir+'.cdx' f = open(cdxfile, "r") cdx = f.readlines() f.close() # checksum index of the files for the reassosiaction of found malware cix = {} for x in range(len(cdx)): cix[x] = string.split(cdx[x])[5]

f = open(workdir+"-clamav.report", "r") clamav = f.readlines() f.close()

clamav_engine_version = string.split(string.split(clamav[0])[1], "/")[0] clamav_signature_version = string.split(string.split(clamav[0])[1], "/")[1] clamav_last_update = string.split(clamav[0], "/")[2][:-1]

for i in range(1, len(clamav)): mw_name = string.split(clamav[i])[1]

mw_filename = string.split(string.split(clamav[i])[0], ":")[0]mw_checksum = string.split((string.split(string.split(string.split(clamav[i])

[0], ":")[0], "/")[-1]), ".")[0] try: db = pg.connect(dbname=dbName, host=dbHost, user=dbUser, passwd=dbPass) print'\n\n###############################################################' print'##### ALLERTE MALWARE #####' print'##### Sites Infectes, Veuillez consultez votre #####' print'##### base de donnees pour voir la liste des virus trouves #####' print'#################################################################\n' print'Connection avec la base de donnees etablie avec succe:'

except: print 'Unable to connect to database. Check your configuration.' exit(2) os.system("cp -u " + mw_filename + " %s" % mwattic) #Generate the next ids for databases malware and mw_scanner q = db.query("SELECT max(id) from malware") max_mw_id = q.getresult()[0][0] if max_mw_id == None: max_mw_id = 1 else: max_mw_id = max_mw_id + 1 q = db.query("SELECT max(id) from mw_scanner") max_mw_sc_id = q.getresult()[0][0]

- 19 -

Page 117: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

if max_mw_sc_id == None: max_mw_sc_id = 1 else: max_mw_sc_id = max_mw_sc_id + 1

id = max_mw_idfilename = basename(mw_filename)checksum = string.split(basename(mw_filename), ".")[0]for x in range(len(cix)):

if cix[x] == checksum: break url = string.split(cdx[x])[2].lower() size = 0 date = string.split(cdx[x])[0] dateS = date[:4] + "-" + date[4:6] + "-" + date[6:8] + " " + date[8:10] + ":" + date[10:12] + ":" + date[12:14]

q = "INSERT INTO malware VALUES (%s,'%s','%s','%s',%s,'%s','%s')" % (id, filename, url, checksum, size, dateS, mw_name)

qq = "MALWARES ===> %s,'%s','%s','%s',%s,'%s','%s'" % (id, filename, url, checksum, size, dateS, mw_name) print ''+ qq db.query(q) db.close()

def main(): if (len(sys.argv) != 2): usage() sys.exit(2) if not os.path.exists(sys.argv[1]): print "Error: Path does not exist or you don't have the needed permissions" sys.exit(2) if not os.path.isdir(sys.argv[1]): usage() sys.exit(2) #chdir to where the arc file resides workdir = sys.argv[1] os.chdir(workdir) print 'Scanning folder %s for viruses with ClamAV' % workdir, #Scan directory with clamav and generate report file scanMBB1='clamscan -V > '+ workdir + '-clamav.report' os.system(scanMBB1) scanMBB2='clamscan ' + workdir + '/ |grep FOUND >> ' + workdir + '-clamav.report' os.system(scanMBB2)

parseReportFile() if __name__ == "__main__": main()

• Script pour la recherche des malwares à partir de tous les Jobs de Heritrix :

#!/bin/bash# script qui permet de lancer la recherche des malwares avec monkey-Spider

for MS in `ls /usr/local/heritrix-2.0.2/jobs`do

/usr/bin/ms-processfolder.py /usr/local/heritrix-2.0.2/jobs/$MS/arcs/done

- 20 -

Page 118: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 5

Script d'insersion des sites dans la base

de données

Bien que Eurêka dispose d'une interface d'insertion des sites dans la base de données,

cette tâche reste très pénible pour l'insertion d'un très grand nombre de sites manuellement. En

plus, la recherche des adresses IP des serveurs hébergeant ces sites rend cette tâche quasi

impossible manuellement.

Ces scripts permettent la recherche des adresses IP des serveurs hébergeant ces sites puis

leurs insertion dans la base de données automatiquement

• SearchSites.sh :

#!/bin/bash# script de recherche de site par adresse IP du serveur# il permet l'acces à une base de données et d'afficher la liste des sites hébergés dans un serveur (son IP est passée en paramètre pour la fonction)

if [ $# -eq 1 ]then

URL=$1else

echo "parametre introuvable, veillez donner l'adresse IP du serveur"exit

ficat < ~/siteToIpServer/user.conf | while truedo for (( i=1; i<=9; i++ ))

doread ligne

done if [ "$ligne" = "" ]; then break; fi host=$ligne read ligne dbname=$ligne read ligne user=$ligne read ligne pass=$ligneselect_ipserver="$(psql -h ${host} -d ${dbname} -U ${user} -c "SELECT DISTINCT site FROM ipserver where url='$URL'" )"echo $select_ipserver > ~/siteToIpServer/searchSites1.txtdone

- 21 -

Page 119: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

# Traitement sur le résultat de la recherche des sites à partir d'une adresse IP d'un serveurrm -f ~/siteToIpServer/searchSites2.txttouch ~/siteToIpServer/searchSites2.txtfor line in $(cat ~/siteToIpServer/searchSites1.txt)do

echo "$line" >> ~/siteToIpServer/searchSites2.txtdone#rm -f ~/siteToIpServer/searchSites2.txt

## nétoyage du fichier searchSites2 et ajout de site: pour les sitesrm -f ~/siteToIpServer/searchSites3.txttouch ~/siteToIpServer/searchSites3.txtnb1=`more ~/siteToIpServer/searchSites2.txt|wc -l`nb2=$((nb1 - 1 ))echo $nb1 $nb2~/siteToIpServer/suppligne.sh searchSites2.txt 1 2 $nb1 $nb2 >> ~/siteToIpServer/searchSites3.txtwhile read LINEdo

echo "site:"$LINE >> ~/siteToIpServer/searchSites4.txtdone < ~/siteToIpServer/searchSites3.txt#rm -f ~/siteToIpServer/searchSites3.txt

• AddSites.sh :

#!/bin/bash

#verification de la ligne de commandeif [ $# -eq 1 ]then

FILE=$1else

echo "parametre introuvable : donnez le fichier des adresses web"exit

fi

# première manipulation : recherche des adresse IPrm -f ~/siteToIpServer/AddSites1.txttouch ~/siteToIpServer/AddSites1.txtif [ -f $FILE ]then

cat $FILE | while read lignedo

echo ---- >> ~/siteToIpServer/AddSites1.txt nslookup $ligne >> ~/siteToIpServer/AddSites1.txt

doneelse

echo "$FILE est introuvable"exit

fi

# Deuxième manipulation : elimination des lignes non souhaitéesrm -f ~/siteToIpServer/AddSites2.txttouch ~/siteToIpServer/AddSites2.txtwhile read LINEdo

if [ "$LINE" = "----" ] then

for (( i=1; i<=5; i++ ))do

read LINE done

fi

- 22 -

Page 120: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

echo $LINE >> ~/siteToIpServer/AddSites2.txtdone < ~/siteToIpServer/AddSites1.txt#rm -f ~/siteToIpServer/AddSites1.txt

# Troisième manipulation : filtrage des adresses webrm -f ~/siteToIpServer/AddSites3.txttouch ~/siteToIpServer/AddSites3.txtrm -f ~/siteToIpServer/AddSites4.txttouch ~/siteToIpServer/AddSites4.txtfor line in $(cat ~/siteToIpServer/AddSites2.txt)do

echo "$line" >> ~/siteToIpServer/AddSites3.txtdone#rm -f ~/siteToIpServer/AddSites2.txt

while read LINEdo

if [ "$LINE" = "Name:" ] then

read LINEvar1=${LINE}read LINEif [ "$LINE"="Address:" ]then

read LINEvar2=${LINE}echo $var1 "---------->" $var2 >> ~/siteToIpServer/AddSites4.txt~/siteToIpServer/insertSites.sh $var1 $var2echo "le site "$var1 " est ajoute a la base de donnees avec l'ip

du serveur : " $var2fi

fidone < ~/siteToIpServer/AddSites3.txt#rm -f ~/siteToIpServer/AddSites3.txt

• insertSites.sh :

#!/bin/bash# script de connexion avec la base de données PostGreSQL# il permet l'insertion d'une nouvelle entrée (passée en paramètre) dans la table ipserver# nouvelle entrée de la base de données : (site | url)

if [ $# -eq 2 ]then

SITE=$1URL=$2

elseecho "parametres introuvables, donnez deux paramètres : site & url"exit

ficat < ~/siteToIpServer/user.conf | while truedo for (( i=1; i<=9; i++ ))

doread ligne

done if [ "$ligne" = "" ]; then break; fi host=$ligne read ligne dbname=$ligne read ligne user=$ligne read ligne

- 23 -

Page 121: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

pass=$ligneinsertion_ipserver="$(psql -h ${host} -d ${dbname} -U ${user} -c "INSERT INTO ipserver (site, url) VALUES ('${SITE}', '${URL}')" )"done

• suppligne.sh :

#! /bin/bash# enlever-des-lignes.sh

# Déclaration fonction d'usagefonction_usage (){echo -e "\tUsage : $0 [n|n-n]\n"echo -e "\tn est un entier positif."echo -e "\tn-n est un intervalle (eg. 6-15)"echo -e "\tLes entiers seront séparés par un espace.\n\

Les intervalles n-n séparés par un tiret \"-\".\n"}

# Test existence fichierif [ ! -e "$1" ]; thenecho -e "Le fichier $1 n'existe pas ! \n"fonction_usageexit 2fi

# Test nombre de paramètresif [ "$#" -lt 2 ]; thenecho -e "Nombre de paramètres incorrects ! \n\n"fonction_usageexit 3fi

# Test entier positif et/ou mauvais intervallefor n in "$@"; docase "$n" in-* ) echo -e "Les entiers doivent être de type positif !\n"

fonction_usageexit 4

;;*-* ) var1=$(echo $n | cut -d- -f1)

var2=$(echo $n | cut -d- -f2)if [ "$var1" -gt "$var2" ]; thenecho -e "Erreur dans l'intervalle \"$n\"\n"fonction_usageexit 5fi

;;[0-9]*[!-][0-9]* ) echo -e "Le caractère séparateur d'intervalle n'est pas un tiret !\n"

fonction_usageexit 6

;;esacdone

# Initialisation variable fichier (pour libérer le paramètres $1)fichier=$1

# Décalage des paramètresshift

# Initialisation des paramètres en passant par :

- 24 -

Page 122: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

#+ substitution espace par saut de ligne#++ tri numérique#+++ substitution saut de ligne par espace et#++++ substitution tiret par virguleset $(echo "$@" | sed 's/ /\n/g'| sort -n | sed -e :a -e '$!N;s/\n/ /;ta' -e 's/-/,/g')

# Initialisatieon compteurn=1# Initialisation variable "cmd" (sed)cmd="sed "

# Boucle tant que compteur inférieur au nombre de paramètreswhile [ "$n" -le "$#" ]do# On rajoute à la variable "cmd" le reste de la commande sed cmd="$cmd-e ''\$$n'd' "# On incrémente le compteurn=$(expr $n + 1)done

# On exécute la commande (cmd) qui doit ressembler pour 4 paramètres initiaux à :#+ sed -e ''$1'd ' -e ''$2'd ' -e ''$3'd ' $fichiereval $cmd $fichier

• user.conf :

################################################################################################# ce ci est un fichier de configuration pour la connexion avec la base de données PostGreSQL ### ### This is the file configuration to the connexion with PostGreSQL DataBase ### ### 1- Nom de la machine/Hostname ### ### 2- Nom de la base de données/DBName ### ### 3- Nom de l'utilisateur/UserName or Login ### ### 4- Mot de passe de l'utilisateur/PassWord ### ################################################################################################ localhost malwaredb <User_postgreSQL><Password_user>

- 25 -

Page 123: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

Annexes

Annexe 4

Architecture complète de notre projet

- 26 -

Page 124: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens
Page 125: Mise en place d'une solution de détection des pirates et des malwares dans les sites tunisiens

تلخيص :

الهدف من هذا العمل هو إنشاء برمجية للكشف عن البرامج الضارة والفيروسات والقراصنة في

المواقع التونسية. يتكون هذا المشروع من عنصرين, في المرحلة الولى أجرينا دراسة نظرية

حول محركات البحث و"الهوني كليينت" الحرة. هذه الدراسة مكنتنا من اعتماد على محرك البحث

"نوتش" للبحث على القراصنة و"مونكي سبيدر" للبحث على الفيروسات في المواقع التونسية.

في مرحلة ثانية أجرينا التخصيص والتكامل بين "نوتش" و"مونكي سبيدر"، ثم قمن بوضع بينية

لدارة المواقع والبرامج الضارة

Résumé :

L'objectif de ce travail est la mise en place d'une solution de détection des malwares dans

les sites tunisiens et la détection des pirates informatiques à travers leurs signatures textuelles.

Ce projet comporte deux volets. Dans le premier, nous avons procédé à une étude théorique

sur les moteurs de recherche open source et sur les Honeyclients. Cette étude nous a permis

d'adopter Nutch pour la recherche des pirates dans les sites défaillés et Monkey-Spider pour la

recherche des malwares hébergés dans les sites web. Une installation et une configuration de ces

deux outils nous ont permis de déterminer leurs inconvénients. Dans un deuxième volet, nous

avons procédé à une personnalisation et une intégration de Nutch dans Monkey-Spider et nous

avons développé une interface J2EE pour la gestion des sites et des malwares trouvés.

Mots clés : Moteur de recherche, Honeypots, Honeyclients, crawler, Apache Tomcat, JAVA,

Script Shell, Phyton, JSP, WaveMaker, Open Source, serveur, Ubuntu, PostgreSQL, Nutch,

Heritrix, Monkey-Spider, UML, ClamAV, Antivirus.

Abstract :

The objective of this work is the establishment a solution to malware detection in Tunisian

sites and detect hackers through their textual signatures. This project has two components. In the

first, we conducted a theoretical study on search engines and Honeyclients open source. This

study has enabled us to adopt Nutch to search pirate sites in failing and Monkey-Spider for the

detection of malware hosted in the websites. Installation and configuration of these two tools

have allowed us to determine their drawbacks. In a second phase, we conducted a customization

and integration Nutch in MonkeySpider and we developed an interface J2EE for managing sites

and malware found.

Keywords : Search engine, Honeypots, Honeyclients, Tomcat, JAVA, Script Shell, Phyton, JSP,

WaveMaker, Open Source, Ubuntu, PostgreSQL, Nutch, Heritrix, Monkey-Spider, UML ...