• Aucun résultat trouvé

Ces travaux importants ont eu comme premier meritc de stimuler et d'at-tirer de jeunes chercheurs vers la virologie informatique, memc si le nombre de ces derniers est encore trop restreint. Mais le mouvement semble en marche.

Les travaux prometteurs de Matthew Webster [225] de I'Universite de Li-verpool, de Jose Morales [177], de Gregoire Jacob [141,142]' parmi d'autres, en temoigncnt et, chaque annee, quelques etudiants manifestent leur interet pour les travaux de formalisation en virologie informatique et debutent une these.

La premiere constatation, surprenante seulement en apparence, est que ce mouvement est tres nettement centre sur le «vieux continent». L'Eu-rope, memc si l' Asie semble egalement connaitrc un fremissement indeniable, concentre l'essentiel des « nouveaux» travaux en virologie informatique for-melle. Le succes de la conference WTCV

a

Nancy (Workshop in Theoretical Computer Virology) et I'evolution sensible des programmes de la conference EICAR (European Institute in Computer Antivirus Research) - la doyenne des conferences en virologie - demontrent tres clairement une preeminence de la recherche europeenne dans le domaine de la virologie informatique theo-rique, preeminence dans laquelle la France a acquis une position dominante.

Alors que les Etats-Unis ou le Japon semblent vouloir rester dans une vi-sion plus commerciale et industrielle de la virologie informatique. C'est en quelque sorte un retour aux sources si l'on considere ce qui a ete presente dans le chanitre 2.

Les quelques resultats theoriques prcscntes dans ce chapitre et qui font suite aux travaux fondateurs de Fred Cohen et de Leonard Adleman montrent par leur qualite toute la puissance de la formalisation dans le domaine de la virologie informatique. En quelques annces, ces travaux significatifs tout d'abord brillamment confirme que la virologie ne se resumait pas a I'ecriture et a la diffusion de codes malveillants - vision que les editeurs d'antivirus ont tres largement contribue a propager - memc si, il est vrai, ces activites sont a l'origine, mais en partie seulement, de cette science.

Ces resultats ont egalement ouvert de tres nombreuses autres voies de recherche et mis en evidence de tres nombreux problemes ouverts [102]' les-quels croissent regnlierement en nombre au fur et a mesure des travaux;

mais c'est la I'interet de la recherche : se poser des questions et si possible les bonnes, et ensuite y repondre. Certes, les rcponses apportees le plus sou-vent confirment un peu plus chaque fois I'incapacite a resoudre le probleme de la detection virale. La plupart des resultats de complexite le prouvent.

Mais ce n'est pas la le seul apport de ces travaux. Certes, cette approche exploratoire permet de gagner une vision de plus en precise et ordonnee de la jungle des codes malveillants. En outre, cela permet egalement de mieux developper, en amont, une defense preventive - au niveau des politiques de securite, de la conception des logiciels, des systemes d'exploitation, des anti-virus, du materiel informatique.... Autrement dit, comprendre ce qui se passe, ce qui peut arriver est le meilleur moyen de s'en protcger. C'est la que reside la necessite imperieuse de faire de la recherche en securite, en particulier en virologie informatique. Cette recherche doit reposer a la fois sur une activite de formalisation rigoureuse et volontaire mais egalement privilegier la vision de l'attaquant. Cette derniere approche a montre toute sa puissance avec la production de nouveaux resultats theoriques et pratiques qui sont prcscntes en detail dans l'ouvrage faisant suite au present livre [104] et consacre aux techniques virales les plus sophistiquecs.

Exercices

1. En vous aidant des references [135] et [4]' comparer les modeles RAM, RASPM, RASPM/ ABS et RASPM/SABS avec celui de la machine de Turing (modele TM). Montrer que la complexite C(n) d'un programme de type RAM sur une entree de taillenet celle, notee C'(n)de la version equivalente pour le modele RASPM sont telles que C(n) == kC'(n) OU k est une constante.

2. Demontrer le theoreme 19.

3. Demont.rcr Ie theoreme 20.

4. Montrer que les modeles RASPM/ ABS et RASPM/SABS sont plus adap-tes pour decrire la classe des virus compagnons (voir chapitre 9) ainsi que celIe des virus multi-plateformes.

