analyse informatique post-mortem

Transcription

analyse informatique post-mortem
No ORDRE
de la thèse
Thèse
3319
présentée
DEVANT L’UNIVERSITÉ DE RENNES 1
pour obtenir
le grade de : DOCTEUR
DE L’UNIVERSITÉ DE RENNES 1
Mention : INFORMATIQUE
PAR
DUVAL Thomas
Équipe d’accueil (du doctorant)
SUPÉLEC
École Doctorale
Matisse
Composante universitaire (du directeur de thèse)
UFR
SUPÉLEC
avenue de la Boulaie
35511 CESSON-SÉVIGNÉ
TITRE DE LA THÈSE :
“ Analyse informatique post-mortem : mise en œuvre
et évaluation d’une approche bayésienne”
Soutenue le 16 décembre 2005 devant la commission d’examen
Composition du jury :
– Monsieur Ludovic Mé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supélec
– Monsieur Bernard Jouga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supélec
– Monsieur Laurent Roger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DGA / CELAR
– Madame Solange Ghernaouti-Hélie (rapporteur) . . . . . . . . . . . . . . . . . . . Université de Lausanne
– Monsieur Salem Benferhat (rapporteur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Université d’Artois
– Monsieur David Billard (rapporteur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Université de Genève
– Monsieur Bernard Cousin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Université de Rennes 1
ii
Table des matières
Résumé
ix
Remerciements
xi
Introduction
xiii
1 Etat de l’art
1.1 Formalisations du processus d’analyse . . . . . . . . . . . .
1.1.1 Modèle de McKemmish . . . . . . . . . . . . . . .
1.1.2 Formalisations sur l’ensemble du processus . . . . .
1.1.3 Formalisations sur une partie du procesus forensique
1.2 Techniques d’investigation . . . . . . . . . . . . . . . . . .
1.2.1 Techniques d’analyse forensique . . . . . . . . . . .
1.2.2 Outils pour l’analyse forensique . . . . . . . . . . .
1.3 Etat de l’art des systèmes d’aide à la décision . . . . . . . .
1.3.1 Systèmes experts . . . . . . . . . . . . . . . . . . .
1.3.2 Les différents types de moteurs d’inférence . . . . .
1.3.3 Motivations du choix retenu . . . . . . . . . . . . .
1.3.4 Mise en oeuvre des réseaux bayésiens . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
3
9
14
14
18
35
35
36
43
43
2 Présentation de notre approche
2.1 Premier exemple trivial . . . . . . . . . . . . . . . .
2.2 Introduction de la notion de plan d’investigation . . .
2.2.1 Modèle général d’une enquête . . . . . . . .
2.2.2 Définition d’un plan d’investigation . . . . .
2.3 Construction d’un plan d’investigation . . . . . . . .
2.3.1 Les variables . . . . . . . . . . . . . . . . .
2.3.2 Construction de la structure . . . . . . . . .
2.3.3 Initialisation des probabilités . . . . . . . . .
2.3.4 Bases de données . . . . . . . . . . . . . . .
2.4 Inférence et exploitation des plans d’investigation . .
2.4.1 Les algorithmes . . . . . . . . . . . . . . . .
2.4.2 Utilisation des résultats finaux de l’enquête .
2.5 Création et analyse de plusieurs plans d’investigation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
53
53
55
61
61
61
62
62
65
65
65
66
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TABLE DES MATIÈRES
iv
2.5.1
2.5.2
2.5.3
Utilité de la variable adresse . . . . . . . . . . . . . . . . . .
Relation entre les plans d’investigation . . . . . . . . . . . .
Apport de la création de plusieurs plans d’investigation au niveau de l’analyse de l’attaquant . . . . . . . . . . . . . . . .
3 Expérimentations
3.1 Description de la plateforme de test . . . . . . . . . . . .
3.1.1 Base de connaissances . . . . . . . . . . . . . . .
3.1.2 Interface Homme-Machine . . . . . . . . . . . . .
3.1.3 Fonctionnalités de la plateforme . . . . . . . . . .
3.2 Exemple sur un cas concret : l’affaire Kevin Mitnick . . .
3.2.1 Introduction . . . . . . . . . . . . . . . . . . . . .
3.2.2 L’enquête assistée par la plateforme XMeta . . . .
3.2.3 Synthèse des résultats obtenus avec XMeta . . . .
3.2.4 Conclusions de l’enquête de Tsutomu Shimomura
3.3 Hacker’s Challenge 1 & 2 . . . . . . . . . . . . . . . . . .
3.3.1 Exemple du challenge numéro 8 . . . . . . . . . .
3.3.2 Exemple du challenge numéro 6 . . . . . . . . . .
3.3.3 Protocole d’expérimentation . . . . . . . . . . . .
3.3.4 Présentation des résultats . . . . . . . . . . . . . .
A La base de vulnérabilités ICAT
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
67
68
69
69
70
70
72
72
72
73
76
76
77
77
80
85
86
107
B Construction du réseau
111
B.1 Apprentissage de la structure . . . . . . . . . . . . . . . . . . . . . . 111
B.2 Apprentissage des paramètres . . . . . . . . . . . . . . . . . . . . . . 112
C Le logiciel XMeta
113
C.1 Enregistrement des données . . . . . . . . . . . . . . . . . . . . . . 113
Table des figures
1
Les domaines de l’analyse forensique . . . . . . . . . . . . . . . . .
xx
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
Le processsus forensique vu par Mandia et Procise . . . . . . . . . .
Le cycle de l’analyse selon le projet CTOSE . . . . . . . . . . . . . .
Le modèle de processus du projet CTOSE . . . . . . . . . . . . . . .
Un exemple du langage DFPL . . . . . . . . . . . . . . . . . . . . .
Un exemple de réseau de Petri dans le modèle de Stephenson . . . . .
Un exemple du modèle utilisé par Elsaesser et Tanner . . . . . . . . .
Le processus d’investigation de Kerf . . . . . . . . . . . . . . . . . .
L’arbre de décision de Stallard . . . . . . . . . . . . . . . . . . . . .
Hiérarchie des éléments dans la formalisation de Leigland et Krings .
Résultats produits par les programmes "w", "last" et "lastlog" sous Unix
Exemple d’alertes Snort . . . . . . . . . . . . . . . . . . . . . . . . .
Positionnement d’un pot de miel . . . . . . . . . . . . . . . . . . . .
L’outil Cheops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Envoi d’une copie d’un disque dur via un réseau . . . . . . . . . . . .
Lecture d’une image d’un disque dur sous Linux . . . . . . . . . . .
Autopsy - présentation des images disque analysées . . . . . . . . . .
Autopsy - pattern matching . . . . . . . . . . . . . . . . . . . . . . .
Exemple de réseau de neurones multi-couches . . . . . . . . . . . . .
Exemple de carte de Kohonen . . . . . . . . . . . . . . . . . . . . .
Exemple de réseau de Petri . . . . . . . . . . . . . . . . . . . . . . .
Exemple d’arbre de décision . . . . . . . . . . . . . . . . . . . . . .
Exemple de réseau bayésien . . . . . . . . . . . . . . . . . . . . . .
Sous-ensemble du réseau bayésien de Levitt et Laskey . . . . . . . .
4
5
6
10
11
12
13
15
17
20
25
27
30
33
33
34
34
36
38
38
39
40
49
2.1
2.2
2.3
2.4
2.5
2.6
Un exemple de réseau bayésien . . . . . . . . . . . .
Les quatre questions associées à une enquête . . . . .
La relation entre l’enquêteur et ses outils forensiques
Les flux d’information dans le moteur d’inférences .
L’algorithme de maximum de vraisemblance . . . . .
Un exemple d’arbre d’attaque . . . . . . . . . . . . .
.
.
.
.
.
.
52
54
55
60
63
66
3.1
Structure de l’interface homme-machine XMeta . . . . . . . . . . . .
71
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TABLE DES FIGURES
vi
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
Les ordinateurs impliqués dans l’attaque . . . . . . . . . . . . . . . .
Les premiers fichiers d’audit de toad.com . . . . . . . . . . . . . . .
Les fichiers d’audit provenant d’Osiris [Shi95] . . . . . . . . . . . .
Les fichiers d’audit provenant de Rimmon [Shi95] . . . . . . . . . . .
Quelques variables système de Rimmon [Shi95] . . . . . . . . . . . .
L’attaque de Kevin Mitnick : première étape . . . . . . . . . . . . . .
L’attaque de Kevin Mitnick : deuxième étape . . . . . . . . . . . . .
L’attaque de Kevin Mitnick : troisième étape . . . . . . . . . . . . . .
Le premier système compromis de Financialco.net. Les enquêteurs ont
observé une atteinte à l’intégrité du système et une attaque de type
dégradation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le deuxième système compromis de Financialco.net, les enquêteurs
découvrent que l’attaquant a eu accès à un compte administrateur . . .
Cheminement de l’attaquant en traits pleins et des enquêteurs en traits
pointillés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Challenge 6 : un extrait du code source du site web et SQL . . . . . .
Challenge 6 : requête SQL résultante . . . . . . . . . . . . . . . . . .
Challenge 6 : première analyse avec les observations : perte de confidentialité et perte d’intégrité . . . . . . . . . . . . . . . . . . . . . .
Challenge 6 : deuxième analyse avec l’ajout de l’action message : l’attaquant a envoyé un message à l’administrateur (l’action message n’est
pas visible sur cette figure, nous n’avons laissé que les attaques proposées) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Challenge 6 : troisième analyse après observation de l’attaque bypass
Scores de la plateforme avec contraintes . . . . . . . . . . . . . . . .
Scores de la plateforme avec contraintes . . . . . . . . . . . . . . . .
Temps de calcul (construction et inférence du réseau bayésien) pour
chaque expérience . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tome 1 : rang des attaques en utilisant la base ICAT puis la base ICAT
et la base des enquêtes . . . . . . . . . . . . . . . . . . . . . . . . .
Tome 2 : rang des attaques en utilisant la base ICAT puis la base des
enquêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tome 2 : rang des attaques en utilisant la base ICAT puis la base ICAT
et la base des enquêtes . . . . . . . . . . . . . . . . . . . . . . . . .
73
74
74
75
75
77
78
78
80
81
81
82
83
83
84
85
89
90
91
93
94
95
B.1 L’algorithme K2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
C.1 Les principaux objets de l’application XMeta . . . . . . . . . . . . . 114
Liste des tableaux
1
Le processus d’investigation selon le DFRWS . . . . . . . . . . . . .
xxi
1.1
1.2
1.3
1.4
1.5
1.6
1.7
Résumé des formalisations sur la globalité du processus
Résumé des formalisations sur une partie du processus
Synthèse des caractéristiques . . . . . . . . . . . . . .
Récupération des informations système . . . . . . . .
Table de probabilité associée aux nœuds B et D . . . .
Table de probabilité associée au nœud B . . . . . . . .
Synthèse sur les différents moteurs d’inférences . . . .
.
.
.
.
.
.
.
9
14
18
22
40
40
43
2.1
Table des probabilités conditionnelles pour la variable Exploit E et
Usurpation U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les variables dégâts loss . . . . . . . . . . . . . . . . . . . . . . . .
Les variables attaques attack . . . . . . . . . . . . . . . . . . . . . .
Les variables action action . . . . . . . . . . . . . . . . . . . . . . .
Les variables techniques d’investigation tech . . . . . . . . . . . . . .
Les différentes interprétations associées à nos types de variables . . .
53
56
58
59
59
64
2.2
2.3
2.4
2.5
2.6
3.1
3.2
3.3
3.4
3.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Les attaques analysées dand les tomes 1 et 2 de Hacker’s Challenge .
Quelques statistiques sur les expériences menées sur les contraintes du
réseau bayésien . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques statistiques sur les expériences menées sur les différentes
bases de données . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les résultats du tome 2 sur les techniques d’investigation . . . . . . .
Les techniques d’investigation utilisées pour le tome 2 . . . . . . . .
vii
87
87
92
96
96
viii
LISTE DES TABLEAUX
Résumé
L’analyse forensique (ou analyse post-mortem) aide les administrateurs système et
les enquêteurs en leur fournissant des outils et des techniques qui leur permettent de
comprendre une attaque informatique, de restaurer un système sain et de trouver le ou
les attaquants. Cette activité est aujourd’hui en grande partie empirique et repose sur
l’expérience des enquêteurs.
Les objectifs de nos travaux sont d’une part de modéliser une enquête informatique
et tout ce qui s’y rapporte (enquêteur, traces informatique, etc.) et d’autre part d’aider
l’enquêteur en mettant en valeur les attaques les plus probables et pour une configuration logicielle donnée, les logiciels les plus vulnérables et les techniques d’investigation
qui permettront de retrouver d’éventuels indices ou preuves.
Les résultats de ces travaux s’adressent dans un premier temps aux chercheurs en
Computer Forensics dont la préoccupation est l’analyse des attaques et la recherche de
la preuve. Ces résultats s’adressent ensuite aux enquêteurs et aux administrateurs qui
ont en charge l’analyse des attaques informatiques.
Nous proposons dans ce mémoire d’utiliser les réseaux bayésiens pour automatiser (sous certaines conditions) les investigations informatiques. Notre modèle, META,
est basé sur la connaissance de l’architecture et de la configuration des systèmes d’information, sur les indices accumulés tout au long de l’enquête et sur les résultats des
enquêtes précédentes. Ces informations sont enregistrées dans une base de données
mise à jour à chaque nouvelle enquête. Cette base de données permet de proposer des
hypothèses pour l’enquête en cours.
L’intérêt de notre méthode est ensuite illustré par la plateforme XMeta où nous
avons effectué l’étude de plusieurs exemples dont une affaire bien connue : l’attaque
du réseau de Tsutomu Shimomura par Kevin Mitnick et des affaires d’intrusions tirées
des ouvrages Hacker’s Challenge.
Ces travaux ont été réalisés dans le laboratoire SSIR de Supélec à Rennes pour
la mise en place du modèle et au CELAR (DGA) pour toutes les expériences sur la
plateforme.
ix
x
RÉSUMÉ
Remerciements
Je tiens à remercier dans un premier temps Laurent Roger et Bernard Jouga pour
m’avoir encadré tout au long de ces trois années de doctorat. Je tiens ensuite à remercier Ludovic Mé (et Gerardo Rubino) pour m’avoir accompagné en tant que directeur
de thèse. J’ai aussi effectué ce travail grâce aux équipes du CELAR/SSI/AMI et de
Supélec qui m’ont permis d’avancer plus rapidement dans mes travaux.
Je voudrais remercier aussi certaines personnes de la DST, de l’IRCGN et du SRPJ
de Rennes avec qui j’ai pu discuter de mes travaux et qui m’ont montré le déroulement
de véritables enquêtes informatiques.
Je tiens à remercier toutes les personnes qui ont lu et relu ce mémoire : en premier
mesdames et messieurs les rapporteurs, Solange Ghernaouti-Hélie, David Billard et Salem Benferhat, ensuite, Bernard Jouga et Laurent Roger pour leur travail de relecture
intense et enfin Éliane et les thésards pour les fautes d’orthographe.
Je finirais mes remerciements par les thésards avec qui j’ai passé de bons moments,
ma famille qui m’a toujours supporté pendant mes longues années d’étudiant et Agnès
pour son aide pour la soutenance.
31 mars 2006
xi
xii
REMERCIEMENTS
Introduction
Les délits informatiques en 2004
Le Clusif (Club de la sécurité des systèmes d’information français) [CLU04] publie un rapport annuel sur la criminalité informatique. Selon cette association, en 2004,
les faits marquants correspondent à 6 principaux types d’attaques. Le premier type
est le vol de données, avec notamment le vol de code source de certaines versions de
Microsoft Windows ou le vol de données client chez Wells Fargo. Le deuxième type
d’attaques correspond à l’utilisation de programmes malveillants ou indésirables. Ces
programmes, comme les adware, les spyware et les keylogger, se multiplient de façon grandissante. Ils s’appuient sur des vulnérabilités connues ou inconnues, comme
par exemple, la faille JPEG [MS04-028] permettant de faire exécuter sans l’accord
de l’utilisateur des programmes de type adware et spyware sur des systèmes Windows
vulnérables. Le troisième type d’attaques correspond aux chantages, extorsions et rackets sur Internet. Les modes opératoires habituellement utilisés sont les suivants :
– l’attaquant a eu accès à des données confidentielles et demande à l’entreprise une
rançon pour de pas divulguer ces informations,
– l’attaquant utilise un logiciel d’attaque pour passer outre certaines fonctionnalités d’un site web (comme pour l’affaire Google1 ),
– l’attaquant utilise des attaques de type DDoS (Distributed Denial of Service) en
utilisant des systèmes zombies.
Le quatrième type d’attaques vise la concurrence : certaines entreprises attaquent d’autres
entreprises soit en les espionnant, soit en portant atteinte à leurs marques, soit en diffusant de fausses informations pour, par exemple, faire chuter une valeur en Bourse
(affaire Belvédère2 ), soit en faisant des attaques par DDoS sur des sites Web. Le cinquième type d’attaques fait référence au terrorisme. Le Clusif souligne que la définition
du cyber terrorisme n’est pas bien établie et que beaucoup de personnes sont en désaccord sur celle-ci. Il y a beaucoup de critères qui peuvent entrer en compte lorsque l’on
parle de cyber terrorisme : en fonction du contexte politique, social, culturel, religieux,
etc., en fonction du but recherché : influence, revendication, répression, conversion,
extermination, nihilisme, etc. Enfin, le sixième type d’attaques vient du déploiement
massif des réseaux sans fil (notamment 802.11 et Bluetooth). Comme ces réseaux sont
de plus en plus présents et qu’ils reposent de plus en plus sur une couche réseau IP, il
est facile pour des attaquants d’accéder à des ressources jusqu’alors cachées au fond
1 http
2 http
://www.zdnet.fr/actualites/internet/0,39020774,39146324,00.htm
://legalis.net/breves-article.php3?id_article=1235
xiii
INTRODUCTION
xiv
d’un réseau. Le Clusif souligne aussi que l’on a vu apparaître en juin 2004 les premiers
virus / vers sur des systèmes de téléphones portables (sur Symbian via Bluetooth).
Selon l’étude de PricewaterhouseCoopers cité dans [Dun06], le fraudeur type serait un homme (à 85%) ayant en moyenne 41 ans et une fois sur deux, cet individu
travaille dans l’entreprise. Ces chiffres proviennent d’un constat des consultants de PricewaterhouseCoopers dans leur dernière analyse de la fraude au sein des entreprises
françaises. Cette étude montre aussi que même si le nombre de délits informatiques a
augmenté, c’est surtout dû à une augmentation de la capacité de détection des entreprises.
Le FBI (Federal Bureau of Investigation) émet lui aussi un rapport annuel sur la
sécurité informatique via le CSI (Computer Security Institute) [FBI04]. Ce rapport est
plus orienté sur les entreprises que celui du Clusif. Il montre que les organisations qui
dépensent le plus pour leur sécurité informatique sont les sociétés de transport, puis
le gouvernement fédéral, puis les sociétés de télécommunications. On peut noter aussi
que le nombre d’utilisations frauduleuses observées sur des systèmes informatiques est
en baisse depuis 2000, ce qui ne veut pas dire que les délits informatiques ont baissé.
Le nombre d’incidents est évalué à maximum 5 par entreprise sur l’année 2004 par la
majorité des personnes qui ont répondu au questionnaire. Les types d’incidents les plus
importants en nombre sont :
1. l’attaque par des virus,
2. l’abus de l’accès au Web3 par des personnes internes à l’entreprise,
3. le vol d’ordinateurs portables.
On peut cependant observer une forte chute des abus d’accès Web et des dénis de
service. Pourtant les dénis de service font perdre beaucoup d’argent aux entreprises
avec 26 millions de dollars pour l’année 2004. En matière de sécurisation, le FBI fait
remarquer que pratiquement la totalité des entreprises utilisent des anti-virus et des
pare-feux et que 82% effectuent des audits de sécurité sur leurs systèmes. Quand un
incident arrive, 91% des entreprises appliquent des patches de sécurité mais 48% ne
préviennent pas les autorités compétentes. La publicité négative qui pourrait en résulter
en est la raison principale.
Quelques exemples de délits informatiques
Voici quelques exemples de délits où l’informatique a eu un rôle prépondérant. Ces
exemples sont tirés d’un article paru dans Law Office Computing [NS02].
Colonel Oliver North
Le colonel Oliver North a été arrêté en 1989 pour avoir été impliqué dans l’affaire iranienne « Contra ». Bien qu’ayant effacé consciencieusement tous les courriers
électroniques pouvant l’accuser, les services de police chargés de l’enquête ont quand
3 utilisation
à des fins personnelles
xv
même pu récupérer ses messages via le système de sauvegarde du réseau, ce qui a
permis de confondre l’accusé.
Agent Robert Hanssen
L’agent Robert Hanssen était un agent du FBI et un espion américain. Il a été
condamné pour espionnage en juillet 2001 car il passait des informations confidentielles aux Russes. Les agents chargés de l’arrêter ont utilisé des techniques standards
comme l’écoute de ses communications téléphoniques personnelles et professionnelles.
Mais ils ont aussi utilisé des techniques propres à l’analyse forensique informatique
comme l’utilisation d’un keylogger sur son ordinateur ou l’analyse de fichiers C et binaires. En effet, Robert Hanssen connaissait la programmation et avait créé un logiciel
permettant l’envoi automatique de données vers ses contacts russes.
Wen Ho Lee
En 2000, le scientifique Wen Ho Lee a été arrêté car il était accusé d’avoir copié
entre 1993 et 1999 des données confidentielles concernant des armes nucléaires. Wen
Ho Lee aurait téléchargé près de 1,4 Go de données sensibles puis les aurait copiés
sur des cassettes pour ensuite les jeter en 1999 à la poubelle. Les cassettes ont été
retrouvées puis analysées plus d’un an plus tard par le FBI mais elles n’ont montré
aucune trace de documents confidentiels. Le 13 septembre 2000, 58 chefs d’accusation
sur 59 ont été supprimés et Wen Ho Lee n’a été condamné qu’aux 9 mois de prison
qu’il venait de faire.
Kevin Mitnick
Kevin Mitnick est l’un des pirates informatiques les plus connus. Il a commencé
ses activités de piratage informatique très jeune en attaquant la compagnie Pacific Bell
pour obtenir gratuitement des appels téléphoniques longue distance. Il a ensuite attaqué
en 1982 le NORAD (North American Aerospace Defense Command). Dans les années
80, il a pris le contrôle de plusieurs centraux téléphoniques à New York et en Californie
et il a ensuite attaqué une nouvelle fois la Pacific Bell en 1991. Mitnick devient alors un
fugitif recherché par le FBI. En 1994-1995, il vole des documents confidentiels à des
entreprises comme Motorola et Sun Microsystem et s’attaque à Tsutomu Shimomura.
Ce dernier entreprend de le traquer jusqu’à son arrestation le 14 février 1995 par le
FBI. Kevin Mitnick utilisait son téléphone portable pour se connecter sur Internet ; il
avait réussi à pirater des centraux téléphoniques de Netcom et de Sprint Cellular pour
utiliser un numéro de téléphone non répertorié dans les bases de données. Cela lui
permettait de rester caché. Ce qui fait de Kevin Mitnick l’un des pirates les plus doués
de sa génération.
INTRODUCTION
xvi
Analyse forensique et aspects légaux
En France
On observe l’augmentation du nombre de délits (et de crimes) où l’utilisation de
l’informatique devient indispensable :
– soit parce que l’équipement en est la cible, dans le cas d’un vol de données
confidentielles, d’utilisation des ressources pour cacher des données, etc.
– soit parce l’équipement permet d’effectuer des actions répréhensibles par la loi
plus facilement et plus discrètement, comme dans les affaires de vente de drogues
ou d’armes (les revendeurs utilisent de plus en plus leur téléphone portable ou
leur PDA pour enregistrer leurs contacts), ou dans les affaires de pédopornographie.
Ces délits, notamment dans les cas où les systèmes sont la cible directe des délinquants, sont répréhensibles au vue de la loi. On trouve dans le code pénal4 les articles
323-1 à 323-3 du 19 septembre 2000 :
Article 323-1
Le fait d’accéder ou de se maintenir, frauduleusement, dans tout ou partie
d’un système de traitement automatisé de données est puni de deux ans
d’emprisonnement et de 30 000 euros d’amende. Lorsqu’il en est résulté
soit la suppression ou la modification de données contenues dans le système, soit une altération du fonctionnement de ce système, la peine est de
trois ans d’emprisonnement et de 45 000 euros d’amende.
Article 323-2
Le fait d’entraver ou de fausser le fonctionnement d’un système de traitement automatisé de données est puni de cinq ans d’emprisonnement et de
75 000 euros d’amende.
Article 323-3
Le fait d’introduire frauduleusement des données dans un système de traitement automatisé ou de supprimer ou de modifier frauduleusement les
données qu’il contient est puni de cinq ans d’emprisonnement et de 75 000
euros d’amende.
La loi du 6 janvier 1978 modifiée le 6 août 2004 relative à l’informatique, aux
fichiers et aux libertés5 protège les personnes et les informations enregistrées sur les
systèmes informatiques. Cette loi contient 72 articles qui décrivent comment des informations personnelles, enregistrées par des entreprises ou des particuliers doivent être
collectées, traitées, conservées et supprimées. Les infractions à cette loi sont réprimées
par les articles 226-16 à 24 du code Pénal. Cette loi est à double tranchant. Elle protège
les citoyens contre l’utilisation illégale de leurs données, mais elle est aussi contraignante pour les enquêteurs et les administrateurs système. Les données personnelles
comme par exemple les courriers électroniques, les conversations par IRC (Internet
4 http://www.legifrance.gouv.fr/
5 http://www.cnil.fr/
xvii
Relay Chat), etc., ne peuvent être lus que par leur propriétaire ou des personnes assermentées. Un administrateur réseau a le droit d’enregistrer ces données, mais il doit en
informer la CNIL et les utilisateurs de son système ; une charte informatique, signée par
les deux partis, doit mentionner cet enregistrement. Du point de vue de la loi, si l’administrateur n’a pas respecté ces règles, non seulement les preuves seront irrecevables,
mais en plus il pourra être poursuivi.
D’autre part, en ce qui concerne la pédopornographie, les mineurs sont protégés
des abus et des violences sexuelles par la loi du 17 juin 1998 relative à la prévention
et à la répression des infractions sexuelles ainsi qu’à la protection des mineurs6 . Cette
loi stipule notamment que la corruption, le viol et la violence sur mineurs sont des
actes répréhensibles par la loi et que chaque individu qui réalise ces actes est passible
de la prison et d’une forte amende. Il fera aussi l’objet d’un suivi sociojudiciaire sous
le contrôle du juge de l’application des peines. Ce fléau est un problème important et
récurrent pour toutes les forces de police dans le monde. En France, cela représente
près de 80% des délits et crimes liés à l’informatique analysés par les forces de police
et de gendarmerie (source IRCGN).
Depuis le 13 mars 2000, l’écrit sous forme électronique est aussi recevable que
l’écrit sur support papier (Loi n◦ 2000-230) à la condition que ces informations soient
bien conservées et identifiées :
Article 1316-1 du Code Civil
L’écrit sous forme électronique est admis en preuve au même titre que
l’écrit sur support papier, sous réserve que puisse être dûment identifiée la
personne dont il émane et qu’il soit établi et conservé dans des conditions
de nature à en garantir l’intégrité.
Ceci signifie qu’un enquêteur peut utiliser des fichiers d’audit, des messages électroniques, etc., comme preuves devant une cour de justice si ces preuves ont été récupérées dans la forme qui convient (avec l’aide par exemple d’un huissier de justice ou
d’une personne assermentée).
En France, les organismes spécialisés dans la collecte et le traitement des données
numériques sont :
OCLCTIC : (Office Central de Lutte contre la Criminalité liée aux Technologies de
l’Information et de la Communication). Il appartient à la Direction Centrale de
la Police Judiciaire et travaille à l’analyse de délits informatiques, l’assistance
technique pour les forces de police, la formation d’autres services de police et la
communication internationale (Europol, Interpol, G8).
BEFTI : (Brigade d’Enquête sur les Fraudes aux Technologies de l’Information). Elle
travaille essentiellement sur Paris et la petite couronne et appartient à la police
judiciaire.
SRPJ : (Services Régionaux de Police Judiciaire). Il existe 19 services dans les grandes
villes de province qui possèdent chacun au moins un Enquêteur Spécialisé en
Criminalité Informatique (ESCI).
6 https://www.internet-mineurs.gouv.fr/
xviii
INTRODUCTION
DST : (Direction de la Surveillance du Territoire). La DST dépend du Ministère de
l’Intérieur, elle a pour objectif (au niveau des délits informatiques) d’analyser les
délits les plus importants, notamment ceux qui concernent les grandes entreprises
françaises.
CERTA : (Computer Emergencing Response Team Administration). Le CERTA dépend des services du Premier Ministre et analyse les nouvelles vulnérabilités
ainsi que les attaques informatiques sur les réseaux des administrations françaises.
IRCGN : (Institut de Recherche Criminelle de la Gendarmerie Nationale). L’IRCGN
a pour objectif principal d’analyser les crimes de type pédopornographie.
Aux Etats Unis
L’administration judiciaire américaine est très différente de son homologue française. Cela s’explique par le fait que les Etats Unis ont une étendue géographique très
importante par rapport à la France. L’appareil judiciaire est donc divisé en de nombreuses entités, d’une part l’appareil fédéral qui regroupe tous les états, divisé en de
multiples unités géographiques et d’autre part une organisation judiciaire propre à
chaque état. Chacun de ces appareils est structuré en forme de pyramide, avec à la
base les tribunaux d’instance fédéraux et locaux et au sommet la Cour suprême des
États-Unis au niveau fédéral et la Cour suprême de l’Etat au niveau local. Au niveau
des enquêtes sur le terrain, ce sont, la plupart du temps, les "sheriffs" qui enquêtent sur
les délits informatiques, aidés au besoin par des enquêteurs du FBI lorsque l’enquête
est trop importante où lorsque l’étendue géographique du délit dépasse les frontières de
l’état. Le FBI peut aussi être appelé directement, par exemple dans les cas où l’affaire
concerne une entreprise qui s’étend sur plusieurs états voire sur plusieurs pays.
Intercontinentalité
L’un des problèmes majeurs en forensic est que la plupart des affaires sont transfrontalières ou transcontinentales. Les polices de chaque pays doivent se coordonner
pour pouvoir retrouver et arrêter les délinquants. Mais chaque pays a ses propres lois,
plus ou moins incompatibles entre elles. C’est à partir de cette constatation qu’a été
signée la Convention Européenne contre la cybercriminalité7 , le 23 décembre 2001
à Budapest par 29 pays européens (dont la France) plus les Etats Unis d’Amérique, le
Japon, le Canada et l’Afrique du Sud. Cette convention veut créer un « droit international fondateur et respectueux des droits de l’homme »8 . Cette convention n’est pas
une directive européenne, ce n’est pas non plus un nouveau droit international, mais il
s’agit de permettre une collaboration entre les états pour retrouver et arrêter les délinquants informatiques plus facilement et plus rapidement. Malheureusement, bien que
cette convention ait été signée par tous les états présents, seuls 10 d’entre eux l’ont
7 http://conventions.coe.int/Treaty/Commun/QueVoulezVous.asp?NT=
185&CM=1&DF=&CL=FRE
8 http://nicolas.chazot.free.fr/main.php?page=.%2Fcybercon
xix
ratifiée (Albanie, Bulgarie, Chypre, Croatie, Estonie, Hongrie, l’ex-République Yougoslave de Macédoine, Lituanie, Roumanie, Slovénie).
Il existe aussi plusieurs organismes privés de dimension internationale dont le but
principal est le recouvrement de données, notamment :
IBAS : http://www.ibas.com. Ibas est une société privée initialement norvégienne, qui possèdent de nombreuses filiales de part le monde.
Ontrack : http://www.ontrack.fr/. Comme Ibas, Ontrack est une société privée dont l’activité essentielle est le recouvrement de données.
Définitions
Voici quelques définitions des termes que nous allons utiliser tout au long de ce
mémoire :
hacker (un) : un hacker9 est un spécialiste en informatique, généralement il crée des
programmes ou des scripts. Le hacker n’effectue pas forcément des actions qui
vont à l’encontre des lois. Ce terme est totalement différent des termes délinquant
et pirate informatique. Ici, le terme « hacker » n’a pas la connotation péjorative
que l’on trouve dans la presse.
délinquant informatique (un) : c’est une personne qui utilise un système informatique (via éventuellement le sien) pour commettre des actions répréhensibles par
la loi (intrusion, pédopornographie, etc.).
pirate informatique (un) : c’est une personne qui utilise un système informatique
(via éventuellement le sien) pour s’introduire illégalement dans des systèmes
informatiques. Ce système informatique peut être soit la cible de l’attaque soit
un moyen pour commettre le délit.
délit / crime informatique (un) : c’est un délit ou un crime où un ou plusieurs systèmes informatiques sont utilisés soit parce que ces systèmes étaient la cible
finale, soit parce que ces systèmes ont été utilisés pour atteindre un autre objectif
qui est lui-même répréhensible par la loi.
enquêteur (un) : un enquêteur est une personne assermentée, capable d’analyser des
attaques informatiques ou des systèmes informatiques ayant été utilisés pour un
crime ou un délit.
trace numérique (une) : dans tout ce mémoire, une trace numérique sera toute information sous forme électronique laissée par le délinquant : nouveau fichier, ajout
/ suppression d’information dans un fichier, etc. Il s’agit de données brute avant
toute transformation.
Enfin, nous proposons une définition de l’analyse criminelle informatique, terme que
nous utilisons pour traduire le terme anglais : forensic analysis. Cette définition s’inspire de celle du DFRWS (Digital Forensic Research Workshop) communauté d’experts
en analyse forensique. La communauté se réunit tous les ans (à la Nouvelle Orléans
9 en
anglais, le sens premier de to hack est taper (sur un clavier par exemple)
INTRODUCTION
xx
F IG . 1 – Les domaines de l’analyse forensique
en 2005). Les participants ont édité un rapport sur l’analyse forensique qui fait aujourd’hui référence [Pal01]. Ce rapport décrit les discussions qui ont eu lieu entre les
scientifiques et les utilisateurs, avec les objectifs de définir une méthodologie pour le
computer forensics, de définir ce qu’est une preuve numérique, de préciser les enjeux
de la détection et de la récupération des données cachées, et enfin de décrire l’analyse
forensique dans un environnement réseau.
Comme le montre la figure 1, la recherche en analyse forensique est à l’intersection
de trois domaines : le judiciaire, le militaire et le monde économique, ce qui en fait un
sujet très complexe avec de multiples extensions.
Le DFRWS propose la définition suivante du terme Forensic analysis :
The use of scientifically derived and proven methods toward the preservation, collection, validation, identification, analysis, interpretation, documentation and presentation of digital evidence derived from digital sources
for the purpose of facilitating or furthering the reconstruction of events
found to be criminal, or helping to anticipate unauthorized actions shown
to be disruptive to planned operations.
Le DFRWS propose donc une définition qui s’articule autour de trois points essentiels.
Il y a d’abord référence à l’utilisation de méthodes à la fois scientifiques et prouvées,
xxi
Identification
Event/Crime
Detection
Resolve Signature
Preservation
Case Management
Imaging
Technologies
Chain of
Custody
Time
Synch
Collection
Examination Analysis
Presentation
Decision
Preservation Preservation Preservation Documentation
Approved
Methods
Traceability
Traceability Expert Testimony
Approved
Software
Approved
Hardware
Validation
Techniques
Filtering
Techniques
Statistical
Clarification
Protocols
Complaints
Legal Authority
Pattern
Matching
Data
Mining
System
Monitoring
Lossless
Compression
Sampling
Hidden
Data Discovery
Hidden
Data Extraction
Timeline
Mission
Impact Statement
Recommended
Countermeasure
Statistical Interpretation
Profile Detection
Anomalous
Detection
Audit Analysis
Etc.
Data
Reduction
Recovery
Techniques
Link
Spacial
TAB . 1 – Le processus d’investigation selon le DFRWS
ce qui implique notamment que les enquêteurs pourront faire confiance à ces méthodes
s’ils les appliquent correctement. La définition mentionne aussi les huit étapes qui permettent l’analyse des traces numériques, de la préservation des données jusqu’à la présentation des résultats de l’enquête. Enfin, le DFRWS présente les objectifs de l’analyse
forensique : la compréhension des faits délictueux et la prévention contre des actions
malicieuses.
D’autre part, les participants ont construit un tableau représentant le processus d’investigation (cf TAB. 1). Ce tableau donne les principales étapes du processus : Identification, Preservation, Collection, Examination, Analysis, Presentation, Decision et
les mots-clé associés à ces étapes. Nous allons retrouver ces étapes dans la plupart des
travaux décrits dans la suite de ce mémoire.
Enfin, le DFRWS liste les 9 compétences, qui doivent être mobilisées :
– l’analyse de données,
– les langages et la linguistique,
– la logique,
– les statistiques,
INTRODUCTION
xxii
–
–
–
–
–
le traitement du signal (Signal processing),
l’analyse des images de disque (Image Analysis),
la cryptographie,
la conservation des preuves,
les technologies réseau.
Les problèmes de l’analyse criminelle informatique
Les spécialistes doivent faire face à de nombreux problèmes pour retrouver des
éléments de preuves et les délinquants. Dans un premier temps, l’enquêteur ne peut
pas connaître tous les systèmes d’exploitation existants. De nombreux systèmes hétéroclites ont été créés, souvent sur des bases communes pour les stations de travail et
les serveurs (Unix/Linux, BSD, Windows, etc.) mais ces systèmes restent néanmoins
très différents. Il existe aussi d’autres systèmes d’exploitation tout aussi hétéroclites
pour les routeurs, les assistants personnels numériques et pour les téléphones. Certains
systèmes d’exploitation (comme Windows et Linux) sont plus utilisés que d’autres ,
les enquêteurs doivent alors faire face à la diversité des versions et / ou des patches
appliqués à chacun de ces systèmes. De même, un certain nombre de logiciels sont
installés sur ces systèmes, la diversité de ces logiciels (et de leurs versions) est encore
plus importante que celle des systèmes d’exploitation. Un enquêteur ne peut donc pas
connaître tous ces logiciels, cela influe sur la connaissance des attaques utilisables sur
chaque logiciel et sur les moyens de trouver des informations capitales concernant l’enquête. Les vulnérabilités jamais publiées font aussi partie du problème puisque seul le
ou les attaquants connaissent ces vulnérabilités.
Aujourd’hui dans les enquêtes informatiques, la description des investigations est
faite de façon personnelle par chaque enquêteur, c’est-à-dire que les enquêteurs n’utilisent pas de nomenclature précise et systématique des attaques et des techniques d’investigation utilisées au cours de l’enquête.
Puisque cette nomenclature n’existe pas, il ne peut pas y avoir de transmission
systématique et précise du dossier de l’enquête et du savoir des enquêteurs à d’autres
personnes. Les nouvelles informations apprises par l’enquêteur ne sont pas systématiquement communiquées et réutilisées.
Le cadre et les objectifs de la thèse
Nos travaux ont comme objectif de fournir une assistance à l’analyse des attaques
informatiques perpétrées par des humains ou des automates (vers informatiques) quand
il y a atteinte à la confidentialité (vol de données), à l’intégrité (par exemple défigurement de site Web), disponibilité (déni de service) ou pénétration illégale dans un système d’information. Nous n’analyserons pas les délits où le système d’information n’a
pas joué un rôle prépondérant dans le délit10 ou si le système d’information a permis
d’obtenir une preuve indirect11 , sauf si il y a eu effectivement intrusion non autorisée
10 dans le cas, par exemple, où un trafiquant de drogue a enregistré ses contacts sur son ordinateur ou son
PDA ou dans les cas de pédopornographie
11 par exemple l’utilisation d’un système informatique qui permet de montrer que l’accusé était effectivement chez lui au moment d’un meurtre
xxiii
dans le système.
Nos travaux ont pour objectifs de répondre aux problèmes énoncés ci-dessus, c’està-dire aider l’enquêteur sur :
– la diversité des systèmes d’exploitation et de leurs logiciels,
– la diversité et la complexité des attaques possible pour chaque logiciel,
– la présentation de techniques d’investigation utilisable permettant de retrouver
des éléments de preuves sur l’attaque.
La plateforme logicielle résultante sera capable de proposer des solutions pour des vulnérabilités inconnues et de conserver les résultats pour des utilisations futures (rapports,
étude de nouvelles attaques similaires, etc.).
Nous proposons donc de construire un système d’aide à la décision. Ce système
va reposer sur le formalisme des systèmes expert. Le système utilisera une base de
connaissance qui représentera la connaissance des enquêteurs et un moteur d’inférences
qui permettra d’une part l’analyse de la base de connaissance et d’autre part la présentation de pistes éventuelles aux enquêteurs. Nous proposons un modèle du processus
d’investigation basé sur la description de la configuration des systèmes et la liste des
attaques potentielles et des techniques d’investigation.
Les contributions de ces travaux sont les suivantes :
– l’application de l’inférences bayésienne à des enquêtes criminelles informatiques,
– la semi-automatisation du processus d’enquête,
– la création, l’analyse et le re-formatage de base de données spécialisées dans les
enquêtes informatiques,
– la nomenclature systématique des attaques et des techniques d’investigation,
– l’apprentissage des résultats d’enquêtes précédentes,
– la conception et le développement d’un démonstrateur.
Organisation de ce mémoire
Ce mémoire est organisé en trois parties :
Dans la première partie, nous exposons un état de l’art de l’analyse forensique au
niveau théorique et au niveau pratique. Nous analysons pour commencer différents
formalismes proposés dans la littérature. Puis nous continuons par la description d’un
certain nombre de techniques et d’outils utiles aux enquêtes informatiques. Enfin, nous
analysons les différents types de moteurs d’inférences envisageables et nous décrivons
plus précisément celui que nous avons choisi.
Dans la deuxième partie, nous exposons notre contribution en commençant par
montrer pourquoi le moteur que nous avons retenu répond à nos besoins. Ensuite, nous
décrivons notre modèle du processus d’investigation, en introduisant notamment la notion de plan d’investigation, puis nous présentons comment ce modèle est construit et
exploité.
Dans la dernière partie, nous décrirons la plateforme logicielle et les expérimentations que nous avons menées pour évaluer notre modèle.
xxiv
INTRODUCTION
Chapitre 1
Etat de l’art de l’analyse
forensique informatique
Ce chapitre a pour objectif de présenter l’analyse forensique informatique, aussi
bien au niveau théorique que pratique. Pour cela, nous avons divisé ce chapitre en
trois parties, la première (1.1) est un état de l’art des formalisations et des méthodes
pour l’analyse forensique. La deuxième partie (1.2) présente les principales techniques
utilisables par les enquêteurs informatiques. Enfin, la troisième partie (1.3) est une
analyse des systèmes d’aide à la décision et des moteurs d’inférences potentiellement
utilisables pour nos travaux.
1.1 Formalisations du processus d’analyse
1.1.1 Modèle de McKemmish
Il existe plusieurs modèles associés à l’analyse forensique. L’un des premiers, le
modèle de McKemmish [McK99], est intéressant car il est assez complet et général et
de plus beaucoup de modèles postérieurs lui font référence.
McKemmish propose de décomposer l’étude de l’attaque d’un système informatique en 4 étapes simples :
1. Identification : la première démarche est d’identifier les éléments qui peuvent potentiellement contenir des indices et des preuves. Cela permet de déterminer les
outils qui devront être utilisés pendant la phase d’analyse. McKemmish insiste
sur le fait que ce sont non seulement les ordinateurs qui doivent être analysés,
mais aussi tous les équipements qui ont des capacités de stockage, comme les
assistants personnels (PDA), les téléphones portables et les supports amovibles.
2. Préservation : McKemmish décrit cette phase comme étant une phase critique
du processus. C’est cette phase qui ; lors d’un procès, rend le processus valide
ou non. En effet, si l’une des pièces à conviction présentée par l’une des parties a été altérée d’une manière ou d’une d’autre, elle devient irrecevable devant
1
2
CHAPITRE 1. ETAT DE L’ART
une cour de justice. McKemmish souligne cependant que certaines modifications sont inévitables. Dans ce cas, les enquêteurs doivent expliquer quels sont
les changements et pourquoi ils ont lieu.
3. Analyse : c’est la phase principale du processus. Son objectif est de transformer
les données brutes dans une forme compréhensible par toute personne impliquée
dans l’enquête (enquêteur, juriste, etc.).
4. Présentation : après l’enquête, il faut être capable de présenter les résultats à des
personnes pas forcément spécialistes du domaine.
McKemmish liste ensuite les trois disciplines essentielles de l’analyse forensique.
Cela débute par l’analyse des média et des systèmes. Les média peuvent être de plusieurs sortes : les média ré-inscriptibles comme les disquettes, les mémoires flash,
etc., et les média non-ré-inscriptibles comme les CD-Rom. Les systèmes informatiques
peuvent être non seulement des ordinateurs mais aussi d’autres équipements, comme
les téléphones portables ou les assistants personnels (PDA). La discipline est très large
et fait appel à des compétences en ingénierie logicielle, en électronique, en cryptographie et en réseaux. La deuxième discipline est l’analyse des communications, qui
regroupe les activités d’analyse des flux réseaux, des intrusions, et l’interception de
données. La dernière discipline est la recherche et le développement, essentiel pour ne
pas être dépassé par les avancées de la technologie et les progrès des délinquants.
McKemmish décrit aussi les quatre règles principales qui doivent être respectées
par un logiciel d’analyse forensique pour que les résultats produits puissent être recevables.
Règle 1 : Une modification minimale des données originales ; il faut donc faire une (ou
plusieurs) copie(s) du contenu des média concernés avant de les analyser. Cela
permet aussi de travailler à plusieurs sur le même support et de garder l’original
intact comme pièce à conviction.
Règle 2 : La documentation de tout changement intervenu pendant l’analyse. Si la
modification du médium original ou de la copie est inévitable, l’analyste doit
être capable d’expliquer pourquoi cette modification est inévitable et quelles en
sont les conséquences sur le médium du point de vue logiciel ou physique.
Règle 3 : Le respect des règles de bon usage des outils pour ne pas corrompre l’ensemble de l’analyse et pour ne pas modifier la signification des données.
Règle 4 : Ne pas surestimer ses connaissances et ses capacités. Si l’analyse est au delà
des compétences de l’enquêteur, il faudra alors soit qu’il se mette à niveau, soit
qu’il se fasse assister.
Enfin, McKemmish souligne quelques problèmes émergeants (en 1999) qui doivent
être résolus. Selon lui, il y en a quatre. Le premier est la diversité des systèmes d’exploitation et leur taille grandissante. Un enquêteur ne peut connaître tous les environnements. De plus, la propriété "plug-and-play" de certains systèmes rend la règle
numéro 1 énoncée ci-dessus très difficile à respecter. Le deuxième problème vient du
volume de plus en plus important de données à conserver puis à traiter. Le troisième
problème vient de la multiplication des équipements ayant des capacités de stockage
et qui peuvent servir à sauvegarder des données sensibles. Le dernier problème vient
du chiffrement des données, aussi bien pour leur stockage que pour leur transport, qui
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
3
oblige les enquêteurs à utiliser des techniques de décryptage (attaque par dictionnaire,
attaque par force brute, etc.).
Notre contribution se situe au niveau des phases 3 et 4 du modèle de McKemmish,
en assistant les enquêteurs dans leurs analyses et en leur proposant des hypothèses pour
trouver des indices et des preuves. Notre proposition est aussi capable de modéliser
l’enquête en cours, en sauvegardant le mode opératoire de l’attaque ainsi que celui de
l’enquête.
Notre approche respecte la règle numéro deux de McKemmish en obligeant l’enquêteur à documenter ses investigations de manière détaillée puisque toutes les actions
de l’enquêteurs seront enregistrées par notre approche.
Enfin, notre solution pourra aider les enquêteurs dans deux des problèmes évoqués par McKemmish, la diversité des systèmes d’exploitation et la multiplication des
équipements, en intégrant des données sur les vulnérabilités d’un grand nombre de
plateformes et de configurations.
1.1.2 Formalisations sur l’ensemble du processus
Dans cette partie, nous présentons les modèles qui couvrent toutes les étapes du
processus, en commençant par les travaux les plus anciens.
1.1.2.1 Le processus de Mandia et Procise
Dans [MP01], Mandia et Procise proposent une méthodologie reposant sur l’arbre
de décision reproduit en figure 1.1. Cet arbre se compose des éléments suivants :
1. Pre-incident preparation : cela correspond à l’entraînement et à la vérification
du matériel ;
2. Detection of incident : l’alerte initiale ;
3. Initial response : étude des données volatiles pour confirmer ou non l’incident ;
4. Response strategy formulation : utiliser les données déjà collectées pour élaborer
une stratégie d’investigation ;
5. Duplication (forensic backup) : faire une copie de tous les média pour des analyses ultérieures ;
6. Investigation : l’enquête en elle-même sur le ou les systèmes compromis ;
7. Security measure implementation : l’application de mesures de sécurité pour que
l’incident ne se reproduise pas pendant l’enquête ;
8. Network monitoring : l’investigation sur le réseau ;
9. Recovery : la restauration des systèmes compromis à leur état initial en les sécurisant ;
10. Reporting : la documentation de toutes les étapes de l’enquête ;
11. Follow-up : le debriefing des enquêteurs.
Sur la figure 1.1, on peut observer que le processus de Mandia et Procise est très linéaire, notamment en ce qui concerne les investigations sur les systèmes puis sur le
4
CHAPITRE 1. ETAT DE L’ART
F IG . 1.1 – Le processsus forensique vu par Mandia et Procise
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
5
F IG . 1.2 – Le cycle de l’analyse selon le projet CTOSE
réseau, ce qui n’est pas forcément conforme à la réalité de la chronologie des opérations.
Notre proposition s’inspire cependant en partie des travaux présentés ci-dessus.
Dans le processus de Mandia et Procise, notre solution pourrait être utilisée dans les
phases 4, 5, 6, 8 et 10, car elle permet à la fois d’analyser les traces et le système
compromis mais aussi de documenter cette analyse.
1.1.2.2 CTOSE
Le projet CTOSE (Cyber Tools On-line Search for Evidence) [Con03] a pour but
de développer une méthodologie, une architecture, un modèle et une suite d’outils pour
aider les enquêteurs dans leurs investigations informatiques. C’est un projet européen,
avec des partenaires dans le monde entier. Il a pour objectif de permettre l’échange
d’informations cruciales entre les personnes qui doivent analyser des délits impliquant
des équipements informatiques et électroniques. Le projet CTOSE permet de récolter,
analyser, sécuriser, sauvegarder et présenter des pièces à conviction qui peuvent être
recevables devant une cour de justice. Les principaux résultats produits sont :
– CTOSE methodology model : Un cycle en 5 étapes a été défini (cf. F IG . 1.2) :
→ Forensic Readiness phase : c’est la phase de préparation des enquêteurs ;
→ Running phase : c’est la phase d’attente d’incidents ;
→ Awareness phase : c’est le moment où une personne (administrateur, utilisateur, enquêteur, etc.) a detecté un incident ;
→ Investigation phase : c’est l’enquête en elle-même ;
6
CHAPITRE 1. ETAT DE L’ART
F IG . 1.3 – Le modèle de processus du projet CTOSE
→ Learning phase : c’est le debriefing de l’incident.
– Legal Advisor : c’est un outil qui donne des conseils à l’enquêteur sur la recevabilité des preuves ainsi que sur leur légalité.
– Process Model : ce modèle (cf. F IG . 1.3) décrit les actions que les enquêteurs
doivent effectuer en cas d’incident.
– C*CAT - Cyber Crime Advisory Tool : c’est un outil constitué d’une base de
données. Il permet aux utilisateurs de questionner le modèle de processus sur les
actions à effectuer.
– Forensic Readiness Guidelines : c’est un guide permettant aux entreprises de se
préparer pour les attaques futures. Ce guide décrit notamment comment récupérer et conserver des fichiers d’audit.
– Forensic Autopsy Tool with XML bindings : c’est un outil qui permet de sauvegarder des résultats d’enquête.
– CTOSE Demonstrator : c’est une plateforme de démonstration qui permet de
montrer l’utilité des outils cités ci-dessus.
– Project Story board : c’est un scénario qui présente tous les aspects du projet
CTOSE.
1.1.2.3 The Enhanced Digital Investigation Process Model
Dans [BT04], Baryamureeba et Tushabe proposent un modèle pour les investigations informatiques, inspiré du modèle de Brian Carrier et Eugene Spafford décrit dans
[ES03]. Le modèle de Carrier et Spafford, IDIP (Integrated Digital Investigation Process), contient 17 phases regroupées dans les étapes suivantes :
1. Readiness Phases : ce sont les phases où l’enquêteur vérifie qu’il est prêt à effectuer une enquête, cela inclue la vérification des équipements ainsi que l’entrainement de l’enquêteur ;
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
7
2. Deployment Phases : cela correspond à l’arrivée sur les lieux de l’incident et aux
premières observations faites par les enquêteurs ;
3. Physical Crime Scene Investigation Phases : les objectifs de ces phases sont
de récolter toutes les preuves physiques potentielles (disques durs, disquettes,
etc.) pour les analyser ensuite, l’objectif étant aussi de préserver ces pièces à
conviction ;
4. Digital Crime Scene Investigation Phases : l’objectif de ces phases est d’analyser
les éléments récoltés pour tenter de comprendre ce qui s’est passé ;
5. Review Phase : cette phase correspond au debriefing.
Baryamureeba et Tushabe pensent que ce modèle n’est pas utilisable en pratique. Premièrement, les phases Physical Crime Scene Investigation et Digital Crime Scene Investigation sont trop indépendantes. Lorsque des enquêteurs arrivent sur les lieux d’un
crime, ils ne peuvent pas savoir si leurs investigations vont débuter par des observations
d’éléments physiques ou numériques. Deuxièmement, le modèle IDIP n’est pas assez
précis. Notamment il ne distingue pas l’enquête sur le système cible de l’enquête sur le
système attaquant.
Baryamureeba et Tushabe proposent un nouveau modèle, EDIP (Enhanced Digital
Investigation Process), modifiant 2 des 5 étapes du modèle IDIP : Physical Crime Scene
Investigation et Digital Crime Scene Investigation.
Physical Crime Scene Investigation devient Traceback. Les sous-phases de Traceback correspondent à la recherche du ou des attaquants, ainsi qu’à la recherche
du chemin de l’attaque. Elles comportent la recherche de la source de l’attaque
et une étape d’autorisation venant d’entités judiciaires et/ou administratives pour
continuer l’enquête au-delà du réseau cible.
Digital Crime Scene Investigation devient Dynamite. Les sous-phases de Dynamite
comportent les étapes Physical Crime Scene Investigation et Digital Crime Scene
Investigation du modèle IDIP, ainsi que les étapes Reconstruction et Communication.
Grâce à cette méthode, Baryamureeba et Tushabe ont séparé l’enquête sur l’attaquant
de l’enquête sur le réseau compromis et traitent conjointement les investigations sur les
éléments physiques et numériques.
1.1.2.4 Formalisation de Beebe et Clark
Dans [BC04], Beebe et Clark proposent une formalisation des enquêtes informatiques basée sur les objectifs à atteindre (Objectives-based). Le terme Objectives-based
signifie que le processus d’investigation ne sera pas conduit par les actions à entreprendre pour réaliser l’enquête (Task-based, par exemple : Examiner la base de registres) mais sur l’objectif de cette action (qui serait pour cet exemple : Déterminer si
un logiciel a été installé de façon illégale). La proposition repose sur quatre concepts :
les Phases et Sous-Phases représentent des étapes distinctes du processus forensique,
elles sont généralement fonction du temps et séquentielles.
8
CHAPITRE 1. ETAT DE L’ART
les Principes et Objectifs sont des procédures, des guides ou des méthodes qui caractérisent les phases et les sous-phases. Ils sont non discrets et représentent le but
du processus.
Par ailleurs, les phases et les sous-phases peuvent s’appliquer à différents niveaux
d’abstraction, qui sont ceux décrits par Carrier dans [Car03], comme par exemple :
Physical Media, Media Management, File System, Application et Network. Les phases
se décomposent en 6 étapes :
Preparation : c’est la création de toutes les procédures qui permetteront d’effectuer
des analyses forensiques ainsi que l’entraînement du personnel ;
Incident Response : c’est la détection de l’incident ainsi que le début de l’investigation, qui aura pour objectifs de qualifier l’incident et de préparer une stratégie
d’investigation ;
Data Collection : c’est la récupération des données utiles pour l’enquête (fichiers d’audit, IDS, etc.) ;
Data Analysis : c’est l’analyse des données précédemment récupérées ;
Presentation of Findings : c’est la présentation des résultats des investigations ;
Incident Closure : c’est la conclusion de l’enquête et les suites à donner à celle-ci.
Ces phases sont ensuite décomposées en sous-phases. Beebe et Clark proposent un
exemple de sous-phase pour la phase Data Analysis qui contiendrait : Survey, Extract
et Examine. Ce formalisme est en cours de finalisation, et ne couvre pas encore tous
les aspects de l’analyse forensique (Data Collection, Incident Response, etc.). Les différences entre les plateformes (systèmes d’exploitation) et entre les équipements (ordinateurs, PDA, etc.) ne sont pas non plus prises en compte.
Différences avec notre proposition
Contrairement aux modèles présentés ci-dessus, notre proposition ne s’intéresse
qu’à une partie du processus forensique. Nous nous focalisons sur l’analyse des pièces
récoltées et la présentation des résultats, l’objectif étant d’aider les enquêteurs dans
leurs investigations, en leur proposant des indices. Les résultats d’enquête pourront
être sauvegardés pour être ensuite présentés. Enfin, contrairement au formalisme de
Beebe et Clark, notre démarche permet de mettre en valeur non seulement les objectifs
à atteindre mais aussi les actions à entreprendre pour atteindre ces objectifs.
1.1.2.5 Conclusion
Le tableau 1.1 résume les modèles présentés. Ils sont comparés suivant 5 critères
choisis par rapport aux objectifs de notre projet. Nous voulions que notre approche
prenne en compte aussi bien les éléments de preuves numériques que les éléments
de preuves matériels. La ré-utilisation des connaissances est un autre point sur lequel
notre approche se base, cette propriété nous permet notamment de prendre en compte
l’évolution des technologies et des savoir-faire ainsi que la formation des enquêteurs.
Comme nous l’avons montré en introduction, le travail d’un enquêteur est itératif et non
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
Eléments
numériques /
matériels
Ré-utilisation
des connaissances
Formation
McKemmish, Mandia
1999
Procise,
2001
et
9
CTOSE,
2003
EDIP,
2004
Beebe
Clark,
2004
oui
oui
non
oui
oui
non
oui
oui
oui
oui
non
oui
oui
non
oui
Démonstrateur non
non
oui
non
non
TAB . 1.1 – Résumé des formalisations sur la globalité du processus
séquentiel, notre approche aura donc un comportement itératif. Enfin nous voulions que
l’approche soit finalisée par la construction d’un démonstrateur.
Le tableau 1.1 montre que tous les travaux que nous venons de décrire ont un comportement séquentiel et qu’un seul possède un démonstrateur, le projet CTOSE. Il faudra noter néanmoins que ce démonstrateur n’est pas accessible au public. Le tableau
montre aussi que la plupart des travaux prennent en compte à la fois les éléments numériques et matériels.
1.1.3 Formalisations sur une partie du procesus forensique
Dans cette partie, nous allons analyser des travaux qui ne traitent que d’une partie
du processus. Comme dans la partie précédente, les travaux seront présentés par ordre
d’ancienneté.
1.1.3.1 Formalisation de Peter Stephenson
Peter Stephenson est un chercheur américain qui a effectué de nombreux travaux
sur l’analyse forensique. Il est notamment l’auteur de l’ouvrage de « Investigating
Computer-Related Crime » [Ste00].
Le langage de description d’enquête DFPL Dans [Ste03b], Stephenson décrit une
approche formelle pour la récupération, l’administration et l’analyse de preuves numériques. Cette approche repose sur 2 concepts :
la notion d’analyse forensique point-à-point. Elle permet de décrire une analyse en
sachant qu’une attaque commence au poste informatique de l’attaquant et finit au
poste de la victime, en passant par une série de systèmes qui peuvent en conserver
la trace ;
et
10
CHAPITRE 1. ETAT DE L’ART
(OpenApplicationSession
(When
(Time 14:57:36 24 Feb 1998)
)
(Initiator
(HostName ‘big.evil.com’)
)
(Account
(UserName ‘joe’)
(RealName ‘Joe Cool’)
(HostName ‘ten.ada.net’)
)
(Receiver
(standardTCPPort 23)
)
)
F IG . 1.4 – Un exemple du langage DFPL
le deuxième concept repose sur la compréhension des méthodes d’attaque et de détection, modélisés par le langage DFPL (Digital Forensics Process Language)
dérivé d’un langage dédié à la détection d’intrusion, CISL (Common Intrusion
Specification Language) [FKP+ 99].
L’objectif est de décrire avec précision le processus de l’enquête et le processus de l’attaque, de manière à pouvoir les rejouer. On ne cherche pas à donner des conclusions
sur l’enquête, mais cette description doit montrer que l’enquête a été effectuée correctement. DFPL, qui s’inspire aussi du langage LISP et du langage S, est illustré par la
figure 1.4. Dans cet exemple, un seul fait (un évènement réseau) a été représenté : une
personne venant de big.evil.com a initié une connexion à la date 14 :57 :36 24 Feb 1998
sur le port 23.
Analyse des causes primaires (Root Cause Analysis) Dans [Ste03a, Ste04], Stephenson propose une technique pour analyser les causes d’une attaque informatique.
Cette technique est basée sur la formalisation précédente et sur les réseaux de Petri
colorés.
Les réseaux de Petri sont des graphes qui comportent deux sortes de nœuds : les
places et les transitions, reliées par des arcs orientés. Chaque place contient un certain
nombre de jetons (0 · · · n) qui peuvent se déplacer de place en place en suivant les
règles de tirage des transitions qu’ils traversent. Les réseaux de Petri colorés [Jen98]
sont de réseaux de Petri dont les jetons sont typés. Le franchissement d’une transition
est alors conditionné par la présence dans les places en entrée du nombre de jetons
nécessaire, qui, de plus doivent satisfaire aux conditions de couleurs qui étiquettent les
arcs.
La proposition de Stephenson repose sur plusieurs processus qui permettent de
modéliser :
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
11
F IG . 1.5 – Un exemple de réseau de Petri dans le modèle de Stephenson
– l’attaque (détection, résultats, etc.) ;
– la politique de sécurité du réseau ;
– les contre-mesures en cas d’attaque.
Grâce aux réseaux de Petri (F IG . 1.5), Stephenson peut simuler ces trois processus. Les
places du réseau décrivent l’état du système, les transitions décrivent les actions et les
changements de ce système, les jetons permettent de marquer les changements d’état
et les arcs décrivent les liens entre les places (état du système) et les transitions (actions
et changements).
Par exemple, Stephenson modélise l’action d’un ver informatique qui se propage
sur le réseau d’une entreprise (F IG . 1.5). Les résultats obtenus sont de plusieurs ordres :
– trouver le(s) vecteur(s) de l’attaque ;
– comprendre comment l’attaque s’est déroulée ;
– obtenir une description formelle de l’analyse de l’attaque (pour la présenter devant une cour de justice par exemple) ;
– recommander des contre-mesures potentielles pour éviter de futures attaques.
Notre proposition diffère de celle de Stephenson dans le sens où elle repose sur
l’analyse des systèmes compromis un à un, en tentant de remonter jusqu’au système de
l’attaquant. Nos objectifs sont aussi différents, puisque l’on ne propose pas de contremesures, mais des techniques d’investigation à utiliser pour retrouver d’éventuels indices.
12
CHAPITRE 1. ETAT DE L’ART
(define (domain network)
(:extends computer)
(:types network domain - simulation-object
router - host
firewall - router)
(:predicates
(connected-to ?node - object
?net - simulated-object
)
(part-of ?net - network
?domain - domain)
...
)
)
F IG . 1.6 – Un exemple du modèle utilisé par Elsaesser et Tanner
1.1.3.2 Diagnostic automatique de Elsaesser et Tanner
Elsaesser et Tanner proposent dans [ET01] un système de diagnostic automatique
pour l’analyse des attaques informatiques et la récupération de preuves. Leur système
prend en entrée la configuration logicielle de la victime ainsi que la liste des vulnérabilités associées au système compromis. Le système génère alors des séquences d’attaques possibles qui sont simulées sur un modèle représentant le système compromis.
Les effets des attaques simulées sont comparés aux effets de l’attaque observée, ceci
permettant aux enquêteurs de trouver l’attaque qui a réellement eu lieu.
Ce système de diagnostic est testé sur un prototype qui se compose :
1. d’une interface qui convertit la configuration du système compromis en un modèle pour la simulation ;
2. d’un système qui génère des explications plausibles pour les symptômes observés ;
3. d’un simulateur qui génère des attaques sur le modèle ;
4. d’un système de recherche de chaînes de caractères (pattern matching) qui recherche sur le système compromis les effets de l’attaque par rapport aux attaques
simulées.
Le modèle utilisé repose sur PDDL (Planning Domain Description Language) de
Gallab et al. [GHK+ 98]. Un exemple de ce langage est donné en figure 1.6. Il permet
de modéliser :
– la configuration du système compromis (:types) ainsi que ses connexions avec
d’autres systèmes (connected-to, part-of) ;
– la description du problème posé : les effets de l’attaque ;
– la description des actions possibles de l’attaquant (paramètres, pré-conditions,
effets, etc.) ;
1.1. FORMALISATIONS DU PROCESSUS D’ANALYSE
13
F IG . 1.7 – Le processus d’investigation de Kerf
– les suites d’actions possibles.
Ce système est de type "mono-passe", c’est-à-dire que l’enquêteur entre la configuration puis demande au système d’analyser l’attaque. Il peut ensuite utiliser les résultats
produits pour rechercher la véritable cause de l’attaque. Dans notre approche, le système serait plutôt de type "multi-passes" (comportement itératif). Après avoir effectué
la configuration initiale (logiciels installés et observations préalables), l’introduction
de nouvelles informations (attaques et actions de l’attaquant) dans le modèle permet
d’affiner les résultats produits.
1.1.3.3 Le projet Kerf
Kerf [KER] est un projet de l’ISTS (Institute for Security Technology Studies)
[IST]. Ses objectifs sont d’identifier les caractéristiques des attaques, de développer
des hypothèses à propos de celles-ci, de partager les connaissances avec d’autres organisations et d’archiver les données pour pouvoir les réexploiter ultérieurement. Le
processus (F IG . 1.7) est itératif et possède un moteur d’hypothèses. Une interface graphique présente à l’utilisateur les résultats du moteur ainsi qu’une visualisation des
fichiers d’audit.
Kerf se base essentiellement sur les fichiers d’audit des systèmes d’exploitation.
Nous proposons d’aller plus loin dans la recherche de preuve en prenant en compte
d’autres informations : la topologie du réseau attaqué, les variables du système, la récupération de données cachées et les indices matériels, comme les entrées-sorties d’un
bâtiment.
CHAPITRE 1. ETAT DE L’ART
14
Eléments
numériques /
matériels
Ré-utilisation
des connaissances
Formation
Comportement
Démonstrateur
Stephenson,
2000
Elsaesser
et Tanner,
2001
Kerf,
2002
non
non
non
non
non
oui
non
non
oui
itératif
séquentiel
itératif
oui
oui
oui
TAB . 1.2 – Résumé des formalisations sur une partie du processus
1.1.3.4 Conclusion
Le tableau 1.2 résume les caractéristiques des travaux qui viennent d’être présentés.
Nous avons utilisé les mêmes critères que pour le tableau 1.1.
On peut noter que ces travaux ne prennent en compte que les éléments numériques
et aucun élément matériel. Par contre, un démonstrateur a été développé pour chacun
de ces travaux.
1.2 Techniques d’investigation
Après avoir décrit des approches formelles de l’analyse forensique, nous allons
présenter maintenant quelques techniques applicables à certaines parties du processus.
Dans la première partie, nous analyserons des techniques de la littérature et dans la
seconde partie, nous ferons une liste non-exhaustive des outils disponibles.
1.2.1 Techniques d’analyse forensique
1.2.1.1 Automated Analysis for Digital Forensic Science
Dans [Sta02, SL03] Tye Stallard et Karl Levitt propose une méthodologie pour
récupérer et analyser de façon sûre les données numériques. L’auteur récupère automatiquement certaines informations (fichiers d’audit), normalise ces dernières puis les
envoie vers un système expert qui produit des déductions sur les suspects potentiels
d’une attaque informatique.
Ce système expert est basé sur un arbre de décision (F IG . 1.8) qui prend en entrée
les fichiers du système compromis et qui donne en sortie quel(s) est (sont) les comptes
1.2. TECHNIQUES D’INVESTIGATION
F IG . 1.8 – L’arbre de décision de Stallard
15
CHAPITRE 1. ETAT DE L’ART
16
utilisateurs qui ont pu être compromis par l’attaquant.
Le prototype de Stallard utilise l’outil TCT (The Coroner’s Toolkit) [FV] pour analyser les images de média. Le résultat de ces analyses est transformé en XML (grâce
au langage PERL), puis utilisé par l’arbre de décision.
1.2.1.2 Formalisation de Leigland et Krings
Dans [LK04], Leigland et Krings proposent une méthode pour la récupération des
données d’enquête. Leur proposition s’appuie sur un modèle en 4 parties :
– l’attaque ;
– la procédure de l’enquête ;
– les primitives de cette procédure (forensic primitives) ;
– le système d’exploitation et ses composants logiciels.
Le système d’exploitation est modélisé par la formule suivante :
C = {c1 , · · · , cn }
où les ci décrivent un composant logiciel particulier et dépendant du système d’exploitation étudié. Chacune des 4 parties citées ci-dessus peut être décomposée de la
même manière. Par exemple, la primitive forensique (fp ) associée au composant logiciel (l) s’écrit : fpl . Si le composant logiciel est le "fichier de mots de passe" clp , alors la
primitive sous Linux s’écrit :
fpl
cat /etc/passwd
ls -l /etc/passwd
La figure 1.9 montre les relations qui peuvent exister entre les différents éléments du
modèle (attaque, composant logiciel, procédure forensique et primitive forensique) en
prenant en compte 2 systèmes d’exploitation différents. Ce modèle permet de mettre
à jour les procédures forensiques, et autorise la création de nouvelles procédures, les
liens seront descendants depuis les attaques vers les procédures puis vers les primitives.
Le modèle décrit l’utilisation des procédures, les flux de données partant alors des
primitives pour aller vers les attaques. Le modèle permet aussi la mise à jour d’une
procédure, le flux ira dans le même sens que la création. Enfin, le modèle permet la
translation d’un ensemble de procédures pour un système d’exploitation donné vers un
autre système d’exploitation : dans ce cas les flux de données partiront des primitives
du premier pour finir aux primitives du second.
Ce modèle a pour but d’administrer les procédures forensiques pour chaque attaque
et pour chaque système d’exploitation. L’objectif n’est donc pas d’aider l’administrateur système à détecter les attaques, ni d’aider les enquêteurs dans leurs investigations
en leur donnant des conclusions sur l’enquête en cours.
1.2.1.3 Analyse forensique des processus de Foster et Wilson
La technique décrite par Foster et Wilson dans [FW04] consiste à récupérer certaines informations volatiles dans la mémoire des systèmes informatiques compromis
1.2. TECHNIQUES D’INVESTIGATION
17
F IG . 1.9 – Hiérarchie des éléments dans la formalisation de Leigland et Krings
avant que ceux-ci ne soient arrêtés. Dès qu’une intrusion potentielle est détectée, un
IDS enregistre sur le disque dur des informations sur les processus en cours d’exécution, notamment :
– PID (Process IDentification) ;
– le propriétaire ;
– les processus parent et enfant ;
– la pile mémoire ;
– les fichiers / sockets / pipes ouverts ;
– etc.
Les trois derniers travaux présentés ci-dessus ([FW04, Sta02, SL03, LK04]) sont
complémentaires de notre proposition. En effet, ils décrivent des techniques particulières pour analyser certaines parties d’une attaque : Leigland et Krings mettent en
place des processus forensiques (paragraphe 1.2.1.2), Stallard et Levitt analysent des
fichiers d’audit avec un arbre de décision (paragraphe 1.2.1.1), enfin Foster et Wilson
utilisent les variables du système (paragraphe 1.2.1.3).
1.2.1.4 Reconstruction d’événement de Gladyshev et Patel
Gladyshev et Patel proposent dans [GP04, Gla04] une méthode pour reconstruire
un scénario d’attaque, basée sur une machine à états finis. Les fonctionnalités du système d’information (serveurs, imprimantes, etc.) sont modélisées par une machine à
états finis, les hypothèses par les états de cette machine et les événements extérieurs
au système par les événements de la machine à états finis. La machine s’utilise en
back-tracing (retour-arrière), c’est-à-dire qu’elle part d’un fait avéré, par exemple, une
possible utilisation frauduleuse d’une imprimante, et elle décrit tous les événements
qui ont pu conduire à ce résultat.
CHAPITRE 1. ETAT DE L’ART
18
Démonstrateur
Eléments
numériques /
matériels
Ré-utilisation
des connaissances
Formation
Comportement
AADFS,
2002
Leigland et
Krings,
2004
Foster
Wilson,
2004
oui
non
oui
non
non
oui
non
non
non
-
non
oui
non
oui
non
non
-
-
séquentiel
et
Gladyshev
et
Patel,
2004
itératif
TAB . 1.3 – Synthèse des caractéristiques
Notre proposition est très similaire à celle de Gladyshev et Patel, à certaines différences près. D’abord notre approche n’est pas orientée back-tracing, pour chaque
système et chaque attaque analysés, l’analyse est effectuée en prenant uniquement en
compte ce qui a été observé, ce qui peut être vu comme une analyse « à plat » ; le moteur
d’inférence donne à l’enquêteur toutes les possibilités en les ordonnant. D’autre part,
nous n’analysons pas qu’un seul système mais nous prenons en compte tous les systèmes qui ont été compromis. L’analyse de système en système et d’attaque en attaque
se fait non seulement vers l’arrière mais aussi vers l’avant. L’objectif est de retrouver
tous les systèmes qui ont été attaqués. Enfin, nous n’utilisons pas une machine à états
finis mais des réseaux bayésiens.
1.2.1.5 Conclusion
Le tableau 1.3 fait la synthèse des techniques qui viennent d’être présentées. Nous
avons utilisé les mêmes critères que pour le tableau 1.1. La proposition qui se rapproche
la plus de la nôtre est celle de Gladyshev et Patel. Notre proposition propose aussi de
reconstruire les évènements qui ont permis à l’attaquant de perpétrer son forfait. La
proposition de Gladyshev et Patel a un comportement itératif comme notre approche et
permet aussi l’apprentissage des cas précédents.
1.2.2 Outils pour l’analyse forensique
Un système informatique peut recéler de nombreuses données intéressantes pour un
enquêteur. Dans cette section, nous allons lister, de manière non-exhaustive, les types
d’informations qui peuvent aider les enquêteurs et quelques logiciels qui permettent de
trouver ces informations. Les techniques d’investigation sont présentées dans l’ordre
1.2. TECHNIQUES D’INVESTIGATION
19
des étapes décrites par McKemmish (section 1.1.1) et se limite aux systèmes informatiques dont le système d’exploitation se base sur un noyau Linux ou Windows.
1.2.2.1 Identification
L’identification se fait d’une part par l’analyse des fichiers d’audit et d’autre part
par l’analyse des variables du système.
Fichiers d’audit du système
Unix Dans le monde Unix / Linux, l’audit est géré habituellement par le démon1
syslog. Dans la plupart des distributions, il envoie ses messages dans le répertoire /var/log/ et sous le nom messages. On peut remarquer que les messages des journées précédentes sont compressés et qu’il peut exister de nombreux autres fichiers suivant la
configuration du démon Syslog (dans /etc/syslog.conf). Tous les évènements
significatifs sont enregistrés, tant au niveau matériel qu’au niveau logiciel (connexion
ou augmentation de privilèges par exemple).
Il existe de plus trois autres fichiers (au format binaire) qui donnent des renseignements sur l’utilisation du système (figure 1.10) :
/var/run/utmp accessible par la commande w, donne la liste des utilisateurs actuellement connectés et leur dernière commande.
/var/log/wtmp accessible par la commande last, donne les dernières
connexions réussies au système.
/var/log/lastlog accessible par la commande lastlog, donne la liste de
tous les utilisateurs et la date de leur dernière connexion.
D’autres fichiers doivent aussi être étudiés pour voir s’ils n’ont pas été modifiés :
/etc/passwd pour trouver des comptes utilisateurs non autorisés ou ayant des privilèges trop importants
/etc/shadow pour s’assurer que chaque compte est protégé
par un mot de passe
/etc/groups pour voir les privilèges de chaque compte
/etc/hosts pour lister les entrées DNS locales
/etc/hosts.equiv pour analyser les relations de confiance
˜/.rhost pour analyser les relations de confiance au niveau utilisateur
/etc/hosts.{allow,deny} pour voir les règles du "TCPWrappers"
/etc/rc* pour lister les processus lancés au démarrage
/etc/syslog.conf pour déterminer la localisation des fichiers
d’audit
fichiers crontab pour lister les événements programmés
/etc/inetd.conf pour lister les services gérés par inetd
1 en anglais : DAEMON (Disk And Execution MONitor), programme qui effectue des tâches de fond sous
Unix
20
CHAPITRE 1. ETAT DE L’ART
domtom@domtom:~/papier/etat_de_l_art/ps$ w
16:33:54 up 7:04, 4 users, load average: 0.34, 0.37, 0.40
USER
TTY
FROM
LOGIN@
IDLE
JCPU
PCPU
domtom
:0
09:30
?xdm?
0.00s
?
domtom
pts/0
:0.0
09:30
37.00s 1.36s 1.36s
domtom
pts/1
:0.0
09:30
0.00s 1.43s 0.03s
domtom
pts/2
:0.0
09:30
30.00s 21.60s 0.03s
domtom@domtom:~/papier/etat_de_l_art/ps$
domtom
pts/3
:0.0
domtom
:0
reboot
system boot 2.4.20-686
cmichel pts/2
cmichel
domtom
:0
reboot
system boot 2.4.20-686
domtom
pts/1
:0.0
domtom
pts/4
:0.0
domtom
:0
domtom
pts/2
192.168.0.109
domtom
pts/2
192.168.0.109
domtom
pts/2
192.168.0.109
domtom
:0
reboot
system boot 2.4.20-686
last
Tue Feb
Tue Feb
Tue Feb
Fri Feb
Mon Feb
Mon Feb
Fri Feb
Fri Feb
Fri Feb
Thu Feb
Thu Feb
Thu Feb
Tue Feb
Mon Feb
18
18
18
14
10
10
7
7
7
6
6
6
4
3
09:31
09:30
09:29
15:07
11:22
11:21
15:12
14:24
14:23
16:02
10:48
10:00
08:58
17:20
WHAT
bash
w
make edit
- 09:33 (00:01)
still logged in
(07:05)
- 15:11 (00:03)
- down (7+22:05)
(7+22:06)
- 15:37 (00:25)
- 14:25 (00:01)
- down (2+20:56)
- 16:03 (00:00)
- 10:48 (00:00)
- 10:20 (00:19)
- 13:47 (3+04:49)
(6+17:58)
domtom@domtom:~/papier/etat_de_l_art/ps$ lastlog
Username
Port
From
Latest
root
NODEVssh cmichel
mer fév 12 16:44:13 +0100 2003
daemon
**Never logged in**
bin
**Never logged in**
domtom
:0
mar fév 18 09:30:29 +0100 2003
sshd
**Never logged in**
etotel
**Never logged in**
lheye
**Never logged in**
cmichel
pts/2
cmichel
ven fév 14 15:07:44 +0100 2003
jzimm
**Never logged in**
valanou
**Never logged in**
bjouga
**Never logged in**
nprigent
**Never logged in**
F IG . 1.10 – Résultats produits par les programmes "w", "last" et "lastlog" sous Unix
1.2. TECHNIQUES D’INVESTIGATION
21
Pour trouver des traces d’exécution d’applications, il faut en général rechercher
dans les répertoires /tmp/ et /var/. Enfin, il est possible de connaître les dates et
horaires de création des fichiers. On aurait pu aussi obtenir les dates de dernier accès
et de dernière modification en tapant respectivement les commandes "ls -lu" et "ls -lc".
En ce qui concerne les dates et horaires, il faut faire attention aux fuseaux horaires
ainsi qu’au fait que l’horodatage du système en cours d’analyse peut être légèrement
différent à cause d’un problème de synchronisation ou à cause d’une manipulation
intentionnelle de l’attaquant.
Windows Si dans le cas de Linux l’audit du système est automatique, la situation
est différente pour Windows. L’audit au niveau applicatif est automatique mais l’audit
du système ne l’est pas, et nécessite l’activation du programme Paramètres de
sécurité locale. D’autre part, si la plupart des fichiers temporaires se trouvent
dans le répertoire C:\temp\, certaines applications mettent leurs fichiers temporaires
dans le répertoire de travail, notamment Microsoft Word.
Analyse L’analyse des fichiers d’audit est très longue de part le nombre et la
taille des fichiers à traiter. En règle générale, cette analyse se fait par des techniques de
pattern matching, en recherchant des chaînes de caractères connues dans les noms de
fichiers ou dans leur contenu.
Variables système Les données volatiles doivent être récupérées grâce à un interpréteur de commandes dans lequel on a confiance (trusted shell). Les principaux éléments
à récupérer sont :
– la date2 ;
– les utilisateurs connectés ;
– les applications en cours d’exécution ;
– les sessions réseaux ouvertes.
La date du système est demandée deux fois (cf. TAB 1.4) : cela permet aux enquêteurs de prouver à quelle date et à quelle heure ils ont analysé le système. Cette façon
de travailler permet aussi de prouver face à la justice que les actions effectuées à telle
date et à telle heure peuvent être ou non imputées aux enquêteurs.
Chaque programme en cours d’exécution utilise des ressources et est référencé par
un numéro de processus. Pour Unix / Linux, les commandes ps ou top permettent d’obtenir la liste des processus. Pour Windows, on peut utiliser la combinaison de touches
[crtl alt sup].
La connaissance du nombre de processus, de leur nom et de la date à laquelle ils ont
été lancés va permettre de détecter des programmes illicites lancés par des utilisateurs
non-autorisés. Il faut aussi déterminer quels sont les liens réseaux établis, quels sont
ceux qui sont connectés pour pouvoir trouver les sondes réseaux, les "portes dérobées"
et tout autre logiciel qui pourrait s’avérer nuisible au bon fonctionnement du système.
Le programme netstat permet de lister ces liens.
2 il
faudra noter aussi le fuseau horaire correspondant et un éventuel décalage avec la véritable valeur
CHAPITRE 1. ETAT DE L’ART
22
Actions
Établissement d’un nouvel interpréteur de commande
Enregistrement de la date du
système
Détermination des personnes
connectées
Enregistrement des sockets ouvertes
Liste des processus qui ont ouverts des sockets
Liste des processus en cours
d’exécution
Liste des systèmes récemment
connectés
Enregistrement de la date du
système
Enregistrement des commandes
exécutées et de leur réponse
Windows 2000/NT
Linux/Unix
cmd.exe
bash
date, time
w
loggedon
w
netstat
netstat -anp
fport
lsof
pslist
ps
nbstat
netstat
date, time
w
doskey
script, vi, history
TAB . 1.4 – Commandes Windows et Linux de récupération des informations système
à utiliser dans cet ordre [MP01]
1.2. TECHNIQUES D’INVESTIGATION
23
1.2.2.2 Préservation
La phase suivante est la phase de préservation des traces. Pour pouvoir ensuite être
exploitables et présentables, ces traces doivent avoir été conservées intactes et cette
conservation doit être vérifiable.
Préservation physique Dans un premier temps, l’enquêteur doit préserver les éléments matériels qu’il analyse. L’enquêteur doit photographier tout élément qui constitue le dossier à traiter pour permettre par la suite un certain nombre de vérification
une fois que ces éléments auront été enlevés. Cette préservation se fait d’autre part par
pastillage du matériel informatique, c’est-à-dire que l’enquêteur doit marquer tous les
éléments que les enquêteurs vont être amenés à emporter.
Duplication de média La duplication consiste en une copie "bit à bit" des media physiques (disques durs ou amovibles) en prenant la précaution d’utiliser un write-bloquer3
ou toute technique permettant de ne pas altérer les données initiales. La manière de procéder la plus sûre consiste à redémarrer4 les machines sur un autre système (LinuxCare
[LC], Trinux [TRI] ou Knoppix [KNO]). On obtient alors un système "sûr", qui ne
contient ni cheval de Troie ni autre logiciel pouvant perturber l’opération.
La duplication peut être plus compliquée quand les enquêteurs doivent analyser
des assistants personnels ou des téléphones portables, qui possèdent peu d’interfaces
d’entrée / sortie. Notamment, en ce qui concerne les téléphones portables, il est nécessaire de démonter l’appareil pour accéder directement à la carte électronique, comme
le montre les travaux de Svein Willassen [Wil03] et James Clark5 .
La duplication de média est toujours accompagnée d’une signature numérique, réalisée par un algorithme de hachage du type MD5 ou SHA, permettant de prouver que
la copie est identique (au bit près) à l’original.
1.2.2.3 Analyse
La phase d’analyse est la phase la plus longue de la procédure. Outre les fichiers
d’audit du système (1.2.2.1), il y a d’autres informations à analyser : les fichiers d’audit
du réseau, les informations contenues dans certains fichiers (notamment dans les documents bureautiques) les fichiers cachés ou supprimés, le trafic réseau, la topologie des
réseaux, les communications personnelles et des indices physiques.
Vérification des signatures des fichiers système Cette technique permet de vérifier l’intégrité des fichiers système et des programmes indispensables au système
d‘exploitation. En effet, un attaquant peut avoir remplacé certains fichiers par des fichiers légérement différents et qui lui permettent de se cacher ou d’obtenir des accès
administrateurs sans connaître le mot de passe administrateur.
3 outil
permettant de dupliquer un média en interdisant physiquement la ré-écriture sur le média source
un CD ou une disquette de démarrage
5 http://www.forensicts.co.uk/
4 via
CHAPITRE 1. ETAT DE L’ART
24
Analyse des fichiers de données Un grand nombre de fichiers peuvent recéler des
informations précieuses pour les enquêteurs. Il s’agit des fichiers d’audit du système
mais aussi de tout fichier que l’attaquant a pu utiliser comme les fichiers de compilation
et de configuration des outils qu’il a utilisés ou les fichiers bureautiques ou autres qu’il
a manipulés à la recherche d’informations.
Fichiers d’audit réseau
Le cas particulier des pare-feux Un pare-feu est un dispositif qui filtre les paquets réseaux qui le traversent. Il est placé en général entre le réseau interne de l’entreprise et l’internet, de manière à ne transmettre que les paquets autorisés vers les
machines appropriées.
Il existe différents types de pare-feu [Jeu02] :
– Filtrage simple de paquets : Le filtrage est fait sur les adresses IP et sur les
numéros de ports (source et destination). Ce type de filtrage offre une défense
simple et efficace, mais la mise en place manque de souplesse et peut être bloquante pour le bon fonctionnement de certaines applications.
– Firewall stateful : Un tel pare-feu utilise le filtrage précédent, en gardant en
plus une trace de l’état de tout échange de données soumis à approbation. Ce
type de filtrage permet une analyse et un filtrage plus fin des paquets réseaux car
il est capable de reconnaître et comprendre les flux réseaux, mais il ne permet
pas d’arrêter les attaques sur des vulnérabilités de logiciels6 car il est incapable
d’analyser la sémantique du flux.
– Proxying applicatif : Le proxying applicatif a pour but de se substituer au
serveur ou au client qu’il doit défendre en traitant les demandes à leur place,
pour ensuite les retransmettre dans une forme la plus conventionnelle possible.
L’inconvénient majeur de ce type de filtrage vient du fait que le pare-feu doit
connaître les protocoles et les applications, ce qui pose problème pour ceux qui
sont peu utilisés ou les applications "maison".
Tous les pare-feux permettent aux administrateurs de récupérer des fichiers d’audit.
On y trouve de nombreuses informations sur les connexions refusées (en fonction de
la politique de sécurité qui a été spécifiée). Sachant que le pare-feu intercepte tout
le trafic avec l’extérieur, ces fichiers peuvent être très précieux dans le cadre d’une
enquête, en permettant d’identifier les connexions du réseaux qui ont été interdites et
leur provenance.
Le cas particulier des IDS Il existe deux types d’IDS [Mic02] : les IDS dits à
approche comportementale et ceux dits à approche par scénarios.
Dans la première approche, on commence par apprendre le comportement normal
des entités présentes dans le système, puis on émet une alerte dès que l’entité dévie de
son comportement. Dans la seconde approche, on recherche dans les données d’audit
les signatures de scénarios d’attaque enregistrés dans une base.
Les IDS ne permettent pas de découvrir toutes les attaques. En règle générale, une
intrusion est détectée soit parce que le pirate l’a intentionnellement voulu (destruction
6 par
exemple la faille du "double decode" sur les serveurs IIS
1.2. TECHNIQUES D’INVESTIGATION
25
[**] [111:16:1] spp_stream4: TCP CHECKSUM CHANGED ON RETRANSMISSION
(possible fragroute) detection [**]
02/17-13:31:32.958932 192.168.X1.X2:4417 -> 192.168.Y1.Y2:80
TCP TTL:64 TOS:0x0 ID:1689 IpLen:20 DgmLen:652 DF
***AP*** Seq: 0xC6DCDF7 Ack: 0xC684D652 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 61265382 87935966
[**] [100:1:1] spp_portscan: PORTSCAN DETECTED from 192.168.X1.X3
(THRESHOLD 4 connections exceeded in 0 seconds) [**]
02/18-09:32:09.475879
[**] [100:2:1] spp_portscan: portscan status from 192.168.X1.X3:
1042 connections across 1 hosts: TCP(1042), UDP(0) [**]
02/18-09:32:13.126532
[**] [100:2:1] spp_portscan: portscan status from 192.168.X1.X3:
311 connections across 1 hosts: TCP(311), UDP(0) [**]
02/18-09:32:51.619002
[**] [111:2:1] spp_stream4: possible EVASIVE RST detection [**]
02/18-09:32:51.658904 192.168.X1.X3:40311 -> 192.168.X1.X2:25
TCP TTL:64 TOS:0x0 ID:28507 IpLen:20 DgmLen:52 DF
***A*R** Seq: 0xAD65643D Ack: 0xC628431A Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 7801702 21851
[**] [111:2:1] spp_stream4: possible EVASIVE RST detection [**]
02/18-09:32:51.667612 192.168.X1.X3:40394 -> 192.168.X1.X2:1003
TCP TTL:64 TOS:0x0 ID:2276 IpLen:20 DgmLen:52 DF
***A*R** Seq: 0xADB90385 Ack: 0xC6399D97 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 7801703 21852
F IG . 1.11 – Exemple d’alertes Snort
de données, défigurement de sites Web, etc.), soit parce que l’on est en présence d’une
attaque "bruyante" (typiquement un déni de service), soit enfin parce l’administrateur
a détecté une anomalie. Dans les entreprises ayant un haut degré d’exigence en sécurité (par exemple les banques), plusieurs IDS en parallèle et de types différents sont
exploités et font l’objet d’une surveillance permanente. Dans la plupart des cas, un IDS
génère un gros volume d’alertes, qui masque les véritables attaques au milieu des faux
positifs (les fausses alertes). Les fichiers générés doivent cependant être vérifiés. Ils
permettent, en cas d’attaque, de donner une première approximation sur son étendue :
combien de machines sont compromises, depuis combien de temps, etc.
La figure 1.11 montre une alerte SNORT quand un scan de type "EVASIVE RST"
a été effectué. On remarquera notamment l’adresse IP source 192.168.X1.X3, ce
qui donne un très bon indice sur la source de l’attaque. Mais cet exemple montre
aussi que l’on peut avoir aussi beaucoup de faux positifs, comme la première alerte
"TCP CHECKSUM CHANGED ON RETRANSMISSION".
Après avoir analysé cette première alerte, il faut vérifier dans les messages précédents si d’autres alertes ne sont pas passées inaperçues. Ces alertes peuvent n’avoir
aucun sens prises séparément mais peuvent constituer un très bon début de piste pour
les investigateurs. De plus, certaines alertes peuvent être des "faux positifs" (fausses
CHAPITRE 1. ETAT DE L’ART
26
alertes). Il faut donc à chaque fois vérifier si l’attaque peut avoir lieu sur la machine
concernée. Par exemple, une vulnérabilité Windows sera inopérante sur une machine
Linux.
Le cas particulier des pots de miel (Honeypot) Un pot de miel est un système
dont l’objectif est d’attirer les cybercriminels. Sa configuration comporte volontairement des failles de sécurité, ainsi que des moyens permettant d’enregistrer le comportement des utilisateurs. Les premiers travaux ont été effectués en 1990 par Clifford
Stoll et Bill Cheswick. Les premiers produits opérationnels sont proposés en 1998 (CyberCop Sting, NetFacade et BackOfficer) ; le projet HoneyNet [HNT] est créé en 1999.
Il y a deux types de pots de miel :
– en production (production Honeypots) ; Ils sont utilisés pour sécuriser un réseau
opérationnel. Non seulement il est possible de détecter des attaques grâce à leurs
fichiers d’audit, mais on peut aussi utiliser les résultats fournis pour corriger les
vulnérabilités, grâce aux attaques observées.
– en recherche (research Honeypots) ; Ils sont utilisés pour étudier comment la
communauté Black Hat évolue, quelles sont les techniques que cette communauté utilise et qui appartient à cette communauté. Les pots de miel de recherche
sont plus complets que les pots de miel de production. C’est en général le système en entier qui peut être attaqué (et non pas seulement un seul service), ce qui
en fait des systèmes sensibles dans leur gestion et complexes pour l’analyse de
leur résultats.
La localisation du pot de miel est importante. Il peut être placé :
– avant ou après le pare-feu ;
– dans la DMZ ou sur le réseau interne ;
– dans un sous-réseau spécifique ;
– à proximité ou non d’un IDS.
– en prévention (dans la DMZ ou en interne) : pour permettre de parer des attaques
ou pour découvrir un attaquant ;
– en détection (à l’extérieur) : pour détecter les attaques comme un IDS ;
– en réponse (dans la DMZ) : pour donner un maximum d’informations sur une
attaque qui a été réussie ;
– en recherche (à l’extérieur ou dans la DMZ, sur le routeur d‘entrée et en interne) :
pour obtenir des informations sur toutes les attaques (réussies ou non).
Comme le propose Lance Spitzner dans [Spi02], les pots de miel peuvent aussi
servir de poubelle (Garbage Collector) pour capturer tous les flux réseau non
autorisés.
L’analyse des données collectées par un pot de miel repose sur l’étude de :
1. l’adresse IP source ;
2. l’adresse IP destination ;
3. le port TCP/UDP destination ;
4. la date et l’heure de l’attaque ;
5. les commandes effectuées.
1.2. TECHNIQUES D’INVESTIGATION
27
Internet
P2
P1
WWW
Mail
P4
Réseau Interne
P3
F IG . 1.12 – Positionnement d’un pot de miel
CHAPITRE 1. ETAT DE L’ART
28
L’adresse IP source permet de connaître la provenance de l’attaque, en faisant une recherche DNS avec des outils comme Whois ou dig. L’adresse IP destination identifie
le système attaqué. Le port TCP/UDP permet de connaître le logiciel visé. Enfin, les
premières commandes fournissent un aperçu sur les capacités du pirate et ses objectifs.
L’analyse doit être faite en décomposant la totalité du processus de l’attaque :
1. l’alerte ; elle est en général donnée par l’IDS en charge de surveiller le pot de
miel ;
2. la prise d’empreinte par le pirate ; avant qu’il puisse se connecter, il doit savoir
quels sont les services offerts par la machine ; des premières indications sur le
mode opératoire du pirate et sur sa base d’attaques peuvent être enregistrées à ce
moment ;
3. l’exploit ; il peut renseigner sur l’habileté de l’attaquant ;
4. l’installation ; après l’exploit, le pirate va généralement vouloir garder un accès
permanent à la machine. Pour cela, il va installer une porte dérobée (rootkit) et
s’arranger pour que toutes ses actions passées, présentes et futures soient masquées ;
5. l’utilisation ; une fois installé, le pirate peut revenir pour effectuer des actions
diverses et variées (comme l’installation d’un sniffer, l’attaque vers d’autres machines ; etc.).
Récupération de données cachées ou supprimées
La corbeille (Recycle bin) Sous Windows, et maintenant aussi sous Linux, il
existe un répertoire où les fichiers supprimés sont copiés avant d’être détruits définitivement par l’utilisateur. Il est donc possible de retrouver des données intéressantes
dans les corbeilles (mais cela est vrai seulement pour des pirates peu expérimentés et
ayant un accès physique à la machine).
Effacement définitif Quand un fichier est effacé définitivement, le système d’exploitation marque l’emplacement sur le disque dur comme étant libre mais le fichier
n’est pas physiquement détruit. Il sera effectivement effacé quand le système aura réécrit d’autres données sur cet emplacement.
On peut donc retrouver des données sur un disque même si elles ont été effacées. Il
y a deux méthodes de récupération : la première consiste à rechercher sur les disques
des mots clés ou des entêtes caractéristiques de certains fichiers (images, sons, documents bureautiques, etc.). On peut aussi parcourir la table du média qui liste tous les
fichiers du média (supprimés ou non).
Des outils comme EnCase [EC] peuvent effectuer ce genre de recherche sur des
systèmes Windows. Pour Linux, Sleuthkit [SLE] permet de lister et récupérer des fichiers en connaissant leurs numéros d’inode.
Effacement par écrasement Un autre moyen d’effacer des données consiste à
utiliser des outils qui vont dans un premier temps écraser le contenu des fichiers à
1.2. TECHNIQUES D’INVESTIGATION
29
supprimer par des données aléatoires, puis supprimer le lien entre le fichier et le système d’exploitation. Dans ce cas, la récupération des données devient impossible de
façon logicielle, il faut alors utiliser des moyens physiques pour récupérer des traces
(microscope électronique).
Écoute du réseau L’écoute du réseau juste après une attaque peut être intéressante
pour plusieurs raisons :
– si l’attaquant est toujours en action, on va pouvoir observer la suite de son comportement ;
– si l’attaquant a installé une trappe logicielle (back-door) ou tout autre logiciel
capable de communiquer avec l’extérieur (ordinateur zombie), on peut identifier
les systèmes qui ont été compromis par l’attaquant.
Topologie du réseau Il faut dans un premier temps identifier les systèmes et cartographier le ou les réseaux qui doivent être analysés. Il faut ensuite construire la topologie
du réseau, en mettant en évidence les serveurs (HTTP, NIS, FTP, etc.), les systèmes
d’exploitation utilisés avec leurs versions et les mises à jour.
Un graphique représentant le réseau peut permettre aux enquêteurs de progresser
plus rapidement. Ce graphique doit être réalisé en collaboration avec les administrateurs du ou des sites concernés. Il est possible d’utiliser des outils tels que Cheops
[CHE] (FIG. 1.13), OPNET [OPN] ou LanGuard [LGD]. Une fois la topologie connue,
il reste à interroger les administrateurs système sur la criticité des serveurs et des applications.
Évaluer cette criticité permet aux enquêteurs de savoir si des systèmes peuvent être
arrêtés, pendant combien de temps et quelles sont les modifications qu’il est possible
d’apporter, avec le minimum de perturbation, lorsque par exemple une porte cachée
(back-door), a été découverte.
Cela permet aussi d’établir un planning pour la remise en marche des systèmes
concernés.
Connexions internet Nous allons maintenant présenter les méthodes pour remonter la piste d’une attaque sur internet. Ces méthodes sont pour la plupart théoriques
car pour l’instant difficiles à implémenter sur la totalité de l’internet. Elles pourraient
non seulement servir à sécuriser l’internet, mais aussi générer des traces pour les enquêteurs. Certaines, comme l’Ingress Filtering, commencent à être utilisées par les
fournisseurs d’accès (par exemple AAPT http://www.aapt.com.au/ en février
2005).
Ingress Filtering (Filtrage entrant) Il s’agit de configurer les routeurs de façon
à ce qu’ils bloquent les paquets venant d’adresses IP non légitimes [SWKA01], certains paquets pouvant avoir été fabriqués avec une adresse IP source différente de celle
d’origine.
Cette méthode permet de bloquer ces paquets ou de les enregistrer pour étude ultérieure. Elle ne peut cependant être utilisée que dans certains cas : le routeur qui filtre
30
CHAPITRE 1. ETAT DE L’ART
F IG . 1.13 – L’outil Cheops
1.2. TECHNIQUES D’INVESTIGATION
31
doit pouvoir déterminer si une adresse IP est "légitime" et le trafic réseau ne doit pas
être trop dense pour avoir le temps de réaliser le filtrage.
Link testing (Test des liens) Le routeur placé juste avant le réseau de la victime
doit chercher d’où vient le flux incriminé [SWKA01] (i.e. sur quelle interface le flux
de données illégitimes arrive). L’idéal serait que chaque routeur en amont exécute la
même opération jusqu’à remonter à la source de l’attaque.
Dans ce cas, il faut que l’attaquant reste actif tout le temps de la recherche et que
chaque routeur sache effectuer cette recherche.
Input debugging (Correction d’entrée) Cette méthode est un cas particulier du
"Link testing". Il s’agit pour l’opérateur de filtrer des paquets particuliers en sortie et de
déterminer à quels paquets en entrée ils correspondent [SWKA01]. Pour implémenter
une telle méthode, il faut que l’exploitant du réseau attaqué puisse communiquer à
l’opérateur la signature de l’attaque, afin que ce dernier puisse interroger les routeurs
pour savoir à quoi correspond le flux recherché.
La limitation pratique vient de la nécessité d’une bonne communication et coordination entre opérateurs.
Controlled flooding (Inondation contrôlée) Cette méthode est un autre cas particulier du "Link testing", consistant à inonder (saturer en trafic) certains routeurs prédéterminés, pour voir si cela a un effet sur l’attaque en cours [SWKA01] [BC99].
Cette technique est intéressante puisqu’elle n’a besoin d’être implantée que sur
quelques routeurs, malheureusement cette technique impose de faire un déni de service !
Logging (Enregistrement) Le but est d’enregistrer les paquets qui passent au
travers de "routeurs-clé" [SWKA01]. Une analyse post-mortem est ainsi possible. L’inconvénient majeur vient du fait que les routeurs qui l’implémentent doivent avoir beaucoup de ressources.
Packet Marking (Marquage des paquets) Il est possible de remonter à la source
d’une attaque en marquant les paquets qui traversent les routeurs [Goo02]. Chaque paquet est marqué aléatoirement par chaque routeur avec un label propre à celui-ci. Ainsi,
quand on reçoit des paquets suspects, on peut savoir par quels routeurs ces paquets sont
passés. Après avoir reçu un certain nombre de paquets, on peut alors reconstruire le
chemin.
Étude des communications On entend ici par communication soit des messages
laissés intentionnellement par l’attaquant sur le système compromis, comme lors du
défigurement d’un site Web7 , soit des messages privés (mail, IRC, etc.) qui ont été
retrouvés par les enquêteurs sur des systèmes compromis ou sur les systèmes de suspects. Les défigurements de sites Web sont généralement des actions sans but précis,
7 http
://attrition.org/security/commentary/
32
CHAPITRE 1. ETAT DE L’ART
fait par des "script kiddies", même si certains messages peuvent avoir une portée plus
grande que "I 0wn yOu" et critiquer par exemple l’activité d’une entreprise. Les messages privés apportent en général plus d’informations aux enquêteurs, mais posent un
problème de droit et d’éthique concernant le fait de lire une correspondance sans en
avoir l’autorisation du propriétaire ou l’accréditation adéquate.
Analyse des preuves physiques Les preuves physiques peuvent jouer un rôle très
important dans une enquête. L’analyse des entrées et sorties d’un bâtiment peuvent
permettre de démasquer le véritable coupable, même s’il a utilisé le compte informatique d’un tiers pour perpétrer son forfait. Cela peut aussi permettre de disculper une
personne qui n’avait rien à voir avec le délit, ou de démontrer que l’attaquant est à
l’extérieur de l’entreprise et utilise une connexion sans fil pour accéder aux serveurs
internes.
De même la nature de l’organisation attaquée peut donner des informations importantes : une attaque par déni de service sur un serveur Microsoft n’a pas la même
signification qu’un déni de service sur le site Web d’une petite entreprise familiale dans
le Larzac.
Enfin, toutes les techniques habituellement utilisées par les forces de police pour
des délits non informatiques peuvent être utilisées, comme par exemple les empreintes
digitales, les empreintes ADN, etc.
1.2.2.4 Etapes de présentation
Il n’y a pas de solution logicielle qui permette à ce jour de présenter des résultats d’enquêtes, mais voici quelques logiciels communément utilisés par les enquêteurs
pour analyser des média et pour sauvegarder les résultats des analyses.
1.2.2.5 Outils
Outils libres (GPL)
Linux Les environnements Linux proposent plusieurs outils standards qui permettent d’effectuer des analyses forensiques, la plupart disponibles en ligne de commande. Ils ne sont donc pas user-friendly, mais ils permettent par contre d’effectuer des
tâches très précises sur les systèmes compromis. Il existe d’autre part des CD bootables
qui permettent d’utiliser un système Linux sur n’importe quel machine (par exemple
Knoppix [KNO] ou Helix [HEL]).
dd (Data Duplicator) est un logiciel qui vient du monde Unix. Il permet de dupliquer "bit à bit" un disque dur ou un disque amovible vers un fichier. Son utilisation
standard est : dd if=[source] of=[destination] et on peut ajouter quelques
options : "copie à partir de", "copie de . . . à . . . ", etc. Par défaut (sans if et of), dd
prend en entrée l’entrée standard et en sortie la sortie standard. Ainsi, il peut être utilisé
en conjonction avec nc (NetCat) pour envoyer via un réseau une copie du support (FIG.
1.14).
1.2. TECHNIQUES D’INVESTIGATION
33
victime@reseau$ dd if=/dev/hda1 | des -e -c -f passe | nc -w 3 192.168.0.1 2222
enquêteur@reseau$ nc -l -p 2222 | des -d -c -f passe | dd of=victime.hda1.vfat
F IG . 1.14 – Envoi d’une copie d’un disque dur via un réseau
enquêteur@reseau$ mount victime.hda1.vfat /mnt/victime -o ro,loop=/dev/loop0
F IG . 1.15 – Lecture d’une image d’un disque dur sous Linux
Dans cet exemple, on copie tout le contenu du premier disque dur de
victime@reseau et on l’envoie via le réseau sur la machine
enquêteur@reseau. De plus, la communication est chiffrée par DES. Le fichier
victime.hda1.vfat est une image fidèle du disque dur hda1. Pour le lire, il suffit de
"monter" ce fichier comme si c’était un disque normal via le périphérique virtuel /dev/loop, comme le montre la figure 1.15. L’option ro oblige mount à monter le système
de fichiers en lecture seule ("read-only"). On peut aussi utiliser dcfldd [DCF] qui est
une version améliorée de dd. Il permet notamment le calcul à la volée des sommes de
contrôle.
Sleuthkit et Autopsy Ces deux outils ([SLE]) permettent de lire facilement des
images de disque. Ils sont libres et OpenSource (FIG. 1.16 et 1.17). Voici quelquesunes de leurs caractéristiques :
– recherche sur des fichiers et répertoires supprimés ou non ;
– accès à la structure bas-niveau des systèmes de fichiers ;
– recherche de mots clé (Pattern matching) ;
– chronologie de l’activité du suspect sur les fichiers ;
– tri des fichiers par catégorie et vérification des extensions ;
– identification des images et affichage des imagettes ;
– consultations de bases de données d’informations de "hash" ;
– notes des enquêteurs ;
– génération de rapports.
PyFlag L’outil PyFLAG [PYF] se base sur Sleuthkit et offre une interface graphique qui permet notamment d’analyser les fichiers d’audit.
Outils commerciaux
Encase Le logiciel EnCase de Guidance Software [EC] a été créé en 1998 [Cas01].
Il permet de lire facilement les images de disque. Il reconnaît un grand nombre de systèmes de fichiers (FAT12, FAT16, FAT32, NTFS, Linux, Macintosh, etc.) et permet
d’effectuer des recherches (recherche de fichiers, dossiers, chaînes de caractères) avec
une interface graphique de type Windows.
34
CHAPITRE 1. ETAT DE L’ART
F IG . 1.16 – Autopsy - présentation des images disque analysées
F IG . 1.17 – Autopsy - pattern matching
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
35
Ilook Le logiciel ILook [IL] a les mêmes objectifs que EnCase. Il permet d’effectuer des recherches sur des images de média. Cependant, il faut appartenir à une
agence gouvernementale pour pouvoir l’utiliser.
FTK Forensic Toolkit est un produit de la société AccessData8 . FTK est, comme
Encase, un logiciel propriétaire. Il intègre beaucoup d’outils comme : l’acquisition,
l’analyse de fichiers, l’analyse d’email et de fichiers ZIP, des filtres sur les systèmes de
fichiers, un récupérateur de mots de passe, etc.
1.2.2.6 Conclusion
Cette section a présenté un certain nombre d’outils utilisables sur les plateformes
les plus standards (Linux et Windows). Cette énumération n’est pas exhaustive mais
elle permet de montrer que les enquêteurs n’ont pas les mêmes outils suivant la plateforme. Il y a beaucoup plus d’outils propriétaires sous Windows que sous Linux. Le
système Linux comprend par contre beaucoup d’outils en ligne de commandes qui ne
sont accessibles qu’à des enquêteurs initiés.
1.3 Etat de l’art des systèmes d’aide à la décision
Le début de ce chapitre présente succinctement les systèmes experts puis les différents types de moteur d’inférences et celui (réseaux bayésiens) que nous avons retenu.
Nous présentons ensuite plus précisément ce formalisme et montrons comment l’utiliser pour atteindre nos objectifs.
1.3.1 Systèmes experts
Les systèmes experts ont comme objectif de reproduire le travail d’un expert. Ils
ont été construits pour permettre l’exploitation des connaissances d’experts dans un
domaine précis et délimité, pour assister l’utilisateur de manière efficace. Les systèmes
experts se basent sur des faits (base de connaissances) qui représentent la connaissance
de l’expert. On exploite ces faits avec des règles de production de la forme :
si conditions alors conclusion
(il peut y avoir plusieurs conditions mais une seule conclusion). Les règles peuvent être
utilisées soit :
en chaînage avant, le raisonnement se déroule dans le sens habituel, les faits apportent
des conclusions ;
en chaînage arrière, le raisonnement se déroule à l’envers, les conclusions permettent
de déduire les conditions initiales qui ont permis d’observer cet état.
Ce type de système est très intéressant dans le sens où il permet d’exploiter des résultats précédents pour produire de nouveaux résultats. Par contre, l’utilisation d’une
8 http://www.accessdata.com/
CHAPITRE 1. ETAT DE L’ART
36
F IG . 1.18 – Exemple de réseau de neurones multi-couches
base de règles standard est trop restrictive. Une base de règles standard ne peut être
utilisée que dans un unique sens : des conditions vers les conclusions, le comportement est donc séquentiel, alors que nous cherchons à avoir un comportement itératif.
D’autre part, les résultats fournis par la base de règles sont binaires, notre objectif est
plutôt de donner aux enquêteurs des réponses probabilistes. Enfin, les faits et conclusions sont séparés, alors que nous voudrions que, dans certains cas, on puisse avoir des
éléments qui soient à la fois faits et conclusions. C’est pour ces raisons que nous avons
choisi de changer le moteur d’inférences. Nous allons maintenant décrire les moteurs
d’inférences possibles.
1.3.2 Les différents types de moteurs d’inférence
Il existe différents formalismes permettant de créer un moteur d’inférences, en voici
une liste non exhaustive :
– les réseaux de neurones
– les réseaux de Petri
– les arbres de décision
– les réseaux bayésiens
– les diagrammes d’influence
1.3.2.1 Réseaux de neurones
Les réseaux de neurones sont des graphes pondérés orientés dont les nœuds sont
des approximations des neurones biologiques (FIG.1.18). Les réseaux de neurones ont
été introduits par Warren Sturgis McCulloch et Walter Pitts dans [LMMP59] : ils ont
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
37
montré que ces neurones formels peuvent être utilisés pour effectuer des opérations
logiques, arithmétiques et symboliques complexes. Il existe plusieurs types de réseau :
– les mono-couches, où il y a qu’un seul ensemble de neurones d’entrée et qu’un
seul ensemble de neurones de sortie ;
– les multi-couches, où il y a en plus des deux ensembles précédents une ou plusieurs couches de neurones cachés. qui font l’interface entre les neurones d’entrée et ceux de sortie.
Les synapses désignent les zones de contact entre les neurones et permettent de propager l’information entre les neurones. Les réseaux de neurones théoriques ont eux aussi
besoin de propager l’information entre les neurones. Pour cela, ils utilisent des paramètres pour propager l’information. Ces paramètres sont les coefficients synaptiques
qui commandent la valeur de chacun des neurones. Ces paramètres sont calculés par
des règles, la première utilisée a été celle de Donald Hebb [Heb49] qui permet de modifier la valeur des coefficients synaptiques en fonction de la valeur des neurones qui y
sont reliés. Chaque neurone reçoit des informations des neurones qui lui sont connectés. Il produit une valeur grâce à des fonctions de combinaison qui peuvent être de deux
types : MLP (Multi Layer Perceptron), où la valeur est calculée à partir de la combinaison linéaire entre les différentes valeurs en entrée, et RLP (Radial Layer Perceptron),
où la valeur est calculée à partir de la distance entre les entrées. Il existe un deuxième
type de fonction : les fonctions d’activation (ou fonction de seuillage). Elles permettent
de positionner un neurone aux états actif et non-actif. Plusieurs fonctions peuvent être
utilisées dans ce but, notamment la fonction sigmoïde, la fonction tangente hyperbolique et la fonction discriminante de Kronecker. La phase d’apprentissage, permettant
de s’adapter aux données à traiter, peut être réalisée suivant différentes stratégies : le
mode supervisé ou non (on force ou pas le réseau à converger vers un état final précis)
et le sur-apprentissage (spécialisation du réseau). Les réseaux de neurones sont bien
adaptés à des problèmes dans lesquels le vecteur d’entrée est de taille fixe.
1.3.2.2 Cartes de Kohonen
Les cartes de Kohonen [Koh89] (ou cartes auto-organisatrices de Kohonen) sont
aussi inspirées du vivant. Dans de nombreuses zones du cortex cérébral, certains neurones activés ont tendance à faire réagir les neurones voisins. L’idée de Kohonen consiste à coder des motifs d’une image présentés en entrée tout en conservant la topologie de l’espace d’entrée (Figure 1.19). L’apprentissage utilise une base d’exemples.
Chaque exemple est présenté au réseau, on recherche quel neurone a la sortie la plus
élevée, puis les vecteurs de poids de certains neurones sont mis à jour : celui du neurone gagnant et ceux des neurones voisins. La reconnaissance se fait par la présentation
d’un nouveau vecteur d’entrée, qui fait réagir un neurone particulier, le résultat correspondant à l’étiquette associée au neurone vainqueur. Le résultat final est calculé par
comptage de toutes les étiquettes du réseau après la présentation de tous les vecteurs
d’entrée.
CHAPITRE 1. ETAT DE L’ART
38
Carte
de
Kohonen
Entrées
F IG . 1.19 – Exemple de carte de Kohonen
F IG . 1.20 – Exemple de réseau de Petri
1.3.2.3 Réseau de Petri
Un réseau de Petri N = (P, T, L) est un graphe orienté biparti et alterné [Pet62].
Il est défini sur deux ensembles finis et distincts de sommets : les places P et les transitions T . Les liens, ou flèches L, relient les places aux transitions et les transitions
aux places en suivant la relation L ⊂ (P × T ) ∪ (T × P ) (FIG. 1.20). Chaque place
peut contenir de 0 à n jeton(s), ce nombre variant à chaque état du graphe. Les jetons
se déplacent de place en place par tirage des transitions. De base, une transition est
franchissable si et seulement si toutes les places en amont possèdent au moins un jeton. Il existe de nombreuses variantes des réseaux de Petri : les réseaux autonomes qui
décrivent des systèmes où l’on ne connaît pas les instants de franchissements des transitions ; les réseaux non-autonomes qui décrivent des systèmes où les franchissements
sont conditionnés par des événements externes ou par le temps ; les réseaux de Petri
continus pour lesquels le marquage des places peut avoir une valeur réelle ; les réseaux
de Pétri colorés, etc.
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
39
Température < 37,5
oui
Gorge irritée
oui
non
malade
non
malade
bien portant
F IG . 1.21 – Exemple d’arbre de décision
1.3.2.4 Arbres de décision
Les arbres de décision sont des graphes où chacun des nœuds représente une observation ou un test à effectuer (par exemple [Température < 37,5] ou [Gorge
irritée]) et où chacune des feuilles représente une conclusion (la classe) au problème posé (cf. FIG. 1.21). Même si les arbres de décision sont utilisés pour faire de
la classification, les résultats peuvent être interprétés comme des déductions. Leur exploitation se fait en deux étapes :
1. construction d’un modèle sur les données dont la classe est connue (training data
set) ;
2. classification des données suivantes.
Il existe plusieurs algorithmes d’apprentissage, chacun d’eux ayant deux phases : la
phase d’expansion, où l’on construit l’arbre proprement dit, et la phase d’élagage où
l’on supprime les branches pour essayer de diminuer et simplifier les grands arbres.
Les deux algorithmes les plus connus sont :
CART de Breiman, Friedman, Olshen et Stone [BFOS84] : il permet d’inférer sur des
arbres binaires (qui ne possèdent que deux classes, par exemple : oui et non).
C4.5 de Quinlan et Rivest [QR89] : c’est une amélioration de l’algorithme ID3 développé par Quinlan en 1983 ; qui permet d’inférer n’importe quel type de classe
(binaire, qualitative ou continue).
Le problème des arbres de décision est que lorsqu’il manque des observations on se
retrouve dans une situation bloquante, c’est-à-dire que l’on ne peut plus progresser
dans l’arbre tant que l’on n’a pas observé le phénomène. Ceci peut être un handicap
pour l’analyse forensique puisque l’on ne possède pas toujours toutes les données.
CHAPITRE 1. ETAT DE L’ART
40
C
A
B
D
F IG . 1.22 – Exemple de réseau bayésien
D = V rai
D = F aux
B = V rai
X1 %
X3 %
B = F aux
X2 %
X4 %
TAB . 1.5 – Table de probabilité associée aux nœuds B et D
1.3.2.5 Réseaux bayésiens
Les réseaux bayésiens sont des graphes acycliques composés de nœuds (appelés
aussi variables) et d’arcs orientés [NWL+ 04]. Les nœuds représentent des variables
aléatoires qui modélisent des paramètres du système étudié et les arcs des relations de
causalité entre ces paramètres. Dans la figure 1.22, l’arc entre les nœuds A et B signifie : « La connaissance que j’ai de A détermine la connaissance que j’ai de B ». Cette
détermination peut être stricte si l’un des nœuds a une valeur fixée ou n’être qu’influente si aucune des valeurs n’est fixe. Bien que les arcs soient orientés, le transfert
d’information existe dans les deux sens : la connaissance de A influe sur la valeur de
B, mais si on connaît B, alors on peut connaître la valeur de A sous forme de probabilité. Chaque arc s’associe à une table de probabilité reliant les différents nœuds. Si
les nœuds de la figure 1.22 peuvent avoir comme valeur Vrai ou Faux, alors la table de
probabilité pour la relation entre les nœuds B et D est représentée par le tableau 1.5 et
la table de probabilité pour la relation entre les nœuds A, B et C est représentée par le
tableau 1.6.
Un réseau bayésien est défini formellement par :
– un graphe acyclique orienté G tel que G = (V, E), (V étant l’ensemble des nœuds
B = V rai
B = F aux
A = V rai
C = V rai C = F aux
X5 %
X6 %
X9 %
X10 %
A = F aux
C = V rai C = F aux
X7 %
X8 %
X11 %
X12 %
TAB . 1.6 – Table de probabilité associée au nœud B
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
41
de G et E l’ensemble des arcs de G) ;
– un espace probabilisé fini (Ω, Z, p) (avec Ω un ensemble fini non vide, Z un
ensemble d’événements et p la probabilité) ;
– un ensemble de variables aléatoires V associées aux nœuds du graphe et définies
sur (Ω, Z, p) tel que :
p(V1 , V2 , · · · , Vn ) =
n
Y
i=1
p(Vi | C(Vi ))
où p(V1 , V2 , · · · , Vn ) représente les probabilités jointes de V1 et V2 et · · · et Vn
et où C(Vi ) sont les causes (parents) de Vi dans G.
Dans le cas de 2 variables aléatoires A et B définies sur un même ensemble Ω, ces
probabilités jointes peuvent se définir ainsi :
PAB : DA × DB 7−→ [0, 1]
(a, b)
7−→ PAB (a, b) = P(A = a ∩ B = b)
= P(ω ∈ Ω | A(ω) = a ∧ B(ω) = b)
avec DA le domaine de définition de la variable aléatoire A. Cette définition peut se
généraliser à tout ensemble fini U = X1 , . . . , Xn de variables aléatoires défini sur le
même ensemble Ω :
⊗
PU : i∈1,...,n
D Xi
7−→ [0, 1]
u = (x1 , . . . , xn ) 7−→ PU (u) = P(∩i∈1,...,n Xi = xi )
∧
= P(ω ∈ Ω | i∈1,...,n
Xi (ω) = xi )
Les probabilités jointes permettent de caractériser un système en décrivant chacune des
variables aléatoires du réseau.
Les probabilités conditionnelles permettent de caractériser un réseau bayésien en
fonction des différentes variables aléatoires appartenant à ce réseau. Une probabilité
conditionnelle permet de définir la probabilité d’une variable aléatoire sachant la valeur
d’une autre variable. Par exemple, soient A et B deux variables aléatoires appartenant
à l’ensemble Ω : pour tout a ∈ DA et b ∈ DB la probabilité conditionnelle associée
p(A | B) s’écrit P (A | B) = P (A = a | B = b) = x et se lit : la probabilité que
la variable A soit égale à a sachant que la variable B est égale à b est égale à x. Ceci
implique la loi fondamentale des réseaux bayésiens :
P (a, b) = P (a | b) ∗ P (b)
c’est-à-dire qu’en généralisant, si B = b :
P (A, b) = P (A | b) ∗ P (b)
Ceci peut se généraliser à plusieurs variables. Soit un ensemble de variables aléatoires
(Ai )i∈1,...,n sur le même ensemble :
P (a1 , . . . , an ) = P (a1 ).P (a2 , . . . , an | a1 )
=P
Q(a1 ).P (a2 | a1 ).P (a3 , . . . , an | a1 , a2 )
= ni=1 P (ai | a1 , . . . , ai−1 )
On obtient alors le théorème de Bayes si p(b) est strictement positif :
P (a | b) =
P (b | a).P (a)
P (b)
CHAPITRE 1. ETAT DE L’ART
42
et plus généralement :
P (a | b, c) =
P (b | a, c).P (a | c)
P (b | c)
Cette définition peut se résumer de la façon suivante :
loi a priori
P (A | B, C)
∝
∝
loi a priori
P (A | C)
×
×
vraisemblance
p(B | A, C)
Le sigle ∝ signifie "proportionnelle à".
La difficulté principale est que le calcul d’un réseau bayésien est en général un
problème NP-complet [Coo90]. Cette complexité est fortement dépendante du type de
réseau calculé. Si le réseau est simplement connecté (maximum un seul arc montant et
un seul arc descendant par nœud), alors l’inférence exacte pourra être possible même si
le réseau est grand. Par contre, si le réseau est quelconque, l’inférence exacte ne pourra
pas être envisagée. Ce problème peut être résolu avec l’indépendance conditionnelle.
Elle a été étudiée en 1979 par Dawid [Daw79], qui donne la définition suivante :
Soient un univers Ω et un ensemble V de variables aléatoires sur Ω. Soient X, Y, Z ⊂
V 3 . X est indépendant de Y conditionnellement à Z (noté X ⊥ Y | Z) si et seulement
si ces ensembles vérifient :
X ⊥ Y | Z ⇐⇒ P (X | Y, Z) = P (X | Z)
Si Z = ∅, on obtient alors l’indépendance marginale :
X ⊥ Y ⇐⇒ ∀x ∈ Dx , P (Y | X = x) = P (Y )
Cela signifie que si l’on connaît l’indépendance conditionnelle entre une variable X
(respectivement Y ) et Z, alors la connaissance sur Y (respectivement X) n’est pas nécessaire si l’on connaît la valeur de Z. Cela peut réduire grandement les calculs : la
représentation en taille mémoire de P (X | Y, Z) est 2|X| .2|Y | .2|Z| alors que la représentation en taille mémoire de P (X | Z) est 2|X| .2|Z| .
1.3.2.6 Diagrammes d’influence
Les diagrammes d’influence ont été créés par John Diffenbach en 1982 [Dif82]
et sont des réseaux bayésiens augmentés. Ces diagrammes comportent trois types de
nœuds. Les nœuds aléatoires représentent des variables de la modélisation qui peuvent
prendre une valeur dépendante de la situation examinée, mais indépendante de l’utilisateur : ce sont les entrées du système. Les nœuds de décision représentent des variables de la modélisation qui sont, contrairement aux nœuds aléatoires, dépendants des
décisions de l’utilisateur. Enfin, les nœuds de gain représentent les résultats de la décision. Les flèches reliant les nœuds ont un rôle différent selon les nœuds qu’ils relient.
Lorsqu’une flèche pointe vers un nœud aléatoire ou un nœud de gain, elle est appelée
relevance (ou pertinence). Cette flèche indique que la valeur du nœud pointé (le nœud
successeur) dépend de la valeur du nœud origine (le nœud prédécesseur). Lorsqu’une
flèche pointe d’un nœud de décision (ou d’un nœud aléatoire) vers un autre nœud de
décision, cela forme une séquence : le nœud prédécesseur doit avoir une valeur fixée
pour passer au calcul du nœud suivant.
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
base
règles
de
43
réseau
de
neurones
réseau de
Petri (standard)
arbre de
décision
réseau
bayésien
diagramme
d’influence
apprentissage
oui
oui
non
non
oui
oui
comportement
séquentiel
séquentiel
séquentiel
séquentiel
itératif
itératif
sortie
binaire
binaire
entière
binaire
continu
continu
variable
fixe
fixe
fixe
variable
fixe
variable
fixe
fixe
fixe
variable
fixe
nombre
d’entrées
nombre
sorties
de
TAB . 1.7 – Synthèse sur les différents moteurs d’inférences
1.3.3 Motivations du choix retenu
Le tableau 1.7 fait la synthèse des différents types de moteurs d’inférence de la
littérature. Notre choix a été fait suivant plusieurs critères. Comme nous l’avons dit en
introduction, nous souhaitons pouvoir exploiter les résultats des enquêtes précédentes.
Un enquêteur a un comportement que l’on peut qualifier d’itératif, le moteur d’inférences doit donc avoir le même comportement. Pour que l’utilisateur puisse avoir une
vue assez précise de la situation, il est intéressant que les résultats soient présentés classés selon leur niveau de vraisemblance. Enfin un certain nombre de données peuvent
être vues comme des entrées du système ou comme des sorties. C’est par exemple le
cas des logiciels saisis en entrée dans la description de la configuration et dont la valeur
en sortie est calculée en fonction de leur niveau de vulnérabilité.
1.3.4 Mise en oeuvre des réseaux bayésiens
1.3.4.1 Construction
Avant de pouvoir exploiter un réseau bayésien, il faut définir ses variables, sa structure et les tables de probabilités. Cette structure peut être construite de deux manières :
– soit on fait appel à des experts du domaine, qui définissent à la main les relations
entre les nœuds et les tables de probabilités associées.
– soit on utilise des techniques mathématiques qui permettent de créer de façon
automatique le réseau à partir d’une base de cas.
Nous décrivons dans ce paragraphe la deuxième solution. La construction s’effectue en
deux étapes : la mise en place de la structure et la recherche des paramètres.
Apprentissage de la structure Il existe trois grands types d’apprentissage : apprentissage de la causalité, apprentissage basé sur un score et incorporation de connaissances.
CHAPITRE 1. ETAT DE L’ART
44
Apprentissage de la causalité Ces algorithmes sont basés sur le principe suivant :
1. construction d’un graphe non orienté décrivant les relations entre les variables
(par des tests d’indépendance conditionnelle) ;
2. détection des structures en V (V-structures9 ) ;
3. propagation de l’orientation de certains arcs.
Les algorithmes basés sur ce principe sont notamment IC et IC* de Pearl et Verma
[PV91], SGS et PC de Spirtes, Glymour et Scheines [SGS91] et l’algorithme BN-PC de
Chang et al. [CBL97a, CBL97b, CGK+ 02]. Dans SGS, les auteurs créent un réseau non
orienté et complètement relié. Ils testent alors toutes les dépendances conditionnelles
pour supprimer des arêtes puis examinent les V-structures et propagent l’orientation des
arètes. L’algorithme PC des mêmes auteurs essaye d’améliorer l’algorithme précédent,
en ne calculant pas toutes les dépendances conditionnelles pour limiter les calculs. Les
algorithmes IC et IC* de Pearl et Verma construisent d’abord un graphe non orienté et
non relié. L’objectif de ces algorithmes est de relier ce graphe pas à pas par des tests
d’indépendance conditionnelle. En ce qui concerne l’algorithme BN-PC de Chang et
al., la construction d’un réseau s’effectue en trois étapes : 1) recherche de l’arbre de
recouvrement maximal (MSWT10 ) qui permet d’obtenir un graphe non orienté mais
relié, 2) recherche des arêtes par un minimum de tests d’indépendance conditionnelle
et 3) recherche des arêtes inutiles par une deuxième série de tests.
Apprentissage basé sur un score Ces algorithmes se basent soit sur le calcul
d’une structure de réseau qui va maximiser un score soit sur le calcul de plusieurs structures pour trouver ensuite la meilleure. Ces algorithmes doivent en principe effectuer
leur recherche sur toutes les structures possibles, mais, pour limiter le nombre de structures recherchées, on peut utiliser les algorithmes suivants : restriction de l’espace des
arbres (par exemple MSWT, Chow et Liu [CL68], Heckerman [HGC94]), ordonnancement de variables (par exemple : K2, Cooper et Herskovits, [CH92]), recherche gloutonne par Chickering, Geiger et Heckerman [CGH95]. L’algorithme MSWT recherche
un arbre qui inclut tous les nœuds et qui maximise un score. Il y a différentes méthodes
pour calculer le score. Chow et Liu utilisent un score basé sur un critère d’information
mutuelle, alors qu’Heckerman utilise un score quelconque, localement décomposable.
L’avantage d’un tel algorithme est que la solution trouvée est proche de l’arbre original. Par contre la recherche peut être longue puisque l’on va parcourir tous les arbres
jusqu’à maximiser le score. De plus, l’algorithme va forcer certaines variables à appartenir au graphe, même si celles-ci ne sont pas vraiment utiles au problème posé.
L’algorithme par ordonnancement de variables permet de rechercher seulement les arcs
intéressants en ajoutant une relation d’ordre sur les nœuds : si A est avant B, alors il ne
peut pas y avoir d’arc de B vers A. Ceci réduit considérablement le nombre de structures possibles (par exemple, si l’on a 5 nœuds, il y a alors 1024 structures possibles
contre 29.281 dans le cas habituel). La recherche gloutonne recherche toutes les combinaisons possibles pour une variable, puis supprime les combinaisons qui ont le score
9 relation
entre une variable qui possède 2 parents
Weight Spanning Tree
10 Maximum
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
45
le plus faible. La recherche gloutonne demande cependant à ce que le réseau ait une
structure définie à l’avance (donnée par un expert ou calculée par MSWT). En résumé,
l’apprentissage de la causalité permet d’obtenir des structures très proches des structures originales, permettant le calcul d’une structure qui se rapproche plus rapidement
d’une structure convenable (qui peut être exploitée). Malheureusement, le temps de
calcul est plus long que l’apprentissage basé sur un score.
Incorporation de connaissances Cette technique permet d’apporter un à-priori
sur la structure du réseau. Le réseau peut avoir été construit partiellement par un expert
puis calculé automatiquement grâce à la base de cas par les algorithmes cités précédemment.
Apprentissage des paramètres Après avoir construit la structure du réseau, il faut
calculer les tables de probabilités. Il y a trois situations différentes : soit la base de cas
est complète (c’est-à-dire que pour chaque cas, toutes les variables ont une valeur), soit
la base de cas est incomplète (sur certains cas de la base, il manque quelques données),
soit la base est très incomplète.
Base de cas complète Il y a deux techniques possibles. On peut soit utiliser un
algorithme statistique (maximum de vraisemblance) où la probabilité d’un événement
est calculée par rapport à sa fréquence d’apparition dans la base de cas, soit utiliser une
estimation bayésienne, qui se base sur le fait que les variables ont été observées ou pas.
Base de cas incomplète Dans le cas d’une base de cas incomplète, les deux techniques précédentes peuvent être utilisées avec quelques modifications. Pour l’apprentissage statistique et pour l’apprentissage bayésien, il faut rajouter une étape au départ :
l’estimation des paramètres manquants par calcul de leur moyenne.
Base de cas très incomplète Dans ce cas, il faut impérativement faire appel à un
expert qui va fixer la valeur de certains des paramètres. Il se pose alors le problème du
choix de l’expert, de sa familiarité avec les outils probabilistes, etc.
1.3.4.2 Exploitation
Après avoir construit la structure (soit à la main, soit par une base de cas), le réseau
est exploitable.
Les réseaux bayésiens sont a priori mieux adaptés à notre problématique, car plus
robustes lorsqu’il manque des données ou lorsqu’elles sont incertaines, ce qui est le
cas dans la plupart des enquêtes. Les avantages des réseaux bayésiens sont multiples :
– acquisition, rassemblement et fusion des connaissances ;
– représentation et utilisation des connaissances ;
– représentation graphique intuitive, explicite et compréhensible ;
– polyvalence : un réseau bayésien permet d’évaluer, de prévoir, de diagnostiquer
ou d’optimiser des décisions.
46
CHAPITRE 1. ETAT DE L’ART
Dans la suite de cette section, nous allons décrire les deux types d’inférence qui existent,
l’inférence exacte et l’inférence approximative.
Inférence exacte Il y a deux techniques d’inférence exacte. Premièrement, les méthodes de propagation de messages étendues par des algorithmes de coupe [Pea88] qui
utilisent, comme leur nom l’indique, la propagation de messages le long des arcs du
réseau. En faisant des calculs locaux, chaque nœud communique à ses voisins son état
actuel et celui de ses parents. Quand un nœud a toutes les informations nécessaires,
il peut alors calculer sa probabilité marginale. La deuxième technique d’inférence utilise le regroupement de nœuds [LS90]. En modifiant plus ou moins profondément le
graphe (moralisation et triangulation), on peut obtenir plusieurs réseaux simplifiés
(sans cycle) et ainsi utiliser le premier type de méthode (propagation) pour calculer
le réseau global. Ces méthodes dépendent fortement de la structure des graphes.
Inférence approximative L’inférence approximative permet de calculer une valeur
approchée des probabilités d’un réseau bayésien dans un temps raisonnable (le temps
de calcul de la totalité d’un réseau bayésien quelconque est inférieur à quelques minutes
pour un système informatique courant). Il y a deux types de méthodes pour effectuer
une inférence approximative : les méthodes où le calcul est exact mais sur une topologie approchée [Kjæ94] et les méthodes stochastiques (simulations). Les premières
utilisent le fait que soit certains nœuds ne sont que faiblement dépendants (on peut donc
raisonnablement supprimer l’arc entre ces deux nœuds), soit que certains arcs ne propagent pas une information suffisante pour être prise en compte. La deuxième méthode
(méthode stochastique) utilise la simulation pour calculer la valeur des probabilités.
Dans cette méthode, le principe de calcul est le même pour tous les algorithmes :
Pour chacune des passes :
Pour chacun des noeuds :
si on connaît l’état a priori :
ne rien faire
si il n’a pas de parent :
effectuer un tirage conforme à ses probabilités marginales
si tous les parents de ce noeud ont un état déterminé :
effectuer un tirage conforme à la table de probabilité qui le
conditionne
ranger chacune des valeurs aléatoires dans une table
à la fin de toutes les passes, on normalise les valeurs de chaque noeud
Si on connaît la loi à simuler (on est capable de définir l’ordre logique des nœuds),
alors on peut utiliser les algorithmes suivants :
Probabilistic Logic sampling d’Henrion [Hen88]. C’est la première méthode stochastique proposée. Quand des nœuds sont observées, les tirages qui ne sont pas
conformes aux observations sont écartés. Cela réduit grandement les capacités
de cette méthode.
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
47
Forward sampling d’Henrion [Hen88]. Les tirages se font ici dans l’ordre des nœuds,
les ancêtres en premier. Comme l’algorithme précédent, les tirages non conformes
sont écartés.
Likelihood weighting de Fung et Chang ou Shachter et Peot [FC89, SP89]. Contrairement aux algorithmes ci-dessus, aucun tirage n’est écarté. Par contre, les tirages
qui sont conformes aux observations voient leur importance (score) augmenter,
ce qui permet d’obtenir un algorithme simple qui peut accroître sa précision en
augmentant le nombre de tirages. Cet algorithme est l’un des plus utilisé.
self-importance sampling de Shachter et Peot [SP89]. Cet algorithme révise à chaque
tirage la fonction qui permet d’augmenter l’importance d’un tirage. Cela apporte
une plus grande précision, mais aussi un temps de calcul plus important.
Par contre, si on ne connaît pas la loi à simuler, on peut utiliser des méthodes de type
MCMC (Markov Chain Monte Carlo).
Différences entre ces algorithmes L’inférence exacte permet, comme son nom l’indique, un calcul exact du réseau. Ce calcul ne peut être fait que si la taille réseau n’est
pas trop grande (inférieure à une vingtaine de nœuds) et si la structure du réseau est
simple. Ce type d’inférence ne s’applique donc qu’à des cas bien particuliers.
Par contre, l’inférence approximative impose moins de contraintes sur la taille et la
complexité du réseau. Dans un grand nombre d’algorithmes, il est possible de diminuer
la précision pour augmenter la vitesse de calcul. Les méthodes approximatives sur les
dépendances faibles ont pour objectifs de supprimer les informations non pertinentes et
de se concentrer sur les informations qui ont le plus de poids. Par contre, les méthodes
approximatives stochastiques ont pour objectifs de garder toutes les informations disponibles et de les traiter sur un même pied d’égalité.
1.3.4.3 Exemples d’utilisation
Voici quelques exemples d’utilisation des réseaux bayésiens dans les domaines de
la sécurité, de la sureté des systèmes d’information et de l’analyse forensique.
Système anti-fraude chez AT&T La société AT&T a mis au point un système permettant de détecter la fraude sur son réseau téléphonique [ES95]. Ce système a pour
objectif de détecter les risques élevés de non recouvrement, puis de décider des actions
à entreprendre pour résoudre le problème. Les chercheurs d’AT&T ont utilisé des méthodes différentes pour chaque objectif. Un réseau bayésien est utilisé pour le premier
objectif et des diagrammes d’influence pour le deuxième. La spécificité du réseau bayésien mise en oeuvre est que toutes les variables ne sont pas discrètes. Certaines ont des
valeurs continues, ce qui a amené les chercheurs d’AT&T à créer un algorithme d’apprentissage spécifique.
Système d’aide à la décision de la NASA Lors du lancement d’une fusée, les ingénieurs de la NASA doivent prendre en compte un grand nombre d’informations lorsqu’ils doivent prendre des décisions. Plus le nombre d’informations est grand, plus la
48
CHAPITRE 1. ETAT DE L’ART
réponse est longue à trouver, ce qui peut être dangereux lors de décisions critiques, notamment pour les vies humaines. La NASA a donc mis au point, en collaboration avec
la société californienne Knowledge Industries, un système d’aide à la décision [HB95]
basé sur trois réseaux bayésiens11 . Ce système permet l’affichage de données sur le vol
de la fusée ou la navette selon leur degré de pertinence. L’objectif est de montrer à l’utilisateur le moins de données possible, pour qu’il puisse prendre une décision rapide et
en toute connaissance de cause.
Travaux de Levitt et Laskey Dans [LL00], Tod Levitt et Kathryn Laskey proposent
d’utiliser les réseaux bayésiens pour modéliser le raisonnement d’enquêteurs ou de juristes sur des crimes de sang, et testent cette modélisation sur une affaire bien connue
en France, l’affaire Omar Raddad qui a défrayée la chronique en 1994. L’objectif est de
représenter le raisonnement dans une forme interprétable par un système informatique.
Pour cela, les auteurs ont découpé les phases d’un raisonnement en trois classes : les
hypothèses, les preuves et le contexte. Les hypothèses représentent certains éléments
de l’enquête qui ne sont pas encore prouvés. Par exemple, au début du procès : « Omar
Raddad a tuée Ghislaine Marchal », ou « Marchal a écrit sa phrase avant de mourir ».
Les preuves sont des hypothèses dont la véracité a été démontrée. Par exemple : « la
phrase a été écrite dans un français approximatif » ou « un témoin a parlé avec une
femme autre que Marchal le lundi matin ». Enfin, le contexte représente des conclusions obtenues par analyse ou raisonnement sur une série d’hypothèses. Par exemple :
« il y a d’autres suspects que Omar Raddad » ou « Marchal a été tué dans la cave
de sa maison, dimanche en fin de matinée, par un individu seul qui a utilisé un objet
coupant en métal ». Chaque élément de ces trois classes peut avoir un ou plusieurs
attributs caractéristiques : l’acteur, son rôle, son activité (ce qu’il a fait), la localisation spatiale et temporelle, etc. Après avoir analysé le raisonnement, Levitt et Laskey
proposent d’utiliser les réseaux bayésiens pour effectuer des inférences sur les hypothèses. Chaque hypothèse est représentée par une variable bayésienne et les relations
entre ces variables représentent les relations entre les hypothèses (cf. figure 1.23). Ce
type de réseau permet aux auteurs de représenter graphiquement le poid de différentes
hypothèses les unes par rapport aux autres.
11 les trois réseaux modélisent respectivement le système physique (notamment les capteurs), l’impact
d’une action sur le système et l’opérateur (affichage).
1.3. ETAT DE L’ART DES SYSTÈMES D’AIDE À LA DÉCISION
F IG . 1.23 – Sous-ensemble du réseau bayésien de Levitt et Laskey
49
50
CHAPITRE 1. ETAT DE L’ART
Chapitre 2
Présentation de notre approche
2.1 Premier exemple trivial
L’analyse forensique est une discipline où de nombreuses informations sont cachées ou indisponibles selon l’avancée de l’enquête. Par exemple, même si l’on connaît
la configuration d’un système, on ne connaît pas forcément tous les dégâts occasionnés
par l’attaque, ni quelle méthode l’attaquant a utilisée, etc. De plus, lorsque les enquêteurs découvrent de nouveaux indices, cela peut influer sur l’analyse de l’attaque. Les
réseaux bayésiens permettent de répondre à ce type de besoin. On peut créer un réseau
avec les connaissances que l’on a au début de l’enquête (logiciels, vulnérabilités, etc.),
puis faire évoluer les connaissances de ce réseau. A mesure que les connaissances augmentent, le réseau est capable de donner des informations de plus en plus précises sur
le mode opératoire de l’attaquant.
De plus, en informatique, et notamment en analyse forensique, tout n’est pas binaire. La plupart des indices découverts par les enquêteurs amène à des conclusions
qui ne sont pas sures tant que l’on n’a pas de preuve. Par exemple, la découverte d’un
changement de configuration dans un fichier standard du système d’exploitation permet
de penser que l’attaquant avait peut-être les droits administrateur sur cette machine.
Mais il a pu aussi utiliser une faille dans le système d’exploitation pour transformer ce
fichier (utilisation d’un exploit). Les réseaux bayésiens peuvent apporter des réponses
probabilistes à ce type de questions. Un réseau bien configuré va pouvoir présenter aux
enquêteurs un classement des attaques les plus probables, un classement des logiciels
les plus vulnérables, etc. La suite de cette section décrit un exemple trivial des résultats
que peut produire un réseau bayésien.
On suppose que les possibilités d’attaque sont peu nombreuses (2 attaques possibles, soit 2 variables) et que le nombre de logiciels installés est aussi réduit (Serveur
Web Apache, une suite Office et le noyau du système d’exploitation, soit 3 variables).
Le réseau bayésien est décrit sur la figure 2.1. On suppose qu’un administrateur système constate que le serveur Web Apache (A) a été défiguré (D). Il y a deux causes
possibles à cet incident :
– l’attaquant a utilisé un exploit (E) sur l’un des logiciels ;
51
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
52
F IG . 2.1 – Un exemple de réseau bayésien
– l’attaquant a volé le mot de passe administrateur (U ) (usurpation d’identité).
Un réseau bayésien bien formé va proposer des hypothèses sous forme de probabilités :
il y a X% de chance que l’attaquant ait utilisé l’exploit (E) sur le serveur (A), la
probabilité étant donnée par le théorème de Bayes :
P (E | A) =
P (E, A)
P (A)
avec :
– P (E | A) la probabilité que l’attaquant ait utilisé l’exploit (E) sachant que l’attaquant a utilisé le serveur Web (A)1 ;
– P (E, A) la probabilité d’avoir un exploit (E) et un serveur Web (A) ;
– P (A) la probabilité de l’exploit (A).
Dans notre exemple, ayant observé un défigurement D = vrai, on en déduit (Tableau 2.1) que la probabilité que l’attaquant ait utilisé un exploit via le serveur Web A
est
P (E = vrai | A = vrai, D = vrai) = 70%
alors que la probabilité de l’usurpation via le serveur Web A est
P (U = vrai | A = vrai, D = vrai) = 35%
On en conclut que l’enquêteur doit vérifier dans un premier temps si il y a eu une attaque de type exploit sur la machine et sur le serveur Web. S’il ne trouve pas cette
1 les
valeurs de cette variable sont vrai = attaqué ou faux = pas attaqué
2.2. INTRODUCTION DE LA NOTION DE PLAN D’INVESTIGATION
P (E | A, D)
E = vrai
E = f aux
P (U | A, D)
U = vrai
U = f aux
D = vrai
A = vrai A = f aux
70%
20%
30%
80%
D = vrai
A = vrai A = f aux
35%
10%
65%
90%
53
D = f aux
A = vrai A = f aux
50%
10%
50%
90%
D = f aux
A = vrai A = f aux
60%
50%
40%
50%
TAB . 2.1 – Table des probabilités conditionnelles pour la variable Exploit E et Usurpation U
attaque, alors il devra vérifier s’il y a eu une attaque par usurpation d’identité sur le
serveur Web. On pourrait effectuer le même raisonnement pour chacun des logiciels
installés sur le système. Grâce à ce réseau bayésien, l’enquêteur peut mettre des priorités sur ses investigations.
2.2 Introduction de la notion de plan d’investigation
2.2.1 Modèle général d’une enquête
Lors d’une enquête informatique, les enquêteurs doivent répondre à un certain
nombre de questions. On peut les représenter sous la forme d’une pyramide à 4 sommets (FIG. 2.2). A la base, on trouve les questions où, quoi et comment et au sommet,
l’objectif final, qui. Une enquête commence à la base de cette pyramide : les enquêteurs tentent de répondre aux questions « Où a eu lieu le délit ? », « Qu’est-ce qui a
été observé sur les systèmes compromis ? (quoi) » et « Comment cela a-t-il pu avoir
lieu ? ». Au fur et à mesure des avancées de l’enquête, des éléments (informations,
indices ou preuves) permettent d’ajouter des briques à la pyramide décrite ci-dessus.
Cette progression est schématisée par le chemin qui parcourt les faces de la pyramide
(FIG. 2.2). Il reste une dernière question pourquoi, que nous ne traiterons pas pour
les raisons suivantes. Premièrement, cette question fait référence à la logique de l’attaquant et non à la logique de l’attaque. La logique de l’attaquant n’est pas toujours
facile à appréhender par des caractéristiques numériques ou physiques. D’autre part, le
rôle d’un enquêteur est de répondre aux trois premières questions et non à la question
pourquoi ; c’est au tribunal de répondre à cette question.
Les trois questions de base (où, quoi et comment) impliquent chacune des types
d’investigation différents. La question où correspond au domaine physique : où sont
et quels sont les systèmes compromis, comment sont-ils interconnectés ou quels sont
leurs relations, etc. La question quoi correspond au domaine logique : quels sont les
fichiers qui peuvent contenir des indices ou des preuves et quels sont les logiciels attaqués. Enfin, la question comment correspond au domaine humain : comment l’attaquant a pû réaliser cette ou ces attaques. Chacun de ces domaines a ses propres outils
pour retrouver des éléments de preuves. Dans le domaine physique, les enquêteurs vont
54
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
QUI
COMMENT
QUOI
OU
F IG . 2.2 – Les quatre questions associées à une enquête
analyser le type de système utilisé ainsi que les interconnexions ou les relations entre
systèmes. Cela permet, entre autres, de retrouver le chemin emprunté par l’attaquant,
ou, au moins, les points d’entrée éventuellement accessibles par cet attaquant. Dans le
domaine logique, les enquêteurs vont devoir analyser des données numériques (fichiers
d’audit, variables système, etc.). C’est la partie la plus longue de l’enquête, car un système informatique génère énormément de traces et les indices éventuels sont noyés
dans cette masse d’information. Le domaine humain est le plus complexe puisque l’on
touche à la manière de procéder des attaquants. Pour expliquer le modus operandi,
il faut bien connaître les systèmes et leurs vulnérabilités et comprendre ce qui a été
observé sur le système compromis.
Notre approche tente de prendre en compte ces différentes dimensions. Lorsqu’un
enquêteur arrive sur les lieux d’un délit informatique, il collecte des faits sur lesquels
il va s’appuyer pour débuter son enquête. Ces faits peuvent être du type :
– défigurement d’un site Web ;
– message à caractère raciste, calomnieux, etc. ;
– suppression de données (mails, fichiers, etc.) ;
– déni de service (serveur de mail, serveur Web, etc.) ;
– activités inhabituelles sur le réseau ;
– scans réseaux ;
– alertes d’IDS ;
– etc.
Des outils sont ensuite utilisés pour analyser ces faits et obtenir de nouvelles informations qui permettront d’avancer la compréhension du délit. Comme le montre la figure
2.3, l’enquêteur doit effectuer ces analyses en boucle, chaque résultat permettant d’effectuer de nouvelles investigations.
Ces analyses en boucle vont pouvoir être effectuées par un système expert. Un sys-
2.2. INTRODUCTION DE LA NOTION DE PLAN D’INVESTIGATION
55
F IG . 2.3 – La relation entre l’enquêteur et ses outils forensiques
tème expert est composé d’une base de connaissances et d’un moteur d’inférences. La
base de connaissances contient les faits observés par les enquêteurs et leurs connaissances. Celles-ci concernent ici les attaques connues et les vulnérabilités des systèmes,
venant des résultats d’enquêtes précédentes. Le moteur d’inférences modélise le raisonnement de l’enquêteur : il est chargé d’analyser les connaissances ainsi que les
résultats des outils pour proposer des pistes à suivre. Ce moteur d’inférences utilise les
réseaux bayésiens décrits au paragraphe 1.3.2.5 et fournit des résultats sous forme de
probabilités.
2.2.2 Définition d’un plan d’investigation
Nous définissons comme plan d’investigation le réseau bayésien modélisant un système informatique pour une attaque particulière (le système compromis peut avoir été
attaqué plusieurs fois, il y aura autant de plans d’investigation que d’attaques). La figure 2.3 montre la superposition de ces plans d’investigation par une superposition
de rectangles autour du moteur d’inférences. Le réseau bayésien décrit la configuration du système et son état (dégâts observés, attaques subies, etc.). Comme le montre
la figure 2.4 (page 60), nous organisons ces variables (encadrées en pointillés) en 6
classes : l’adresse source, les observations, les logiciels, les attaques, les actions et les
techniques d’investigation.
Les dégâts constatés (loss) : correspondent aux types de dégâts constatés par les enquêteurs en arrivant sur les lieux du délit. Ces variables sont binaires : vrai,
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
56
les dégâts sont observés ou faux, les dégâts ne sont pas observés. Ces dégâts2
sont au nombre de 6 et correspondent aux Loss Types de la base de vulnérabilités
ICAT (cf. Annexe A).
On peut noter que chacune de ces variables est indépendante : chacune défiSecurity protection
,→
,→
Obtain_all_priv
Obtain_some_priv
,→
Sec_Prot_Other
Confidentiality
Integrity
Availability
Dégradation de la protection (obtention de privilèges)
Obtention des droits administrateur
Obtention des droits d’un utilisateur
standard
Obtention des droits système (autre
qu’utilisateur et administrateur)
Perte de confidentialité (vol d’informations)
Perte d’intégrité (changement, réécriture de données)
Déni de service
TAB . 2.2 – Les variables dégâts loss
nit une observation qui ne peut être décrite par aucune des autres observations.
Cependant, nous pouvons noter que certaines variables peuvent en influencer
d’autres. Par exemple, l’obtention des privilèges administrateur peut impliquer
une perte de confidentialité.
La configuration du système (soft) : correspond aux logiciels installés sur le système
compromis. Ces variables ont deux états possibles : vrai lorsque l’attaquant a
effectivement utilisé le logiciel pour pénétrer le système et faux sinon. Chaque
logiciel est caractérisé par le nom de l’éditeur, le nom du logiciel et son numéro
de version.
L’adresse (address) : correspond à la provenance de l’attaque. Cette classe ne contient
qu’une seule variable qui a trois valeurs possibles : local, la provenance de l’attaque est locale, l’attaquant était soit connecté physiquement à la machine, soit
connecté via un accès distant ; interne, l’attaquant agit depuis le réseau interne
de l’entreprise (DMZ3 comprise) ; externe, l’attaquant agit depuis l’extérieur du
réseau de l’entreprise. Par exemple, un attaquant qui utiliserait son propre PC
portable qui attaquerait un entreprise via son réseau Wifi viendrait de l’extérieur
(externe). Par contre, un attaquant qui attaquerait la même entreprise via son
serveur Web (en l’ayant préalablement compromis) viendrait de l’intérieur du
réseau (interne).
Les attaques (attack) : correspondent aux actions nécessaires pour réaliser une intrusion dans un système, pour l’endommager ou pour commettre tout acte répréhensible (une liste est donnée dans le tableau 2.3). Ces variables ont deux états
possibles : vrai lorsque l’attaquant a effectivement utilisé cette attaque pour
2 en
gras dans le tableau 2.2
Zone
3 DeMilitarized
2.2. INTRODUCTION DE LA NOTION DE PLAN D’INVESTIGATION
57
pénétrer le système et faux sinon. La nomenclature présentée est celle utilisée
par le CELAR pour plusieurs projets.
Les actions complémentaires (action) : correspondent aux actions qui ne sont pas
nécessaires à l’attaque ; mais qui sont d’une certaine utilité pour l’attaquant,
comme par exemple pour se cacher (une liste est donnée dans le tableau 2.4).
Ces variables ont deux états possibles : vrai lorsque l’attaquant a effectivement utilisé cette action sur le système et faux sinon.
Toutes ces variables (attaques et actions) sont des éléments génériques et atomiques. Toute attaque complexe peut être représentée par ces variables. Elles
ne sont pas non plus décomposables à notre niveau d’abstraction. Par exemple,
l’utilisation d’un mot de passe volé en utilisant une sonde réseau (sniffer) peut
se représenter par la séquence suivante :
[ net_listen → usurp → attribute ]
De même, la diffusion d’un virus ou d’un cheval de troie par une série de sondes
réseau peut se définir ainsi :
[
broadcast → scan_use → exploit → parasit ]
On peut considérer que les variables attaque et action sont dépendantes les unes
des autres car, comme dit ci-dessus, elles sont atomiques et génériques et donc
pour représenter une attaque réelle, nous avons besoin de mettre en séquence
plusieurs variables.
Les techniques d’investigation (tech) : correspondent aux types de techniques ou méthodes utilisables par les enquêteurs pour trouver des indices ou des preuves (une
liste est donnée dans le tableau 2.5). Ces variables ont deux états possibles :
vrai lorsque le moteur recommande l’utilisation de cette technique et faux
lorsque cette technique n’apporte rien à l’enquête. Ces variables couvrent a priori
l’ensemble des techniques utilisables et utilisées par des enquêteurs professionnels, incluant l’analyse des supports, les recherches physiques (sections 1.1.1 et
1.2.2).
La figure 2.4 décrit les liens entre ces 5 classes. La figure ne représente pas un réseau
bayésien mais juste les relations entre les différents types de variables. La réunion (dans
les losanges de la figure 2.4) des relations de certaines variables permet d’obtenir de
nouvelles hypothèses sur d’autres variables du moteur. Même s’il n’y a pas de notion de
nœud d’entrée ou de sortie dans les réseaux bayésiens, nous caractérisons quand même
les nœuds comme étant en entrée ou en sortie, pour montrer les flux d’information dans
le réseau. Les nœuds loss (partie observation) ne seront vus que comme des entrées du
système, d’où la présence des trois flèches dirigées vers le bas. Par contre, les nœuds
soft (partie configuration) seront à la fois des nœuds d’entrée et des nœuds de sortie.
En effet, dans un premier temps, il est nécessaire de savoir quelle est la configuration
du système attaqué pour connaître ses vulnérabilités donc la configuration est intégrée
dynamiquement au moteur. Ensuite, l’objectif étant de trouver quel est le logiciel qui
a été utilisé pour l’attaque (via la vulnérabilité utilisée), ces nœuds deviennent alors
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
58
Nom de la variable
listing
net_listen
decrypt
exploit
bypass
broadcast
chaff
embezzlement
listen
parasit
degrade
diversion
intercept
usurp
bounce
troyen
repeat
blocking
overrun
brut_force
control
Description
obtenir des informations par des moyens directs ou indirects (lister par exemple des entrées DNS)
écouter le réseau
utiliser une attaque par dictionnaire ou par force brute
pour déchiffrer un message
utiliser un exploit (Buffer Overflow)
contourner un élément de sécurité
trouver un système en envoyant des paquets en diffusion
utiliser un faux serveur pour voler des données
détourner un flux d’information de façon furtive
(exemple : Man In the Middle)
écouter les événements d’un système
transformer les fonctionnalités d’un logiciel
dégrader le service d’un système (exemple : défigurement
d’une page web)
utiliser une diversion
intercepter des données
usurper l’identité de quelqu’un sans son accord
rebondir sur plusieurs systèmes avant d’attaquer
utiliser un cheval de troie
répéter des paquets réseaux (exemple : scanning sweeping)
bloquer les fonctionnalités d’un service réseau
saturation comme par exemple : DoS, DDoS
attaquer par force brute
intercepter et bloquer les communications d’un système
TAB . 2.3 – Les variables attaques attack
2.2. INTRODUCTION DE LA NOTION DE PLAN D’INVESTIGATION
Nom de la variable
msg
attribute
scan_use
encrypt
hidden_channel
infection
cnx_illic
trap
invert_trap
inhib_detect
del
login_inst
59
Description
envoyer un message pour signer l’attaque
augmentation des privilèges
trouver les services d’un système par des scans réseau
chiffrer ses données
utiliser un canal caché
ajouter des informations cachées dans un fichier
(exemple : stéganographie)
se connecter illicitement à un système
utiliser une porte cachée (le système compromis est un
serveur)
utiliser une porte cachée inversée (le système compromis
est un client)
inhibition de la détection (exemple : IP Spoofing)
supprimer des données
installer un nouveau compte utilisateur
TAB . 2.4 – Les variables action action
Nom de la variable
image
syst_check
net_check
syst_var
retrieve
net_log
int_topo
ext_topo
comm
physic
Description
création de l’image d’un média
vérification des fichiers du système (audit, configuration,
etc.)
vérification des fichiers réseau (pare-feu, etc.)
vérification des variables système (login, processus, etc.)
récupération des fichiers cachés ou supprimés, analyse de
fichiers binaires, etc.
utilisation d’une sonde réseau pour surveiller les actions
de l’attaquant
vérification de la topologie du réseau compromis
vérification des interconnexions du réseau compromis
analyse des communications comme les logs IRC, les
mails, etc.
analyse des accès physiques à un système ou un bâtiment.
TAB . 2.5 – Les variables techniques d’investigation tech
60
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
F IG . 2.4 – Les flux d’information dans le moteur d’inférences
2.3. CONSTRUCTION D’UN PLAN D’INVESTIGATION
61
des nœuds de sortie. Les nœuds attack et action (parties attaque et action) sont aussi
des nœuds d’entrée et des nœuds de sortie, mais pour des raisons différentes. Ils seront
d’abord des nœuds de sortie, car lors de la première phase d’une enquête, l’enquêteur
voudra savoir quel type d’attaque a pu avoir lieu sur le système, connaissant sa configuration. Au fur et à mesure de l’enquête, les observations et les indices permettent de
confirmer la présence de certaines attaques. Cette connaissance peut alors être entrée
dans le réseau. Les nœuds attack et action sont donc aussi des nœuds d’entrée. Enfin les nœuds tech (partie technique d’investigation) sont exclusivement des nœuds de
sortie. Le fait de savoir que les enquêteurs ont utilisé telle technique ne permet pas de
comprendre l’attaque et donc ne permet pas non plus de retrouver l’attaquant.
2.3 Construction d’un plan d’investigation
Nous considérerons dans cette partie qu’un système informatique a été compromis
par une attaque. Cette partie décrit la construction d’un réseau bayésien : la création
des variables, la création de la structure du réseau et l’initialisation des tables de probabilités.
2.3.1 Les variables
Les variables de nos réseaux bayésiens sont les variables décrites ci-dessus (paragraphe 2) : la variable address, les 6 variables loss, les 21 variables attack, les 12 variables action et les 10 variables représentant les techniques d’investigation. A ces 50
variables, il faut ensuite ajouter la configuration du système attaqué grâce aux variables
soft. Cette configuration doit être ajoutée manuellement en fonction des logiciels présents sur le système attaqué. Par défaut, nous utilisons la base des logiciels répertoriés
dans la base de vulnérabilités ICAT car elle est assez complète et mise à jour régulièrement (à ce jour, plusieurs milliers de logiciels sont référencés, sans compter les
différentes versions).
2.3.2 Construction de la structure
Comme il est décrit à la section 1.3.4, il existe deux façons de créer la structure
d’un réseau bayésien : soit on fait appel à des experts du domaine, soit on utilise des
algorithmes exploitant des bases de données. Étant donné que nous avons au minimum
50 variables plus les logiciels, la première solution n’est pas envisageable. Le travail serait beaucoup trop long (plusieurs milliers de logiciels et de versions à gérer ; même si
l’utilisateur ne choisira que quelques-uns de ces logiciels, il faudra quand même dans
un premier temps initialiser tous les nœuds). Nous utilisons donc la deuxième méthode. Comme les réseaux sont potentiellement grands, nous avons mis en œuvre un
algorithme d’apprentissage basé sur un score (section 1.3.4.1) pour améliorer la vitesse
d’analyse, et choisi K2 de Cooper et Herskovits [CH92]. Cet algorithme est largement
utilisé dans la littérature car il permet de construire un réseau très rapidement même si
la structure obtenue est très dépendante de l’ordre d’initialisation des variables. L’ordre
d’initialisation de nos variables est le suivant : les variables dégâts (loss), les variables
62
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
logiciels (soft), les variables attaques et actions (attack et action) et les variables techniques d’investigation (tech). Les premières variables initialisées sont les variables qui
apportent les premières information sur l’intrusion : les variables dégâts (loss) et les
variables logiciels (soft), puis les variables attaques et actions (attack et action) sont
initialisées. Enfin, les variables techniques d’investigation (tech) sont initialisées car ce
sont les dernières variables proposées à l’utilisateur.
L’algorithme construit les relations entre les variables en exploitant les échantillons
de la base de données. Cette construction peut être libre de toutes contraintes sur les
relations du réseau, ou bien il est possible, comme le suggère la figure 1.22, de fixer
certaines contraintes à la construction. Certaines classes de variables ne peuvent être
reliées qu’à une autre classe : les logiciels vers les attaques et les actions, les dégâts
observés vers les attaques et les actions. Pour certains types de variables, les relations
entre variables de même type sont autorisées, par exemple une attaque particulière peut
influer sur une autre. Par contre, pour le type soft, ces relations n’ont aucune signification et n’existent pas. Comme nous le verrons plus loin, chaque échantillon de la base
de données contient une vulnérabilité appliqué à un logiciel particulier. Chaque échantillon peut donc contenir plusieurs attaques et actions, mais ne peut contenir qu’un seul
logiciel. Puisqu’il n’y a qu’un seul logiciel par échantillon, il ne peut y avoir de relation
entre deux logiciels. Le raisonnement est le même si l’on utilise une base de données
sur les enquêtes : pour chaque attaque globale conservée, seul un logiciel est conservé,
puisqu’un attaquant ne peut attaquer qu’un seul logiciel à la fois.
La mise en place de nœuds racine peut être une contrainte intéressante. Un nœud
racine est un nœud qui n’a pas de parent et n’a donc que des enfants. Les nœuds de type
loss peuvent être des nœuds racine, car comme ce sont des observations initiales, toutes
les inférences et les observations suivantes se déduisent de l’observation de l’une ou de
plusieurs de ces variables.
2.3.3 Initialisation des probabilités
Après avoir construit la structure du réseau, il faut calculer les probabilités initiales.
C’est ce qu’on appelle l’apprentissage de paramètres (section 1.3.4.1). Les réseaux que
nous utilisons se basent sur un très grand nombre de données (plus de 7000 vulnérabilités dans la base ICAT). Nous avons donc privilégié encore une fois la rapidité en
utilisant un algorithme de type maximum de vraisemblance, c’est-à-dire que nous nous
basons sur un calcul statistique (Figure 2.5). Pour chaque échantillon de la base de
connaissances, chaque valeur des états de chaque nœud sera additionnée, puis normalisée pour obtenir des valeurs entre 0 et 1.
2.3.4 Bases de données
En l’absence d’une base de résultats d’enquêtes, nous utilisons un autre type de base
de données, la plus proche possible sémantiquement : une base de données contenant
des vulnérabilités, ICAT. Le type de résultats attendu est donc complètement différent :
avec une base d’enquêtes, le sens des nœuds attack et action est : si l’attaque X à
un pourcentage pX , cela signifie que cette attaque X a été vue pX fois sur 100
2.3. CONSTRUCTION D’UN PLAN D’INVESTIGATION
63
value = tableau d’entier
for éch in each [échantillons]
for var in each [variables du réseau]
for état in each [états de la variable var]
value(var)(état) = value(var)(état) + éch(var)(état)
# éch(var)(état) est égale à 1 si la
# variable "var" est à l’état "état"
# dans l’échantillon "éch" et 0 sinon
normalize(value)
F IG . 2.5 – L’algorithme de maximum de vraisemblance
dans les enquêtes précédentes (au niveau des probabilités initiales). En ce qui
concerne les probabilités postérieures, cela pourra se traduire par il y a p X % de
"chances" que cette attaque ait eu lieu connaissant les enquêtes précédentes. Par
contre, si on utilise une base de vulnérabilités, le sens devient : p X représente
le nombre de vulnérabilités sur 100 utilisant cette attaque pour les probabilités initiales. Pour les probabilités postérieures, cela représente le pourcentage
de "chance" de trouver cette attaque connaissant les vulnérabilités associées au
système compromis.
les variables soft ont aussi un sens différent suivant le type de base de données. Avec
une base sur les enquêtes précédentes, le pourcentage pY pour un logiciel Y
représente la probabilité avec laquelle une vulnérabilité de ce logiciel a été utilisée dans le cadre d’une attaque. Avec une base de vulnérabilités, le pourcentage
pY pour un logiciel Y représente le nombre de vulnérabilités présentes pour ce
logiciel.
la variable address représente avec la base des enquêtes, la provenance de l’attaque
(locale au système, interne au réseau ou externe à l’entreprise), dans le cas de la
base de vulnérabilités, cette variable représente les possibilités d’attaque : locale,
les vulnérabilités doivent être utilisées en locale ou externe, les vulnérabilités
doivent être utilisées à distance (ici interne n’a aucune signification réelle mais,
certaines vulnérabilités pouvant être à la fois utilisée localement ou à distance,
dans ce cas, nous avons utilisé la valeur : interne).
Les différentes interprétations sont récapitulées dans le tableau 2.6
De façon stricte, nous ne pouvons pas mélanger ces deux bases de données. La première est axée sur les vulnérabilités, tandis que la deuxième est axée sur les attaques et
les enquêtes. Néanmoins, l’utilisation simultanée des deux bases de données peut être
un atout dans la recherche de l’attaque globale et de l’attaquant. En effet, la réponse
donnée va prendre en compte d’une part le fait que le système analysé comporte obligatoirement des vulnérabilités, et d’autre part le fait que des attaquants ont déjà utilisé
le même mode opératoire. Il y a néanmoins une restriction au niveau de la variable
address, qui ne peut prendre que deux valeurs dans la base ICAT (local et externe, ie.
distant), et trois dans la base des enquêtes (local, interne et externe). Lors de l’analyse
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
64
address
loss
soft
attack
ICAT
Emplacement (local ou distant)
depuis lequel on peut utiliser la
vulnérabilité
Dégâts observables après utilisation de la vulnérabilité
Logiciels pouvant avoir été utilisés pour compromettre le système informatique. Ces variables dépendent du nombre de
vulnérabilités utilisant ces logiciels
Ces variables dépendent du
nombre de vulnérabilités qui
utilisent ces attaques élémentaires. Elles dépendent donc du
nombre d’attaques globales utilisant ces attaques élémentaires
action
Ces variables représentent les
actions élémentaires utilisées
dans les vulnérabilités. Elles dépendent donc du nombre de vulnérabilités utilisant ces actions
élémentaires
tech
Ces variables n’ont aucune signification puisqu’elles ne sont
pas présentes dans la base ICAT
Base d’attaques
l’adresse source de l’attaque
(locale, interne ou externe)
Dégâts observés par les enquêteurs
Logiciels pouvant avoir été utilisés pour compromettre le système informatique. Ces variables dépendent du nombre
d’attaques recensées utilisant
ces logiciels
Ces variables représentent les
attaques élémentaires utilisées
par les attaquants. Ces attaques
appartiennent aux attaques globales recensées dans la base
de données. Ces variables dépendent du nombre d’attaques
globales utilisant ces attaques
élémentaires
Ces variables représentent les
actions élémentaires utilisées
par les attaquants. Ces actions
appartiennent aux attaques globales recensées dans la base
de données. Ces variables dépendent donc du nombre d’attaques globales utilisant ces actions élémentaires
Ces variables représentent les
techniques d’investigation qui
peuvent être utilisées pour
trouver d’éventuelles indices
ou preuves. Ces variables
dépendent
essentiellement
des logiciels et des attaques /
actions qui ont été utilisés par
l’attaquant
TAB . 2.6 – Les différentes interprétations associées à nos types de variables
2.4. INFÉRENCE ET EXPLOITATION DES PLANS D’INVESTIGATION
65
des résultats, il faudra mettre en valeur l’interprétation la plus contraignante, c’est-àdire celle de la base ICAT (2 valeurs possibles). Pour cela, on peut confondre les valeurs
intern et extern pour n’avoir qu’une seule valeur correspondant à une attaque distante
ou l’utilisation d’une vulnérabilité distante.
2.4 Inférence et exploitation des plans d’investigation
2.4.1 Les algorithmes
Quand le réseau bayésien est construit, on peut l’exploiter. Nous avons choisi un
algorithme d’inférence approximative, car la taille et la complexité des réseaux que
nous exploitons est beaucoup trop importante pour des algorithmes d’inférence exacte.
Nous avons testé différents algorithmes d’inférence approximative grâce à un logiciel
en Java : BNJ4 (Bayesian Network tools in Java). Ces algorithmes sont :
– Logic Sampling,
– Forward Sampling,
– Likelihood Weighting,
– Self-Importance Sampling,
– Adaptive Importance Sampling (AIS).
Une description de ces algorithmes a été faite au paragraphe 1.3.4.2. Après quelques
essais, nous avons observé que, comparativement aux autres algorithmes, le Likelihood
Weighting donnait de bons résultats en rapidité et en qualité . Des problèmes techniques
dans l’utilisation de BNJ nous ont conduit à construire notre propre librairie pour réseau bayésien, pyBN, avec laquelle nous avons implémenté l’algorithme Likelihood
Weighting.
D’autre part, à partir de maintenant et jusqu’à la fin du mémoire, nous allons utiliser
le terme de score en lieu et place du terme probabilité. Il y a plusieurs raisons à cela :
– Au niveau compréhension, le fait de voir un résultat égal à 0% ou 100% peut
induire en erreur. Si un utilisateur observe un résultat égal à 100%, il peut arrêter
sa recherche en pensant qu’il a trouvé la solution. Si le résultat est égal à 0%, il
peut être tenté d’oublier cette variable jusqu’à la fin de l’enquête.
– Nous fusionnons plusieurs bases dont les données ont des interprétations sémantiques différentes, ce qui en soi fausse le résultat d’un point de vue purement
probabiliste.
2.4.2 Utilisation des résultats finaux de l’enquête
Quand une enquête est terminée, l’enquêteur a acquis une certaine expérience. Pour
conserver cette expérience, certaines données sont ajoutées à la base de connaissance
de notre modèle. Les données sauvegardées correspondent aux résultats intermédiaires.
Chaque plan d’investigation est sauvegardé, ces plans contenant les informations suivantes :
– l’adresse source (état de la variable addr) ;
4 http://bndev.sourceforge.net
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
66
Réseau 1
Système 1
?
PI 3
Temps 1
PI 4
Temps 2
Système 2
PI 1
Temps 3
PI 2
Première observation
F IG . 2.6 – Un exemple d’arbre d’attaque
– les dégâts observés (état des variables loss) ;
– les attaques et les actions effectuées par l’attaquant (état des variables attack et
action) ;
– les techniques utilisées par les enquêteurs pour retrouver l’attaquant (état des
variables tech) ;
– éventuellement les fichiers et autres éléments qui ont permis de faire avancer
l’enquête (par exemple, la découverte dans le fichier d’audit d’un serveur Web
IIS de la ligne cmd.exe permet de dire que ce logiciel a été utilisé par l’attaquant).
Chaque plan d’investigation conduit à la création d’un nouvel enregistrement dans la
base de données. Ces données peuvent être exploitées pendant l’enquête en cours, pour
pouvoir immédiatement en tirer bénéfice, ou bien après la résolution complète.
2.5 Création et analyse de plusieurs plans d’investigation
Dans le cas d’enquêtes réelles, il n’y a pas forcément qu’un seul système compromis. Des attaquants peuvent utiliser des systèmes préalablement compromis, soit pour
d’autres attaques, soit pour être plus discret, soit pour être plus efficace.
2.5.1 Utilité de la variable adresse
C’est de ce point de vue que la variable address est la plus utile. Elle permet de
présenter à l’enquêteur d’où vient potentiellement l’attaque. Cette variable sert de lien
2.5. CRÉATION ET ANALYSE DE PLUSIEURS PLANS D’INVESTIGATION 67
entre les différents plans d’investigation. La figure 2.6 représente un exemple d’attaque : chaque rectangle en traits pleins représente un plan d’investigation, chaque
rectangle en traits pointillés représente un système compromis ou ayant été utilisé par
l’attaquant. Les flèches en traits pleins représentent le cheminement de l’attaquant et
celles en pointillé le cheminement des enquêteurs. Dans cet exemple, les enquêteurs
commencent leur enquête au niveau du plan d’investigation 1 ; la variable address
va permettre de caractériser la source de l’attaque représentée par la flèche intitulée
Temps 2 ; ici, la source de l’attaque est interne au réseau.
2.5.2 Relation entre les plans d’investigation
Quand des plans d’investigations concernent le même système, d’une part, la configuration logicielle va rester la même et d’autre part c’est a priori la même personne
(ou le même groupe) qui aura effectué les différentes attaques, avec le même modus
operandi. Par exemple, si l’attaquant est entré dans le système de façon bruyante, il
y a de grandes chances qu’il continue de façon bruyante. Par attaque bruyante, on
fait référence à des attaques qui sont facilement décelables, comme les sondes réseau,
ou l’utilisation d’exploits qui provoquent certains dommages "collatéraux" (ajout de
lignes dans les fichiers d’audit, par exemple). Dans le cas où les plans concernent des
systèmes différents, il est probable que ce sont les mêmes attaquants, mais il faut cependant être plus circonspect. Certaines observations faites par les enquêteurs sur un
plan particulier au niveau des attaques et des actions peuvent donc éventuellement être
utilisées sur d’autres plans d’investigation. Pour des recherches sur le même système,
on peut garder toutes les observations qui sont faites sur ce système, et pour un système
différent, ces observations peuvent avoir une influence sur les résultats.
Par exemple, les enquêteurs constatent une attaque de type suppression de données
sur un site FTP. Le premier plan d’investigation décrit le défigurement du site FTP en
lui même, c’est-à-dire une attaque de type degrad (dégradation), qui a permis à l’attaquant de supprimer plusieurs fichiers. Dans ce plan, les observations seront : le serveur
FTP, l’attaque de type degrad, l’action del car l’attaquant a supprimé des fichiers et
les techniques d’investigation check_syst, qui a permis de découvrir l’attaque degrad
et retrieve (récupération des fichiers supprimés), qui a permis de découvrir l’attaque
del. Un deuxième plan doit être construit pour comprendre comment l’attaquant a eu
accès au serveur. Sur ce deuxième plan, certaines observations du premier plan vont
pouvoir être réutilisées. Comme l’attaquant a pu utiliser un autre logiciel, nous n’allons pas garder les observations sur les logiciels (ici, le serveur FTP). Par contre, le fait
qu’il ait utilisé une attaque de type degrad et qu’il ait supprimé des données peut être
une information intéressante pour ce second plan d’investigation. Enfin, comme pour
les logiciels, le fait de savoir quelles techniques l’enquêteur a utilisé pour trouver des
réponses n’est pas pertinente dans ce deuxième plan.
La réutilisation d’observations peut être mise en place de deux manières :
→ soit en mettant les variables correspondantes (degrad et del dans l’exemple cidessus) dans l’état observé,
68
CHAPITRE 2. PRÉSENTATION DE NOTRE APPROCHE
→ soit on ajoutant de façon automatique un échantillon temporaire5 dans la base de
données courante.
Avec la première technique, les résultats seront fortement influencés par les observations. Par contre la deuxième solution a beaucoup moins d’effets de bord que la première, cela revient à ajouter une nouvelle attaque. Dans ce cas, il est alors possible de
prendre en compte le ou les logiciels attaqués ainsi que les techniques d’investigation
utilisées.
D’autre part, la mise en relation des différents plans d’investigation permet de tracer les arbres d’attaque et d’enquête. Ces arbres sont importants à garder, car d’une
part cela permet d’écrire le rapport final, et d’autre part, l’arbre d’attaque permet de
connaître le cheminement de l’attaquant.
2.5.3 Apport de la création de plusieurs plans d’investigation au
niveau de l’analyse de l’attaquant
Des relations entre les plans d’investigation, nous pouvons tirer quelques informations pouvant être importantes sur l’attaquant. Ces informations sont les suivantes :
– les logiciels qu’il préfère attaquer,
– les attaques qu’il préfère mener,
– les actions qu’il sait utiliser,
– sa localisation (attaquant interne ou externe).
Ces observations peuvent éventuellement permettre de caractériser l’attaquant : son
objectif principal (recherche-t’il quelque chose de précis ou cherche-t’il simplement à
s’amuser ?) ou son niveau d’expérience (un attaquant n’utilisant que des exploits standards sera moins expérimenté qu’un attaquant utilisant des combinaisons d’attaques
différentes pour rester discret).
5 cet échantillon contiendrait l’adresse source de l’attaque, le logiciel utilisé pour l’attaque, l’attaque en
elle même et / ou l’action, le ou les dégâts observés et la technique d’investigation utilisée qui a permis
d’observer cette attaque
Chapitre 3
Expérimentations
Après avoir décrit les concepts de notre proposition, nous présentons dans un premier temps la plateforme logicielle qui a été réalisée pour tester le modèle. Ensuite,
nous l’utilisons sur les cas suivants :
– l’affaire Kevin Mitnick contre Tsutomu Shimomura, pour montrer les principes
généraux d’utilisation ;
– les challenges des ouvrages Hacker’s Challenge [Sch01, Sch02], pour évaluer la
pertinence de nos résultats.
Pour finir, ces cas vont nous permettre de tirer quelques conclusions sur notre approche.
3.1 Description de la plateforme de test
Les développements ont été réalisés avec le langage de programmation Python1 .
Ce choix a été fait pour plusieurs raisons :
– c’est un langage à objets, donc le code est facile à comprendre et à maintenir ;
– c’est un langage de type script, donc la programmation est rapide ;
– l’inclusion de modules en langage C est possible ;
– les scripts Python s’exécutent sous une machine virtuelle : l’application résultante est donc portable sur plusieurs systèmes (Linux, Windows, etc.).
D’autre part, Python dispose d’une communauté très importante et de nombreux logiciels sont écrits dans ce langage (Zope2 et la distribution Linux Gentoo3 sont parmi
les projets les plus importants).
Comme nous l’avons déjà expliqué, les premiers tests réalisés avec BNJ ne nous ont
pas donné entière satisfaction. Nous avons donc construit une bibliothèque en Python
pour nous permettre d’effectuer des calculs sur des réseaux bayésiens, avec un code
suffisamment modulaire pour pouvoir par la suite ajouter de nouveaux algorithmes
d’apprentissage ou d’inférence.
1 http://www.python.org
2 http://www.zope.org
3 http://www.gentoo.org
69
CHAPITRE 3. EXPÉRIMENTATIONS
70
L’interface graphique, XMeta, est écrite en python et en GTK (Gimp ToolKit) 4 .
Le choix de GTK a été dicté par le fait que la création de l’interface peut être faite
graphiquement et rapidement grâce à l’environnement Glade5 .
3.1.1 Base de connaissances
Cette base de données est construite à partir de la base de vulnérabilités ICAT6 .
Cette dernière nous fournit directement les logiciels et les dégâts observés. Par contre,
la récupération des attaques et des actions n’est pas triviale, puisqu’il n’y a pas ce
type de champ dans la base de données. Ces informations sont extraites du champ
CVE_Description (cf. annexe A). En analysant ce champ, on peut retrouver sur quelles
attaques et / ou quelles actions s’appuie chaque vulnérabilité. L’analyse est une analyse
par dictionnaire. Nous avons créé un dictionnaire regroupant les principaux termes qui
sont utilisés dans ICAT pour décrire les attaques et les actions. Par exemple, l’attaque
exploit peut être décrite par « #exec function » ou « execut&dangerous&program », le
& correspondant à un ET logique. 383 termes ou groupe de termes permettent de traiter
la totalité des vulnérabilités ICAT.
La plateforme offre la possibilité d’utiliser d’autres bases de données. Comme il
est expliqué dans le paragraphe 2.3.4, le moteur réagit différemment selon les données.
L’idée est d’offrir aux utilisateurs le choix d’utiliser une base de données différente
suivant le contexte de l’enquête. Nous avons construit une base réunissant des résultats
d’enquêtes dans lesquelles il y a eu compromission d’un ou de plusieurs systèmes. Cependant, on pourrait très bien imaginer des bases de données spécialisées dans les délits
financiers, la pédopornographie, etc. En effet, dans certains types de délits les auteurs
utilisent des techniques spécifiques. Dans le cas des délits financiers, il y aura plus de
vol de données et d’usurpation d’identité que de déni de service ou d’exploitation de
vulnérabilité.
3.1.2 Interface Homme-Machine
L’IHM de XMeta est pour l’instant divisée en quatre parties. La moitié gauche
(parties 1 et 2) de l’écran présente le ou les systèmes attaqués, la partie droite (3 et 4)
présente les attaques et les investigations effectuées. La partie haute (1 et 3) correspond
à une attaque sur un système, alors que la partie basse (2 et 4) correspond à l’ensemble
de l’enquête. En résumé, l’interface est constituée de :
1. une zone où l’utilisateur rentre la configuration du système attaqué ;
2. une zone qui liste l’ensemble des systèmes analysés ;
3. une zone où l’on peut analyser le système courant ;
4. une zone qui liste l’ensemble des investigations proposées.
4 http://www.gtk.org
5 http://glade.gnome.org
6 http://icat.nist.gov/exporticat.htm
3.1. DESCRIPTION DE LA PLATEFORME DE TEST
F IG . 3.1 – Structure de l’interface homme-machine XMeta
71
CHAPITRE 3. EXPÉRIMENTATIONS
72
3.1.3 Fonctionnalités de la plateforme
Voici la liste des fonctionnalités qui ont été spécifiées7 , présentées dans l’ordre des
zones de la figure 3.1 :
I Zones 1 : configuration :
– création de plan d’investigation,
– ajout des dégâts observés ;
– recherche de logiciel suivant une chaîne de caractère ;
– ajout / suppression de logiciels au système compromis.
I Zones 2 : l’ensemble des équipements analysés :
– navigation entre les différents plans d’investigation ;
– séparation des plans d’investigation par système et par réseau ;
× liaison des différents plans d’investigation.
I Zones 3 : l’analyse d’une attaque :
– inférence multiple du réseau bayésien ;
– présentation des scores de chaque variable ;
– ajout des observations faites par les enquêteurs.
I Zones 4 : investigations déjà effectuées :
– liste des techniques d’investigation utilisées depuis le début de l’enquête ;
– liste des preuves ou indices trouvés depuis le début de l’enquête ;
× organisation de la liste par date, plans d’investigation, etc.
I Divers :
– enregistrement des plans d’investigation (cf. C.1) ;
– ouverture d’une enquête précédemment enregistrée ;
– énumération des vulnérabilités (ICAT) associées au système en cours d’analyse ;
– ajout / utilisation d’autres bases de données ;
– changement de la qualité de l’inférence (contraintes sur le réseau bayésien) ;
× visualisation de l’arbre de l’attaque.
3.2 Exemple sur un cas concret : l’affaire Kevin Mitnick
3.2.1 Introduction
Nous proposons ici de revisiter avec XMeta une partie de l’une des affaires les plus
connues au monde, présentée en détail dans de nombreux articles, notamment par Tsutomu Shimomura, propriétaire des systèmes compromis [SM96]. L’affaire Mitnick est
intéressante car c’est une attaque complexe mettant en jeu plusieurs systèmes informatiques. Tsutomu Shimomura est chercheur (Senior Fellow) au Supercomputer Center
de San Diego, Californie, et travaille dans différents domaines de recherche dont la
sécurité informatique. En 1994, un inconnu s’infiltre dans les systèmes de Shimomura
et, après 7 semaines de traque intensive, Kevin Mitnick est localisé à Raleigh, Caroline
du nord. Mitnick est arrêté le 14 février 1995, puis inculpé pour intrusion dans des
systèmes d’information et vol de données confidentielles.
7 le
sigle × indique que la fonctionnalité est prévue et en cours d’implémentation
3.2. EXEMPLE SUR UN CAS CONCRET : L’AFFAIRE KEVIN MITNICK
73
F IG . 3.2 – Les ordinateurs impliqués dans l’attaque
3.2.2 L’enquête assistée par la plateforme XMeta
Quand les ordinateurs ont été attaqués, les premiers indices ont été trouvés sur le
système, Ariel (voir Fig. 3.2). Beaucoup de sondes réseaux avaient été effectuées la nuit
précédente. Un très gros fichier (oki.tar.Z) avait été créé, transféré vers une destination
inconnue, puis supprimé du système. Il s’avéra par la suite que ce fichier contenait
notamment un certain nombre de données confidentielles.
Ces premières constatations ont été saisies dans XMeta :
ARIEL :
Logiciels : SunOS, GNU Tar, GNU Ghostscript, fingerd, ruserd et FTP
Dégats : LT_Confidentiality
Le système XMeta répond :
Les attaques les plus probables sont : bypass, contournement d’un
équipement de sécurité (0,65), diversion (masquage d’une attaque sur un
autre système, 0,56) et overrun, attaque par force brute (0,56).
Les actions complémentaires les plus probables sont : infection, infection de fichiers (0,83), inhib_detect, inhibition de la détection (0,81) et
login_inst, installation d’un nouveau compte système (0,71).
Les logiciels suspectés sont : GNU Tar (0,73), Finger Service (0,73) et
FTP (0,27).
Les éventuels fichiers d’audit des applications suspectées devraient donc être vérifiés.
Les 3 attaques proposées laissent à supposer que l’action devait venir de l’extérieur,
cela étant confirmé par le nombre important de sondes réseaux révélées par l’enquête.
L’attaquant a contourné un équipement (ou un service) de sécurité ou bien il a fait
une diversion pour s’emparer du fichier oki.tar.Z. On peut ignorer l’attaque par force
brute car elle ne permet pas de s’emparer d’un fichier. Cependant, la présence de cette
attaque peut s’expliquer facilement : étant donné le peu d’expériences accumulées,
notre base de connaissance est le reflet des vulnérabilités répertoriées dans la base
CHAPITRE 3. EXPÉRIMENTATIONS
74
14:09:32
14:10:21
14:10:50
14:11:07
14:11:38
14:11:49
14:12:05
toad.com#
toad.com#
toad.com#
toad.com#
toad.com#
toad.com#
toad.com#
finger -l @target
finger -l @server
finger -l root@server
finger -l @x-terminal
showmount -e x-terminal
rpcinfo -p x-terminal
finger -l root@x-terminal
F IG . 3.3 – Premiers fichiers d’audit de toad.com ; target correspond à Ariel, server
correspond à Rimmon et x-terminal correspond à Osiris [Shi95]
14:18:25.906002
14:18:26.094731
14:18:26.172394
14:18:26.507560
14:18:26.694691
14:18:26.775037
...
apollo.it.luc.edu.1000 > x-terminal.shell: S 1382726990:1382726990(0) win 4096
x-terminal.shell > apollo.it.luc.edu.1000: S 2021824000:2021824000(0) ack 1382726991 win 4096
apollo.it.luc.edu.1000 > x-terminal.shell: R 1382726991:1382726991(0) win 0
apollo.it.luc.edu.999 > x-terminal.shell: S 1382726991:1382726991(0) win 4096
x-terminal.shell > apollo.it.luc.edu.999: S 2021952000:2021952000(0) ack 1382726992 win 4096
apollo.it.luc.edu.999 > x-terminal.shell: R 1382726992:1382726992(0) win 0
F IG . 3.4 – Les fichiers d’audit provenant d’Osiris [Shi95]
ICAT. Les scores estimés sont fonction de la fréquence d’apparition des logiciels et des
attaques dans cette base. Ce dysfonctionnement devrait disparaître au fur et à mesure
de l’enrichissement de la base d’expériences.
Toutes les sondes réseaux provenaient du domaine Internet toad.com (la figure 3.3
extraite de [Shi95] présente un extrait de l’historique des commandes utilisées par
l’attaquant sur le système de toad.com). L’enquêteur a aussi observé que l’ordinateur
nommé Osiris avait un comportement étrange, avec des fenêtres vides affichées en haut
de l’écran. Nous avons donc les faits suivants :
– Ariel et Osiris ont des relations de confiance fortes ;
– Osiris est physiquement au domicile de Tsutomu Shimomura, qui n’a pas de
relation avec toad.com ;
– beaucoup de trafic réseau a été observé vers Osiris (la figure 3.4 présente un
extrait des paquets circulant sur le réseau).
Tout ceci implique que l’enquête doit continuer sur Osiris et pas (dans un premier
temps) sur le réseau de toad.com. Osiris est peut-être la source de l’attaque ou au moins
un vecteur. Un nouveau plan d’investigation est donc créé sur Osiris et prend comme
observation initiale le fait que cet ordinateur semblait être déconnecté du réseau et en
particulier d’Ariel.
OSIRIS :
Logiciels : SunOS, GNU Tar, GNU Ghostscript, fingerd, ruserd et FTP
Dégats : : LT_Availability
Le système XMeta répond :
Les attaques les plus probables sont : repeat (scanning sweeping par
exemple, 1,0), overrun (DOS, DDOS, smurf, fraggle, etc., 0,89) et bypass
(contournement d’un équipement de sécurité, 0,68)
Les actions complémentaires sont : infection (0,73), trap (installation
d’une backdoor, 0,62) et del (suppression de données, 0,45)
Les logiciels potentiellement cibles sont : FTP (0,73), GNU Tar (0,38) et
GNU Ghostscript (0,38).
3.2. EXEMPLE SUR UN CAS CONCRET : L’AFFAIRE KEVIN MITNICK
14:18:22.516699
14:18:22.566069
14:18:22.744477
14:18:22.830111
14:18:22.886128
...
130.92.6.97.600
130.92.6.97.601
130.92.6.97.602
130.92.6.97.603
130.92.6.97.604
>
>
>
>
>
server.login:
server.login:
server.login:
server.login:
server.login:
S
S
S
S
S
75
1382726960:1382726960(0)
1382726961:1382726961(0)
1382726962:1382726962(0)
1382726963:1382726963(0)
1382726964:1382726964(0)
win
win
win
win
win
F IG . 3.5 – Les fichiers d’audit provenant de Rimmon [Shi95]
x-terminal% modstat
Id Type Loadaddr
1 Pdrv ff050000
Size
1000
x-terminal% ls -l /dev/tap
crwxrwxrwx 1 root
37,
B-major
C-major
59.
Sysnum
Mod Name
tap/tap-2.01 alpha
59 Dec 25 14:40 /dev/tap
F IG . 3.6 – Quelques variables système de Rimmon [Shi95]
Cela implique qu’Osiris n’est peut-être qu’un vecteur pour l’attaquant, car ce dernier
n’a pas pu pénétrer dans le système en utilisant des sondes réseaux ou par un déni de
service. Ces résultats nous incitent à explorer une autre piste.
Osiris est un Terminal X-Window connecté à Rimmon, qui a donc pu être aussi attaqué. Ceci est confirmé par les fichiers d’audit récupérés par Shimomura (la figure 3.5
présente un extrait des paquets réseau à destination de Rimmon). Comme nous n’avons
pas beaucoup d’informations sur Rimmon, nous supposons qu’il est configuré comme
Osiris et Ariel. Un utilisateur non autorisé a réussi à installer un module-noyau nommé
Tap 2.01 sur Rimmon, ce qui implique d’avoir des droits administrateur sur la machine
(la figure 3.6 présente la sortie des commandes modstat et ls et montre l’installation
d’un module dans le noyau du système).
RIMMON :
Logiciels : SunOS, GNU Tar, GNU Ghostscript, fingerd, ruserd et FTP
Dégâts : LT_Obtain_all_priv et LT_Availability
XMeta répond :
Les attaques les plus probables sont : trojan (installation d’un cheval de
Troie, 0,93), bypass (0,78) et brute_force, attaque par force brute (0,58).
Les actions complémentaires les plus probables sont : login_inst (installation d’un compte, 0,58), infection, infection de fichier (0,51) et trap
(0,46)
Les logiciels potentiellement cibles : FTP (0,59) et GNU Tar (0,41).
Grâce à ces résultats, si nous ne trouvons pas de cheval de Troie sur Rimmon, cela signifie que ce dernier a aussi été utilisé comme vecteur d’attaque comme Osiris. Tsutomu
n’a pas trouvé de cheval de Troie, mais une attaque par Flooding (appelée Overrun dans
XMeta). Nous pouvons maintenant affirmer que Rimmon était bien un moyen d’accéder à Osiris et Ariel. L’attaque Overrun n’était classée qu’en 10ème position8 sur 21.
Ce résultat peut s’expliquer par le fait que la base d’apprentissage que nous utilisons
est une base de vulnérabilités et il y a plus de vulnérabilités qui utilisent des attaques de
8 de
1 à 10 : Trojan, bypass, brute_force, broadcast, chaff, repeat, intercept, net_listen, bounce et overrun
4096
4096
4096
4096
4096
76
CHAPITRE 3. EXPÉRIMENTATIONS
type trojan, bypass ou brute_force dans ce type de configuration que de vulnérabilités
qui utilisent des attaques de type overrun.
3.2.3 Synthèse des résultats obtenus avec XMeta
Nous avons trouvé les éléments suivants :
– Ariel :
– le fichier oki.tar.Z a pu être téléchargé grâce à une attaque de type contournement (bypass) sur le système d’exploitation.
– Osiris :
– l’attaquant a envoyé des paquets sur le réseau (repeat) pour obtenir des informations sur ce système ;
– l’attaquant a utilisé une attaque de type contournement (bypass) pour obtenir
des droits administrateur.
– Rimmon :
– l’attaquant a utilisé une attaque de type déni de service (overrun) pour bloquer
le système.
Ces résultats peuvent être sauvegardés pour des enquêtes futures, et complétés en précisant les techniques employées pour analyser chacun des systèmes. Ces résultats comprennent la configuration logicielle des systèmes attaqués, les attaques qu’ils ont subies, les techniques d’investigation utilisées ainsi que les éléments (fichiers, événements, etc.) qui ont permis aux enquêteurs de découvrir ces attaques. La sauvegarde
permet aussi par la suite de "rejouer" l’attaque ou l’enquête, par exemple à des fins
d’explication devant un tribunal.
Dans le cadre de l’enquête présentée ici, les prochaines étapes seraient, d’une part,
de comprendre comment l’attaquant a pu obtenir les droits administrateur sur les ordinateurs de toad.com, d’autre part, d’analyser la chronologie des événements entre les
trois systèmes et enfin d’essayer d’identifier la destination du fichier oki.tar.Z.
3.2.4 Conclusions de l’enquête de Tsutomu Shimomura
Pour information, nous allons présenter dans ce paragraphe les conclusions de Tsutomu Shimomura sur les actions que l’attaquant a réellement effectuées. L’attaque décrite par Tsutomu Shimomura s’est jouée en trois temps.
Dans une première phase, l’attaquant a essayé de prédire les numéros de séquence
initiaux des connexions TCP acceptés par Osiris en lui envoyant un nombre important de paquets TCP SYN (cette attaque est appelée Repeat dans XMeta), puis en les
annulant avec des paquets TCP RST (Fig. 3.7).
Il a pu ensuite envoyer à Osiris par rsh la commande "echo ++ >>/.rhosts"
en se faisant passer pour Rimmon (Fig. 3.8). Il a ainsi obtenu un accès total à cette
machine. Cette attaque est nommé bypass, contournement d’un équipement de sécurité
dans XMeta. Nous avons vu qu’elle était classée en troisième position avec une score
de 0,68. L’attaque par Flooding (Overrun dans XMeta) a été utilisée pour "bâillonner"
Rimmon et l’empêcher de répondre à Osiris (Fig. 3.8).
Dans la troisième phase de l’attaque, l’attaquant a installé le programme Tap sur
Osiris, ce qui lui a permis de prendre le contrôle de la relation de confiance entre Osiris
3.3. HACKER’S CHALLENGE 1 & 2
Ariel
77
Rimmon
SYN
SYN_ACK
RST
several times
Osiris
F IG . 3.7 – L’attaque de Kevin Mitnick : première étape
et Ariel (Fig. 3.9). Il a eu alors accès à Ariel et a pu créer, transférer puis supprimer le
fichier oki.tar.Z.
3.3 Hacker’s Challenge 1 & 2
Mike Schiffman décrit dans [Sch01] vingt attaques sur des réseaux d’entreprise.
Ces attaques sont, entre autres, des attaques sur des serveurs HTTP (35%), des attaques
via un réseau sans fil (20%) et des attaques sur des serveurs de messagerie (10%). Dans
une première partie, les attaques sont décrites de manière à ce que le lecteur puisse
répondre à certaines questions sur l’incident. Puis dans une deuxième partie, il propose
une solution avec une description plus complète de l’attaque, des techniques utilisées
pour récupérer les preuves, ainsi que des techniques pour protéger le ou les systèmes
qui ont été compromis.
3.3.1 Exemple du challenge numéro 8
Voici un exemple d’attaque, le challenge numéro 8 du premier tome : The Tip
of The Iceberg, analysé par notre outil XMeta et la base de données ICAT seule.
Le premier événement qui a permis de découvrir l’attaque est le défigurement du site
Web de l’entreprise Financialco.net (Microsoft IIS), avec le message suivant :
f-- USA Government
f-- PoizonB0x
contact [email protected]
CHAPITRE 3. EXPÉRIMENTATIONS
78
Ariel
Rimmon
FLOODING
1: SYN
{
2: SYN + ACK
3: ACK + DATA
4: "echo ++ ./rhosts"
Osiris
F IG . 3.8 – L’attaque de Kevin Mitnick : deuxième étape
Ariel
Rimmon
hack connection
using "Tap" software
Installation of "Tap" software
Osiris
F IG . 3.9 – L’attaque de Kevin Mitnick : troisième étape
3.3. HACKER’S CHALLENGE 1 & 2
79
En entrant la configuration du système sur la plateforme9 et en indiquant que l’on a
observé :
– un dégât de type atteinte à l’intégrité ;
– une attaque de type dégradation (degrad),
on obtient les résultats de la figure 3.1010 . On observe dans la colonne de droite que
les attaques les plus probables sont degrad qui a déjà été observée, bypass, diversion
et exploit. Cela signifie que l’enquêteur doit essayer de chercher ces trois attaques en
priorité. De plus, on peut observer que, d’après XMeta, cette attaque a été effectuée à
distance (extern et intern : 0.93) et que le meilleur logiciel pour cette attaque est le serveur Web Microsoft IIS. En réalité, l’attaquant a utilisé une attaque particulière appelée
attaque unicode sur le serveur Web Microsoft IIS, permettant depuis l’extérieur
du système d’obtenir tous les droits sur le système cible. Cette attaque appartient à
notre catégorie exploit que l’on trouve en troisième position avec une score de 0,94.
Mike Schiffman explique que cette attaque a pu être prouvée grâce aux fichier d’audit
du serveur Microsoft IIS, dans lesquels on trouve des lignes contenant la chaîne de
caractères suivante :
GET, /scripts/../../winnt/system32/cmd.exe
L’attaque globale qui a permis le défigurement Web est donc de la forme :
[ exploit → degrad ]
Le lendemain, l’administrateur système reçoit un email d’un administrateur de site
Web lui disant que son réseau venait de se faire attaquer par l’une des machines du
réseau Financialco.net : solarisbox.financialco.net. Pour intégrer cette information,
nous devons créer un nouveau plan d’investigation qui va décrire ce système (cf. figure 3.11). La première constatation faite par l’administrateur du site était que ce
système était situé en dehors du pare-feu de l’entreprise, directement connecté à internet. L’attaquant a eu donc accès au système entier sans avoir à se préoccuper du
pare-feu. Pour pouvoir lancer ses attaques, l’attaquant devait avoir les droits administrateurs sur la machine. L’observation préliminaire va donc être l’obtention des
droits administrateur. Sur la figure 3.11, on observe que les attaques les plus probables sont dans l’ordre exploit, diversion et bypass. La véritable attaque était une
attaque nommée sadmin exploit qui appartient à notre catégorie exploit. Cette attaque
a permis à l’attaquant d’obtenir les droits administrateurs sur ce système. Dans le cas
où les enquêteurs auraient pu avoir accès aux systèmes compromis des autres sites
web, on aurait pu créer d’autres plans d’investigation correspondant à ces systèmes. Le
schéma de l’attaque est décrit sur la figure 3.12. L’attaquant a tout d’abord compromis
solarisbox.financialco.net, puis par ce système il a défiguré le site web
de financialco.net. Ensuite, l’attaquant a recherché de nouvelles cibles et les
a attaqué (www.just_another_victim.net). Le cheminement de l’attaquant
9 c’est
à dire en créant un premier plan d’investigation
des raisons de commodité, les 20 challenges du premier livre ont été enregistrés dans une même
session de la plateforme XMeta. Les 20 challenges correspondent à 20 réseaux différents qui ont pour nom
le numéro et le nom du challenge qu’ils décrivent
10 pour
80
CHAPITRE 3. EXPÉRIMENTATIONS
F IG . 3.10 – Le premier système compromis de Financialco.net. Les enquêteurs ont
observé une atteinte à l’intégrité du système et une attaque de type dégradation.
est représenté sur la figure 3.12 par les numéros situés en haut et à droite des boites.
Les numéros situés en bas et à gauche représentent le cheminement des enquêteurs,
qui ont d’abord observé le défigurement de www.financialco.net, puis, par des
messages d’administrateurs système, ont découvert le défigurement d’autres sites Web,
puis l’attaque sur solarisbox.
3.3.2 Exemple du challenge numéro 6
Après la description d’un challenge sur plusieurs systèmes, voici un challenge où
l’attaquant n’a compromis qu’un seul système, mais où la possibilité d’ajouter de nouvelles observations après chaque inférence s’avère indispensable pour trouver la solution. Le challenge s’intitule : The Genome Injection. Ce challenge décrit une
attaque sur un serveur Web qui interroge un serveur SQL. Un attaquant a réussi à télécharger des données confidentielles depuis le serveur SQL de l’entreprise via le serveur
Web. Ces données sont des résultats de plusieurs années de recherche dans le domaine
du génome humain. Ces données ont été ensuite supprimées par l’attaquant pour qu’il
en soit le seul détenteur. Nous allons analyser cette attaque avec la base ICAT comme
seule source de données. Après avoir rentré les logiciels installés sur le système cible
(le serveur SQL), nous indiquons les dégâts observés : perte de confidentialité et perte
3.3. HACKER’S CHALLENGE 1 & 2
81
F IG . 3.11 – Le deuxième système compromis de Financialco.net, les enquêteurs découvrent que l’attaquant a eu accès à un compte administrateur
F IG . 3.12 – Cheminement de l’attaquant en traits pleins et des enquêteurs en traits
pointillés
CHAPITRE 3. EXPÉRIMENTATIONS
82
Fichier HTML :
<form . . . method= " p o s t " . . . >
< i n p u t t y p e = " t e x t " name= " uname " >
< i n p u t t y p e = " p a s s w o r d " name= " pword " >
</ form>
Fichier SQL :
S e l e c t ∗ from u s e r i n f o where u s e r n a m e = ’ uname ’ and
p a s s w o r d = ’ pword ’
F IG . 3.13 – Challenge 6 : un extrait du code source du site web et SQL
d’intégrité. Après analyse de la base de données, la plateforme crée un réseau sur 294
vulnérabilités, les résultats se trouvant sur la figure 3.15. Les attaques les plus probables ici sont diversion, exploit et listing. Dans un deuxième temps, nous intégrons
le fait que l’attaquant a envoyé un message à l’administrateur pour signer son forfait
et pour demander une rançon contre la récupération des données. Nous mettons alors
la variable d’action msg dans l’état observé. Nous obtenons alors la figure 3.16. Nous
pouvons effectuer quatre observations à cet instant :
– Premièrement, on voit nettement que l’ajout de la dernière observation permet
au réseau de mieux préciser le type d’attaque. Sur la figure 3.15, les scores sont
compris entre 0.99 et 0.38, alors que sur la figure 3.16 ils sont compris entre 1.0
et 0.1.
– Deuxièmement, certaines attaques ont changé de position. C’est notamment le
cas pour l’attaque de type bypass qui passe de la dixième position (0.61) à la
deuxième position (0.99).
– Troisièmement, on remarque que les scores associés aux logiciels (à gauche des
figures) changent : les scores du module SSL11 et celui du serveur Windows NT
chutent (-0,31, -0,37 et -0,29) alors que le score du serveur SQL ne diminue
pas autant (-0,16). Comparativement, le serveur SQL devient le vecteur le plus
probable de l’attaque.
– Enfin, les scores extern + intern et local sont presque identiques (0,47 et 0.53).
On ne peut donc rien en conclure sur le fait que l’attaquant ait utilisée une vulnérabilité en local ou à distance.
Après quelques recherches, l’administrateur du site a trouvé la véritable attaque : l’attaquant a utilisé une attaque de type SQL injection, consistant en l’injection de code
SQL dans des entrées HTML où ce code n’est pas attendu. La figure 3.13 montre un
extrait du code source du site. Si un attaquant insère comme nom d’utilisateur MOI et
dans le champ password : ’ or 0=0 -’ il obtient la requête SQL de la figure 3.14.
De cette façon, en détournant le mécanisme de sécurité du serveur SQL, il peut obtenir
toutes les informations qu’il souhaite. Cette attaque est pour notre plateforme de type
bypass (contournement d’un élément de sécurité) et agit sur le serveur SQL.
11 mod_ssl,
mod_ssl et Mod_ssl, Mod_ssl
3.3. HACKER’S CHALLENGE 1 & 2
83
S e l e c t ∗ from u s e r i n f o where u s e r n a m e = ’MOI ’ and
p a s s w o r d = ’ ’ o r 0 = 0 −− ’
F IG . 3.14 – Challenge 6 : requête SQL résultante
F IG . 3.15 – Challenge 6 : première analyse avec les observations : perte de confidentialité et perte d’intégrité
84
CHAPITRE 3. EXPÉRIMENTATIONS
F IG . 3.16 – Challenge 6 : deuxième analyse avec l’ajout de l’action message : l’attaquant a envoyé un message à l’administrateur (l’action message n’est pas visible sur
cette figure, nous n’avons laissé que les attaques proposées)
3.3. HACKER’S CHALLENGE 1 & 2
85
F IG . 3.17 – Challenge 6 : troisième analyse après observation de l’attaque bypass
La figure 3.17 montre la fin de l’analyse, l’attaque bypass a été observée, aucun
changement n’est visible avec la précédente capture, cela montre que l’analyse de ce
système avec la plateforme XMeta arrive à terme si l’enquêteur ne propose pas de
nouveaux faits ou observations.
Nous voyons que l’analyse en plusieurs passes est un atout très intéressant. Chacune des passes offre des résultats nouveaux qui permettent de faire avancer significativement l’enquête.
3.3.3 Protocole d’expérimentation
Pour tester XMeta, nous avons mis en place un protocole d’expérimentation exploitant les données des livres Hacker’s Challenge [Sch01, Sch02] :
1. Analyse des 39 affaires des livres Hacker’s Challenge avec la base ICAT ;
2. Analyse des 19 affaires du deuxième tome avec la seule base de données résultante de l’analyse des affaires précédentes (base des enquêtes) ;
3. Analyse des 39 affaires des livres Hacker’s Challenge avec une troisième
base de données qui est la concaténation de la base ICAT et de la base de données
des enquêtes.
Pour chaque plan d’investigation, nous mesurons :
– le score obtenu par chaque variable attack et action ;
86
CHAPITRE 3. EXPÉRIMENTATIONS
– le rang obtenu par chaque variable attack et action ;
– le score et le rang des attaques ou actions qui ont été réellement utilisées par
l’attaquant ;
– le score et le rang des techniques d’investigation utilisées pour trouver les attaques (les variables tech n’ont été mesurées qu’avec les cas du tome 2 et seulement avec la base de données des attaques, l’analyse des techniques d’investigation n’étant pas possible avec la base ICAT (cf. 3.1.1)) ;
– le temps de calcul pour chaque plan d’investigation (création du réseau et inférence).
Nous n’avons pas retenu de résultats sur les autres variables pour différentes raisons :
– les variables loss, car ces variables ne sont que des entrées au système ;
– les variables soft, car les challenges que nous avons étudiés ne contenaient pas
de descriptions exhaustives de la configuration des systèmes compromis.
Nous avons regroupé les variables attack et action, car les résultats sur les variables
action sont minoritaires par rapport à ceux sur les variables attack. En effet, la plupart
des plans d’investigation analysés ont mis en évidence une, voire plusieurs variables
attack. Par contre, les variables action ont été en général peu utilisées, chaque plan
d’investigation contenant au plus une variable.
Ces tests ont été réalisés sur la configuration suivante :
– un Pentium IV cadencé à 2,40 GHz ;
– une distribution Linux Ubuntu 5 ;
– Python 2.4.1 ;
– le module python-psyco (python specializing compiler) 1.3.1 ;
– la base ICAT du 13 juin 2005 contenant 7630 vulnérabilités.
Pour une question d’équité entre les expériences, nous avons choisi de n’effectuer
qu’une seule passe sur chaque plan d’investigation. De cette manière, les plans d’investigation présentés ci-dessous ont subit un traitement identique tout au long des expériences.
3.3.4 Présentation des résultats
Sur les vingt affaires du premier tome, nous avons fait ressortir 44 attaques distinctes pouvant être représentées par une à trois attaques / actions élémentaires (certains plans d’investigation n’ont pas été pris en compte dans ce décompte car ils ne
contenaient que des actions de type scan, c’est-à-dire des sondages réseaux). En ce qui
concerne le tome 2, les 19 affaires ont pu être analysées par 28 attaques distinctes. En
moyenne, pour chaque plan d’investigation, une attaque élémentaire a suffit pour décrire l’attaque de ce plan. Le tableau 3.1 représente les attaques élémentaires les plus
utilisées, les attaque de type exploitation de failles (exploit) sont les attaques les plus
nombreuses du tome 1 alors que dans le tome 2, les attaques de type usurpation (usurp)
sont prédominantes.
3.3.4.1 Contraintes sur la structure du réseau bayésien
Comme nous l’avons vu au paragraphe 1.3.4.1, il est possible d’appliquer certaines
contraintes pour la construction de la structure du réseau bayésien. Un mécanisme de
3.3. HACKER’S CHALLENGE 1 & 2
Variables
Nombre
d’utilisations
les attaquants
exploit
12
scan
6
inhib_detect
4
decrypt
3
bypass
3
usurp
2
del
2
trap
2
net_listen
2
overrun
2
bounce
1
broadcast
1
parasit
1
diversion
1
intercept
1
cnx_illic
1
blocking
1
listen
1
login_inst
1
Challenge du tome 1
87
par
Variables
usurp
exploit
embezzlement
bypass
bounce
intercept
trap
degrad
blocking
hidden_channel
diversion
scan_use
login_inst
cnx_illic
net_listen
overrun
listen
control
Nombre
d’utilisations
les attaquants
7
5
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
par
Challenge du tome 2
TAB . 3.1 – Les attaques analysées dand les tomes 1 et 2 de Hacker’s Challenge
moyenne des scores
écart-type des scores
à 0 variables
0.310
0, 970 · 10−2
Réseau contraint
à 3 variables
à 7 variables
0.519
0.544
1, 124 · 10−2
1, 161 · 10−2
TAB . 3.2 – Quelques statistiques sur les expériences menées sur les contraintes du
réseau bayésien
CHAPITRE 3. EXPÉRIMENTATIONS
88
contrainte a été implémenté pour permettre d’effectuer des calculs plus rapidement
suivant le contexte de l’enquête. Ce mécanisme permet de fixer certaines variables
comme racines du réseau bayésien (les variables racines sont des variables qui n’ont
aucun parent, mais qui peuvent avoir des enfants). Ces variables sont dans l’ordre12 :
1. addr, adresse source de l’attaque ;
2. Obtain all priv, obtention des privilèges administrateur ;
3. Obtain some priv, obtention des privilèges utilisateur ;
4. Confidentiality, atteinte à la confidentialité ;
5. Integrity, atteinte à l’intégrité ;
6. Availability, atteinte à la disponibilité ;
7. Obtain other priv, obtention des droits système.
Elles correspondent aux types address et loss. Les variables de type loss ont été choisies
car elles correspondent à ce que l’utilisateur va observer en premier. Toutes les observations suivantes, notamment sur les attaques et les actions, découlent de ces premières
observations sur les dégâts. La variable address a aussi été choisie car, comme pour les
variables précédentes, les attaques et les actions effectuées par l’attaquant dépendent
de l’endroit d’où il attaque. L’utilisateur peut donc trouver un compromis entre vitesse
de calcul et précision dans le calcul. Plus le réseau donnera des résultats précis, plus
l’enquêteur pourra facilement en déduire certaines conclusions. Cette précision peut se
définir comme la possibilité pour l’enquêteur de discriminer les différentes possibilités
d’attaque et / ou d’action de manière claire et sans équivoque. Cette définition peut
être étendue aux logiciels installés et aux techniques d’investigation. D’un point de vue
statistique, cette précision peut être caractérisée par deux grandeurs :
– D’une part par l’étendue des scores du réseau. Ici, pour chaque expérience,
l’étendue est comprise entre 0,0 et 1,0 ; qui est l’étendue maximale.
– D’autre part par l’écart-type des scores. Plus l’écart type est important, plus les
scores ont une répartition large sur l’étendue des valeurs observées et sont statistiquement éloignés de la moyenne.
Nous constatons sur le tableau 3.2 une diminution de l’écart-type avec la diminution
des contraintes sur le réseau. Plus les contraintes sont importantes sur le réseau, plus
les scores seront répartis vers les extrémités de la répartition. Si l’ensemble des scores
est réparti sur l’ensemble [0.0, 1.0] de manière équitable, l’écart-type est : 0.41 · 10 −2
pour les variables d’attaques. Ce résultat correspond à un écart-type où chaque score
des variables attaques est séparé de son plus proche voisin de
d=
1
≈ 0.52 · 10−2
21
La moyenne de ces scores fictifs est donc :
moy =
12 cet
P21
d∗i
21
i=1
ordre est fonction du taux de présence de la variable dans les enquêtes que nous avons analysées
3.3. HACKER’S CHALLENGE 1 & 2
89
F IG . 3.18 – Scores de la plateforme avec contraintes
et l’écart-type :
P21
∗ i − moy)2
≈ 0.41 · 10−2
212
Si l’ensemble des scores est réparti équitablement sur les bornes de l’ensemble [0.0, 1.0]13 ,
l’écart-type est : 1.18 · 10−2 pour les variables d’attaques. Ce résultat correspond à
un écart-type où les scores sont totalement séparés de part et d’autre de la moyenne.
Le meilleur écart-type correspond donc à une grandeur comprise entre 0.41 · 10 −2 et
1.18 · 10−2 . Le résultat est similaire pour les variables action. Nous pouvons constater
dans le tableau 3.2 qu’un réseau avec aucune contrainte a un écart-type qui correspond
à ces résultats. Par contre, lorsqu’il y a 7 variables contraintes, le réseau ne propose
pas de solutions qui puissent être utilisé par les enquêteurs. Dans ce cas de figure, un
réseau typique propose que des scores 1.0 ou que des scores à 0.0. Dans le cas où il n’y
a que trois variables contraintes, l’écart-type se situe juste à la limite entre 0.41 · 10 −2
et 1.18 · 10−2 . Ceci signifie que pour certains cas, cette contrainte a pu fournir à l’enquêteur des résultats aussi précis que lorsque le réseau ne subissait aucune contrainte.
Les figures 3.18 et 3.19 montrent la diminution de cette précision avec l’augmentation des contraintes sur le réseau bayésien. Ces figures représentent l’amplitude des
scores sur l’ensemble des réponses du moteur. La figure 3.18 montre la répartition des
scores des variables attack et action à 0.0 et 1.0. La figure 3.19 provient des mêmes
résultats mais nous avons ajouté une courbe qui lisse l’histogramme de la figure 3.18.
Les histogrammes ont l’équation suivante :
et =
∀s, F (s) =
13 c’est-à-dire
i=1 (d
N h
X
i
si (state = ”true”) = s | 0
10 variables ayant un score de 0.0 et 11 un score de 1.0
i
(3.1)
CHAPITRE 3. EXPÉRIMENTATIONS
90
F IG . 3.19 – Scores de la plateforme avec contraintes
avec
– N le nombre de variables recensées dont on cherche à évaluer le score ;
– s le score de la variable analysée arrondie au centième le plus proche14 ;
– si (state = ”true”) le score de la variable i pour l’état true.
h
i
La ligne
si (state = ”true”) = s | 0
est égale à 1 si la valeur de si (state =
”true”) est égale à s, et à 0 sinon. Nous retrouvons le résultat précédent, dans lequel
plus le réseau est contraint, plus les scores se rapprochent des bornes de l’intervalle,
plus l’écart-type est important. Ceci implique que plus le réseau est contraint, moins
la distribution des scores est homogène. Tous les résultats sont radicalisés, c’est-à-dire
qu’ils se rapprochent des bornes (scores 0,0 ou 1,0). Au niveau rapidité, plus le réseau
est contraint, plus le calcul du réseau bayésien (apprentissage et inférence) est rapide
(cf. figure 3.20). On peut remarquer sur cette figure que le temps de calcul peut être
excessivement long pour certaines attaques (typiquement pour des réseaux bayésiens
où le nombre des cas trouvés dans la base de données dépasse les 200). Ces temps excessivement long sont notamment dus au fait que la librairie est un prototype en Python
et que ce langage n’est pas très rapide (c’est un langage interprété à base de machine
virtuelle comme le langage Java). Une réécriture en C améliorerait grandement les performances. Mise à part la valeur absolue des résultats, ce graphique est néanmoins
intéressant car il montre que pour toutes les contraintes nous obtenons le même facteur
de forme entre chaque courbe.
14 nous
calculons en fait des intervalles intercentiles
3.3. HACKER’S CHALLENGE 1 & 2
91
F IG . 3.20 – Temps de calcul (construction et inférence du réseau bayésien) pour chaque
expérience
3.3.4.2 Changement de bases de données
Nous décrivons dans cette partie les avantages qu’apportent l’utilisation de bases
de données différentes seules ou concaténées.
Les différents graphiques ont été calculés en répertoriant toutes les attaques observées et en notant leur rang. Quand certaines attaques avaient des scores égaux, nous
avons pris le cas le plus pessimiste, par exemple :
..
. ···
4
5
6
7
..
.
usurp 0,89
exploit 0,75 (observé)
bypass 0,75
blocking 0,60
···
Dans cet exemple, l’attaque exploit a été utilisée mais les scores des variables exploit
et bypass sont égaux Dans ce cas la valeur de rang retenue sera donc 6.
Les rangs calculés peuvent être classés en trois catégories. Une première catégorie,
entre les rangs 0 et 5, pour laquelle le résultat calculé est très pertinent. Une deuxième
catégorie, entre 6 et 15, pour laquelle le résultat calculé est moyennement pertinent, une
dernière catégorie, pour laquelle le résultat calculé n’est pas pertinent. Cette dernière
catégorie peut être aussi interprétée comme une impossibilité du moteur à trouver un
cas dans la base de données qui soit similaire à l’enquête en cours. Ces différentes
CHAPITRE 3. EXPÉRIMENTATIONS
92
rangs ≤ 5
5 < rangs < 16
rangs ≥ 16
rang moyen des attaques réelles
écart-type du rang
des attaques réelles
Challenges du tome 1
ICAT
ICAT +
Enquêtes
54%
61%
13%
21%
33%
18%
9, 81
6, 97
23%
23%
54%
14, 11
1, 20
1, 99
0, 86
ICAT
Challenges du tome 2
Enquêtes
ICAT +
Enquêtes
37%
40%
26%
40%
37%
20%
10, 51
8, 63
1, 42
0, 94
TAB . 3.3 – Quelques statistiques sur les expériences menées sur les différentes bases
de données
catégories sont observables sur les figures 3.21, 3.22, 3.23 et dans le tableau 3.3.
Sur tous ces graphiques, nous pouvons observer un maximum pour la première catégorie (très pertinent), une partie plate pour la deuxième catégorie et à nouveau un
maximum (souvent exponentiel) pour la troisième catégorie. Ces observations simples
nous permettent de dire que la plateforme a de bonnes réactions. Une proportion importante des attaques ou des actions réellement utilisées par les attaquants se placent
dans la catégorie très pertinent. Néanmoins, l’existence du maximum de la troisième
partie montre que toutes les attaques ne sont pas découvertes. Les variables dans cette
zone correspondent la plupart du temps à des scores de 0,0 et donc au dernier rang.
Ce maximum signifie que les bases de données que nous utilisons ne sont pas suffisament complètes pour qu’il soit possible de calculer un score. Ce manque de données
est significatif sur la figure 3.21. Cette figure représente deux séries d’expériences sur
les cas du tome 1. La première analyse a été faite en utilisant la base ICAT seule et la
deuxième en utilisant la base ICAT et la base des enquêtes, construite grâce aux résultats de ce tome 1. Pour cette deuxième série d’expériences, nous analysons le tome 1
avec les résultats du tome 1 ; mais ces résultats sont mélangés avec les échantillons de
la base de données de vulnérabilités, ce qui va non seulement nous permettre de caractériser les possibilités d’apprentissage de notre approche mais aussi de montrer que le
maximum de la dernière catégorie est bien dû à un manque de données de nos bases
et qui empêche le moteur d’inférences de calculer un score. Dans la deuxième série
d’expériences, nous avons donc mélangé deux bases de données différentes sémantiquement, mais en nous conformant aux restrictions décrites dans le paragraphe 2.3.4,
notamment sur la variable address qui n’aura que deux états possibles (local et internextern) et sur la sémantique des résultats qui est un mélange entre une sémantique sur
les vulnérabilités et une sémantique sur les attaques. Nous pouvons dire que les résultats sont meilleurs en utilisant la base ICAT avec la base des enquêtes qu’en utilisant
seulement la base ICAT. Ceci est très visible notamment par le fait que le maximum
de la troisième zone a considérablement diminué par rapport au reste du graphique, ce
qui prouve bien que ce maximum est dû à un manque de données en entrée du moteur
d’inférence.
3.3. HACKER’S CHALLENGE 1 & 2
93
F IG . 3.21 – Tome 1 : rang des attaques en utilisant la base ICAT puis la base ICAT et
la base des enquêtes
Le tableau 3.3 présente d’une part, les pourcentages des rangs des attaques réellement utilisées par les attaquants pour chacune des catégories citées ci-dessus, et d’autre
part, les moyennes et les écarts-type de ces rangs. Pour les challenge du tome 1, nous
observons de nouveau que l’ajout de la base des enquêtes améliore sensiblement les résultats, le rang moyen des attaques réelles passe de 9,81 à 6,97 et nous observons aussi
une nette augmentation des rangs inférieurs ou égaux à 5 et une diminution des rangs
supérieurs ou égaux à 16. Ces observations permettent de montrer que l’apprentissage
permet de donner de meilleurs résultats sur les attaques réellement utilisées et permet
aussi de diminuer le nombre de cas non résolues par le moteur (rangs supérieurs ou
égaux à 16).
On retrouve les mêmes résultats pour les challenges du tome 2. Le rang des attaques utilisées est nettement meilleur entre les expériences avec la base ICAT et les
expériences avec la base des enquêtes. Ce résultat est encore meilleur entre les expériences avec la base des enquêtes et la troisième base (ICAT + Enquêtes).
3.3.4.3 Analyse des résultats sur les techniques d’investigation
L’analyse des techniques d’investigation n’a pu être faite qu’avec le deuxième tome
de Hacker’s Challenge car ces techniques ne sont pas présentes dans la base ICAT mais
94
CHAPITRE 3. EXPÉRIMENTATIONS
F IG . 3.22 – Tome 2 : rang des attaques en utilisant la base ICAT puis la base des
enquêtes
3.3. HACKER’S CHALLENGE 1 & 2
95
F IG . 3.23 – Tome 2 : rang des attaques en utilisant la base ICAT puis la base ICAT et
la base des enquêtes
CHAPITRE 3. EXPÉRIMENTATIONS
96
Score moyen des techniques utilisées
Ecart-type de ces scores
Rang moyen des techniques utilisées
Ecart-type de ces rangs
17, 81
4, 18
5, 0
0, 50
TAB . 3.4 – Les résultats du tome 2 sur les techniques d’investigation
check_syst
log_net
var_syst
check_net
topo_int
physic
topo_ext
image
comm
retrieve
12
7
3
2
2
2
2
1
1
0
TAB . 3.5 – Les techniques d’investigation utilisées pour le tome 2
seulement dans la base des enquêtes. Le tableau 3.5 présente les techniques d’investigation les plus utilisées dans les challenges du tome 2. Nous pouvons noter que le score
moyen des techniques d’investigation réellement utilisées est faible (cf. Tab. 3.4). Il
est à l’image du score moyen des attaques et des actions réellement utilisées sur le
tome 2 et en utilisant seulement la base des enquêtes. Le rang moyen est égal à 5, 0,
la médiane. Ces résultats sont similaires aux résultats sur les attaques et les actions
présentés ci-dessus. Nous n’avons malheureusement pas assez de cas pour tirer des
conclusions générales sur ces résultats, mais nous pouvons extrapôler quelques idées.
La base des enquêtes n’est pas assez importante, il faudrait intégrer beaucoup plus de
cas pour permettre une réponse plus fiable du moteur. Ce nombre de cas à intégrer
est assez incertain. Comme précédemment il faudrait que chaque logiciel soit mis en
correspondance avec une ou plusieurs techniques d’investigation, ce qui représente un
travail long et fastidieux difficile à effectuer à l’heure actuelle. Le mélange de plusieurs
bases de données de sémantiques différentes pour les techniques d’investigation peut
être aussi un atout comme dans le cas des attaques et des actions. Dans le cas de la base
ICAT, la sémantique des techniques d’investigation serait très similaire à la sémantique
de la base des enquêtes. Dans les deux cas, les techniques d’investigation sont utilisées
pour découvrir des indices ou des preuves sur les systèmes informatiques compromis.
Il y aurait donc pas de problème au niveau sémantique et les résultats seraient plus
fiables, si on se réfère aux analyses précédentes sur les attaques et les actions.
3.3.4.4 Discussion
Grâce aux expériences effectuées ci-dessus, nous pouvons mettre en évidence plusieurs inconvénients et avantages de notre modèle. Tout d’abord, on constate que dans
3.3. HACKER’S CHALLENGE 1 & 2
97
l’état actuel des travaux le calcul d’un réseau prend énormément de temps, ceci s’expliquant en partie par la taille des réseaux bayésiens que nous calculons : une variable
d’adressage, 21 attaques, 20 actions, 7 dégâts et 10 techniques d’investigation, ce qui
fait un total de 59 nœuds sans compter les logiciels que l’on ajoute dynamiquement.
Ces nœuds sont reliés entre eux par plusieurs arcs en général ce qui augmente la complexité du calcul.
Ensuite, nous pouvons observer qu’un grand nombre d’attaques utilisées ont des
rangs situés dans la troisième catégorie (peu pertinente). C’est un problème d’exhaustivité de nos bases, difficile à résoudre. Ce problème d’exhaustivité signifie que ces
bases, et notamment la base des enquêtes, ne contient pas assez d’échantillons pour
pouvoir traiter les cas de figures potentiels. C’est un des inconvénients majeurs de
notre approche.
Cependant les avantages de notre approche sont nombreux. Premièrement, le système s’enrichit avec le résultat des enquêtes précédemment traitées. Deuxièmement,
malgré les différences de taille entre la base ICAT et la base complémentaire, la fusion a un effet bénéfique sur les résultats produits. L’ajout de données supplémentaires
dans la base de connaissance a donc un effet immédiat sur le comportement du réseau
bayésien.
Enfin, notre méthode permet de montrer à l’utilisateur les attaques les plus probables en les classant et en montrant, grâce aux scores, les écarts entre différents
groupes d’attaque. Par exemple, si l’utilisateur observe :
1 attack_a 0,89
2 attack_b 0,75
3 attack_c 0,75
4 attack_d 0,20
5 attack_e 0,15
6 attack_f 0,14
..
. ···
Cela peut être une indication forte sur l’attaque ou les attaques qui ont pu être utilisées.
98
CHAPITRE 3. EXPÉRIMENTATIONS
Conclusion
Bilan
Notre travail a consisté à proposer une approche permettant d’assister les enquêteurs informatiques dans leurs recherches des auteurs de délits et crimes informatiques.
Nous avons proposé un modèle comportemental de l’enquêteur. Ce comportement
est guidé par la connaissance de la configuration des systèmes compromis et par les
observations constatées. Ce modèle apporte une aide au processus d’investigation, tout
en le rendant plus facile et plus compréhensible pour les non-spécialistes. Ce modèle
permet en outre une certaine automatisation, dans le sens où l’enquêteur peut s’affranchir de certaines recherches fastidieuses, comme l’analyse systématique de tous
les fichiers, puisque le moteur peut proposer des éléments de réponse sous forme de
techniques d’investigation couplées à des éléments à analyser, comme par exemple des
noms de fichiers, voire des chaînes de caractères à rechercher dans ces fichiers.
Il est aussi possible de mettre en évidence plusieurs points capitaux pour l’enquête :
– les points faibles du système étudié en montrant les logiciels les plus vulnérables ;
– les meilleures attaques et actions possibles du point de vue de l’attaquant, en
utilisant la configuration logiciel du système compromis ;
– les méthodes à utiliser sur le système compromis pour retrouver des indices ou
des preuves de l’attaque.
Notre approche permet non seulement de proposer des solutions d’analyse sur des attaques connues (vulnérabilités connues) mais elle permet aussi de proposer des solutions sur des attaques qui sont inconnues au moment de cette analyse. Ceci est possible
car le modèle que nous avons mis en place est assez souple pour permettre la description de n’importe quelle attaque.
Tous les résultats des analyses sont conservés et peuvent être réutilisés de plusieurs
manières différentes :
– les attaques peuvent être mises dans une base de données annexe, pour enrichir
la détection des attaques futures et pour enrichir l’analyse de ces attaques grâce
à des techniques d’investigation plus évoluées ;
– les attaques et enquêtes peuvent être rejouées, soit à des fins d’explication devant
une cour de Justice par exemple ; soit à des fins d’apprentissage.
– un rapport peut être édité automatiquement pour pouvoir être présenté ensuite
devant la Justice, devant d’autres enquêteurs, etc.
99
Développements futurs
Notre prototype intéresse plusieurs organismes étatiques (DGA/CELAR, DST, SRPJ,
etc.). Nous voulons donc continuer les développements pour le mettre à disposition des
personnes intéressées. Pour cela, nous voulons travailler sur plusieurs axes :
L’utilisation éventuelle d’un nouveau moteur d’inférences. Ce mémoire présente les
réseaux bayésiens comme une bonne solution pour répondre à nos besoins, mais
il pourrait être intéressant de comparer les premiers résultats obtenus avec ceux
produits avec un autre modèle.
L’utilisation de nouveaux algorithmes pour l’apprentissage et l’inférence de nos réseaux bayésiens. Ce mémoire a présenté un certain nombre d’algorithmes. Nous
en avons choisi deux qui présentaient à nos yeux les meilleurs rapports qualité
- vitesse de calcul. Ce choix a été fait d’une part par une analyse de chaque
algorithme et d’autre part par quelques expérimentations sur un logiciel tiers.
L’objectif serait d’effectuer des expérimentations plus poussées, en utilisant les
réseaux tels qu’ils sont construits en ce moment pour trouver si certains algorithmes donnent des résultats de meilleure qualité. En outre, nous voudrions analyser si cette qualité évolue avec des situations d’enquêtes différentes.
La construction d’une base de données des enquêtes plus importante. Comme nous
l’avons vu, nous utilisons deux bases de données, la base ICAT qui a une taille
importante et la base des résultats d’enquêtes qui a, au contraire, une très petite
taille. Pourtant cette dernière possède des qualités indéniables pour l’enquêteur.
Il faudrait continuer l’incorporation de connaissances au sein de cette dernière.
Ces connaissances doivent provenir de cas réels analysés par des enquêteurs professionnels.
La création de plusieurs bases de données en vue de les spécialiser sur certains types
affaires (pédopornographie, affaires financières, affaires propres à la DST, IRCGN,
SRPJ, etc.). L’objectif serait d’analyser les différents besoins et de déterminer le
type de base de connaissances correspondant le mieux à ces besoins.
La ré-écriture de la librairie pyBN en C pour permettre une analyse des attaques plus
rapide. La figure 3.20 montre que certains calculs prennent beaucoup trop de
temps pour pouvoir être exploitable opérationnellement.
Une interface homme-machine améliorée, simple et intuitive. L’analyse criminelle
informatique est une activité complexe, qui nécessite des outils ergonomiques.
Cette ergonomie devra être travaillée en relation avec les utilisateurs finaux, en
particulier avec la police et la gendarmerie.
La construction d’un profil d’attaquant pour pouvoir reconnaître des attaquants connus
ou des styles d’attaques connus. Les forces de police utilisent de plus en plus les
profils de criminels, notamment pour les crimes de sang en série. L’objectif serait
d’étudier la création et l’utilisation de ces profils et de voir comment cela peut-il
être transposé dans le domaine informatique.
la construction de liaisons fortes entre les plans d’investigation : cela permettrait à la
plateforme de proposer des attaques qui ont éventuellement pu avoir lieu avant
ou après le plan d’investigation en cours d’analyse.
Bibliographie
[BC99]
Hal Burch and Bill Cheswick. Tracing anonymous packets to their approximate source. Technical report, Canergie Mellon University - Lumeta
Corps., 1999.
[BC04]
Nicole Lang Beebe and Jan Guynes Clark. A hierarchical, objectivesbased framework for the digital investigations process. In Digital Forensic
Research Workshop, Baltimore, Maryland, august 2004.
[BFOS84] L. Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone. Classification
and regression trees. Technical report, Wadsworth International, Monterey, CA, 1984.
[BT04]
Venansius Baryamureeba and Florence Tushabe. The enhanced digital
investigation process model. Technical Report 2, Makerere University
Institute of Computer Science, june 2004.
[Car03]
Brian Carrier. Defining digital forensic examination and analysing tools
using abstraction layers. International Journal of Digital Evidence,
1(4) :1–12, 2003.
[Cas01]
Eoghan Casey, editor. Handbook of Computer Crime Investigation : Forensic Tools & Technology. Academic Press, 1 edition, October 2001.
ISBN : 0121631036.
[CBL97a]
Jie Chang, David Bell, and Weiru Liu. An algorithme for bayesian network construction from data. In the 6th International Workshop on Artificial Intelligence and Statistics AI&STAT’97, pages 83–90, 1997.
[CBL97b] Jie Chang, David Bell, and Weiru Liu. Learning belief networks from
data : an information theory based approach. In the sixth ACM International Conference on Information and Knowledge Management CIKM, pages
325–331, 1997.
[CGH95]
D. Chickering, D. Geiger, and D. Heckerman. Learning bayesian networks : Search methods and experimental results. In Preliminary Papers
of the Fifth International Workshop on Artificial Intelligence and Statistics, pages 112–128, 1995.
[CGK+ 02] Jie Chang, Russel Greiner, Jonnathan Kelly, David Bell, and Weiru Liu.
Learning bayesian networks from data : an information theory-based approach. Artificial Intelligence, 137 (1-2) :43–90, 2002.
101
102
BIBLIOGRAPHIE
[CH92]
G.F. Cooper and E. Herskovits. A bayesian method for the induction of
probabilistic networks from data. Machine Learning, 9 :309–347, 1992.
[CHE]
Cheops. http ://www.marko.net/cheops/. logiciel de cartographie réseau.
[CL68]
C. Chow and C. Liu. Approximating discrete probability distributions
with dependence trees. IEEE Transactions on Information Theory,
14(3) :462–467, May 1968.
[CLU04]
CLUSIF. Panorama de la cybercriminalité - année 2004. Technical report,
CLUSIF, 2004.
[Con03]
CTOSE Consortium.
Cyber tools on-line search for evidence.
http ://www.ctose.org, 2003.
[Coo90]
G. Cooper. Computationnal complexity of probabilistic inference using
Bayesien belief networks. Artificial Intelligence, 1990.
[Daw79]
A.P. Dawid. Conditional independence in statistical theory. Journal of the
Royal Statistical Society, 41(1) :1–39, 1979.
[DCF]
Dod computer forensics laboratory data duplicator.
fldd.sourceforge.net/. une version modifiée de dd.
[Dif82]
John Diffenbach. Influence diagrams for complex strategic issues. Strategic Management Journal, 3-2 :133–146, 1982.
[Dun06]
Référenciel Dunod. Radiographie de la criminalité économique dans les
entreprises françaises. Protection des systèmes d’information, 2006.
[EC]
Encase. http ://www.guidancesoftware.com. Outil pour l’analyse d’image
disque.
[ES95]
Kazuo J. Esawa and Til Schuermann. Fraud / uncollectible debt detection
using a bayesian network base learning. In Philippe Besnard and Steve
Hanks, editors, Proceedings of the Eleventh Conference of Uncertainty in
Artificial Intelligence, San Mateo, California, 1995.
[ES03]
Brian Carrier Eugene and H. Spafford. Getting physical with the digital investigation process. International Journal of Digital Evidence, 2(2), 2003.
http://www.ijde.org/docs/03_fall_carrier_Spa.pdf.
[ET01]
Christopher Elsaesser and Michael C. Tanner. Automated diagnosis for
computer forensics. Technical report, MITRE Corporation, august 2001.
[FBI04]
CSI / FBI. Computer crime and security survey. Technical report, Computer Security Institute, 2004.
[FC89]
Robert Fung and Kuo-Chu Chang. Weighing and integrating evidence for
stochastic simulation in bayesian networks. 5 :209–219, 1989.
http ://dc-
[FKP+ 99] Rich Feiertag, Cliff Kahn, Phil Porras, Dan Schnackenberg, Stuart
Staniford-Chen, and Brian Tung. A common intrusion specification language (cisl). Technical report, University of Southern California’s Information Sciences Institute (ISI), 1999.
[FV]
D. Farmer and W. Venema.
The coroner’s
http ://www.porcupine.org/forensics/tct.html. (Forensics tools).
toolkit.
BIBLIOGRAPHIE
[FW04]
103
Mark Foster and Joseph N. Wilson.
Process forensics : A pilot study on the use of checkpointing technology in computer forensics.
International Journal of Digital Evidence, 3(1), 2004.
http://www.ijde.org/docs/foster.pdf.
[GHK+ 98] M. Ghallab, A. Howe, C. Knoblock, D. Mc Dermott, A. Ram, M. Veloso,
D. Weld, and D. Wilkins. PDDL the Planning Domain Definition Language. Technical report, Yale University, 1998.
[Gla04]
Pavel Gladyshev. Formalisation of event reconstruction problem. PhD
thesis, University College Dublin, 2004.
[Goo02]
Michael T. Goodrich. Efficient packet marking for large-scale ip traceback. Technical report, Department of Info. and Computer Science University of California, 2002.
[GP04]
Pavel Gladyshev and Ahmed Patel. Finite state machine approach to digital event reconstruction. Digital Investigation journal, 1(2), 2004.
[HB95]
E. Horvitz and M. Barry. Display of information for time-critical decision
making. In Philippe Besnard and Steve Hanks, editors, Proceedings of the
Eleventh Conference of Uncertainty in Artificial Intelligence, San Mateo,
California, 1995.
[Heb49]
Donald Hebb. The organization of behavior : A neuropsychological
theory. Wiley, 1949.
[HEL]
Helix. http ://www.e-fense.com/helix/index2.html. distribution Linux tenant sur un CD et spécialiser dans l’analyse forensique.
[Hen88]
M. Henrion. Propagating uncertainty in bayesian networks by probalistic
logic sampling. 2 :149–163, 1988.
[HGC94]
D. Heckerman, D. Geiger, and D. Chickering. Learning bayesian networks : The combination of knowledge and statistical data. Machine Learning, 20 :197–243, 1994.
[HNT]
Honeynet. http://project.honeynet.org. pot de miel informatique.
[IL]
Ilook. http ://www.ilook-forensics.org/. Outil pour l’analyse d’image
disque.
[IST]
Ists,
institute
for
security
http://www.ists.dartmouth.edu/.
[Jen98]
K. Jensen. A brief introduction to colored petri nets. In Proc. Workshop
on the Applicability of Formal Models, 2 June 1998, Aarhus, Denmark,
pages 55–58, 1998.
[Jeu02]
Brieuc Jeunhomme. Introduction au firewalling. Multi-System & Internet
Security Cookbook, 2002.
[KER]
Kerf, infrastructure for distributed collaboration in detecting network attacks. http://kerf.cs.dartmouth.edu.
technology
studies.
104
BIBLIOGRAPHIE
[Kjæ94]
U. Kjærulff. Reduction of computational complexity in bayesian networks
through removal of weak dependences. In Proceedings of the Tenth Conference on Uncertainty in Artificial Intelligence, San Francisco, CA, USA,
1994. Morgan Kaufmann Publishers Inc.
[KNO]
Knoppix. http ://www.knoppix.net/. distribution Linux tenant sur un CD
complet (1.8Go compressé).
[Koh89]
T. Kohonen. Self-Organization and associative memory. Springer-Verlag
New York, Inc., New York, NY, USA, 1989. ISBN : 0-387-51387-6.
[LC]
Linuxcare. http ://www.lnx-bbc.org/. mini distribution Linux.
[LGD]
[LK04]
Languard. http ://www.gfisoftware.com.
Ryan Leigland and Axel W. Krings. A formalization of digital forensics.
International Journal of Digital Evidence, 3(2), 2004.
[LL00]
Tod S. Levitt and Kathryn Blackmond Laskey. Computational inference
for evidential reasoning in support of judicial proof. In Symposium - Artificial Intelligence and Judiciary Proofs, 2000.
[LMMP59] J. Y. Lettvin, H. R. Maturana, W. S. McCulloch, and W. H. Pitts. What the
frog’s eye tells the frog’s brain. In Proceedings of the Institute of Radio
Engineers, volume 47, pages 1940–1951, 1959.
[LS90]
S. L. Lauritzen and D. J. Spiegelhalter. Local computations with probabilities on graphical structures and their application to expert systems. pages
415–448, 1990.
[McK99]
Rodney McKemmish. What is forensic computing ? Trends & Issues in
Crime and Criminal Justice, 118, june 1999. ISBN 0 642 24102 3.
[Mic02]
Cédric Michel. Langage de descriptions d’attaques pour la détection
d’intrusions en environnement réseau hétérogène. PhD thesis, Supélec
Rennes, 2002.
[MP01]
Kevin Mandia and Chris Procise. Incident Response : Investigating
Computer Crime. McGraw-Hill Osborne Media, June 2001. ISBN :
0072131829.
Sharon D. Nelson and John W. Simek.
Takedowns :
legendary
successes
in
computer
forensics.
http://www.vsb.org/publications/valawyer/apr02/tech_law.pdf,
april 2002.
[NS02]
[NWL+ 04] Patrick Naïm, Pierre-Henri Wuillemin, Philippe Leray, Olivier Pourret,
and Anna Becker. Réseaux bayésiens. Eyrolles, 2004.
[OPN]
[Pal01]
[Pea88]
Opnet. http ://www.opnet.com.
Gary Palmer.
A road map for digital forensic research.
Technical report, DFRWS, November 6 2001.
http://www.dfrws.org/dfrws-rm-final.pdf.
Judea Pearl. Probabilistic reasoning in intelligent systems : networks of
plausible inference. Morgan Kaufmann Publishers Inc., San Francisco,
CA, USA, 1988.
BIBLIOGRAPHIE
[Pet62]
[PV91]
[PYF]
105
Carl Adam Petri. Kommunikation mit Automaten (Communication with
Automata). PhD thesis, Institut fur Instrumentelle Mathematik, Bonn,
1962.
J. Pearl and T. Verma. A theory of inferred causation. In J.A. Allen,
R. Fikes, and E. Sandewall, editors, Principles of Knowledge Representation and Reasoning : Proceedings of the Second International Conference,
pages 441–452, San Mateo, CA, 1991.
Python forensic and log analysis gui. http ://pyflag.sourceforge.net/.
[QR89]
J. Ross Quinlan and Ronald L. Rivest. Inferring decision trees using
the minimum description length principle. Information and Computation,
80 :227–248, 1989.
[Sch01]
Mike Schiffman. Hacker’s Challenge : Test Your Incident Response Skills
Using 20 Scenarios. McGraw-Hill Osborne Media, October 2001. ISBN :
0072193840.
[Sch02]
Mike Schiffman. Hacker’s Challenge II. McGraw-Hill Osborne Media,
October 2002. ISBN : 0072193840.
[SGS91]
P. Spirtes, C. Glymour, and R. Scheines. An algorithm for fast recovery of
sparse causal graphs. Social Science Computer Review, 9 :62–72, 1991.
[Shi95]
Tsutomu Shimomura. Technical details of the attack described by markoff
in nyt. Article : 14059 of comp.security.misc, 1995. 25 Jan 1995 04 :36 :37
-0800.
[SL03]
Tye Stallard and Karl Levitt. Automated analysis for digital forensic
science : Semantic integrity checking. In Annual Computer Security Applications Conference, december 2003.
Task et autopsy for linux. http ://www.sleuthkit.org/index.php. Les outils
d’analyse de disque.
[SLE]
[SM96]
Tsutomu Shimomura and John Markov. Takedown. New York : Hyperion
Press, 1996.
[SP89]
Ross D. Shachter and Mark A. Peot. Simulation approaches to general
probabilistic inference on belief networks. 5 :221–231, 1989.
[Spi02]
Lance Spitzner. Honeypots : Tracking Hackers. Addisson Wesley Professionnal, 1 edition, september 2002. ISBN : 0321108957.
Tye Stallard. Automated Analysis for Digital Forensic Science. PhD thesis,
University of California, 2002.
Peter Stephenson. Investigating Computer-Related Crime. CRC Press,
2000.
Peter Stephenson.
Modeling of post-incident root cause analysis.
International Journal of Digital Evidence, 2(2), 2003.
http://people.emich.edu/pstephen/my_papers/03_fall_stephenson.pdf.
Peter Stephenson. Structured Investigation of Digital Incidents in Complex Computing Environments. PhD thesis, Oxford Brookes University,
2003.
[Sta02]
[Ste00]
[Ste03a]
[Ste03b]
106
[Ste04]
BIBLIOGRAPHIE
Peter Stephenson. Application of formal methods to root cause analysis
of digital incidents. International Journal of Digital Evidence, 3(1), 2004.
http://www.ijde.org/docs/stephenson.pdf.
[SWKA01] Stefan Savage, David Wetherall, Anna Karlin, and Tom Anderson. Practical network support for ip traceback. Technical report, Department of
Computer Science and Engineering - University of Washington, Seattle,
2001.
[TRI]
Trinux. http ://www.trinux.org. mini distribution Linux.
[Wil03]
Svein Willassen. Forensics and the gsm mobile telephone system.
http://www.ijde.org/03_spring_art1.html, 2003.
Annexe A
La base de vulnérabilités ICAT
La base ICAT est une base de données contenant plusieurs milliers de vulnérabilités. Cette base est un produit de la Computer Security Division du National Institute of Standards and Technology. Elle peut être interrogée via le site web [http:
//icat.nist.gov/icat.cfm] ou téléchargée dans son intégralité dans les formats Excel ou CSV1 .
Via le site web, l’utilisateur peut rechercher des vulnérabilités en fonction de certains critères : identifiant, date de publication, logiciels vulnérables, description, etc. Si
l’on télécharge la base de données, on peut effectuer d’autres types de recherche.
1 Comma
Separated Value
107
108
ANNEXE A. LA BASE DE VULNÉRABILITÉS ICAT
Cette base contient plus d’une cinquantaine de champs différents :
"CVE_ID"
"Publish_Date"
"CVE_Description"
"Severity" "HL1" "HL2" "HL3" "HL4" "HL5" "Link1Source"
"Link2Source" "Link3Source" "Link4Source" "Link5Source"
"Link1Name"
"Link2Name"
"Link3Name"
"Link4Name"
"Link5Name"
"Link1Type"
"Link2Type"
"Link3Type"
"Link4Type"
"Link5Type"
"AR_Launch_remotely"
"AR_Launch_locally"
"LT_Security_protection"
"LT_Obtain_all_priv"
"LT_Obtain_some_priv"
"LT_Confidentiality"
"LT_Integrity"
"LT_Availability"
"VT_Input_validation_error"
"VT_Boundary_condition_error"
"VT_Buffer_overflow"
"VT_Access_validation_error"
"VT_Exceptional_condition_error"
"VT_Environment_error"
"VT_Configuration_error"
"VT_Race_condition"
"VT_Other_vulnerability_type" "Vuln_Software" "DT_Unix"
"DT_Win_95" "DT_Win_NT" "DT_Apple" "DT_Other_OS"
"EC_Operating_system"
"EC_Network_protocol_stack"
"EC_Non_server_application"
"EC_Server_application"
"EC_Hardware"
"EC_Communication_protocol"
"EC_Encryption_module" "EC_Other" "EC_Specific_component"
"AR_Protocol_used" "AR_Target_access_attacker" "References_a"
"Evaluator_Comments"
"Status_a"
"LT_Sec_Prot_Other"
"VT_Design_Error" "prev_ID"
Les champs les plus importants sont les suivants :
CVE_ID ce champ donne un identifiant unique pour la vulnérabilité,
CVE_Description ce champ donne une description succinte de la vulnérabilité et de
ses effets,
AR_Launch_remotely et AR_Launch_locally ce sont deux variables bouléennes (0
ou -1) qui indiquent si la vulnérabilité doit être exploitée localement ou à distance,
LT_* Loss Type, ces champs correspondent aux dégâts observables sur le système
informatique,
DT_* Domain Type, ces champs donnent le domaine d’application de la vulnérabilité,
en d’autres termes sur quel système d’exploitation la vulnérabilité est utilisable,
Vuln_Software ce champ donne une liste complète des logiciels vulnérables à cette
vulnérabilité, le nom du logiciel est complété éventuellement du nom de l’entreprise responsable du produit ainsi que de son ou de ses numéros de version.
Cette base de données est très complête mais très difficile à analyser. En effet, le
format CSV n’est pas toujours respecté, notamment au niveau des logiciels vulnérables
("Vuln_Software"), le format CSV stipule que le caractère séparateur d’échantillons
(ici les vulnérabilités) est un retour chariot, or dans ce champ, ce caractère est aussi
utilisé pour séparer les différents logiciels vulnérables. De plus, certains noms de logiciels portent à confusion, par exemple :
109
Apache Group, Apache,
Apache Group, HTTP Server,
Apache Software Foundation, Apache,
Apache, HTTP Server.
Cette base est maintenant obsolète et à été remplacée en septembre 2005 par la National Vulnerability Database (NVD) [http://nvd.nist.gov/] qui est une base
utilisant le format XML.
110
ANNEXE A. LA BASE DE VULNÉRABILITÉS ICAT
Annexe B
Construction du réseau
B.1 Apprentissage de la structure
Cet algorithme utilise un score pour restreindre l’espace de recherche. L’algorithme
utilise le score Bayesian Dirichlet (ScoreBD) avec un a priori uniforme sur les structures.
Le score peut s’écrire de la façon suivante :
ScoreBD(B, D) ≈
n
Y
g(i, pai )
i=1
avec
– B la structure du réseau,
– D les données qui permettent de construire la structure
et
g(i, pai ) =
qi
Y
r
i
Y
Γ(Nijk + αijk )
Γ(αij )
.
Γ(Nij + αij )
Γ(αijk )
j=1
k=1
– Γ étant la fonction gamma,
– n le nombre de nœuds,
– pai les parents du nœud i.
Pour maximiser ce score, Cooper et Herskovits proposent de rechercher tous les
parents pai du nœud Xi qui vont maximiser un score intermédiaire g(i, pai ). L’algorithme permet aussi de fixer une borne supérieure u qui limitera le nombre de parents
possibles. L’algorithme est décrit dans la figure B.1, Pred(X[j]) correspond aux
prédecesseurs de X[j].
111
ANNEXE B. CONSTRUCTION DU RÉSEAU
112
for i from 1 to n
pa[i] = 0
g_old = g(i, pa[i])
OK = "vrai"
repeat
find X[j] in Pred(X[i])\pa[i]
which maximize g(i, {pa[i], X[j]})
g_new = g(i, pa[i]) dans {X[j]}
if g_new > g_old alors
g_old = g_new
pa[1] = pa[1] + {X[j]}
else if
OK = "faux"
while OK and |pa[i]| < u
F IG . B.1 – L’algorithme K2
B.2 Apprentissage des paramètres
Pour calculer les paramêtres du réseau, nous avons utilisé un algorithme de type
maximum de vraisemblance, le calcul des paramêtres est un calcul statistique.
∀i ∈ {1, N }
p(Xi = ”yes”) =
avec
–
–
–
–
PM
j=1
[q (state = ”yes”) | 0]
M
N le nombre de nœuds ;
M le nombre d’échantillon ;
p(Xi = ”yes”) la probabilité du nœud Xi pour l’état ”yes” ;
q (state = ”yes”) | 0) est égale à 1 si le j me échantillon du nœud Xi est égal à
”yes”, 0 sinon.
Annexe C
Le logiciel XMeta
C.1 Enregistrement des données
Pour enregistrer les données d’une enquête (configuration logicielle des systèmes
compromis, attaques utilisées, techniques d’investigation utilisées), nous avons choisi
d’utiliser un outil intégré au langage Python : la sérialisation d’objets (paquetage Pickle). La sérialisation consiste à enregistrer dans un fichier texte ou binaire une ou
plusieurs instances d’objets, ainsi que toutes les instances d’objets qui leur sont reliées.
Dans notre cas, nous enregistrons la liste [Networks] et donc tous les System,
Software, etc.
113
114
ANNEXE C. LE LOGICIEL XMETA
F IG . C.1 – Les principaux objets de l’application XMeta
Index
aspects légaux, xvi
audit réseau, 24
Autopsy, 33
FTK (Forensic ToolKit), 35
base de connaissances, 55, 70
bayésien, réseau, 40, 43
BEFTI (Brigade d’Enquête sur les Fraudes
aux Technologies de l’Information), xvii
ICAT, 56, 70
IDS (Intrusion Detection System), 24
Ilook, 35
IRCGN (Institut de Recherche Criminelle de la Gendarmerie Nationale), xviii
IRCGN (Institut de Recherche Criminologique de la Gendarmerie
Nationale), xvii
hacker, xix
CERTA (Computer Emergencing Response Team Administration),
xviii
code pénal, xvi
criminalité informatique, xiii
CTOSE (Cyber Tools On-line Search
for Evidence), 5
Kerf, 13
Kohonen, cartes de, 37
Data Duplicator, 32
décision, arbre de, 39
délinquant, xix
DFRWS (Digital Forensic Research Workshop), xix
diagramme d’influence, 42
Distributed Denial of Service, xiii
DMZ (DeMilitarized Zone), 56
données volatiles, 21
DST (Direction de la Surveillance du
Territoire), xviii
duplication, 23
Encase, 33
enquêteur, xix
FBI (Federal Bureau of Investigation),
xiv
fichiers d’audit, 19
fichiers temporaires, 21
moteur d’inférences, 55
neurones, réseau de, 36
OCLCTIC (Office Central de Lutte contre
la Criminalité liée aux Technologies de l’Information et
de la Communication), xvii
pare-feu, 24
pédopornographie, xvii
Petri, réseau de, 38
pirate informatique, xix
plan d’investigation, 55
pot de miel, 26
préservation des traces, 23
preuve physique, 32
Sleuthkit, 33
SRPJ (Services Régionaux de Police Judiciaire), xvii
115
116
systèmes experts, 35
systèmes zombies, xiii
topologie du réseau, 29
Wifi (Wireless Fidelity), 56
INDEX
VU :
Le Directeur de Thèse
VU :
Le Responsable de l’École Doctorale
VU pour autorisation de soutenance
Rennes, le
Le Président de l’Université de Rennes 1
Bertrand FORTIN
VU après soutenance pour autorisation de publication :
Le Président du Jury,

Documents pareils