# SQL Slammer

SQL Slammer (aussi connu sous le nom de Sapphire) est un ver informatique qui a provoqué le 25 janvier 2003 un déni de service sur certains ordinateurs hôtes d'Internet et un ralentissement grave du trafic Internet. Sa propagation fut foudroyante. Michael Bacarella fut le premier à en faire l'annonce, mais c'est Christopher J. Rouland, CTO de ISS, qui le nomma Slammer (voir les notes ci-dessous). Bien qu'il fût appelé « SQL slammer worm », le programme n'utilisait pas le langage SQL ; il se propageait plutôt grâce à une faille du type dépassement de tampon des serveurs de bases de données Microsoft SQL Server et MSDE, pour laquelle un correctif existait déjà.

## Historique

Le 25 janvier 2003 à partir de 05 h 30 UTC, le ver informatique SQL Slammer a entamé sa propagation$^,$. Il se répandit si rapidement qu'il infecta la plupart de ses victimes durant les dix premières minutes de l'attaque.
C'est une vulnérabilité de Microsoft SQL Server rapportée par Microsoft le 24 juillet 2002$^,$ qui a permis la mise en œuvre du ver. En même temps que cette annonce, Microsoft avait aussi publié un correctif à cette faille, soit six mois avant le lancement de l'attaque.
SQL Slammer a révélé que certains administrateurs de réseaux, y compris chez Microsoft, n'avaient pas appliqué les correctifs nécessaires aux logiciels qu'ils utilisent$^,$, et ce même si le correctif à cette faille avait été publié 6 mois, jour pour jour, avant la diffusion du ver. Il est également possible de corriger cette faille en installant le Service Pack 3 pour SQL Server.
Le ver est aussi connu sous les noms : W32.SQLExp.Worm, DDOS.SQLP1434.A, SQL_HEL, W32/SQLSlammer et Helkern$^,$.

## Détails techniques
### Fonctionnement

La conception du ver repose sur une démonstration de faisabilité, exposée à une Conférence Black Hat par David Litchfield (en), exploitant une vulnérabilité de type dépassement de tampon qu'il avait auparavant découvert. Ce ver est un petit code qui ne fait rien d'autre que générer des adresses IP de façon aléatoire et envoyer des copies de lui-même à ces adresses$^,$. Si, à une de ces adresses, il y a un ordinateur exécutant une version de Microsoft SQL Server auquel on n'a pas appliqué le correctif publié dans le bulletin MS02-039 celui-ci devient immédiatement infecté et commence à son tour à envoyer via Internet de nouvelles copies du ver$^,$$^,$.
Le code du ver, très court (306 octets)$^,$ ne contient aucune instruction pour se copier sur le disque, il réside donc uniquement en mémoire$^,$ ce qui le rend très facile à supprimer. Pour ce faire, on peut utiliser un utilitaire de suppression comme celui fourni gratuitement par Symantec (voir le lien externe plus bas) ou tout simplement redémarrer le serveur, mais la machine sera probablement réinfectée presque immédiatement.
Deux caractéristiques clés ont contribué à la propagation rapide du ver SQL Slammer : l'utilisation du protocole UDP pour infecter de nouveaux hôtes$^,$ et la possibilité de faire tenir le code du ver dans un seul paquet UDP. Libéré par l'utilisation d'UDP de la nécessité d'établir une connexion comme en TCP, l'hôte infecté pouvait employer une stratégie dite de « tir et oubli » pour transmettre son paquet aussi souvent que possible (habituellement plusieurs centaines par seconde).
Les ordinateurs personnels (PC) ne sont pas touchés par ce ver sauf si MSDE y est installé.

### Effets$^,$

L'effondrement de nombreux routeurs, en réaction à la très grande augmentation de trafic engendrée par l'envoi massif de copies du ver par les serveurs infectés, a causé un ralentissement significatif sur Internet en raison du trafic massif sur le port 1434. En règle générale, si le trafic devient trop important pour que le routeur le prenne en charge, ce dernier est censé retarder ou arrêter temporairement le trafic. La surcharge de bande passante a engendré un dysfonctionnement de certains routeurs, directement « déconnectés » du réseau Internet par les routeurs voisins (par retrait de la table de routage). Finalement, les multiples notifications de mise à jour de routes, soit pour enlever des routeurs éteints du réseau, soit pour en ajouter de nouveaux qui ont redémarré, ont très vite monopolisé une part importante de la bande passante d'Internet. Le trafic ordinaire a conséquemment ralenti, allant même jusqu'à s'arrêter complètement dans certains cas. Il est ironique toutefois de constater qu'à cause de sa très petite taille le ver SQL Slammer pouvait parfois être transmis alors que le trafic légitime ne le pouvait pas.