modélisation du virus informatique confickerarnaudcourty.free.fr/esilv/projetcs/rapport.pdf ·...

18
Mini Projet Calcul Scientifique Modélisation du virus informatique Conficker W W o o r r m m D D e e f f e e n n d d e e r r E E n n g g i i n n e e e e r r i i n n g g Bellot Guillaume Cornil Yoann Courty Arnaud Goldenbaum David Pascal Louis ESILV S4

Upload: nguyenkien

Post on 15-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Mini Projet

Calcul Scientifique

Modélisation

du virus informatique

Conficker WWWooorrrmmm

DDDeeefffeeennndddeeerrr

EEEnnngggiiinnneeeeeerrriiinnnggg

Bellot Guillaume

Cornil Yoann

Courty Arnaud

Goldenbaum David

Pascal Louis

ESILV S4

1 Mini Projet Calcul Scientifique

Introduction :

Définition d’un ver informatique : Un ver informatique est un programme autonome qui s’installe sur le disque dur d’un ordinateur (disque dur externe, disque amovible). Le ver informatique a besoin d’un hôte pour se reproduire, pour cela il se dissimule et se cache dans des fichiers et des codes exécutables contenus dans l’ordinateur cible. Les vers écrits sous forme de script peuvent être intégrés dans un courriel ou sur une page HTML. Le ver a aussi, mise à part sa reproduction, certains objectifs malveillants : Espionner l'ordinateur qu’il a pour hôte,

Détruire des données sur l'ordinateur où il se trouve ou y faire d'autres dégâts,

Installer d'autres programmes nocifs : spywares, ou cheval de Troie, dans le but de capturer des mots de passe, des numéros de cartes bancaires…

Prendre le contrôle de l’ordinateur à distance afin d’en faire une passerelle, un relais pour envoyer de multiples requêtes vers un serveur internet dans le but de le saturer. (=PC zombie)

Diffère d’un virus : Un ver informatique a besoin d’un hôte pour se reproduire.

Les particularités de Conficker :

Modes opération : Le ver informatique utilise des failles contenues dans des logiciels pour s’installer et

se reproduire. Pour Conficker il s’agit du logiciel svchost.exe. Conficker ne peut fonctionner

que sous Windows. On peut retenir que le 16 janvier 2009, un vendeur de logiciel antivirus

— F-Secure — déclarait que Conficker avait infecté presque 9 000 000 ordinateur ce qui en

fait une des infections les plus largement répandues des années 2000 (à l’heure actuelle on

estime à 10 millions le nombre d’ordinateurs infectés).

On recense 5 versions du ver :

1. Version A : Conficker se propage via un périphérique amovible, comme une clef USB déjà infectée ou par le réseau local en passant outre les mots de passe d’un utilisateur via un dictionnaire intégré. Une fois installé sur un PC, le ver met hors service certaines fonctions de Windows comme Windows Update et Windows Defender.

2. Version B : il tente de se reproduire lui-même, empêchant l'accès à des sites tels que Windows Update et d’autres sites d'antivirus qui pourraient le détecter grâce à des mises à jour du logiciel par exemple. Conficker tente également de se connecter à des serveurs pseudo-aléatoires afin de recevoir des ordres supplémentaires pour se propager,

2 Mini Projet Calcul Scientifique

récolter des informations personnelles, télécharger et installer des logiciels malveillants additionnels sur les ordinateurs hôtes.

3. Version C : le ver intègre un module peer to peer, c'est-à-dire qu’il permet à

plusieurs ordinateurs de communiquer via un réseau, de partager simplement des objets comme des fichiers le plus souvent, mais également des flux multimédia continus (streaming) ou des services Internet afin de se mettre a jour.

4. Version D : similaire à la version précédente.

5. Version E : il tente d'installer le spam bot Waledac. Il récolte, entre autres, des adresses électroniques et installe le scareware Spy-Protect 2009. il s’agit d’un faux anti-spywares qui fait penser à la victime qu’elle est massivement infectée dans le but de récolter de l’argent.

Mode de destruction : Si un ordinateur est infecté, il faut télécharger, à partir d'un ordinateur non infecté,

