54
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 3903 ANALIZA ZLONAMJERNIH PROGRAMA Laura Dabelić Zagreb, srpanj 2015.

ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

Embed Size (px)

Citation preview

Page 1: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 3903

ANALIZA ZLONAMJERNIH PROGRAMA

Laura Dabelić

Zagreb, srpanj 2015.

Page 2: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati
Page 3: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

iii

Page 4: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

iv

SADRŢAJ

1. Uvod ......................................................................................................... 1

2. Sigurnosne prijetnje ................................................................................ 2

2.1. Trojanski konj .................................................................................. 2

2.2. Programi koji instaliraju reklame ..................................................... 3

2.3. Raspodijeljeni napad uskraćivanjem usluge ................................... 3

2.4. Računalni crvi ................................................................................. 4

2.5. Špijunski programi .......................................................................... 5

2.6. Računalni virusi .............................................................................. 5

2.7. Zlonamjerni program koji izbjegava njegovo otkrivanje .................. 6

2.8. Metoda koja zloupotrebljava ranjivosti sustava ............................... 6

2.9. Logička bomba ............................................................................... 6

2.10. Zastrašivanje .................................................................................. 7

2.11. Zlonamjerni programi koji šalju neţeljenu elektroničku poštu ......... 7

3. Alati za statičku i dinamičku analizu zlonamjernih programa ............. 8

3.1. Alat za statičku analizu dinamičkih biblioteka ................................. 8

3.2. 32-bitni program za ispravljanje pogrešaka .................................... 8

3.3. Program za otkrivanje pakiranja ..................................................... 8

3.4. Programi za pregledavanje PE datoteka ........................................ 9

3.5. Program za praćenje aktivnosti procesa ......................................... 9

3.6. Program za praćenje sustava u stvarnom vremenu ........................ 9

3.7. Alat za praćenje stanja registara ..................................................... 9

3.8. Alat za obradu PE datoteka .......................................................... 10

3.9. Alat za analizu znakovnih nizova .................................................. 10

3.10. Alat za pakiranje ........................................................................... 10

3.11. Internetska usluga za analizu zlonamjernih programa .................. 10

3.12. Alat za virtualizaciju ...................................................................... 10

4. Postupci statičke analize ...................................................................... 12

4.1. Provjera antivirusnim programima ................................................ 12

4.2. Pronalaţenje jedinstvenog ključa .................................................. 12

4.3. Provjera znakovnih nizova ............................................................ 13

Page 5: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

v

4.4. Pakiranje i raspakiravanje ............................................................. 14

4.5. Kodne biblioteke i vrste povezivanja ............................................. 16

4.5.1. Statičko povezivanje ........................................................... 17

4.5.2. Dinamičko povezivanje ....................................................... 17

4.5.3. Često korištene dinamičke biblioteke ................................. 18

4.6. PE format datoteke ....................................................................... 19

5. Postupci dinamičke analize .................................................................. 21

5.1. Pokretanje dinamičkih biblioteka ................................................... 21

5.2. Promjene uzrokovane zarazom zlonamjernim programom ........... 22

5.2.1. Promjene registara ............................................................. 23

5.2.2. Promjene datotečnog sustava ............................................ 23

5.2.3. Promjene aktivnosti procesa .............................................. 24

5.2.4. Promjene mreţne aktivnosti ............................................... 24

5.3. Mamci ........................................................................................... 25

6. Virtualno okruženje za ispitivanje ........................................................ 27

6.1. Virtualni stroj ................................................................................. 27

6.2. Metode protiv virtualnih strojeva ................................................... 28

7. Statička analiza proizvoljno odabranog zlonamjernog programa .... 30

7.1. Provjera antivirusnim programima ................................................ 30

7.2. Analiza zaglavlja PE datoteke ...................................................... 33

7.3. Provjera znakovnih nizova ............................................................ 34

7.4. Provjera pakiranja ......................................................................... 36

7.5. Analiza dinamičkih biblioteka ........................................................ 36

8. Dinamička analiza proizvoljno odabranog zlonamjernog

programa ................................................................................................ 39

8.1. Pripremanje sustava za analizu .................................................... 39

8.2. Pokretanje zlonamjernog programa .............................................. 40

8.3. Analiza sustava nakon zaraze ...................................................... 44

9. Zaključak ................................................................................................ 47

Literatura ..................................................................................................... 48

Page 6: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

1

1.Uvod

Razvoj novih i raznolikih korisnih programa uvijek je pratio razvoj

zlonamjernih programa. Sve veće korištenje Interneta i sve bolja umreţenost

korisnika omogućili su idealno okruţenje za njihovo širenje i povećali količinu

štete koju oni mogu proizvesti. Zato se pojavila potreba za zaštitom sustava

od utjecaja zlonamjernih programa koji svakih nekoliko mjeseci mutiraju.

Novije inačice zlonamjernih programa se stalno prate i dokumentiraju.

Stranice kao što su malwaredomainlist i virustotal svakodnevno se

dopunjavaju informacijama o novim zlonamjernima programima. U skladu s

tim razvijaju se i nova aţuriranja za antivirusne programe. U procesu

unaprjeĎivanja antivirusnih programa vaţnu ulogu ima analiza zlonamjernih

programa (engl. malware analysis). Osim toga, analiza zlonamjernih

programa vrlo je bitna nakon nekog sigurnosnog incidenta u sustavu jer

moţe dati odgovore na pitanja kao što su:

Kako je zlonamjerni program dospio u sustav?

Kakva je njegova funkcionalnost i kakvu štetu moţe prouzročiti?

Kako ga se moţe ukloniti iz sustava?

Koje posljedice na sustav će ostaviti sigurnosni incident?

Kako se moţe zaštititi sustav od sličnih prijetnji?

Autori zlonamjernih programa su domišljati, strpljivi i uporni tako da

prilikom analize treba biti spreman na mnoge metode prikrivanja kojima se

oni sluţe kako bi zamaskirali stvarnu prirodu programa koje su napisali.

Jedan od najboljih primjera su tzv. "laţni antivirusni programi" i općenito

programi koji "glume" korisne programe. TakoĎer, neki zlonamjerni programi

već imaju ugraĎene metode kojima mogu prepoznati da ih se analizira unutar

virtualnog stroja i na temelju toga promijeniti svoje ponašanje kako bi ih se

teţe otkrilo (engl. anti virtual machine techniques) [1]. Zato se često kaţe da

je analiza zlonamjernih programa "igra mačke i miša".

Page 7: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

2

2. Sigurnosne prijetnje

Vrsta sigurnosne prijetnje ovisi o vrsti zlonamjernog programa s kojim je

korisnik došao u doticaj. Zlonamjerni programi se mogu podijeliti u nekoliko

kategorija.

2.1. Trojanski konj

Jedan od onih zlonamjernih programa koji se pretvaraju da su korisni

programi ima naziv trojanski konj (engl. Trojan horse). Oni nemaju

mogućnost samoumnoţavanja nego skidaju dodatne zlonamjerne programe

s Interneta i instaliraju ih bez korisnikovog znanja ili koriste neku drugu

metodu kako bi korisnikov sustav učinili ranjivijim za nove sigurnosne

prijetnje. Po vrsti sigurnosnih prijetnji, trojanski konji se mogu podijeliti u

sljedeće podkategorije:

KraĎa lozinki - Ova vrsta trojanskih konja specijalizirana je za kraĎu svih

vrsta lozinki. Svi korisnikovi unosi s tipkovnice se biljeţe i šalju autoru

trojanskog konja. Zbog toga se za ovu podkategoriju koristi engleski naziv

keylogger. To su lozinke bankovnih računa, lozinke za račune mreţnih igara

ili lozinke za servise instant poruka.

Trojan-Ransom - Onemogućavaju korisniku pristup do njegovih podataka

metodama kao što su kriptiranje ili pakiranje. Autor zlonamjernog programa

od korisnika traţi odreĎenu svotu novaca u zamjenu za ponovno

omogućavanje pristupa podacima. Kako je to zapravo "otkupnina" za

korisnikove podatke, odatle je nastao engleski naziv ransomware.

Trojan-Backdoor - Omogućavaju autoru zlonamjernog programa kontrolu

nad korisnikovim računalom. Zato je naziv ove podkategorije i RAT (engl.

Remote Access Trojan). Ova podkategorija korisnikovo računalo moţe

pretvoriti u posrednika u mreţi (engl. proxy) korištenjem koje autor

zlonamjernog programa moţe zadrţati anonimnost.

Page 8: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

3

Trojan-ArcBomb - Ova podkategorija osmišljena je za usporavanje ili

onemogućavanje posluţitelja elektroničke pošte. Velike datoteke ili velike

količine datoteka pakiraju se u mali "paket" koji kad se otvori postane tako

velik da posluţitelj mora odvojiti jako veliku količinu procesorskog vremena i

diskovnog prostora kako bi ga obradio.

2.2 Programi koji instaliraju reklame

Ova kategorija zlonamjernih programa zapravo ne nanosi toliku štetu

korisniku koliko ga ometa prikazivanjem mnoštva reklama. Većina njih će

zaraziti Internet preglednik (engl. browser) i "zatrpati" dijelove teksta stranice

koju je korisnik posjetio reklamama. Zato korisnik ponekad misli da su

reklame na toj stranici, ali zapravo potječu od njegovog zaraţenog

