» »

Napadi iz virtualnih strojev

Napadi iz virtualnih strojev

Heise - Pri varnostnih analizah se pri zaganjanju potencialno ne-varne kode pogosto uporabljajo virtualni stroji. Virtualni stroji naj bi predstavljali varno okolje. A to drži le toliko časa, dokler zlonamerni programi ne znajo pobegniti na gostiteljski stroj.

Peter Ferrie iz Symantec Advanced Threat Research je v članku Attacks on Virtual Machine Emulators opisuje znane napade na virtualne stroje VMware in VirtualPC ter emulatorje Bochs, Hydra, QEMU in Xen.

Članek vsebuje tudi konkretno programsko kodo s katero je mogoče zaznati programje za virtualizacijo in emulacijo.

22 komentarjev

ThinMan ::

Matthai: Še dobro da te imamo :)

Tnx
----
"We may not be able to control the wind, but we can always adjust our sails"

MrStein ::

A kdo razume kaj se misli z "Bochs will encounter a kernel panic and close." (podobno piše večkrat).
A to pomeni, da bo bochs padel ?
Host OS bo padel ?
Nekaj tretjega ?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

VolkD ::

Povsem normalno je da 100% varnosti ni! Je pa dejstvo, da virtualni stroj nudi v teh pogledih obilo ugodja. Vse stare pošasti ostanejo znotraj in to je kar nekaj.
Preden zaspiš zapri oči. Preden zapreš oči, ustavi avto.

PaX_MaN ::

Khehe, lih dons sem se odločil prešaltat na VirtualBox. :D

Bistri007 ::

Jaz sem si selo vzel 15 minut za prelistat to stvar. Opisuje, da lahko prisotnost hypervisorja ugotoviš z RDTSC (RDTSC) @ Wikipedia - read time stamp counter. Za izvajanje CPUID se pokliče exception, ampak samo če v v Virtualnem stroju. In če za izvajanje tega ukaza ne porabi samo par ciklov, potem je not.

Ni pa opisano v članku, kako bi pobegnilo programje iz VM. OK, lahko narediš DOS napad, samo to ni to.

A harsher attack that malicious code can perform against a virtual machine emulator is the denial-of-service; specifically, this type of attack causes the virtual machine emulator to exit. Some descriptions and samples of how that is done are presented in this paper.

Finally, the most interesting attack that malicious code can perform against a virtual machine emulator is to escape from its protected environment. No examples of this type of attack are presented in this paper.


The most interesting attack ......... no examples of this [most interesting] this type of attack are presented in this paper. :D

RejZoR ::

Sej fora virtualnega okolja ni v tem da ti ne bi kej pobegnilo na host sistem ampak da vidiš kaj se zgodi z zagnanim fajlom.
Predstavljaj si VirtualPC okolje kot alcatraz, okoli katerega je morje polno morskih psov, stražarjev na kopnem, bodeče žice in stražarjev na čolnih. Sej lahko pobegneš ampak ko prideš preko nekih meja se bo zagnal cel hudič. Isto je v VPCju. Znotraj sandboxa se običajno ne namešča nobenih varnostnih programov ker hočemo vidit kaj se bo zgodilo.
Host je običajno (vsaj pri meni) zavarovan v nulo. Torej tud če karkoli prestopi meje sandboxa bom verjetno vedel za to. Rule by rule, osnova behavioral sistemov. Za možnost prestopa iz sandboxa na hosta sem vedel že dolgo preden se je o tem sploh začelo govorit. Koneckoncev sta oba sistema običajno povezana prekop navideznega networkinga. Kar je potencialno varnostna luknja med navideznim in fizičnim hostom.
Angry Sheep Blog @ www.rejzor.com

poweroff ::

MrStein: Bochs se bo usul.

Sicer pa, kaj se da storiti... zlonamerna koda lahko zazna, da je v virtualnem stroju in se začne lepo obnašat.

Mislim, da je mogoče tudi pobegniti iz virtualnega stroja. Bom malo pobrskal - sem zadnjič nekje prebral.

Sicer mi je pa najbolj sci-fi napad z Bluepill. Ta zadeva naredi tole... exe se zažene v Visti, nakar se ustvari virtualni stroj, Vista, ki je bila do tega trenutka host se preseli v virtualni stroj, rootkit pa postane hypervisor in se tako skrije pred Visto.

