Vous êtes sur la page 1sur 58

REPUBLIQUE DEMOCRATIQUE DE LA COTE

D’IVOIRE

Union-Discipline-Travail

Ministère de la Communication, de l’Economie Année Scolaire : 2019-2020


Numérique et de la Poste

Ecole Supérieure Africaine Des Technologies


de l’Information et de la Communication

Projet interne de Master en


Sécurité Informatique et Technologie du Web
(SITW)

ETUDE DE LA MISE EN PLACE D’UN


ANTI-VIRUS INTELLIGENT
Présenté par :

COULIBALY Mohamed T. Nanguin

DIOMANDE Tiéoulé Junior

TRAORE Zela Tahiré

Encadreur : Co-Encadreur :

Pr. ASSEU Olivier, Dr. COULIBALY Tiékoura,

Enseignant-Chercheur à Enseignant-Chercheur à
l’INPHB l’ESATIC
Etude de la mise en place d’un antivirus intelligent

DEDICACE

Nous dédions ce mémoire à nos parents respectifs.

II

-
Etude de la mise en place d’un antivirus intelligent

REMERCIEMENTS

Nous tenons à remercier à travers ces quelques lignes les nombreuses personnes
qui ont contribué à la réalisation de ce projet. Nous nous excusons par avance auprès
de ceux que nous oublierons de citer ou que nous ne pourrons évoquer explicitement
dans ce paragraphe, et nous leur réaffirmons par ailleurs notre reconnaissance.

Nous remercions en premier lieu Pr. KONATE Adama, Directeur Général de


l’ESATIC, pour nous avoir permis, nous étudiants de l’ESATIC, de bénéficier des
ressources nécessaires, des commodités requises pour notre formation et notre
insertion dans le monde professionnel.

Nous voudrons remercier Pr. Asseu Olivier, Enseigneur-chercheur à l’INP-HB


et Directeur de DRIT (Direction de la Recherche et de l’innovation Technologique),
notre encadrant académique qui nous a assisté tout le long du projet.

Grand merci également aux Dr. Coulibaly Tiékoura et Dr Kanga Koffi, tous deux
Enseignant-chercheurs à l’ESATIC pour les différentes orientations qui nous ont été
données pour le bon déroulement du projet.

Enfin, nous remercions l’ensemble des membres de l’équipe de la Direction de


la Pédagogie (DP) pour leur bonne collaboration à notre égard vis-à-vis du projet.

III

-
Etude de la mise en place d’un antivirus intelligent

AVANT-PROPOS

L’émergence de la Côte d’Ivoire à l’horizon 2020 nécessite une véritable élite


locale dans le domaine des TIC. C’est dans cette optique que l’école supérieure
africaine des technologies de l’information et de la communication fut créée en 2012.
L’École Supérieure Africaine des Technologies de l’Information et de la
Communication en abrégé ESATIC, est l’une des plus prestigieuses écoles, créée par
l’État de Côte d’Ivoire et a pour mission d’assurer la formation de cadres dans le
domaine des TIC. La formation qui s’étend sur une durée maximale de cinq ans couvre
les domaines suivants : Réseaux de Télécommunications, Développement
d’application, Sécurité informatique, Infographie.

Au cours de la deuxième année de Master, afin d’allier pratique à toute la théorie


acquise et de mieux appréhender les réalités de la vie professionnelle tout en répondant
aux besoins de l’entreprise, l’ESATIC attribue des projets à ses étudiants en fin de
cycle dans le cadre de leur Projet Interne. Ces projets visent à préparer les étudiants à
la réalisation de leurs Projets de Fin d’Etude (PFE). C’est dans ce cadre que nous avons
effectué nos recherches suivant le thème : Etude de la mise en place d’un antivirus
intelligent.

IV

-
Etude de la mise en place d’un antivirus intelligent

LISTE DES FIGURES

Figure 1: Liste des solutions antivirus classiques ................................................................................. 7


Figure 2: Exemple d’un arbre de décision pour l’accord d’un prêt bancaire ..................................... 19
Figure 3: réseau de neurones .............................................................................................................. 23
Figure 4 : modèle de fonctionnement de l'antivirus............................................................................. 26
Figure 5: Algorithme de clustering (K-means) .................................................................................... 29
Figure 6: Jupyter ................................................................................................................................. 35
Figure 7: préparation du jeu de données ............................................................................................ 36
Figure 8: Partitionnement des données ............................................................................................... 37
Figure 9: Test post entraînement ......................................................................................................... 37
Figure 10: récapitulatif classification : vrai ou faux et positif ou négatif ........................................... 38
Figure 11: Interface de soumission du fichier ..................................................................................... 39
Figure 12: interface du lancement la prédiction du fichier ................................................................. 39
Figure 13: Interface du résultat de la prédiction pour fichier sain ..................................................... 40
Figure 14: Interface du résultat de la prédiction pour fichier malveillant .......................................... 40

-
Etude de la mise en place d’un antivirus intelligent

LISTE DES TABLEAUX

Tableau 1: Points forts des solutions antivirus ...................................................................................... 9


Tableau 2: Points faibles des solutions antivirus ................................................................................ 11
Tableau 3: Comparaison des deux types d’apprentissages en Intelligence Artificielle ....................... 17
Tableau 4: Avantages et inconvénients de l'arbre de décision ............................................................ 19
Tableau 5: Avantages et inconvénients de la méthode régression logistique ...................................... 22
Tableau 6: Avantages et inconvénients pour la méthode Naïves bayes ............................................... 23
Tableau 7: Avantages et inconvénients de la méthode Clustering ....................................................... 24
Tableau 8: Tableau comparatif des méthodes ..................................................................................... 27

VI

-
Etude de la mise en place d’un antivirus intelligent

LISTE DES SIGLES ET ABRÉVIATIONS

ESATIC : Ecole Supérieure Africaine Des TIC


FTP : File Transfert Protocol
IA : Intelligence Artificielle
PE : Portable Executable
TIC : Télécommunication Informatique et Communication

VII

-
Etude de la mise en place d’un antivirus intelligent

SOMMAIRE

INTRODUCTION

PREMIÈRE PARTIE : GENERALITES

Chapitre 1 : Présentation du cadre du projet

I) Brève présentation de l’ESATIC

II) Contexte du Projet Interne

III) Choix et orientation du sujet

Chapitre 2 : Etude de l’existant

I) Présentation de l’existant

II) Critique de l’existant

III) Proposition de solution

Chapitre 3 : Présentation du cahier de charges

I) Objectifs attendus

II) Fonctionnalités

III) Résultats

DEUXIÈME PARTIE : ETUDE TECHNIQUE

Chapitre 4 : Etude des méthodes d'Intelligence Artificielle

I) Généralité sur l’intelligence artificielle

II) Quelques types d’algorithmes d’intelligence artificielles en vogue

Chapitre 5 : Choix de la méthode d’intelligence artificielle et modèle de


fonctionnement de la solution

VIII

-
Etude de la mise en place d’un antivirus intelligent

I) Modèle de fonctionnement

II) Etude comparative des méthodes

III) Choix de la méthode appropriée à l’étude

Chapitre 6 : conception de la solution

I) Présentation du modèle mathématique

II) Présentation du modèle de données

TROISIÈME PARTIE : RÉSULTATS ET DISCUSSIONS

Chapitre 7 : Présentation des outils utilisés et environnement de


développement

I) Environnement de développement

II) Outils utilisés

Chapitre 8 : Résultats et discussions

I) Entraînement de l’algorithme

II) Test de l’algorithme en mode production

III) Discussions

Chapitre 9 : Contraintes et difficultés rencontrées

I) Contraintes

II) Difficultés

CONCLUSION

IX

-
Etude de la mise en place d’un antivirus intelligent

INTRODUCTION

Les antivirus sont des logiciels conçus pour identifier, neutraliser et éliminer
des logiciels malveillants. Ces derniers peuvent se baser sur l'exploitation de failles de
sécurité, mais il peut également s'agir de logiciels modifiants ou supprimant
des fichiers, que ce soit des documents de l'utilisateur stockés sur l'ordinateur infecté,
ou des fichiers nécessaires au bon fonctionnement de l'ordinateur. Pour trouver un
malware, l’antivirus doit être capable de détecter un fichier malveillant parmi les sains.
Pour cela, on combine plusieurs types de détections dont certaines sont basiques et
d’autres plus avancées.

Parmi les types de détections basiques, on distingue : les détections par signatures qui
se basent sur un morceau de code spécifique à un malware, ainsi lorsqu’un fichier
comporte ce morceau de code, il est considéré comme étant malveillant. Les détections
heuristiques et génériques quant à eux se basent sur des portions de code plus général
qui visent à générer des détections plus larges afin de détecter de manière plus courante
les malwares. Enfin, la détection comportementale consiste à exécuter le fichier dans
un environnement fermé et contrôlé par l’antivirus comme un bac à sables,
cela afin de tester le fichier et vérifier son comportement d’un programme malicieux.