un outil spécial de suppression de Conficker. Cet outil est disponible à l'adresse :

http://www.symantec.com/security_response/writeup.jsp?docid=2010-011316-0247-99 par

exemple.

Cependant, le plus important pour se protéger est :

Ne pas cliquer sur des offres d’analyses gratuites apparentes sur des fenêtres de pub.

En téléchargeant régulièrement les derniers correctifs disponibles via un logiciel

d’antivirus fiable.

En changeant de mot de passe régulièrement

En utilisant des mots de passe complexes : pas de noms ou de mots simples, utilisez

des caractères spéciaux et des chiffres, différent pour chaque site et long de

préférence.

Nous avons décidé de modéliser la propagation du ver Conficker au sein du parc

informatique de 30 ordinateurs d’une entreprise de publicité.

3 Mini Projet Calcul Scientifique

Sommaire

Introduction : ...................................................................................... 1

I. Modélisation .................................................................................... 4

a) Hypothèse du modèle ............................................................... 4

b) Modèle initial ............................................................................ 4

c) Modèle final .............................................................................. 5

II. Simulation ...................................................................................... 8

a) Comment fonctionne la simulation ? ........................................ 8

b) Résultats et explications de la simulation avec Excel ................ 8

c) Avec Simulink .......................................................................... 12

III. Les limites de notre modèle ......................................................... 14

Conclusions ....................................................................................... 16

Sources .............................................................................................. 17

4 Mini Projet Calcul Scientifique

I. Modélisation

a) Hypothèse du modèle

Les hypothèses de modélisation sont :

Une seule entreprise en jeu avec son propre parc informatique de N ordinateurs

Un unique réseau au sein de l’entreprise.

Les ordinateurs sont connectés entre eux et disposent tous d’une connexion à

internet.

Les ordinateurs ont tous les mêmes droits d’administration.

Un ordinateur infecté par Conficker tente d’infecté les autres ordinateurs du réseau

informatique avec une certaine probabilité.

Il y a un unique vecteur d’infection.

Le virus Conficker n’est pas détecté par l’anti-virus de l’entreprise.

Certain ordinateurs obtiennent un correctif de sécurité au bout d’un certain nombre

de heures.

Seul le correctif de sécurité permet d’éradiquer le virus d’un ordinateur.

Le correctif ne permet de vacciner qu’un seul ordinateur à la fois.

Un ordinateur vacciné à l’aide du correctif de sécurité ne peut être réinfecté par

Conficker.

Le temps est exprimé en heures.

On suppose qu’il n’y a pas d’évolution du virus Conficker.

b) Modèle initial

On veut modéliser la quantité d’ordinateurs infectés au cours du temps au sein du

parc informatique d’une entreprise de publicité.

S(t)

Ordinateurs

Infectés

I(t)

Ordinateurs

Vaccinés Clefs USBs

infectées

Ordinateurs

infectés

5 Mini Projet Calcul Scientifique

Vecteur d’infection du virus Conficker :

Infection par la connexion d’un ordinateur infecté aux autres ordinateurs de

l’entreprise sain

Infection via l’insertion d’une clé USB infecté sur un ordinateur sain

Constante du modèle choisi :

Proportion d’une clé USB soit infectée : a

Proportion d’une clé USB soit infectée par un ordi infecté : b

Proportion qu’un correctif de sécurité soit mis en place : c (en fonction du temps)

Equation du modèle :

Pour modéliser ce modèle simple, nous avons considéré que I(t=0)=0 et que le

nombre d’ordinateur infecté en fonction du temps I(t) est au temps t+h :

Le nombre d’ordinateur infecté en t : I(t)

+

Le nombre probable d’ordinateurs infectés à partir d’un ordinateur et/ou d’une clef USB :

h*a* (b*I(t)) *I(t) – h*(1-I(t))

_

Le nombre d’ordinateurs affectés par le correctif de sécurité

t*h*c*I(t)

On obtient alors :

I(t+h) =I(t) + h*a* b*I²(t) – h*(1-I(t)) – t*h*c*I(t)

qui donne le nombre d’ordinateurs au temps t+h

c) Modèle final

Pour affiner notre recherche quand à l’évolution de la propagation du vers Conficker

