MS-SQL Slammer: Ein Wurm und die Konsequenzen

Der Wurm

Zum ersten Mal scheint MS-SQL Slammer am 25. Januar um 5:30 Uhr UTC im Netz aufgetaucht zu sein. Der Wurm nutzt eine seit dem 24. Juli 2002 bekannte Sicherheitslücke in MS SQL Server 2000 aus. Betroffen sind neben dem SQL Server selbst alle Produkte, welche die SQL-Desktop-Engine MSDE (Microsoft Data Engine) verwenden. Dazu zählen hauseigene Produkte wie Office, Visio, Project oder Visual Studio .NET, aber auch Third-Party-Software wie Security-Produkte von ISS (sic!) oder Kommunikations- und CRM-Software von Cisco.

Slammer nutzt die Tatsache aus, dass SQL Server auf mehreren Ports nach eingehenden Anfragen lauscht. Clients können entweder Named Pipes via NetBIOS (139/tcp und 445/tcp) nutzen oder sich über Port 1433/tcp mit dem Server in Verbindung setzen. Um den korrekten Verbindungsweg zu erfragen, klopfen sie zunächst am Microsoft SQL Monitor Port 1434/udp an. Allerdings lässt sich durch Manipulation des Anfragepakets ein Buffer Overflow auf dem Stack des SQL-Servers erzeugen.

Auf diesem Weg legt der Wurm seinen Code auf dem Server ab und kann ihn im Systemkontext ausführen. Slammer verzichtet dabei auf eine "echte" Schadfunktion. Er generiert "lediglich" zufällige IP-Adressen und versucht, sich wiederum an den Port 1434/udp der jeweiligen Adresse zu versenden. Dazu nutzt er jedoch die gesamte Performance des Systems sowie die volle Bandbreite der zur Verfügung stehenden Internet-Connection: In der Praxis wurden an Einzelmaschinen Durchsätze von mehr als 50 Mbit/s gemessen.

Eine befallene Maschine erzeugt aber nicht nur direkt eine erhebliche Datenlast, sondern produziert auch reichlich sekundären Datenverkehr. Da eine Vielzahl der zufällig erzeugten Ziel-IPs entweder nicht existiert oder dort Port 1434/udp geschlossen ist, generieren die angesprochenen Router eine Flut resultierender ICMP-Unreachable-Messages.