METHODES DE DETECTION DE MALWARE
Définitions:
*Malware:
Le terme "malware" en français désigne un logiciel (<= software) mal vaillant (<= malware), qui à pour but de nuire à un système numérique.
Un "malware" désigne tout type de virus, vers, trojans...
Voilà une définition en image:
*Anti-Virus:
Un anti-virus, au contraire d'un logiciel malveillant, aura pour but de détecter et d'éradiquer le malware.
Il va pour cela, analyser la [i]mémoire vive, les périphériques de stockage (USB, Disque dur...) et analyser les fichiers entrants (téléchargé sur internet, par exemple) périodiquement.[/i]
I. Avant-propos
Dans la lutte des logiciels malveillants, il a fallu inventer des méthodes permettant de détecter et supprimer dans sa totalité un malware sans
l'interaction humaine, qui ne peut en aucun cas, détecter tout seul un
virus bien dissimulé. Pour cela, les développeurs ont inventé ce que
l'on appelle aujourd'hui les "anti-virus", tout le monde le connait,
c'est notre meilleur amis, quand on achète un PC, l'une des premières
choses que l'on va faire, c'est télécharger notre antivirus (gratuit, ou payant, la différence est minime). Mais savez-vous comment celui-ci fonctionne ? c'est ce que nous allons voir à travers ce tutoriel qui va-vous
présenter les 4 méthodes les plus utilisées dans la détection de malware...
II. Sommaire :
1. Méthode De détection par signature
[a) Détection (& suppression)
b) Contournement]
2. Méthode D'analyse de spectre
[a) Détection (& suppression)
b) Contournement]
3. Méthode D'analyse comportementale
[a) Détection (& suppression)
b) Contournement]
4. Méthode Heuristique
[a) Détection (& suppression)
b) Contournement]
5. Liens
1. Méthode De détection par signature
a) Détéction (& suppression)
Cette méthode de détection appelée aussi
Scanning"
est la plus rependue chez les éditeurs d'anti-virus, simplement, car
elle est très simple à programmer. Cette technique est aussi la
première effectuée par l'antivirus,
car celle-ci permet de détecter le malware
avant son exécution en mémoire.
L'anti-virus va "scanner" le fichier et essayer de trouver un bout de code qu'on appellera "
signature", cette signature est enregistrée dans la base de données de l'antivirus (et elle est unique, chaque
logiciel dispose de sa propre signature, logique..) Et est mise régulièrement mise à jour.
Le seul bémol (enfin... on vera ça après
) de cette technique c'est qu'elle à BESOIN d'être "entretenue"
TOUT
le temps, c'est à dire que tous les jours de nouveaux malware font leur
apparition, leur signature n'étant pas dans la base de données, le
malware ne pourra donc pas être détecter et éradiquer du système et
c'est donc pour cela, que des mises à jour sont INDISPENSABLES pour un
antivirus (c'est d'ailleurs ce qui fait la différence entre les av
payant ou gratuit)
b) Contournement
Les développeurs de malware ont maintenant (enfin depuis longtemps) de
nouvelles techniques pour "contourner" les antivirus, pour la méthode de
détection par signature, il suffira que le malware soit dit "
polymorphe" (<= prendre plusieurs formes)
Le mécanisme est très simple, le logiciel malveillant dispose d'une
routine de chiffrement de sa signature et de
déchiffrement et ces virus vont changer de signature à chaque réplication de celui-ci, ce qui le rend
Indétéctable à 99% pour la méthode de détection par signature.
2. Méthode D'analyse de spectre
a) Détection (& suppression)
La méthode d'analyse par signature étant vulnérable à des malware
polymorphiques, les laboratoires d'anti-virus ont élaborés une technique
permettant de
détécter le polymorphisme, cette méthode s'appelle, comme vous l'avez
deviné, "
l'analyse spectrale".
L'antivirus va en fait analyser les
instructions dans le fichier suspect et, selon la présence ou l'absence d'instructions très particulières, jamais usitées normalement,
ou selon la fréquence (la distribution) de telles instructions, ils
décident de signaler en parasite ou non un fichier. Cela vient du
principe que tout programme compilé est censé contenir une
trace du compileur dans le code
du programme (ex de compileur Microsoft Visual C++). et comme (en
théorie) un code polymorphique est censé chiffrer la signature, il
chiffre aussi par la même occasion la trace de la signature du
compileur. L'av étant en présence de sécances innhabituelles,
il va détécter le programme comme "malveillant".
Exemple de signature de compilateur (Microsoft Visual C++ 5.0):
Code :
PUSH EBP
MOV EBP,ESP
PUSH -1
PUSH XXXXXXX.00000000
PUSH XXXXXXX.00000000
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
ADD ESP,-58
PUSH EBX
PUSH ESI
PUSH EDI
MOV DWORD PTR SS:[EBP-18],ESP
b) Contournement
C'est maintenant la "gue-guerre" entre anti-virus et logiciels
malveillants, les chercheurs ont simplement contourné cette méthode en
introduisant dans le programme, une suite d'instructions inutiles que son moteur ne pourrait pas générer, pour pouvoir tromper l'analyse spectrale.
3. Méthode D'analyse comportementale (ou moniteurs de comportement)
a) Détection (& suppression)
Une des actions que l'anti-virus effectue h24, est l'analyse comportementale, cette technique, comme je l'ai dit, tourne toujours, elle est toujours active.
C'est une des méthodes les plus efficaces car elle permet la détection de malware sans qu'il soit "connue" dans la base donnée.
Son fonctionnement est celui-ci :
-Il scrute toutes tentatives d'écriture dans un programme &/ou modification d'un fichier système (ou autre action malveillante) qui va trahir un virus et donc, prévenir l'utilisateur du système.
Il existe aussi un moniteur "hardware"
qui est comme son nom l'indique, incorporé au matériel, c'est le top du
top niveau sécurité, car il interdit tout accès à des fichiers
sensibles du système.
b) Contournement
Rien trouvé à ce sujet.
4. Méthode Heuristique (algorithme heuristique)
a) Détection (& suppression)
La méthode heuristique est de loin
la meilleure méthode pour détecter un malware (car elle permet de
détecter les virus polymorphiques), elle se base sur l'analyse du code
machine, à la recherche de code pouvant être dangereux à son exécution
&/ suspect. (appelé code virale)
MAIS attention, la méthode heuristique est dite "passive" (comme la méthode de détection par signature) car elle n'exécute pas le code et ne fait que l'analyser, pour cela, les av utilisant cette technique, sont munis d'un désassembleur.
Par exemple, un virus polymorphique/autocrypté peut être détecté par une
technique d'analyse heuristique, l'anti-virus va parcourir le code
juste à la routine de déchiffremment, et à ce momment il déclarera le
fichier comme malicieux,
car la routine de déchiffremment va parcourir le code pour le modifié. (<= et c'est donc une instruction virale)
Il ne déclarera pas bien sûr, un fichier comme malveillant en voyant la
première instruction suspecte, il lui faudra un certain nombre
d'informations pour sonner l'alerte.
Son efficacité est telle, que cette technique à permis de trouver 40 à
60 % d'un nombre assez important de virus avec une signature "inconnue",
bien sûr, cette technique peut être fusionnée avec
d'autres (comme toutes d'ailleurs) pour avoir la meilleure protection
possible. Mais cette technique est loin d'être parfaite vu qu'elle est
basée sur "l'incertitude" seul, l'humain pourra vérifier si le programme
est
dangereux ou pas.
Le meilleur facteur d'analyse reste l'humain, qui une fois cerveau assemblé n'est pas bypassable fusionné à cette technique
b) Contournement
On peut imaginer une sorte "d'anti-désassemblage" (supposition) pour contourner l'analyse.
5. Liens
Car je n'ai pas la science infuse:
- http://vxheavens.com/lib/ama00.html
- http://antivirus-inf.blogspot.fr
- http://hal.archives-ouvertes.fr/docs/00/...ello-1.pdf
- http://hal.archives-ouvertes.fr/docs/00/...ello-1.pdf
Regards,
J0rD/Loup.