dans réseau entreprise on prend en compte les trois compartiments suivants :

S(t)

ordinateurs

Sains

I(t)

ordinateurs

Infectés

V(t)

ordinateurs

Vaccinés

6 Mini Projet Calcul Scientifique

Vecteur d’infection du virus Conficker

Dans ce modèle, l’unique vecteur d’infection utilisé par Conficker est la connexion

d’un ordinateur à un réseau d’entreprise comportant d’autres ordinateurs non infectés. Le

virus tente de se connecter à un autre ordinateur avec une probabilité « a » afin de

télécharger sur celui-ci une réplique de lui-même. Cette infection du poste de travail est

totalement transparente pour un utilisateur lambda cependant elle est visible d’un

administrateur réseau.

Un correctif de sécurité déployé par Microsoft peut être mis sur les ordinateurs

infectés afin d’éradiquer le virus Conficker. Ce correctif est mis en place sur les postes de

travail de l’entreprise avec une probabilité « b ». Une fois le correctif mis en place, le virus

Conficker ne peut plus infecter ce poste.

Constantes du modèle choisi :

Coefficient « a » : il définit le taux d’ordinateur infectés chaque heure par le virus

Conficker. Ce coefficient ne dépend pas du temps. Nous avons fixé que 7 ordinateurs

sur 10 sont infectés par heures.

Coefficient « b » : il définit le taux d’ordinateur vaccinés chaque heures par le

correctif de sécurité de Microsoft. Ce coefficient dépend du temps, en effet le

correctif n’étant pas directement disponible dès le début de l’infection du réseau de

l’entreprise, il est légitime qu’il soit dépendant du temps. Ainsi nous avons fixé que 1

ordinateur sur 1000 était vacciné au temps t = 1 h.

Equation du modèle :

Pour améliorer notre modélisation, on utilise un nouveau compartiment pour obtenir

les trois équations suivantes :

Avec S(t), le nombre d’ordinateur sain au temps t et S(t=0) = N le nombre

d’ordinateurs initial dans l’entreprise sachant que S(t) dépend du nombre

d’ordinateurs infectés on a :

S(t+h)= S(t) - a*h*S(t)

Le nombre d’ordinateurs sains dans l’entreprise au temps t+h est égal au nombre d’ordinateurs sains au temps t soustrait au nombre probable d’ordinateurs infectés au temps t+h (i.e. a*h*S(t))

7 Mini Projet Calcul Scientifique

Avec I(t), le nombre d’ordinateurs infectés au temps t, et I(t=0)=0, et sachant que I(t) dépend du nombre d’ordinateurs sains et du nombre d’ordinateurs infectés au temps t, on a :

I(t+h)= I(t)+a*h*S(t)

Le nombre d’ordinateurs infectés dans l’entreprise au temps t+h est égal au

nombre d’ordinateurs infectés au temps t ajouté au nombre probable d’ordinateurs

infectés au temps t+h (i.e. a*h*S(t))

Avec V(t), le nombre d’ordinateurs vaccinés au temps t et sachant que V(t) dépend

du nombre d’ordinateurs sains et du nombre d’ordinateurs infectés au temps t+h et

du nombre d’ordinateurs vaccinés au temps t on a :

V(t+h) = V(t)+h*b*t*I(t)+h*b*t*S(t)

Le nombre d’ordinateurs vaccinés au temps t+h dans l’entreprise est le

nombre d’ordinateurs vaccinés au temps t ajouté au nombre probable d’ordinateurs

infectés au temps t qui seront vaccinés au temps t+h (i.e. h*b*t*I(t)), ainsi qu’au

nombre probable d’ordinateurs sains au temps t et qui seront vaccinés au temps t+h

(i.e. h*b*t*S(t)).

8 Mini Projet Calcul Scientifique

II. Simulation

a) Comment fonctionne la simulation ?

Nous avons, dans un premier temps, simulé notre modèle avec le logiciel Excel. Pour

réaliser la simulation, nous devons calculer les valeurs correspondantes aux fonctions

trouvées :

S(t) avec S(t+h) = S(t) –h*a*S(t)

I(t) avec I(t+h) = I(t) + h*a*S(t)

