Sadržaj

Analiza Storm Worm napada

Sažetak

Zlonamjerni softveri su postojali jednako dugo kao i sam softveri. Međutim sa popularizacijom i širenjem interneta među generalnu populaciju brzina kojom se može proširi zlonamjerni softveri je zastrašujuća. Jedan od poznatijih virusa koji je iskoristio proširenost interneta za svoju propagaciju je Storm Worm. Glavni cilj Storm Worma je bio proizvesti veliku količinu nepoželjne e-mail pošte. Spomenuti mailovi bi imali lažne i šokantne naslove koji bi privukle ljude da otvore mail te preuzmu zaraženu datoteku koja je bila u prilogu poslanog maila. Nakon pokretanja maila Storm Worm bi zarazio žrtvino računalo. Jednom kada bi uspješno zarazio računalo Storm Worm bi krenuo slati mailove sa tog žrtvinog računala te bi se tako nastavio širiti. Međutim, za razliku od prijašnjih zlonamjernih softvera koji su se širili e-mailom, Storm Worm koristi nekoliko inovativnih ideja koje su mu omogućile daleko veći utjecaj i znatno otežali njegovo zaustavljanje. Jedna od inovativnih ideja je bila korištenje decentralizirane arhitekture za komunikaciju sa ostalim zaraženim računalima što je otežalo zaustavljanje virusa. Unatoč tome što je tijekom svog pojavljivanja 2007. godine bio odgovoran za 99% generirane nepoželjne e-mail pošte te što je uspio zaraziti 8% računala, danas više nije prijetnja.

Ključne riječi: Storm Worm, botnet, peer-to-peer, spam bot,

Uvod

Storm worm je zlonamjerni softver koji je prvotno primijećen 17.1.2007. Poznat je pod mnogim drugim imenima poput : Small.dam, CME-711, W32/Nuwar@MM, Troj/Dorf, Trojan.Peacomm, Win32/Nuwar, W32/Zhelatin i još mnogim drugim imenima, ali u ovom seminaru biti će referiran sa imenom Storm Worm. Također, bitno je ne pomiješati W32/Storm.worm i Storm Worm. W32/Storm.worm se pojavio u 2001. te je napao Microsoft IIS servere sa ciljem izvršavanja uskraćivanja usluga Microsofta [1]. W32/Storm.worm nije imao velike posljedice niti je napravio veliku štetu za razliku od Storm Worm koji je fokus ovog seminara. Storm Worm se širio preko e-mailova tako što bi privukao potencijalne žrtve sa drastičnim ili intrigirajućim naslovom. Neki od naslova su bili „postao ubojica sa 11 godina, sada opet na slobodi“, „FBI protiv Facebooka“, „Venecuelski vođa se sprema za rat“. Jedan od prvih naslova je sa kojim se Storm Worm pojavio je „230 mrtvih u Europi zbog oluje“, [2] upravo je zbog tog prvog naslova ovaj zlonamjerni softver dobio ime Storm worm. U priloga emaila se nalazila izvršna datoteka koju bi korisnik pokrenuo misleći da je ta datoteka neki video ili neki drugi relevantni dokument vezan za lažni naslov. Jednom kada bi korisnik pokrenuo izvršnu datoteku, Storm Worm bi uspostavio komunikaciju sa serverom koji je bio u vlasništvu autora virusa. Jednom kada se komunikacija uspostavljena korisnikovo računalo postaje dio mreže zaraženih računala (eng. botnet). Jednom kada se računalo zarazi autor zlonamjernog softvera može upravljati zaraženim računalom te mu slati naredbe putem internetske veze. Uz uspostavljanja komunikacije Storm Worm također instalira rootkit Win32.agent.dh. Rootkit daje administracijske privilegije zlonamjernom programu te zbog toga je detekcija Storm Worm bila otežana. Brzina širenja Storma Worma je bila toliko brza da samo 3 dana nakon prvog viđenja je bio odgovoran za 8% zlonamjernih infekcija globalno te je bio odgovoran za 99% spama globalno. [3]. Navodno na vrhuncu zaraženosti, broj naredba po sekundi svih zaraženih računala je bio veći od nekih super računala. Storm Worm se toliko brzo širio da su neke države u strahu od infekcije privremeno isključile sa interneta [5]. Autori virusa nisu pronađeni, ali postoje sumnje da je Storm Worm ruskog porijekla jer je korištena domena virusa pripadala zloglasnoj ruskoj organizaciji „Russian Business Network“ koja je poznata po iznajmljivanju svojih servera cyber kriminalcima. Također, pri pokušaju obrnutog inženjeringa izvornog koda Storm Worma, pronađene su ruske riječi [6].

