OVH Cloud OVH Cloud

Programmer un antivirus

63 réponses
Avatar
cyril_vieville
Bonjour tout le monde,
J'aimerais savoir quelque trucs pour programmer un antivirus.
C'est a dire comment sont stockes les signatures (cryptage, base
cryptee, ...)
Comment creer un moteur de balayage efficace?
en fait un descriptif technique de comment on fait un antivirus SVP

Derniere question comment gerer le fait du grossisement de la base des
signatures (je crois savoir que beaucoup de vieux virus sont effaces
des bases par les editerurs non?)


Merci pour toutes vos reponses

10 réponses

1 2 3 4 5
Avatar
Olivier Aichelbaum
AMcD wrote:
Il faudrait que OA consulte les archives de ce NG. Nous en avons déjà parlé
icic avec code source à l'appui avec Tweakie, Bonroy, etc. ici. En gros,
évidemment que chercher n signatures prend plus de temps que n-1. Mais pas
dans les proportions que l'on pourrait imaginer. Loin de là.


Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".

Et j'écrivais aussi :

"Il y a des tas de vaccinations qu'on ne fait plus de nos jours pour
les enfants, parce que les virus sont considérés comme disparus.
Il n'est pas impossible qu'à un moment, certains éditeurs aient
voulu expérimenter la même chose avec des antivirus informatiques."

--
Olivier Aichelbaum

Avatar
Tweakie
On Tue, 11 Nov 2003, Cyril Vi?ville wrote:

Bonjour tout le monde,
J'aimerais savoir quelque trucs pour programmer un antivirus.
C'est a dire comment sont stockes les signatures (cryptage, base
cryptee, ...)
Comment creer un moteur de balayage efficace?
en fait un descriptif technique de comment on fait un antivirus SVP



Que veux-tu programmer exactement ? Un scanner de signatures ? Tu
comptes y integrer la detection de virus polymorphiques et un
moteur de detection heuristique ou pas ?

Il me semble qu'un bon point de depart est l'antivirus ClamAV
( http://clamav.elektrapro.com/ ), ils utilisent l'algo
Aho/Corasick (par ailleurs evoque' par F. Bonroy sur ce forum)
pour le pattern matching. Ils referencent :
http://www-sr.informatik.uni-tuebingen.de/~buehler/AC/AC.html

Ensuite, a toi de te debrouiller pour que ton implementation
soit la plus rapide possible. IMHO le facteur limitant se situe
du cote' des acces disques.

Pour les virus polymorphes, il faudra sans doute te coltiner un
emulateur. C'est sans doute la partie la plus difficile du
shmilblick. Un point de depart pour se familiariser avec certains
concepts necessaires pour maitriser ce genre de techniques
(manipulation de la memoire), tout en se resteignant a un petit
nombre d'instructions, pourrait-etre l'ecriture d'un interpreteur
de redcode (cf. corewars, http://www.koth.org). Il faudra aussi
gerer l'etape qui vient "avant" (desassemblage). Bref, c'est
vraaaaiment complexe...

Pour la detection heuristique, je crois que tu n'echappera de toute
facon pas a l'etape "desassemblage". Et tu devras peut-etre definir
une grammaire formelle permettant de detecter les actions pouvant
etre caracteristiques d'un virus ((de)cryptage, reproduction, etc.).
Pas simple non plus.

Derniere question comment gerer le fait du grossisement de la base des
signatures (je crois savoir que beaucoup de vieux virus sont effaces
des bases par les editerurs non?)



Plutot remplaces par des signatures generiques, detectant sous un
identifiant unique toute une famille de virus. Mais tu peux sans
doute demander a ton prof : d'apres la page de garde du site web de
sa boite, il semblerait qu'ils soient bien informes sur ce sujet ;-p

--
Tweakie

Avatar
AMcD
Deplonk

Olivier Aichelbaum wrote:

Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".


Ça ne change pas grand chose, lis les threads auxquels je fais allusion plus
haut pour t'en rendre compte par toi-même.

Replonk.

AMcD

Avatar
Roland Garcia

Il ne faudrait pas confondre mauvaise signature et signature retirée.


Quels sont les vieux virus non détectés par KAV ?

Je parle bien du nombre de virus dans la base.


Ce qui ne change rien.


Eh bien, on attend votre algorithme miracle !


Combien de temps met Google pour retrouver une page parmi des centaines
de millions ?

Roland Garcia



Avatar
Roland Garcia

AMcD wrote:

Il faudrait que OA consulte les archives de ce NG. Nous en avons déjà parlé
icic avec code source à l'appui avec Tweakie, Bonroy, etc. ici. En gros,
évidemment que chercher n signatures prend plus de temps que n-1. Mais pas
dans les proportions que l'on pourrait imaginer. Loin de là.



Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".


On vous avait déjà répondu:
http://www.google.fr/groups?selmºb0sk%2424a%241%40news-reader14.wanadoo.fr&oe=UTF-8&output=gplain

Roland Garcia


Avatar
Olivier Aichelbaum
AMcD wrote:
Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".


Ça ne change pas grand chose, lis les threads auxquels je fais allusion plus
haut pour t'en rendre compte par toi-même.


Ben si le nombre de virus dans la base influe forcèment sur le temps
de scan... C'est ma-thé-ma-tique. Que ce soit sensible ou pas, c'est
un autre débat.


Replonk.


Bonne idée !

--
Olivier Aichelbaum


Avatar
Olivier Aichelbaum
Roland Garcia wrote:
Il ne faudrait pas confondre mauvaise signature et signature retirée.


Quels sont les vieux virus non détectés par KAV ?


Vous savez débattre de façon générale sans nous citer KAV à chaque post
?

Relisez ce que j'ai écrit au post précédent dans le thread.


Je parle bien du nombre de virus dans la base.


Ce qui ne change rien.


Eh bien, on attend votre algorithme miracle !


Combien de temps met Google pour retrouver une page parmi des centaines
de millions ?


Vous êtes hors sujet, j'attends votre algorithme miracle qui ne
dépend pas du nombre de virus dans la base.

--
Olivier Aichelbaum




Avatar
Roland Garcia


Plutot remplaces par des signatures generiques, detectant sous un
identifiant unique toute une famille de virus. Mais tu peux sans
doute demander a ton prof : d'apres la page de garde du site web de
sa boite, il semblerait qu'ils soient bien informes sur ce sujet ;-p


dans ce cas totalement contredits par la théorie et la pratique.....

Roland Garcia

Avatar
Olivier Aichelbaum
Roland Garcia wrote:

Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".


On vous avait déjà répondu:
http://www.google.fr/groups?selmºb0sk%2424a%241%40news-reader14.wanadoo.fr&oe=UTF-8&output=gplain


Ce test confirme que la taille de la base a une influence sur
la durée du scan. Merci de votre soutien.

--
Olivier Aichelbaum


Avatar
Roland Garcia

AMcD wrote:

Je ne parlais pas de n et n - 1, mais de "100 ou 10 000".


Ça ne change pas grand chose, lis les threads auxquels je fais allusion plus
haut pour t'en rendre compte par toi-même.



Ben si le nombre de virus dans la base influe forcèment sur le temps
de scan... C'est ma-thé-ma-tique. Que ce soit sensible ou pas, c'est
un autre débat.


C'est justement le débat, puisque ce temps est négligeable enlever les
vieux virus est idiot techniquement et anti-commercial.

Roland Garcia



1 2 3 4 5