Recherche Première Partie : Structure des Virus Informatiques








télécharger 393.25 Kb.
titreRecherche Première Partie : Structure des Virus Informatiques
page1/5
date de publication09.06.2018
taille393.25 Kb.
typeRecherche
ar.21-bal.com > loi > Recherche
  1   2   3   4   5

Projet de Fin d’Année – E.Lemonnier Supaero 97 – Fonctionnement des virus informatiques, exemples sur HP48



Structures des Virus Informatiques,

et illustration sur HP48



Erwan Lemonnier

Supaero – juin 98


Introduction - p3

Présentation et objectif de ce PIR (Projet d’Initiation a la Recherche)

Première Partie : Structure des Virus Informatiques - p5




  1. Structure d’un virus informatique - p5

    1. Définition d’un système informatique - p5

    2. Principe de fonctionnement du virus - p6

    3. Comparaison critique avec le virus biologique. – p7

    4. Les principaux types de virus : virus système et infecteur de fichier - p7

    5. La charge facultative d’un virus - p8




  1. Programmations des types fondamentaux de virus - p9

    1. Virus infecteur de fichiers - p9

    2. Virus système - p11




  1. Stratégie de lutte contre les virus - p12

    1. Les scanners - p12

    2. Les moniteurs de comportements - p13

    3. Le contrôle d’intégrité - p13




  1. Les virus contre-attaquent - p14

    1. Stratégies de base - p14

    2. Les virus furtifs - p15

    3. Les virus répressifs - p16

    4. Les virus autocryptés - p16

    5. Les virus polymorphes. Description d’un Moteur de Mutation - p19

    6. Les virus génétiques - p22




  1. Riposte des antivirus - p22

    1. Analyse spectrale - p23

    2. Analyse heuristique - p23




  1. Perspective d’avenir - p24

    1. Dangers et bienfaits des virus - p24

    2. L’escalade technique entre virus et antivirus cessera-t-elle un jour ? - p25

Seconde Partie : Exemples de virus programmés sur HP48 - p26




  1. Description de la HP48 - p26

    1. Qu’est ce que la HP48 ? - p26

    2. Pourquoi la HP48 ? - p27

    3. Le langage de la HP48 - p27

    4. Le microprocesseur de la HP48 - p28

    5. Structure de la mémoire de la HP48 - p29




  1. Virus écris en langage de haut niveau, infecteur de programme - p30

    1. Principe - p30

    2. Le virus détaillé - p30

      1. Recherche d’un fichier à infecter - p30

      2. Processus de reproduction - p32

    3. Listing complet - p33

    4. Commentaires - p33




  1. Virus infecteur de librairie en assembleur - p34

    1. Description de l’objet librairie - p34

    2. Fonctionnement du virus - p36

    3. Listing commenté du virus - p38

    4. Conclusion - p44




  1. Un virus système résidant : LiPA - p45

    1. Fonctionnement du reset de la HP48 et de sa Main Loop - p45

    2. Fonctionnement de LiPA - p45

      1. Auto-camouflage - p46

      2. Auto-propagation - p46

    3. Conclusion sur LiPA - p47




  1. Virus hybride résidant et autocrypté - p48

    1. Fonctionnement du virus - p48

      1. Installation du virus lors du reset - p48

      2. Main Loop du virus - p48

      3. Chiffrement du virus - p51

    2. Listing commenté du virus - p51

    3. Conclusion sur ce virus - p58


6. Conclusion sur la partie expérimentale: difficultés et intérêt de la programmation - p59

Références bibliographiques - p60


Introduction

Les virus informatiques sont très en vogue dans la presse informatique à sensation. Ces programmes, qui s’infiltrent et se reproduisent dans un ordinateur à l’insu de son propriétaire pour en prendre le contrôle et y causer d’éventuels dégâts, engendrent une fascination craintive et crédule. Il est en effet difficile d’estimer l’importance réelle à accorder à ces programmes, tant les médias aiment à entretenir cette aura trompeuse qui les entoure.