Inovacije Storm Worma

Storm Worm definitivno nije bio prvi zlonamjerni softver koji bi zarazio računalo te ga zatim priključio u mrežu ostalih zaraženih računala. Međutim, autori Storm Worma su koristili nekoliko inovativnih ideja kako bi učinili zaustavljanje Storm Worma teže. U sljedećim poglavljima biti će proučene i objašnjene inovativne ideje koje je Storm Worm koristio.

Prijašnje arhitekture

Zlonamjerni softveri prije Storm Worma su koristili potpuno drugačiju arhitekturu tj. koristili su model klijent-poslužitelj (eng. Client-server model). Sljedeća slika prikazuje spomenutu arhitekturu klijent-poslužitelj.

Model klijent-poslužitelj

Osnovna ideja ovakve arhitekture je da postoji jedan ili nekoliko servera koji koordiniraju i šalju naredbe klijentima. U ovom slučaju klijenti su zaražena računala. Zlonamjerni softveri koji su koristili ovakvu arhitekturu su obično u vlastitom izvornom kodu imali zapisano IP servera na koji se trebaju spojiti jednom kada uspješno zaraze žrtvu. Serveri koji su koordinirali ovakve napadane su se često nazivali C&C serveri (engl. command and control server). Autor zlonamjernog softvera bi se spojio na server te njemu poslao naredbu koji bi zatim server proslijedio svim ostalim klijentima, primjer jedne od poruka bi bio „:herder!herder@example.com TOPIC #channel DDoS www.victim.com“. Nakon što bi zaraženi klijenti primili poruku počeli bi slanje zahtjeva prema www.victim.com [7]. Opisan način napada je relativno jednostavno zaustaviti jer samo je potrebno pogledati IP adresu od servera s kojim zaražena računala komuniciraju. Jednom kada se otkrije IP od C&C servera potrebno ga je ugasiti što je moguće sa protu-DDos (engl. Denial-of-service attack) napadom ili ako server pripada nekoj javnoj organizaciji koja iznajmljuje servere moguće ju je jednostavno obavijesti o situaciji te na taj način ugasiti server. Jednom kada je server ugašen napadi će prestati jer više zaraženi klijenti više ne mogu komunicirati sa serverom te ne mogu izvršavati nove naredbe koje bi im autor zlonamjernog softvera poslao.

Nova arhitektura

Storm worm ne koristi klijent-poslužitelj upravo zbog navedenih mana. Arhitektura koju Storm Worm koristi se naziva peer-to-peer, također često skraćeno zvana P2P mreža. Umjesto komunikacije sa centralnim serverom, zaražena računala istovremeno imaju ulogu klijenta i servera tj. zaražena računala istovremeno mogu izvoditi naredbe, ali ih i prosljeđivati i slati ostalim zaraženim računalima. Sljedeća slika pokazuje spomenutu peer-to-peer arhitekturu.

Model peer-to-peer

Sa ovakvom arhitekturom ne postoji jedna točka ispada tj. ako se ugasi nekoliko zaraženih računala komunikacija će svejedno neometano nastaviti. Storm worm također bio jedan od prvih koji je koristio privatne ključeve kako bi osigurao da generirani internetski promet bude kriptiran i da samo ovlaštene osobe, tj. osobe koje imaju ispravan ključ mogu poslati naredbe zaraženim računalima. Upravo zbog navedenih privatnih ključeva bilo je moguće iznajmiti pristup Storm Worm zaraženoj mreži zainteresiranim kupcima tako da bi se generirao ključ koji bi samo radio na određenom dijelu Storm Worm zaražene mreže [8]. Zbog ovoga pretpostavlja se da je krajnji cilj autora Storm Worma zaraziti čim više računala kako bi imali čim veću mrežu zaraženih računala koju bi zatim prodavali ili iznajmljivali zainteresiranim skupinama te tako ostvarivali profit.

Aktivna nadogradnja i obrana

