Az interneten végigsöprő Code Red IIS féreg nyomait először 2001. július 13-án észlelték. Pár nap alatt hihetetlen mértékben elterjedt, majd programjának sajátosságai miatt némiképpen lecsengett az aktivitása. A féregprogram a Microsoft IIS webszerverének 2001. június 18-án publikált biztonsági rését használja ki, amely a már szinte szokásosnak nevezhető buffer túlcsordulási hibák közé tartozik. A hiba a Microsoft Index Server 2.0-ás változatában, a Windows 2000 Indexing Service-ben és a Windows XP Indexing Service-ben is jelen van.
A Code Red féregprogram a hibát kihasználva magára tudja irányítani a végrehajtást, s miután átvette a vezérlést, 100 processzt (azaz mintha száz programot futtatnánk egyszerre a számítógépen) nyit, amiből 99 a károkozó további terjesztésével foglalkozik. Ezek véletlenszerűen internetes IP-címeket generálnak és megkísérlik továbbküldeni a férget tartalmazó adatcsomagot ezekre a címekre. Ez a véletlenszám-generálás azonban minden megtámadott gépen ugyanarról a kiinduló értéktől indul, így minden féregpéldány ugyanazt az IP-cím-szekvenciát keresi végig. Ez rengeteg felesleges hálózati forgalmat generál azzal, ahogy a már megtámadott gépeket fertőzi meg újra és újra, másrészt szerencsére lelassítja a terjedést.
A századik processz ellenőrzi, hogy milyen operációs rendszert támadott meg. Ha az egy angol nyelvű Windows NT/2000 rendszer, akkor a helyi webszerver főlapját lecseréli a Welcome to http://www.worm.com Hacked By Chinese tartalmú lapra. A változtatás után tíz órával visszaállítja az eredeti weblapot. A változtatást a féreg a memóriában végzi el, így a számítógép újraindításával megszűnik a hatása, sőt, ha a megtámadott gépen létezik a C:NOTWORM könyvtár, a féreg sem a továbbterjedést, sem a weblap megváltoztatását nem végzi el, hanem várakozó állapotba kerül.
A Code Rednek egy hónapos életciklusa van. A hónap első 19 napján mindent elkövet annak érdekében, hogy minél több gépre szétterjedjen. A hónap 20. és 27. napja között DOS (Denial of Service) támadást intéz a www.whitehouse.gov webszervere ellen, megbombázva azt http csomagokkal. A hónap 28. napjától a hó végéig a féreg pihen. Szerencsére a károkozó visszafejtésével már július 20. előtt végeztek, és minthogy a Code Red fixen tárolja a Fehér Ház webszerverének IP-címét (akkor még 198.137. 240.91 volt), egyszerűen az IP-cím megváltoztatásával ki lehetett húzni a méregfogát. Mivel a Code Red a memóriába töltve végzi dolgát, nem menti ki magát a merevlemezre, és rendszerindítás esetén meg sem próbálja biztosítani az automatikus futtatását, eltávolítása igen egyszerűen, a szerver újraindításával történhet.
A július 19-én észlelt Code Red II. névre hallgató féregprogram elődjéhez hasonló módon hatol be a számítógépekbe, de az eredeti Code Rednek nem variánsa, attól szinte minden lényeges ponton eltér, feltehetően más szerző műve.
A második Code Red először a Windows NT/2000 rendszereken levő parancsértelmezőt, a CMD.EXE-t ROOT.EXE néven átmásolja a inetpubscripts, valamint a program filescommon files systemmsadc könyvtárakba. Az ezekben a könyvtárakban levő programok általában elérhetőek külső webes kérésekkel, így a féreg lehetőséget nyit arra, hogy a megfertőzött szervereken gyakorlatilag bármilyen programot le lehessen futtatni. Emellett létrehozza a C:EXPLORER.EXE és a D:EXPLORER.EXE programokat, amelyek a trójai backdoor komponenst tartalmazzák. Az Explorer a Windows operációs rendszerek szerves része, rendszerindításkor automatikusan elindul. Az operációs rendszer először a gyökérkönyvtárban keresi, így a féreg által létrehozott trójai program fog mindig lefutni, az eredeti EXPLORER.EXE helyett. A látszat fenntartása érdekében a trójai komponens persze elindítja az eredeti Explorert is.
Miután átvette a vezérlést, 300 processzt nyit (olyan gépeken, amelyeken kínai Windows 2000 operációs rendszer fut, 600-at), amelyek a terjesztéssel vannak elfoglalva. Ezek véletlenszerűen IP-címeket generálnak, és oda megkísérlik továbbküldeni a férget tartalmazó adatcsomagot. A véletlenszám-generálás algoritmusa olyan, hogy nagyobb valószínűséggel szemel ki a megtámadott számítógéppel azonos alhálózaton levő célpontokat, mint távoli számítógépeket. Emiatt elődjénél gyorsabban terjedhet, mivel ha egy IP-címen már talált megtámadható szervert, akkor nagyobb az esélye annak, hogy egy ahhoz közeli véletlen IP-címen is talál számítógépet, és az is ugyanolyan operációs rendszert futtat.
A Code Red II.-nek rövidebb az életciklusa. A fertőzés utáni 24 órában (kínai operációs rendszerű gépeken 48 órában) megkísérel terjedni a véletlenszerűn kiválasztott célpont gépekre. Amikor ez az idő letelt, a féreg újraindítja a számítógépet. Ezzel a memóriából eltűnik a féreg, a számítógép megtisztul, csak a felrakott trójai komponens marad aktív.
A trójai végtelen ciklusban futva publikusan elérhető virtuális webkönyvtárnak jegyzi be a számítógép C: és D: meghajtóját. Ezzel is az a célja, hogy külső webparancsokkal vezérelve akármilyen programot le lehessen futtatni a webszerveren, azt teljesen kiszolgáltatva a kárt okozni szándékozóknak. A korábbi változattól eltérően tehát a Code Red II. rendkívül veszélyes, az általa megfertőzött webszervereket teljesen kiszolgáltatja a rosszindulatú támadásoknak. Mivel a Code Red II. a memóriába töltve végzi dolgát, nem menti ki magát a merevlemezre, eltávolítása igen egyszerűen, a szerver újraindításával történhet. Ez azonban nem távolítja el a trójai komponenst, amit víruskeresővel vagy kézzel kell törölni.
G. J.
