Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:static_analysis_of_malware [2021/01/17 16:14] ilovrec [Adware] |
racfor_wiki:static_analysis_of_malware [2023/06/19 18:17] (trenutno) |
||
---|---|---|---|
Redak 16: | Redak 16: | ||
==== Virus ==== | ==== Virus ==== | ||
- | Jedan od najčešćih oblika malwarea je virus koji svoj zlonamjerni kod dodaje legitimnoj aplikaciji i tako zavara korisnike. Opasnost ovog oblika jest to što korisnici najčešće niti se sumnjaju da se virus nalazi u datoteci jer program normalno obavlja svoju svrhu. Samo preuzimanje virusa ne uzrokuje štetu računalu, no kada se program pokrene virus se počinje replicirati i širi se kroz računalo ili čak mrežu računala s kojima je zaraženo računalo povezano. | + | Jedan od najčešćih oblika malwarea je virus koji svoj zlonamjerni kod dodaje legitimnoj aplikaciji i tako zavara korisnike. Opasnost ovog oblika jest to što korisnici najčešće niti se sumnjaju da se virus nalazi u datoteci jer program normalno obavlja svoju svrhu. Samo preuzimanje virusa ne uzrokuje štetu računalu, no kada se program pokrene virus se počinje replicirati i širi se kroz računalo ili čak mrežu računala s kojima je zaraženo računalo povezano.[[https:// |
==== Crv ==== | ==== Crv ==== | ||
- | Crv je oblik malicioznog programa kojeg karakterizira mogućnost samo-repliciranja. Za razliku od virusa, crv se može širiti i prije nego što je korisnik pokrenuo program. Zbog tog svojstva su vrlo opasni jer jedno zaraženo računalo unutar tvrtke može u vrlo kratkom vremenu zaraziti cijelu mrežu. | + | Crv je oblik malicioznog programa kojeg karakterizira mogućnost samo-repliciranja. Za razliku od virusa, crv se može širiti i prije nego što je korisnik pokrenuo program. Zbog tog svojstva su vrlo opasni jer jedno zaraženo računalo unutar tvrtke može u vrlo kratkom vremenu zaraziti cijelu mrežu. |
==== Trojanski konj ==== | ==== Trojanski konj ==== | ||
- | Trojanski konj se slično kao i virus skriva unutar datoteke koja se čini legitimnom, no razlika je u tome što trojanski konj nije vezan na drugi legitimni program. Kako bi se aktivirao, korisnik mora pokrenuti program zbog čega je nužno da on izgleda legitimno. | + | Trojanski konj se slično kao i virus skriva unutar datoteke koja se čini legitimnom, no razlika je u tome što trojanski konj nije vezan na drugi legitimni program. Kako bi se aktivirao, korisnik mora pokrenuti program zbog čega je nužno da on izgleda legitimno. |
==== Ransomware ==== | ==== Ransomware ==== | ||
- | Maliciozni programi koji kriptiraju podatke napadnutog računala i tako onemogućavaju pristup njima nazivaju se ransomware. Kako bi korisnik dobio ključ s kojim može dekriptirati podatke potrebno je uplatiti određenu svotu novaca to jest otkupninu od kud ovaj virus dobiva svoje ime. | + | Maliciozni programi koji kriptiraju podatke napadnutog računala i tako onemogućavaju pristup njima nazivaju se ransomware. Kako bi korisnik dobio ključ s kojim može dekriptirati podatke potrebno je uplatiti određenu svotu novaca to jest otkupninu od kud ovaj virus dobiva svoje ime. [[https:// |
==== Adware ==== | ==== Adware ==== | ||
- | Vrsta malicioznog programa koji uzrokuje pojavu reklama, najčešće u obliku pop-up prozora nazivaju se adware. Iako sam adware najčešće nije opasan već iritantan, on osim reklama može sadržavati i poveznice na stranice na kojima se nalaze drugi zloćudni programi. | + | Vrsta malicioznog programa koji uzrokuje pojavu reklama, najčešće u obliku pop-up prozora nazivaju se adware. Iako sam adware najčešće nije opasan već iritantan, on osim reklama može sadržavati i poveznice na stranice na kojima se nalaze drugi zloćudni programi. |
==== Spyware ==== | ==== Spyware ==== | ||
- | Program koji prati aktivnost računala i skuplja osobne informacije poput podataka za prijavu i povijest pretraživanja naziva se Spyware. Najčešće se predstavlja kao legitiman program kako bi naveo korisnika na preuzimanje, | + | Program koji prati aktivnost računala i skuplja osobne informacije poput podataka za prijavu i povijest pretraživanja naziva se Spyware. Najčešće se predstavlja kao legitiman program kako bi naveo korisnika na preuzimanje, |
===== Tehnike statičke analize malwarea ===== | ===== Tehnike statičke analize malwarea ===== | ||
- | Statička analiza je metoda provjere programa | + | Statička analiza je metoda provjere programa |
==== Pretraga po hashu ==== | ==== Pretraga po hashu ==== | ||
- | Jedan od najjednostavnijih načina provjere malicioznog programa jest potražiti je li on već bio analiziran i koji su bili rezultati te analize. S obzirom da se ime programa lako mijenja traženje po njemu ne daje dobre rezultate te se umjesto imena koristi hash funkcija. Prednosti hash funckije su da će uvijek dati rezultat iste veličine bez obzira na veličinu programa te ukoliko su programi isti i njihove hash funkcije će biti iste. Zato uz korištenje hash-a možemo biti sigurni da se analiza koju smo pronašli odnosi na identičan program. Nakon generiranja hasha potencijalni malware se može identificirati na stranicama specijaliziranim za to, poput Virus Total. | + | Jedan od najjednostavnijih načina provjere malicioznog programa jest potražiti je li on već bio analiziran i koji su bili rezultati te analize. S obzirom da se ime programa lako mijenja traženje po njemu ne daje dobre rezultate te se umjesto imena koristi hash funkcija. Prednosti hash funckije su da će uvijek dati rezultat iste veličine bez obzira na veličinu programa te ukoliko su programi isti i njihove hash funkcije će biti iste. Zato uz korištenje hash-a možemo biti sigurni da se analiza koju smo pronašli odnosi na identičan program. Nakon generiranja hasha potencijalni malware se može identificirati na stranicama specijaliziranim za to, poput Virus Total. |
==== Obfuskuacija koda ==== | ==== Obfuskuacija koda ==== | ||
- | Napadači mogu otežati | + | Napadači mogu otežati |
{{ : | {{ : | ||
Redak 49: | Redak 50: | ||
==== Prepoznavanje ekstenzije ==== | ==== Prepoznavanje ekstenzije ==== | ||
- | Pri instalaciji legitimnih programa potrebno je paziti da se preuzme verzija koja je kompatibilna s operacijskim sustavom računala na kojem se program pokreće. Isto pravilo vrijedi i za maliciozne programe te oni neće moći napraviti nikakvu štetu računalu ako nisu kompatibilni s njim. Ekstenzije datoteka se razlikuju ovisno o namijenjenom operacijskom sustavu pa je čitanjem ekstenzije moguće odrediti kojem operacijskom sustavu program može naštetiti. Preimenovanjem datoteke se lako promjeni i ekstenzija stoga nije dovoljno samo pogledati kako se datoteka zove.Provjera prave ekstenzije datoteke može se napraviti uz korištenje naredbe file na Linuxu koja ispisuje ekstenziju programa. Na svim sustavima je ekstenziju datoteke moguće saznati uz hex čitače jer sve datoteke na predodređenom mjestu imaju zapisan jedinstveni identifikator ekstenzije. | + | Pri instalaciji legitimnih programa potrebno je paziti da se preuzme verzija koja je kompatibilna s operacijskim sustavom računala na kojem se program pokreće. Isto pravilo vrijedi i za maliciozne programe te oni neće moći napraviti nikakvu štetu računalu ako nisu kompatibilni s njim. Ekstenzije datoteka se razlikuju ovisno o namijenjenom operacijskom sustavu pa je čitanjem ekstenzije moguće odrediti kojem operacijskom sustavu program može naštetiti. Preimenovanjem datoteke se lako promjeni i ekstenzija stoga nije dovoljno samo pogledati kako se datoteka zove.Provjera prave ekstenzije datoteke može se napraviti uz korištenje naredbe file na Linuxu koja ispisuje ekstenziju programa. Na svim sustavima je ekstenziju datoteke moguće saznati uz hex čitače jer sve datoteke na predodređenom mjestu imaju zapisan jedinstveni identifikator ekstenzije. |
==== Analiza nizova znakova ==== | ==== Analiza nizova znakova ==== | ||
- | Analiza ekstenzije programa daje nam informaciju samo o operacijskom sustavu koji može pokrenuti program. Kako bi se procjenilo je li program opasan osim namijenjenog sustava potrebno je saznati i njegove funkcionalnosti. Pretragom nizova znakova to jest Stringova moguće je saznati dodatne informacije o programu i utvrditi neke funkcionalnosti. Pretraga može pronaći IP adrese, URL-ove, adrese bitcoin novčanika, poruke o pogreškama i ostale dijelove koda pisane u prirodnom jeziku. Tako se na temelju pojave IP adrese ili URL-a može zaključiti da će se program spojiti na mrežu i nešto slati ili primati s nje. Za ispis nizova znakova koristi se naredba strings koja je dostupna na svim najraširenijim operacijskim sustavima. Uz naredbu se najčešće koristi regularni izraz koji filtrira rezultate jer ih u suprotnom ima previše za uspješnu analizu. | + | Analiza ekstenzije programa daje nam informaciju samo o operacijskom sustavu koji može pokrenuti program. Kako bi se procjenilo je li program opasan osim namijenjenog sustava potrebno je saznati i njegove funkcionalnosti. Pretragom nizova znakova to jest Stringova moguće je saznati dodatne informacije o programu i utvrditi neke funkcionalnosti. Pretraga može pronaći IP adrese, URL-ove, adrese bitcoin novčanika, poruke o pogreškama i ostale dijelove koda pisane u prirodnom jeziku. Tako se na temelju pojave IP adrese ili URL-a može zaključiti da će se program spojiti na mrežu i nešto slati ili primati s nje. Za ispis nizova znakova koristi se naredba strings koja je dostupna na svim najraširenijim operacijskim sustavima. Uz naredbu se najčešće koristi regularni izraz koji filtrira rezultate jer ih u suprotnom ima previše za uspješnu analizu.[[https:// |
==== Analiza PE sekcija ==== | ==== Analiza PE sekcija ==== | ||
- | Na Windows operacijskom sustavu većina malicioznih programa dolazi u obliku exe datoteka koje unutar PE (Portable Executable) sekcija datoteke osim koda sadrže i neke dodatne informacije. Kod koji se izvodi je pohranjen u sekciji .text, a osim nje postoje i sekcije .rdata, .data i .rsrc. Sekcija .rsrc koja služi za resurse poput slika i ikona može sadržavati i maliciozne programe koji se pozivaju iz glavnog programa. Time glavni program može izgledati legitimno, a kod koji šteti računalu ili krade podatke se sakrije u izvedbenu datoteku unutar .rsrc sekcije. PE format također sadrži import i export tablice iz kojih se saznaje koje su funkcije i knjižnice uvezene i izvezene iz programa. Ta informacija može biti jako korisna jer knjižnice otkrivaju koje bi mogle biti mogućnosti programa. | + | Na Windows operacijskom sustavu većina malicioznih programa dolazi u obliku exe datoteka koje unutar PE (Portable Executable) sekcija datoteke osim koda sadrže i neke dodatne informacije. Kod koji se izvodi je pohranjen u sekciji .text, a osim nje postoje i sekcije .rdata, .data i .rsrc. Sekcija .rsrc koja služi za resurse poput slika i ikona može sadržavati i maliciozne programe koji se pozivaju iz glavnog programa. Time glavni program može izgledati legitimno, a kod koji šteti računalu ili krade podatke se sakrije u izvedbenu datoteku unutar .rsrc sekcije. PE format također sadrži import i export tablice iz kojih se saznaje koje su funkcije i knjižnice uvezene i izvezene iz programa. Ta informacija može biti jako korisna jer knjižnice otkrivaju koje bi mogle biti mogućnosti programa. |
Redak 126: | Redak 127: | ||
==== Yara ==== | ==== Yara ==== | ||
+ | Maliciozne programe moguće je otkriti i uz korištenje alata Yara. Taj je alat napravljen upravo za identificiranje i klasificiranje malwarea te na temelju tekstualnih i binarnih uzoraka prepoznaje grupe malwarea. Yara analizira program na temelju korisnički definiranih pravila stoga je ova tehnika najbolja za već iskusne korisnike koji znaju definirati korisna pravila. Pravila se mogu definirati tako da u programu traže uzorke funkcija koji se javljaju u drugim programima za koje je već ustanovljeno da su malware. Primjer pravila koje traži uzorak iz već poznatog Silent Banker Trojan prikazan je na isječku 4.3. Pravilo sadrži dvije ključne riječi: strings i condition, strings definira koji se niz znakova ili byetova traži u programu, a condition definira kriterij detekcije. Ovisno o potrebi moguće je definirati detekciju kada su pronađeni svi navedeni nizovi ili samo određeni broj. [[https:// | ||
+ | <code bash> | ||
+ | rule silent_banker : banker | ||
+ | { | ||
+ | meta: | ||
+ | description = "This is just an example" | ||
+ | threat_level = 3 | ||
+ | in_the_wild = true | ||
+ | strings: | ||
+ | $a = {6A 40 68 00 30 00 00 6A 14 8D 91} | ||
+ | $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9} | ||
+ | $c = " | ||
+ | condition: | ||
+ | $a or $b or $c | ||
+ | } | ||
+ | </ | ||
+ | Isječak 4.3. Primjer Yara pravila | ||
+ | Yara pravila pojavljuju se i u ostalim alatima za detekciju malicioznih programa. Već navedena stranica VirusTotal omogućuje korisicima dodavanje vlasitith pravila kako bi se lakše pratili uzorci programa. Prilikom analiziranja nove datoteke koriste se upravo ta korisnički definirana pravila. | ||
===== Zaključak ===== | ===== Zaključak ===== | ||
Redak 152: | Redak 171: | ||
[9] [[https:// | [9] [[https:// | ||
+ | |||
+ | [10] [[https:// | ||
+ | |||
+ | [11] [[https:// | ||
+ | |||
+ | [12] [[https:// | ||