Još jedan od razloga zašto je bilo teško zaustaviti širenje Storma Worma je njegova mogućnost nadogradnje izvornog programskog koda tj. zaražena računala bi između sebe dijelila najnovije verzije Storm Worma. Ovakva mogućnost nadogradnje drastično je otežavala bilo kakve pokušaje zaustavljanja zlonamjernog softvera jer kada bi se pronašla neka slaba točka koja bi se potencijalno mogla iskoristiti za usporavanje ili zaustavljanje širenja, navedenu slabu točku bi autori mogli ispraviti te poslati poboljšanje svim zaraženim računalima. Mogućnost poboljšanja je očito vidljiva jer kasnije verzije Storm Worma su imale mogućnost detektirati da li se nalaze unutar virtualne mašine, jednom kada bi detektirao da uistinu nalazi u virtualnoj mašini jednostavno bi ušao u beskonačnu petlju te ne bi izveo svoj izvorni kod, ranije verzije ovakvu funkcionalnost nisu imale.

Uz preuzimanje novih funkcionalnosti, Storm Worm bi preuzimao nove predloške mail-ova tj. naslovi koje bi Storm Worm generirao u svojim e-mailovima su se uvijek mijenjali zbog navedene mogućnosti konstantnog unaprijeđena softvera. Stoga zaražene mailove, nije bilo moguće prepoznati po nekom konstantnom naslovu. Također, naslovi bi uvijek pratiti aktualne događaje npr. Za vrijeme svjetskog nogometnog prvenstva slao bi naslove poput „program za praćenje nogometnog prvenstva“ [9], dok bi za novu godinu slao „sretna 2008. godina“ [10].

Uz sve navedene, Storm Worm je također imao i aktivne metode obrane, tj. u slučaju da je detektirao da ga se pokušava zaustaviti lansirao bi protu napad. Kao što je već spomenuto, Storm Worm je mogao detektirati ako se nalazi u virtualnoj mašini, također je promatrao procese koji se pokreću na korisničkom računalu. Neke verzije Storm Worm bi jednostavno ugasile procese koje bi smatrali potencijalno opasne npr. razne programe za ispravljanje pogrešaka (eng. debugger), antivirusne programe ili bilo kakve programe za dijagnostiku. Kasnije verzije Storm Worm ne bi ugasile proces nego bi prevarile operacijski sustav da umjesto procesa koji je korisnik pokrenuo, bi se zapravo pokrenuo neki drugi proces koji ne bi radio ništa, ali korisnik bi se zavarao i mislio da se uspješno pokrenuo njegov proces [11].

Uz upravo opisane lokalne načine obrane poput zaustavljanje pokretanja određenih procesa, Storm Worm je imao mogućnost automatiziranog DDoS napada u slučaju kada bi detektirao da ga netko pokušava razotkriti ili proučiti njegov izvorni kod [12]. Neke od kompanija protiv kojih je Storm Worm aktivirao DDoS protu napad su „SecureWorks“, „Artists Against 419“, „Spamhaus Project“ i brojni drugi.

Način rada Storm Worma

U prijašnjim poglavljima objašnjeno je objašnjeno je kako Storm Worm funkcionira na visokoj razini. Međutim, ovo poglavlje će se usredotočiti na detaljniji pregled izvornog koda Storm Worma.

Otpornost na ponovno pokretanje računala

Nakon što prevareni korisnik pokrene izvršnu datoteku koju je preuzeo iz emaila koji je poslao Storm Worm. Izvršna datoteka izvodi sljedeće akcije

Jednom kada se opisane akcije izvedu Storm Worm računalo postaje zaraženo te čak i nakon gašenja računala Storm Worm neće nestati zato što je Storm Worm modificirao drajver „tcpip“. Sljedeći puta kada korisnik upali računalo zaraženi drajver „tcpip.sys“ će stvoriti drajver „spooldr.sys“. Drajver „spooldr.sys“ ima istu razinu privilegije kao i sam operacijski sustav. Budući da „spooldr.sys“ ima visoku razinu privilegije, ima mogućnost osluškivati koji se procesi pokreću te u slučaju da detektira neželjeni proces može ga ugasiti, samo neki od procesa koje bi gasio su „watchdog.sys“ , „mpfirewall“, „wincom32.sys“, „AntivirusGolden.exe“, „SpyHunter.exe“, „PestTrap.exe“ i mnoge druge. Kao što je spomenuto u prijašnjem poglavlju glavna cilj gašenja procesa je otežavanje otkrivanja i otežavanje vršenja bilo kakve dijagnostike nad zareženim računalom.

Kontaktiranje drugih računala i slanje mailova

