You are on page 1of 13

13.

Poglavlje: Maliciozni programi

U ovom poglavlju naučit ćete:

liJ što su maliciozni programi

&:J Metode funkcioniranja malicioznih programa

~ Kako rade antivirusni programi


l1@i!i , SIGURNOST INFORMACIJSKIH SUSTAVA

13.1 Povijest malicioznih programa


Pod malicioznim programima smatraju se bilo koji programi koji mogu narušiti jedan od ključnih
elemenata sigurnosti : povjerljivost, integritet ili dostupnost. lako je tek u zadnjih nekoliko godina
zabilježen vel ik rast broja malicioznih programa , isti postoje već čitav niz godina, praktički od samih
početaka izrada programa.

Sama ideja programa koji se sami reproduciraju, što je jedna od karakteristika virusa , potiče još od
John von Neumanna koji je 1940. razmatrao ideju samoreproduktivnih programa. Prvim
malicioznim programom koji je bio napravljen pod kontroliranim uvjetima smatra se program koji je
1962. godine napisalo nekoliko zaposlenika Bell laboratorija, među kojima je i Robert Morris, otac
autora poznatog crva. Ovi znanstvenici napisali su program pod nazivom "Darwin" čiji je cilj bio
automatski se reproducirati i pronalaziti druge programe u memoriji te ih brisati.

Maliciozni programi bili su ipak relativno rijetki sve do pojave kućnih računala . Ipak, iz prethodnog
razdoblja može se izdvojiti virus pod imenom Creeper, koji je inficirao računala spojena na
ARPANET računalnu mrežu američke vojske početkom sedamdesetih godina prošlog stoljeća .
Ovaj virus inficirao je računala s operacijskim sustavom Tenex koji je bio popularan u to vrijeme te
se automatski kopirao na druga računala putem modemske veze. Na inficiranim računalima virus
je ostavio poruku "l'M THE CREEPER: CATCH ME IF YOU CAN" . Ovaj virus važan je i po tome
što je prvi put bio napisan legitimni program s karakteristikama virusa - cilj programa pod imenom
Reaper bilo je automatsko širenje te brisanje virusa Creeper. Ujedno je i ovaj događaj prvi pokazao
da izrada programa za automatsko brisanje virusa , koji dijele karakteristike virusa nema dobar
učinak , budući da je i Reaper izazvao probleme na ARPANET računalnoj mreži.

Početkom osamdesetih godina prošlog stoljeća kućna računala postajala su sve popularnijima.
Prvi virus zabilježen za kućna računala je Elk Cloner, virus za Apple 11 računala koji se širio preko
disketa. Virus je modificirao ključne sektore na disketama kako bi se pokrenuo prilikom pokretanja
računala s diskete, budući da su Apple li računala podizala i operacijski sustav s disketa . Elk
Cloner tako je bio memorijski rezidentan virus, što znači da je bio aktivan tijekom rada računala te
je inficirao sve druge diskete koje bi bile umetnute u računalo tijekom njegova rada .

Prvi virus za IBM (PC) računala otkriven je 1986. godine. Riječ je o virusu pod imenom Brain koji
je, poput Elk Cloner virusa inficirao početne sektore disketa. Virus Brain nije imao nikakvu
funkcionalnost, već je samo bio aktivan u memoriji i inficirao druge diskete koje su bile umetnute u
računalo . Jedna od značajnih mogućnosti Braina bilo je skrivanje inficiranih sektora na disketi.
Prilikom pregledavanja sektora u kojima je bio pohranjen Brain , a ako je virus bio aktivan u
memoriji, korisnik je vidio izvorne sektore te na taj način nije mogao otkriti prisustvo virusa .
Kasnije te godine napisan je i prvi virus koji je bio u stanju inficirati druge datoteke. Riječ je o virusu
pod imenom Virdem koji je mogao inficirati COM datoteke DOS operacijskog sustava .

13.2 Vrste malicioznih programa


Od 1990. godine nadalje bilježi se strelovit rast malicioznih programa i pojava novih tipova
malicioznih programa s proširenim mogućnostima . lako ne postoji točna definicija svakog od tipova
malicioznih programa navedenih u nastavku, antivirusni stručnjaci općenito se slažu oko definicija
koje se koriste u okviru ovog kolegija .

Budući da današnji maliciozni programi koriste različite metode širenja i sprječavanja detekcije i
analize, u velikom broju slučaja dolazi do preklapanja različitih tipova malicioznih programa tako da
u nekim slučajevima, kao što je opisana u nastavku, nije moguće jednoznačna odrediti o kojem se
tipu malicioznog programa radi.

tel: 01 2222 182, e-mail: info@racunarstvo.hr www.racunarstvo.hr


111!!1 13. POGLAVLJE: MALICIOZNI PROGRAMI

13.2.1 Virusi
Virusi su bili prva vrsta malicioznih programa . Glavna karakteristika virusa je to da se kompletno
tijelo malicioznog programa "priljepljuje" na legitimni program, bilo da je riječ o drugom programu ili
fizičkim sektorima na nekom mediju (npr. tvrdom disku ili disketi). Drugim riječima, virus je u stanju
identificirati početnu/ulaznu adresu programa koji se inficira, dodati svoje tijelo na kraj (ili na neku
drugu lokaciju , gdje ima dovoljno prostora) tog programa te promijeniti početnu/ulaznu adresu
programa tako da pokazuje na tijelo virusa, kao što je pokazana na priloženoj slici.
Početna adresa p<Jkszuje na
kod virusa
Poče t na
~drBs r:i

Programski kod Programski kod

Podatkovne Podatkovne
strukture strukture
2.

Izvorni Inficirani
program program