preglednika. TakoĎer, korisnik će u svom pregledniku moţda vidjeti i neke

dodatke sa reklamama koje će ga upozoravati da njegovo računalo radi

neispravno. Neki zlonamjerni programi iz ove kategorije mijenjaju početnu

stranicu preglednika i otvaraju nove kartice preglednika (engl. pop-up

windows) sa reklamama. Zbog toga se za njih koristi engleski naziv adware.

2.3. Raspodijeljeni napad uskraćivanjem usluge

Ova vrsta sigurnosne prijetnje ima cilj onesposobiti internetsku uslugu tako

da je "zatrpa" prometom iz mnogo izvora (engl. Distributed Denial of Service)

[4]. Napadači izgrade mreţu zaraţenih računala (engl. botnets). Zloćudni

programi kojima se zaraze računala šire se putem sumnjivih stranica,

elektroničke pošte i društvenih mreţa. Zaraţena računala moguće je

kontrolirati izdaleka i bez znanja vlasnika te oni sluţe kao "vojska" za

odašiljanje napada. Generira se "poplava" prometa. To moţe biti slanje

velikog broja zahtjeva za spajanje koji uvelike premašuje broj zahtjeva koje

Internet posluţitelj moţe obraditi. Drugi način je odašiljanje velikog broja

slučajnih podataka kako bi se iscrpila posluţiteljeva širina pojasa (engl.

bandwidth). Treći način je slanje velikog broja TCP ili UDP fragmenata tako

Page 9: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

4

da se onesposobe tokovi. Četvrti način je usmjeriti napad na točno odreĎeni

dio aplikacije. Na ovaj način napad je teţe otkriti i moţe biti uspješan čak i

ako je u njega bilo uključeno malo zaraţenih računala.

Na internetskom crnom trţištu postoje specijalizirana prodajna mjesta

gdje se moţe kupiti raspodijeljeni napad uskraćivanjem usluge [4]. Ovo

koriste oni koji ţele "ušutkati" autore neke web stranice s čijim sadrţajem se

ne slaţu ili pokvariti nekome internetsko poslovanje. Shema mreţe zaraţenih

računala dana je na slici 2.1:

Slika 2.1. - Mreţa zaraţenih računala

2.4. Računalni crvi

Crvi (engl. worms) su zlonamjerni programi koji posjeduju sposobnost

samoumnoţavanja. Crv šalje kopije samog sebe kroz mreţu i tako zagušuje

promet. Velik broj crva se širi elektroničkom poštom (koja najčešće sadrţi

zaraţenu poveznicu) i posjeduju funkcije koje im omogućuju da se prošire

elektroničkom poštom na svaku adresu u pretincu elektroničke pošte

zaraţenog korisnika. Osim njih, postoje i crvi koji se šire izravno putem

Page 10: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

5

Interneta. Ova vrsta crva traţi otvorena vrata (engl. port) u sustavu kako bi se

mogli širiti na druge sustave. Za širenje koriste sigurnosne propuste

zaraţenih sustava.

2.5. Špijunski programi

Često se povezuju s programima koji instaliraju reklame jer imaju neke

sličnosti u ponašanju kao što je promjena početne stranice korisnikovog web

preglednika i dodavanje nepotrebnih i neţeljenih dodataka pregledniku.

Prikupljaju korisnikove osobne podatke i šalju ih autoru zlonamjernog

programa. Ovi programi koriste računalne resurse i širinu pojasa jer šalju

korisnikove podatke autoru putem korisnikove internetske veze. Posljedica

ovakvog ponašanja je usporen rad sustava i nestabilnost koja moţe dovesti

do "rušenja" korisnikovog sustava. Ponekad dolaze uz licencu nekog drugog

programa i tada se korisnika upozorava da će špijunski program (engl.

spyware) takoĎer biti instaliran, meĎutim to je obično tekst pisan "sitnim

slovima" koji korisnici najčešće nikad ne pročitaju.

2.6. Računalni virusi

Često se koristi naziv "virus" za sve zlonamjerne programe, meĎutim to nije

ispravno [5]. Računalni virusi su jedna od kategorija zlonamjernih programa.

Imaju sposobnost samoumnoţavanja i "nakače" se na program ili sektor na

disku. Ne postoji platfroma za koju je nemoguće napisati virus. Virusi se

mogu podijeliti u nekoliko podkategorija:

Virusi inicijalizacijskog sektora - Ovi virusi su meĎu najstarijima jer su se

pojavili veoma rano, dok su se računala tek počela razvijati. Oni dodaju svoj

kod u inicijalizacijski sektor na disku (engl. boot sector) i učitavaju se u

memoriju svaki put kada se sustav inicijalizira (engl. boot).

Virusi datoteka - Ovo je najčešći tip virusa. Oni dodaju svoj kod u izvodivu

datoteku (engl. executable) koja potom moţe proširiti zarazu na druge

Page 11: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

6

izvodive datoteke. Neki virusi dodaju svoj kod na početak izvodive datoteke

(engl. prependers), neki dodaju svoj kod na kraj izvodive datoteke (engl.

appenders), a neki umetnu svoj kod u prazna mjesta u izvodivoj datoteci

(engl. space-fillers). Ovisno o tome nalazi li se virus u memoriji, zarazit će

datoteke odmah ili će pronaći pogodne datoteke koje će zatim proširiti

zarazu.

Virus-Multipartite - Mogu zaraziti i datoteke i inicijalizacijski sektor

2.7. Zlonamjerni program koji izbjegava njegovo otkrivanje

Sluţe za sakrivanje zlonamjernog programa kako bi ga se teţe otkrilo i

uklonilo. Modificiraju korisnikov operacijski sustav tako da zlonamjerni

program ostaje skriven od korisnika i antivirusne zaštite. Mogu učiniti proces

zlonamjernog programa nevidljivim na listi procesa ili učiniti njegove datoteke

nemogućima za čitanje. Neki sadrţe metode protiv uklanjanja. Primjerice,

proces zlonamjernog programa ima još nekoliko procesa koji ga "čuvaju" i

kada god korisnik "ubije" glavni proces, pomoćni procesi (engl. watchdogs)

ga uvijek iznova vrate.

2.8. Metoda koja zloupotrebljava ranjivosti sustava

Kako joj i samo ime kaţe, metoda koristi sigurnosne propuste u operacijskom

sustavu (engl. exploit). Zato se za sustave stalno izdaju nove sigurnosne

zakrpe (engl. security patch) koje nastoje popuniti rupe u obrani i zaštititi

sustav od nedozvoljenog pristupa.

2.9. Logička bomba

Ova kategorija zlonamjernih programa pokreće se kao reakcija na odreĎeni

dogaĎaj kao što je pokretanje aplikacije ili dosezanje odreĎenog datuma i

vremena. Koriste se u kombinaciji s drugim, već spomenutim kategorijama

zlonamjernih programa kao što su trojanski konji i špijunski programi.

Page 12: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

7

Primjerice, logičke bombe kombinirane sa špijunskim programima će

aktivirati špijunski program samo onda kada korisnik posjeti neku stranicu na

kojoj mora unijeti svoje osobne podatke i lozinku. Kada se logička bomba

pokreće pri dosezanju odreĎenog datuma i vremena naziva se još i

vremenska bomba (engl. time bomb).

2.10. Zastrašivanje

Svrha ove kategorije zlonamjernih programa je da preplaše korisnika kako bi

autoru zlonamjernog programa dao novce (engl scareware). Često ima

korisničko sučelje kojim oponaša izgled antivirusnog programa i šalje poruke

upozorenja da je korisnikov sustav zaraţen. Zlonamjerni program zakoči

korisnikovo računalo ili kriptira sve podatke na njemu tako da ono postaje

nesposobno za ikakav koristan rad. Korisnik moţe dobiti ponovni pristup

svojim podacima samo ako uplati odreĎeni iznos novca na za to predviĎen

račun.

2.11. Zlonamjerni programi koji šalju neželjenu elektroničku poštu

Kako im samo ime kaţe, ova kategorija zlonamjernih programa šalje mnogo

elektroničke pošte koja sadrţi druge zlonamjerne programe ili poveznice na

zaraţene stranice. Često koriste ranjive internetske resurse kao što su

otvoreni posluţitelji (engl. open proxy) ili otvoreni SMTP posluţitelji

elektroničke pošte (engl. open mail relay).

Page 13: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

8

3. Alati za statičku i dinamičku analizu

zlonamjernih programa

3.1. Alat za statičku analizu dinamičkih biblioteka

Sluţi za statičku analizu dinamičkih biblioteka (engl. Dynamic Link Lybrary) i

uvezenih (engl. imported) funkcija i naziva se Dependency Walker [3].

Analizira sve 32-bitne ili 64-bitne module i gradi prikaz u obliku hijerarhijskog

stabla dinamičkih biblioteka koje će biti učitane u memoriju nakon pokretanja

programa. Za svaki pronaĎeni modul ispisuje se lista funkcija koje je taj

modul koristio i koje od tih funkcija su pozivali i drugi moduli.

3.2. 32-bitni program za ispravljanje pogrešaka

32-bitni program za ispravljanje pogrešaka (engl. debugger) strojnog koda

koji se naziva Ollydbg. Omogućuje praćenje stanja registara, prepoznavanje

