• Aucun résultat trouvé

L’observation des activit´ es des attaquants

haute interaction

CHAPITRE 3. D´ EVELOPPEMENT D’UN POT DE MIEL HAUTE INTERACTION

3.4.2 L’observation des activit´ es des attaquants

Le but d’un pot de miel est la collecte d’informations sur les activit´es des

atta-quants. Pour r´ealiser cette collecte, le pot de miel est instrument´e. En ce qui concerne

notre pot de miel haute interaction, l’instrumentation doit ˆetre pens´ee de mani`ere

`a collecter, entre autres, les caract`eres qui transitent dans les connexions ssh. Pour

savoir de quelle mani`ere cette collecte doit ˆetre men´ee, nous nous penchons sur ce

que nous savons, a priori, des attaquants humains. Ensuite, nous rappelons le

fonc-tionnement d’une connexionssh. Pour finir, nous pr´esentons diff´erentes mani`eres de

collecter les caract`eres ainsi que celle que nous adoptons.

3.4.2.1 Remarques pr´eliminaires

Les attaquants, lorsqu’ils p´en`etrent un syst`eme, ne cherchent pas forc´ement `a

´eveiller les soup¸cons. Cacher leur activit´e peut mˆeme ˆetre l’un de leurs principaux

soucis. Si le moyen de cacher leur connexion leur est offert, ils l’utiliseront

proba-blement. Les attaquants peuvent donc communiquer avec leurs cibles au travers de

connexions chiffr´ees. De la sorte, ils masquent un minimum leurs activit´es. Leurs

cibles proposent souvent en standard les librairies n´ecessaires pour r´ealiser ce genre

de connexions. Citons, par exemple, la librairie SSL sur les syst`emes d’exploitation

Unix. Dans le cas contraire, il peut ˆetre ais´e pour les attaquants de t´el´echarger et

d’ex´ecuter sur leurs cibles – et dans les pr´emices de leurs attaques – un programme

qui embarque ces librairies. Les connexions chiffr´ees rendent difficile l’´etude de

l’acti-vit´e des attaquants. Or, les renseignements qui transitent au travers de ces connexions

– et qui sont interpr´et´es par le pot de miel – sont d’une grande importance pour

col-lecter des informations sur les activit´es des attaquants au sein du pot de miel. Afin

d’assurer un minimum d’observabilit´e, nous devons consid´erer ce probl`eme et trouver

une mani`ere de visualiser le contenu de ces connexions.

3.4.2.2 Fonctionnement de ssh

Avant d’entrer dans le cœur de cette probl´ematique, rappelons le fonctionnement

du servicessh. La figure 3.3 donne la s´equence suivie pour l’´echange de cl´e utilis´ee par

CHAPITRE 3. D´EVELOPPEMENT D’UN POT DE MIEL HAUTE INTERACTION

ce protocole[YL06]. Tout d’abord, un client, qui d´esire se connecter `a distance sur un

serveur, envoie une requˆete aupr`es du serveur. Se d´eroule alors l’´etape de n´egociation

de la m´ethode `a utiliser pour le chiffrement des donn´ees. Ensuite, le serveur envoie

des informations sur le corps dans lequel le chiffrement sera r´ealis´e, p et g. Le client,

`a la r´eception de ces donn´ees, g´en`ere al´eatoirement une variable x. En aucun cas

cette valeur ne doit circuler en clair sur le r´eseau. Par contre, la valeur g

x

mod p

est envoy´ee. Que cette derni`ere valeur circule en clair n’est pas un probl`eme : une

bonne partie de la s´ecurit´e de ssh repose sur la difficult´e – voire l’impossibilit´e – de

retrouver la valeur x `a partir de g

x