Na ovaj način legitimni je program inficiran te će prilikom pokretanja istoga biti prvo pokrenut virus.
Nakon uspješnog pokretanja virusa , on vraća kontrolu natrag legitimnom programu, što znači da
krajnji korisnik u većini slučajeva neće primijetiti nikakvu promjenu u funkcionalnosti programa .

Prema načinu inficiranja datoteka odnosno sektora, mogu se navesti sljedeće kategorije virusa:

a) Virusi koji inficiraju datoteke (engl. File infector viruses) . Virusi koji spadaju u ovu
kategoriju inficiraju izvršne datoteke (npr. EXE, COM). Metoda inficiranja jednaka je
gore opisanoj, što znači da virus mijenja početnu/ulaznu adresu programa koji se
inficira kako bi pokazivala na njegov programski kod.

Virusi koji inficiraju datoteke teoretski mogu postojati za bilo koji operacijski sustav,
budući da su osnove rada operacijskih sustava jednake. U stvarnom su svijetu najčešće
otkriveni virusi za Windows operacijske sustave, no treba spomenuti da postoje i virusi
za druge, manje popularne operacijske sustave poput Mac OS X-a ili Linuxa .

Kod svih navedenih slučajeva metoda inficiranja izvršnih datoteka je jednaka, no autori
malicioznih programa moraju se prilagoditi specifičnostima formata pojedinih izvršnih
datoteka budući da Windows operacijski sustavi koriste format pod imenom PE
(Portable Executable format), dok npr. Linux operacijski sustavi koriste format pod
imenom ELF (Executable and Linkable format) . lako su formati slični (datoteke se dijele
u sekcije s izvršnim kodom odnosno podatkovnim sekcijama), nisu međusobno
kompatibilni .

b) Boot sektor virusi. Boot sektor virusi inficiraju boot sektor medija, bilo da je riječ o
tvrdom disku ili disketi. Prilikom podizanja računala, BIOS računala prvo pročita boot
sektor medija s kojeg se računalo podiže. Boot sektor sadrži kratak program koji
omogućava podizanje ostatka operacijskog sustava.

Zagreb llica 242 pwa;c;i.111 1111;.1.1;1;:1.;111;:;.1


11
l1iiti 13. POGLAVLJE : MALICIOZNI PROGRAMI

13.2.1 Virusi
Virusi su bili prva vrsta malicioznih programa . Glavna karakteristika virusa je to da se kompletno
tijelo malicioznog programa "priljepljuje" na legitimni program, bilo da je riječ o drugom programu ili
fizi čkim sektorima na nekom mediju (npr. tvrdom disku ili disketi). Drugim riječima, virus je u stanju
identificirati početnu/ulaznu adresu programa koji se inficira, dodati svoje tijelo na kraj (ili na neku
drugu lokaciju , gdje ima dovoljno prostora) tog programa te promijeniti početnu/ulaznu adresu
programa tako da pokazuje na tijelo virusa, kao što je pokaza no na priloženoj slici.
Početna ađreS<l poluJzuje na
kod vlrtJsa

Počet na
a dr ~i-l

Programski kod Programski kod

Podatkovne Podatkovne
strukture strukture
2.

Izvorni Inficirani
program program

Na ovaj način legitimni je program inficiran te će prilikom pokretanja istoga biti prvo pokrenut virus.
Nakon uspješnog pokretanja virusa , on vraća kontrolu natrag legitimnom programu, što znači da
krajnji korisnik u većini slučajeva neće primijetiti nikakvu promjenu u funkcionalnosti programa.

Prema načinu inficiranja datoteka odnosno sektora, mogu se navesti sljedeće kategorije virusa :

a) Virusi koji inficiraju datoteke (engl. File infector viruses) . Virusi koji spadaju u ovu
kategoriju inficiraju izvršne datoteke (npr. EXE, COM). Metoda inficiranja jednaka je
gore opisanoj, što znači da virus mijenja početnu/ulaznu adresu programa koji se
inficira kako bi pokazivala na njegov programski kod.

Virusi koji inficiraju datoteke teoretski mogu postojati za bilo koji operacijski sustav,
budući da su osnove rada operacijskih sustava jednake. U stvarnom su svijetu najčešće
otkriveni virusi za Windows operacijske sustave, no treba spomenuti da postoje i virusi
za druge, manje popularne operacijske sustave poput Mac OS X-a ili Linuxa.

Kod svih navedenih slučajeva metoda inficiranja izvršnih datoteka je jednaka, no autori
malicioznih programa moraju se prilagoditi specifičnostima formata pojedinih izvršnih
datoteka budući da Windows operacijski sustavi koriste format pod imenom PE
(Portable Executable format), dok npr. Linux operacijski sustavi koriste format pod
imenom ELF (Executable and Linkable format). lako su formati slični (datoteke se dijele
u sekcije s izvršnim kodom odnosno podatkovnim sekcijama), nisu međusobno
kompatibilni.

b) Boot sektor virusi. Boot sektor virusi inficiraju boot sektor medija, bilo da je riječ o
tvrdom disku ili disketi. Prilikom podizanja računala, BIOS računala prvo pročita boot
sektor medija s kojeg se računalo podiže . Boot sektor sadrži kratak program koji
omogućava podizanje ostatka operacijskog sustava .

Zagreb llica 242 QMRijiijl.iilaill41.iiii!U4ifi.4


HiiJI I
SIGURNOST INFORMACIJSKIH SUSTAVA

