Comment fonctionnent les anti-virus?

54

Je pensais donc aux virus récemment et je me demandais comment les antivirus pouvaient suivre exactement. Considérant que toute personne qui codait depuis quelques semaines pouvait pirater quelque chose qui ferait des choses désagréables au PC de quelqu'un, la quantité seule rendrait une simple liste de hachages prohibitive, alors comment les antivirus le font-ils? Surveillent-ils l'activité des processus et appliquent-ils une règle des 3 coups pour faire des choses ressemblant à des virus? Et si oui, qu'est-ce qui l'empêche de déclencher des actions parfaitement inoffensives (comme le déplacement de fichiers dans \ system32)?

J'ai fait un peu de googler, mais les places habituelles ne m'ont pas aidée et je ne pouvais pas trouver une dupe ici, alors j'ai pensé que ce serait bien de demander :)

Phoshi
la source
4
@ joe il n'est pas nécessaire d'ajouter une balise windows. Un antivirus fonctionne à peu près de la même manière dans n'importe quel système d'exploitation. En outre, la manière dont un AV fonctionne n'est pas subjective.
alex
Oh. Désolé je pensais que cela pourrait être sur Windows et subjectif. Je comprends que
joe
6
Ils sont préinstallés à l’achat d’un ordinateur portable et gémissent pendant 60 jours au cours desquels vous devez les enregistrer / les payer, jusqu’à ce que vous les retiriez de votre système. Habituellement, leurs dialogues sont modaux et optimaux pour pouvoir vous empêcher de faire quoi que ce soit d’autre, et ils n’offrent jamais un moyen simple de désinstaller.
Daniel Daranas
bosse le +1 pour une très belle question
dag729
Les heuristiques audiovisuelles sont sophistiquées mais ne parviendront pas à détecter les nouvelles menaces (ou les variantes intelligentes des menaces existantes). Les heuristiques produisent souvent des faux positifs sur un logiciel / code totalement inoffensif. Les logiciels audiovisuels sont utiles mais constituent souvent une béquille qui donne aux utilisateurs un faux sentiment de sécurité. J'ai testé de nombreux virus connus sur ( virustotal.com/fr ) et des grands noms tels que Symantec, McAfee et AVG ne détectent rien (bien que Kaspersky s'en tire généralement bien). Mieux vaut connaître votre système, surveiller ce que vous faites ... et faire une sauvegarde!
AlainD

Réponses:

17

Cet article de 2002 parle de la construction d'un moteur antivirus.

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

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

alex
la source
+1 pour cet article heuristique - très intéressant :)
Phoshi
C'est celui qui vaut vraiment la lecture. La partie heuristique est essentielle :)
alex
Après avoir lu cela, j’ai un respect nouveau pour les antivirus, ce qui est plutôt malin!
Phoshi
Ce sont des applications incroyablement complexes. Malheureusement, ils ont été transformés en quelque chose que beaucoup de gens, y compris moi-même, détestent. Des interfaces personnalisées, bâclées, non intuitives, des fonctionnalités ajoutées simplement pour ajouter un autre point à la liste des fonctionnalités, gonflement. C'est ce qui les a transformés en cauchemars. Les choses se retournent, cependant; Le meilleur exemple de bonne solution audiovisuelle est le MSE.
alex
Désolé, joe: P Bonne réponse malgré tout :) @alex; Hélas, je suis d'accord, mais comprendre les complexités ci-dessous me rend plus sympathique. C’est un travail complexe qui n’aurait pas assez de sens pour inciter un client potentiel à porter l’interface utilisateur graphique couleur personnalisable! pourrait :(
Phoshi
13

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 montré leur réseau de test automatisé, où ils créent des machines virtuelles pour chaque échantillon qui leur est envoyé, analysent sa structure, le laisse fonctionner, enregistrent tout ce qu'il fait, font des références croisées avec les échantillons précédents et génèrent un résumé à vérifier par une personne. Si l'humain 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 ont également des systèmes similaires pour maintenir leurs bases de données de signatures à jour.

Hirvox
la source
4

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

