Sadržaj

Flame Virus

Sažetak

Flame je sofisticirani alat identificiran 2012. godine, koji održava interaktivnu komunikaciju s napadačima. Prvenstveno je dizajniran za špijuniranje korisnika zaraženih računala i krađu podataka s istih, uključujući dokumente, snimljene razgovore, snimke zaslona i aktivnosti tipkovnice. Inicijalna zaraza računala još nije otkrivena, ali njegove funkcionalnosti su detaljno analizirane. S obzirom na njegovu veličinu od 20 MB, što je neuobičajeno za zloćudne programe, dio modula još nije istražen. Flame je do sada zarazio širok spektar žrtava. Među zaraženim su privatne osobe, privatne tvrtke, obrazovne institucije i vladine organizacije. Kod je većim dijelom napisan programskim jezikom C++. Osim njega korišten je i skriptni jezik Lua.

Keywords: Flame, virus, moduli, špijunaža, snimke, zaražena računala

Uvod

Flame je sofisticirani alat za napad koji je puno složeniji od poznatog Stuxneta i Duqua. Ponaša se kao „stražnji ulaz“ (engl. backdoor), trojanski virus i ima značajke slične crvima [1], što mu omogućuje da se širi u lokalnoj mreži i na prijenosnim medijima ako napadač to poželi.

Početna točka ulaska Flame-a je nepoznata. Sumnja se na moguću upotrebu ranjivosti MS10-033 (Ranjivost u dekompresiji medija koja omogućuje udaljeno izvršavanje koda), no, to nije potvrđeno.

Jednom kada je sustav zaražen, Flame započinje složen niz operacija, uključujući njuškanje mrežnog prometa, snimanje zaslona, snimanje audio razgovora, presretanje tipkovnice i tako dalje. Svi su ovi podatci dostupni napadačima putem poveznice na Flameove naredbeno-upravljačke poslužitelje zvane C&C poslužitelji (engl., Command & Control Servers)[1]. Napadači mogu odabrati učitavanje dodatnih modula koji proširuju Flameovu funkcionalnost. Ukupno ima oko 20 modula, a svrha većine njih još se istražuje.

Povijest

Flame su identificirali u svibnju 2012. godine MAHER Centar iranskog nacionalnog CERT-a, Kaspersky Lab i CrySyS Lab [3] (Laboratorij za kriptografiju i sigurnost sustava) Sveučilišta za tehnologiju i ekonomiju u Budimpešti, kada su Ujedinjeni Narodi Međunarodne Telekomunikacijske Unije zatražili Kaspersky Lab da istraži izvještaje o virusu koji utječe na računala iranskog Ministarstva nafte. Dok je Kaspersky Lab istraživao, otkrili su MD5 hash i datoteke koje su se pojavile samo na korisničkim uređajima iz zemalja Bliskog Istoka. Nakon što su otkrili još dijelova, istraživači su program nazvali “Flame” (hrv. Plamen) po jednom od glavnih modula unutar alata, modul FROG.DefaultAttacks.A-InstallFlame.[2]

Prema Kasperskyju, Flame je djelovao od najranije veljače 2010. CrySyS Lab izvijestio je da je naziv datoteke glavne komponente primijećen već u prosincu 2007. Međutim, datum njegovog stvaranja nije se mogao izravno odrediti, jer su datumi izrade modula zlonamjernog programa lažno postavljeni na datume kao što je 1994.

Računalni stručnjaci smatraju da je Flame uzrok napada u travnju 2012. zbog kojeg su iranski dužnosnici isključili svoje naftne terminale s Interneta[4]. U to je vrijeme iranska studentska novinarska agencija zlonamjerni program koji je izazvao napad nazivala “Wiper” (hrv. brisač), imenom koje mu je dao tvorac zlonamjernog programa. Međutim, Kaspersky Lab vjeruje da je Flame možda “zasebna infekcija” od zlonamjernog programa Wiper[1]. Zbog veličine i složenosti programa - opisanog kao “dvadeset puta” složenijeg od Stuxneta - Laboratorij je izjavio da bi potpuna analiza mogla trajati i deset godina.

Prema procjenama Kasperskyja u svibnju 2012., u početku je Flame zarazio približno 1.000 računala, a među žrtvama su bile vladine organizacije, obrazovne institucije i privatne osobe. Tada su najviše pogođene zemlje Iran, Izrael, Palestina, Sudan, Sirija, Libanon, Saudijska Arabija i Egipat[1]. Geografski prikaz zemalja je vidljiv na slici ispod kao i inicijalni broj zaraženih računala.

Geografski prikaz zaraženih zemalja i broj zaraženih računala

Otkrivenje Flamea