Cependant, depuis plusieurs années, les éditeurs d’antivirus doivent faire face à une
monté en puissance des malwares. Chaque année, des millions de fichiers malveillants
inondent internet et les ordinateurs. Cela pose des problèmes du côté du client antivirus
dont la base de données gonfle. Aussi, ces antivirus classiques se limitent à analyser
le code statique des programmes malveillants et donc peuvent facilement se faire
tromper par un malware qui se transforme pour changer sa signature.

Enfin il faut donc pouvoir suivre, analyser, classer ces millions de fichiers
malveillants. Pour répondre à cela, une technologie a vu le jour : Le Machine
Learning. Cette technologie va utiliser des mécanismes de reconnaissances et
classements effectués par des programmes ou intelligence artificielle (IA) pour
permettre de classer le fichier comme sain ou malveillant. Dans l’optique de mieux
appréhender la question d’utiliser le Machine Learning dans la détection de fichiers

-
Etude de la mise en place d’un antivirus intelligent

malveillants, nous avons opté pour le thème : « Etude de la mise en place d’un
antivirus intelligent ». Autrement dit, il s’agira d’étudier la mise en place d’un
antivirus en se basant sur les techniques et méthodes de l’IA afin de mieux cerner le
fonctionnement de l'intelligence artificielle dans le domaine de la cybersécurité.

Pour mener à bien notre étude, plusieurs problématiques surgissent :

- Quel est l’avantage de mettre en place un antivirus intelligent ?


- Quelle étude pourrait mener à la mise en place de ce type antivirus ?
- Quels résultats pourraient découler d'une telle étude ?

Pour atteindre les objectifs fixés, nous avons porté réflexion sur les études relatives au
projet et subdivisé notre travail en trois grandes parties. Premièrement, nous
aborderons la généralité sur le projet. Cette partie fera l'objet de présenter le projet
dans son contexte général et spécifique afin de mieux le cerner. Après quoi, il sera
nécessaire de présenter notre cahier de charges qui sera le fil conducteur à la réalisation
de notre travail. Ensuite, nous présenterons une étude technique du projet qui vise à
faire une étude comparative des différentes méthodes d'IA afin de choisir la méthode
la mieux adaptée à la mise en place d'un antivirus intelligent. Cette partie va nous
permettre d'aboutir à la conception de notre solution. Enfin dans la troisième partie
Résultats et Discussions, il sera question de présenter les résultats issus de notre étude
et mener une discussion qui fera ressortir les points forts et les points faibles de notre
solution. Nous terminerons cette partie par la présentation des contraintes et difficultés
rencontrées lors de la mise en place du projet.

-
Etude de la mise en place d’un antivirus intelligent

PREMIERE PARTIE : GÉNÉRALITÉS

-
Etude de la mise en place d’un antivirus intelligent

Dans cette partie, nous présenterons le cadre du projet en justifiant notre choix pour ce
thème. Après la présentation du cadre du projet, nous ferons une étude de l’existant
qui nous aidera à prendre en compte les limites des solutions antivirus classiques afin
de les corriger avec une solution qui utilise les techniques et méthodes de l’IA. Enfin,
la présentation de notre cahier de charges nous servira de fil conducteur.

CHAPITRE 1 : Présentation du cadre du projet

I- Présentation de l’ESATIC

Créée par le décret n° 2012-20 du 18 Janvier 2012, l'Ecole Supérieure Africaine des
Technologies de l'Information et de la Communication, en abrégé ESATIC est un
établissement Public d'enseignement supérieur qui forme des cadres dans le secteur
des TIC. Elle est également chargée de faire de la recherche et du développement.

La création de l’ESATIC répond à la vision du Président de la République de faire du


secteur des TIC l'un des principaux leviers du développement économique et social de
notre pays. Au regard du taux de pénétration des TIC qui reste faible dans notre pays
et particulièrement dans nos administrations et services, l'ouverture de l’ESATIC
favorise la vulgarisation des TIC.

II- Contexte du projet interne

L’ESATIC, dans son fonctionnement pédagogique, permet aux étudiants en fin de


cycle de travailler sur des projets dénommés « Projet Interne ». Ces projets, qui sont
imposés aux étudiants en fin de cycle de licence et choisis par les étudiants en fin de
cycle de Master permettent à ces étudiants de se préparer à la réalisation du projet de
fin d’étude. Pour ce faire, les projets internes répondent à un besoin réel d’entreprise
et permettent aux étudiants de mettre en pratique leurs acquis théoriques.

-
Etude de la mise en place d’un antivirus intelligent

Pour une bonne réalisation de ces projets, la direction pédagogique de l’ESATIC


octroie à chaque groupe de projet un encadrant académique. Cet encadrant a pour rôle
d’accompagner les étudiants dans leur recherche afin d’aboutir à des résultats concrets.

III- Choix et orientation du projet

Le thème choisi pour le projet interne s’intitule : « Etude de la mise en place d’un
antivirus intelligent ». Ce choix s'est opéré en se basant sur le fait que selon Symantec
72% des vols de données sont causés par des virus de plus en plus sophistiqués et
indétectables. L'objectif recherché derrière le choix de ce thème est d’apporter une
solution optimale à la détection de ces virus en combinant le domaine de la sécurité
informatique et de l’intelligence informatique.

CHAPITRE 2 : Etude de l’existant

I- Présentation de l’existant

L’étude de l’existant consiste à mettre en évidence les éléments suivants : le


recueillement d’informations à propos des antivirus connus qui existent. Nous
recueillons ces informations grâce à des recherches sur Internet. Ensuite, nous ferons
une analyse de ces informations puis la synthèse.

1. Recueil d’informations
Cette étape de notre projet s’est réalisée aux moyens de recherches menées sur les
solutions d’antivirus utilisées au sein des entreprises, des études, des données
statistiques et surtout la lecture de quelques articles sur la question. Ainsi, les
informations que nous avons pu recueillir sont les suivantes : les antivirus sont en
réalité des logiciels conçus par des entreprises pour neutraliser et éliminer des logiciels
malveillants (virus informatiques, vers, malwares, etc). Pour rappel, les logiciels
malveillants agissent en se basant sur l’exploitation des failles de sécurité, mais ils
peuvent être des logiciels qui exécutent quelques actions sur l’ordinateur cible sans

-
Etude de la mise en place d’un antivirus intelligent

aucune permission (suppression/modification de données). L’une des caractéristiques


principales de l’antivirus du marché se trouve au niveau de la similarité de son mode
de fonctionnement et la plupart de ces logiciels antivirus porte le nom de leur créateur.
Par ailleurs, notre étude nous a permis de savoir que les solutions d’antivirus peuvent
être classées en deux catégories : les logiciels antivirus libres et les logiciels antivirus
propriétaires. La différence entre ces deux logiciels se trouve au niveau de la
disponibilité des fonctionnalités. En effet, les solutions propriétaires étant parfois
payantes, l’utilisateur a accès à toutes les fonctionnalités tandis qu’il a un accès limité
aux fonctionnalités des versions libres et bénéficie parfois d’une courte durée d’essais
de ces derniers.

Ainsi, d’après les informations recueillies sur Wikipédia sur les logiciels d’antivirus,
nous avons pu recueillir une liste non exhaustive des solutions logiciels d’antivirus
existantes les plus connues à la figure 1.

-
Etude de la mise en place d’un antivirus intelligent

Figure 1: Liste des solutions antivirus classiques

2. Analyse et synthèse de l’ensemble des informations


collectées
Notre recherche d’informations nous a permis d’énumérer les points suivants sur les
solutions existantes :

• Toutes les solutions antivirus ont généralement le même mode de


fonctionnement : ils analysent en temps réel la machine sur laquelle elles sont
installées. En cas de détection d’une menace, celle-ci est mise en quarantaine,
supprimer ou désinfecter ;
• Les logiciels d’antivirus portent généralement le nom de leur réalisateur : par
exemple, l’entreprise Kaspersky qui a donné son nom à sa solution ;

-
Etude de la mise en place d’un antivirus intelligent

• Il existe deux catégories de solutions de logiciels antivirus : propriétaire et


libre ;
• Certaines solutions sont multiplateformes contrairement à d’autres ;
• Toutes les solutions existantes permettent de faire des scans à la demande de
l’utilisateur ;
• La majorité des solutions de logiciels d’antivirus est dotée d’une fonctionnalité
de protection en temps réel ;
• La majorité ne permet pas de faire de scan d’amorçage ;
• Les antivirus du marché ont la particularité de disposer d’une base de données
de signatures de malwares mise à jour tous les jours.

II- Critique de l’existant