Un logiciel anti-virus 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 (malwares).

Un logiciel anti-virus utilise généralement deux techniques différentes pour y parvenir:

  • Examen des fichiers à la recherche de virus connus à l'aide d'un dictionnaire antivirus Identification du comportement suspect de tout programme informatique pouvant indiquer une infection
  • La plupart des logiciels antivirus commerciaux utilisent ces deux approches, l’accent étant mis sur le dictionnaire de virus.

Approche par dictionnaire de virus Dans l'approche par dictionnaire de virus, lorsque le logiciel anti-virus examine un fichier, il fait référence à un dictionnaire de virus connus identifiés par l'auteur du logiciel anti-virus. Si un élément de code du fichier correspond à un virus identifié dans le dictionnaire, le logiciel anti-virus peut alors supprimer le fichier, le mettre en quarantaine afin que le fichier soit inaccessible à d'autres programmes et que son virus ne puisse pas se propager, ou soit tenté. réparer le fichier en supprimant le virus lui-même.

Pour réussir à moyen et à long terme, l’approche du dictionnaire des virus nécessite des téléchargements en ligne périodiques des entrées de dictionnaire de virus mises à jour. À mesure que les nouveaux virus sont identifiés "à l'état sauvage", les utilisateurs à l'esprit civique et enclins à la technique peuvent envoyer leurs fichiers infectés aux auteurs du logiciel anti-virus, qui incluent ensuite des informations sur les nouveaux virus dans leurs dictionnaires.

Un logiciel antivirus basé sur un 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é immédiatement après 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 par dictionnaire soit considérée comme efficace, les auteurs de virus ont tenté de garder une longueur d'avance sur ces logiciels en écrivant des "virus polymorphes", qui chiffrent des éléments d'eux-mêmes ou se modifient eux-mêmes en tant que méthode de dissimulation, de manière à ne pas correspondre à la signature du virus. dans le dictionnaire.

Méthode du comportement suspect Au contraire, la méthode du comportement suspect ne tente pas d'identifier les virus connus, mais surveille plutôt le comportement de tous les programmes. Si un programme essaie d'écrire des données dans un programme exécutable, par exemple, cela est signalé comme un comportement suspect et l'utilisateur en est averti et il lui est demandé quoi faire.

Contrairement à l'approche par dictionnaire, l'approche par comportement suspect offre donc une protection contre les nouveaux virus qui n'existent pas encore dans les dictionnaires de virus. Cependant, il semble également y avoir un grand nombre de faux positifs et les utilisateurs deviennent probablement insensibles à tous les avertissements. Si l'utilisateur clique sur "Accepter" à chaque avertissement, le logiciel antivirus est évidemment inutile pour cet utilisateur. Ce problème a été particulièrement aggravé au cours des 7 dernières années, car de nombreux autres concepteurs de programmes non malveillants ont choisi de modifier d’autres fichiers .ex sans tenir compte de ce faux positif. Ainsi, la plupart des logiciels antivirus modernes utilisent cette technique de moins en moins.

Autres moyens de détecter les virus Certains logiciels anti-virus essaieront d’émuler le début du code de chaque nouvel exécutable en cours d’exécution avant de transférer le contrôle sur l’exécutable. Si le programme semble utiliser du code à modification automatique ou apparaître 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. Cependant, cette méthode génère beaucoup de faux positifs.

Une autre méthode de détection consiste à utiliser un bac à sable. Un bac à sable émule le système d'exploitation et exécute le fichier exécutable dans cette simulation. Une fois le programme terminé, la sandbox analyse les modifications susceptibles d'indiquer un virus. En raison de problèmes de performances, ce type de détection est normalement effectué uniquement lors d'analyses à la demande.

Sujets de préoccupation

Les macro-virus, qui sont sans aucun doute les virus informatiques les plus destructeurs et les plus répandus, pourraient être évités beaucoup plus économiquement et efficacement, et sans que tous les utilisateurs aient besoin d'acheter un logiciel anti-virus, si Microsoft corrigeait les failles de sécurité dans Microsoft Outlook et Microsoft Office l'exécution du code téléchargé et à la capacité des macros de documents à se propager et à causer des ravages.