Boot sektor virusi bili su vrlo popularni tijekom devedesetih godina, budući da su
korisnici razmjenjivali programe disketama te nerijetke podizali operacijski sustav s
disketa. Uporabom tvrdih diskova i pojavom Windows operacijskih sustava boot sektor
virusi postali su manje popularni sve do 2008. kada su mogućnosti ovih virusa opet
privukle pažnju autora . Budući da se program u boot sektor virusu pokreće prije samog
operacijskog sustava, virusi mogu iskoristiti ovu činjenicu i preuzeti kontrolu nad
operacijskim sustavom . Međutim, pisanje ovakvih malicioznih programa vrlo je
kompleksne zbog toga što virus mora upravljati strukturama koje koristi kernel
operacijskog sustava. Primjer ovakvog virusa je MebRoot, vrlo napredan virus koji se
pohranjuje u boot sector tvrdog diska, a u stanju je inficirati čak i Windows 7 operacijske
sustave .

c) Makro virusi. Makro virusi postali su popularni u devedesetim god inama pojavom
uredskih aplikacija koje su omogućavale proširivanje funkcionalnosti korištenjem tzv.
makro jezika. Najpopularnije aplikacije za koje postoji i najveći broj makro virusa
svakako su one iz Microsoft Office uredskog paketa , poimenice Microsoft Word, Excel i
Power Point.

Navedene aplikacije omogućavaju pisanje programa u njihovu makro jeziku , koji se


zatim pohranjuje zajedno s dokumentom. Prilikom budućeg otvaranja dokumenta
moguće je postaviti automatsko pokretanje makro programa , što će omogućiti
pokretanje virusa i eventualnu infekciju drugih dokumenata. Zbog izrazite velike
raširenosti ovog tipa virusa (u jednom trenutku to su bili najrašireniji virusi u svijetu),
Microsoft je promijenio Office aplikacije te onemogućio automatsko pokretanje makro
programa pohranjenog s dokumentom koji se otvara . Nove inačice Microsoft Office
uredskog paketa tako prilikom pokretanja makro programa upozoravaju korisnika o
mogućim posljedicama.

Makro virusi nisu ograničeni samo na Microsoft Office aplikacije , već i na bilo koju drugu
aplikaciju koja omogućava pisanje i pohranjivanje makro programa. Tako su pronađeni
makro virusi čak i za Autocad aplikaciju.

Gore navedene kategorije virusa autori vrlo često kombiniraju, tako da se mogu naći virusi koji su u
stanju inficirati druge datoteke, ali i boot sektor. Na ovaj način autori virusa povećavaju vjerojatnost
infekcije ciljnog sustava, ali i otežavaju uklanjanje virusa s inficiranog računala . Naime, ako korisnik
npr. ukloni virus iz svih inficiranih izvršnih datoteka, ali ga ne ukloni iz boot sektora, prilikom
sljedećeg pokretanja računala sve će izvršne datoteke opet biti inficirane. Ovakvi se virusi nazivaju
multi-partite virusi.

13.2.2 Crvi
Crvi predstavljaju specijalnu kategoriju malicioznih programa čija je glavna karakteristika da se šire
putem računalnih mreža, ali ne inficiraju druge datoteke, bilo da je riječ o izvršnim datotekama ili
boot sektoru tvrdih diskova , odnosno disketa. Budući da ne inficiraju druge datoteke, crvi su
zapravo samostalni programi te se najčešće nalaze u vidu jedne izvršne datoteke.

Kako bi se širili putem računalnih mreža, crvi danas najčešće iskorištavaju sigurnosne ranjivosti u
mrežnim servisima, operacijskim sustavima ili aplikacijama . Budući da crvi ne inficiraju druge
datoteke, šire se kopiranjem cijelog tijela crva, odnosno cijelog programa.

Prema kategoriji sigurnosne ranjivosti koju iskorištavaju , crve možemo podijeliti u sljedeće skupine:
a) Crve koji iskorištavaju sigurnosne ranjivosti u implementiranim sigurnosnim
kontrolama. lmplementirane sigurnosne kontrole često dozvoljavaju jednostavne
korisničke zaporke ili nepravilno konfigurirana prava pristupa datotekama operacijskog

tel : 01 2222 182, e-mail : info@racunarstvo.hr www.racunarstvo.hr


i11H' 13. POGLAVLJE: MALICIOZNI PROGRAMI

sustava. Crvi mogu iskoristiti ove sigurnosne ranjivosti kako bi se kopirali na ciljno
računalo te zatim pokrenuli .

Primjer crva koji iskorištava ovakve ranjivosti je SDBot, crv koji pokušava probiti slabu
zaporku administratorskog korisničkog računa nakon čega se kopira na udaljeno
Windows računalo te pokreće .

b) Crve koji iskorištavaju sigurnosne ranjivosti u mrežnim servisima . U ovom slučaju


riječ je o iskorištavanju mrežnih ranjivosti u programskom kodu mrežnih servisa . Primjer
crva koji spada u ovu kategoriju je SQL Slammer, crv koji iskorištava sigurnosnu
ranjivost prepisivanja podataka na stogu u Microsoft SQL Server programskom paketu .
Ovaj crv napisan je 2003. godine kada je uzrokovao velike probleme u pristupu
poslužiteljima na Internetu zbog količine prometa koju su generirali inficirani poslužitelji .
Crv je također bio vrlo optimiziran te je kompletan kod crva bio napisan u 376 okteta.

Crvi u ovoj kategoriji mogu iskorištavati bilo koju sigurnosnu ranjivost u nekom
mrežnom servisu dostupnom preko Interneta ili lokalnih računalnih mreža . Sadmind crv,
napisan 2001 . godine jedan je od rijetkih malicioznih programa koji je u stanju inficirati i
Solaris i Windows operacijske sustave, dakle različite arhitekture računala . Crv se
zapravo sastoji od dva programa te nakon ustanovljavanja inačice servisa na
poslužitelju koji napada pokreće dio namijenjen iskorištavanju sigurnosne ranjivosti na
ciljnom operacijskom sustavu . Crv je iskorištavao sigurnosne ranjivosti u Microsoft llS
poslužitelju, odnosno sadmind servisu (Solstice AdminSuite) na Solaris operacijskim
sustavima , prema kojem je i dobio ime.