5. Ecrivez un virus par ecrasement de code VN, en Bash (voir le chapitre 8 pour plus de details) dont les premieres lignes sont

#!/bin/bash declare -i sig=N

La valeur cntierc Nest incrcmcntec lors de la duplication virale (le code est alors « polymorphe », certes de manierc triviale). En reprenant les notations de la demonstration presentee dans la section 4.4, nous noterons A la generation initiale Va et Pi la z-iemc generation (mutee) de A.

A

l'aide des remarques faites en fin de section 4.4 :

a) Proposez un codage eA (respectivement epi) pour A (respectivement Pi).

b) Proposez une formule logique F telle que eA ne satisfait pas F mais qui est satisfaite par er, et pour un i unique fixe.

c) Programmez un detecteur V utilisant cette formule F pour determi-ner que

er,

est une forme mutec de A.

d) Ecrivez un programme en Bash, non viral, provoquant une fausse alarme relativement

a

V.

6. Modifier la definition 40 afin de decrire formellement un virus realisant

a

la fois une infection ET delivrant une charge finale, en sachant que le second point de la definition de Zuo et Zhou a pour objectif de faire de l'infection une caracteristique intrinseque de tout programme viral.

7. Comparer les definitions 42 et 46 et expliquer ce qui distingue fondamen-talement ces deux types de virus.

8. En vous aidant des resulats d'Adleman et de la preuve du theoreme 25, montrer que ce theoreme implique que, quel que soit le type de virus, l'ensemble

t,

L\-complet.

9. Montrer que la construction des virus de type Blueprint peut etre utilisee pour expliquer et decrire le principe sur lequel fonctionnent les genera-teurs automatiques de virus comme The Virus creation Lab (VCL) ou de vers comme le VBS Worm Generator (VBSWG) (voir section 5.5.1).

5

Taxonomie, techniques et outils

5.1 Introduction

Les aspects theoriques de la virologie informatique que nous venons de presenter dans les deux chapitres precedents sont peu connus, non seulement du grand public mais aussi quelquefois de certains experts de la securite informatique. En particulier, I'elargissement de la simple notion de virus

a

celIe plus generale d'infection informatique, par L. Adleman, est elle aussi trop souvent ignorec.

Le terme de virus informatique, ne, rappelons-Ie, en 1986, est pourtant desormais bien connu du grand public. L'informatique, omnipresente dans le milieu professionnel et, de plus en plus, dans les foyers, l'utilisation d'Internet et plus generalement des rcseaux, ont confronte, au moins une fois, une im-portante majorite des utilisateurs au risque viral. Cependant, il s'avere que dans les faits la connaissance de ces derniers (au sens le plus large du terme, ce qui inclut souvent les administrateurs et les responsables de la securite informatique) en matiere de virologie informatique presente encore beaucoup de lacunes, au point d'augmenter les risques plut6t que de les diminuer. Le terme de virus, lui-meme, est en fait improprement utilise pour designer la classe plus generale des programmes offensifs dont Adleman a realise la taxo-nomie et qui n'ont rien

a

voir avec les virus: vers, chevaux de Troie, bombe logique, leurres, etc. Les virus, de plus, recouvrent une realite bien plus com-plexe qu'il n'y parait. De nombreuses sons-categories existent, de nombreuses techniques virales s'y rapportent, toutes impliquant des risques differents qui doivent etre connus en vue d'une protection et d'une lutte efficaces.

Afin d'illustrer l'importance du risque viral, resumons-le par quelques chiffres narticulierement nertinents : le ver ILoveYou a infecte en 1999 nlus

de 45 millions d'ordinateurs dans le monde". Plus recemrnent, le ver Sap-phire/Slammer [39] a infecte 200 000 serveurs au total dans le monde, dont plus de 75 000 serveurs l'ont ete dans les dix premieres minutes suivant le debut de l'infection. Le ver W32/Sobig.F a infecte, en aout 2003, plus de 100 millions d'utilisateurs (source F -Secure). Le ver W32/Lovsan a egale-ment frappe en aout 2003, infectant TOUS les abonnes d'un grand fournis-seur d'acces Internet. Le virus CIH dit Chernobyl [88] a oblige des milliers d'utilisateurs, en 1998,

a

