25 stycznia 2003

Worm.SQL.Helkern (aka SQLSlammer) - minimalista

Jest to bardzo mały (zaledwie 376 bajtowy) robak internetowy atakujący serwery Microsoft SQL. W celu infekowania komputerów szkodnik wykorzystuje lukę w zabezpieczeniach serwera pozwalającą na przepełnienie bufora.

Po uruchomieniu na nieodpornym serwerze SQL robak przejmuje kontrolę i przechwytuje trzy funkcje API systemu Windows

  • GetTickCount (KERNEL32.DLL),
  • socket (WS2_32.DLL),
  • sendto (WS2_32.DLL).

Następnie szkodnik pobiera (przy użyciu funkcji GetTickCount) losowy licznik i wchodzi w nieskończoną pętlę rozprzestrzeniającą. Robak atakuje losowe adresy IP (generowane przy użyciu pobranego licznika) przez port 1434 serwera MS SQL.

Robak wykorzystuje multicasting co oznacza, że zaledwie jedna wysłana komenda uderza we wszystkie 255 komputerów znajdujące się w danej podsieci. W związku z tym szkodnik rozprzestrzenia się 255 razy szybciej niż jakikolwiek znany robak sieciowy.

Szkodnik znajduje się wyłącznie w pamięci zainfekowanego komputera i atakuje tylko pamięć innych maszyn. Robak nie umieszcza na zainfekowanych komputerach żadnych plików, ani też w żaden sposób nie ujawnia swojej obecności.

W kodzie szkodnika znajdują się następujące teksty:

h.dllhel32hkernQhounthickChGet
Qh32.dhws2_f
etQhsockf
toQhsend

Przepełnienie bufora

Wykorzystywana przez robaka luka w zabezpieczeniach serwera MS SQL pozwala na przepełnienie bufora i w terminologii firmy Microsoft nosi nazwę Unauthenticated Remote Compromise in MS SQL Server 2000. Występuje ona w serwerze Microsoft SQL Server 2000. Luka została wykryta w lipcu 2002 roku. Więcej informacji na jej temat można znaleźć w biuletynie firmy Microsoft MS02-039:

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-039.asp

oraz na stronie

http://www.nextgenss.com/advisories/mssql-udp.txt.

Łata usuwająca lukę dostępna jest pod adresem:

http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602