c) Crve koji iskorištavaju sigurnosne ranjivosti u aplikacijama. U ovu skupinu spadaju


crvi koji napadaju aplikacije instalirane na klijentskim računalima . Klasičan primjer crva
koji pripada ovoj skupini je Klez, koji iskorištava sigurnosnu ranjivost u Microsoft
Outlook Express aplikaciji za elektroničku poštu .

Klez se širi slanjem poruka elektroničke pošte koje sadrže maliciozni kod . Ovaj kod se
izvršava prilikom otvaranja poruke u ranjivoj inačici Microsoft Outlook Express aplikacije
te automatski inficira računalo. Nakon infekcije crv se dalje automatski šalje u vidu
poruka elektroničke pošte na sve adrese koje je našao na novo inficiranom računalu.

d} Crve koji iskorištavaju mehanizme socijalnog inženjeringa, odnosno ovise o


aktivnosti korisnika. U ovu skupinu spadaju crvi koji se šire isključivo zahvaljujući
aktivnostima korisnika koje se na razne načine navodi na provođenje istih. Klasičan
primjer crva iz ove kategorije je web crv koji napada popularne mrežne društvene
servise poput Facebooka ili MySpacea gdje korisnici, da bi omogućili širenje crva,
trebaju posjetiti određenu web stranicu u isto vrijeme kada su prijavljeni na društveni
servis. Crvi iz ove kategorije nerijetka iskorištavaju sigurnosne ranjivosti u web
aplikacijama, poput CSRF-a (engl. Cross Site Request Forgery).

13.2.3 Trojanski konji


Osnovna karakteristika trojanskih konja je da su maliciozni programi koji se nisu u stanju sami širiti.
Dakle, za razliku od virusa i crva, trojanski konji sami po sebi ne mogu inficirati nova računala, već
se za širenje istih često koriste upravo virusi ili crvi.

Trojanski konji kao kategorija malicioznih programa dobili su ime upravo prema povijesnom
događaju u Troji, kada su grčki ratnici napravili drvenog trojanskog konja, kojeg su stanovnici Troje
prihvatili kao poklon u zalog mira . No, u trojanskom konju bili su skriveni grčki ratnici koji su po
noći, nakon što je konj unesen unutar zidina Troje, otvorili ulazna vrata te omogućili napad.

Zagreb llica 242 4wa;;;1.1;;111p1mq;;;;,1


l1iil' SIGURNOST INFORMACIJSKIH SUSTAVA

Računalni trojanski konji slični su onom povijesnom u smislu da obično zavaravaju korisnika
predstavljajući se kao legitimni programi . Korisnik, ne znajući o čemu je zbilja riječ, često i sam,
dobrovolj no, instalira trojanske konje na svoje računalo, a oni nakon toga poduzimaju određene
maliciozne aktivnosti . Danas se trojanski konji najčešće koriste za krađu osobnih informacija s
inficiranih računala , a nerijetka napadačima omogućavaju i udaljenu kontrolu. Mehanizmi za
udaljenu kontrolu nazivaju se stražnjim vratima (engl. backdoor), budući da napadačima
omogućavaju neometanu i neograničenu kontrolu inficiranih računala . U slučaju kontrole velikog
broja inficiranih računala napadači nerijetka koriste napredne mehanizme za kontrolu opisane u
poglavlju 13.8.

13.2.4 Spyware i adware programi


Spyware i adware posebna su kategorija malicioznih programa . Kao što je riječ i o virusima , niti
ovdje ne postoji jasna definicija ove kategorije malicioznih programa . Općenito prihvaćena
definicija spywarea obuhvaća sve maliciozne programe kojima je cilj narušiti privatnost ili dohvatiti
osobne informacije korisnika. Metode širenja spywarea te same izvedbe ovih aplikacija nisu bitne
budući da se u stvarnom svijetu može naći širok spektar malicioznih programa koji spadaju u ovu
grupu .

Osim zasebnih aplikacija čiji je cilj krađa osobnih informacija korisnika , spyware maliciozni
programi najčešće se distribuiraju u vidu specijalnih dodataka za web preglednike, kao što su
Browser Helper Object dodaci za lnternet Explorer. Ovi dodaci omogućavaju presretanje i
modificiranje svih zahtjeva koje web preglednik šalje , odnosno odgovora koje dobiva od udaljenog
poslužitelja na temelju čega napadač može ukrasti povjerljive informacije.

Uz specijalne aplikacije, za praćenje aktivnosti korisnika nerijetka se koriste i kolačići web


preglednika. Kolačići su zapravo obične tekstualne datoteke koje web preglednik pohranjuje ovisno
o web stranici koju korisnik posjećuje . Kolačići su potpuno legitimna funkcija HTTP protokola bez
koje zapravo veliki broj web stranica ne bi niti mogao ispravno funkcionirati , budući da se koriste za
praćenje stanja sesije korisnika (engl. session tracking). Ovo je potrebno zbog toga što HTTP
protokol nema nikakvu oznaku stanja, već da se svaki upit na poslužitelj obrađuje zasebno;
kolačići zato predstavljaju vrijednost koja web poslužitelju, odnosno web aplikaciji omogućuje
identifikaciju pojedinog korisnika. Jednom pohranjeni kolačić web poslužitelju se šalje prilikom
svakog budućeg posjećivanja . Ograničenje kolačića je to da pojedina web aplikacija može pristupiti
samo kolačićima u svojoj domeni , a ne i onim drugima. Npr. kolačić koji je postavila domena
racunarstvo.com ne može pročitati niti jedna druga stranica osim one u toj domeni.