Jednom kada Storm Worm osigura otpornost na ponovno pokretanje računala pokreće se glavni dio koda čija je funkcija kontaktirati ostala zaražena računala i slanje mailova kako bi se Storm Worm dalje širio. Sljedeća slika prikazuje pregled spomenute logike na visokoj razini te će u nastavku biti objašnjena.

Logika izvornog koda Storm Worma

Kod započinje sa inicijalizacijom strukture zvane deskriptor sigurnosti (engl. Security descriptor). Deskriptor sigurnosti je objekt koji se koristi u Windows operacijskom sustavu kako bi se specificiralo koji procesi mogu pristupiti nekoj datoteci. Storm Worm inicijalizira privatni deskriptor sigurnosti sa kojim će stvoriti „spooldr.ini“ datoteku u sljedećem koraku. Spomenuti privatni deskriptor sigurnosti onemogućava bilo kojem drugom procesu ili korisniku da pogleda šta se nalazi unutar „spooldr.ini“. Inicijalno datoteka „spooldr.ini“ se stvara sa 290 tvrdo kodiran (engl. hardcoded) vršnjaka (engl. peer) koji će biti kasnije kontaktirani. Navedeni vršnjaci su napisani u formatu <hash>=<ip><port> , ali u heksaedarskom obliku. Npr :

Prije nego što se mogu kontaktirati potrebno je inicijalizirati utičnice (engl. socket). Upravo zbog toga Storm Worm poziva funkciju WSAStartup. WSAStartup je funkcija u Windows operacijskom sustavu koja se morati pozvati kako bi se inicijalizirale utičnice koje će Storm Worm kasnije koristit za komunikaciju. Uz inicijalizaciju sa potrebnim podacima WSAStartup funkcija također služi za pregovaranje oko verzije utičnica koje će se koristiti te informira koje su uopće verzije utičnica dostupne. Jednom kada je sva potrebna konfiguracija gotova program prelazi u fazu „eDonkey Handler“ eDonkey je peer-to-peer mreža koju Storm Worm koristi za koordinaciju sa ostalim zaraženim računalima, ali i preuzimanje potrebnih datoteka poput novih verzija Storm Worm, novih predložaka za mailove ili bilo kakvih drugih datoteka. Storm Worm će pokušati kontaktirati inicijalnu listu vršnjaka iz „spooldr.ini“, te će ponašanje Storm Worma ovisi o tome može li uspostaviti kontakt sa nekim od vršnjaka tj. postoje dvije mogućnosti :

U slučaju da nitko od vršnjaka ne odgovori, Storm Worm će pričekati 10 minuta i pokušati ponovno i tako sve dok se netko od vršnjaka ne javi. U slučaju da određeni podskup vršnjaka uzvrati odgovor, Storm Worm će zatražiti njihove liste vršnjaka kako bi proširio svoju listu. Jednom kada ažurira datoteku „spooldr.ini“ sa novim vršnjacima koje su mu poslali njegovi susjedi će započeti preuzimanje novih verzija predložaka mailova i novih verzija Storm Worma ako oni postoje. Postoje dvije mogućnosti :

U slučaju da nova verzija postoji, program odlazi u „L_403459“ odsječak koji je vidljiv na prijašnjoj slici. Trenutna verzija Storm Worma se gasi, a nova verzija koja je upravo preuzeta se ponovno pokreće te iz „L_403459“ se prelazi u „initialize and set security descriptor“. U slučaju da nova verzija Storm Worma ne postoji prelazi se u „SMTP (SPAM) Logic“. U ovom odsječku Storm Worm pretražuje datoteke na zaraženom računalo sa sljedećim ekstenzijama „.txt, .msg, .htm, .shtm, .stm, .xml, .dbx, .mbx, .mdx, .eml, .nch, .mmf, .ods, .cfg, .asp, .php, .pl, .wsh, .adb, .tbb, .sht, .xls, .oft, .uin, .cgi, .mht, .dhtm, .jsp, .dat, and .lst.“. Cilj pretraživanja je pronalazak email adresa na koje će se poslati kopija Storm Worm virusa kako bi se virus nastavio širiti. Storm Worm iz trenutne faze tj. faze „SMTP (SPAM) Logic“ može preći u „L_403459“ iz koje se ponovno može reinicijalizirati te se vratiti na početak izvršavanja ili se ugasiti.

Postupni pad Storm Worma