procedura, poziva aplikacijskog programskog sučelja, prekidača, tablica,

konstanti i znakovnih nizova. Poseban naglasak je na binarnoj analizi koda.

Moţe analizirati zloćudni program dok je pokrenut i učitavati izvodive

programe i dinamičke biblioteke izravno.

3.3. Program za otkrivanje pakiranja

Program za otkrivanje pakiranih datoteka i njihovo raspakiravanje kako bi se

one mogle dalje analizirati naziva PEiD [3] . Prepoznaje više od 600 digitalnih

potpisa (engl. signatures) u PE datotekama. Moţe otkriti tip programa za

pakiranje (engl. packer) ili kompilatora koji je izgradio aplikaciju što uvelike

olakšava analizu. Posjeduje dodatak Krypto ANALyzer (KANAL) koji moţe

prepoznati kriptografske funkcije.

Page 14: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

9

3.4. Programi za pregledavanje PE datoteka

Alati za pregledavanje PE datoteka naziva PEView i PE Explorer [1].

Omogućavaju pregled PE zaglavlja, individualnih odjeljaka datoteke te

tablica uvezenih i izvezenih funkcija.

3.5. Program za praćenje aktivnosti procesa

NadograĎena i naprednija verzija Windowsovog programa Task Manager

koja se naziva Process Explorer [3]. Koristi se kod dinamičke analize i pruţa

uvid u procese koji su aktivni u sustavu. Prikazuje hijerarhijski pregled svih

aktivnih procesa i njihovih svojstava. Omogućuje pokretanje, provjeravanje,

zaustavljanje i ubijanje procesa te putanju slike procesa (engl. image path)

na disku. TakoĎer, omogućava i praćenje iskoristivosti procesora (engl.

CPU).

3.6. Program za praćenje sustava u stvarnom vremenu

Alat za dinamičku analizu koristan za prikupljanje informacija o sustavu u

stvarnom vremenu naziva Process Monitor [3]. Prikazuje sve aktivnosti

datotečnog sustava, registara, svih aktivnih procesa i mreţnih akcija. Prati

svaki pokušaj dohvaćanja Windows registara pa čak i neuspjele pokušaje

čitanja i pisanja u njih. Ima mogućnost filtriranja sadrţaja po ključevima,

imenima, procesima i slično što olakšava analizu i čini je preglednijom.

3.7. Alat za praćenje stanja registara

Omogućava snimanje stanja registara u dva vremenski odvojena trenutka te

njihovo usporeĎivanje. Naziva se Regshot [3]. Pogodan za uočavanje

promjena na sustavu prije i nakon zaraze zlonamjernim programom.

Otvorenog je koda tako da ga se stalno razvija i dopunjuje.

Page 15: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

10

3.8. Alat za obradu PE datoteka

Alat za statičku analizu koji sluţi za rad s PE datotekama i naziva se

Resource Hacker [1]. Moguće je pregledavati, dodavati, brisati i izdvajati

dijelove PE datoteke koji su zanimljivi za analizu. Moguće je pregledavati

kritične dijelove zlonamjernog programa izdvojeno bez da ga se pokreće.

3.9. Alat za analizu znakovnih nizova

Alat za statičku analizu koji sluţi za brzi pregled svih znakovnih nizova

programa [1]. Prema ispisu koji će alat Strings generirati moţe se vidjeti je li

zlonamjerni program pakiran.

3.10. Alat za pakiranje

Najpopularniji alat za pakiranje (engl. Universal Packer for eXecutables).

Sluţi za raspakiravanje koda zlonamjernog programa u svrhu daljnje analize.

3.11. Internetska usluga za analizu zlonamjernih programa

Internetska usluga koja skenira zlonamjerne programe pomoću brojnih

antivirusnih programa VirusTotal. Moguće je poslati zlonamjerni program ili

MD5 ključ na analizu i generirat će se izvješće s podacima koje su prikupili

svi antivirusni programi tijekom skeniranja.

3.12. Alat za virtualizaciju

Alat za virtualizaciju i automatizaciju programske potpore naziva VMware

Player. Sluţi kao izolirana okolina za virtualni stroj na kojemu se provodi

analiza koja osigurava da ostatak sustava neće biti ugroţen kada zloćudni

program bude pokrenut u svrhu dinamičke analize. TakoĎer, sluţi za

Page 16: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

11

simulaciju virtualne mreţe tako da zlonamjerni program ima dojam da je

spojen na Internet.

Page 17: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

12

4. Postupci statičke analize

Statička analiza je jedan od dva osnovna pristupa analize zlonamjernih

programa. To je najčešće prvi korak kada se počinje analizirati zlonamjerni

program. Prilikom statičke analize zlonamjerni program se promatra bez

prethodnog pokretanja. Mogu se prikupiti podaci o tome je li program zaista

zlonamjeran i njegovoj funkcionalnosti. U kasnijim, naprednijim fazama

statičke analize, učitava se strojni kod programa i promatraju se njegove

naredbe kako bi se otkrilo što program zapravo radi.

4.1. Provjera antivirusnim programima

Na samom početku analize, dobro je program koji se analizira provjeriti

antivirusnim programima koji su ga moţda već uspjeli identificirati. To je

dobro samo za početak jer antivirusni programi se oslanjaju na provjeru

podataka o zlonamjernim programima iz svojih baza ili na temelju analize

ponašanja programa. TakoĎer, autori zlonamjernih programa mogu lako

promijeniti prepoznatljive dijelove koda (engl. signatures) kako bi ih

antivirusni programi teţe otkrili [1].

Nakon provjere sa nekoliko dostupnih antivirusnih programa, program koji

se analizira treba poslati na stranicu kao što je virustotal koja će ga provjeriti

sa nekoliko antivirusnih analizatora i ispisati izvješće u kojemu je vidljivo

koliko antivirusnih analizatora je prepoznalo zlonamjerni program, ime

zlonamjernog programa i dodatne informacije o zlonamjernom programu

ukoliko su one dostupne.

4.2. Pronalaženje jedinstvenog ključa

Još jedna metoda po kojoj se moţe identificirati zlonamjerni program jest

provjeravanje njegovog jedinstvenog ključa (engl. hash). Jedinstveni ključ je

vrijednost koja se generira pomoću za to predviĎenog programa i koja je

jedinstvena za svaki program jer formula pomoću koje se on dobiva

Page 18: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

13

osigurava da je jako mala vjerojatnost da će dva programa imati isti

jedinstveni ključ [1]. Najčešće korišteni algoritmi za dobivanje vrijednosti

jedinstvenog ključa su MD5 (engl. The Message-Digest Algorithm 5) i SHA-1

(engl. Secure Hash Algorithm 1). Program koji moţe izračunati vrijednost

jedinstvenog ključa je md5deep. Kad se dobije jedinstveni ključ zlonamjernog

programa, moţe se provjeriti na Internetu je li već negdje dokumentiran.

4.3. Provjera znakovnih nizova

Sljedeći korak statičke analize je provjera znakovnih nizova (engl. strings) u

zlonamjernom programu. Svaki program će sadrţavati znakovne nizove.

Primjerice, ako ispisuje neku poruku, kopira podatke na odreĎenu lokaciju ili

se spaja na odreĎenu adresu na Internetu. Pretraţujući znakovne nizove

moţe se dobiti uvid u neke funkcionalnosti zlonamjernog programa.

Znakovnim nizom se smatra bilo koji niz znakova u ASCII ili Unicode formatu

koji je dulji od tri znaka. Prilikom pretrage za znakovnim nizovima, programi

za pretragu ignoriraju format znakovnih nizova i kontekst pa se stoga u ispisu

znaju naći i znakovni nizovi koji to zapravo nisu. Umjesto toga, ti ispisani

nizovi mogu predstavljati memorijske adrese, naredbe procesora ili neke

druge podatke koje program koristi [1]. Osoba koja provodi analizu mora

sama razlučiti "prave" znakovne nizove od "laţnih". Na sreću, "laţni"

znakovni nizovi se vrlo lako prepoznaju tako da to ne predstavlja prevelik

problem.

Program kojim je moguće brzo i jednostavno pretraţiti znakovne nizove u

bilo kojoj izvršnoj datoteci je Strings. Za primjer je napravljen ispis svih

znakovnih nizova pomoću programa Strings za izvršnu datoteku GP5.exe.

Ispis je vidljiv na slici 4.1.

Vidljivo je da prvih nekoliko redova zauzimaju upravo "laţni" znakovni

nizovi koji na prvi pogled nemaju nikakvog smisla. MeĎutim, preostali

znakovni nizovi predstavljaju nazive pojedinih kontrola na grafičkom sučelju

analiziranog programa Guitar Pro 5.

Page 19: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

14

Slika 4.1. - Ispis znakovnih nizova za izvršnu datoteku GP5.exe

4.4. Pakiranje i raspakiravanje

Zlonamjerni programi često koriste metodu pakiranja (engl. packing) kako bi

prikrili svoju pravu namjenu i ponašanje [1]. Pakirani kod je teţe otkriti u

sustavu i analizirati jer se prikazuje manjim nego što zapravo jest. Zbog toga

se mogućnosti statičke analize ovakvog programa veoma smanjuju.

Zlonamjerni program podvrgava se procesu kompresije pomoću posebnih

programa za pakiranje (engl. packers). Prilikom pokretanja pokreće se i mali