La critique de l’existant consiste à mettre en évidence les points forts ainsi que les
points faibles en se basant sur les aspects tels que : la fiabilité, la simplicité
d’utilisation, la protection intégrale, la qualité de la protection.

Kaspersky, l’un des géants de la fabrication de solutions d’antivirus définit les critères
ci-dessus comme suit :

Fiabilité :

Une solution antivirus, aussi performante soit-elle, peut s'avérer inutile en cas de
conflits avec d'autres logiciels présents sur notre ordinateur. Si ces conflits provoquent
un dysfonctionnement ou une suspension temporaire des processus de protection, nous
risquons d'être vulnérable.

Simplicité d'utilisation

Une solution antivirus dont le fonctionnement quotidien requiert des compétences


spécifiques n'est guère pratique pour les utilisateurs. Un produit antivirus, s'il n'est pas
évident à utiliser, pose des questions complexes, demande à l'utilisateur de prendre des
décisions délicates et peut être source d'erreurs. Il arrive même que l'utilisateur
désactive son logiciel antivirus en raison de sa complexité.

-
Etude de la mise en place d’un antivirus intelligent

Protection intégrale

Une solution antivirus doit offrir une protection constante couvrant tous les domaines
informatiques, types de fichiers et éléments réseaux susceptibles d'être attaqués par un
virus informatique ou tout autre programme malveillant. Elle doit pouvoir détecter les
codes malveillants et protéger les canaux ou points d'entrée de l'ordinateur, y compris
la messagerie, Internet, FTP, etc.

Qualité de la protection

Que nous ayons besoin d'une solution de sécurité antivirus pour n’importe quelle
plateforme, une solution antivirus doit être capable de fonctionner dans un
environnement agressif et évolutif, en présence de nouveaux virus informatiques, vers
et chevaux de Troie toujours plus complexes que les précédents programmes
malveillants connus et soucieux de contourner les programmes antivirus.

Ainsi, nous résumons dans les tableaux ci-dessous les points forts (tableau 1) et les
points faibles (tableau 2) des solutions antivirus existantes.

Tableau 1: Points forts des solutions antivirus

Points Forts Critère de sélection pouvant être


affecté

Base de données de signatures Fiabilité, protection intégrale, qualité de


protection

Mise en quarantaine d’une menace Fiabilité, qualité de protection

Facilité d’utilisation Simplicité d’utilisation

-
Etude de la mise en place d’un antivirus intelligent

Multiplateforme Fiabilité, qualité de protection

Scan à la demande l’utilisateur Fiabilité, protection intégrale

Protection en temps réel Fiabilité, protection intégrale, qualité de


protection

Disponibilité de version d’essaie Simplicité d’utilisation

Disponibilité d’une assistance technique Simplicité d’utilisation, fiabilité

Analyse rapide Fiabilité, protection intégrale, qualité de


protection

Demande très peu de ressources pour Simplicité d’utilisation


fonctionner

Constitue un pare-feu et une protection web Fiabilité, protection intégrale, qualité de


protection

10

-
Etude de la mise en place d’un antivirus intelligent

Tableau 2: Points faibles des solutions antivirus

Points Faibles Critère de sélection pouvant être affecté

Lenteur dans l’analyse de vulnérabilité Fiabilité, Simplicité d’utilisation

Détection des éléments inoffensifs : faux Fiabilité, protection intégrale, qualité de


positifs protection

Impossible de détecter les malwares dont la Fiabilité, protection intégrale, qualité de


signature ne figure pas dans la base de protection
données de signatures

Incapacité de supprimer un code Fiabilité, protection intégrale, qualité de


malveillant de façon précise protection

Impossible d’installer deux logiciels Fiabilité, protection intégrale, qualité de


antivirus sur une même machine afin de lui protection, simplicité d’utilisation
donner une double protection

À la vue de cette analyse, nous retenons que les solutions antivirus existantes regorgent
des points forts ainsi que des points faibles. Tous ces points pouvant affecter certains
critères de sélection comme la fiabilité, la protection intégrale, la qualité de protection
et la simplicité d’utilisation.

Notre projet consiste donc à étudier la mise en place d’un système basé sur
l’Intelligence Artificielle afin d’éradiquer au maximum les insuffisances des antivirus.
Car bien que ceux-ci n’étant pas toujours fiables mais constituent un moyen parfois
efficace pour les responsables de sécurité d’entreprise. Donc il y’a bien une nécessité
de trouver une solution à leur problème.

11

-
Etude de la mise en place d’un antivirus intelligent

III- Proposition de solutions


Dans l’optique de pallier les insuffisances des antivirus présentées ci-dessus, les
nouvelles solutions d’antivirus doivent avoir la plupart des fonctionnalités suivantes :

● Proposer un algorithme de classification de fichiers malveillants pour mieux


les analyser ;
● Ils doivent être capable de détecter les menaces spécifiques dans un
environnement réseau très large et exécutant des opérations défensives de leur
propre chef ;
● Ils doivent être capable de faire un diagnostic de sécurité ;
● Ils doivent être capable de fournir un rapport de sécurité ;
● Pare-feu anti intrusion ;
● Protection complète et fiable ;
● Possibilité de programmer les temps d’analyses générales du système ;
● L’antivirus est destiné aux systèmes d’exploitation Windows

Le point le plus important de notre étude est la recherche de solution au problème de


détection des éléments inoffensifs (faux positifs) en optimisant les recherches de
vulnérabilités par l’amélioration de la rapidité de recherche, par une prévision
des futures menaces. Tout ceci sera fait aux moyens de l’Intelligence Artificielle.

CHAPITRE 3 : Présentation du cahier de charges

Les objectifs attendus à la fin de la réalisation de ce projet se situent à deux niveaux :


L’objectif principal et les objectifs spécifiques.

12

-
Etude de la mise en place d’un antivirus intelligent

I- Objectif principal
L’étude de la mise en place d’un antivirus basé sur l’IA doit nous permettre de
découvrir comment l’IA peut être utilisée pour résoudre certains problèmes de la
Cyber-Sécurité.

II- Objectifs spécifiques

Les objectifs spécifiques qui en découlent sont les suivants :

• Comprendre les méthodes et techniques de l’IA appliquée dans la Cyber-


Sécurité ;
• Découvrir le fonctionnement des antivirus afin d’en dégager les forces et les
faiblesses ;
• Capable de construire un antivirus en solutionnant les problèmes des solutions
existantes ;
• Renforcer les capacités dans le domaine de la programmation ;
• Renforcer les capacités d’analyse et de synthèse en sécurité.

III- Fonctionnalités

Après notre étude, l’antivirus qui en découle doit raisonner selon les fonctionnalités
suivantes :

• Il doit être capable de détecter les menaces spécifiques dans un


environnement réseau très large et exécutant des opérations défensives de
leur propre chef ;
• Il doit être capable de faire un diagnostic de sécurité ;
• Il doit être capable de fournir un rapport de sécurité ;
• Pare-feu anti intrusion ;
• Protection complète et fiable ;
• Il doit présenter une interface Web facile à manipuler par l'utilisateur ;
• Mettre en quarantaine les applications douteuses ;
• Possibilité de programmer les temps d’analyses générales du système ;

13

-
Etude de la mise en place d’un antivirus intelligent

• L’antivirus est destiné aux systèmes d’exploitation Windows ;


• Avoir si possible la protection sur la navigation internet.

IV- Résultats

À la sortie de ce travail, nous devrions pouvoir atteindre les résultats suivants :

• Développer un algorithme avec des fonctionnalités de l'IA permettant de


détecter des problèmes et les résoudre automatiquement ;
• Permettre à l'utilisateur d'effectuer un scan de vulnérabilité, d'effectuer un
diagnostic de sécurité, et de générer un rapport de sécurité ;

• Comprendre la mise en place d’un antivirus intelligent aux moyens des


différents outils utilisés.

A la fin de cette partie, nous retenons que nous devons faire l’étude d’une solution
antivirus basée sur l’IA, solution qui devrait corriger les insuffisances des solutions
classiques. Pour ce faire, une étude technique nous permettrait de bien concevoir notre
système.

14

-
Etude de la mise en place d’un antivirus intelligent

DEUXIEME PARTIE : ETUDE TECHNIQUE

15

-
Etude de la mise en place d’un antivirus intelligent

Nous ferons dans cette partie une étude sur les différentes méthodes d’IA et ensuite,
nous présenterons le modèle de fonctionnement de notre solution. À l’issu d’une étude
comparative entre ces différentes méthodes, nous ferons le choix de la méthode qui
sera la mieux adaptée à la modélisation de notre solution.

CHAPITRE 4 : Etude des méthodes d'Intelligence


Artificielle

I- Généralité sur l’intelligence artificielle

