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:seminari:analiza_pe_formata_izvrsne_datoteke [2023/01/13 10:55]
fk49810 COFF Header
racfor_wiki:seminari:analiza_pe_formata_izvrsne_datoteke [2024/12/05 12:24] (trenutno)
Redak 4: Redak 4:
 ===== Sažetak ===== ===== Sažetak =====
  
-Većina komunikacije preko Interneta odvija se preko SSL/TSL protokola. SSL (Secure Sockets Layersprječava pristup do web-a onima kojima to nije namijenjeno. Najviše se koristi u Internet trgovini gdje je potrebno na siguran način proslijediti podatke o kartici od klijenta do poslužiteljaSSL je originalna inačica protokolaa kasnije je preimenovan TLSGeneralno gledano protokol je vrlo siguran za enkripciju prometano ranjiv je napadima kao što su Man in the middle Heartbleed.+Portable Executable (PEizvršni je format datoteka u operacijskom sustavu Windows. Sastoji se od nekoliko sekcija koje mogu sadržavati uvoz i izvoz pojedinih funkcija iz biblioteka, kao i skrivene resurseZbog svoje sveprisutnosti i popularnosti operacijskog sustava Windowsvećina zloćudnih programa (malwarea) se radi ovom formatuPritom se nerijetko koriste tehnike pakiranja u kojima se kompresijom i kriptiranjem smanjuje vidljivost uzoraka u programuprikriva stvarna namjena programa i dodaje još jednu ili nekoliko izvršnih datoteka. To otežava statičku i dinamičku analizu programa, ali i čini PE format dobro istraženim poznatim.
  
-Ključne riječi: SSLTSLkomunikacija; sigurnost; napad+Ključne riječi: PEformat datotekepakiranje
  
  
Redak 46: Redak 46:
 Nakon toga slijedi MS-DOS stub, tj. kratki tekst koji se ispisuje na standardnom toku pri pokretanju programa na nepodržanim operacijskim sustavima, defaultno “This program cannot be run in DOS mode.”, ali moguće ju je promijeniti prilikom prevođenja.  Nakon toga slijedi MS-DOS stub, tj. kratki tekst koji se ispisuje na standardnom toku pri pokretanju programa na nepodržanim operacijskim sustavima, defaultno “This program cannot be run in DOS mode.”, ali moguće ju je promijeniti prilikom prevođenja. 
  
-Iako većina literature navodi da iza ovog slijedi PE zaglavlje, zapravo slijedi opcionalno, „Rich“ zaglavlje, koje se npr, dodaje pri prevođenju programa Visual Studiom. Ono se sastoji od teksta kodiranim XOR kodom, stringa „Rich“ i 32-bitnog stringa koji se koristio u XOR kodiranju. Taj dio datoteke može biti u potpunosti prazan bez da utječe na izvođenje programa, a zato što je i malo poznat, koristio se u Olympic Destroyer napadu u kojem je promijenjeno Rich zaglavlje tako da nalikuje na [[https://securelist.com/the-devils-in-the-rich-header/84348/|jedan drugi maliciozni program|]].+Iako većina literature navodi da iza ovog slijedi PE zaglavlje, zapravo slijedi opcionalno, „Rich“ zaglavlje, koje se npr, dodaje pri prevođenju programa Visual Studiom. Ono se sastoji od teksta kodiranim XOR kodom, stringa „Rich“ i 32-bitnog stringa koji se koristio u XOR kodiranju. Taj dio datoteke može biti u potpunosti prazan bez da utječe na izvođenje programa, a zato što je i malo poznat, koristio se u Olympic Destroyer napadu u kojem je promijenjeno Rich zaglavlje tako da nalikuje na [[https://securelist.com/the-devils-in-the-rich-header/84348/|jedan drugi maliciozni program]].
  
 Potom slijedi COFF/PE/NT zaglavlje, koje započinje potpisom „PE\0\0“ duljine 4 bajta za kojim slijedi zaglavlje image datoteke. Potom slijedi COFF/PE/NT zaglavlje, koje započinje potpisom „PE\0\0“ duljine 4 bajta za kojim slijedi zaglavlje image datoteke.
Redak 66: Redak 66:
 arhitekture skupa instrukcija (ISA). arhitekture skupa instrukcija (ISA).
  
-U ''TimeDateStampu'' nalazi se vrijeme nastanka datoteke u Unix formatu. Značajna su i polja ''NumberOfSections'' te ''SizeOfOptionalHeader''. +U ''TimeDateStampu'' nalazi se vrijeme nastanka datoteke u Unix formatu. Značajna su i polja ''NumberOfSections''''SizeOfOptionalHeader'' te ''Characteristics'' koji sadrži informacije o vrsti datoteke.
- +
- +
- +
  
 +Iza slijedi Optional Header s čarobnim brojevima ''0x010B''\''0x020B'' (32/64-bit). Unatoč imenu, on nipošto nije izboran, ako mislimo pokrenuti datoteku. U njemu se nalaze informacije loaderu kako pokrenuti datoteku – adresa početne točke te bazna memorijska adresa. Spominje se i verzija operacijskog sustava te broj podatkovnih direktorija. Pritom veličina nije fiksna, već je određena sa ''SizeOfOptionalHeader'' iz PE zaglavlja. Veličine nisu jednake za 32 i 64 bit, ali najčešće je veličina zaglavlja za 32-bitne sustave ''0xE0''
  
 +Slijedi ''NumberOfHeaders'' (iz PE zaglavlja) zaglavlja sekcija (Section Headers) od kojih se svaki sastoji od:
 +  * veličine zaglavlja = 0x28 bajtova
 +  * imena sekcije – može biti bilo što (8 bajtova), najčešće .text, .CODE, .data, .DATA, .rdata, ...
 +  * fizičkog offseta do podataka ( PointerToRawData )
 +  * veličine podataka na disku ( SizeOfRawData )
 +  * relativne virtualne adrese ( SectionRVA )
 +  * virtualne veličina ( VirtualSize ) – veličina u memoriji
 +  * karakteristika, npr. read, write, executable, ...
  
  
 ===== Relativna virtualna adresa i fizički offset ===== ===== Relativna virtualna adresa i fizički offset =====
 +U prethodnom poglavlju spominjale su se relativne adrese. Pri izvršenju programa upravitelj memorijom (barem na Windowsima) koristi virtualnu memoriju koja je sloj apstrakcije između programa i radne memorije, što se ostvaruje straničenjem. Virutalna memorija omogućava višestruke adresne prostore, kako bi svaki program mogao pristupiti „istoj“ adresi, iako se nalaze u različitim dijelovima memorije. 
 +Stranice omogućavaju dodjelu diskretne veličine memorije (najčešće 4 kB) procesu. Time se definiraju pojmovi:
 +  * **fizički offset** - adresa podatka u datoteci na disku
 +  * **virtualna adresa (VA)** - adresa u memoriji dodijeljenoj procesu, "stvarna" adresa koju proces vidi
 +  * **relativna virtualna adresa (RVA)** - relativna u odnosu na baznu adresu, većina vrijednosti u zaglavljima su u obliku RVA
  
 +Pretvorba adresa radi se na sljedeći način: VA = RVA + ''ImageBase'', RVA = VA – ''ImageBase''
  
 +RVA = ''FizičkiOffset'' – ''PtrToRawData'' + ''SectionRVA'', a ''FizičkiOffset'' = RVA – ''SectionRVA'' + ''PtrToRawData''
  
 +Pritom se u memoriju stranice i sekcije unose poravnate na ''FileAlignment'' i ''SectionAlignment''
  
  
 ===== Direktoriji ===== ===== Direktoriji =====
  
 +Podatkovni direktoriji parovi su (adresa, veličina) u obliku tablica koji se učitavaju u memoriju. Najčešći i najvažniji direktoriji su Export, Import, Resource, Relocation te TLS. 
 +Export 
  
 +Export direktorij najčešće je prisutan u DLL datotekama. U tom slučaju u njima se nalaze funkcije dostupne imenom i rednim brojem. Radi se o tri tablice: adresnoj tablici, tablici s pokazivačima na imena te tablici rednih brojeva. 
 +Import
 +Import direktorij sastoji se od tablica u kojima se opisuju dodatne ovisnosti koje trebaju programu za izvođenje, najčešće skupine biblioteka i njihovih programskih sučelja. Svaki zapis opisuje jednu biblioteku i pokazuje na listu funkcija koje se uključuju iz njega. 
  
-===== Resursi =====+===== Pakiranje =====
  
 +Pakiranje je postupak pri kojem se u izvršnu datoteku "ubacuje" još jedna izvršna datoteka. To je moguće napraviti između sekcija ili kao resurs. Uz to, naprednije i najčešće tehnike koriste metode kompresije i/ili kriptiranja. Oboje postiže da je sadržaj izvršne datoteke prikriven i teži za reverznu analizu, pogotovo statičku, budući da se uklanjaju uzorci u podacima. Uz to, prvo je potrebno otpakirati "payload", tj. prikriveni izvršni program. Naposlijetku, virtualizacija je također česta tehnika pakiranja. Pritom se stvara virtualni okoliš unutar kojeg se izvršna datoteka izvodi. Time se i olakšava izvođenje malwarea na različitim konfiguracijama računala.
  
-===== Overlay ===== 
  
  
-===== Mogućnost skrivanja informacija =====+===== Zaključak =====
  
 +Portable Executable (PE) format se često koristi u računalnoj forenzici za analizu izvršnih datoteka i DLL-ova koji su povezani sa sigurnosnim rizicima i incidentima. Forenzičari koriste različite alate i tehnike za analizu PE datoteka kako bi identificirali potencijalne tragove koji mogu pomoći u istraživanju incidenta.
  
-===== Zaključak ===== +Pritom se najčešće za PE format radi analiza malware-a, budući da su obično napisani u obliku izvršne datoteke. Za statičku analizu koriste se PE parseri, a u dinamičkoj analizi nadziru se ponašanja kao stvaranje novih procesa, mijenjanje registra ili povezivanje s vanjskim serverima. Osim kao izvršne datoteke, maliciozni programi se često kriju u DLL-ovima, budući da im operacijski sustav vjeruje i daje više privilegije pri izvođenju. 
  
 ===== Literatura ===== ===== Literatura =====
  
-[1] [[https://dl.acm.org/doi/pdf/10.1145/1161366.1161375| Wang W., Farid H.: Exposing Digital Forgeries in Video by Detecting Double MPEG Compression]] +[1] [[https://learn.microsoft.com/en-us/windows/win32/debug/pe-formatMicrosoftPE format]]
- +
-[2] [[http://clem.dii.unisi.it/~vipp/website_resources/publications/conferences/2014_ICASSP_GironiFBPB_A_Video_Forensic_Technique_For_Detecting_Frame_Deletion_And_Insertion.pdf A. Gironi, M. Fontani, T. Bianchi, A. Piva, M. BarniA VIDEO FORENSIC TECHNIQUE FOR DETECTING FRAME DELETION AND INSERTION ]] +
- +
-[3] [[https://www.forensicfocus.com/articles/forensics-bitcoin/]]+
  
 +[2] [[https://0xrick.github.io/win-internals/pe1/| 0xRick - A dive into the PE file format]]
  
 +[3] Sikorski, M., Honig, A.: Practical malware analysis
racfor_wiki/seminari/analiza_pe_formata_izvrsne_datoteke.1673607308.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (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