Ono što je zanimljivo je da su stvoritelji Flamea promijenili datume stvaranja datoteka kako se ne bi mogla utvrditi istina o vremenu nastanka. Datoteke su datirane 1992., 1994., 1995. i tako dalje[1].

Smatra se da je glavni projekt Flame stvoren najranije 2010. godine, ali je još uvijek u aktivnom razvoju. Njegovi su tvorci neprestano uvodili promjene u različite module, a nastavljali koristiti istu arhitekturu i nazive datoteka. Određeni broj modula stvoren je ili promijenjen u 2011. i 2012. godini.

Namjena

Rana analiza laboratorija ukazuje na to da je Flame dizajniran prvenstveno za špijuniranje korisnika zaraženih računala i krađu podataka s istih, uključujući dokumente, snimljene razgovore, snimke zaslona i aktivnosti tipkovnice. Također otvara „stražnja vrata“ na zaraženim sustavima kako bi napadačima omogućio da učitaju nove module, a time i dodaju nove funkcionalnosti.

Po analizi korisnika koji su zaraženi, nema naznaka da je za napad izdvojena određena industrija, poput energetske, ili specifični sustavi, poput industrijskih kontrolnih sustava. Umjesto toga, Flame pokazuje svrhu kao višenamjenski alat koji je do sada zarazio širok spektar žrtava. Među zaraženima su privatne osobe, privatne tvrtke, obrazovne institucije i vladine organizacije.

Funkcionalnosti Flamea

Flameovi moduli zajedno zauzimaju više od 20MB memorije što je neuobičajeno za zloćudne programe koji su inače dosta manje veličine. No, to je i jedan od razloga zašto nije otkriven odmah. Općenito, današnji je zlonamjerni program mal i usmjeren. Lakše je sakriti malu datoteku nego veći modul. Uz to, na nepouzdanim mrežama preuzimanje 100KB ima puno veću vjerojatnost uspjeha od preuzimanja 20MB[2].

Napisan je djelomično u Lua skriptnom jeziku s povezanim C++ kodom za kompiliranje što omogućuje ostalim modulima da se učitaju nakon inicijalne zaraženosti računala. Primjer Lua koda na slici.

Primjer Flame koda

Nadalje, program koristi pet različitih metoda šifriranja i SQLite bazu podataka u koju sprema strukturirane podatke. Memorijske stranice su zaštićene READ, WRITE i EXECUTE dozvolama kako se ne bi mogle pristupiti preko user-mode-a u aplikacijama[4].

Interni kod ima sličnosti s drugim zloćudnim programima, a kao i Stuxnet, iskorištava dvije iste ranjivosti za pristup sustavu računala. Program određuje koji je antivirusni program instaliran, zatim mu prilagođava ponašanje, npr. promijeni ekstenziju imena datoteka koje koristi, kako bi smanjio vjerojatnost otkrivanja od strane tog programa. Dodatni indikatori zaraženosti uključuju mutex i registarske aktivnosti kao što su instalacija lažnog audio upravljačkog programa koji služi za održavanje postojanosti zloćudnog programa na ugroženom sustavu.

U Flameovim modulima se nalaze mnoge knjižnice dizajnirane za obradu SSL prometa, SSH veza, njuškanja, napadi, presretanja komunikacija i tako dalje. Za kod Stuxneta veličine 500KB je bilo potrebno nekoliko mjeseci da se analizira, dok Flame još nije u potpunosti analiziran.

Širenje programa

Budući da je Plamen toliko velik, u sustav se instalira u dijelovima. Računalo se prvo rani komponentom od 6 MB, koja sadrži oko šest drugih komprimiranih modula. Glavna komponenta izdvaja, dekomprimira i dešifrira ove module i zapisuje ih na različita mjesta na disku. Broj modula koje će sadržavati ovisi o tome što napadači žele učiniti na određenom računalu.

Nakon što se moduli raspakiraju i učitaju, Flame se povezuje s jednim od oko 80 C&C poslužitelja kako bi napadačima dostavio informacije o zaraženom računalu i čekao daljnje upute. Zlonamjerni program sadrži kodirani popis od oko pet poslužitelja, ali također ima i popis koji se može ažurirati, a na koji napadači mogu dodati nove poslužitelje ako su ti stari uklonjeni ili napušteni.

