mardi 15 novembre 2011

les antivirus

Pourquoi les antivirus ne répare pas la plupart des fichiers infectés et procède à la suppression totale ?
C'est une question que vous vous posez tout le temps. Explorons ensemble ce qui se passe dérrière les scènes.

Avant de répondre à cette question on doit répondre à deux autres questions importantes :
I- Comment fonctionne les logiciels malveillants ?
II- Comment fonctionne un anti-malveillant ?

I - Fonctionnement des logiciels malveillant:
La plupart des utilisateurs des outils informatiques pensent que les malveillants sont des créatures informatiques mystérieuses et difficiles à créer. Mais ce qu'ils ne savent pas c'est qu'un logiciel malicieux est un logiciel comme tout les autres, codé de la même manière en utilisant n'importe quel langage informatique qu'il soit interptété ou compilé ou de script. La seule chose qui fait la différence c'est l'objectif du codeur(Suppression de fichiers de système, voler des informations confidentielles, planter ou ralentir le système etc ...). Mais comment ? Les codeurs de logiciel malicieux utilisent les instructions, les fonctions, et les APIs(user ou kernel) ordinaires pour créer un programme qui fait des tâches malicieuses.
Exemple de code d'un virus simple en BATCH :
---------------------------------------------------------------------------
Echo "Vos fichiers système seront supprimé"
Del %WINDIR%/SYSTEM32/*.* /Q /F
Echo "Vos fichiers système ont été supprimé"
---------------------------------------------------------------------------
Le programme ci-dessus n'effectue qu'une parmi plusieurs tâches(Suppression ou modification de clé de registre, Injection de bloc dans un exécutable et encore d'autre) effectuées par les malicieux. L'efficacité du programme dépend de l'expérience du codeur et de sa connaissance de l'architecture du système attaqué.

II - Fonctionnement des anti-malicieux :
Un anti-malicieux (antivirus, anti-espion etc ..) est un logiciel informatique dont le rôle est de détecter un code malicieux et de l'enlever. Mais comment il l'enlève ? Mais avant ça comment il le détecte?
La détection d'un code malicieux est une tâche compliquée utilisant ce qu'on appelle le Reverse Engineering (Rétro-Ingéniere : C'est un technique qui permet de trouver la méthode avec laquelle est créé un produit quelquonque. En informatique il consiste à aller par le chemin inverse et trouver le code source d'un programme informatique via le désassemblage ou la décompilation). En trouvant le code source, le P-code ou le code native du programme le logiciel anti-malicieux tente de chercher les blocs de code malicieux en se basant sur une base de donnée virale contenant des informations sur les malicieux reconnus par l'anti-malicieux. Aprés avoir trouver le bloc malicieux l'anti-malicieux tente de le supprimer et comme ça le fichier infecté sera réparer sans être supprimé totalement.
Mais malheureusement, les codeurs malveillants devient de plus en plus expérimentés et font appel à d'autre techniques, pour protéger leurs codes et les rendre difficiles à désassembler ou à décompilé, tel que par exemple l'Obfuscation qui permet d'encoder via des algorithmes cryptographiques le code source d'un programme pour le rendre non décompilable ou non désassemblable. Alors l'anti-malware ne pourra pas trouver le bloc malicieux en utilisant le code source, mais en utilisant des informations tel que le hashage d'un fichier, son nom, son emplacement, ses mouvement( accès au registre et aux ressources système) ou sa taille. Après avoir trouvé le fichier infecté via ces informations l'anti-malware ne pourra pas le réparer à cause de l'Obfuscation et il n'aura qu'un seul choix qui est de le supprimer définitivement. Hamza Ait Essaid