Pourtant, l’informaticien curieux qui décide de s’intéresser au sujet et parvient à faire la part de la vérité sur les virus, découvre en eux des objets éminemment intéressant. Le concept même d’un programme capable de se reproduire et d’ « exister » de manière autonome est séduisant en soi. De plus, la compétition engagée entre les programmeurs de virus et d’antivirus a créé une émulation favorable au développement de techniques de programmations de pointes, où libre court est donné à l’imagination du programmeur. C’est ainsi qu’on rencontre des virus qui se chiffrent eux même ou sont polymorphes. L’ordinateur devient une jungle passionnante où évolue une faune virale pittoresque. Malheureusement, les virus, comme leur nom l’indique sont souvent employés dans un but destructeur et les dégâts logiciels qu’ils causent atteignent des sommes élevées. C’est pourquoi la lutte antivirus revêt une telle importance. Pour la mener à bien, il est nécessaire de commencer par démystifier et comprendre les virus informatiques.

Le but de ce Projet d’Initiation à la Recherche est d’expliquer dans une première partie le fonctionnement des virus informatiques, puis, dans une seconde partie, de mettre en pratique ces algorithmes pour réaliser un virus complet et efficace.

Dans une première partie, nous nous attacherons à dégager les principes généraux employés dans la programmation des virus, indépendamment de la machine utilisée, et ce en faisant la synthèse d’une double expérience de la programmation des virus, à la fois sur PC et ordinateur de poche. Nous commencerons donc par analyser la structure des virus fondamentaux, puis nous étudierons le fonctionnement des logiciels antivirus afin de comprendre les perfectionnements plus récents des virus.

Dans la seconde partie, nous illustrerons les principaux type de virus en étudiant un exemple de chacun d’eux, programmé sur un ordinateur de poche, du type HP48. Nous pousserons cette étude, entre autre, jusqu’à l’écriture d’un virus système et d’un virus hybride autocrypté.

Première Partie :


Structure des Virus Informatiques

L’objectif de cette partie est de présenter les principes généraux de la programmation des virus et des logiciels antivirus, par ordre de complexité croissante des techniques employées, et avec une volonté de généralisation.

Elle a été entre autre inspiré par les travaux de Mark Ludwig, chercheur américain, et en particulier par son livre ‘Du virus à l’antivirus’.



  1. Structure d’un virus informatique


    1. Définition d’un système informatique


On entendra par ordinateur une machine dotée d’une mémoire contenant des programmes et des données, et d’une unité centrale (ou CPU) capable d’exécuter ces programmes, de lire et d’écrire en mémoire. Pour la CPU, toute information située en mémoire (programme comme donnée) peut être modifiée, donc en particulier, un programme peut s’auto-modifier ou modifier d’autres programmes.

On entendra par système informatique un ordinateur, isolé ou en réseau, muni d’un système d’exploitation et de logiciels et données utilisateurs. On définit deux types de fichiers : ceux utilisés par le système et un éventuel administrateur système, et ceux de l’utilisateur normal. Dans un usage courant, on souhaite conserver l’intégrité de certains fichiers, c’est à dire d’en interdire toute modification non autorisée. Ce peut être le cas des fichiers systèmes en général, ou de fichiers utilisateurs de type logiciel ou données importantes. Le virus informatique, par son principe de fonctionnement, va porter atteinte à l’intégrité des fichiers, et présente donc une menace.


    1. Principe de fonctionnement du virus


Un virus informatique est un programme, intégré dans un programme hôte ou localisé dans un champ spécifique de la mémoire, capable lors de son exécution de créer une copie de lui même qu’il insère dans un autre programme hôte ou sur un autre champ de mémoire. Ce programme possède donc une propriété essentielle et originale : il s’auto-reproduit. De tels programmes sont donc assez mobile, et échappent aisément au contrôle de l’utilisateur, c’est pourquoi ils sont souvent utilisés pour véhiculer un algorithme destructeur.

