Modélisation du virus informatique Conficker

Transcription

Modélisation du virus informatique Conficker
Mini Projet
Calcul Scientifique
Modélisation
du virus informatique
Conficker
Worm
Defender
Engineering
Bellot Guillaume
Cornil Yoann
Courty Arnaud
Goldenbaum David
Pascal Louis
ESILV S4
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,
1
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 antispywares 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é.
2
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
3
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
Ordinateurs
infectés
Clefs USBs
infectées
S(t)
Ordinateurs
Infectés
I(t)
Ordinateurs
Vaccinés
On veut modéliser la quantité d’ordinateurs infectés au cours du temps au sein du
parc informatique d’une entreprise de publicité.
4
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
5
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))
6
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)).
7
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
8
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.
9
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.
10
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,
11
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).
12
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.
13
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.
14
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.
15
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 miniprojet restera une expérience positive.
16
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/verinformatique_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
17
Mini Projet Calcul Scientifique