Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:static_analysis_of_malware [2021/01/17 16:13]
ilovrec [Sažetak]
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://comtact.co.uk/blog/what-are-the-different-types-of-malware/|[6]]]
  
  
 ==== 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. [[https://www.csoonline.com/article/2615925/security-your-quick-guide-to-malware-types.html|[5]]]
  
 ==== 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.  Takva vrsta malware služi napadačima kao ulaz na računalo, a nakon dobivanja pristupa mogu izmjenjivati podatke, koristiti računalo kao dio botneta ili špijunirati aktivnosti. +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.  Takva vrsta malware služi napadačima kao ulaz na računalo, a nakon dobivanja pristupa mogu izmjenjivati podatke, koristiti računalo kao dio botneta ili špijunirati aktivnosti. [[https://comtact.co.uk/blog/what-are-the-different-types-of-malware/|[6]]]
  
 ==== 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://www.csoonline.com/article/2615925/security-your-quick-guide-to-malware-types.html|[5]]]
  
 ==== Adware ==== ==== Adware ====
-Maliciozni programi koji kriptiraju podatke napadnutog računala i tako onemogućavaju pristup njima nazivaju se ransomwareKako 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.+Vrsta malicioznog programa koji uzrokuje pojavu reklama, najčće u obliku pop-up prozora nazivaju se adwareIako 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. [[https://comtact.co.uk/blog/what-are-the-different-types-of-malware/|[6]]]
  
 ==== 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, a zatim tokom korištenja skuplja podatke računala. Prikupljeni podaci se u većini slučajeva šalju napadačima ili oglašivačima. +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, a zatim tokom korištenja skuplja podatke računala. Prikupljeni podaci se u većini slučajeva šalju napadačima ili oglašivačima. [[https://comtact.co.uk/blog/what-are-the-different-types-of-malware/|[6]]]
  
  
  
 ===== Tehnike statičke analize malwarea ===== ===== Tehnike statičke analize malwarea =====
-Statička analiza je metoda provjere programa kod koje se kod pregledava bez izvršavanja programa. Takva analiza omogućuje bolje razumijevanje koda te programerima služi kako bi se uvjerili u kvalitetu napisanog koda. Ručna analiza troši puno vremena stoga se statička analiza uvijek provodi uz pomoć alata.Unutar alata je najčešće potrebno definirati pravila po kojima traže ranjivosti u programu te ukoliko su pravila zadovoljena označmjesto potencijalne ranjivosti. Ovaj pristup se može iskoristiti i nad programima o kojima se potrebno saznati više informacija. Uz drugačiji skup pravila, a koristeći iste alate moguće je detektirati maliciozne funkcije unutar programa i tako utvrditi da je analizirani program malware.+Statička analiza je metoda provjere programa pri kojoj se kod pregledava bez izvršavanja programa. Takva analiza omogućuje bolje razumijevanje koda te programerima služi kako bi se uvjerili u kvalitetu napisanog koda. Ručna analiza troši puno vremena stoga se statička analiza uvijek provodi uz pomoć alata.Unutar alata je najčešće potrebno definirati pravila po kojima se traže ranjivosti u programu te ukoliko su pravila zadovoljena označi se mjesto potencijalne ranjivosti. Ovaj pristup se može iskoristiti i nad programima o kojima se potrebno saznati više informacija. Uz drugačiji skup pravila, a koristeći iste alate moguće je detektirati maliciozne funkcije unutar programa i tako utvrditi da je analizirani program malware.
  
 ==== 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. [[https://shehackske.medium.com/static-analysis-of-malware-pt-1-720e03668e22|[3]]] 
  
 ==== Obfuskuacija koda ==== ==== Obfuskuacija koda ====
-Napadači mogu otežati prethodne tehnike analize uz obfuskuaciju koda. To je proces koji tekstualne i binarne podatke namjerno pretvara u podatke koji nisu čitljivi ljudima. Time traženje nizova znakova postaje beskorisno, a ova tehnika se također koristi i kako bi prevarila vatrozide koji rade na temelju potpisa. Primjer koda prije i nakon obfuskuacije prikazan je na slici 3.1. gdje je vidljivo kako je iz drugog oblika nemoguće zaključiti što kod radi. Obfuskuacija koda nije nužno znak da je program maliciozan, kod se obfuskuira i kada se želi zaštititi intelektualno vlasništvo ili onemogućiti da napadači provedu reverzno inženjerstvo. Ipak sa takvim programima je potrebno biti pažljiv jer se analizom ne može saznati što program radi. Izvođenjem naredbe strings lako se može saznati je li program obfuskuiran jer će takav program vratiti vrlo malo nizova znakova, dok uobičajeni program vraća mnoštvo. Mali broj importova u programu nam također može dati do znanja je li program pakiran. Da bi se nad takvim programom mogla provesti bilo kakva daljnja analiza potrebno je znati kojom je tehnikom pakiran te ga otpakirati uz pomoć alata. +Napadači mogu otežati statičku analizu koda uz obfuskuaciju. To je proces koji tekstualne i binarne podatke namjerno pretvara u podatke koji nisu čitljivi ljudima. Time traženje nizova znakova postaje beskorisno, a ova tehnika se također koristi i kako bi prevarila vatrozide koji rade na temelju potpisa. Primjer koda prije i nakon obfuskuacije prikazan je na slici 3.1. gdje je vidljivo kako je iz drugog oblika nemoguće zaključiti što kod radi. Obfuskuacija koda nije nužno znak da je program maliciozan. Kod se obfuskuira i kada se želi zaštititi intelektualno vlasništvo ili onemogućiti da napadači provedu reverzno inženjerstvo. Ipaksa takvim programima je potrebno biti pažljiv jer se analizom ne može saznati što program radi. Izvođenjem naredbe strings lako se može saznati je li program obfuskuiran jer će takav program vratiti vrlo malo nizova znakova, dok uobičajeni program vraća mnoštvo. Mali broj importova u programu nam također može dati do znanja je li program pakiran. Da bi se nad takvim programom mogla provesti bilo kakva daljnja analiza potrebno je znati kojom je tehnikom pakiran te ga otpakirati uz pomoć alata. [[https://nasbench.medium.com/malware-analysis-techniques-basic-static-analysis-335a7286a176|[2]]]
  
 {{  :racfor_wiki:malware:obfuscuation.jpg?500  }} {{  :racfor_wiki:malware:obfuscuation.jpg?500  }}
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. [[https://shehackske.medium.com/static-analysis-of-malware-pt-1-720e03668e22|[3]]]
  
  
 ==== 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://resources.infosecinstitute.com/topic/malware-analysis-basics-static-analysis/|[1]]]
  
  
  
 ==== 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. [[https://nasbench.medium.com/malware-analysis-techniques-basic-static-analysis-335a7286a176|[2]]]
  
  
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://medium.com/bugbountywriteup/intro-to-malware-detection-using-yara-eacab8373cf4|[10]]]
 +<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 = "UVODFRYSIHLNWPEJXQZAKCBGMT"
 +    condition:
 +        $a or $b or $c
 +}
 +</code>
 +Isječak 4.3. Primjer Yara pravila  [[https://medium.com/bugbountywriteup/intro-to-malware-detection-using-yara-eacab8373cf4|[10]]]
 +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://www.sciencedirect.com/topics/computer-science/obfuscation-code|ScienceDirect: Obfuscation Code]], pristupljeno 17.1.2021. [9] [[https://www.sciencedirect.com/topics/computer-science/obfuscation-code|ScienceDirect: Obfuscation Code]], pristupljeno 17.1.2021.
 +
 +[10] [[https://medium.com/bugbountywriteup/intro-to-malware-detection-using-yara-eacab8373cf4| Medium: Intro to Malware Detection using YARA]], 17.2.2020., pristupljeno 16.1.2021.
 +
 +[11] [[https://www.geeksforgeeks.org/working-with-magic-numbers-in-linux|GeeksforGeeks:Working with Magic numbers in Linux]], 5.6.2020., pristupljeno 17.1.2021.
 +
 +[12] [[https://tech-zealots.com/malware-analysis/pe-portable-executable-structure-malware-analysis-part-2/|Tech zealots: Understanding PE Structure, The Layman’s Way – Malware Analysis Part 2]], 10.5.2018., pristupljeno 17.1.2021.
  
  
racfor_wiki/static_analysis_of_malware.1610896409.txt.gz · Zadnja izmjena: 2023/06/19 18:14 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0