Kolačići se koriste za praćenje aktivnosti korisnika posebno putem reklama koje se nalaze na
stranicama . Kako se reklame obično učitavaju s izdvojenih poslužitelja, moguće je da dvije web
stranice u različitim domenama (npr. racunarstvo.com i algebra.hr) prikazuju istu reklamu, s nekog
trećeg poslužitelja. Ovaj treći poslužitelj može identificirati pojedinog korisnika i njegove aktivnosti
te točno ustanoviti je li navedeni korisnik pristupio na obje web stranice ili samo jednu te kada .

Konačno, posebnu kategoriju malicioznih programa predstavljaju i adware programi. Cilj ovih
malicioznih programa je prikazivanje oglasa na bilo koji način. Oglasi se najčešće korisniku
inficiranog računala prikazuju prilikom pregledavanja web stranica, a nerijetka adware programi i
presreću aktivnosti korisnika, kako bi napadač generirao zaradu posjećivanjem određenih web
stranica, koje korisnik možda inicijalna nije niti žel io posjetiti.

13.3 Napredne mogućnosti malicioznih programa


Prilikom širenja novog malicioznog programa, glavnina infekcija događa se još dok antivirusni
proizvođači nisu izdali nove definicije koje omogućavaju detekciju tog programa (način rada
antivirusnih programa detaljnije je opisan u poglavlju 13.9). Ovo vrijeme naziva se prozor

tel : 01 2222 182, e-mail: info@racunarstvo.hr www.racunarstvo.hr


Hiii' 13. POGLAVLJE: MALICIOZNI PROGRAMI

mogućnosti (engl. window of opportunity) i autori malicioznih programa nastoje ga što je moguće
više povećati .

U svrhu otežavanja detekcije antivirusnih programa autori malicioznih programa koriste različite
metode koje su navedene u nastavku ovog poglavlja :

a) Polimorfizam malicioznih programa . Polimorfizam predstavlja promjenu tijela


programa uz zadržavanje jednake funkcionalnosti. Osnovna svrha polimorfizma je
otežavanje detekcije od strane antivirusnih programa koji detekciju temelje na
potpisima . Budući da je potpis vezan uz samo tijelo malicioznog programa (slijed okteta
koji predstavljaju maliciozni program), promjenom tijela naveden i potpis više neće
vrijediti te će proizvođač antivirusnog programa morati izdati novi potpis.

Polimorfizam se najčešće implementira tako da se glavni dio malicioznog programa


enkriptira ili komprimira korištenjem specijalnih programa pisanih u tu svrhu koji se
nazivaju engl. packer. Nakon što je glavni program enkriptiran, vidljiv je samo kod
packer programa. Prilikom pokretanja malicioznog programa , packer će u memoriji
računala dekriptirati, odnosno dekomprimirati izvorni maliciozni programa te ga nakon
toga pokrenuti. Polimorfizam se sada može implementirati promjenom enkripcijskog
ključa, što će rezultirati i promjernom enkriptiranog tijela malicioznog programa. lako
antivirusni programi mogu temeljiti detekciju i na samom packeru , to u nekim
slučajevima nije moguće, budući da se isti packer program može koristiti i u legitimne
svrhe (npr. za zaštitu legitimnih programa od analize) . Danas antivirusni programi
najčešće uključuju i metode heuristike odnosno pokretanja u izoliranom okruženju , čime
se rješava problem polimorfizma, budući da aktivnosti malicioznog programa ostaju
nepromijenjene.

b) Rootkit tehnologija . Rootkit tehnologija omogućava integriranje malicioznih programa


s ključnim funkcijama i strukturama jezgre operacijskog sustava . Ova napredna metoda
skrivanja postala je vrlo popularna 2007. godine nakon čega se sve češće pronalaze
maliciozni programi koji imaju rootkit komponentu .

Rootkit komponenta obično koristi metode presretanja poziva jezgri operacijskog


sustava . Npr. kada bilo koja aktivna aplikacija na računalu želi otvoriti neku datoteku ili
direktorij, ta aktivnost se obavlja pozivom određenoj funkciji jezgre operacijskog
sustava. Jezgra operacijskog sustava zatim rukuje svim ostalim pozivima niske razine
(npr. izravna komunikacija s hardverom računala), a aplikaciji koja je poslala izvorni
zahtjev vraćaju se samo konačni rezultati. Korištenjem metoda presretanja poziva jezgri
operacijskog sustava (engl. function hooking), maliciozni program može tako funkciju za
otvaranje datoteka usmjeriti na svoj programski kod, koji se u ovom slučaju naziva
rootkit. Ovaj programski kod će prilikom svakog poziva prvo provjeriti ime datoteke koja
se želi otvoriti i usporediti to ime s listom zabranjenih imena (npr. ime datoteke samog
malicioznog programa). Ako korisnik (odnosno aplikacija na računalu) želi otvoriti
maliciozni program, rootkit komponenta će vratiti lažnu poruku da ta datoteka ne postoji.
U protivnom, poziv se usmjeruje legitimnoj funkciji jezgre operacijskog sustava te
aplikacija dobiva prave podatke, kao da rootkit niti ne postoji. Na ovaj način svim
aplikacijama pokrenutim na inficiranom računalu onemogućava se pristup malicioznom
programu , koji je u potpunosti skriven, naravno ovisno o implementaciji same rootkit
komponente. Osim datoteka i direktorija, rootkit komponente mogu sakriti ili modificirati
bilo koji dio operacijskog sustava, pa se vrlo često skrivaju i otvoreni portovi ili drugi
parametri mrežnih komunikacijskih veza kako bi se korisniku inficiranog računala, ali i
antivirusnim programima što je više moguće otežala detekcija.