La formation des utilisateurs est aussi importante que les logiciels anti-virus. le simple fait de former les utilisateurs aux pratiques informatiques sûres, telles que ne pas télécharger et exécuter des programmes inconnus à partir d’Internet, ralentirait la propagation des virus, sans recourir à un logiciel anti-virus.

Les utilisateurs d’ordinateurs ne doivent pas toujours s’exécuter avec un accès administrateur sur leur propre ordinateur. S'ils s'exécutaient simplement en mode utilisateur, certains types de virus ne pourraient pas se propager.

L'approche du dictionnaire pour détecter les virus est souvent insuffisante en raison de la création continue de nouveaux virus, mais l'approche du comportement suspect est inefficace en raison du problème de faux positif; par conséquent, la compréhension actuelle des logiciels anti-virus ne pourra jamais vaincre les virus informatiques.

Il existe différentes méthodes de cryptage et d’emballage des logiciels malveillants pour rendre même les virus bien connus indétectables par les logiciels anti-virus. 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 ne le possèdent pas et sont donc souvent incapables de détecter les virus cryptés.

Les entreprises qui vendent des logiciels antivirus semblent avoir un intérêt financier à ce que les virus soient écrits et propagés, et au public à paniquer devant la menace.

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

Joe
la source
Merci :) Pour l'approche par dictionnaire, cela signifie-t-il que si je copiais un code de virus connu et le mettais dans mon application, il serait détecté, mais si j'écrivais quelque chose de similaire, il faudrait attendre le comportement suspect? (Hypothétiquement, bien sûr)
Phoshi
OUI .. ce sera.
Joe
Cela a du sens, si vous ne pouvez pas arrêter les virus, alors arrêter le code existant est assez bon (et donné une durée infinie, arrêterait tous les virus possibles - pas mal: P)
Phoshi
C'est ce qu'est une signature. Une partie du code d'ordinateur malveillant commun à plusieurs virus.
alex
Si l'AV compare un fichier à un dictionnaire de, disons 10 000 virus connus, pourquoi est-il aussi rapide? Comment se fait-il que chaque fichier prenne quelques millisecondes à analyser?
LantisGaius
3

Phoshi, votre question est très intéressante, mais je vous suggère de commencer votre quête par une autre. Je conseille cela parce que 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 Elite sont des chercheurs en sécurité, et non des script kiddies. Leur définition de virus est la suivante: "un virus est un morceau de code qui peut se multiplier". C'est ça. Comme vous pouvez le constater, aucune caractéristique destructive n’est mentionnée ici. Tous les virus obligatoires sont maléfiques - c'est ce que vous obtenez des fabricants d'antivirus propriétaires pour qu'ils puissent vendre leur logiciel.

À mon humble avis, il est judicieux de traiter les virus comme faisant partie de l’ensemble de l’écosystème logiciel, et non comme des extraterrestres maléfiques.

geek
la source
Eh bien, j'ai demandé comment les AV fonctionnent, alors je pense que les réponses ... répondez-y plutôt bien, mais vous faites valoir un très bon point, il y a matière à réflexion :)
Phoshi
Regarder deux antivirus sur le même ordinateur en essayant de se tuer est également hilarant. N'hésitez pas à vous demander pourquoi ils font cela :-)
geek
1

L’inverse est un moyen très important de regarder les virus. Comment les virus compromettent-ils les systèmes? Ceci est généralement dû aux vulnérabilités logicielles. Un logiciel anti-virus est conscient de ces vulnérabilités et recherche les logiciels les influençant. Quoi qu'il en soit, les virus font toujours quelque chose. Ils ont donc besoin d'un processus de travail pour faire ce qu'ils font le mieux. Parfois, cela se trouve dans un existant, parfois, ils se créent eux-mêmes.

Cependant, la plupart des virus fonctionnent de la même manière, ce qui permet à un anti-virus de les distinguer facilement. Il existe de nombreux virus utilisant la même vulnérabilité!

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

Fosse
la source