V(t) avec V(t+h) = V(t) + h*b*t*I(t) + h*b*t*S(t) Il nous suffit de rentrer des valeurs de t (dans notre cas de 0 à 300) puis de sélectionner la valeur du pas h et des constantes a et b vues lors de la modélisation. Ces valeurs ainsi données, nous pouvons entrer les équations que l’ordinateur nous

calculera. Nous obtenons les valeurs de S, I et V pour t allant de 0 à 300.

Les courbes tracées nous permettent de visualiser le phénomène et de vérifier sa

conformité par rapport à nos attentes.

b) Résultats et explications de la simulation avec Excel

Nous avons modélisé le système en prenant différentes valeurs de h, a et b.

Les courbes et résultats que nous allons analyser sont obtenus pour les valeurs

suivantes :

h 0,05

internet a 0,7

pc vacciné b 0,001

9 Mini Projet Calcul Scientifique

Courbe représentative de l’évolution du nombre d’ordinateurs sains au cours du temps :

Comme nous avons pris une quantité fixée d’ordinateurs sains, lorsque le virus va

commencer son infection, la proportion de PC sains va diminuer. La formule de la dérivée de

la fonction S(t) nous permet de prévoir que la courbe sera une exponentielle négative. La

quantité d’ordinateurs sains va donc diminuer de manière très rapide pour tendre vers la

valeur 0 en partant de la valeur 30 en ordonnée comme étant la quantité de PC initiale.

Courbe représentative de l’évolution du nombre d’ordinateurs infectés au cours du temps :

De même que pour la fonction S(t), nous pouvons prévoir que cette courbe sera une

exponentielle positive mais cette fois qui débutera à la valeur 0 en ordonnée. En effet lors

d’une infection, la quantité de malade augmente très rapidement. La quantité d’infectée va

donc tendre vers la valeur maximale de 30.

10 Mini Projet Calcul Scientifique

Courbe représentative du nombre d’ordinateurs vaccinés au cours du temps :

La quantité de PC vacciné doit, bien sûr, avec notre modélisation augmenter au cours

du temps. Dans notre cas, la faible proportion de patch de sécurité permettant au PC d’être

vacciné nous permet d’évaluer la faible pente de la courbe.

Courbe représentative de l’évolution de l’état des ordinateurs au cours du temps :

La courbe obtenue simule notre modèle et l’évolution de la quantité de PC infectés

au cours du temps. La quantité d’infectés augmente très rapidement puis cette progression

diminue pour basculer vers une pente négative. Sans vaccin, l’infection augmente

rapidement, puis l’arrivée progressive des patchs de sécurité fait tendre cette courbe jusqu’à

la valeur de 23 à 24 environ. Les patchs s’installant progressivement sur les ordinateurs, la

quantité de PC infectés diminue jusqu’à atteindre 0.

11 Mini Projet Calcul Scientifique

Ce qui revient à :

Nous pouvons ainsi observer que la quantité de PC infectée ne dépasse pas 25 sur le

parc de 30 machines. La courbe située sous le 0 en ordonnée n’est pas utile car nous voulons

connaître le nombre de heures (t : nombre de heures) à partir duquel tous les PC sont

vaccinés. A t = 200 heures, les PC sont tous vaccinés, l’infection a été stoppée.

Nous pouvons aussi visualiser toutes les courbes sur un même schéma :

On observe bien les deux fonctions exponentielles qui sont « opposées ». De même,

L’écart entre la courbe de I(t) (rouge) et celle de V(t) (verte) correspond à la courbe V(t)-I(t).

Comme la courbe verte continue à augmenter alors que I(t) tend vers une valeur fixe de 30,

12 Mini Projet Calcul Scientifique

la courbe qui caractérise V(t)-I(t) dépasse le 0 en ordonnée et continue à descendre jusqu’à

une valeur de -35.

c) Avec Simulink

Pour programmer avec Simulink, nous devons utiliser les dérivées des fonctions

trouvées dans le modèle :

S’(t) = - a*S(t) (en bleu)

Nous créons donc la constante a qui sera multipliée par S(t) (valeur qui sort de

l’intégrateur). Cette multiplication faite correspond à l’entrée de l’intégrateur