Zbog kompleksnosti detekcije malicioznih programa koji koriste rootkit komponente, u


svrhu uklanjanja malicioznog programa danas se uvijek preporučuje kompletna

Zagreb llica 242 wwa;p;;.;;;::11&1j.1.ii!Ji!.1414.1


i1i!J:i SIGURNOST INFORMACIJSKIH SUSTAVA

reinstalacija računala, a ako to nije moguće, pregledavanje antivirusnim programom


pokrenutim sa samostalnog medija poput CD-ROM-a , kako bi se eliminirala mogućnost
modificiranja rezultata od strane rootkita .

c) Otežavanje analize umetanjem nekorisnog koda. Svrha ovog koraka je isključivo


otežavanje analize koju obavljaju antivirusn i stručnjaci , iako se nekada ove metode
koriste i za promjenu potpisa malicioznog programa , čime se pokušava izbjeći detekcija
od strane antivirusnih programa.

Umetanje nekorisnog programskog koda obično se provodi na najnižoj raz1n1 , u


strojnom jeziku. Autori malicioznih programa tako mogu ubacivati kompleksne funkcije u
program koje ne provode nikakve korisne aktivnosti, već je cilj samo učiniti ručnu
analizu programa dužom i kompleksnijom , pogotovo kada se uzme u obzir da je riječ o
analizi strojnog koda, koja je sama po sebi već vrlo kompleksna.

Umetanje nekorisnog programskog koda može imati i legitimne svrhe te se vrlo često
koristi za izradu "vodenog žiga" (engl. watermark) , čime proizvođači aplikacija stvaraju
jedinstveni potpis svake aplikacije , što im omogućava identifikaciju u slučaju
nelegitimnih aktivnosti (npr. objava aplikacije na Internetu).

d) Emulacija korištenjem virtualnih strojeva . Konačno , još jedna česta metoda zaštite
malicioznih programa predstavlja korištenje virtualnih strojeva. U ovom slučaju riječ je o
još jednoj inačici packer programa opisanih u prethodnom tekstu . Aktivnosti koje packer
program provodi ovaj put se temelje u prevođenju malicioznog programa iz strojnog
koda u kod koji koristi virtualni stroj (engl. bytecode). Virtualni strojevi zapravo su
zasebni emulatori, a temelje se na istim principima na kojima radi i npr. virtualni stroj za
programski jezik Java (engl. JVM - Java Virtual Machine).

Korištenje emulacije virtualnih strojeva dodatno otežava detekciju i analizu malicioznog


programa budući da je često riječ o vrlo kompleksnim programima, što znači da je
potrebno prvo analizirati funkcionalnost virtualnog stroja da bi se mogao analizirati sam
maliciozni program. Zbog ovakvih otežavajućih okolnosti , antivirusne tvrtke vrlo često
ne analiziraju maliciozne programe ručno, već se analize temelje isključivo na
analizama ponašanja programa.

Virtualni strojevi imaju i svoje nedostatke, od kojih je najveći smanjenje performansi


programa, budući da je sama emulacija vrlo kompleksna. Osim toga , neizbježno dolazi i
do povećanja fizičke veličine programa , upravo zbog dodataka virtualnog emulatora .

Navedene metode zaštite malicioznih programa samo su primjer različitih metoda koje autori ovih
programa danas upotrebljavaju. Vrlo često maliciozni programi koriste kombinacije navedenih
metoda kako bi se analiza i detekcija koju obavljaju antivirusni programi što više otežala i
prolongirala .

13.4 Mreže malicioznih programa


Nakon inicijalne infekcije računala , autori malicioznih programa nastoje što je duže moguće ova
računala i kontrolirati. Kako je u često riječ o velikom broju računala, autori malicioznih programa
kontrolu provode kroz specijaliziranu infrastrukturu , odnosno poslužitelje koji se nazivaju C&C
(engl. Command And Control) poslužitelji.

C&C poslužitelj i zapravo su vrlo često obični poslužitelji na Internetu, na kojima je pokrenuta
specijalna aplikacija . Inficirana računala komuniciraju s C&C poslužiteljima i od njih dobivaju
naredbe o svojim budućim aktivnostima ili im jednostavno šalju prikupljene podatke. Tako se C&C

tel: 01 2222 182, e-mail: info@racunarstvo.hr www.racunarstvo.hr


i1iHI 13. POGLAVLJE: MALICIOZNI PROGRAMI

poslužitelji, osim za izdavanje naredbi inficiranim računalima , koriste i za prikupljanje ukradenih


informacija s inficiranih računala.

Aplikacije koje su pokrenute na C&C poslužiteljima mogu biti bilo kakve , a danas se naJcesce
koriste web aplikacije koje se mogu naći i na crnom tržištu po vrlo niskim cijenama. Prikaz jedne
takve popularne aplikacije (mPack) dan je na sljedećoj slici :

MPack v0.90 stats

Attacked hosts {total - uniq} Traffic {total - uniq) „


IE XPALL 114721 - 96104 Total traff 159073 - 129089
Quickr1me 2175- 2048 Exmloited 44804 - 35574
Win2000 7033 - 6260 Loads count 17408 - 15968
firefox 12885 - 12514 Loader's resrnonse 38.85% - 44.89%
.om ra7 1271 - 1264 Efficiency 10-94% - 12.37% I

8rowser stats (totat} Modules state


4 Sta tistic n'l7rnll M;rll'."!'il"L-based
MSIE
User blockinil'il 00
Opera 1 Count!i"'.l blockinlil
O"•o

Co1.1ntry Traff Loads Efficiency


