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 .
-Le méthamorphisme: C'est une sorte de polymorphisme mais dans ce cas, il change même son code/structure interne.
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:
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 .
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:
LEA EAX,ECX CMP EAX,Var1 JNE un_endroit // code original MOV EAX,OFFSET ECX TEST EAX,Var1 JNE un_endroit // code polymorphé
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:
main () { openFile(); if(openFile!=NULL) { 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 .
Commentaire