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

3 réponses

3 4 5 6 7
Avatar
Frederic Bonroy
Cyril Vi?ville wrote:

Sinon je ne comprends pas comment il est possible de remplacer des
signatures par une signature générique étant donné que le fondement du
mot signature est à caractère unique?


Il ne s'agit pas forcément d'une signature (dans le sens "chaîne
d'octets"), mais peut-être d'une "définition" qui permet
l'identification de plusieurs membres d'une même famille de virus.
De toute façon vous pouvez dans certains cas utiliser une chaîne
raccourcie commune à plusieurs virus si vous prenez des mesures
nécessaires pour éviter les fausses alertes - plus la chaîne est courte,
plus il y a risque de fausse alerte.

Un antivirus classique est il capable de reconnaitre par exemple une
variante d'un virus sans avoir au préalable la signature car vous me
parlez de virus polymorphes mais beaucoup de gens semblent s'amuser à
modifier légèrement un code malveillant?


C'est possible de façon heuristique par exemple.

Dernière chose, pourquoi un antivirus donne la possibilité de scanner
des fichiers TXT par exemple (dans lequel j'inclus du code malicieux)
et me détecte un virus?


Parce qu'une extension ne veut rien dire...

Avatar
Tweakie
On Wed, 12 Nov 2003, Cyril Vi?ville wrote:

Oui en effet je suis étudiant et malheureusement ce n'était pas mon
projet initial, je me retrouve donc sur un projet dont je n'ai aucune
idée technique.



Bah, ca me semble etre un projet interessant. D'autant plus que, selon
la technique choisie, acquieras des connaissances succeptibles de te
servir dans d'autres domaines (programmation d'un moteur de recherche,
par exemple). Tu n'as pas de raisons de regretter ton sujet.

Ton projet aura surement rappele' aux habitues du forum cette URL,
http://www.epitech.net/dupard/ postee ici il y a quelque temps.

MERCI POUR TOUTES VOS REPONSES mais comment connaissez vous mon
professeur?



C'est toi meme qui nous en a parle' sur ce forum ;-)

Sinon je ne comprends pas comment il est possible de remplacer des
signatures par une signature générique étant donné que le fondeme nt du
mot signature est à caractère unique?
Un antivirus classique est il capable de reconnaitre par exemple une
variante d'un virus sans avoir au préalable la signature car vous me
parlez de virus polymorphes mais beaucoup de gens semblent s'amuser à
modifier légèrement un code malveillant?


Deja, le terme "signature" est critique' par d'emminents experts.
Voila ce qu'a repondu l'un d'entre eux a un contributeur de ce forum
a l'issue d'une legere polemique :