u RU - Russian federation:: 1
112793
70.9' „,
12653
J}. ;i)~: 11.220/o
16666 1670
lilii UA - Ukraine 1 o.s·o ,, 9.()C'.'(;
10.02%

a!IT-Italy 7045 593


.i_,p.„ 3,-1\'.;·\·; 8 .42%

t'.J GE - Georgia 5775 673


3.6'..',> ~:'.. qO,'c.
11.65%
5419 657
U BY - Belarus ::.p.· 3.W :·
12.120/o
3098 376
• KZ - Kazakstan l.'). /,)(··"
12.14%

~ US - United states
1117 50
0_70,. 0.3t:·_„,._ 4.48%

~ Al. - Azerbaijan 1060 128


O.l'·,, 0.70.,, 12.08%
683 101 o

Inficirani strojevi kojima se upravlja preko C&C poslužitelja nazivaju se botnetima. Karakteristika
botneta je da inficirani strojevi kontaktiraju jedan ili više C&C poslužitelja od kojih dobivaju naredbe
o budućim aktivnostima koje trebaju provesti. Ovdje se može vidjeti da upravljanje inficiranim
računalima ovisi o jednom poslužitelju , što olakšava identifikaciju i uklanjanje istog . Da bi svoju
mrežu napravili što je moguće otpornijom na uklanjanje, autori malicioznih programa koriste
tehnike brzog mijenjanja IP adrese poslužitelja koje se nazivaju Fast Flux (FF), odnosno Double
Flux (DF).

Fast flux tehnika temelji se na brzom i konstantnom mijenjanju A zapisa DNS imena. A zapisi
definiraju IP adrese pojedinih DNS imena. Drugim riječima, kada se inficirano računalo iz botneta
pokušava spojiti na C&C poslužitelj, ono se pokušava spojiti na određeno DNS ime, koje je
unaprijed definirano. Ako ovo DNS ime pokazuje samo na jedan A zapis (samo na jednu IP
adresu), uklanjanje C&C poslužitelja vrlo je jednostavno budući da je potrebno samo onemogućiti
pristup identificiranoj IP adresi . U svrhu otežavanja ovog postupka, autori malicioznih programa
definiraju velik broj prve razine poslužitelja (obično samo web poslužitelji), čije se IP adrese
redovito mijenjaju . Ovi poslužitelji često su također inficirana računala koja samo služe za
prikrivanje pravog C&C poslužitelja, kao što je prikazano na sljedećoj slici :

Zagreb !lica 242 WAll#fi.iil.$1!J.!.IM:UllJIJ.4


l1$$Hi SIGURNOST INFORMACIJSKIH SUSTAVA

BOTN ET
infic irana ra č una la
(J
C&C server

Autoritativni DNS server 4) Odgovor;


ns.fastflux.com 10.0 .10.0
10.1.1 2.3

gTLD DNS server


.com

1) Uplt:
www.fasrnux.com
ID
~ Interne! korisnik

Budući da se DNS zapisi konstantno mijenjaju , može se vidjeti da više nije moguće locirati C&C
poslužitelj te jednako tako blokiranje pristupa pojedinoj IP adresi neće spriječiti komunikaciju
inficiranih računala s C&C poslužiteljem, jer će botnet automatski probati kontaktirati sljedeću IP
adresu, pa ako niti to ne uspije, onu iza nje itd .

Sljedeća tablica prikazuje jednu malicioznu domenu s A zapisima i pripadajućim parametrima . TTL
parametar (engl. Time To Live), opisuje koliko dugo se pojedini zapis smije zadržati u
međuspremniku lokalnog DNS poslužitelja - vrijednost O znači da se zapis uopće ne smije
pohranj ivati u međuspremnik , odnosno da svaki novi upit za ovim imenom uzrokuje i kompletno
razlučivanje .

Inicijalni DNS upit:


www.send-safe.com TTL =300, INA 68 .61 .82.45
www.send-safe.com TTL =300, INA 78.109.116.107
www.send-safe.com TTL =300, INA 84.126 .9.139
www.send-safe.com TTL =300, INA 92.112.155.34
www.send-safe.com TTL =300, INA 114.148.26.221
www.send-safe.com TTL =300, INA 189.70 .142.73
www.send-safe.com TTL =300, INA 190.1 45.24.98
www.send-safe.com TTL =300, INA 201 .209.127 .133

Druqi upit nakon 300 sekundi :


www.send-safe.com TTL =300 , INA 59.149.236.36
www.send-safe.com TTL =300 , INA 78 .109.116.107
www.send-safe.com TTL =300, IN A 92 .112.155.34

tel: 01 2222 182, e-mail : info@racunarstvo.hr www.racunarstvo.hr


HiJIM 13. POGLAVLJE: MALICIOZNI PROGRAMI

www.send-safe.com TTL =300, IN A 114.148.26 .221


www.send-safe.com TTL =300 , IN A 189.57 .19.178
www.send-safe.com TTL =300 , INA 189.70 .142.73
www.send-safe.com TTL =300, INA 201 .95.178.32
www.send-safe .com TTL =300 , IN A 201 .209 .127 .133

Kao što se može vidjeti iz opisanog, slaba točka je još uvijek DNS ime , odnosno DNS poslužitelji
za domenu koju autori malicioznih programa upotrebljavaju (NS zapisi DNS sustava) . Ovaj
problem autori malicioznih programa rješavaju na način da se domena koju koriste registrira kod
registra koji su ili spori u rješavanju zahtjeva antivirusnih tvrtki ili na njih uopće ne odgovaraju .
Tipični primjeri ovakvih registra su domene u državama trećeg svijeta ili nekih malih otočnih
država, poput npr. domena .cc (Cocos (Keeling) otoci), .kz (Kazahstan) i slične .