V bistvu se ustvari Matrica, Vista pa se preseli vanjo - odtod ime Blue pill.

Zadevo je napisala Joanna Rutkowska - ena mlada Poljakinja, ki se sicer ukvarja z rootkiti in kernel hackingom. Napisala je tudi par odličnih članov o strojnih rootkitih.
sudo poweroff

poweroff ::

Rejzor - v bistvu je vprašanje ali je mogoč pobeg iz virtualnega stroja direkt v kernel hosta.
sudo poweroff

Bistri007 ::

Matthai, v past se ni težko ujeti. Težje iz pasti pobegniti.

Če si na PL0, lahko počneš karkoli. Tudi za kernel viste zapreti v hypervisor imaš dovoljenje. Me pa res zanima, kako lahko ven pobegneš - ampak na Intel VT ali AMD-V/Pacifica.

poweroff ::

Kako? Takole.
sudo poweroff

In Extremis ::

Breaking out of VM environment:

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-4496
http://www.microsoft.com/technet/security/Bulletin/MS07-049.mspx
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1068
http://seclists.org/dailydave/2007/q4/0131.html

MrStein:
v bistvu se lahko zgodi oboje. Odvisno katera instrukcija je povzročila exception. Nekaterih x86 instrukcij se namreč ne da virtualizirati. Pred časom sem se malce poigral z win32 kernel kodo (seveda znotraj matrice, torej v guest OS-u) pa mi je mimogrede sesulo tudi host OS. Toliko o absolutni zanesljivosti testiranja malware kode znotraj virtualnega stroja. Poleg tega ima napredna zlonamerna koda implementirane mehanizme za odkrivanje ali se izvaja v virtualnem ali realnem okolju. Seveda je odveč omenjati, da je execution flow zlonamerne kode pogojen z dejanskim okoljem v kateremu se izvaja. Ali poenostavljeno, v VM lahko počne čisto nekaj drugega kakor v nativnem OS-u.

Dodatno čtivo:
http://pferrie.tripod.com/papers/attacks.ppt
http://taviso.decsystem.org/virtsec.pdf

ter vse izpod tipkovnice že omenjene Joanne Rutkowske, ki je nedvomno svetovna eminenca na področju VM rootkitov.

Bistri007 ::

Jaz sem preletel oni PPT od Matthaja pa nisem našel, da bi kje pisalo, kako priti ven iz VM v hosta. Zanima me ne, ali je mogoče priti ven iz softverske emulacije - to razumem. Samo kako priti iz guesta v hypervisor na Intel VT - to bi rad vedel. :\

In Extremis ::

Bistri007:
Iz guest state v hypervisor state na Intel VT? Vitriol je HVM rootkit (hypervisor), ki se izvaja na Intel VT in MAC OS X. Mogoče obstaja tudi kakšna privatna različica Blue Pill, ki se izvaja na Intel VT. Če pa misliš, kako iz host v hypervisor state medtem, ko je VMM hypervisor že naložen potem, vsaj koliko je meni znano, to zaenkrat ni izvedljivo. Za "potencialni" 0-day pa bi moral kontaktirati Joanno ;)

Thomas ::

Kodi pravzaprav ni treba "pobegniti" iz virtualne mašine, dovolj je to, da napiše bitni string nekam v memorijo. Če je ta bitni string potem zmožen samostojnega življenja in delovanja - toliko bolje. Če pa vsebuje še svoj načrt in se izven kontroliranega okolja ponovno vzpostavi, pa še toliko bolje.

Torej, kako naprimer povzročiti zapis bitnega stringa izven adresnega prostora, ki ti ga VM namenja, če si v preiskavi?

Zunaj tega področja, na svobodi, že piše vsaj ta VM. Če jo je možno sesuti z nečem nepredvidenim, si bo v določenih okoliščinah VM sama popackala memorijo, kjer je ne bi smela. Na njenem lastnem področju in izdala bo pozitivno mnenje o preiskovancu.

To je že en način, ki ni vedno možen, kdaj pa že.
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Drug, čisto preprost način, da Koda pride iz testirnega laboratorija je pa ta, da žreba dve števili. Prvo iz majhnega intervala, drugo iz velikega intervala. Mali interval leži na začetku velikega. Kadar je drugo število večje, se izvaja Prijazna SubKoda, kadar je večji pa HudobnaSubKoda.