"program omotač" (engl. wrapper program) koji vrši dekompresiju pakiranog

programa i pokreće ga nakon što se raspakira. Prilikom statičke analize

moţe se analizirati samo taj "program omotač". Shema programa prije i

nakon pakiranja dana je na slici 4.2.

Za prikupljanje više informacija o pakiranom programu, potrebno ga je

raspakirati. Neki programi za pakiranje kriptiraju izvorni izvodivi kod

programa ili koriste neke tehnike protiv reverznog inţenjeringa (engl. anti-

reverse-engineering techniques). Neke od tih tehnika su tehnike protiv

ispravljanja pogrešaka (engl. anti-debugging) i tehnike protiv virtualnih

strojeva (engl. anti-VM) [1].

Page 20: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

15

Slika 4.2. - Program prije i nakon pakiranja [1]

Kako bi se odrţala izvorna funkcionalnost programa, program za

pakiranje mora pohraniti informacije o uvozu programa koji se pakira (engl.

import information). Zato je kod rasprakiravanja programa vaţno

rekonstruirati dio vezan za uvoz. Shema raspakiravanja vidljiva je na slici 4.3:

Slika 4.3. - Raspakiravanje i premještanje polazišne točke koda [1]

Programe koji nisu pakirani u memoriju učitava operacijski sustav. Kod

pakiranih programa prvo se u memoriju učita spojni modul (engl. stub) za

raspakiravanje koji zatim raspakira dani program. Polazišna točka koda

izvodivog programa (engl. code entry point) pokazuje na spojni modul za

raspakiravanje, a ne na njezino mjesto u izvornom kodu [1]. Izvorni kod

Page 21: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

16

programa spremljen je u jednom od posebnih, dodatnih odjeljaka datoteke.

Spojni modul raspakiravanje izvodi tri koraka:

Raspakirava izvorni kod izvodivog programa u memoriju

UreĎuje sve uvoze izvornog izvodivog programa

Premješta polazišnu točku koda na njezino prvotno mjesto koje se

naziva OEP (engl. original entry point)

Naredba koja premješta polazišnu točku koda na njezino prvotno mjesto

naziva se tail jump. To je naredba skoka koja je najjednostavniji i

najpopularniji način da se izvede premještanje. S obzirom na njeno često

korištenje, autori zlonamjernih programa ponekad je pokušavaju prikriti

korištenjem naredbe ret ili call. Još jedan način prikrivanja jest korištenjem

funkcija operacijskog sustava kao što su NtContinue ili ZwContinue.

UreĎivanje uvoza izvornog izvodivog programa znači rekonstrukciju tablice

uvezenih funkcija [1]. Kao što je vidljivo na slici 4.3, raspakirani program još

uvijek ima spojni modul za raspakiravanje i još neke dijelove koda koje je

dodao program za pakiranje. Kao posljedica raspakiravanja, PE zaglavlje

raspakiranog programa takoĎer će biti rekonstruirano i razlikovat će se od

onoga u izvornom programu.

4.5. Kodne biblioteke i vrste povezivanja

MeĎu najvaţnijim informacijama koje se mogu prikupiti tijekom statičke

analize su uvezene (engl. import) funkcije. Te funkcije sadrţe kodne

biblioteke (engl. code libraries) koje sadrţe funkcionalnost koju koristi velik

broj programa. Kodne biblioteke uključuju se u program povezivanjem (engl.

linking) tako da se ista funkcionalnost ne mora uvijek iznova implementirati u

svakom programu. Povezivanje moţe biti statičko i dinamičko.

Page 22: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

17

4.5.1. Statičko povezivanje

Statičko povezivanje je vrsta povezivanja koje češće koriste zlonamjerni

programi, a kod korisnih programa je mnogo rjeĎe. Kod statičkog

povezivanja, kod kojeg sadrţi kodna biblioteka se kopira u kod izvodivog

programa. Rezultat ovog povezivanja jest da izvodivi program postaje veći.

Prilikom analize koda u kojemu je korišteno statičko povezivanje nemoguće

je razlikovati izvorni kod izvodivog programa od koda koji se u njega kopirao

iz kodne biblioteke. Zbog ovih svojstava, statičko povezivanje često koriste

zlonamjerni programi koji su pakirani. Njihovi izvodivi programi koriste

povezivanje s kodnim bibliotekama samo kada je odreĎena funkcija

potrebna. Neke funkcije nisu navedene u zaglavlju datoteke (engl. header).

MeĎu najviše korištenima su LoadLibrary, GetProcAddress,

LdrGetProcAddress i LdrLoadDll. [1] Ove funkcije omogućavaju programu

pristup bilo kojoj funkciji u bilo kojoj kodnoj biblioteci u operacijskom sustavu.

Stoga je prilikom statičke analize teţe prepoznati koje sve funkcije je

zlonamjerni program koristio.

4.5.2. Dinamičko povezivanje

Dinamičko povezivanje je najčešće korištena vrsta povezivanja. Kad su

kodne biblioteke povezane, operacijski sustav traţi kodne biblioteke koje mu

trebaju dok se program učitava. Kad se pozove funkcija iz odreĎene kodne

biblioteke, ta funkcija se izvodi unutar same biblioteke. Kodne biblioteke koje

su dinamičkim povezivanjem uključene u program nazivaju se dinamičke

biblioteke (engl. Dynamic Link Library). Funkcija se kod dinamičkog

povezivanja moţe pozvati prilikom učitavanja ili prilikom pokretanja

programa.

Informacije o tome koje kodne biblioteke će biti učitane i koje funkcije će

program koristiti naleze se u PE (engl. portable executable) zaglavlju

datoteke [1]. To je struktura podataka koja sadrţi informacije potrebne

Page 23: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

18

operacijskom sustavu da izvede kod odreĎenog programa kao što su veličina

stoga i količina raspoloţive memorije.

4.5.3. Često korištene dinamičke bibilioteke

Dinamičke biblioteke mogu dati puno informacija o funkcionalnosti programa.

Neke dinamičke biblioteke se koriste u jezgrenom načinu rada operacijskog

sustava i korisnik nema izravan pristup njima. Ukoliko se prilikom analize

uoče neke funkcije iz jezgrenog načina rada, moţe se posumnjati da je

program zlonamjeran. Često korištene dinamičke biblioteke i njihova

funkcionalnost prikazani su u tablici 4.1:

Advapi32.dll Sadrţi napredne elemente aplikacijskog programskog

sučelja

Authui.dll Korisničko sučelje za autentifikaciju

Comctl32.dll Poziva funkcije iz User32.dll i Gdi32.dll. Sluţi za

implementaciju standardnih elemenata Windows

korisničkog sučelja kao što su dijaloški prozori, statusne

trake itd.

Comdlg32.dll Sluţi za upravljanje dijaloškim prozorima

Crypt32.dll Sadrţi kriptografske funkcije

Kernel32.dll Vrlo često korištena dinamička biblioteka koji sadrţi

funkcije za manipulaciju memorijom, podacima i

računalnim resursima

Advapi32.dll Omogućava pristup jezgrenim komponentama kao što su

registry i Service Manager

User32.dll Sadrţi elemente korisničkog sučelja kao što su gumbi,

statusne trake i komponente za komunikaciju sa

korisnikom

Gdi32.dll Sadrţi elemente za prikazivanje grafike

Ntdll.dll Ova dinamička biblioteka je sučelje prema jezgri

Page 24: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

19

operacijskog sustava. Izvodivi programi je nikada ne

uključuju izravno, nego neizravno preko Kernel32.dll.

Često je koriste zlonamjerni programi jer moţe posluţiti za

skrivanje funkcionalnosti ili manipuliranje procesima

Ole32.dll Sadrţi funckcije za povezivanje objekata

Rprcrt4.dll Koristi se za povezivanje na Internet i mreţnu

komunikaciju

Shell32.dll Sadrţi funkcije koje se koriste prilikom otvaranja datoteka i

web stranica

Shlwapi.dll Sadrţi funkcije za internetske adrese, unos u registre i

postavke boja

Shscrap.dll Ne koristi se više u operacijskim sustavima od Windows

Vista nadalje jer su je često koristili zlonamjerni programi.

Implementirala je podršku za .shs datoteke koje su mogle

sadrţavati izvodivi kod zlonamjernog programa.

WSock32.dll Dinamička biblioteka odgovorna za spajanje na mreţu i

funkcionalnosti vezane uz mreţu

Ws2_32.dll Ima istu funkcionalnost kao i WSock32.dll

Wininet.dll Sadrţi napredne mreţne funkcije koje implementiraju

protokole kao što su HTTP, FTP i NTP

Tablica 4.1. - Često korištene dinamičke biblioteke

4.6. PE format datoteke

Kao što je već rečeno, Windows izvodive datoteke koriste PE format.

Informacije koje se mogu naći u PE zaglavlju su informacije o kodu, vrsta

aplikacije, potrebne funkcije biblioteka, prostor koji treba biti dostupan na

disku, informacije o svakoj biblioteci koja će biti učitana te informacije o

svakoj funkciji koju će program koristiti. Imena funkcija mogu pomoći prilikom

otkrivanja što program zapravo radi. Najčešći dijelovi PE datoteke dani su u

tablici 4.2:

Page 25: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

20

.text Sadrţi izvodivi kod programa