Poput prethodno poznatih cyber oružja Stuxnet i Duqu, ciljano se koristi i može izbjeći trenutni sigurnosni program putem rootkit funkcionalnosti. Jednom kada je sustav zaražen, Flame se može proširiti na druge sustave putem lokalne mreže ili putem USB uređaja[1]. Može snimati zvuk, snimke zaslona, aktivnost tipkovnice i mrežni promet. Program također snima Skype razgovore i zaražena računala može pretvoriti u Bluetooth „svjetionike“ koji pokušavaju preuzeti podatke o kontaktima s obližnjih uređaja koji podržavaju Bluetooth. Ti se podatci, zajedno s lokalno pohranjenim dokumentima, šalju na jedan od nekoliko C&C poslužitelja koji su rasprostranjeni širom svijeta. Program zatim čeka daljnje upute s ovih poslužitelja.

Po istraženome, ima dva modula dizajnirana za zarazu USB uređaja, nazvana “Autorun Infector” i “Euphoria”[1]:

  1. „Autorun Infector“: metoda „Autorun.inf“ iz ranog Stuxneta, koristeći „trik“ „shell32.dll“. Ono što je ovdje ključno jest da se ova metoda, osim kod Flamea, koristila samo u Stuxnetu i od tada nije pronađena ni u jednom drugom zlonamjernom programu.
  2. Euforija: širenje medijima pomoću direktorija “junction point” koji sadrži module malware-a i LNK datoteku koja pokreće zarazu kada se otvori ovaj direktorij. Uzorci virusa koji su dobavljeni sadržavali su imena datoteka, ali nisu sadržavali sam LNK.

Uz ove, Flame ima sposobnost širenja putem lokalnih mreža. To čini koristeći sljedeće:

  1. Ranjivost pisača MS10-061 koju je Stuxnet iskoristio - koristeći posebnu MOF (engl., Managed Object Format)datoteku izvršenu na napadnutom sustavu pomoću WMI-a (engl. Windows Management Instrumentation).
  2. Udaljeni poslovi.
  3. Kada Flame izvrši korisnik koji ima administrativna prava na kontrolnoj domeni, on je također u mogućnosti napadati druge uređaje u mreži: on stvara backdoor korisničke račune s unaprijed definiranom lozinkom koja se zatim koristi za kopiranje tih istih računa na te uređaje.

Čini se da se replicira po naredbi napadača, poput Duqu-a, a također se kontrolira bot konfiguracijskom datotekom. Većina rutina infekcije ima brojače izvršenih napada i ograničena je na određeni broj dopuštenih napada. Na Slici 3. su prikazani načini širenja virusa.

 Načini širenja zloćudnog programa

Jedna od zanimljivih funkcionalnosti Flame-a je njegova mogućnost snimanja zaslona (engl. screenshots). Štoviše, snimke zaslona se uzimaju kada se pokrenu određene „zanimljive“ aplikacije kao npr. aplikacije brzog slanja poruka (engl. Instant Messaging Apps). Snimke zaslona pohranjuju se u komprimiranom formatu i redovito se šalju C&C poslužitelju, baš kao i audio snimke.

Osim toga, u Flame je ugrađeno puno različitih brojača. Oni nadgledaju uspjeh veza s C&C-om, učestalost određenih operacija krađe podataka, broj uspješnih napada i tako dalje. Iako u zlonamjernom programu ne postoji brojač za „samoubojstvo“ virusa, napadači imaju mogućnost slanja određenog modula za uklanjanje zlonamjernog programa (nazvan “browse32”)[2], koji u potpunosti deinstalira zlonamjerni program iz sustava uklanjajući svaki trag njegove prisutnosti.

Zaključak

S obzirom na njegovu veličinu od 20MB skupa sa svim modulima, misterija Flamea još uvijek nije razrađena do kraja, no, po onome što se dosad moglo analizirati čini se da je Flame napisan isključivo za špijunažu, za razliku od Stuxneta, koji je dizajniran za sabotažu industrijskog procesa. Žrtve samog programa ukazuju da je Flame višenamjenski alat koji je do sada zarazio širok spektar žrtava. Među pogođenima su pojedinci, privatne tvrtke, obrazovne institucije i vladine organizacije.

Po svemu sudeći, program ne cilja određenu industriju, već je cjelovit set alata namijenjen općenitoj cyber-špijunaži, od njuškanja mrežnog prometa i presretanja tipkovnice do snimanje zaslona i audio razgovora. Zbog njegove veličine, dobar dio modula još nije istražen što znači da postoje funkcionalnosti koje su još nepoznate.

Literatura

[1] Gostev, Alexander. "The Flame: Questions and Answers", 2012.

[2] Zetter, Kim. "Meet 'Flame,' The Massive Spy Malware Infiltrating Iranian Computers", 2012.

[3] Guerrero-Saade, Juan Andres; Cutler, Silas. "Flame 2.0: Risen from the Ashes", 2019.

[4] https://en.wikipedia.org/wiki/Flame_(malware)