54 votes

Comment fonctionnent les anti-virus ?

J'ai récemment réfléchi aux virus et je me suis demandé comment les antivirus pouvaient tenir le coup. Si l'on considère que n'importe qui ayant codé pendant quelques semaines peut pirater quelque chose qui fait de vilaines, vilaines choses au PC de quelqu'un, la quantité seule rendrait une simple liste de hashs prohibitive, alors comment font les antivirus ? Surveillent-ils l'activité des processus et ont-ils une règle de 3 fautes pour faire des choses qui ressemblent à des virus ? Et si c'est le cas, qu'est-ce qui les empêche de se déclencher sur des choses parfaitement inoffensives (comme le fait que je déplace des fichiers dans mon ordinateur) ? \system32 ) ?

J'ai fait un peu de recherche sur Internet, mais les sites habituels n'ont pas été d'une grande aide, et je n'ai pas trouvé de doublon ici, alors j'ai pensé que ce serait bien de demander :)

17voto

user7375 Points 569

Ce site Un article de 2002 parle de la construction d'un moteur antivirus.

L'article décrira idées, concepts, composants et approches impliquées dans le développement d'un programme anti-virus à partir de zéro point de vue d'un développeur/ingénieur logiciel du point de vue d'un développeur/ingénieur logiciel. Il se concentrera sur les principaux éléments d'un moteur antivirus (ci-après dénommé "moteur AV") et exclura des aspects tels que les interfaces graphiques, les moniteurs en temps temps réel, les pilotes de systèmes de fichiers et plug-ins pour certaines applications d'application comme Microsoft Exchange ou Microsoft Office. Bien que les moteurs AV fonctionnant (telles que Palm OS ou EPOC/Symbian OS) peuvent être conçus de la même manière, cet article se concentrera sur la conception de moteurs moteurs d'analyse multi-plateformes, qui sont sont beaucoup plus complexes.

Il y a aussi un article sur les techniques heuristiques pour détecter les infections. C'est aussi une lecture intéressante.

13voto

user2802 Points 21

Il y a environ un an, j'ai assisté à une conférence de Mikko Hyyppönen, l'un des principaux chercheurs de F-Secure. Il a présenté son réseau de tests automatisés, dans lequel ils créent des machines virtuelles pour chaque échantillon qui leur est envoyé, analysent sa structure, le laissent s'exécuter, enregistrent tout ce qu'il fait, le croisent avec des échantillons précédents et génèrent un résumé qu'un humain peut vérifier ultérieurement. Si l'homme conclut qu'il s'agit d'un virus, le système génère automatiquement la signature de détection et envoie une mise à jour aux clients. J'imagine que d'autres fournisseurs disposent également de systèmes similaires pour maintenir à jour leurs bases de données de signatures.

4voto

De Comment fonctionne un logiciel anti-virus ? (AntivirusWorld) :

Un logiciel antivirus est un programme informatique qui peut être utilisé pour analyser des fichiers afin d'identifier et d'éliminer les virus informatiques et autres logiciels malveillants (malware).

Les logiciels antivirus utilisent généralement deux techniques différentes pour y parvenir :

  • Examiner les fichiers pour rechercher des éléments connus virus connus à l'aide d'un dictionnaire de virus Identifier un comportement suspect de tout programme informatique qui pourrait indiquer une infection
  • La plupart des logiciels anti-virus commerciaux utilise ces deux approches, avec l'accent étant mis sur l'approche du dictionnaire de virus des virus.

Approche par dictionnaire de virus Dans l'approche du dictionnaire de virus, lorsque le logiciel antivirus examine un fichier, il se réfère à un dictionnaire de virus connus qui ont été identifiés par l'auteur du logiciel antivirus. Si un morceau de code dans le fichier correspond à un virus identifié dans le dictionnaire, le logiciel antivirus peut alors soit supprimer le fichier, soit le mettre en quarantaine afin que le fichier soit inaccessible aux autres programmes et que son virus ne puisse pas se propager, soit tenter de réparer le fichier en supprimant le virus lui-même du fichier.

Pour être efficace à moyen et à long terme, l'approche du dictionnaire des virus nécessite des téléchargements en ligne périodiques des entrées actualisées du dictionnaire des virus. Au fur et à mesure que de nouveaux virus sont identifiés "dans la nature", les utilisateurs à l'esprit civique et technique peuvent envoyer leurs fichiers infectés aux auteurs de logiciels antivirus, qui incluent alors des informations sur ces nouveaux virus dans leurs dictionnaires.

Un logiciel antivirus basé sur le dictionnaire examine généralement les fichiers lorsque le système d'exploitation de l'ordinateur les crée, les ouvre et les ferme, et lorsque les fichiers sont envoyés par courrier électronique. De cette manière, un virus connu peut être détecté dès sa réception. Le logiciel peut également être programmé pour examiner régulièrement tous les fichiers du disque dur de l'utilisateur.

Bien que l'approche du dictionnaire soit considérée comme efficace, les auteurs de virus ont essayé de garder une longueur d'avance sur ces logiciels en écrivant des "virus polymorphes", qui chiffrent des parties d'eux-mêmes ou se modifient d'une autre manière pour se déguiser, afin de ne pas correspondre à la signature du virus dans le dictionnaire.

Approche du comportement suspect L'approche fondée sur les comportements suspects, en revanche, ne cherche pas à identifier les virus connus, mais surveille le comportement de tous les programmes. Si un programme tente d'écrire des données dans un programme exécutable, par exemple, cela est signalé comme un comportement suspect et l'utilisateur est alerté et invité à agir.