puisque la fonction différentielle est ici « une boucle ». Toute fonction

différentielle doit posséder un intégrateur. Nous avons défini le paramètre

initial de l’intégrateur sur 30 (pour le nombre de PC sains à t=0).

I’(t) = a*S(t) (en rouge)

On utilise ensuite le résultat précèdent (S(t)) pour programmer la fonction

différentielle I’(t). Pour cela, nous utilisons une constante a que nous

multiplions par la fonction précédente. Un intégrateur vient cloturer cela.

Nous avons défini le paramètre initial de l’intégrateur sur 0 (pour le nombre

de PC infectés à t=0).

13 Mini Projet Calcul Scientifique

V’(t) = t*b*I(t) +t*b*S(t)

Nous utilisons ici les résultats obtenus auparavant (I(t) et S(t)) afin de

programmer cette fonction. Le fonctionnement est similaire pour t*b*S(t) et

t*b*I(t). Nous multiplions le résultat précédent par un « clock » qui

correspond au « t » puis par la constante b. La fonction différentielle étant la

somme de t*b*I(t) et t*b*S(t), nous ajoutons l’outil « somme ». L’intégrateur

final permet d’obtenir la valeur de la fonction. Nous avons défini le paramètre

initial de l’intégrateur sur 0 (pour le nombre de PC vaccinés à t=0).

V(t) - I(t) (en vert)

Pour obtenir une visualisation de la courbe qui caractérise notre modèle,

nous devons visualiser V(t) – I(t). Nous avons donc multiplié I(t) par la

constante -1, ce qui donne – I(t). On somme ensuite avec V(t) pour obtenir sur

le scope lorsque l’on simule la courbe suivante qui correspond bien à ce que

nous avons obtenu avec Excel.

Nous avons dans Mapple définit la valeur des constantes a et b avec a = 0.7 et

b = 0.005.

14 Mini Projet Calcul Scientifique

III. Les limites de notre modèle

Notre modélisation de l’expansion du virus Conficker au sein du réseau informatique

d’une entreprise lambda ne peut pas être prise comme modèle de référence car il manque

de nombreux éléments pour que ce modèle soit considéré comme complet.

En effet, pour rendre la modélisation de ce virus possible dans le court laps de temps

que nous avions et dans la mesure de nos capacités, nous avons été contraints de ne pas

tenir compte de certains paramètres/facteurs. Ces facteurs sont aussi bien internes à

l’entreprise qu’externes.

Le principal facteur externe que nous n’avons pas pris en compte dans notre

modélisation est le fait qu’un virus informatique est en permanente évolution. Il ne cesse de

se modifier au cours du temps. De ce fait, un unique correctif ne peut éradiquer ce virus

qu’à moyen terme du réseau de l’entreprise. Le virus ayant été modifié, il ne disparaît pas

totalement du réseau. Or, dans notre modèle, nous prenons comme hypothèse que le virus

n’évolue pas au cours du temps, et donc, qu’un correctif de sécurité mis en place au temps t

permet de vacciné définitivement le poste de travail contre le virus Conficker.

Nous n’avons donc pas tenu compte de l’évolution du virus mais nous n’avons

également pas tenu compte des différents moyens que le virus a pour se propager. Dans

notre modèle, nous avons établis le fait que le virus ne pouvait se répandre qu’à travers le

réseau interne de l’entreprise. Or, il peut également se transmettre, par le biais d’une

connexion au réseau de l’entreprise par un ordinateur externe mais infecté par le virus, ou

bien, par clé USB. En effet, si un ordinateur externe, mais infecté par le virus, se connecte au

réseau de l’entreprise, cela augmentera de façon considérable la probabilité qu’un

ordinateur sain de l’entreprise soit infecté. Quand à l’insertion d’une clé USB, si l’ordinateur,

sur lequel elle est insérée, est infecté, elle le sera aussi ; et si elle est infectée, l’ordinateur

sur lequel elle sera branchée le sera aussi. Ce qui implique une propagation exponentielle du

virus.

Pour finaliser notre modélisation, nous avons également dû négliger quelques

facteurs internes tels que le fait que le virus ne soit pas détecté par l’Anti-virus de