Težave potem težko nastopijo v virtualni mašini in težko nastopijo potem, ko je že iz karantene. Vendar na ta način se že včasih pretihotapi skozi kontrolo. Dovolj, da ta varnostni sistem ne deluje.
Man muss immer generalisieren - Carl Jacobi

Daedalus ::

Ni pa opisano v članku, kako bi pobegnilo programje iz VM. OK, lahko narediš DOS napad, samo to ni to.

Buffer overflow + zagon zlobne kode - citat iz pdf-ja:

Going beyond detection, in December 2005, it was disclosed that a component of VMware allowed an attacker to escape from the environment. Specifically, the "VMnat" contained an unchecked copy operation while procesing specially crafted 'EPRT' and 'PORT' FTP requests [26]. The result was heap buffer corruption within the host environment, with the potential to execute arbitrary code there. A more serious vulnerability potentially exists in hardware- bound virtual machine emulators, if the guest can interact with third-party devices on the system. For example, if a buffer-overflow vulnerability exists in a network driver in the host environment, it might be posible for an application within the guest environment to send a specially crafted network packet that reaches the host network driver intact, and thus exploit that vulnerability.


>>> Pred časom sem se malce poigral z win32 kernel kodo (seveda znotraj matrice, torej v guest OS-u) pa mi je mimogrede sesulo tudi host OS.

Kaka eksotična kernel napaka v Xen guestu lahko sesuje tud hosta. Ali pa prekoračitev (al pa vsaj dost dober poskus) dodeljenih sredstev recimo. Tako da te stvari niso lih bulletproof...
Man is condemned to be free; because once thrown into the world,
he is responsible for everything he does.
[J.P.Sartre]

Zgodovina sprememb…

  • spremenilo: Daedalus ()

Person ::

Mah, hosta lahko sesuješ z VMjem tudi pri zagonu normalnih aplikacij ... pač tko, da dobiš kot rezultat reset PCja;(
Let's make something useful!

MrStein ::

To sem napisal v "Kritika NOVIC":

Članek "Napadi iz virtualnih strojev" :
- dokler zlonamerni programi ne znajo pobegniti na gostiteljski stroj.

Ampak v linkanem članku ni nič na to temo (OK razen enega stavka, ki pravi , da "bi bilo to zanimivo")



Bistri007:

Me pa res zanima, kako lahko ven pobegneš


Matthai:

Kako? Takole.


Že spet namiguješ na pobeg iz VM in spet linkaš na vir, ki nič o tem ne piše.

Ah, te je In Extremis rešil ;-)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

poweroff ::

Ja, In Extremis po moje še največ ve o teh stvareh. Na tem forumu definitivno, rekel bi pa, da je tudi v slovenskem merilu med boljšimi poznavalci.

-- Brisan off-topic! //madviper
sudo poweroff

Zgodovina sprememb…

  • spremenil: madviper ()

In Extremis ::

Matthai:
Najlepša hvala. Čeprav sem, IMHO, mogoče le nekoliko bolj vešč pri uporabi Googla in Wikipedije.

Person:
Ali nam lahko zaupaš naslednje:
- uporabljeno VM aplikacijo
- uporabljen host OS
- ime programa, ki povzroča crash

Zanimivo bi bilo testirati zadevo...

Zgodovina sprememb…

Person ::

To se dogaja v WMware ... detajle sem ti poslala v PM-ju.

Hočem drugače poudariti, da nisem nič kaj neobičajnega počel oz. to poskušal namerno storiti.
Let's make something useful!

MrStein ::

Ej, kaj skrivaš informacije !!?! Si iz Stasi ? ;)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Izšel je Oraclov VirtualBox 6.0 (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
5717510 (3723) MrStein
»

Need for Speed 2 SE Windows XP SP3 VMware Workstation problem

Oddelek: Igre
5897 (839) Sandi1987
»

Izšel VirtualBox 3.0 (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
8911726 (8129) Jst
»

Čemu imeti računalniške učilnice na fakultetah (strani: 1 2 )

Oddelek: Novice / --Nerazporejeno--
699229 (5938) Matevžk
»

Napadi iz virtualnih strojev

Oddelek: Novice / Varnost
223363 (3363) MrStein

Več podobnih tem