Da bi se otpornost još više povećala , danas autori malicioznih programa koriste i tzv. double flux
tehnologije . Poput fast flux tehnologije , double flux mijenja A zapise konačnih imena , ali jednako
tako brzo mijenja i NS zapise, što znači da više nije moguće niti blokirati mrežni promet prema
DNS poslužiteljima zadužen im za malicioznu domenu .

Opisanim metodama autori malicioznih programa stvaraju vrlo otpornu infrastrukturu koja im
omogućava provođenje kriminalnih i drugih ilegalnih aktivnosti. Ovakva infrastruktura obično se
naziva neprobojnom (engl. bulletproof) .

13.5 Antivirusni programi


Antivirusni programi predstavljaju osnovnu i neizostavnu liniju zaštite od malicioznih programa.
Standardi za informacijsku sigurnost propisuju obaveznu instalaciju antivirusnih programa na
svako računalo , bilo da je riječ o klijentskom ili poslužiteljskom računalu , kako bi se osigurala
minimalna razina zaštite od malicioznih programa .

Antivirusni programi integriraju se s operacijskim sustavom u svrhu identifikacije malicioznih


programa. Tako se definiraju dva načina rada antivirusnih programa :

c) Detekcija u stvarnom vremenu (engl. rea/ time detection). Ovo je najčešći način rada
antivirusnih programa koji omogućava i najvišu razinu zaštite . Integracija s operacijskim
sustavom omogućava provjeru svih datoteka koje korisnik ili bilo koja aplikacija
pokrenuta na računalu pokušava otvoriti ili pokrenuti.

Na ovaj način omogućava se detekcija i sprječavanje pokretanja malicioznih programa ,


čime se automatski sprječava i infekcija , odnosno širenje . Detekcija u stvarnom
vremenu vrlo je bitna jer, kao što se može vidjeti iz ostatka poglavlja, nakon što je
računalo jednom inficirana, čišćenje i uklanjanje malicioznog programa može biti vrlo
komplicirano, ako ne i nemoguće.

Problem detekcije u stvarnom vremenu je utjecaj na performanse sustava budući da se


pokretanje aplikacija i otvaranje datoteka usporava za vrijeme koje je potrebno
antivirusnom programu za pregledavanje. Zbog toga je jedan od ključnih zahtjeva koji
se postavlja pred antivirusne programe upravo njihova brzina .

d) Detekcija na zahtjev (engl. on demand detection). Ovaj način rada obično se koristi na
poslužiteljima i to u određenim vremenskim intervalima (npr. po noći), uz detekciju u
stvarnom vremenu.

Cilj detekcije na zahtjev je otkrivanje malicioznih programa koji prethodno nisu bili
detektirani. Npr. moguće je da prilikom pohranjivanja malicioznog programa na

Zagreb ll ica 242 iiiijiiiii.!ii"iiM!ij.i.H!iii.ijiiiii!i.4


i1i!fi SIGURNOST INFORMACIJSKIH SUSTAVA

poslužitelj antivirusni program još nije bio u stanju detektirati isti , no nakon što je
antivirusni proizvođač izdao potpise za detekciju, i nakon što su potpisi bili osvježeni na
poslužitelju, navedeni je maliciozni program moguće detektirati.

Sam postupak detekcije malicioznih programa također je manje ili više standardiziran, s tim da,
naravno, svaki antivirusni proizvođač ima specifičnosti vezane uz svoj proizvod . Međutim , općeniti
rad antivirusnih programa, odnosno postupak detekcije, temelji se na sljedećim metodama:

a) Detekcija potpisima (engl. signature detection). Detekcija potpisima klasičan je način


rada antivirusnih programa koji je u upotrebi od samih početaka razvoja antivirusnih
programa. Prilikom pojavljivanja novog malicioznog programa, antivirusni proizvođači
ga ana liziraju te pišu specijalni potpis koji njihovu proizvodu omogućava detekciju ovog
malicioznog programa .

Kao što se može vidjeti , osnovni problem detekcije potpisima je to što se radi o
reaktivnom procesu, odnosno što antivirusn i proizvođači moraju prvo analizirati
maliciozni program da bi ga mogli detektirati . U pojedinim slučajima antivirusni
proizvođači mogu napraviti tzv. generičke potpise koji mogu detektirati cijele obitelji
malicioznih programa, pod uvjetom da iste imaju neke zajedničke uzorke koje dijele.

Autori malicioznih programa najčešće pokušavaju zaobići detekciju potpisima visokim


stupnjem polimorfizma ili korištenjem virtualnih emulatora, kao što je opisane u
poglavlju 13.7.

b) Detekcija aktivnosti (ponašanja) malicioznih programa (engl. behavioral detection).


Detekcija aktivnosti svodi se na praktično pokretanje programa koji se antivirusni
program analizira u izoliranoj okolini. Antivirusni program na ovaj način pregledava sve
aktivnosti programa te je u stanju detektirati maliciozne aktivnosti (npr. brisanje
datoteka ili komunikacija s C&C poslužiteljem).

Problem detekcije aktivnosti malicioznih programa su veliki zahtjevi za resursima, što


znači i usporavanje rada računala korisnika . Također, implementacija izolirane okoline
vrlo je kompleksna, što autori malicioznih programa nekad pokušavaju iskoristiti te
detektirati sam antivirusni program ili u potpunosti onemogućiti izvođenje u izoliranoj
okolini pozivanjem funkcija sustava koje antivirusni programi možda nisu implementirali.

Gotovo svi današnji antivirusni programi koriste obje navedene metode detekcije kako bi što više
povećali šansu detekcije novih malicioznih programa . Najnoviji razvoj ide i u smjeru oblačnog
računarstva (engl. cloud computing), gdje su se prvi antivirusni programi koji koriste ovakav način
rada već pojavili na tržištu .

tel: 01 2222 182, e-mail : info@racunarstvo.hr www.racunarstvo.hr

You might also like