Un virus doit contenir au moins deux parties pour pouvoir se reproduire lui même : un algorithme de recherche d’un fichier hôte à infecter, et un algorithme de recopie sur le fichier hôte. On y ajoute éventuellement une troisième étape (destruction, espionnage…) qui sera détaillée en 1.5.

L’organigramme fondamental d’un virus informatique est donc le suivant :









Figure 1 : Structures d’un virus

On verra par la suite qu’il s’agit la d’un schéma simplifié, et que chacune de ces parties existe sous de très nombreuses variantes que l’on choisira en fonction de l’environnement dans lequel doit évoluer le virus : nature du système informatique, structure des fichiers à infecter, antivirus à affronter…

Nous tacherons de faire le tour de toutes ces variantes.

    1. Comparaison critique avec le virus biologique.


Le terme de ‘virus informatique’ fut proposé pour la première fois par Fred Cohen en 1985 dans une thèse sur les programmes auto-reproducteur (voir Références Bibliographiques), et s’appuie sur des similitudes entre les virus informatiques et biologiques.

Ils ont en effet pour point commun d’introduire une séquence d’instruction, sous forme de programme pour l’un et de morceau d’ADN pour l’autre, dans un environnement (la cellule ou l’ordinateur), où cette séquence va être exécutée, c’est à dire reproduite. De plus, les virus les plus évolués possèdent des moteurs de mutations leur permettant de générer des versions nouvelles d’eux même, et sont capables de s’adapter à la présence d’un antivirus pour optimiser leur chance de lui échapper (virus génétiques, voir 4.6). Ils ont ainsi des propriétés qui rappellent les capacités de mutation et d’adaptation des virus biologiques, leur point commun étant de devoir s’adapter à un environnement hostile, où il faut affronter selon le cas le système immunitaire ou le logiciel antivirus.

Cependant, le terme de virus est sujet à polémique. En effet, la métaphore biologique qui l’a inspirée est limitée car ces deux entités agissent dans des environnements totalement différents, et leurs fonctionnements détaillés n’ont rien en commun. En particulier, la notion de vie attachée au virus biologique ne peut être appliquée à un programme informatique. De plus, le terme ‘virus’ est porteur d’une forte charge émotionnelle, largement entretenue par la presse informatique, et qui déforme l’opinion qu’on peut se faire de ces programmes. Enfin, pour beaucoup de gens, un virus est simplement un programme nuisible, indépendamment de toute notion d’auto-reproductibilité. Une dénomination mieux appropriée a été suggérée par Mark Ludwig dans son ouvrage de référence ‘Naissance d’un virus’ : il s’agit de Code Parasite Auto-Propageable (CPA). Dans le présent rapport, le terme virus sera toujours à prendre dans le sens de CPA.



    1. Les principaux types de virus : Virus système et infecteur de fichier


On distingue 2 grandes catégories de virus, indépendamment de la machine pour laquelle un virus est écrit : les virus infecteurs de fichiers et les virus systèmes (ou résident).

Tout système informatique possède des programmes à l’usage de l’utilisateur, qui sont susceptibles de contenir un virus. Ceux-ci sont dit infecteurs de fichiers. Ils sont exécutés à chaque appel du programme qui les contient et assurent alors leur propagation.

D’autre part, à chaque mise sous tension, tout ordinateur commence par évaluer une série de programmes de démarrage qui lui permettent de se configurer. Bien souvent, on peut modifier le contenu de ces programmes pour y introduire le code d’installation d’un virus ce qui permettra à celui-ci de prendre le contrôle du système dès sa mis en service. Un tel virus est dit virus système.

