Les phases de vie d'un virus
|
12-08-2013, 21h26
(Modification du message : 13-08-2013, 21h10 par Stoned.)
Message : #1
|
|
Stoned
Newbie Messages : 9 Sujets : 2 Points: 18 Inscription : Aug 2013 |
Les phases de vie d'un virus
Bonjour à toutes et à tous,
Introduction: Aujourd'hui je vais m'efforcer de vous expliquer les phases de "vie" d'un virus le plus simplement possible, bien sûr ceci est une généralisation, tout les virii n'ont pas le même schéma d'attaque. Chaque virus a ses propres caractéristiques en plus de la caractéristique qui définit un virus même: -L'auto-réplication ; Une construction qui est théoriquement capable de fabriquer autonomement une copie d'elle-même en utilisant des matières premières prises de son environnement (il recopie son propre code ailleurs). Après un virus possède d'autres caractéristiques souvent ajoutées à celui d'en haut, mais qui ont été rajoutées bien après la création du mot "virus". On pourrait dire donc qu'ajouter d'autres caractéristiques autre que l'auto-réplication serait une vulgarisation simple (mais bien sûr tout le monde s'en fiche) . Autre caractéristiques souvent associées à celui d'un virus: -Le chiffrement: Le virus se chiffre tout simplement via des algo connus/inconnus de chiffrements; j'ai pu remarquer au cours de mon expérience professionnel que les programmeurs de virii reprennaient beaucoup le fonctionnement d'algo existant. -Le polymorphisme: A chaque réplication le virus va changer ses instructions machines/opcodes(ASM), ce sera le même code mais transcrit différemment; petit exemple . Code ASM :
-Le méthamorphisme: C'est une sorte de polymorphisme mais dans ce cas, il change même son code/structure interne. Code ASM :
Voici une brêve introduction, commençons maintenant le réel sujet de l'article. A)La phase d'infection/diffusion C'est durant cette phase que le virus pourra se diffuser dans le système cible, pour celà, il y a deux façons de le faire: -Infection active: L'utilisateur va directement exécuter le programme hôte qui contient le virus (dropper) ou un programme déjà infecté par le virus (ce qui sous-entends que l'utilisateur a déjà été infecté par le virus). -Infection passive: Le programme hôte est transféré sur un support informatique quelconque (Clé usb,CDROM,Carte SD etc...) puis transposé sur la machine cible (cette technique doit obligatoirement se coupler avec de l'ingiénerie sociale sinon le fichier n'aura pas le temps d'être transmis et sera détecté automatiquement comme suspect par l'utilisateur). B)La phase d'infection interne/incubation Cette phase, est la phase la plus importante pour l'avenir su virus, si elle n'est pas bien programmée, celà peut condamner le virus à se faire supprimer par les antivirus, vous l'auriez surement compris cette phase sert à maintenir le virus en "vie" en évitant sa détection auprès: -des antivirus En utilisant des techniques comme : le tunneling,time/logic bombs,dynamic code length etc... -des utilisateurs En évitant tout simplement les erreurs d'exécution-une bonne programmation peut déjà vous faire sauter cette étape-. C) La phase d'infection longue durée/maladie C'est la dernière phase de la virus, elle exécute tout simplement le payload contenu dans le virus /!\ un virus n'est pas obligé d'avoir un payload dans son programme /!\ cette phase elle-même dépend de la location du payload dans le code, le payload est la charge finale du virus qui contient le code malveillant destiné généralement à voler/détruire des données.Un petit exemple: Code C :
Le payload dedans est bien sûr le destroyFile. Suivant le placement du payload les phases peuvent être inversées entre-elles, mais globalement un virus respecte ce schéma présenté.Durant cette article j'ai mis en gras les mots important à connaître pour bien comprendre ce cours, alors si vous ne comprenez pas, googlez-les. J'ai volontairement sauté quelques infos, comme les techniques virales utilisées, j'en ferait surement l'objet d'un autre article, ce sera plus facile à assimiler. Je suis ouvert à toutes les questions concernant cette article, donc n'hésitez pas . |
|
13-08-2013, 20h06
Message : #2
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Les phases de vie d'un virus
* gruik soumet l'idée d'illustrer par un bout de code pour ceux qui veulent, le choix du langage est ouvert, le programme doit juste implémenter une ou plusieurs des features évoquées dans le post précédent
|
|
13-08-2013, 21h10
Message : #3
|
|
Stoned
Newbie Messages : 9 Sujets : 2 Points: 18 Inscription : Aug 2013 |
RE: Les phases de vie d'un virus
J'ai rajouté un exemple de métamorphisme.
|
|
13-08-2013, 21h52
Message : #4
|
|
oosfalte
Flying Cloud Messages : 47 Sujets : 3 Points: 8 Inscription : Jan 2013 |
RE: Les phases de vie d'un virus
Déjà avant de commencer je précise juste que je suis une buse en virus (et pas seulement).
Polymorphisme/métamorphisme, le virus change ses instructions, ça ok. Mais ces nouvelles instructions pour réécrire le code, il ne les sort pas de sa poche. Donc j'imagine qu'il suit un schéma inscrit lui-même en dur dans le code ? S'il change ses opcodes à chaque réplication, il va vite se trouver à cours d'idées au bout de la 100ème, non?. A moins de suivre un cycle dans le changement des opcodes ... ??? Enfin modifie-t-il seulement certaines routines ou l'ensemble du code ? Ca fait pas mal de questions je sais. Merci pour tes précisions. |
|
14-08-2013, 09h31
Message : #5
|
|
qtkt
Newbie Messages : 13 Sujets : 1 Points: 3 Inscription : May 2013 |
RE: Les phases de vie d'un virus
(13-08-2013, 21h52)oosfalte a écrit : Déjà avant de commencer je précise juste que je suis une buse en virus (et pas seulement). Il me semble que c'est plus ou moins la différence entre un virus polymorphe et du métamorphisme. Dans le cas du polymorphisme on aura généralement un petit bout de code qui va par exemple chiffrer le reste avec une clé aléatoire, le code chiffré + la clé aléatoire + le moteur sera le corps de la nouvelle génération, tout auras changé à l'exception du moteur. Alors que dans le cas du métamorphisme le virus va régénérer l'ensemble de son code, par exemple en le transformant d'abord dans un modèle abstrait puis en régénérant du bytecode à partir de là, mais en introduisant une composante aléatoire sur la facon de faire. Ce qui peut donner un code totalement différent, mais c'est bien plus compliquer à réaliser. Ce n'est pas du tout mon domaine d'expertise, mais j'espère avoir plus ou moins pu répondre à tes questions. J'espère aussi ne pas avoir dit trop de bêtises... |
|
14-08-2013, 13h44
(Modification du message : 14-08-2013, 13h53 par gruik.)
Message : #6
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Les phases de vie d'un virus
|
|
14-08-2013, 14h36
Message : #7
|
|
fr0g
NTEuNDI2MzcsLTEuNzc4NDg4 Messages : 348 Sujets : 22 Points: 56 Inscription : Aug 2011 |
RE: Les phases de vie d'un virus
Joli article merci pour ta participation
|
|
14-08-2013, 17h55
Message : #8
|
|
oosfalte
Flying Cloud Messages : 47 Sujets : 3 Points: 8 Inscription : Jan 2013 |
RE: Les phases de vie d'un virus
Merci qtkt,
en effet si la réplication passe par une phase de chiffrement aléatoire, ça augmente sensiblement les possibilités de combinaisons.Détail que je n'avais pas capté. |
|
14-08-2013, 22h43
Message : #9
|
|
mychris
Newbie Messages : 11 Sujets : 2 Points: 0 Inscription : May 2013 |
RE: Les phases de vie d'un virus
super article, merci
|
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)