mod p,p et g (probl`eme du logarithme discret).

Le serveur, d`es reception de g

x

mod p, g´en`ere `a son tour une valeur al´eatoire, y, et

envoie g

y

modp au client. D`es `a pr´esent, la valeur secr`ete g

xy

mod p, nomm´ee cl´e

de session, peut ˆetre calcul´ee par les deux protagonistes de la communication. La cl´e

de session sera employ´ee en tant que cl´e de chiffrement dans le protocole sym´etrique

de chiffrement n´egoci´e pr´ec´edemment. Cet ´echange se nomme l’´echange de cl´e

Diffie-Hellman[MW98].

Fig. 3.3 – L’´echange de cl´e Diffie-Hellman

3.4.2.3 Moyens d’observation des connexions ssh

Pour visualiser le contenu des connexions chiffr´ees, nous pouvons adopter plusieurs

solutions diff´erentes. La premi`ere consiste `a r´ealiser une instrumentation en modifiant

directement les logiciels install´es sur le pot de miel, tels que le syst`eme d’exploitation.

Cette approche, souvent utilis´ee, pr´esente l’inconv´enient majeur d’ˆetre facilement

d´e-tectable par les attaquants. Par cons´equent, elle peut modifier le comportement des

attaquants. La seconde solution consiste `a se baser uniquement sur les traces r´eseau

afin d’en d´eduire les activit´es au cœur du pot de miel. Elle se base sur des notions de

cryptanalyse, et le plus souvent sur les biais statistiques introduits par les algorithmes

de chiffrement dans les programmes permettant les connexions chiffr´ees. La

pr´esen-tation de SEBEK, dans la section 3.3, nous a familiaris´e avec la premi`ere solution.

Penchons-nous sur la seconde solution.

Dans [SWT01], l’auteur propose une m´ethode statistique d’´etude des connexions

chiffr´ees, dans le but d’inf´erer le contenu de ces connexions. Cette m´ethode est illustr´ee

La m´ethode pr´esent´ee dans [SWT01] s’appuie sur les constatations suivantes :

– Un clientssh envoie un paquet r´eseau par touche press´ee par l’utilisateur, pour

assurer un haut niveau d’interactivit´e. Autrement dit, l’´emission d’un paquet

r´eseau correspondant `a la pression d’une touche n’est pas temporis´ee.

– La dur´ee entre les ´emissions de deux paquets cons´ecutifs, du cˆot´e de l’utilisateur,

d´epend des deux touches press´ees. Par exemple, cette dur´ee est tr`es faible pour

la s´equence de touches (v, o) (emploi d’un doigt de chaque main) et plus ´elev´ee

pour la s´equence de touches (v, r) (emploi du mˆeme doigt de la main gauche).

Fig.3.4 – M´ethode d’inf´erence du contenu de connexions chiffr´ees

La figure 3.4 illustre cette m´ethode. En disposant (1) des distributions de

proba-bilit´es des dur´ees entre ´emissions de deux touches cons´ecutives pour chaque couple

de touches et (2) des dur´ees entre les ´emissions des paquets cons´ecutifs, il est alors

possible de d´eterminer le contenu de ces paquets, avec plus ou moins de certitude. Un

attaquant peut observer un r´eseau, collecter les paquets ´echang´es lors d’une connexion

s´ecuris´ee entre un serveur et un utilisateur et utiliser cette m´ethode pour en extraire

des informations int´eressantes (des mots de passe par exemple). Nous pourrions

uti-liser ces m´ethodes – `a notre tour – pour instrumenter un pot de miel sans modifier

les logiciels install´es sur ce pot de miel. Mais cette m´ethode est lourde. Non

seule-ment elle ne permet pas d’obtenir des informations avec certitude, mais elle doit ˆetre

calibr´ee en fonction de la vitesse de frappe de l’attaquant observ´e (ne permettant

pas d’observation en temps r´eel). De plus, dans notre cas, nous disposons du contrˆole

de la machine qui va ˆetre cibl´ee par l’attaquant. Donc, pour observer l’activit´e des

attaquants qui utilisent des connexions chiffr´ees, nous pouvons modifier l´eg`erement le

pot de miel, au lieu d’utiliser cette m´ethode.

Comme modification, nous pourrions tr`es bien employer la m´ethode “homme au

milieu” (en anglais,man in the middle). Cette m´ethode utilise le concept de “proxy”

en ins´erant un serveur entre le client et le serveur pour intercepter les acc`es au service

sshdu serveur[ste01]. Dans notre cas, nous pourrions intercepter les acc`es au pot de

miel, par l’attaquant, afin de r´ecup´erer les frappes de touches de cet attaquant. Mais,

plˆutot que de d´eployer un tel outil, il pourrait nous suffire de disposer de la cl´e de

session utilis´ee pendant la communication,g

xy

mod p. Pour ce faire, une modification

minime du serveurssh pourrait suffire. Cette modification consiste `a rendre

pr´edic-tive la g´en´eration de la valeur al´eatoirey par le serveur. Nous disposerions alors des

valeursp,g etg

x

modp qui circulent en clair sur le r´eseau et de la valeury. Il serait

CHAPITRE 3. D´EVELOPPEMENT D’UN POT DE MIEL HAUTE INTERACTION

alors possible de calculer g

xy

modp, pour ainsi d´echiffrer les ´echanges entre les

atta-quants et le serveur ssh du pot de miel. Cette approche est moins d´etectable que la

modification des logiciels install´es sur le pot de miel mais elle se trouve limit´ee par un

point important. Un attaquant peut installer sur le pot de miel ses propres librairies

de chiffrement. Dans ce cas, nos modifications seront inutiles et nous nous trouverons

dans l’impossibilit´e de d´echiffrer les connexions. Reconstituer l’activit´e de l’attaquant

sera alors irr´ealisable. Cette solution n’est donc pas suffisante. Nous devons `a nouveau

consid´erer une modification plus importante.

Effectuer une importante modification sur le pot de miel consiste `a transformer

les logiciels install´es. Bien entendu, pour ce faire, nous n’allons pas modifier tous les

programmes du syst`eme de fichiers en utilisant les techniques deHijacking. Le travail

serait trop long et cette strat´egie est facile `a contourner par le t´el´echargement sur le

pot de miel de nouveaux fichiers ex´ecutables. Nous allons donc adopter la strat´egie

r´epandue qui consiste `a modifier le noyau du syst`eme d’exploitation. Deux approches

existent. La premi`ere consiste `a cr´eer un greffon `a appliquer au noyau du syst`eme

d’exploitation et la deuxi`eme consiste `a utiliser un module `a ins´erer dynamiquement

dans le noyau. Nous avons opt´e pour la premi`ere approche, afin d’obtenir un bon

niveau de transparence. Les impl´ementations pr´esent´ees dans la section 3.3 r´ealisent

de telles transformations. Elles emploient des techniques bien connues des attaquants.

Elles sont, de ce fait, facilement d´etectables. De plus, la plupart emploient des

mo-dules `a charger dynamiquement. Nous allons donc tenter de cr´eer une impl´ementation

originale, sous forme d’un greffon.

Le greffon va op´erer `a plusieurs niveaux. Il va modifier deux routines du noyau. La

premi`ere concerne l’ex´ecution des programmes. La seconde concerne la communication

avec un utilisateur distant. En plus de ces modifications, il est n´ecessaire de donner

la possibilit´e `a l’administrateur du pot de miel d’enrichir les informations collect´ees.

Cette capacit´e donne un bon niveau de flexibilit´e au pot de miel. Elle est r´ealis´ee

par le greffon en enrichissant le noyau d’un nouvel appel syst`eme permettant `a des

processus ex´ecut´es au niveau de l’espace utilisateur de stocker des informations au

niveau de l’espace noyau. Des programmes qu’il nous semble pertinent de modifier

peuvent profiter de cet appel syst`eme. L’un de ces programmes est ssh. Nous l’avons

modifi´e de mani`ere `a r´ecup´erer des informations sur les tentatives de connexions (nom

d’utilisateur, mot de passe, adresse de l’attaquant...).