La différence entre ces deux virus viens donc de ce que le second infecte des programmes du système et n’est exécuté qu’au démarrage, tandis que le premier infecte les programmes de l’utilisateur et est exécuté à chaque appel de l’un d’eux. Il existe également des virus hybrides présentant à la fois ces deux modes de fonctionnements.
Le fonctionnement de ces virus dépend intimement du système informatique, c’est à dire :


  • Du microprocesseur employé, car un virus efficace est programmé en langage machine et n’est donc pas portable.




  • De la façon dont interagissent les périphériques et l’unité centrale. Par exemple, les PCs emploient une table d’interruptions utilisée par les virus pour détourner certaines fonctions du système, dont on ne trouve pas l’équivalent sur une calculatrice de type HP48.




  • Du fonctionnement du démarrage de la machine, dans le cas des virus systèmes.




  • De la structure des objets exécutables. Sur un PC, les fichiers .COM, .SYS et .EXE qui sont les cibles privilégiées des virus infecteurs de fichiers ne sont pas structurés de la même façon en mémoire. De même pour les objets programmes et librairies que nous étudierons sur la HP48.


On constate au vu de ces contraintes qu’un virus est un programme très spécifique, adapté à une cible précise, et dans un environnement précis. Cependant, un virus peut être conçu de telle sorte qu’il infecte toute forme de code, même celui qui doit encore être compilé ou interprété avant d’être exécuté. Ainsi, un virus peut infecter des programmes de types différents, ou encore un programme en C ou en Basic et n’est donc absolument pas limité à l’infection des programmes écrits en langage machine.

    1. La charge facultative d’un virus


D’un certain point de vue, le virus informatique est un support pour véhiculer un programme de façon invisible et efficace. Sous ce point de vue, la partie facultative décrite en 1.2 a un rôle essentiel. Dans la majorité des virus, il s’agit d’un programme destructeur, visant à effacer des fichiers importants ou à planter la machine. Il peut aussi servir à espionner le système pour, par exemple, lister les mots de passes des utilisateurs et les transmettre au programmeur du virus. Le champ des possibilités a en fait l’imagination du programmeur pour seule limite.

Notons que cette action peut aussi être bénéfique. Il existe par exemple des virus antivirus, qui élimine certains virus cibles lorsqu’ils sont présents sur le programme hôte qu’ils infectent, et contrôlent ensuite leur hôte pour alerter toute tentative d’infection. D’autres servent à économiser de la mémoire en compressant le programme hôte, et en le décompressant à chaque exécution.

Ainsi, la propriété de reproduction autonome des virus présente à la fois de nets risques et de grands avantages. C’est donc une technique digne d’étude.


  1. Programmations des types fondamentaux de virus


    1. Préliminaires


Les programmeurs de virus utilisent énormément d’astuces ou de failles des systèmes informatiques qui sont très spécifiques, c’est pourquoi les algorithmes qui vont vous être présentés dans cette partie sont des cas possibles parmi beaucoup d’autre, dont on ne peut dresser ici une liste exhaustive. L’inventivité des programmeurs de virus est en effet stupéfiante. D’autre part, pour ne pas rentrer dans des détails de programmation qui seront ultérieurement étudiés en partie 2, les algorithmes fournis seront simplifiés à l’extrême.


    1. Les virus infecteurs de fichier


Tout virus infecteur de fichier exécute en premier une routine de recherche d’un fichier hôte sain à contaminer. Prenons le cas d’un virus cherchant un fichier .HOT dans une arborescence de répertoires DIR. L’organigramme d’une telle routine pourrait être le suivant :






Non









Non









Figure 2 : Algorithme de recherche d’un fichier à infecter

Il existe plusieurs façons d’installer un virus infecteur dans un fichier hôte (partie infection ci-dessus). Nous en distinguerons 3 :

  • Par recouvrement du programme hôte par le code du virus. Le programme hôte est alors perdu. Notons qu’un tel virus est très facile à réaliser mais aisément identifiable.




  • En renommant le programme hôte avec un nom excentrique, et en prenant le nom original de l’hôte (virus compagnon).




  • Ou en se copiant à l’intérieur du programme hôte, ce qui impose d’en modifier la structure.


