Exe-packeri i desavanja vezana za njih

Exe-packeri i desavanja vezana za njih

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24130
  • Gde živiš: Wien

Vise puta smo pricali na ovom forumu o exe-packerima (ili run-time packeri, kako ih neki nazivaju).
Ponovicu ukratko sta su, i cemu sluze.
Exe-packer je program kojim mozete drugi program spakovati (kompresovati, a u slucaju exe-cryptera i kriptovati). Exe-packer ce na spakovan program dodati jos jedan deo koji se naziva "stub", a koji je zaduzen za ucitavanje i pokretanje spakovanog programa.
Krajnji rezultat je EXE fajl (stub+spakovan program) koji se pri pokretanju ponasa na sledeci nacin:
- stub se ucitava u memoriju
- stub u memoriji raspakuje originalan program
- stub pokrece originalan program
Ovako spakovani programi na disku zauzimaju manje mesta, ali ce zato pri izvrsavanju u memoriji zauzeti vise mesta jer ce i stub biti ucitan + originalni program ce u memoriji biti raspakovan na originalnu velicinu fajla.

Kako AV programi rukuju spakovanim fajlovima:
- staticko raspakovanje
- heuristicko (dinamicko) raspakovanje
- "solomonska resenja"

Staticko raspakovanje znaci da AV program poseduje po unpacker za svaki exe-packer posebno. Time taj AV program ume da izadje na kraj samo sa onim vrstama exe-packera za koje poseduje unpacker modul.
U momentu kada se pojavi novi exe-packer, program nece umeti da ga raspakuje dok u updateu ne dobije odgovarajuci modul za raspakovanje.
Kod ovakvog nacina raspakovanja, AV program prvo raspakuje program (vrati ga na originalnu velicinu), pa ga onda skenira raspakovanog.

Heuristicko (dinamicko) raspakovanje - ovde AV program poseduje samo jedan modul za raspakovanje. Taj modul ce pokrenuti stub packera u emulatoru, dozvolice stubu da raspakuje program, ali ce na samom kraju prekinuti stub u momentu kada pokusa da startuje raspakovan program.
Nakon ovoga sledi skeniranje raspakovanog programa.
Elegantno resenje - koristiti stub samog packera da bi se docepali raspakovanog programa.
Ovo bi bilo jako lepo da ne postoje takve tehnike u konstrukcijama stubova koje ce prevariti heuristiku, tj. prepoznati da je stub pokrenut u emulatoru, i prekinuti izvrsavanje stuba pre raspakovanja programa.

"Solomonska resenja" - ponekad se desavaju takve epidemije da se mora hitno reagovati, pa se nema vremena za konstrukciju unpacker modula, ili za prepravku emulatora za heuristiku, i tada na scenu stupaju "privremena resenja".
Privremeno resenje se uglavnom sastoji od toga da se napravi signatura za virus na exe-packovanom fajlu, a ne na raspakovanom.
Time se dobilo na brzini reagovanja, ali...
Klinac iz komsiluka ima raspakovanu verziju koju ce da spakuje drugim packerom, i poceti distribuciju.
Gornja signatura virusa pada u vodu...
Kompanija napravi novu "solomonsku" signaturu, sve dok se neki drugi klinac ne docepa novog packera...

Zakljucak je da je jedino kvalitetno resenje da se exe-packovani fajl raspakuje, i da se na tom raspakovanom fajlu napravi signatura, i da naravno kasnije skener ima odgovarajuce module za raspakovanje, da bi mogao da odradi posao.

Ima par jako poznatih firmi koje imaju gomilu "solomonskih" signatura u bazama. Skeniranje kompa kod ovakvih programa je fantasticno brzo jer ne gube vreme na raspakovanje fajla.
Primera radi, raspakovati Morphine-packovan fajl oduzima 5-20 sekundi na 2GHz racunaru. Skener sa "solomonskim" signaturama ce skeniranje obaviti u milisekundi, ali zato nece prepoznati verziju istog virusa koja bude zapakovana drugim exe-packerom.

Najgori produkti "solomonskih" resenja nastaju kada neko sledi sledecu logiku:
Aha, Morphine packer koriste samo losi momci za pakovanje virusa - ajde da napravimo signaturu za Morphineov stub, pa ce svaki program packovan Morphineom biti detektovan kao maliciozan, i tako cemo detektovati 1000 razlicitih virusa jednom signaturom...

Zapitali bi ste se da li bi neko stvarno sledio takvu logiku - reci cu vam da jeste.
Svojevremeno je jedna od epidemija crva zaustavljena bas na ovakav nacin. Naime, ClamAV, koji se nalazi na vecini Linux servera je u definicijama imao jednu "solomonsku" definiciju koja je sve fajlove packovane PeX packerom proglasavala za varijantu Bagle crva, a nestretnik koji je pokusavao da osvoji svet novim crvom je crv spakovao upravo PeX packerom...

Ovakav vid "solomonskih" resenja je koliko dobar toliko i los. Nije svaki program pakovan PeX-om maliciozan, neko ce mozda zapakovati i neki totalno cist program ovim packerom.
U zadnje vreme se za pakovanje botova najvise koriste Armadillo i Obsidium, oba komercijalna. Ukoliko neko napravi "solomonsku" signaturu i za njih, onda ce i goooomila cistih programa biti detektovani kao maliciozni.

Da sumiram ovaj clanak:
- kvalitet detekcije je zagarantovan jedino ako AV program moze da raspakuje program pakovan exe-packerom, i da signatura bude od raspakovanog programa

