Quels enseignements peut on tirer de ce
travail de programmation concernant les virus ?
D’abord, on a prouvé l’incontestable
supériorité des virus écrits en langage machine.
Ensuite, on s’aperçoit qu’il est
particulièrement difficile d’écrire un code parasite auto-propageable et ce
pour plusieurs raisons. La première est qu’il faut une connaissance extrêmement
pointue du système informatique dans lequel doit évoluer le virus, d’abord pour
y trouver la faille qui permettra la réalisation d’un virus, puis pour éviter
que ce virus ne commette d’erreurs qui le trahissent, et pour pouvoir tirer au
mieux partie de ce système dans l’écriture de virus les plus synthétiques et
efficaces possibles. La seconde difficulté provient de l’emploi nécessaire du
langage machine. Cela impose un long travail de réflexion sur papier et
l’écriture préalable du code complet avant de le rentrer sur la machine. La
phase de débbugage qui suit alors est d’autant plus difficile qu’un code en
langage machine est peu lisible et contrôlable, et que les erreurs commises
viennent souvent d’une compréhension insuffisante du système.
En contre
partie à ces difficultés, l’écriture de virus a une dimension ludique certaine.
En effet, la conception d’un virus commence par la traque des failles d’un
système, qui peut prendre la forme d’un duel entre le programmeur et la
machine, où le jeu consiste pour le premier à avoir assez d’imagination et
d’astuce pour trouver un moyen d’atteindre son but. A bien y réfléchir, il y a
peu de différence par exemple entre la recherche d’une solution à une partie
d’échec et celle d’un moyen de concevoir un virus pour tel système. Lorsque
l’on se prend au jeu, on finit même par imaginer des solutions de plus en plus
audacieuses et par percevoir une forme d’esthétique dans les meilleurs d’entre
elles. Un autre attrait des virus est la richesse d’imagination qu’ils
autorisent. On a vu en effet la grande variété des techniques possibles et que
l’on peut perfectionner sans fin. On peut ajouter à cela les possibilités
indénombrables qu’offre la charge facultative.
L’écriture de
virus apparaît donc comme un exercice de programmation assez amusant, et on
comprend que des informaticiens se passionnent pour eux. Il faut ajouter à ce
point de vue un dernier élément qui n’apparaît qu’après une certaine pratique
des virus : le programmeur prend plaisir à voir évoluer son virus et à se
laisser surprendre par lui. Avec les virus polymorphes génétiques, on a
pressentis qu’on pouvait rapprocher les virus d’une notion de vie artificielle.
Certains programmeurs vont jusqu’à imaginer des virus évolutifs qui peupleraient
l’ordinateur et s’y feraient une lutte virtuelle, à la manière de jeux comme
Core War, pour distraire l’utilisateur. Une chose est certaine : le
concept de virus est extrêmement fertile en termes d’idées nouvelles.
Pour terminer
sur un bémol, soulignons que les arguments précédents sont issus d’un point de
vue d’informaticien, et ne prennent donc pas en compte le danger des virus
nocifs. Il s’agit effectivement d’un genre de programmation à la fois riche et
amusant, mais qui se montre redoutablement efficace lorsque il est employé à
mauvais escient.
Erwan
Lemonnier
Aucun commentaire:
Enregistrer un commentaire