.rdata Sadrţi podatke samo za čitanje (engl. read only). Ovdje se nalaze

informacije o uvozu (engl. import) i izvozu (engl. export).

.data Sadrţi globalne podatke kojima se moţe pristupiti iz bilo kojeg

dijela programa

.idata Sadrţi informacije o uvezenim funkcijama

.edata Sadrţi informacije o izvezenim funkcijama

.pdata Postoji samo kod 64-bitnih datoteka i sadrţi informacije za

upravljanje iznimkama

.rsrc Pohranjuje resurse koji su potrebni izvodivom programu

.reloc Sadrţi informacije za premještanje datoteka iz knjiţnica

Tablica 4.2. - Dijelovi PE datoteke

Pregledavajući dijelove PE datoteke takoĎer je moguće uočiti ako je

program pakiran. U tom slučaju, za neke dijelove PE datoteke veličina sirovih

podataka bit će jednaka nuli što znači da oni (prividno) ne zauzimaju nikakav

prostor na disku. TakoĎer, prema podatku o virtualnoj veličini moguće je

vidjeti da će se alocirati memorijski prostor za .text segment i da će program

za pakiranje raspakirati zlonamjerni program na taj alocirani memorijski

prostor.

Daljnjim pregledavanjem moguće je prikupiti informacije o ikonama koje

program sadrţi, izbornicima koji se pojavljuju u različitim prozorima

programa, dijaloškim prozorima, znakovnim nizovima te informacije o inačici

programa i imenu tvrtke koja je izdala program. Zlonamjerni programi, a

ponekad i zdravi programi ponekad ovdje znaju spremati ugraĎene programe

ili pogonske programe (engl. driver) koji se raspakiravaju prije nego se

program pokrene. Korištenjem nekih alata kao što je Resource Hacker,

moţemo izdvojiti taj ugraĎeni program ili pogonski program za zasebnu

analizu.

Page 26: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

21

5. Postupci dinamičke analize

Dinamička analiza je sljedeći korak prilikom analize zlonamjernog programa

kada su već iscrpljene sve mogućnosti statičke analize i kad se saznalo sve

što se tom vrstom analize moţe saznati. Prilikom dinamičke analize promatra

se ponašanje zlonamjernog programa koji se izvodi na zaraţenom

operacijskom sustavu ili se promatra stanje operacijskog sustava nakon

zaraze zlonamjernim programom. Ova vrsta analize omogućuje uvid u pravu

funkcionalnost zlonamjernog programa s obzirom da se sve funkcije koje su

uočene statičkom analizom ne moraju nuţno izvesti. Preporuča se prvo

provesti statičku analizu jer izvoĎenje dinamičke analize moţe ugroziti mreţu

i operacijski sustav. Ograničenje dinamičke analize je u tome što se ne mora

nuţno izvesti sav kod zlonamjernog programa. Rješenje ovog problema je u

tome da se zlonamjerni program pokuša "natjerati" da izvede sve svoje

funkcije kako bi se njegova funkcionalnost mogla u potpunosti ispitati [1].

5.1. Pokretanje dinamičkih biblioteka

Glavni uvjet da bi se uspješno provela dinamičku analizu jest da se

pokrene zlonamjerni program ili dinamička biblioteka. Kod izvodivih datoteka

pokretanje se moţe jednostavno izvesti dvostrukim klikom ili iz komandne

linije dok je pokretanje dinamičkih biblioteka nešto sloţenije s obzirom da

operacijski sustav ne poznaje način kako ih automatski pokrenuti. Zbog toga

postoji program rundll32.exe koji sluţi za pokretanje funkcija smještenih u

dinamičkim bibliotekama. Sintaksa za pokretanje dinamičkih biblioteka je

sljedeća:

C:\> run32dll.exe imeDinamičkeBiblioteke.dll Export argumenti

Export argumenti predstavljaju argumente za izvoz. To mora biti ime

funkcije ili broj funkcije (engl. ordinal) iz tablice izvezenih funkcija (engl.

Page 27: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

22

export table). Tablica izvezenih funkcija moţe se pregledati nekima od alata

za statičku analizu kao što su PEView ili PE Explorer. Ako se pokreće

dinamička biblioteka pomoću broja funkcije, tada se ispred broja stavlja znak

#. Primjer takvog pokretanja bio bi:

C:\> run32dll.exe imeDinamičkeBiblioteke.dll #ordinal

Osim što se moţe pregledati PE datoteka da bi se vidjela imena izvezenih

funkcija i njihovi brojevi, moţe se modificirati zaglavlje PE datoteke i

"pretvoriti" dinamičku biblioteku u izvodivi program promjenom ekstenzije. U

ovom slučaju, zlonamjerni program bi se mogao srušiti ili neočekivano

ponašati tako da ova metoda nije uvijek djelotvorna.

Ponekad se zlonamjerne dinamičke biblioteke moraju instalirati kao usluge

[1]. U tom slučaju potrebno je navesti ime usluge u komandnoj liniji. U

sljedećem retku treba navesti naredbu net start kako bi se usluga pokrenula

na operacijskom sustavu Windows:

C:\> run32dll.exe imeDinamičkeBiblioteke.dll, InstallService ImeUsluge

C:\> net start ImeUsluge

Ako se analizirajući funkcije koje dinamička biblioteka sadrţi naiĎe na

funkciju ServiceMain, a pritom se ne pronaĎu funkcije Install ili InstallService,

to znači da će biti potrebno instalirati uslugu ručno.

5.2. Promjene uzrokovane zarazom zlonamjernim programom

Promatrajući ponašanje zlonamjernog programa i nastale promjene na

sustavu u stvarnom vremenu, moţe se uočiti koje sve promjene su nastupile

nakon zaraze. Ponekad je bolje koristiti opcije filtriranja koje mnogi od alata

za dinamičku analizu posjeduju jer s obzirom da se u operacijskom sustavu

Page 28: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

23

često odvija nekoliko desetaka tisuća dogaĎaja, u tome se ponekad teško

snaći. Promjene koje zlonamjerni program izvodi na sustavu mogu se

podijeliti u nekoliko osnovnih kategorija:

5.2.1. Promjene registara

Pregledavajući operacije nad registrima moguće je uočiti promjene poput

dodavanja ili brisanja odreĎenih registarskih ključeva ili podključeva. Jedan

od najčešćih registara koje zlonamjerni programi mijenjaju jest

HKLM\Software\Microsoft\Windows\CurrentVersion\Run zbog toga što se

tamo podešava da se program pokrene zajedno sa operacijskim sustavom.

Primjerice, ako se uoči da su registri napunjeni neţeljenim podacima koji

sluţe usporavanju cijelog sustava ili ako se prikazuju nasumične poruke o

pogreškama, moţe se posumnjati da je u pitanju zaraza špijunskim

programom. TakoĎer, registri mogu biti napunjeni zlonamjernim unosima koji

uzrokuju često "rušenje" sustava u obliku tako zvanog „plavog zaslona“ (engl.

blue screen error). Još jedan od registara koje zlonamjerni programi često

mijenjaju jest HKEY_CLASSES_ROOT jer se tamo odreĎuju ekstenzije

datoteka koje operacijski sustav pokreće.

5.2.2. Promjene datotečnog sustava

Pretraţivanjem datotečnog sustava moguće je uočiti datoteke koje je

zlonamjerni program stvorio, direktorije koje je dodao ili konfiguracijske

datoteke koje koristi. Neki zlonamjerni programi mijenjaju metapodatke poput

vremena stvaranja datoteke, vremena zadnjeg modificiranja datoteke ili ime

proizvoĎača programa. Ovo posljednje je česta metoda prikrivanja

zlonamjernih programa kojom se pokušavaju prikazati kao legalni, korisni

programi. Neki zlonamjerni programi mogu mijenjati podatke vezane uz

dopuštenja tko se smije sluţiti operacijskim sustavom i tko ima pristup

odreĎenim podacima operacijskog sustava.

Page 29: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

24

5.2.3. Promjene aktivnosti procesa

Analizom aktivnosti procesa moguće je uočiti koliko dodatnih procesa je

zlonamjerni program pokrenuo i koja je njihova svrha. Neki zlonamjerni

programi se znaju "maskirati" tako da imaju isti naziv kao neki korisni proces

koji je neophodan za ispravan rad operacijskog sustava. Imaju isto ime kao

korisni proces, samo su smješteni drugdje na disku. Ovaj postupak naziva se

metoda zamjene procesa (engl. process replacement) [1]. Zlonamjerni

program "prepiše" kod svoje izvodive datoteke preko koda izvornog, korisnog

procesa. To je moguće otkriti tako da se usporedi slika procesa iz memorije

sa slikom procesa na disku koje će se u slučaju metode zamjene procesa

razlikovati. Neki zlonamjerni programi imaju pomoćne procese koji ih "čuvaju"

svaki put kada ih se pokuša ubiti (engl. watchdogs). Tih pomoćnih procesa

obično ima nekoliko pa svaki put kad se ubije proces zlonamjernog

programa, oni će ga uvijek iznova vratiti.

5.2.4. Promjene mrežne aktivnosti

Analizom mreţne aktivnosti i mreţnog prometa moguće je uočiti vrata na

kojima sluša zlonamjerni program, na koje adrese se pokušavao spojiti,

podatke koje je pokušavao poslati i slično. Zlonamjerni program moţe slati