changer la carte mere de leur ordinateur apres en avoir detruit le programme BIOS. Les degats provoques par ce virus sont estimes

a

pres de 250 millions d'euros pour la seule Coree du Sud. On es-time que le cout des degats provoques par un ver informatique generique, au niveau planetaire, peut atteindre plusieurs milliards d'euros". Enfin, fin janvier 2004, le ver d'emails MyDoom a infecte plus de cent millions de mails dans les trente-six premieres heures apres le debut de l'infection [96]. Ces chiffres montrent avec force l'importance d'une prise en compte serieuse de la menace virale.

Dans ce chapitre, nous allons presenter les virus et les vers informatiques, et les envisager dans le contexte general, et plus realiste aujourd'hui, des in-fections informatiques (les Anglo-Saxons utilisent le terme de malware) dont l'organisation est presentee en figure 5.1. Nous donnerons dans un premier temps les definitions de base pour ensuite presenter toutes les varietes exis-tant pour ces programmes ainsi que leur fonctionnement, sans oublier leurs techniques d'adaptation aux defenses que l'utilisateur peut lui opposer. L'as-pect historique des diverses infections informatiques ne sera pas aborde ici.

II existe suffisamment de tres bons ouvrages qui ont traite le sujet, en par-ticulier [133]. La presentation des principaux virus ayant sevi ces dernieres annecs ne sera pas non plus donnee, Decrirc un virus ou un ver sans donner le code source nous semble un non-sens, Nous avons prefere, dans la par-tie 6.3.2, presenter de facon detaillee l'algorithmique virale

a

travers I'etude approfondie de quelques virus et vers qui couvrira les principales techniques qu'ils utilisent. Le lecteur pourra, cependant, consulter les sites de certains editeurs d'antivirus, particulierement bien faits et documcntcs:'.

1 http://news.bbc.co.uk/hi/english/sci/tech/newsid_782000/782099.stm

2 Selon plusieurs sources, la moyenne des degats pour un macro-ver comme Melissa est estimee a1,1 milliards d'euros tandis, que pour le ver d'emails ILove You, ce chiffre est d'environ 8,75 milliards d'euros. La section 6.2.2 presente le mode de calcul generale-ment utilise pour evaluer le coutd'une attaque virale.

3 Les sites de Sophos (www. sophos. com), de F-Secure (www. fsecure. com) et d' AVP (www.

viruslist. com et antivirus-france. com) sont narticulierement interessants.

Infections simples Codes autoreproducteurs

FIG. 5.1. Classi fication des infect ion s infor matiqucs

5.2 Aspects generaux des infections informatiques 5.2.1 Definitions et concepts de base

II existe plusieurs definitions de la notion d 'in fection inform atique mais, en general, aucune n 'est veritabl ement complete dans la mesure OU les evolut ions recentes en m ati ere de criminalite informatique ne sont pas prises en compte.

Nous adopterons, pour notre part , la defini tion generals suivant e : Definition 48 (Infection inf on natique)

Programme simple ou autoreprodut eur,

a

caraciete offensif, s'ins tallant dan s un syst em e d'information,

a

l 'in su du ou des ut ilisat eurs, en vue de port er att einte

a

La confid entialite, l 'integrite ou La dispon ibilite de ce susteme, ou suscepti ble d' incrimin er

a

tori son possesseur ou l 'utilisateur dan s La reali-sation d 'un crime ou d 'un tlelit .

En considerant cet te definition et l'organigramme de la figure 5.1, la notion d 'infection corresn ond

a

un e installation de nrozramrn e. dans le cas d 'une

infection simple et

a

une duplication de code dans le cas de programmes autoreproducteurs.

Apres une attaque, il est encore surprenant de constater combien nom-breux sont encore les utilisateurs, enclins

a

la relativiser et la minimiser en declarant : « De toute [aeon, ma machine ne contenait rien de confidentiel».

L'atteinte

a

la confidentialite des donnees,

a

I'integrite et

a

la disponibilite du systeme, n'est plus forcement la priorite des attaquants. En revanche, nombreux sont les exemples d'attaques qui ont eu pour but d'utiliser un sys-teme, en toute transparence (il n'y a donc pas atteinte

a

la disponibilite) , pour perprctcr crimes et delits. Or, certains attaquants usent de precautions pour effacer toute trace de leur passage dans le systeme ainsi detourne. Cela peut se traduire par une incrimination de l'utilisateur. II decouvre ainsi, en rneme temps, que son ordinateur a ete attaque et qu'il contient, par exemple, des images pedophiles ou que son poste a ete utilise pour mener des attaques informatiques. Ces cas sont malheureusement nombreux. C'est la raison pour laquelle la notion d'incrimination a ete rajoutee dans notre definition.

