3.2.2. Les Méthodes de
défense et d'éradication
3.2.2.1. L'Antivirus
Un antivirus est un programme capable de détecter la
présence de virus sur un ordinateur et, dans la mesure du possible, de
désinfecter ce dernier. On parle ainsi d'éradication de virus
pour désigner la procédure de nettoyage de l'ordinateur.
Il existe plusieurs méthodes d'éradication :
· La suppression du code correspondant au virus dans le
fichier infecté ;
· La suppression du fichier infecté ;
· La mise en quarantaine du fichier infecté,
consistant à le déplacer dans un emplacement où il ne
pourra pas être exécuté.
Les virus se reproduisent en infectant des "applications
hôtes", c'est-à-dire en copiant une portion de code
exécutable au sein d'un programme existant. En effet, afin de ne pas
avoir un fonctionnement chaotique, les virus sont programmés pour ne pas
infecter plusieurs fois un même fichier. Ils intègrent ainsi dans
l'application infectée une suite d'octets leur permettant de
vérifier si le programme a préalablement été
infecté : il s'agit de la signature virale. Les
antivirus s'appuient ainsi sur cette signature propre à chaque virus
pour les détecter. Il s'agit de la méthode de recherche
de signature (scanning), la plus ancienne méthode
utilisée par les antivirus. Cette méthode n'est fiable que si
l'antivirus possède une base virale à jour, c'est-à-dire
comportant les signatures de tous les virus connus. Toutefois cette
méthode ne permet pas la détection des virus n'ayant pas encore
été répertoriés par les éditeurs
d'antivirus. De plus, les programmeurs de virus les ont désormais
dotés de capacités de camouflage, de manière à
rendre leur signature difficile à détecter, voire
indétectable; il s'agit de "virus polymorphes".
Certains antivirus utilisent un contrôleur
d'intégrité pour vérifier si les fichiers ont
été modifiés. Ainsi le contrôleur
d'intégrité construit une base de données contenant des
informations sur les fichiers exécutables du système (date de
modification, taille, et éventuellement une somme de contrôle).
Ainsi, lorsqu'un fichier exécutable change de caractéristiques,
l'antivirus prévient l'utilisateur de la machine.
3.2.2.2. Le Système de
Détection et de Prévention des Intrusions
1. Le Système de Détection des Intrusions
Afin de détecter les attaques que peut subir un
système, il est nécessaire d'avoir un logiciel
spécialisé dont le rôle serait de surveiller les
données qui transitent sur ce système, et qui serait capable de
réagir si des données semblent suspectes. Plus communément
appelé IDS (Intrusion Detection Systems), les systèmes de
détection d'intrusions conviennent parfaitement pour réaliser
cette tâche. A l'origine, les premiers systèmes de
détection d'intrusions ont été initiés par
l'armée américaine, puis par des entreprises. Plus tard, des
projets open-source ont été lancés et certains furent
couronnés de succès, comme par exemple Snort et Prelude. Parmi
les solutions commerciales, on retrouve les produits des entreprises
spécialisées en sécurité informatique telles
qu'Internet Security Systems, Symantec, Cisco Systems, ...
Les systèmes de détection d'intrusions
(IDS) : c'est un ensemble de composants logiciels et matériels dont
la fonction principale est de détecter et analyser toute tentative
d'effraction. Ce système utilise la technique de détection des
techniques de sondage (balayages de ports, fingerprinting), des tentatives de
compromission de systèmes, d'activités suspectes internes, des
activités virales ou encore, audit des fichiers de journaux (logs).
Remarque : topiquement, il s'agit d'un système capable de
détecter tout type d'attaque. Certains termes sont souvent
employés quand on parle d'IDS.
Il existe deux types des IDS qui sont :
· Les systèmes de détection d'intrusions
« réseaux » (NIDS) : Objectif : analyser de
manière passive les flux en transit sur le réseau et
détecter les intrusions en temps réel. Un NIDS écoutes
donc tout le trafic réseau, puis l'analyse et génère des
alertes si des paquets semblent dangereux. Les NIDS étant les IDS plus
intéressants et les plus utiles du fait de l'omniprésence des
réseaux dans notre vie quotidienne ;
· Les systèmes de détection d'intrusions de
type hôte (HIDS) : Un HIDS se base sur une unique machine,
n'analysant cette fois plus le trafic réseau mais l'activité se
passant sur cette machine. Il analyse en temps réel les flux relatifs
à une machine ainsi que les journaux. Un HIDS a besoin d'un
système sain pour vérifier l'intégrité des
donnés. Si le système a été compromis par un
pirate, le HIDS ne sera plus efficace. Pour parer à ces attaques, il
existe des KIDS (Kernel Intrusion Detection System) et KIPS (Kernel Intrusion
Prevention System) qui sont fortement liés au noyau ;
· Les systèmes de détection d'intrusions
« hybrides » : Généralement utilisés dans
un environnement décentralisé, ils permettent de réunir
les informations de diverses sondes placées sur le réseau. Leur
appellation « hybride » provient du fait qu'ils sont capables de
réunir aussi des informations provenant d'un système HIDS.
2. Les Systèmes de Prévention d'Intrusions
(IPS)
C'est un ensemble des composants logiciels et matériels
dont la fonction principale est d'empêcher toute activité suspecte
détectée au sein d'un système.
Contrairement aux IDS simples, les IPS sont des outils aux
fonctions « Actives », qui en plus de détecter une intrusion,
tentent de la bloquer. Cependant, les IPS ne sont pas la solution parfaite
comme on pourrait le penser. Plusieurs stratégies de prévention
d'intrusions existent :
· host-based memory and process protection :
surveille l'exécution des processus et les tue s'ils ont l'air dangereux
(buffer overflow). Cette technologie est utilisée dans les KIPS (Kernel
Intrusion Prevention System) ;
· session interception / session sniping : termine
une session TCP avec la commande TCP Reset « RST ». Ceci est
utilisé dans les NIPS (Network Intrusion Prevention System).
· gateway intrusion detection : si un système
NIPS est placé en tant que routeur, il bloque le trafic ; sinon il
envoie des messages à d'autres routeurs pour modifier leur liste
d'accès.
Un IPS possède de nombreux
inconvénients :
· Le premier est qu'il bloque toute activité qui
lui semble suspecte. Or, il est impossible d'assurer une fiabilité
à 100% dans l'identification des attaques. Un IPS peut donc
malencontreusement bloquer du trafic inoffensif. Par exemple, un IPS peut
détecter une tentative de déni de service alors qu'il s'agit
simplement d'une période chargée en trafic. Les faux positifs
sont donc très dangereux pour les IPS ;
· Le deuxième inconvénient est qu'un pirate
peut utiliser sa fonctionnalité de blocage pour mettre hors service un
système. Prenons l'exemple d'un individu mal intentionné qui
attaque un système protégé par un IPS, tout en spoofant
son adresse IP. Si l'adresse IP spoofée est celle d'un noeud important
du réseau (routeur, service Web, ...), les conséquences seront
catastrophiques. Pour palier à ce problème, de nombreux IPS
disposent des « white lists », c'est-à-dire des listes
d'adresses réseaux qu'il ne faut en aucun cas bloquer.
· Et enfin, le troisième inconvénient et
non le moindre : un IPS est peu discret.
En effet, à chaque blocage d'attaque, il montre sa
présence. Cela peut paraître anodin, mais si un pirate remarque la
présence d'un IPS, il tentera de trouver une faille dans celui-ci afin
de réintégrer son attaque, mais cette fois en passant
inaperçu. Voilà pourquoi les IDS passifs sont souvent
préférés aux IPS. Cependant, il est intéressant de
noter que plusieurs IDS (Ex : Snort, RealSecure, Dragon, ...) ont
été dotés d'une fonctionnalité de réaction
automatique à certains types d'attaques.
|