- "solomonska" resenja prve klase (signatura packovanog programa) su losa jer takav AV program nece detektovati isti virus ukoliko je packovan drugim packerom. Rado bih vam naveo koje kompanije ovo redovno rade, ali sam vezan dogovorom... Sto je jos gore, ovo im ide na ruku kada se reklamiraju, posto njihov skener zbog ovoga skenira puno brze od onog koji ce da raspakuje svaki packovan fajl.

- "solomonska" resenja druge klase (stub packera kao signatura) je ocajno resenje. Em ce 1000 razlicitih napasti biti prijavljeno pod istim imenom, pa nemate predstavu sa cime stvarno imate posla, em ste pod rizikom da vam i totalno cist program bude prijavljen kao maliciozan, samo zato sto je packovan "sumnjivim" packerom.
ClamAV ima jako cestu praksu da pravi ovakve signature, i o tome sam vec par puta diskutovao sa njihovim timom na njihovom IRC kanalu.
Evo ukratko sta kazu:
- pravljenje jednog unpackera traje duze nego nalazenje signatura za 1000 virusa (sto je tacno)
- pravljenje jednog unpackera je djavolski tezak posao, i zahteva jako puno znanja i rada, a ClamAV prave dobrovoljci, i njih je jako tesko naterati da se prihvate takvog posla (sto je opet tacno)
- ClamAV tim zvanicno ne podrzava Win32 verziju. Kada je ClamAV instaliran na Linuxu, on uglavnom sluzi za skeniranje mailova, a mailom retko ko salje ciste programe a da su pakovani recimo PeX packerom (sa cime se ja isto slazem)
Da sumiram, momci misle da su "solomonske" signature OK za uslove rada u kojima su oni predvideli da njihov ClamAV radi, recimo na nekom Linux serveru.


Malo nevezano za ovu pricu, ali treba spomenuti:

ClamWin nije "dobar momak"...
Naime, oni kazu da je njihov program zasnovan na ClamAV-u, koriste ClamAV baze (cak-sta updatuje se sa ClamAV servera), ali nemaju blagoslov ClamAV tima. Jos gore, momci iz ClamAV tima su par puta pokusali da ih kontaktiraju da bi dogovorili neke stvari, ali ClamWin momci nisu hteli da ih udostoje odgovora.
Problem je sto ClamWin svojim (ne)kvalitetom implementiranja ClamAV enginea samo blati ime ClamAV-a, a rekosmo vec da im trosi i bandwidth.


Prica broj 2, koja isto nije vezana za glavnu temu:

Vecina fakulteta u svetu podrzavaju opensource programe, sto zbog interesa, sto zbog akademskog duha.
Isto tako, jako puno fakulteta u svetu (mislim na one informaticke/tehnicke) ima institute na kojima se izucava sigurnost, i u sklopu tih instituta imaju/razvijaju i sisteme za hvatanje malwarea sa neta.
Osrednji evropski fakultet ima preko 5000 kompjutera, i velika je verovatnoca da ce neki od njih biti zrtva napada, time fakulteti postaju idealna mesta za hvatanje malicioznih programa.
Na tim kompjuterima se instaliraju posebni programi (honeypots). Kompjuter na kome je instaliran honeypot se naziva senzor.
Vise takvih organizacija, koje imaju senzore, se skupljaju u alijanse i medjusobno razmenjuju primerke onoga sto su nahvatali.
MC AV tim takodje poseduje senzore, i clan je jedne od najvecih alijansi koja osim akademskih organizacija i internet provajdera, u svom clanstvu ima i par proizvodjaca AV softvera.

ClamAV ima jako dobro snabdevanje novim primercima malwarea bas iz ovakvih izvora, i u vecini slucajeva su prvi koji dobiju primerak nekog novog crva ili bota (sto cini 90% trenutnih pretnji na netu), sto ga cini idealnim za sprecavanje epidemija ukoliko je instaliran na nekom serveru koji je cvoriste na nekoj mrezi.
Sa druge strane, jasno je da u jedan honeypot senzor nikada nece biti uhvacen neki macro-virus, klasican virus (EXE-file-infector), spyware, adware ili neki downloader (kakve je moguce pokupiti samo sa sajtova sumnjivog sadrzaja), pa je onda jasno i na kom polju je ClamAV jako hendikepiran.
Dobijaju oni ovakve tipove malicioznih programa iz drugih izvora, ali u daleko manjim kolicinama nego sto ih dobijaju druge AV kompanije.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 559 korisnika na forumu :: 50 registrovanih, 9 sakrivenih i 500 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 4bobo, A.R.Chafee.Jr., amaterSRB, Apotekar2, Atomski čoban, bato3, bojcistv, BORUTUS, BSD, caesar2, celik, chester_perry, cikadeda, danilopu2, darkstar101, djurdjija, Drug pukovnik, dule10savic, Eyes Wide Shut, Faki-Valjevo, FOX2, Georgius, jesenko1974, krauterbox, Luznicanin, MB120mm, nedeljkovici, nenad812, Oluj2.1, Pakito93, Panonsky, pein, prekodrinski, raketaš, Raptor1, Revolucion, rkekoke, rovac, sanix.sasa, shaja1, Suva planina, ucenik32, Vatreni Zmaj, VJ, Vlad000, Voja1978, Vojkan Petrovic, White Knight, x9, zixmix