Le mode general de propagation et d'action de ces programmes est le suivant :

1. le programme infectant proprement dit est porte par un programme hate (dit programme infecte ; dans le cas de la premiere infection realisee par l'attaquant, le terme de dropper [« largueur» est utilisel) ;

2. lorsque le dropper est execute:

a) le programme infectant prend la main et agit selon son mode propre, le programme hate est alors temporairement mis en sommeil ; b) puis il rend la main au programme hate qui s'execute alors

normale-ment sans trahir la presence du programme infectant.

Notons que le dropper peut etre egalement un peripherique. La fonction de demarrage automatique materialisee par la presence d'un fichier autorun.inj sur le peripherique en question permet de lancer automatiquement un fichier.

Prenons le cas du virusAdobeR. Uno clefUSB infectee par ce virus contiendra le fichier autorun. inf suivant :

[AutoRunJ

open=AdobeR.exe e

shellexecute=AdobeR.exe e shell\Auto\command=AdobeR.exe e shell=Auto

Chaque fois que cette clef est connectee sur un ordinateur sain, ce dernier est infecte (passage en persistance). Toute clef USB saine qui est connectee

a

cet ordinateur sera infectee.

Les attaques par infections informatiques sont toutes basees plus ou moins fortement sur I'ingenierie sociale [93],

a

savoir l'utilisation des travers, des mauvaises habitudes ou inclinations de l'utilisateur, mais egalement l'exploi-tation des peurs de l'utilisateur ou simplement en mettant en oeuvre de la simple manipulation psychologique". Le dropper prend une forme anodine, generalement attractive (jeux, animations flash, copies illicites de logiciels, mails «raccoleurs »... afin d'inciter la victime

a

I'executer et ainsi permettre

a

l'infection de s'installer ou de se propager. Dans ce domaine, l'utilisateur constitue alors le maillon faible, I'element limitant de toute politique de se-curite. II faut insister sur le fait que l'infection d'un utilisateur n'est possible que s'il a execute un programme infecte ou importe dans son systeme des donnees corrompues (cas des virus de documents ou des virus binaires dont une application est presentee en section 16 avec le virus YMUN20).

Un autre aspect important du mode d'action des programmes infect ant , qu'il est important de prendre en compte, est la presence, toujours plus frequents, de vulnerabilites logicielles (ou « failles ») qui rendent possibles les attaques par ce programme independamment des utilisateurs. Les de-bordements de tampon", des failles d'execution (execution automatique du contenu de pieces jointes de messages electroniques par certaines versions d'OutlookjOutlook Express) ... sont autant d'exemples recents et prcoccu-pants qui montrent que le risque devient multiforme.

Dans une politique de securite, le choix des logiciels revet une impor-tance toute particuliere,

A

titre d'exemple, une etude rapide des principaux vers, ayant sevi depuis deux ans, montre que pratiquement tous ont exploite une faille de securite des produits tels qu' OutlookjOutlook Express ou le Web Server lIS. Depuis le deuxieme semestre2001,periode particulierement riche en infections majeures (CODERED, NIMDA, BADTRANS), ces dernieres ont incite les responsables de securite

a

reconsiderer leurs choix en matiere de

4 Un exemple recent assez representatif est celui d'une variante du ver Sober qui a sevi en novembre 2005. Le ver se propage via un courrier electronique semblant emancr du FBI et indiquant que leur adresse IP a ete reperee sur trente sites web illegaux. Les utilisateurs sont alors invites aremplir un questionnaire en piece jointe - en realite le ver. La «peur du gendarme» fait le reste.

5 En anglais, « buffer overflow»; le non-controle de la longueur des parametres de certains programmes provoque I'ecrasernent, par des instructions infectieuses contenues dans ces parametres, des instructions legitimes devant etre executees par le processeur;

pour plus de details sur les debordements de tampon, le lecteur consultera [5,16] ou la section 10.3.1.

logiciels. II est certain que les logiciels libres sont desormais regardes avec interet. Mais ce « nirvana logiciel » - constitue du monde Linux, Apple...

- n'existe qu'en apparence. Des failles en nombre toujours croissant sont decouvertes chaque annce pour tous les systemes d'exploitation et tous les logiciels. II n'existe par consequent aucun « sanctuaire ». Gageons malheu-reusement que, lorsque ces « havres de paix informatiques » que sont les Linux ou autres Apple seront plus repandus, ils deviendront des cibles plus interessantes pour les attaquants. Leur succes s'accompagnera de la memc frenesie de developpement concurrentiel, et avec lui les failles seront plus nombreuses.

Les infections informatiques qui vont etre decrites dans ce qui suit existent pour tous les environnements informatiques et ne sont pas le fait exclusif de tel ou tel systeme d'exploitation. Les techniques peuvent certes varier d'un systeme

a

l'autre, mais dans la mesure OU ce sont de simples programmes, quoique particuliers, leur viabilite technique est assures des lors que les ele-ments suivants sont presents:

- de la memoirc de masse (peripherique de stockage), dans laquelle le programme infecte se trouve sous forme inactive;

- de la memoirc vive, dans laquelle est copie le programme (creation de processus) lorsqu'il est execute;

- un processeur ou un micro-controleur. pour I'execution proprement dite du programme;

- un systeme d'exploitation ou equivalent.

L'evolution recente des programmes infectants vers des plateformes exotiques (cheval de Troie Phage pour Palm Pilot, virus Duts infectant les ordinateurs de poche de type PocketPC [98], le ver Cabir se propageant via les telephones portables fonctionnant sous le systeme SymbOS [98], virus Tremor utilisant le reseau de television allemand par cable pour infecter les ordinateurs ... ) a montre que le simple cadre de l'ordinateur devient desormais depasse et que la menace devient globale. Les quatre elements cites sont les seuls points communs

a

tous ces environnements.

Signalons enfin que tous ces systemes heterogenes sont appeles

a

etre

connectes les uns avec les autres. Le ver Symbos_ Cardtrp.a, en septembre 2005, se propage via les technologies Bluetooth et MMS utilisees dans les telephones portables ayant pour systeme d'exploitation Symbian 60. Si le telephone contient une carte memoire, le ver s'y copie mais sous une version pour le systeme d'exploitation Windows. Cette derniere s'activera alors dans un ordinateur de type PC lorsque la carte mcmoire sera inseree dans un lecteur idoine. Sous Windows. le ver nrend I'annarence d'une icone invitant

l'utilisateur a cliquer dessus. Cet exemple illustre combien, dans le futur, la menace va se diversifier aux differentes plateformes et evolucr vers des formes hybrides.

Dans le reste de cette section, nous nous limiterons aux seuls programmes autoreproducteurs. Les infections simples seront traitees a part dans la sec-tion 5.3.

5.2.2 Diagramme fonctionnel d'un virus ou d'un ver

La structure generale (encore appelcc diagramme fonctionnel) des pro-grammes de type autoreproducteur est la suivante :

- une routine de recherche des programmes cibles. Un virus efficace veri-fiera que le fichier est executable, a le format correct, et que la cible n'est pas deja infectee (pour ce dernier point, il s'agit de minimiser les risques de detection de I'activite virale en interdisant la surinfection; un virus d'executable de type *.COM fonctionnant par ajout de code risquerait, sans cette precaution, de depasscr la limite des 64 Ko). Cette partie du virus determine directement son efficacite, en termes de portce (action limitee au repertoire courant ou sur tout ou partie de l'arborescence

- une routine de recherche des programmes cibles. Un virus efficace veri-fiera que le fichier est executable, a le format correct, et que la cible n'est pas deja infectee (pour ce dernier point, il s'agit de minimiser les risques de detection de I'activite virale en interdisant la surinfection; un virus d'executable de type *.COM fonctionnant par ajout de code risquerait, sans cette precaution, de depasscr la limite des 64 Ko). Cette partie du virus determine directement son efficacite, en termes de portce (action limitee au repertoire courant ou sur tout ou partie de l'arborescence