Pitanje:
Kako mogu sigurno analizirati potencijalno štetnu binarnu datoteku?
Archenoth
2013-03-20 02:27:57 UTC
view on stackexchange narkive permalink

Nedavno sam uspio izolirati i arhivirati nekoliko datoteka koje su uspjele uništiti jedan od sustava mog klijenta. Pa sam se pitao koji softver i tehnike čine najbolji test za izoliranje koda i kopanje po njemu kako bih saznao kako to funkcionira.

Obično bih do ovog trenutka samo pokrenuo novi VMWare ili instancu QEMU i iskopajte, ali dobro znam da se neki dobro napisani zlonamjerni softver može relativno lako probiti iz VM-a. Stoga tražim tehnike (poput upotrebe VM-a s drugačijom emuliranom CPU arhitekturom, na primjer.) I softvera (Možda vrsta Sandbox-a takve vrste?) Kako bi ublažili mogućnost koda na kojem radim "proboj". / p>

Koje tehnike preporučate? Koji softver preporučujete?

[Je li sigurno instalirati zlonamjerni softver u VM] (http://security.stackexchange.com/questions/12546/is-it-safe-to-install-malware-in-a-vm) pruža određenu pozadinu.
Također [zaustavlja li virtualni stroj zlonamjernom softveru nanošenje štete?] (Http://security.stackexchange.com/questions/9011/does-a-virtual-machine-stop-malware-from-doing-harm)
Imajte na umu da pitanja oblika "Koji X svi koristite?" smatralo bi se anketnim pitanjem, vrstom pitanja koja se na Stack Exchangeu loše smatra da više odgovara formatu foruma nego našem formatu pitanja i odgovora.
Primijećeno ... Također, netko je predložio izmjenu da se to ispravi, pa sam ga prihvatio.
četiri odgovori:
#1
+64
Igor Skochinsky
2013-03-20 05:41:03 UTC
view on stackexchange narkive permalink

U naslovu se spominje "pješčanik", ali VMWare ili QEMU obično se tako ne nazivaju, pa se čini da je pitanje više o tome "kako to analizirati bez opasnosti od zaraze?"

Postoje tri široke kategorije alata i pristupa koje biste ovdje mogli primijeniti.

1. Sandboxovi u korisničkom načinu rada

Sandbox u korisničkom načinu u osnovi pokreće uzorak koji se istražuje, ali presreće sve ili barem najkritičnije API-je koji pristupaju OS-u hosta, neutralizira ih i modificira rezultate da bi softver zavarao u razmišljanju trči posve sam. Čini se da je jedan od najpopularnijih takvih alata Sandboxie, ali postoje i drugi poput PyBox. Zlonamjerni programi obično ga mogu prilično lako otkriti i uvijek postoji opasnost da neimulirani API pusti kôd da se pokrene.

2. Virtualni strojevi i emulatori

Oni ulaze malo dublje i pokušavaju oponašati ne samo API-je, već i izvršavanje stvarnog koda. Isto tako, obično trebate pokrenuti puni OS unutar emulatora i ne možete koristiti host OS takav kakav je (može biti prednost ili nedostatak, ovisno o vašim ciljevima). Oni se mogu dalje podijeliti u tri kategorije prema pristupu koji se koristi za emulaciju:

a) virtualizacija

To uključuje VMWare, VirtualBox i VirtualPC. Koriste značajke virtualizacije nedavnih procesora za nativno pokretanje većine koda i samo oponašanje memorijskih ili hardverskih pristupa. To ih čini brzima, ali u teoriji može dovesti do izbjegavanja koda s VM-a u slučaju programskih grešaka.

b) dinamički prijevod

Ovaj pristup koristi QEMU. Prevodi svaki osnovni blok u slijed matičnih CPU-ovih uputa i izvršava ih. Ovaj pristup omogućuje mu razumno brzo oponašanje mnogih različitih arhitektura, međutim vrijeme se može prilično razlikovati od izvornika. Mislim da nisam čuo za bilo kakve VM-ove koji su pobjegli, ali moguće ih je otkriti.

c) puna emulacija

Ovo koristi Bochs. Potpuno oponaša svaku zasebnu uputu jednu po jednu, dok se izvršavaju. To ga čini nešto sporijim od ostalih rješenja, ali omogućuje postizanje gotovo savršene emulacije čak i najnižih detalja. To je vjerojatno i najsigurnije u vezi s VM koji izbjegava bugove. Bilo je nekih pogrešaka u implementaciji koje bi se mogle koristiti za njegovo otkrivanje, ali mislim da je većina njih ispravljena.

3. Statička analiza