1. Historique
La recherche en intelligence artificielle a vraiment commencé après une conférence
tenue sur le campus de Dartmouth College pendant l'été 1956. À la suite de cette
réunion, certains participants se sont investis dans une recherche sur l'intelligence
artificielle. Certains utopistes ont pronostiqué qu'une machine aussi intelligente qu'un
être humain existerait en moins d'une génération et des millions de dollars ont alors
été investis pour vérifier cette prédiction. Les années sont passées, mais les recherches
pour le développement de l’intelligence artificielle n’ont guère cessé de sorte que
l'intelligence artificielle continue d’évoluer et son impact sur la société et les
entreprises s'amplifie. Aujourd’hui, d’une simple phrase, on peut connaître la météo,
programmer une alarme, être averti de ses rendez‐vous avec les trajets pour s’y rendre
et on a des résultats de plus en plus précis au fil du temps… C’est la face émergée de
l’IA. Mais au‐delà de ces usages, pratiques mais un peu anecdotiques, l’intelligence

16

-
Etude de la mise en place d’un antivirus intelligent

artificielle recouvre un vaste domaine et des champs d’application quasi‐infinis en se


basant sur des techniques et méthodes d’apprentissage.

1. Définition
L'intelligence artificielle est l'ensemble des théories et des techniques mises en œuvre
en vue de réaliser des machines capables de simuler l'intelligence humaine. Pour cela
elle se base sur plusieurs techniques algorithmiques qui sont réparties en deux grands
groupes : l'apprentissage supervisé et l'apprentissage non supervisé.

Dans le cas de l’apprentissage supervisé, un chercheur est là pour “guider”


l’algorithme sur la voie de l’apprentissage en lui fournissant des exemples qu’il estime
probants après les avoir préalablement étiquetés des résultats attendus. Par contre, dans
le cas de l’apprentissage non supervisé, l’apprentissage par la machine se fait de façon
totalement autonome. Des données sont alors communiquées à la machine sans lui
fournir les exemples de résultats attendus en sortie.

L’on différencie ces deux types d’apprentissage en se basant sur les critères consignés
dans le tableau (source du tableau : site officiel de waytolearnx) ci-dessous :

Tableau 3: Comparaison des deux types d’apprentissages en Intelligence Artificielle

Chaque type d’apprentissage se base sur des algorithmes pour donner des résultats. Il
convient donc de voir un peu plus en détails les différents algorithmes les plus utilisés
en apprentissage supervisé et non supervisé.

17

-
Etude de la mise en place d’un antivirus intelligent

II- Quelques types d’algorithme de l’intelligence


artificielle en vogue

1. Arbre de décision

Un arbre de décision est un outil d’aide à la décision qui permet de représenter un


ensemble de choix sous la forme graphique d’un arbre. C’est une des méthodes
d’apprentissage supervisé les plus populaires pour les problèmes de classification de
données.

Il modélise une hiérarchie de tests pour prédire un résultat. Il existe deux principaux
types d’arbre de décision :

• Les arbres de régression : ils permettent de prédire une quantité réelle, une
valeur numérique (par exemple, le prix d’une maison ou la durée de séjour d’un
patient dans un hôpital) ;
• Les arbres de classification : ils permettent de prédire à quelle classe la
variable de sortie appartient (cela permet par exemple de répartir une
population d’individus, comme des clients d’une entreprise en différents types
de profils).

Les décisions possibles sont situées aux extrémités des branches (les « feuilles » de
l’arbre) et sont atteintes en fonction de décisions prises à chaque étape. Un arbre de
décision fonctionne en appliquant de manière itérative des règles logiques très simples
(typiquement des séparations de données par « hyperplan », généralisation d’un plan
à plus de 2 dimensions), chaque règle étant choisie en fonction du résultat de la règle
précédente. Les arbres de décision ont pour avantage d’être simple à interpréter, très
rapide à entraîner, d’être non paramétrique, et de nécessiter très peu de prétraitement
des données. Ils peuvent être calculés automatiquement par des algorithmes
d’apprentissage supervisé capables de sélectionner automatiquement les variables
discriminantes au sein de données non-structurées et potentiellement volumineuses.
Ces algorithmes permettent aussi d’extraire des règles logiques qui n’apparaissaient
pas dans les données brutes.

Voici un exemple concret :


18

-
Etude de la mise en place d’un antivirus intelligent

Figure 2: Exemple d’un arbre de décision pour l’accord d’un prêt bancaire

Cet arbre de décision permet en fonction de quelques questions de déterminer si une


banque doit prêter ou pas au client qui demande un prêt. Ce dernier est très simplifié
mais la plupart des banques utilisent des systèmes similaires permettant aux agents une
prise de décision experte.

Cependant, comment arrive-t-on à de telles règles de décisions ? Dans les faits il s’agit
de synthétiser la connaissance et l’historique de l’ensemble des prêts accordés par la
banque et de classer chacun de ces prêts selon qu’ils aient été remboursés sans incident
ou pas. Il s’agit donc de trouver dans une énorme quantité de données les
questions qu’il est judicieux de poser afin de prédire la qualité de l'emprunteur.

Tableau 4: Avantages et inconvénients de l'arbre de décision

Avantages Inconvénients

Modèle white box : le résultat est facile à Sur-apprentissage


conceptualiser, à visualiser et à interpréter

Peu de préparation de données Instables

Le coût d’utilisation des arbres est Parfois les arbres générés ne sont pas
logarithmique équilibrés (ce qui implique que le temps de
parcours n’est plus logarithmique)

19

-
Etude de la mise en place d’un antivirus intelligent

Capables d’utiliser des données catégorielles


et continues

Capables de gérer des problèmes multi-


classes

bon comportement par rapport aux valeurs


extrêmes (outliers)

bonne gestion des données manquantes

Le besoin de répondre à un autre problème, qui n’admet pas de solution par


optimisation algorithmique, a conduit aux approches de type Bagging et « Forêts
aléatoires ».

2. Forets aléatoires

