S obzirom da mnogo ljudi ima različite probleme sa virusima i malware-om, jako je važno upoznati se sa osnovnim konceprima na kojima virusi i malware rade. Istorijski gledano virusi su sa nama već oko 30 godina. Za to vreme došlo je do izuzetno velike evolucije. Takođe došlo je i do izvesnih promena u strukturi ljudi koji se bave razvojem virusa. Kada je sve počelo ljudi su razvijali viruse iz egzibicijonizma. Jedan od prvih virusa, koji nosi ime Brain je razvijen recimo kao proof of concept da su PC računari loši i razvili su ga dvojca iskrenih poklonika main frame računara. Malware je imao različite oblike od igara na sreću do malicioznih programa koji su ometali korisnika u radu. Međutim vremenom se otvorio prostor za zaradu putem špijunskog malware-a, gde su autori mogli da pamte korisničke šifre i lozinke ljudi zaraženih mašina. Ovo je potpuno izmenilo strukturu razvijača, od egzibicionista i hackera koji su želeli da pokaži šta umeju do kreiranje podzemlja. Ljudi iz ovog podzemlja su finansijski jako dobro obezbeđeni, pa i sposbni da zaposle grupe programera koji će raditi na razvoju novog malware-a. Na ovaj način se ceo proces iskomplikovao, međutim i antivirusne kompanije prate ove trendove i imaju svoje odgovore. Poslednjih nekoliko godina su krenuli da se pojavljuju malwari čiji autori su vojske i obaveštajne agencije pojedinih moćnih država sveta. Tako su se pojavili virusi poput Flame, Doqu (USA, Izrael), Quellen TKU (Nemačka policija)…
Na početku bi bilo dobro definisati i klasifikovati malware. Malware je program ili deo programskog koda koji izvršava određenu neodobrenu i nepoželjnu akciju na računaru žrtve.
Malware možemo klasifikovati na sledeći način:
Virus – Potrebna mu je datoteka koja će biti host. Ovaj malware ima sličnosti sa medicinskim virusom i zato se i tako zove. Zarazi host datoteku, sam se replicira i umeće se u druge datoteke određenih dipova. Obično su na meti .exe, .com i . dll datoteke. Ubacuje se uglavnom na početak izvršnog koda ili se dodaje kod na kraju, ali se u zaglavlju datoteke referencira kod. Obično mi je potrebna interakcija sa čovekom kako bi se razširio poput otvaranja datoteke ili izvršenja neke komande u programu.
Worm – na srpskom crv. Širi se kroz mrežu. Obično koristi neku ranjivost sistema kako bi uspeo da dođe do određene mašine i zarazi je. Takođe, u sebi mora imati algoritam za nalaženje novih potencijalnih žrtvi računara, pa tako je obično u mogućnosti da skenira mrežu i proverava da li sistem na mreži poseduje određeni ranjiv software za koji crv ima eksploit. Kada uđe u sistem pomoću sigurnostnog propusta ostavlja payload ili programski kod koji će se izvršavati na zaraženoj mašini, što može biti određeni špijunski software ili bilo šta drugo i nastavlja sa te mašine da skenira mrežu, kako bi se dalje replicirao. Ovaj tip malware-a se jako brzo širi, osobito ako poseduje neki 0-day exploit ili ranjivost koja još nije otkrivena i ispravljena od strane programera i bezbednostnih eksperata. Takođe ovaj malware ne zahteva interakciju sa čovekom.
Primeri poznatih crva su:
Morris Worm, Code Red, SQL Slammer
Malicious mobile code – Maliciozni mobilni kod. Sastoje se od laganih programa koji se downloadoju kako bi se izvršili na udaljenom sistemu, odnosno sistemu žrtve sa minimalnom interakcijom korisnika.Obično su napisani u JavaScript-u, VBScript-u, Javi ili ActiveX. Da bi se žrtva zarazila dovoljno je da otvori određenu web stranicu ili da otvori zaraženi Office dokument. Krajem ’90 su naročito bili popularni malware-i pisani u VBScriptu koji su se širili putem zaraženih office dokumenata. Danas takođe viđamo dosta na internetu Cross Site Scripting ranjivosti na web stranama koje mogu biti iskorišćeni za ovaj napad.
Backdoor – Zadnja vrata. Ovaj malware daje napadaču pristup udaljenom računaru žrtve, bez teškog prolaza korz bezbednosne kontrole. Često napadači ukoliko prođu sigurnosne kontrole uz pomoć nekog ekspolit-a prvo što urade je instalacija određenog backdoor alata, kako bi kasnije nesmetano mogli da se vrate i koriste taj sistem. Poznati alati su Netcat i Virtual Network Computing (VNC), koji oba mogu legitimno da budu korišćeni i kao alati za udaljenu administraciju, kao i nelegitimni napadački alati za backdoor.
Trojan horse – Trojanski konji. Predstavljaju se kao korisni programi ili određene igre, ali u sebi sadrže maliciozan sakriven kod. Obično se pokretanjem applikacije korisniku otvori zaista određena igra ili koristan program, ali paralelno se i zarazi računar i instaliraju određeni napadački alati poput zadnjih vrata ili špijunskog software-a, keylogger-a i slično.
Poznati trojanski konji su:
Setiri, Hydan
User-level RootKit – RootKit korisničkog nivoa. Menja ili modifikuje programe koje se koriste za sistem administraciju ili za upravljanjem sistema od strane korisnika. Izvršenjem zaražene komande se obavljaju još određene malicijozne radnje na sistemu. Često zaražena komanda je ls komanda na linux sistemima, jer se ona gotovo najčešće koristi. Poznati RootKit korisničkog nivoa su:
Linux RootKit (LRK) family, Universal RootKit, FakeGINA
Kernel-level RootKit – RootKit nivoa jezgra sistema. Ovo je jedan od najopasnijih vrsta malware-a, jer ga je nemoguće obrisati i detektovati. Jedini način kako da se odstani iz sistema je često formatiranje i reinstalacija operativnog sistema. Manipuliše srcem operativnog sistema, kernelom, i instalira se obično kao određeni driver ili modul. Sakriva druge alate poput zadnjih vrata ili špijunskog software-a. S obzirom da se nalazi u jezgru operativnog sistema manipuliše izlazom koje operativni sistem daje. Pa tako ni na kakav način nije moći pronaći servise, procese ili datoteke koje krije. Na ovaj način ni anti virusi neće moći da detektuju malware jer ih operativni sistem laže. Česti su za Linux operativne sisteme, dok zbog zatvorenosti Windows sistema su ređi.
Poznati:
Adore, Kernel Intrusion System
Combination malware – Malware kombinacije kombinuli osobine opisanih malware, kako bi popoljšali efektivnost. Neki od poznatih su:
Lion, Bugbear.B
Interesantno za proučavanje malware-a je i istorija razvoja različitih klasa malicijoznog koda. Sve je počelo početkom 80tih godina 20. veka, a danas je aktivan ovaj razvoj više nego ikad i verovatno se neće zaustaviti sa napredkom tehnologije. Osobito zbog toga što danas sve više postrojenja, infrastrukture zavise od računara, pa tako malware predstavlja jako oružje za diverziju, bez rizikovanjua života ljudi ili tehnike. Evo kratkog pregleda:
- 1981–1982—Prvi računarski virusi. Najmanje tri različita virusa uključujući Elk Cloner su bili nađeni u igrama za Apple II računarske sisteme, iako reč virus nije u to vreme bila iskorišćena za imenovanje ovih pojava.
- 1983—Formalno se definiše računarski virus: Fred Cohen definiše računarski virus kao program koji može da inficira druge programe modifikujući ih da uključe, moguće i evoluirajuću, verziju sebe.
- 1986—Prvi PC virus: Takozvani Brain virus inficirao je Microsoft DOS sisteme. Ovo je važan korak za viruse, kako će kasnije Microsoft DOS i kasnije Windows platforme postati primarna meta virusa i crva zbog svoje popularnosti i velike zastupljenosti.
- 1988—Morrisov internet crv. Napisan od strane Roberta Tappan Morisa Mlađeg, kao student MIT, novembra 1988. Crv je trebalo da prebroji računare povezane na internet u to vreme. Međutim crv je imao grešku da se replicirao i na računare na kojima je već bio. Na taj način je uspeo da zaguši većinu interneta tog vremena, što mu je donelo naslovne strane u novinama širom sveta.
- 1990—Prvi polimorfni virusi: Kako bi izbegli detekciju od strane antivirusnih sistema, koji su uglavnom radili na principu baze potpisa poznatih virusa, koji su se dobijali hashiranjem koda virusa, ovi virusi su menjali svoj oblik prilikom svake replikacije. U početku su menjali određene stringove ili imena promenljivih. Ovakvi virusi su i danas tema mnogih istraživanja.
- 1991—Virus Construction Set (VCS) Objavljen: U martu, ovaj alat je dao novim razvijačima virusa jednostavan alat za kreiranje custom malware koda. Pojavio se na bulletin board sistemima i forumima u to vreme
- 1994—Good Times Virus Hoax: Ovaj virus nije napadao računare. Bio je kompletno fikcioni. Međutim, uplašeni ljudi su prenosili usmeno od čoveka do čoveka. Govorilo se o jakim strašnim posledicama zaraze ovog izmišljenog virusa.
- 1995—Prvi Macro Virusi: Ova izuzetno gadna vrsta virusa se pojavila u početku implementirana u Microsoft Word makro jezicima, koji su zaraživali dokument datoteke. Kasnije ovi virusi su se proširili i na makro jezike drugih programa. Virus se najčešće startova prilikom otvaranja Office dokumenata.
- 1996—Netcat objavljen za UNIX: Ovaj alat je napisan od strane Hobbit-a i postao je najpopularniji backdoor alat za UNIX sisteme do danas. Iako ima mnogo legitimih upotreba, Netcat se često zloupotrebljava kao backdoor alat.
- 1998—Prvi Java Virus: StrangeBrew virus je inficirao druge Java programe, donoseći brigu o virusima u svet applikacija baziranih na Webu.
- 1998—Netcat objavljen za Windows: Napisan od strane Weld Pond, koristi se kao ekstremno popularan backdoor za Windows sisteme takođe.
- 1998—Back Orifice: Ovaj alat je objavljen u Julu od strane hackerske grupe Cult of the Dead Cow (cDc). Omogućavao je udaljenu kontrolu Windows sistema preko mreže.
- 1999—Melissa Virus/Worm: Objavljen u martu, ovaj makro za Microsoft Word zarazio je hiljade računara širom sveta šireći se pomoću e-maila. Bio je zapravo i virus i crv, pošto je napadao dokument datoteke i širio se kroz mrežu.
- 1999—Back Orifice 2000 (BO2K): U Julu, cDc je objavila ovu komepletno prepisanu verziju Back Orifice za udaljenu kontrolu Windows sistema. Nova verzija eje posedovala primamljiv interface (point-and-click) i programerski interfejs (API) za proširivanje funkcijonalnosti, kao i kontrolu miša, tastature i ekrana.
- 1999—Distribuirani Denial of Service Agenti: U kasno leto, Tribe Flood Network (TFN) i Trin00 denial of service agenti su objavljeni. Ovi alati su pružaliu napadačima kontrolu nad stotinama ili hiljadam računara sa instaliranim zombi procesima preko jedinstvene klijenske aplikacije. Sa centralizovanom tačkom koordinacije, ovi distribuirani agenti su mogli da pokrenu izuzetno jake napade poplavom.
- 1999—Knark Kernel-Level RootKit: U Novembru, osoba sa pseudonimom Creed je objavio alat kreiran na nazi predhodnih ideja za kernel manipulaciju Linux sistema. Knark je obuhvatio set alata za prilagođivanje Linux kernela, pa je napadač mogao biti jako efikasan u sakrivanju datoteka, procesa i mrežne aktivnosti.
- 2000—Love Bug: U maju, ovaj VBScript crv je ugasio desetine hiljada sistema širom sveta, kako se širio uz pomoć nekoliko slabosta u Microsoft Outlook-u.
- 2001—Code Red Crv: U julu se ovaj crv širio uz pomoć buffer overflow ranjivosti u Microsoft IIS Web serveru. Preko 250 000 mašina je bilo žrtva ovog crva za manje od 8 časova.
- 2001—Kernel Intrusion System: Takođe u julu, ovaj alat od Optyx je revolucionizirao manipulaciju Linux kernela uključujući lak za korišćenje grafički interfejs i izuzetno efikasne mehanizme za sakrivanje.
- 2001—Nimda Crv: Nedelju dana pre terorističkog napada 11. septembra, pojavio se ovaj jako razširen virus koji je inficirao Windows mašine brojnim metodama poput buffer overflow web servera, exploita za web browsere, Outlook email napadima i uz pomoć file shareing.
- 2002—Setiri Backdoor:Iako nikad formalno objavljen, ovaj trojanac je mogao da prođe lične firewall, mrežne firewall, Network Address Translation uređaje ponašajući se kao nevidljivi browser.
- 2003—SQL Slammer Crv: Januara 2003, ovaj crv se proširio jako brzo, gaseći nekoliko internet servis provajdera u Južnoj Koreji i poprilično praveći probleme širom sveta.
- 2003—Hydan Executable Steganography Tool: U februaru, ovaj alat je omogućio korisnicima mogućnost da sakriju podatke u programima koristeći polimorfičke tehnike programiranja na Linuxu, BSD i Windows. Ovaj koncept je takođe mogao da se prošiti za antivirus i intrusion detection sisteme.
Bitno je pomenuti još dve tehnike za sakrivanje virusa koji su se razvili tokom vremena. Jedna tehnika, je ranije pomenut polimorfizam. U ovoj tehnici se menja potpis virusa, tako što se prilikom replikacije koristi inicijalni kod, menjaju imena promenljivih i onda se kompajlira i replicira. Na ovaj način potpis neće biti isti. Međutim struktura koda se mnogo ne menja, pa su brzo razvijeni antivirusni alati koji su mogli da prepoznaju slične kodove. U ovom slučaju se inicijalni algoritam ne menja.
Druga metoda je Metamorfizam, koja je malo komplikovanija, u kojoj se menja struktura koda, pomerajući blokove i delove koda. Funkcijonalnost virusa uglavnom ostaje isti, ali se struktura koda mnogo više razlikuje nego kod polimorfizma.
Nikola Milošević