Michał “lcamtuf” Zalewski et un contributeur oublié, 1998.
Après avoir inclus un code similaire, appelé « fork bomb », dans sa signature pendant un certain temps, l’expert en sécurité informatique qui a présenté ce code pour la première fois a reçu un courriel lui suggérant d’utiliser « : » comme nom de fonction, afin que le script concis commence par un smiley à la bouche ouverte. Ce script est désormais non seulement vendu sous forme de produits dérivés (T-shirts, autocollants, mugs, etc.), mais plusieurs personnes se le sont même fait tatouer.
À propos du code
Le script shell Unix très court :
:(){ :|:& };:
fonctionne de la même manière que le programme plus long et plus clair :
spawn() {
spawn | spawn &
}; spawn
Sans doute l’exemple le plus court de logiciel malveillant, c’est aussi un programme récursif élégant dont le seul « effet secondaire » est de ralentir, puis de faire planter l’ordinateur.
La version longue commence par une définition de fonction. Cette fonction s’appelle « spawn » – la version courte utilise le nom « : » à la place. Lors de son exécution, cette fonction s’appelle elle-même une fois du côté gauche et – grâce au symbole pipe « | » – envoie toute sortie à une autre instance d’elle-même à droite. Ainsi, chaque appel de la fonction entraîne deux appels supplémentaires. Tout ceci se déroule en arrière-plan (indiqué par « & »), qui permet au système de poursuivre son exécution sans attendre la fin de ce processus. Dans la dernière partie du script, après la fin de la définition de la fonction (qui se termine par « }; »), la fonction est elle-même appelée. L’exécution de ce script a pour effet de définir et d’invoquer la commande « spawn », qui lancera deux autres processus « spawn », chacun en invoquera deux autres, et ainsi de suite. Ce script très court peut paralyser un système informatique. C’est aussi un code élégant qui révèle comment les programmes informatiques peuvent s’appeler eux-mêmes de manière récursive.
Bien que cela puisse être utilisé à des fins malveillantes sur des systèmes non protégés contre lui, ce script sert probablement, la plupart du temps, d’énigme pour ceux qui explorent les mystères du shell Unix : Que fait cette étrange suite de caractères, et pourquoi ? Ce n’est pas la première exposition de ce code. Il a été découvert par Denis « Jaromil » Roio en 2002, qui, intrigué, l’a présenté comme une oeuvre d’art. Dans un tout autre registre, des contributeurs ont mis à disposition un dépôt en ligne de fork bombs dans de nombreux langages de programmation – sans doute à des fins ludiques et pédagogiques, plutôt que pour permettre à des pirates informatiques de faire des ravages.
BIOGRAPHIE
Nick Montfort développe et étudie la poésie et les arts computationnels. Il est professeur de médias numériques au MIT et dirige des recherches au Center for Digital Narrative de l’Université de Bergen, en Norvège. Parmi ses nombreux projets, il a cofondé et publie la revue Taper consacrée à de courts poèmes computationnels, tous disponibles comme logiciels libres. Il diffuse également ainsi ses propres logiciels de création et de recherche.
#Logiciel malveillant
#Recursion
#Énigmes