La dernière stratégie est la plus employée car c’est la plus discrète. Etudions la en détail. Sois un programme .HOT à infecter. Sa structure en mémoire est typiquement :


Zone Préfixe de Programme


F
Programme .HOT
igure 3.1
 : Structure d’un fichier à infecter

Un virus a alors 2 façons de s’introduire dans le programme .HOT : en se copiant au début du programme et en décalant ce dernier , ou en se copiant a la fin et en incluant un saut au début du fichier .HOT.

Zone Préfixe de Programme

Zone Préfixe de Programme

Virus

Saut vers le virus



Programme .HOT

Programme .HOT



Virus





Figure 3.2 : Fichier infecté par un virus parasite

Un dernier type de virus infecteur de fichier est le virus résidant. Celui-ci ne se reproduit pas lorsque le programme hôte est exécute, mais se recopie dans un zone mémoire où il reste en veille en détournant par exemple des interruptions systèmes (cas du PC). Il ne se reproduira que lorsque l’interruption sera appelée. Il est ainsi dissocié de son programme hôte, ce qui réduit les risques de se faire repérer.


    1. Les virus systèmes


Chaque système informatique (PC, station Sun, HP48…) possède son propre mode de démarrage, auquel le virus système est intimement lié. Nous allons donc nous restreindre au cas des PC pour comprendre comment marche un virus système.

Lors de sa mise sous tension, la CPU (unité centrale) du PC commence par exécuter un programme écrit en ROM, le BIOS, chargé de configurer la machine autour de la CPU. En fin d’exécution, le BIOS recherche une zone mémoire, appelée secteur de démarrage, et charge la CPU de l’exécuter. Ce secteur de démarrage contient un programme construit par le système d’exploitation pour permettre à la CPU de le lancer. Le virus système est installé de façon à être exécuté avec ce programme. Pour cela, il le remplace en général sur le secteur de démarrage, après en avoir fait une copie qui sera exécuté après le virus.

Pour se reproduire, le virus système a 2 possibilités : soit il cherche un autre disque pour en infecter le secteur de démarrage (Tout disque, ou disquette, en contiens effectivement un). Soit, il infecte un fichier utilisateur, depuis lequel il infectera ultérieurement un autre disque, ou encore il se fait résidant. Dans ce dernier cas, le virus est dit hybride.

Un virus système rudimentaire pourrait fonctionner comme suit (Figures 4.1 et 4.2) :


  1   2   3   4   5

similaire:

Recherche Première Partie : Structure des Virus Informatiques iconChapitre 1 management nrc 2
«structure» dans l'entreprise: struc­ture du capital, structure juridique, structure financière, structure de coûts, structure de...

Recherche Première Partie : Structure des Virus Informatiques iconChapitre 1 management nrc 2
«structure» dans l'entreprise: struc­ture du capital, structure juridique, structure financière, structure de coûts, structure de...

Recherche Première Partie : Structure des Virus Informatiques iconRecherche (à caractère fondamental et appliqué) et entreprises(stages...
«éminents» pour développer avec et dans la structure d’accueil des travaux de recherche et de formation par la recherche, ainsi que...

Recherche Première Partie : Structure des Virus Informatiques iconSodome et Gomorrhe Première partie Première apparition des hommes-femmes,...

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 17 Première partie repenser le gouvernement 22 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 16 Première partie repenser le gouvernement 21 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 17 Première partie repenser le gouvernement 22 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 17 Première partie repenser le gouvernement 22 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 17 Première partie repenser le gouvernement 22 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches

Recherche Première Partie : Structure des Virus Informatiques iconRésumé 17 Première partie repenser le gouvernement 22 Face au populisme,...
Vous qui cherchez des festins gratuits / Et qui, les jours travaillés comme les dimanches








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com