Le premier virus que j’ai rencontré, c’était en 1985 et consistait en un bout de code qui se rejoutait au fichier éxécutable sous DOS. À chaque éxécution du fichier ce programme recherchahit un fichier .com ou .exe et infectait le fichier. J’écrivais un livre à Jussieu à l’époque et j’avais du déssambler le code (1860 octets seulement). Ce code était un «Vendredi 13», il formattait le disque dur ce jour là. (Pour la petite histoire, il était buggué (il se rajoutait sur lui même et les éxécutables prenaient du poids), je l’avais débuggué et modifié pour qu’à la place de formatter le disque dur, il affichait toutes les 10 minutes «BigBrother is watching you!», et je l’ai remis à Jussieu. Si vous avez choppé ça à l’époque, c’est moi désolé). Tous ces virus nécessitaient l’éxécution du programme vérolé et se transmettaient par disquette.
À l’apparition de Windows, il y a eu automatisation: par exemple déclenchement automatique de programme à l’insertion d’une disquette, de la lecture d’un site. Sont apparus les premiers virus ne nécessitant aucune intervention de l’utilisateur. Ces virus modifiait le système et les fichiers systèmes ce qui était largement possible sous Windows avec pour un utilisateur normal. Lors de la généralisation des clefs USB, on a vu toute une famille de virus se développer parce que Windows éxécutait le programme déclaré dans «autorun.inf» sur la clef.
Linux est un système d’emblée prévu multiutilisateur donc avec des droits limités et précis pour l’utilisateur standard: Un utilisateur sous linux faisant «rm -Rf *» sous la racine ne démolit pas le système, l’équivalent sous Windows si. Voilà la première raison qui fait qu’un virus réellement nocif sous linux est très délicat à faire, on peut envisager des virus mais ceux ci ayant des droits standard ne pourront pas faire grand chose, au pire on supprimme tous les fichiers appartenant à cet utilisateur et le virus est supprimé. Le plus petit est un virus de 40 octets environ qui rajoutait une 20 de suivi d’un code javascript à la signature de l’utilisateur d’Outlook. Ce petit javascript était éxécuté à la lecture du mail et modifiait la signature du possesseur du compte. Redoutable ce truc. Un tel virus est parfaitement envisageable sous linux avec des lecteurs de mails éxécutant sans précaution les messages HTML reçus, par contre un virus de ce type repose sous la domination quasi totale d’un logiciel de lecture de courriel (ce qui est le cas sous Outlook). Je n’ai pas la moindre idée du seuil de domination nécessaire mais avec Mutt/Sylpheed/Kmail/Thunderbird/etc sous linux, il n’y a rien qui s’impose vraiment.
Les vers sont un peu différents, les plus violents que j’ai vu sont Swen et Opaserv mais il y en a d’autres et je ne connais pas très bien ces trucs. Opaserv se contentait de scanner des adresses IP sur Internet et essayait de monter de disque dur de la machine distante et de s’installer. J’avais mis sur mon serveur à l’époque un script qui chaque fois qu’une machine essayait de monter mon disque dur (façon réseau Netbios) montait le disque dur C: de cette machine et lui déposait un message sur son bureau et à la racine), en quelque mois j’ai atteint dfes milliers de machines (messages signés adresse/pageconcernee.php?page=“http://sitevise.labas.fr” permet au pirate de charger et d’éxécuter un script php avec des droits apache, tu peux essayer à la main en cherchant sur google des adresses avec “?url=” ou “?page=” dedans, puis tu les appelles en mettant une adresse précise après page= ou url=, si tu constates que la page visée est chargée, tu as trouvé une faille et tu peux te lancer dans le piratage du serveur, il y a 4-5 ans, tu mettais un quart d’heure à une demi heure pour trouver un tel site), cette faille est tellement simple qu’il y a des scripts automatiques cherchant automatiquement les sites et les compromettant. On peut considérer ces scripts comme des vers même si au démarrage, ce sont des scripts de piratage. Beaucoup de botnets sont fait comme ça (du moins étaient, c’est un peu vieux comme technique maintenant). Pour de tels vers, l’OS du serveur et le serveur Web utilisé n’ont pas d’importance, c’est le code PHP qui est la fragilité.
Les virus destinés à enquiquiner un utilisateur donné ont quasiment disparus, maintenant ce sont des virus à bas bruit essayant de ne pas se faire remarquer et permettant d’intégrer la machine dans un botnet.