SQL Slammer (aussi connu sous le nom de Sapphire) est un ver informatique qui a provoqué le 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 modifier

Le à partir de 05 h 30 UTC, le ver informatique SQL Slammer a entamé sa propagation[1],[2]. Il se répandit si rapidement qu'il infecta la plupart de ses victimes durant les dix premières minutes de l'attaque[2].

C'est une vulnérabilité de Microsoft SQL Server rapportée par Microsoft le [3],[4] 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[5].

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[6],[7], 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[8].

Le ver est aussi connu sous les noms : W32.SQLExp.Worm, DDOS.SQLP1434.A, SQL_HEL, W32/SQLSlammer et Helkern[4],[9].

Détails techniques modifier

Fonctionnement modifier

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[10]. 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[4],[11]. 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[4],[9],[11].

Le code du ver, très court (306 octets)[4],[11] ne contient aucune instruction pour se copier sur le disque, il réside donc uniquement en mémoire[9],[4] 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[12], mais la machine sera probablement réinfectée presque immédiatement[13].

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[4],[11] et la possibilité de faire tenir le code du ver dans un seul paquet UDP[14]. Libéré par l'utilisation d'UDP de la nécessité d'établir une connexion comme en TCP[12], 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)[14].

Les ordinateurs personnels (PC) ne sont pas touchés par ce ver sauf si MSDE y est installé[15].

Effets[16],[17] modifier

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.

Notes modifier

Il existe une polémique quant à savoir qui a trouvé Slammer en premier, bien qu'il soit pratiquement impossible de le déterminer. On peut toutefois attribuer la première alerte publique à Michael Bacarella qui a envoyé un message sur la liste de diffusion Bugtraq, le à 07:11:41 UTC : « Le ver MS SQL est en train de détruire Internet - Bloquez le port 1434 ! » (« MS SQL WORM IS DESTROYING INTERNET - BLOCK PORT 1434! »)[18].

Cependant la première annonce est souvent attribuée à Ben Koshy. En effet, la société W3Media, pour laquelle il travaille alors, a émis un communiqué à cet effet[19]. Toutefois, son avertissement au public, envoyé à la liste de diffusion NTBugtraq ne fut envoyé qu'à 10:28 UTC[20]. Robert Boyle envoya une alerte à NTBugtraq at 08:35 UTC[21] donc avant Koshy mais après Bacarella.

ISS, par l'entremise de Chris Rouland, envoit des alertes à 11:54 UTC[22] et à 11:56 UTC[23] sur les listes de diffusion ISSForum et Vulnwatch respectivement.

Références modifier

  1. (en) « SQL Slammer worm wreaks havoc on Internet »
  2. a et b (en) « Analysis of the Sapphire Worm - A joint effort of CAIDA, ICSI, Silicon Defense, UC Berkeley EECS and UC San Diego CSE »
  3. (en) « "Microsoft SQL Server Resolution Service buffer overflows allow arbitrary code execution" »
  4. a b c d e f et g (en) « Net-Worm.Win32.Slammer »
  5. (en) « "CERT Advisory CA-2002-22 Multiple Vulnerabilities in Microsoft SQL Server" »
  6. (en) « Experts: Microsoft security gets an 'F' »
  7. (en) « Worm exposes apathy, Microsoft flaws »
  8. (en) « Virus SQL Slammer »
  9. a b et c (en) « Symantec W32.SQLExp.Worm - Summary »
  10. John Leyden, « Slammer: Why security benefits from proof of concept code », Register,‎ (lire en ligne, consulté le )
  11. a b c et d (en) « Symantec W32.SQLExp.Worm - Technical details »
  12. a et b (en) « DeepSight Threat Management System Threat Analysis: SQLExp SQL Server Worm Analysis »
  13. (en) « SQL Worm Propagation »
  14. a et b (en) « The Spread of the Sapphire/Slammer Worm »
  15. « Worm:W32/Slammer »
  16. (en) « Inside the Slammer Worm »
  17. (en) « Effects of Worms on Internet Routing Stability »
  18. (en) Michael Bacarella, « MS SQL WORM IS DESTROYING INTERNET BLOCK PORT 1434! », Bugtraq, (consulté le )
  19. (en) « W3 Media's Ben Koshy first to identify Internet 'Slammer' Virus », Press Release, W3 Media, (consulté le )
  20. (en) Ben Koshy, « Peace of Mind Through Integrity and Insight » [archive du ], Neohapsis Archives, (consulté le )
  21. (en) Robert Boyle, « Peace of Mind Through Integrity and Insight » [archive du ], Neohapsis Archives, (consulté le )
  22. (en) « [ISSForum] ISS Security Brief: Microsoft SQL Slammer Worm Propagation » (consulté le )
  23. (en) X-Force, « Peace of Mind Through Integrity and Insight » [archive du ], Neohapsis Archives, (consulté le )

Liens externes modifier