ukradene podatke autoru putem mreţe ili pakete sa mnoštvom nepotrebnih

podataka u svrhu raspodijeljenog napada uskraćivanjem usluge [4]. Moţe

preusmjeravati korisnikov preglednik na neţeljene stranice ili slati neţeljenu

elektroničku poštu bez njegovog znanja. U neţeljenoj elektroničkoj pošti

često su sadrţane poveznice na zlonamjerne stranice ili drugi tipovi

zlonamjernih programa.

Prilikom analize zlonamjernog programa unutar izolirane okoline virtualnog

stroja, potrebno je "laţirati" mreţu kako bi zlonamjerni program dobio dojam

da je spojen na Internet. Potrebno je imati alat koji će sluţiti kao posluţitelj i

Page 30: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

25

koji će zlonamjernom programu slati odgovore na njegove mreţne upite kako

je slučaj i kod spajanja na pravu mreţu.

5.3. Mamci

Za analizu zlonamjernog mreţnog prometa još se koriste sustavi poznati kao

mamci (engl. Honeypots). Ti sustavi sluţe kao "zamka" za zlonamjerne

programe. Ponekad ih se koristi da bi se "uhvatilo" najnovije inačice

zlonamjernih programa u svrhu njihove analize i dokumentiranja. Mamac se

sastoji od računala ili podataka koji izgledaju kao da su dio korisnikove

mreţe, ali su zapravo promatrani i izolirani. Oni stvaraju privid da sadrţavaju

informacije koje bi napadačima mogle biti zanimljive. Neki mamci se koriste

za otkrivanje programa koji šalju neţeljenu elektroničku poštu. Oni su

prerušeni kao primjerice otvoreni posluţitelji (engl. open proxy) ili otvoreni

SMTP posluţitelji elektroničke pošte (engl. open mail relay) kojima bilo tko

moţe pristupiti i mogu otkriti IP adresu napadača ili adrese elektroničke pošte

koje se koriste kao mete za testne poruke. Testnim porukama nastoji se

otkriti otvorene SMTP posluţitelje. Kako izgleda mamac vidljivo je na slici

5.1:

Slika 5.1. – Dijagram mamca

Page 31: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

26

Prema načinu korištenja, mamci se mogu podijeliti na dvije skupine:

Produkcijki (engl. Production honeypots) - Jednostavni su za korištenje,

"hvataju" samo ograničen promet i koriste ih velike tvrtke.

Istraživački (engl. Research honeypots) - Koriste se za prikupljanje

informacija o namjerama i taktikama zajednice autora zlonamjernih programa

(engl. blackhat community). Kompleksniji su i teţe ih je odrţavati pa ih stoga

koriste vojne i vladine organizacije.

Page 32: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

27

6. Virtualno okruženje za ispitivanje

Prilikom analize zlonamjernih programa postoji rizik da se računalo osobe

koja analizira zarazi zlonamjernim programom. TakoĎer, moguće je da se

zlonamjerni program putem mreţe proširi i na druga računala. Kako bi se to

izbjeglo, analiza se provodi unutar sigurnog i izoliranog okruţenja virtualnog

stroja. Ovaj rizik vrijedi posebice za dinamičku analizu kada se zlonamjerni

program pokrene i promatra se njegovo ponašanje na zaraţenom sustavu i

promjene koje nastaju pri tome.

Alternativno, moguće je provesti analizu na stvarnim računalima koja u tom

slučaju moraju biti odspojena s Interneta (engl. air-gapped networks) [1].

Dobra strana ovog pristupa jest što se zlonamjerni program moţe pokrenuti u

stvarnom okruţenju bez rizika za druga računala i ostatak mreţe. Nedostatak

je nepostojanje internetske veze s obzirom da zlonamjerni programi često

traţe spajanje na Internet kako bi skidali nove zlonamjerne programe,

komunicirali s autorom zlonamjernog programa, dohvaćali aţuriranja i slično.

6.1. Virtualni stroj

Shema virtualnog okruţenja za ispitivanje zlonamjernih programa dana je na

slici 6.1:

Slika 6.1. - Shema virtualnog okruţenja za ispitivanje zlonamjernih programa

Page 33: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

28

Virtualni stroj je računalo unutar računala. Jedan virtualni stroj sadrţi

operacijski sustav Windows 7 i on će sluţiti kao "nosioc" zlonamjernog

programa koji će na njemu biti promatran. Drugi virtualni stroj sadrţi Remnux

koji sluţi kao posluţitelj unutar virtualne mreţe. Zlonamjerni program mora

imati dojam da je zaista spojen na Internet pa Remnux pruţa odgovore na

upite zlonamjernog programa prilikom simuliranja standardnih internetskih

protokola. Primjerice, zlonamjerni program se često spaja na HTTP

posluţitelj kako bi skinuo nove zlonamjerne programe. Potrebno je

zlonamjernom programu omogućiti pristup sustavu domenskih imena (engl.

Domain Name System) kako bi se ova aktivnost mogla pratiti. Zlonamjerni

program mora moći pristupiti DNS posluţitelju zbog IP adrese. Od verzije 4

nadalje, Remnux je dostupan kao OVF format (engl. Open Virtualization

Format) koji je izraĎen upravo za pokretanje unutar virtualnog stroja.

6.2. Metode protiv virtualnih strojeva

Mogući problem kod analize u virtualnom stroju jest što ponekad zlonamjerni

programi detektiraju da ih se analizira unutar virtualnog stroja i zbog toga se

počnu drugačije ponašati ili se uopće ne ţele pokrenuti. Metode protiv

virtualnih strojeva koriste zlonamjerni programi koji su jako rašireni i koji

ciljaju na velik broj potencijalnih ţrtava. Kategorije zlonamjernih programa

koje koriste te metode su primjerice špijunski programi i programi koji koriste

zastrašivanje. Razlog tome je što mamci često koriste virtualne strojeve.

MeĎutim, s obzirom da sve veći broj korisnika koristi virtualne strojeve u

svrhu koja nije analiza zlonamjernih programa nego jednostavno testiranje

nekih promjena na operacijskom sustavu u sigurnom okruţenju ili testiranje

kako će operacijski sustav reagirati na odreĎene programe, metode protiv

virtualnih strojeva sve su rjeĎe korištene.

U izgradnji virtualnog okruţenja koristi se VMware player. S obzirom na

njegovu veliku popularnost meĎu korisnicima i analitičarima zlonamjernih

programa, postoji nekoliko tehnika koje koriste zlonamjerni programi kako bi

Page 34: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

29

otkrili sadrţi li zaraţeno računalo Vmware player i u skladu s time promijenili

svoje ponašanje.

Zlonamjerni program moţe pretraţiti zaraţeni operacijski sustav u potrazi

za datotekama, vrijednostima registara i procesima koji bi mogli upućivati na

prisutnost VMware playera na operacijskom sustavu.

Jedna metoda kojom se moţe "zavarati" zlonamjerni program jest da se

svim kritičnim podacima koji upućuju na prisutnost VMware playera

promijene imena tako da zlonamjerni program prilikom traţenja

odgovarajućeg naziva ne pronaĎe niti jedan znakovni niz koji sadrţi u sebi

naziv "VMware".

Druga metoda jest da se otvori kod zlonamjernog programa pomoću

nekog alata za analizu strojnog koda i promijeni se naredba koja provjerava

prisutnost VMware playera. Kad se pronaĎe naredba koja obavlja provjeru,

moţe se promijeniti u primjerice naredbu NOP te se ona tako nikada neće

izvršiti. Najčešće naredbe koje zlonamjerni programi koriste u ovu svrhu i

koje je potrebno mijenjati u programu za analizu strojnog koda su:

sidt

sgdt

sldt

smsw

str

cpuid

Treća metoda jest uklanjanje VMware Tools alata sa operacijskog sustava.

VMware Tools nisu nuţni za ispravno funkcioniranje virtualnog stroja nego

samo omogućavaju korisniku lakše korištenje vritualnog stroja i lakše

rukovanje njegovim sučeljem. VMware Tools ostavljaju trag u obliku aktivnog

procesa VMwareTray.exe kojega zlonamjerni program moţe otkriti

pretraţujući listu aktivnih procesa. Kada se VMware Tools ukloni sa

operacijskog sustava, proces VMwareTray.exe se više neće pokretati.

Page 35: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

30

7. Statička analiza proizvoljno odabranog

zlonamjernog programa

Zlonamjerni program koji je odabran za analizu jest trojanski konj ZeuS.

Najčešće se koristi za kraĎu povjerljivih podataka kao što su lozinke

bankovnih računa korisnika. Jedan od najčešćih načina njegovog širenja je

putem neţeljene elektroničke pošte. Korisnik moţe primiti elektroničku poštu

koja izgleda kao da je od nekih poznatih tvrtki kao što je Facebook,

MySpace, Microsoft ili IRS. Poruka elektroničke pošte upozorava korisnika

na probleme s njihovim financijskim informacijama, mreţnim računom ili

programom i upućuje ga se na poveznicu u poruci. Poveznica sadrţi

zlonamjernu internetsku adresu koja zarazi korisnika nakon što je posjeti.

7.1. Provjera antivirusnim programima

Za početak, zlonamjerni izvodivi program (exe datoteka) poslana je na