Contrairement à l'approche par dictionnaire, l'approche par comportement suspect permet donc de se protéger contre de tout nouveaux virus qui n'existent encore dans aucun dictionnaire de virus. Cependant, elle sonne également un grand nombre de faux positifs, et les utilisateurs se désensibilisent probablement à tous les avertissements. Si l'utilisateur clique sur "Accepter" à chaque avertissement de ce type, le logiciel antivirus est de toute évidence inutile pour cet utilisateur. Ce problème s'est aggravé au cours des sept dernières années, car de plus en plus de programmes non malveillants ont choisi de modifier d'autres fichiers .ex sans tenir compte de ce problème de faux positifs. Ainsi, la plupart des logiciels anti-virus modernes utilisent de moins en moins cette technique.

Autres moyens de détecter les virus Certains logiciels antivirus essaient d'émuler le début du code de chaque nouvel exécutable en cours d'exécution avant de transférer le contrôle à l'exécutable. Si le programme semble utiliser un code auto-modifiant ou se présente comme un virus (il essaie immédiatement de trouver d'autres exécutables), on peut supposer que l'exécutable a été infecté par un virus. Toutefois, cette méthode donne lieu à un grand nombre de faux positifs.

Une autre méthode de détection consiste à utiliser un bac à sable. Une sandbox émule le système d'exploitation et exécute l'exécutable dans cette simulation. Une fois le programme terminé, le bac à sable est analysé pour détecter les changements qui pourraient indiquer la présence d'un virus. Pour des raisons de performances, ce type de détection n'est normalement effectué que lors des analyses à la demande.

Sujets de préoccupation

Les macrovirus, qui sont sans doute les virus informatiques les plus destructeurs et les plus répandus, pourraient être évités de manière beaucoup plus économique et efficace, et sans que tous les utilisateurs aient besoin d'acheter un logiciel antivirus, si Microsoft corrigeait les failles de sécurité de Microsoft Outlook et de Microsoft Office liées à l'exécution de codes téléchargés et à la capacité des macros de documents à se propager et à faire des ravages.

L'éducation des utilisateurs est aussi importante que les logiciels antivirus ; le simple fait de former les utilisateurs à des pratiques informatiques sûres, comme ne pas télécharger et exécuter des programmes inconnus sur Internet, ralentirait la propagation des virus, sans qu'il soit nécessaire d'utiliser un logiciel antivirus.

Les utilisateurs d'ordinateurs ne devraient pas toujours disposer d'un accès administrateur à leur propre machine. S'ils fonctionnaient simplement en mode utilisateur, certains types de virus ne pourraient pas se propager.

L'approche par dictionnaire pour détecter les virus est souvent insuffisante en raison de la création continuelle de nouveaux virus, tandis que l'approche par comportement suspect est inefficace en raison du problème des faux positifs ; par conséquent, la compréhension actuelle des logiciels antivirus ne permettra jamais de vaincre les virus informatiques.

Il existe différentes méthodes de cryptage et de conditionnement des logiciels malveillants qui rendent même les virus les plus connus indétectables par les logiciels antivirus. La détection de ces virus "camouflés" nécessite un puissant moteur de décompression, capable de décrypter les fichiers avant de les examiner. Malheureusement, de nombreux programmes antivirus populaires n'en disposent pas et sont donc souvent incapables de détecter les virus cryptés.

Les sociétés qui vendent des logiciels antivirus semblent avoir un intérêt financier à ce que des virus soient créés et se propagent, et à ce que le public panique devant cette menace.

(J'aime cet article, et je viens de faire un copier-coller depuis AntivirusWorld).

3voto

Shaun Hess Points 504

Phoshi, votre question est très intéressante, mais je vous suggère de commencer votre quête par une autre. Je vous le conseille car les réponses à la question que vous avez posée peuvent vous induire en erreur.

Je vous suggère de commencer par réfléchir à ce que vous considérez comme un virus, quelle est sa définition.

Les auteurs de virus d'élite sont des chercheurs en sécurité, pas des scriptenfants. Leur définition du virus est la suivante : "un virus est un morceau de code qui peut se multiplier". C'est tout. Comme vous pouvez le voir, il n'y a aucune caractéristique destructive mentionnée ici. Tous les virus sont obligatoires et sont mauvais - c'est la croyance erronée des fabricants d'antivirus propriétaires qui leur permet de vendre leurs logiciels.

À mon avis, il est sage de traiter les virus comme une partie de l'écosystème logiciel dans son ensemble, et non comme des "extraterrestres" maléfiques.

1voto

loudej Points 1590

Une façon très importante de considérer les virus est l'inverse. Comment les virus compromettent-ils les systèmes ? C'est généralement par le biais de vulnérabilités logicielles. Les logiciels anti-virus sont conscients de ces vulnérabilités et recherchent les logiciels qui les influencent. Dans tous les cas, les virus FAISENT toujours quelque chose. Ils ont donc besoin d'un processus de travail pour faire ce qu'ils font le mieux. Parfois, il s'agit d'un processus existant, parfois ils en créent un eux-mêmes.

Cependant, la plupart des virus fonctionnent de manière similaire, ce qui permet à un antivirus de les distinguer facilement. Il existe de nombreux virus différents qui utilisent la même vulnérabilité !

http://en.wikipedia.org/wiki/List_of_computer_viruses

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X