Zbog svoje proširenosti Storm Worm je prikupio veliku količinu pozornosti te su zbog toga mnoge grupe radile na raznim rješenjima kako zaustaviti Storm Worm. Microsoft je 25. rujna 2007 objavio novu verziju alata za uklanjanje zlonamjernog softvera koja dolazi sa Windowsima te je ta nova verzija uspjela smanjiti veličinu zaražene mreže za 20% posto [15].

Kako bi spriječile zarazu većina kompanija je ograničila ili skroz blokirala peer-to-peer komunikaciju unutar svoje lokalne mreže. Zbog ove prevencije čak i kada bi se neko računalno unutar mreže zarazilo ne bi moglo komunicirati sa ostalima. U slučaju da kompanije ne mogu blokirati peer-to-peer komunikaciju zbog određenog razloga sljedeća najbolja metoda za prevenciju je promatranje količine internetskog prometa. Budući da Storm Worm generira velike količine izlaznog prometa tvrtke mogu iskoristiti ovu činjenicu te u slučaju da tvrtka detektira iznenadni skok izlaznog prometa može poduzeti neke preventivne akcije. Jedan od softvera koji je razvijen posebno za detektiranje spambotova poput Storm Worma je BotHunter [16].

Storm Worm se nikada ne bi toliko proširio kada bi se riješila najveća mana u sustava, a to su ljudi. Jedini razlog zašto se Storm Worm proširio je zbog brzopletosti ljudi koji su preuzimali nepoznate datoteke na vlastita računala te ih pokretali. Stoga najbolji način prevencije Storm Worma i svih ostalih budućih sličnih napada je ulaganje u obrazovanje šire populacije o pažljivom korištenju i potencijalnim opasnostima Interneta.

Zaključak

Storm Worm je zanimljiv dio povijesti jer je jedan od prvih koji je koristio nekoliko inovativnih ideja poput aktivne obrane sa funkcijama detekcije alata za dijagnozu te lansiranja protu napada , peer-to-peer komunikacije i koordinaciju, aktivno poboljšavanje vlastitog izvornog koda. Zlonamjerni softveri poslije njega su posudili upravo spomenute inovacije te ih implementirali u svoju logiku. Međutim, Storm Worm je imao i neke pozitivne utjecaje. Zbog količine vijesti koje je generirao mnogi ljudi su čuli za njega te će se sigurno biti oprezniji u slučaju da se situacija ponovno ponovi. Neosporna je činjenica da je u većini sustava čovjek uzrok većine propust zbog svog neznanja, nepažnje i brzopletosti. Stoga najbolja povijesna lekcija koju Storm Worm može dati je da se ulaganje u obrazovanje ljudi o internetskoj sigurnosti čini kao nepotreban financijski trošak, ali u slučaju napada će se višestruko isplatiti. U suprotnom šteta prouzročena bi mogla biti drastično veća poput isključivanja interneta cijelih tvrtka i država kao što to Storm Worm bio sposoban napraviti.

Literatura

[1] W32/Storm.worm, 2020

[2] BBC news: Storm chaos prompts virus surge, 2007

[3] Gregg Keizer, InformationWeek: 'Storm' Spam Surges, Infections Climb, 2007

[4] Sharon Gaudin, InformationWeek: Storm Worm Botnet More Powerful Than Top Supercomputers, 2007

[5] Wikipedia: Storm botnet, 2020

[6] Erik Larking, PCWorld: The Internet's Public Enemy Number One, 2007

[7] Wikipedia: Botnet - Client-server model, 2021

[8] Ruben Francia, BLORGE.com - Storm Worm botnet up for sale, 2007

[9] Sharon Gaudin, InformationWeek: NFL Kickoff Weekend Brings Another Storm Worm Attack, 2007

[10] Gregg Keizer, PCWorld: Storm Botnet Drops Strippers Lure, Switches to New Year's, 2007

[11] Nakedsecurity: Process-patching, the Dorf way, 2007

[12] Tim Wilson, Darkreading: Researchers Fear Reprisals From Storm, 2007

[13] Phil Porras, Hassen Saïdi, Vinod Yegneswaran Cyber-TA: A Multi-perspective Analysis of the Storm (Peacomm) Worm, 2007

[14] Microsoft: DACLs and ACEs, 2018

[15] Sunnet-Beskerming, The Register: Guessing at compromised host numbers, 2007

[14] Bothunter, 2007