Les forêts aléatoires sont composées (comme le terme "forêt" l'indique) d'un
ensemble d'arbres décisionnels binaires dans lequel a été introduit de l’aléatoire. Ces
arbres se distinguent les uns des autres par le sous-échantillon de données sur lequel
ils sont entraînés. Ces sous-échantillons sont tirés au hasard (d'où le terme "aléatoire")
dans un jeu de données. La technique des forêts aléatoires modifie la méthode du
Bagging appliquée ici aux arbres en ajoutant un critère de décorrélation entre ces
arbres. L’idée de cette méthode est de réduire la corrélation sans trop augmenter la
variance. Le principe consiste à choisir de façon aléatoire un sous-ensemble de
variables qui sera considéré à chaque niveau de choix du meilleur nœud de l’arbre.

Le principal avantage de cet algorithme est qu'il permet d’éviter le danger que
représente le sur-apprentissage pour toute méthode de prédiction basée sur l’induction.
BREIMAN, dans un article apparu en 2001 démontre que lorsque le nombre d’arbres
impliqués dans la forêt de prédiction augmente, le taux d’erreur en généralisation
converge vers une valeur limite, dont une borne supérieure peut être estimée sur une

20

-
Etude de la mise en place d’un antivirus intelligent

base des caractéristiques intrinsèques de la forêt. Il s’agit de la propriété de


convergence des forêts aléatoires.

Les forêts aléatoires ont pour caractéristiques :

● Elles donnent de bons résultats surtout en grande dimension,


● Elles sont très simples à mettre en œuvre,
● Elles ont peu de paramètres.

3. Régression linéaire
La régression linéaire est avant tout un algorithme d’apprentissage supervisé. Il est
utilisé pour estimer les valeurs réelles (coût des maisons, nombre d'appels, ventes
totales, etc.) sur la base de variables continues. Ici, nous établissons une relation
entre les variables indépendantes et dépendantes en adaptant une meilleure ligne.
Cette ligne de meilleur ajustement est appelée ligne de régression et représentée
par une équation linéaire Y = a * X + b. Ces coefficients a et b sont calculés en
minimisant la somme de la différence au carré de la distance entre les points de
données et la ligne de régression.

La régression linéaire est principalement de deux types : la régression linéaire simple


et la régression linéaire multiple. La régression linéaire simple est caractérisée par
une variable indépendante. Et, la régression linéaire multiple (comme son nom
l'indique) est caractérisée par plusieurs variables (plus de 1) indépendantes. Tout en
trouvant la ligne la mieux adaptée, il est possible d’ajuster une régression polynomiale
ou curviligne. Et ceux-ci sont connus sous le nom de régression polynomiale ou
curviligne.

4. La régression logistique
La régression logistique est une technique prédictive. Elle vise à construire un modèle
permettant de prédire les valeurs prises par une variable cible qualitative à partir d’un
ensemble de variables explicatives quantitatives ou qualitatives. Elles offrent plusieurs
variantes en fonction du nombre et de la nature des classes de la variable à expliquer.
La première méthode, appelée régression logistique binaire (binary logistic

21

-
Etude de la mise en place d’un antivirus intelligent

regression), correspond au cas où la variable comporte uniquement deux classes, les


individus étant décrits par la présence ou l'absence d'un caractère donné.

La deuxième méthode, appelée régression logistique polytomique nominale, permet


de traiter les cas où la variable à expliquer possède plus de deux classes si celles-ci ne
peuvent pas être ordonnées ou si on ne souhaite pas tenir compte de l'ordre dans le cas
où elles seraient ordonnées.

Enfin, la troisième méthode, appelée régression polytomique ordinale (polytomous


ordinal regression), concerne les situations où la variable y présente plus de deux
modalités qui peuvent être ordonnées et dont on souhaite tenir compte de l'ordre.

Tableau 5: Avantages et inconvénients de la méthode régression logistique

Avantages Inconvénients

Rapide à entraîner et à prévoir Pas très précis

Bon pour le petit problème de données de Ne peut être utilisé pour les données non
classification linéaires

Facile à comprendre Pas flexibles pour s'adapter au données


complexes

Sur adaptation du modèle

5. Naïves bayes
La classification naïve bayésienne est un algorithme populaire en Machine Learning.
C’est un algorithme du type supervisé et est utilisé pour la classification. Cet
algorithme se base sur le théorème de Bayes. Ce dernier est un classique de la théorie
des probabilités fondé sur les probabilités conditionnelles.

En se basant sur l’exemple de classification des fruits, on remarque plusieurs


avantages pour cet algorithme :

22

-
Etude de la mise en place d’un antivirus intelligent

Tableau 6: Avantages et inconvénients pour la méthode Naïves bayes

Avantages Inconvénients

Très rapide pour la classification : en Suppose l’indépendance des variables


effet, les calculs de probabilités ne sont : C’est une hypothèse forte et qui est
pas très coûteux. violée dans la majorité des cas réels

La classification est possible même


avec un petit jeu de données

6. Le réseau de neurones
Les réseaux de neurones sont inspirés des neurones du système nerveux humains.
Ils permettent de trouver des patterns complexes dans les données. Ces réseaux de
neurones apprennent une tâche spécifique en fonction des données d'entraînement.

Ils se composent de nœuds. Dans ces réseaux, on retrouve trois grandes parties que
sont : la couche d’entrée qui va recevoir les données d’entrées. L’Input Layer va
propager les données par la suite aux couches cachées. Finalement la couche de sortie
qui permet de produire le résultat de classification. Chaque couche du réseau de
neurones est un ensemble d’interconnexions des nœuds d’une couche avec ceux des
autres couches.

Figure 3: réseau de neurones

23

-
Etude de la mise en place d’un antivirus intelligent

7. Le clustering

Le clustering est une méthode de classification non supervisée qui rassemble un


ensemble d’algorithmes d’apprentissage dont le but est de regrouper entre elles des
données non étiquetées présentant des propriétés similaires. Les algorithmes de
clustering dépendent donc fortement de la façon dont on définit cette notion de
similarité, qui est souvent spécifique au domaine d'application.

Les algorithmes de clustering les plus courants sont le K-Means, les algorithmes de
maximisation de l’espérance (de type EM, comme les mixtures gaussiennes) et les
partitions de graphes.

Tableau 7: Avantages et inconvénients de la méthode Clustering

Avantages Inconvénients
Simple et Facile à comprendre Mémoire intensive coûteuse
Adaptable au problème Toutes les données de formation peuvent
être impliquées dans la prise de décision
Précis Ralentissement des performances dû aux
opérations 10
Utilise des arbres spatiaux pour améliorer Choisir une mauvaise mesure de distance
des problèmes d’espace peut produire des résultats inexacts

III- Les facteurs de qualité d’un algorithme de


Machine Learning

Les algorithmes de Machine Learning sont évalués sur la base de leur capacité à
classifier ou prédire de manière correcte à la fois sur les observations qui ont servi à
entraîner le modèle (jeu d’entraînement et test) mais aussi et surtout sur des
observations dont on connaît l’étiquette ou la valeur et qui n’ont pas été utilisées dans
l’élaboration du modèle (jeu de validation).

24

-
Etude de la mise en place d’un antivirus intelligent

Bien classifier sous-entend à la fois placer les observations dans le bon groupe et à la
fois ne pas en placer dans des mauvais groupes.

La métrique choisie peut varier en fonction de l’intention de l’algorithme et de son


usage métier.

Plusieurs facteurs liés aux données peuvent jouer fortement sur la qualité des
algorithmes. En voici les principaux :

• Le nombre d’observations :
- Moins il y a d’observations plus l’analyse est difficile ;
- Mais plus il y en a, plus le besoin de mémoire informatique est élevé et
plus longue est l’analyse.
• Le nombre et qualité des attributs décrivant ces observations ;
• La distance entre deux variables numériques (prix, taille, poids, intensité
lumineuse, intensité de bruit, etc) est facile à établir ;
• Celle entre deux attributs catégoriels (couleur, beauté, utilité…) est plus
délicate ;
• Le pourcentage de données renseignées et manquantes ;
• Le « bruit » : le nombre et la « localisation » des valeurs douteuses (erreurs
potentielles, valeurs aberrantes…) ou naturellement non-conformes au pattern
de distribution générale des « exemples » sur leur espace de distribution
impacteront sur la qualité de l’analyse.

25

-
Etude de la mise en place d’un antivirus intelligent

CHAPITRE 5 : Modèle de fonctionnement de la


solution et choix de la méthode

Artificielle
I- Modèle de fonctionnement

Le modèle de fonctionnement de l’antivirus se présente comme suit :

Figure 4 : modèle de fonctionnement de l'antivirus

En effet, notre solution va consister à prendre un fichier quelconque et à l’envoyer à


un détecteur de fichier qui déterminera le type de fichier qui correspond. Une fois le
type de fichier connu, transférer ce fichier à un analyseur de détection de ce type de
fichier. L’analyseur à son tour va analyser le fichier afin de savoir si le fichier est
malveillant ou pas.

26

-
Etude de la mise en place d’un antivirus intelligent

II- Etude comparative des méthodes

Le choix d’une méthode optimale pour notre problème dépend de ses fonctionnalités
telles que : la vitesse de l’algorithme, la précision des prévisions, la durée de la
formation, la quantité de données nécessaire à la formation, sa facilité de mise en
œuvre, etc. Nous nous basons sur ces critères afin de faire un choix vis-à-vis de notre
problème. Pour ce faire, nous établissons le tableau comparatif des méthodes ci-après:

Tableau 8: Tableau comparatif des méthodes

Arbre de Décision
Résultats interprétables Parfois
Facilité d’explication de la Parfois
méthode
Précision de prédiction moyenne Faible
Vitesse d’entraînement Rapide
Rapidité de prédiction Rapide
Forêts aléatoires
Résultats interprétables Un peu
Facilité d’explication de la Non
méthode
Précision de prédiction moyenne Élevé
Vitesse d’entraînement Non
Rapidité de prédiction Modéré
Régression linéaire
Résultats interprétables Oui
Facilité d’explication de la Oui
méthode
Précision de prédiction moyenne Faible
Vitesse d’entraînement Rapide
Rapidité de prédiction Rapide
Régression logistique
Résultats interprétables Parfois
Facilité d’explication de la Parfois
méthode
Précision de prédiction moyenne Faible
Vitesse d’entraînement Rapide
Rapidité de prédiction Rapide
Naïves Bayes
Résultats interprétables Parfois
Facilité d’explication de la Parfois
méthode
Précision de prédiction moyenne Faible
Vitesse d’entraînement Rapide

27

-
Etude de la mise en place d’un antivirus intelligent

Rapidité de prédiction Rapide


Réseaux de neurones
Résultats interprétables Non
Facilité d’explication de la Non
méthode
Précision de prédiction moyenne Élevé
Vitesse d’entraînement Lent
Rapidité de prédiction Rapide
Clustering (k-means)
Résultats interprétables Oui
Facilité d’explication de la Oui
méthode
Précision de prédiction moyenne Faible
Vitesse d’entraînement Rapide
Rapidité de prédiction Dépend du nombre de classe

III- Choix de la méthode appropriée à l’étude

À l’issu de notre étude comparative et de notre modèle de fonctionnement, il nous


revient de choisir la méthode clustering (k-means) pour l’analyse du contenu de nos
fichiers. Notre choix s’est porté sur la méthode de clustering car elle semble être la
mieux adaptée à la conception de notre antivirus. En effet, la réalisation de l’antivirus
nécessite un maximum de données à traiter, et donc notre choix s’explique par la
rapidité de l’algorithme de clustering à entraîner les données et donner des résultats
facilement interprétables, etc.

CHAPITRE 6 : Conception de la solution

I- Présentation du modèle mathématique

Nous voulons de nos clusters qu'ils soient resserrés sur eux-mêmes. Deux points qui
sont proches doivent appartenir au même cluster et pour cela nous allons utiliser la
distance euclidienne.

28

-
Etude de la mise en place d’un antivirus intelligent

Avec la détermination des centroïdes des clusters (le barycentre des points de ce
cluster) en utilisant la formule du barycentre :

L'objectif ici est de calculer la distance entre les centroïdes et les autres points tout en
regroupant les centroïdes et leurs points le plus proche.

Figure 5: Algorithme de clustering (K-means)

29

-
Etude de la mise en place d’un antivirus intelligent

II- Présentation du modèle de données

La présentation de notre modèle de données doit mettre en évidence les aspects


suivants : l’origine des données, le pourcentage des données pris en compte pendant
l’entraînement, le pourcentage des données pendant la phase de test et la structure de
notre modèle de données.

1- Origine des données


Nos jeux de données sont constitués de fichiers à la fois malveillants et non
malveillants issus du site officiel de VirusShare1, une plateforme en ligne qui fournit
à la demande des utilisateurs des jeux de données pour l'entraînement de leur
algorithme de Machine Learning. Notre choix s’est porté sur celle-ci à cause de la
spécificité du modèle de données : des fichiers à la fois malveillants et non
malveillants. Ce qui convient bien évidement à notre cas d’étude.

2- Structure de notre modèle de données


L’entraînement de notre algorithme se base sur une structure particulière des fichiers
que nous lui soumettons. En effet, nous utilisons les fichiers de types PE (Portable
Executable, executable portable). C’est le format des fichiers exécutables et des
bibliothèques pour les systèmes d’exploitation Windows 64 et 32 bits. La structure des
fichiers PE comporte certains des éléments suivants utiles pour notre analyse :

• Entête MZ-Dos: L'en-tête MZ permet au système d'exploitation de reconnaître


le fichier comme étant un exécutable valide.

• Segment Dos : Le segment DOS est exécuté lorsque Windows ne reconnaît


pas le fichier comme étant au format PE.

1 30
Le site officiel de virus share : www.virushare.com

-
Etude de la mise en place d’un antivirus intelligent

• En-tête PE: L'en-tête PE est un ensemble de structures, regroupées dans une


même et unique structure nommée IMAGE_NT_HEADER. Celle-ci
contient des informations sur la structuration du fichier.
• Table des sections : La Table des Sections est située juste derrière l'en-tête
PE. Il s'agit d'un tableau contenant plusieurs structures
IMAGE_SECTION_HEADER.Ces structures contiennent les informations
sur les sections du binaire qui doivent être chargées en mémoire.

3- Pourcentage des données pour l’entraînement et la


phase de test
Le seuil général établi pour l’entraînement et la phase de test d’un algorithme de
Machine Learning est de 80% pour l’entraînement et 20% pour la phase de test. Nous
nous sommes tenus à ce seuil dans le cadre de notre étude. Ainsi, ces pourcentages
étaient constitués à la fois des fichiers malveillants et non malveillants. Et nous avons
pu obtenir des résultats qui seront présentés dans la partie suivante de notre travail.

À l’issu d’une étude comparative entre les différentes méthodes d’IA et à travers une
présentation du modèle de fonctionnement de la solution, il ressort que la méthode la
mieux adaptée à la conception de l’antivirus est la méthode de clustering (K-means).

31

-
Etude de la mise en place d’un antivirus intelligent

TROISIÈME PARTIE : RÉSULTATS ET DISCUSSIONS

32

-
Etude de la mise en place d’un antivirus intelligent

Enfin, dans cette dernière partie nous vous présenterons les différents résultats obtenus
après une phase d’entrainement de l’algorithme de clustering avec un modèle de
données soigneusement choisi. Une phase de discussion sera ensuite présentée afin de
mettre en évidence les points forts, les points faibles et les perspectives du projet.

CHAPITRE 7 : Présentation des outils


utilisés et environnement de développement

I- Environnement de développement

1- Matériels et systèmes
L’environnement matériel et systèmes utilisés pour la réalisation du projet est un
ordinateur portable HP pavillon Notebook avec les caractéristiques systèmes suivants :

• Processeur : Intel ®, Core ™ i5-7200U CPU @ 2.50GHz 2.71GHz


• Mémoire installée (RAM) : 8.00 Go
• Type du système : Système d’exploitation 64 bits, processeur x64

Avec une version 10 de windows installée.

2- Langage de programmation
Le langage utilisé durant le développement de la solution est le langage Python dont
la version est le 2.7. C’est un langage de programmation interprété, de haut niveau et
à usage général. Créée par Guido van Rossum et publiée pour la première fois en 1991,
la philosophie de conception de Python met l'accent sur la lisibilité du code. Son
approche orientée objet vise à aider les programmeurs à écrire du code clair et logique
pour les projets à petite et grande échelle.
Il est utilisé pour :
• Développement web (côté serveur) ;
• Développement de logiciels ;
• Mathématiques ;

33

-
Etude de la mise en place d’un antivirus intelligent

• Script système ;
• Le Machine Learning ;
• L’analyse de données.

II- Outils utilisés

1- La bibliothèque Stickt Learn

Scikit-learn est une bibliothèque d'apprentissage open source pour le langage de


programmation Python. Il comprend plusieurs algorithmes de classification, de
régression et de regroupement, y compris des machines à vecteurs de support, des
forêts aléatoires, un renforcement de gradient, k-means et DBSCAN. Il est conçu pour
interagir avec les bibliothèques numériques et scientifiques Python NumPy et SciPy.

2- PEfile

PEfile est un module Python multiplateforme permettant de lire et de travailler avec


des fichiers Portable Executable (PE). La plupart des informations contenues dans l'en-
tête PE sont accessibles, ainsi que toutes les sections, informations et données de la
section.
PEfile nécessite une compréhension de base de la présentation d'un fichier PE et rend
possible les tâches que sont :
• Modification et réécriture de l'image PE ;
• Inspection d'en-tête ;
• Analyse des sections ;
• Récupération des données ;
• Avertissements pour les valeurs suspectes et mal formées ;
• Détection de packer avec les signatures de PeiD;
• Génération de signatures PEiD .

34

-
Etude de la mise en place d’un antivirus intelligent

3- Anaconda

Anaconda est une distribution libre et open source des langages de


programmation Python et R appliqué au développement d'applications dédiées à la
science des données et à l'apprentissage automatique (traitement de données à grande
échelle, analyse prédictive, calcul scientifique) qui vise à simplifier la gestion des
paquets et de déploiement. Les versions de paquetages sont gérées par le système de
gestion de paquets conda. La distribution Anaconda est utilisée par plus de 6 millions
d'utilisateurs et comprend plus de 250 paquets populaires en science des données
adaptés pour Windows, Linux et MacOs.

3- Jupyter
Jupyter est une application web utilisée pour programmer dans plus de 40 langages
de programmation, dont Python, Julia, Ruby, R. Jupyter est une évolution du
projet IPython. Jupyter permet de réaliser des calepins ou notebooks, c'est-à-dire des
programmes contenant à la fois du texte en markdown2 et du code en Julia, Python,
R... Ces notebooks sont utilisés en science des données pour explorer et analyser des
données.

Figure 6: Jupyter

2 35
Markdown est un langage de balisage léger créé en 2004 par John Gruber avec l'aide
d’Aaron Swartz. Son but est d'offrir une syntaxe facile à lire et à écrire.

-
Etude de la mise en place d’un antivirus intelligent

CHAPITRE 8 : Résultats et Discussions

I- Entraînement de l’algorithme de clustering

1- Préparation du jeu de données

Nous commençons par préparer le jeu de données pour l’apprentissage. L’objectif est
de connaître le nombre de fichiers malveillants et le nombre de fichiers sains contenus
dans notre jeu de données.

Figure 7: préparation du jeu de données

Comme on peut le constater le jeu de données est constitué de 138047 fichiers dont
30% sont malveillants et 70% sont sains.

2- Partitionnement du jeu de données et entraînement

Ensuite, cette étape consiste à partitionner notre jeu de données en deux parties dont
une partie sera utilisée pour l'entraînement (80%) et l’autre partie pour le test (20%).
Suite au partitionnement, l'entraînement débutera avec le quota qui lui sera alloué en
utilisant l'algorithme de Clustering.

36

-
Etude de la mise en place d’un antivirus intelligent

Figure 8: Partitionnement des données

Test post entraînement

Figure 9: Test post entraînement

À la suite de l'entrainement, les 20% de test issu de la partition ont été utilisés pour
tester l’entraînement de l'algorithme afin d'en mesurer les performances. On a obtenu
les résultats suivants :
• Sur 19413 fichiers sains dans notre jeu de données, 17023 ont été prédits sains
ce qui constitue notre vrai positif soit 0,876886622 environ 88%.
• Sur 19413 fichiers sains, 2390 ont été prédits malveillants ce qui constitue
notre vrai négatif soit 0,123113378 environ 12%.

37

-
Etude de la mise en place d’un antivirus intelligent

• Sur 8197 fichiers malveillants, 543 ont été prédits sains ce qui constitue notre
Faux positif soit 0,066243748 environ 07%.
• Sur 8197 fichiers sains, 7654 ont été prédit malveillant ce qui constitue notre
Faux négatif soit 0,933756252 environ 93%.

Précision
La précision est le rapport des observations positives correctement prédites par rapport
au total des observations positives prévues. Elle permet de répondre à la question
quelle proportion d'identifications positives était effectivement correcte ?

Dans notre cas la précision est de 97% pour la détection de fichiers sains et de 76%
pour la détection de fichiers malveillants ce qui est supérieure à 70%.

Le rappel
Le rappel est le rapport des observations positives correctement prédites par rapport à
toutes les observations dans la classe réelle. Il permet de répondre à la question quelle
proportion de résultats positifs réels a été identifiée correctement ?

Dans notre cas le rappel est de 88% pour la détection de fichiers sains et de 93%
pour la détection de fichiers malveillants ce qui est bon pour ce modèle car ils sont
supérieurs à 50%.

Figure 10: récapitulatif classification : vrai ou faux et positif ou négatif

38

-
Etude de la mise en place d’un antivirus intelligent

II- Test de l’algorithme en mode production

Le test de notre algorithme sera fait via une interface web qui nous permettra de
soumettre les différents fichiers pour ensuite prédire la nature de ces fichiers
(malveillants ou pas).

Figure 11: Interface de soumission du fichier

Cette interface va permettre d’uploader les fichiers dont on aimerait connaître la


nature.

Une fois le fichier télécharger, on lance le script comme le montre l’interface ci-
dessous. L’objectif est de prédire la nature fichier en se basant sur l’algorithme de
clustering.

Figure 12: interface du lancement la prédiction du fichier

39

-
Etude de la mise en place d’un antivirus intelligent

Si le fichier n’est pas malveillant, on a l’interface suivante :

Figure 13: Interface du résultat de la prédiction pour fichier sain

Dans le cas où le fichier est malveillant, on a l’interface suivante :

Figure 14: Interface du résultat de la prédiction pour fichier malveillant

40

-
Etude de la mise en place d’un antivirus intelligent

III- Discussions

Nous mettrons ici en évidence les points forts et points faibles de notre système ainsi
que les perspectives à venir pour une amélioration de celui-ci.

1- Points forts

Comme tout travail de recherche, le nôtre revêt certains aspects positifs qu’il convient
d’énumérer :
• Notre solution a la capacité de détecter en un temps record (5 secondes en
moyenne) qu’un fichier est malveillant ou non ;
• L’algorithme permet de prédire à plus de 70% la nature d’un fichier ;
• Notre système utilise un algorithme de classification non supervisé qui lui
donne ainsi un aspect autonome ;
• Notre solution est capable de détecter un virus écrit avec n’importe quel
langage de programmation grâce à un algorithme efficace de détection du type
de fichier.

2- Points faibles

Comme points faibles de la solution, nous pouvons citer entre autres :


• La non précision de la cause de la détection d’un virus. Autrement dit,
l’algorithme ne précise pas les raisons pour lesquelles il détecte un fichier en
tant que malveillant ;
• La solution n’est pas encore en mesure de proposer des solutions pour faire
face à la menace qu’il détecte ;
• À l’heure actuelle l’algorithme n’est pas en mesure de préciser le type de
malware qu’il a pu découvrir.
• Il rencontre un problème dans la pré-analyse qui consiste à détecter le type de
fichier avant de l’envoyer à l’analyseur de ce type de fichier.

Toutes ces faiblesses ont pu être observées à cause de plusieurs contraintes et


difficultés liées au projet que nous détaillerons dans le chapitre suivant. Néanmoins,

41

-
Etude de la mise en place d’un antivirus intelligent

pour faire face à ces insuffisances, nous proposons un plan en perspective en vue d’une
amélioration future de notre solution anti-virus.

3- Perspectives
Comme perspective en vue d’une amélioration de notre système, nous comptons :

• Entraîner davantage notre algorithme afin qu’il puisse détecter avec précision
le type de malware et proposer une solution pour contrer ce type spécifique de
malware ;
• Ajouter une fonctionnalité d’alerte face à une future attaque dans un
environnement réseau ;
• Permettre de générer un rapport hebdomadaire et mensuel sur la sécurité de
l’environnement réseau dans lequel il agit ;
• Mettre en place un algorithme de détection de type de fichier basé sur l’IA pour
la pré-analyse du fichier ;
• Mettre en place l’antivirus en intégrant l’algorithme de détection de la nature
du fichier et permettre à l’utilisateur d’effectuer des actions comme
suppression de fichier malveillant ou encore programmer les périodes de
scan ;

CHAPITRE 9 : Contraintes et Difficultés


La mise en place de ce projet n’a pas totalement été effective à cause d’énormes
contraintes et difficultés rencontrées.

I- Contraintes

Comme contraintes rencontrées dans la réalisation de ce projet, nous pouvons citer


entre autres :
• Contrainte de temps : nous avons eu presque trois mois pour réaliser le projet
qui nécessitait de prendre en compte plusieurs paramètres pour une réalisation
effective. Ce qui lui donne un caractère presque inachevé ;

42

-
Etude de la mise en place d’un antivirus intelligent

• Contrainte de connaissance : Il faut souligner que l’étape de transcription de


notre connaissance en détection de malware avec l’utilisation du Machine
Learning n’a pas été du tout facile car nous ne savions pas au préalable
comment modéliser notre solution Machine Learning étant donné que nous ne
sommes pas des spécialistes dans ce domaine. Ce qui a été une véritable
contrainte au démarrage et réalisation de ce projet ;

• Contrainte en ressources : nous avons eu un manque de ressources au niveau


de notre machine d’une capacité minimale pour faire du Machine Learning.
Aussi, pour une question de sécurité, il était difficile d’avoir un jeu de données
de malwares.

II- Difficultés

La principale difficulté dans la mise en place de ce projet se situait au niveau de la


modélisation de la solution. Cela étant un aspect très crucial, toute notre attention y
était portée au point d’avoir écroulé énormément de temps dans cette phase. En effet,
avec le format de fichier PE, nous avons eu du mal à structurer ce type de fichier pour
entraîner notre algorithme. Cependant, nos différentes recherches nous ont permis de
surmonter ces difficultés.

Nous avons pu démontrer, à la suite de plusieurs tests que l’algorithme était capable
de détecter la nature d’un fichier malveillant ou sain. Cependant, ce projet a été réalisé
en surmontant d’énormes contraintes et difficultés.

43

-
Etude de la mise en place d’un antivirus intelligent

CONCLUSION

Notre projet a consisté à faire l’étude de la mise en place d’un antivirus en se


basant sur les techniques et méthodes d’IA. Les objectifs principaux d’un tel projet
étaient de découvrir dans un premier temps le fonctionnement des antivirus classiques
afin d’en dégager les forces et les faiblesses que notre solution devrait corriger. Un
autre objectif de notre projet était d’étudier les différentes méthodes et techniques de
l’IA appliquées dans la Cyber-Sécurité.

Une étude comparative de ces méthodes nous a permis d’aboutir au choix de la


méthode de l’algorithme de Clustering, qui était la mieux adaptée à la mise en place
d’un antivirus intelligent grâce à la rapidité de cet algorithme à entraîner les données
et à donner des résultats facilement interprétables.

A l’issu de l’entraînement de notre algorithme avec un modèle de données composé à


la fois de fichiers malveillants et non malveillants, nous avons obtenu des résultats
satisfaisants. En effet, notre algorithme a été capable de donner la nature d’un fichier,
à la phase de plusieurs tests, qui est soit malveillant soit sain.

Cependant, un problème majeur demeure : celui de la détection du type de fichier. Une


solution à ce problème permettrait de détecter d’abord le type de fichier, qu’il soit un
fichier de type Text, JavaScript, PowerShell, etc, avant de l’envoyer à l’analyseur pour
ensuite analyser le contenu de ce type de fichier. Cela rendrait l’algorithme encore plus
efficace dans sa capacité de détection. La mise en place de cette solution pourrait faire
l’objet de recherches pour l’amélioration de ce projet.

44

-
Etude de la mise en place d’un antivirus intelligent

WEBOGRAPHIE

[1] https://fr.wikipedia.org/wiki/Liste_de_logiciels_antivirus, consulté le 17/11/2019;

[2] https://www.supinfo.com/articles/single/3136-antivirus, consulté le 17/11/2019 ;

[3] https://encyclopedia.kaspersky.fr/knowledge/antivirus-programs-their-quality-and-
issues/, consulté le 17/11/2019 ;

[4] https://www.linkedin.com/pulse/r%C3%A9sum%C3%A9-des-techniques-
dintelligence-artificielle-antoine-sauray, consulté le 10/01/2020 ;

[5] https://www.datakeen.co/8-machine-learning-algorithms-explained-in-human-
language/, consulté le 12/01/2020 ;

[6] https://www.actuia.com/vulgarisation/difference-entre-apprentissage-supervise-
apprentissage-non-supervise/, consulté le 12/01/2020 ;

[7] https://maximilienandile.github.io/2016/10/17/Machine-Learning-classification-a-
l-aide-des-arbres-de-decisions-fonctionnement-et-application-en-NodeJS/, consulté le

[8] https://dataanalyticspost.com/Lexique/arbre-de-decision/, consulté le 05/02/2020

[9] https://r-libre.teluq.ca/1431/1/Moudachirou.pdf (PP 67-68) ,consulté le 05/02/2020

[10]http://cedric.cnam.fr/vertigo/Cours/ml2/coursForetsAleatoires.html#bre01,
consulté le 14/02/2020

[11] https://riptutorial.com/fr/machine-learning/example/32209/regression-lineaire,
consulté le 14/02/2020

[12] https://www-lmgm.biotoul.fr/enseignements/M2Pro_Bioinfo/Clustering.pdf,
consulté le 25/01/2020 ;

-
Etude de la mise en place d’un antivirus intelligent

[13] http://eric.univ-lyon2.fr/~ricco/cours/cours_regression_logistique.html , consulté


le 31/01/2020 ;
[14] https://openclassrooms.com/fr/courses/4379436-explorez-vos-donnees-avec-
des-algorithmes-non-supervises/4379556-definissez-les-criteres-que-doit-
satisfaire-votre-clustering ,consulté le 08/02/2020 ;

[15] https://www.malekal.com/antivirus/ ,consulté le 08/02/2020 ;

TABLE DES MATIÈRES


DEDICACE ................................................................................................................................. II

XI

-
Etude de la mise en place d’un antivirus intelligent

REMERCIEMENTS .................................................................................................................... III


AVANT-PROPOS ...................................................................................................................... IV
LISTE DES FIGURES ................................................................................................................... V
LISTE DES TABLEAUX ............................................................................................................... VI
LISTE DES SIGLES ET ABRÉVIATIONS ...................................................................................... VII
SOMMAIRE ............................................................................................................................ VIII
INTRODUCTION ........................................................................................................................ 1
PREMIERE PARTIE : GÉNÉRALITÉS ............................................................................................ 1
CHAPITRE 1 : Présentation du cadre du projet ........................................................................ 4
I- Présentation de l’ESATIC............................................................................................ 4
II- Contexte du projet interne ........................................................................................ 4
III- Choix et orientation du projet .................................................................................. 5
CHAPITRE 2 : Etude de l’existant.............................................................................................. 5
I- Présentation de l’existant ............................................................................................. 5
1. Recueil d’informations................................................................................................. 5
2. Analyse et synthèse de l’ensemble des informations collectées .................................. 7
II- Critique de l’existant ................................................................................................ 8
III- Proposition de solutions ......................................................................................... 12
CHAPITRE 3 : Présentation du cahier de charges................................................................... 12
I- Objectif principal ....................................................................................................... 13
II- Objectifs spécifiques .............................................................................................. 13
III- Fonctionnalités ....................................................................................................... 13
IV- Résultats ................................................................................................................. 14
DEUXIEME PARTIE : ETUDE TECHNIQUE ................................................................................ 15
CHAPITRE 4 : Etude des méthodes d'Intelligence Artificielle ................................................ 16
I- Généralité sur l’intelligence artificielle...................................................................... 16
1. Historique............................................................................................................... 16
1. Définition ............................................................................................................... 17
II- Quelques types d’algorithme de l’intelligence artificielle en vogue ...................... 18
1. Arbre de décision ................................................................................................... 18
2. Forets aléatoires ..................................................................................................... 20
3. Régression linéaire ................................................................................................. 21
4. La régression logistique ......................................................................................... 21
5. Naïves bayes .......................................................................................................... 22
6. Le réseau de neurones ............................................................................................ 23
7. Le clustering........................................................................................................... 24

XII

-
Etude de la mise en place d’un antivirus intelligent

III- Les facteurs de qualité d’un algorithme de Machine Learning .............................. 24


CHAPITRE 5 : Modèle de fonctionnement de la solution et choix de la méthode ................ 26
Artificielle ............................................................................................................................... 26
I- Modèle de fonctionnement......................................................................................... 26
II- Etude comparative des méthodes ........................................................................... 27
III- Choix de la méthode appropriée à l’étude.............................................................. 28
CHAPITRE 6 : Conception de la solution ................................................................................ 28
I- Présentation du modèle mathématique ...................................................................... 28
II- Présentation du modèle de données ....................................................................... 30
1- Origine des données ............................................................................................... 30
2- Structure de notre modèle de données ................................................................... 30
3- Pourcentage des données pour l’entraînement et la phase de test .......................... 31
TROISIÈME PARTIE : RÉSULTATS ET DISCUSSIONS ................................................................. 32
CHAPITRE 7 : Présentation des outils utilisés et environnement de développement ........... 33
I- Environnement de développement ............................................................................. 33
1- Matériels et systèmes ............................................................................................. 33
2- Langage de programmation ................................................................................... 33
II- Outils utilisés ......................................................................................................... 34
1- La bibliothèque Stickt Learn .................................................................................. 34
2- PEfile...................................................................................................................... 34
3- Anaconda ............................................................................................................... 35
3- Jupyter .................................................................................................................... 35
CHAPITRE 8 : Résultats et Discussions ................................................................................... 36
I- Entraînement de l’algorithme de clustering ............................................................... 36
1- Préparation du jeu de données ............................................................................... 36
2- Partitionnement du jeu de données et entraînement ............................................... 36
II- Test de l’algorithme ............................................................................................... 39
III- Discussions ............................................................................................................ 41
1- Points forts ............................................................................................................. 41
2- Points faibles .......................................................................................................... 41
CHAPITRE 9 : Contraintes et Difficultés ................................................................................. 42
I- Contraintes ..................................................................................................................... 42
II- Difficultés ..................................................................................................................... 43
CONCLUSION.......................................................................................................................... 44
WEBOGRAPHIE......................................................................................................................... X

XIII

-
Etude de la mise en place d’un antivirus intelligent

RESUME
Dans ce travail, Il était question de faire l’étude de la mise en place d’un
antivirus intelligent. Cette étude qui devait se limiter aux différentes étapes de la mise
en place de ce type d’antivirus, nous a permis d’aboutir à la mise en place d’un
algorithme de détection de la nature d’un fichier (Malveillant ou pas) basé sur l’IA.
Au travers de nos recherches, nous avons connu une manière plus efficace de détecter
les malwares en utilisant des mécanismes de reconnaissances et classements effectuées
par l’IA pour permettre de classer le fichier comme sain ou malveillant. Pour ce faire,
nous avons fait le choix de la méthode de clustering (K-means) qui permet de faire
l’apprentissage non supervisé et dont les résultats de l’apprentissage sont facilement
interprétables. Grâce à cet algorithme qui enseigne et apprend comment se comporte
un malware et à quoi il ressemble, il sera désormais possible de prédire de nouvelles
menaces de malwares dont nous ne disposons pas de leur signature. Ce qui n’était pas
possible avec les méthodes classiques de détections de malwares. À la fin de ce travail,
nous pouvons dire qu’il est possible de combiner l’IA et la cybersécurité pour garantir
la protection des données à caractères personnelles.

ABSTRACT
In this work, it was a question of studying the implementation of an smart
antivirus. This study which was to be limited to the different stages of the
implementation of this type of antivirus, allowed us to achieve the implementation of
an algorithm for detecting the nature of a file (Malicious or not) based on AI. Through
our research we have known a more efficient way to detect malware using recognition
and classification mechanisms performed by AI to allow the file to be classified as
healthy or malicious. To do this, we have chosen the clustering method (K-means)
which allows unsupervised learning and whose learning results are easily interpretable.
Thanks to this algorithm which teaches and learns how malware behaves and what it
looks like, it will now be possible to predict new malware threats that we do not have
their signature on. Which was not possible with conventional methods of malware
detection. At the end of this work, we can say that it is possible to combine AI and
cybersecurity to guarantee the protection of personal data.