l’entreprise. Dans le cas inverse, une mise à jour régulière du logiciel Anti-virus permettrait

de ralentir la propagation du virus Conficker au sein du réseau interne de l’entreprise.

Tandis que dans notre modèle, le virus Conficker est considéré comme un faux négatif.

Autre facteur interne dont notre modèle ne tient pas compte est l’inégalité des droits

d’administration pour chaque ordinateur au sein de l’entreprise .En effet, certains

ordinateur tels que les postes serveur ou les postes d’administration ont des privilèges plus

important que les postes utilisateurs, et ils influent donc directement sur le nombre

d’ordinateurs pouvant être potentiellement infectés au temps t.

15 Mini Projet Calcul Scientifique

Mais les droits d’administration pour chaque ordinateur n’est pas la seule inégalité

dont notre modèle ne tient pas compte, il y a également l’inégalité de taille de chaque

entreprise. Dans une entreprise de taille importante, la mise en place d’un correctif de

sécurité sur l’ensemble des postes est une tache relativement délicate. Ainsi ce modèle ne

peut s’appliquer aux entreprises de grande taille sans en changer les modalités de

vaccination des postes.

Au final, le modèle que nous avons réalisé s’applique uniquement au réseau interne

de l’entreprise étudié. Il n’est pas représentatif des modalités d’extension de celui-ci a

travers le monde. En effet aujourd’hui les entreprises sont de plus en plus tournées vers

l’extérieur grâce à des systèmes de communications de plus en plus perfectionnés. Un

modèle intégrant celles-ci permettrait d’avoir une vision d’ensemble de la propagation du

virus Conficker à l’échelle mondiale.

16 Mini Projet Calcul Scientifique

Conclusions

A travers ce mini-projet, nous avons voulu modéliser l’épidémie d’un virus

informatique (dans le cas présent il s’agit du virus Conficker) au sein du réseau interne d’une

entreprise lambda. Nous avons choisi ce sujet du virus informatique car ils nous semblaient

intéressant d’étudier ce type d’épidémie qui se différencie par de nombreux domaines, et

notamment par ses moyens de propagation. Cela nous promettait donc de réaliser une

modélisation riche en paramètres.

Seulement, nous avons vite découvert que de modéliser une épidémie informatique

par nos propres moyens n’était pas si évident. Nous avons réalisé notre modèle initiale très

rapidement, mais la vrai difficulté c’est trouver dans la finition de notre modèle. En

effectuant ce mini-projet, nous avons ouvert les yeux sur la complexité de la modélisation.

Au commencement, nous avions d’innombrables idées de paramètres à ajouter mais qui se

sont finalement révélés trop compliquées à modéliser dans l’équation finale. Ces idées

apparaissent donc comme les limites de notre modèle.

Nous nous sommes donc limités à une modélisation de l’épidémie avec trois

compartiments : les ordinateurs sains, les ordinateurs infectés et les ordinateurs vaccinés.

Cette modélisation représente bien l’épidémie informatique au sein d’une société. Elle

comporte néanmoins certaines limites. En effet, afin de mener à bien notre projet dans les

temps nous avons été dans l’obligation de négliger certains facteurs internes et externes à

l’entreprise traitée.

Finalement, nous garderons un bon souvenir de ce travail de groupe qui nous a non

seulement permis de réaliser notre première modélisation et donc d’en découvrir

d’avantages sur le domaine du calcul scientifique. Mais également sur le plan personnel avec

tous les avantages et les inconvénients qu’il y a de travailler en groupe. A nos yeux, ce mini-

projet restera une expérience positive.

17 Mini Projet Calcul Scientifique

Sources

Pour l’introduction :

http://www.symantec.com/fr/fr/norton/theme.jsp?themeid=conficker_worm

http://www.futura-sciences.com/fr/definition/t/informatique-3/d/ver-

informatique_2435/

http://fr.wikipedia.org/wiki/Ver_informatique

http://fr.wikipedia.org/wiki/Conficker

http://www.zataz.com/news/18583/Conficker--Downadup--Downad--Kido.html

http://fr.wikipedia.org/wiki/P2P

http://forum.malekal.com/est-que-les-rogues-scareware-t589.html