stranicu Virustotal na analizu. Odmah se pojavila informacija da je

zlonamjerni program već prije bio analiziran, datum zadnje analize i datum

prve analize. To je vidljivo na slici 7.1:

Slika 7.1 - podaci o prethodnim analizama zlonamjernog programa

Page 36: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

31

Vidljive su ponuĎene opcije da se pogleda zadnja analiza ili da se

zlonamjerni program podvrgne ponovnom analiziranju (engl reanalyse). S

obzirom da su trenutni podaci zastarjeli, odabrana je opcija ponovnog

analiziranja. Rezultat je vidljiv na slici 7.2:

Slika 7.2. - Rezultati ponovne analize promatranog zlonamjernog programa

Vidljivo je da zlonamjerni program ima jako velik omjer detekcije (engl.

Detection ratio). To znači da je dobro dokumentiran i da ga je 51 antivirusni

program od raspoloţivih 57 prepoznao. Ako se prijeĎe mišem preko ikone u

desnom kutu, moţe se pročitati da program ima reputaciju -100 na ljestvici

od -100 do 100. To potvrĎuje da je zlonamjeran. Vidljiv je početak popisa

antivirusnih programa koji su ga prepoznali. Nastavak tog popisa vidljiv je na

slici 7.3:

Page 37: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

32

Slika 7.3. - Ostatak popisa antivirusnih programa i rezultati njihove analize

Većina antivirusnih programa prepoznala je ovaj zlonamjerni program kao

trojanski konj ZeuS. Neke od veoma korisnih informacija koje je moguće

dobiti na stranici Virustotal su i sva dosad dokumentirana imena ovog

zlonamjernog programa te podaci o PE zaglavlju i dinamičkim bibliotekama

koje će biti potvrĎene daljnjom statičkom analizom pomoću drugih alata.

Virustotal je takoĎer ispisao i vrijednost jedinstvenog md5 ključa ovog

zlonamjernog programa. Za provjeru da to zaista jest taj ključ, zlonamjerni

program podvrgnut je analizi pomoću programa za izračun vrijednosti

jedinstvenog ključa md5deep. Očekivano, dobiven je isti rezultat kao i na

stranici Virustotal i to je vidljivo na slici 7.4:

Page 38: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

33

Slika 7.4. - Rezultat analize programom md5deep

7.2. Analiza zaglavlja PE datoteke

Sada kada je potvrĎeno da je ovaj zlonamjerni program uistinu ZeuS, moţe

se pregledati zaglavlje PE datoteke kako je prikazano na slici 7.5:

Slika 7.5. – Zaglavlje PE datoteke zlonamjernog programa

Na slici se moţe vidjeti datum kada je zlonamjerni program preveden.

Datum prevoĎenja je 24.03.2011. MeĎutim, analiza sa stranice Virustotal

pokazala je da je ovaj zlonamjerni program prvi put bio analiziran

26.05.2014. S obzirom da je vremenski razmak izmeĎu ova dva dogaĎaja

pune 3 godine, moţe se posumnjati da je ovaj datum prevoĎenja moţda

laţiran. Nadalje, moţe se pročitati da se radi o izvodivom programu koji je

moguće pokretati na računalima Intel 386 i kasnijima. To se moţe saznati iz

podatka IMAGE_FILE_MACHINE_I386.

Page 39: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

34

7.3. Provjera znakovnih nizova

Sljedeći korak je provjera znakovnih nizova pomoću programa Strings.

Nakon pokretanja programa i analize ispis je bio preusmjeren u datoteku

Stringovi.txt radi lakšeg snalaţenja. Već na prvi pogled vidljivo je dosta

znakovnih nizova u ispisu što daje naslutiti da program vjerojatno nije

pakiran. Analizom znakovnih nizova moţe se dobiti okvirna slika toga što bi

zlonamjerni program trebao raditi. Naravno, dobar dio ispisa čine "laţni"

znakovni nizovi koji to zapravo nisu nego su vjerojatno memorijske adrese,

instrukcije procesora ili neki drugi podaci. MeĎutim, detaljnijom analizom

dolazi se do znakovnih nizova koji su korisni za analizu kao što je vidljivo na

slici 7.6.

Vide se nazivi nekih dinamičkih biblioteka koje zlonamjerni program koristi

i nazivi nekih zanimljivih funkcija. Microsoft vodi dobru dokumentaciju za

svaku od njih pa je moguće potraţiti opis svake od njih. Primjerice, po

funkcijama PR_OpenTCPSocket, PR_Close, PR_Read i PR_Write vidi se

da ovaj zlonamjerni program otvara novu TCP priključnicu (engl. socket) i da

moţe vršiti akcije zatvaranja, čitanja i pisanja nad deskriptorom datoteke

(engl. file descriptor).

Slika 7.6 - Dio ispisa znakovnih nizova programom Strings

Page 40: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

35

Nadalje, vide se neke funkcije koje koriste Windows GDI+ API koji

omogućuje programima korištenje grafike i formatiranog teksta:

GdiplusStartup, GdiplusShutdown, GdiplusDisposeImage itd. Vidljive su

i neke funkcije koje sluţe za stvaranje konteksta i korištenje operacija za

crtanje: CreatecompatibleDC i CreateCompatibleBitmap. Ovo upućuje da

zlonamjerni program koristi neko grafičko sučelje. Daljnjim pregledavanjem

ispisa u datoteci Stringovi.txt nailazi se na blok "laţnih" znakovnih nizova, no

zatim opet dolazi blok zanimljivih funkcija koje upućuju da zlonamjerni

program koristi spajanje na Internet. To je vidljivo na slici 7.7. Vide se dijelovi

komunikacije sa posluţiteljem: HTTP/1.1, GET, HTTP/1. te još znakovnih

nizova koji upućuju na mreţnu aktivnost: Connection i Proxy-Connection.

Ovo upućuje da bi zlonamjerni program mogao komunicirati sa svojim

autorom kako bi mu slao podatke, dobivao naredbe ili dohvaćao aţuriranja.

Prisutne su i funkcije za manipulaciju procesima i funkcijama:

GetProcAddress, LoadLibraryA, NtCreateThread, NtCreateUserProcess,

RtlUserThreadStart.

Slika 7.7. - Nastavak ispisa znakovnih nizova programom Strings

Nakon toga ponovno u datoteci Stringovi.txt slijedi blok "laţnih"

znakovnih nizova i konačno na samom kraju datoteke ponovno se nailazi na

Page 41: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

36

blok zanimljivih funkcija. Prisutna je biblioteka CRYPT32.dll i funkcije

CryptUnprotectedData, CertCloseStore, CertOpenSystemStoreW što

upućuje da zlonamjerni program koristi neki oblik kriptiranja. Vidljive su i

funkcije koje prate korisnikove poruke: GetMessageW, GetUpdateRgn,

GetClipboardData, PeekMessagew, GetCursorPos, GetMessagePos.

Ovo upućuje da zlonamjerni program vjerojatno ima svrhu špijuniranja

korisnika u svrhu kraĎe njegovih povjerljivih informacija.

7.4. Provjera pakiranja

S obzirom da je uočeno mnogo znakovnih nizova, pretpostavljeno je da ovaj

zlonamjerni program nije pakiran. To je moguće provjeriti ako se otvori

zlonamjerni program alatima za statičku analizu PE zaglavlja. Alat PE

Explorer otkrio je da zlonamjerni program nije pakrian niti jednim od najčešće

korištenih programa za pakiranje kao što se moţe vidjeti na slici 7.8:

Slika 7.8. – Detekcija da zlonamjerni program nije pakiran

7.5. Analiza dinamičkih biblioteka

Sljedeći korak analize je pregled dinamičkih biblioteka i funkcija koje one

sadrţe. Neke od tih funkcija mogle su se vidjeti u ispisu znakovnih nizova

programa Strings pa ih se ovdje neće iznova navoditi. Analizom pomoću

alata Dependency Walker, vidljivo je da zlonamjerni program pomoću

Page 42: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

37

dinamičke biblioteke WS2_32.DLL moţe stvoriti novu mreţnu priključnicu i

da koristi funkcije za spajanje na mreţu. To je prikazano na slici 7.9:

Slika 7.9. – Funkcije dinamičke biblioteke WS2_32.DLL

Sljedeća dinamička biblioteka koja je posebno zanimljiva je

SECUR32.DLL. Njen prikaz pomoću alata Dependency Walker dan je na slici

7.10.

Slika 7.10. - Funkcije dinamičke biblioteke SECUR32.DLL

Page 43: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

38

Kako je vidljivo sa gornje slike, funkcije iz ove dinamičke biblioteke

vezane su uz korisnikove podatke, lozinke te općenito autentifikaciju i zaštitu

sustava. To upućuje da je ovo vrlo vjerojatno špijunski program koji se tim

funkcijama sluţi za kraĎu korisnikovih povjerljivih podataka.

Page 44: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

39

8. Dinamička analiza proizvoljno odabranog

zlonamjernog programa

Nakon što su sve mogućnosti statičke analize iscrpljene, kreće se s

provoĎenjem dinamičke analize zlonamjernog programa ZeuS. Bit će

pokrenut unutar virtualnog stroja koji je spojen u virtualnu mreţu sa drugim

virtualnim strojem na kojemu se nalazi Remnux koji sadrţi alate za laţiranje

mreţe te alate za analizu mreţnog prometa.

