Introspekce virtuálního stroje - Virtual machine introspection

Ve výpočetní technice, introspekce virtuálního stroje (VMI) je technika "pro sledování runtime stav na úrovni systému virtuální stroj (VM) ", což je užitečné pro ladění nebo forenzní analýzu.[1][2]

Termín introspekce v aplikaci na virtuální stroje představili Garfinkel a Rosenblum.[3] Vynalezli přístup pro „ochranu bezpečnostní aplikace před útokem škodlivého softwaru“ a nazvali ji VMI. Nyní je VMI běžným pojmem pro různé forenzní a analytické metody virtuálních strojů. Přístupy založené na VMI jsou široce používány pro bezpečnostní aplikace, ladění softwaru a správu systémů.[1]

Nástroje VMI mohou být umístěny uvnitř nebo vně virtuálního stroje a mohou sledovat události (přerušení, zápis do paměti atd.) nebo odesílání požadavků na virtuální stroj. Monitor virtuálního stroje obvykle poskytuje informace na nízké úrovni, jako jsou nezpracované bajty paměti. Převod tohoto nízkoúrovňového pohledu na něco smysluplného pro uživatele se nazývá sémantická mezera problém. Řešení tohoto problému vyžaduje analýzu a porozumění monitorovaným systémům.

VMI v rámci virtuálního stroje

Programy běžící uvnitř VM mohou poskytovat informace o dalších procesech. Tyto informace mohou být odesílány prostřednictvím síťového rozhraní nebo některých virtuálních zařízení, jako je sériový port. Příklady introspekčních programů in vivo jsou WinDbg[4]nebo GDB[5] servery, které interagují se vzdáleným ladicím programem.

Nevýhodou tohoto přístupu je, že vyžaduje funkční operační systém v rámci virtuálního počítače. Pokud OS přestane reagovat nebo ještě není načten, introspekční agent nemohl fungovat.

VMI mimo virtuální stroj

Nástroje VMI mohou být implementovány v rámci monitoru virtuálního stroje[6][7] nebo jako samostatný program[8]které zachycují informace (např. obsah paměti) z monitoru virtuálního stroje. Poté musí být tato data interpretována, aby porozuměla procesům v systému. Jedním z populárních nástrojů pro takovou interpretaci je Volatility framework.[9] Tento rámec obsahuje profily pro mnoho populárních operačních systémů a může extrahovat různé informace, jako je strom procesů nebo seznam objektů jádra.

Reference

  1. ^ A b https://link.springer.com/referenceworkentry/10.1007%2F978-1-4419-5906-5_647 Encyclopedia of Cryptography and Security: Virtual Machine Introspection
  2. ^ https://github.com/libvmi/libvmi LibVMI: Zjednodušená introspekce virtuálních strojů
  3. ^ https://suif.stanford.edu/papers/vmi-ndss03.pdf Architektura založená na introspekci virtuálního stroje pro detekci narušení
  4. ^ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/remode-debugging-using-windbg Vzdálené ladění pomocí WinDbg
  5. ^ https://sourceware.org/gdb/onlinedocs/gdb/Server.html Pomocí programu gdbserver
  6. ^ https://wiki.xenproject.org/wiki/Virtual_Machine_Introspection VMI v Xen
  7. ^ https://dl.acm.org/citation.cfm?id=3122817 Rámec založený na QEMU pro nerušivé vybavení a introspekci virtuálních strojů
  8. ^ https://github.com/Cisco-Talos/pyrebox Sandbox pro reverzní inženýrství s možností skriptování v Pythonu
  9. ^ https://github.com/volatilityfoundation/volatility Rámec nástroje pro extrakci těkavé paměti