<quote>
Dunno about the other products, but [the AV that this guy's developping]
does not use signatures to detect this particular "virus". It uses
checkpoints and a map of the non-variable areas [...]
</quote>


Reste a savoir ce que sont ces fameux checkpoints et cette carte des
zones invariantes. A vue de nez, je suppose que ca signifie que :
- La "signature" n'est pas constituee d'une unique composante connexe
(il peut y avoir plusieurs bouts) ;
- la localisation de ces bouts est connue (sans presumer du referentiel
choisi, qui doit forcement etre invariant vis a vis du fichier "hote"
infecte').

Mais c'est pure speculation de ma part (et c'est aussi ce que j'aurais
naivement tendance a appeler "signature")...

En ce qui concerne la modification de code malveillant...tu as
tout a fait raison. Prenons l'exemple des chevaux de troie/backdoors.
La production de ces petites betes est plutot abondante. Malgre' tout,
les "nouveautes" sont rapidement integrees aux bases de certains
anti-virus. Du coup, plutot que d'en coder un nouveau, les utilisateurs
de ce genre de bestiole preferent generalement modifier legerement une
backdoor existante plutot que d'en coder une nouvelle "from scratch".
Pour ca, les techniques les plus en vogue sont :
- l'utilisation d'un packer/crypteur d'executable. Mais ca ne fonctionne
pas avec certains AVs, qui sont capables de de-packer la plupart des
packers du marche' (KAV par exemple).
- l'edition du binaire au moyen d'un editeur hexadecimal. Dans ce
cas, l'etape preliminaire consiste a trouver l'offset de la ou
des signatures pour le ou les AVs que l'on cherche a contourner. Sans
rentrer dans les details, c'est desesperement simple : il suffit pour
cela de modifier selectivement quelques octets du fichier, de verifier
s'il est toujours detecte', puis de changer la plage d'octets modifiee
jusqu'a ce qu'il ne le soit plus. On peut meme accelerer la recherche
en procedant par dichotomie. De plus, il se dit que certains anti-virus
sont assez casaniers en ce qui concerne l'emplacement de la signature
((presque) toujours pres du point d'entree, (presque) toujours dans une
ressource (!), etc.). Une fois l'offset de la signature trouvee, il
s'agit juste de remplacer un des opcodes de celle-ci par un opcode
ayant une signification similaire, et le tour est joue'*.

Contre ce type de modifications, les AVs "a signature" sont assez
impuissants : les backdoors/trojans modifies sont souvent codes en
HLL (Delphi semble etre le plus repandu), ce qui rend inoperantes la
plupart des analyses heuristiques, et l'utilisation de "wildcards"
dans les signatures ou de "checkpoints" multiples ne fait que ralentir
un peu le travail d'edition. Pour reprendre un debat cher aux
contributeurs de ce forum, je vois la un des principaux inconvenients
de la technique "signatures" (ce qui ne remet pas en cause ses
nombreux avantages).


Je me rends compte que le boulot est conséquent et tout dépend de ce
que le professeur va exiger car si il faut prendre en compte des virus
polymorphes, une heuristique rapide et un nombre minimum de faux
positifs (et négatifs bien sur), j'ai du pain sur la planche!!!


Je dois bien avouer que je serais curieux de connaitre l'intitule'
exact du projet...

Si j'osais, je te proposerais bien d'opter pour une technique originale :
tu as surement bosse' sur les hooks (de fonctions) d'API Windows ?
Alors pourquoi pas :
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm= 200383-214048-981268%40foorum.com

C'est nebuleux, c'est on-access only**...mais si ca peut t'eviter de
refaire ClamAV en moins bien ;-)


Dernière chose, pourquoi un antivirus donne la possibilité de scanner
des fichiers TXT par exemple (dans lequel j'inclus du code malicieux)
et me détecte un virus? C'est un peu stupide et sans intérêt à mo ins
bien sur qu'il soit possible pour un executable d'intégrer à la vol ée
du code récupéré dans un fichier indépendant (car comme on dit to ut
est possible)



Ce que tu evoques a deja ete' utilise' (mais c'etait des fichiers JPG
qui etaient utilises pour stocker du code) par le vius Perrun. Mais
le veritable interet a ete evoque' par d'autres : certains softs se
foutent completement de l'extension du fichier et permettent pourtant
d'executer du code inclus dans celui-ci. Du coup, mieux vaut se fier
a sa structure (e.g. Possede t'il un entete MZ/PE ?) pour determiner
si oui ou non il doit etre scanne'.

Si tu as d'autres questions, tu peux raisonnablement esperer trouver la
reponse sur ce forum, entre deux trolls.

Cordialement,

--
Tweakie

* Fut un temps l'idee malsaine de coder un truc automatisant le
processus, et fonctionnant pour tous les AVs en ligne de commande,
(ce qui ne doit pas etre bien difficile) m'a meme traverse' l'esprit.
Mais comme je suis un gentil garcon...

**..et c'est meme pas brevete' ;-)

Avatar
inforadio
Le 11 Nov 2003 17:20:38 GMT, Pierre VG <kostic+ a ecrit:


Que ce soit un P3 ou un 486 sous Windows 98



quoi ? vous utilisez ce système d'exploitation doté de LA faille ?



J'utilise Win98 pour ma part et si vous arrivez a me veroller, je
vous paie des prunes, 'promis :
http://www.chez.com/radioham/protect_virus.htm

;)


3 4 5 6 7