Najbolji način da se izbjegne izbijanje je da se kod uopće ne pokreće! Također, statička analiza omogućuje vam da pogledate cjeloviti kôd binarnog programa i vidite ga sve, čak i staze koda koje nisu zauzete pokretanjem i zaobilazite sve runtime provjere i otkrivanja.

Nažalost, statička analiza može biti otežana pakiranjem ili prikrivanjem koji se koristi u zlonamjernom softveru. Stoga je često potrebno kombinirati nekoliko pristupa. Nisam profesionalni analitičar, ali bavim se analizom zlonamjernog softvera. Moj tijek rada obično ide ovako:

  1. Otvorite uzorak u IDA-i.
  2. ako izgleda spakirano ili šifrirano, upotrijebite program za ispravljanje pogrešaka Bochs da biste oponašali njegovo izvršavanje i neka se sam raspakira.
  3. Kad završi (obično je očito), napravim snimku memorije, zaustavim otklanjanje pogrešaka i nastavljam analizu statički.
  4. Ako nepakirani kôd sadrži drugu ugrađenu datoteku (prilično česta situacija) , spremio je u zasebnu datoteku i prijeđite na korak 1
#2
+22
cb88
2013-03-20 03:26:49 UTC
view on stackexchange narkive permalink

Bochs ako vam nije potrebna brzina, ali puno fleksibilnosti. Možete koristiti Bochsa s GDB-om.

Qemu ako vam je potrebna veća brzina i manja fleksibilnost (radi dinamičko prevođenje pa ćete dobiti malo brzine, ali izgubiti akutni slijed uputa) možda nešto manje siguran od bocha. Sličan je Vmwareu i virtualbox zapravo proizlazi iz njega. Možete koristiti GDB s Qemu.

Xen, moj prijatelj, prilično je siguran u Xen hipervizor sve dok ga pravilno postavite, što znači da koristite serijsku povratnu vezu za konfiguraciju i ostale složene postavke. Međutim, bilo bi vrlo brzo, ali i dalje izolirano i prema onome što razumijem, jamčilo bi vašu sigurnost sve dok kontrolirate serijsku vezu. Ipak je Bochs vjerojatno najsigurniji.

Isto tako, premda nisu rješenje za ispravljanje pogrešaka emulatora / virtualizacije, poput SoftICE, mogli bi biti korisni iako ga mnogi softveri sada otkrivaju i zaobilaze.

#3
+15
ekse
2013-03-20 05:59:31 UTC
view on stackexchange narkive permalink

Gilles je pružio neke izvrsne poveznice i želim još malo razgovarati o upotrebi virtualnih strojeva za analizu zlonamjernog softvera. Iako je probijanje VM-a sigurno mogućnost, još nisam naišao na takav slučaj ili čak čuo za jedan, a pretpostavljam da bi ovo izazvalo neke probleme ako bi ga netko pronašao. Da biste bili sigurni, jednostavno pokrenite svoj VM softver na izoliranom računalu i mreži kao što biste to učinili kada koristite program za ispravljanje pogrešaka.

Preporučujem vam da isprobate Kukavicu Sandbox. Automatizira postupak pokretanja zlonamjernog softvera u VM-u (podržani su VMware, VirtualBox & KVM) i izvlači podatke poput modificiranih datoteka, odlagališta memorije ili mrežnog prometa. Čak podržava API praćenje putem DLL ubrizgavanja, što je prilično uredno.

#4
+7
Denis Laskov
2013-04-01 19:37:29 UTC
view on stackexchange narkive permalink

Doslovno, za prvi pogled na zlonamjerni softver neće vam trebati ništa posebno lokalno instalirano. Dovoljno je internetskih pješčanika koje možete koristiti:

  • virustotal.com implementirajte svoj pješčanik pomoću pješčane kukavice. Kada primijenite novi uzorak, on se automatski izvršava kao dio analize. Nakon otprilike 10-15 minuta rezultat možete vidjeti u "Informacije o ponašanju"
  • anubis.iseclab.org je još jedno mjesto koje možete poslati binarno da biste vidjeli njegovo ponašanje prije nego što ga izvršite lokalno . Ovdje ste dobili izvještaj i pcap datoteku mrežne aktivnosti, ako ih ima.

Kao rezultat toga, možete dobiti osnovnu ideju o tome što binarni sustav radi i kako ga analizirati. Ali - imajte na umu, taj sofisticirani zlonamjerni softver provjerava u svom okruženju tragove pješčanika i prisutnost VM-a. Dakle, postoji šansa da se naizgled "bezazlena binarna datoteka" u stvarnim uvjetima pokaže sofisticiranim zlonamjernim softverom.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...