8.1. Pripremanje sustava za analizu

Prije pokretanja zlonamjernog programa podešena je simulacija internetskih

usluga primjenom alata fakedns i httpd start ugraĎenih u Remnux. Na

Remnuxu je takoĎer pokrenut alat Wireshark. Na virtualnom stroju koji će biti

zaraţen, pokrenuto je praćenje procesa alatima Process Monitor i Process

Explorer te je početno stanje sustava prije zaraze snimljeno alatom Regshot

kako je prikazano na slici 8.1:

Slika 8.1. – Prvi snimak sustava, prije zaraze

Pokrenut je Wireshark na sučelju eth0 i odmah je vidljiv ARP zahtjev

upućen na IP adresu virtualnog stroja na kojemu je Remnux i koji simulira

internetske usluge. To je vidljivo na slici 8.2.

Page 45: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

40

Slika 8.2. – ARP zahtjev za IP adresom virtualnog stroja sa Remnuxom

Prije pokretanja, postavljen je filter na proces zlonamjernog programa u

alatu Process Monitor i pokrenut je alat Process Explorer.

8.2. Pokretanje zlonamjernog programa

Odmah nakon pokretanja, moţe se vidjeti aktivnost procesa zlonamjernog

programa ZeuS u alatu Process Monitor. To je prikazano na slici 8.3. Zbog

postavljenog filtera vidljiva je samo aktivnost zlonamjernog programa koji se

analizira.

Slika 8.3. – Prikaz aktivnosti procesa zlonamjernog programa

Page 46: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

41

Nakon nekoliko sekundi, zlonamjerni program je izbrisao svoju izvodivu

datoteku iz direktorija na disku virtualnog stroja na kojemu je bio pokrenut.

Vidljive su aktivnosti poput stvaranja registarskih ključeva, stvaranje nove

dretve, učitavanja slike procesa u memoriju te otvaranja i zatvaranja

datoteka. U alatu Process Explorer vidljivo je da je stvoren novi proces

naziva epyc.exe. Ako se na njega klikne, odabere opcija Properties i potom

opcija Image, vidljivo je da je proces roditelj zlonamjerni program ZeuS. To

prikazuje slika 8.4.

Slika 8.4. – Proces epyc.exe kojeg je stvorio zlonamjerni program

Ako se klikne na gumb Verify pored imena procesa roditelja, vidljivo je da

proces nema potvrĎeni potpis što takoĎer upućuje na to da je zlonamjeran.

Ako se odabere kartica TCP/IP u izborniku Properties, mogu se vidjeti dvije

TCP veze kako prikazuje slika 8.5.

Page 47: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

42

Slika 8.5. – Dvije TCP veze koje je pokrenuo zlonamjerni program

Ako se izvodiva datoteka epyc.exe pošalje na analizu na stranicu

Virustotal, analiza očekivano potvrĎuje da je to takoĎer komponenta

zlonamjernog programa ZeuS. Rezultati analize vidljivi su na slici 8.6.

Ponovno je vidljiv velik omjer detekcije što znači da je ovaj zlonamjerni

program dobro dokumentiran.

Slika 8.6. – Analiza ZeuS komponente epyc.exe

Page 48: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

43

TCP veze su takoĎer vidljive i analizom mreţnog prometa u programu

Wireshark na slici 8.7. Vidljiv je i pokušaj spajanja na posluţitelja. Ako se

označi taj HTTP zahtjev, u donjem dijelu prozora alata Wireshark vidljive su

dodatne informacije o njemu.

Slika 8.7. – HTTP zahtjev za spajanjem na posluţitelja

Na slici je crveno označena adresa na koju se zlonamjerni program pokušao

spojiti. Ako se ova adresa pretraţi u internetskom pregledniku, vidljivo je da

ona pripada zlonamjernom programu ZeuS. Stranica koja sluţi za praćenje

posluţitelja ovog zlonamjernog programa naziva se ZeuS Tracker. Rezultati

o ovoj adresi koje je ispisala ta stranica vidljivi su na slici 8.8.

Slika 8.8. – Adresa za kojom je poslan HTTP zahtjev

Page 49: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

44

TakoĎer, vidljiv je i jedan rezlutat u kojemu se navodi isti MD5 ključ koji je

dobiven prilikom statičke analize programom md5deep. To prikazuje slika

8.9.

Slika 8.9. – MD5 ključ koji je isti kao onaj koji je dobiven statičkom analizom

8.3. Analiza sustava nakon zaraze

Sljedeći korak analize jest snimanje sustava nakon zaraze alatom Regshot

kako prikazuje slika 8.10.

Slika 8.10. – Drugi snimak sustava, nakon zaraze

Ako se usporedi broj ključeva i broj vrijednosti sa slike 8.10. sa brojem

ključeva i brojem vrijednosti sa slike 8.1. (kada sustav nije bio zaraţen),

vidljivo je da ih sada ima više. Detaljnije informacije o tome dobivaju se

klikom na gumb Compare kojim se vrši usporedba dva snimka sustava i

rezultat dobivene usporedbe ispisuje se u tekstualnoj datoteci. Rezultati

usporedbe pokazuju da je zlonamjerni program dodao 14 ključeva i 45

Page 50: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

45

vrijednosti te promijenio 28 vrijednosti. Dodani ključevi vidljivi su na slici

8.11.

Slika 8.11. – Ključevi koje je zlonamjerni program dodao

Sa slike je vidljivo da su ključevi vezani uz elektroničku poštu i preglednik

Internet Explorer. Dodane vrijednosti vidljive su na slici 8.12.

Slika 8.12. – Vrijednosti koje je zlonamjerni program dodao

Page 51: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

46

MeĎu dodanim vrijednostima vidljivo je da je zlonamjerni program mijenjao

posavke vatrozida vezane uz TCP i UDP veze. Vidljive su i vrijednosti

vezane uz izvodivu datoteke epyc.exe koju je zlonamjerni program stvorio

nakon pokretanja.

Page 52: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

47

9. Zaključak

Zlonamjerni programi najčešće imaju glavnu ulogu u izazivanju

sigurnosnih incidenata operacijskog sustava ili mreţe. Analiza zlonamjernih

programa proces je koji zahtijeva godine učenja i prakse. Svaki zlonamjerni

program je različit te se zbog toga prilikom analize nikako ne smije sluţiti

samo jednim pristupom. Ako se osoba koja analizira zlonamjerni program

naĎe u „slijepoj ulici“, potrebno je primijeniti neki drugi alat ili metodu analize.

Provodeći statičku, a potom i dinamičku analizu moţe se saznati mnoštvo

informacija o funkcijama i ponašanju zlonamjernog programa. Te informacije

mogu se iskoristiti za uklanjanje sigurnosne prijetnje iz sustava i

unaprjeĎenje mjera zaštite protiv sličnih sigurnosnih incidenata.

Page 53: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

48

LITERATURA

[1] M. Sikorski i A. Honig. Practical Malware Analysis: The Hands- On

Guide To Dissecting Malicious Software. San Francisco: no starch press,

2012

[2] Mamci. URL http://en.wikipedia.org/wiki/Honeypot_(computing)

[3] Fakultet elektrotehnike i računarstva. Projekt iz područja računalne

sigurnosti, 2014 URL

http://os2.zemris.fer.hr/ns/malware/2014_15_ProjectMalware/Home/MainPag

e.html

[4] Raspodijeljeni napad uskraćivanjem usluge. URL

http://www.digitalattackmap.com/understanding-ddos/

[5] T. Christiansen. What's The plural of Virus, 1999 URL

http://linuxmafia.com/~rick/faq/plural-of-virus.html

[6] Microsoft Security. Spyware and Adware – Unwanted Software.

Published: October 23, 2006. URL http://malware.wikia.com/wiki/Spyware

[7] M. H. Ligh, S. Adair, B. Hartstein i M. Richard. Malware Analyst's

Cookbook and DVD: Tools and Techniques for Fighting Malicious Code.

Indianapolis: Whiley Publishing, Inc, 2011

Page 54: ANALIZA ZLONAMJERNIH PROGRAMA - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/ns/malware/2015_Dabelic.pdf · proxy) korištenjem koje autor zlonamjernog programa moţe zadrţati

Analiza zlonamjernih programa

Sažetak

Analiza zlonamjernih programa vaţan je pojam u području računalne

sigurnosti. Opisane su sigurnosne prijetnje koje uzrokuju zlonamjerni

programi i postojeće kategorije zlonamjernih programa. Nabrojani su i

ukratko opisani dostupni alati za analizu zlonamjernih programa. Opisani su

postupci statičke i dinamičke analize zlonamjernog programa te izolirano

okruţenje virtualnog stroja u kojemu se analiza provodi. Provedena je

statička i dinamička analiza nad proizvoljno izabranim zlonamjernim

programom.

Ključne riječi: zlonamjerni program, statička analiza, dinamička analiza,

virtualni stroj

Malware analysis

Abstract

Malware analysis is an important term in computer security. Security threats

caused by malware are described along with existing categories of malware.

Available malware analysis tools are listed and briefly described. Methods of

static and dynamic analysis are described along with isolated environment of

the virtual machine in which analysis is carried out. Static and dynamic

analysis of arbitrarily chosen malware are carried out.

Keywords: malware, static analysis, dynamic analysis, virtual machine