Интроспекция виртуальных машин (Numjkvhytenx fnjmrgl,ud] bgonu)
Интроспекция виртуальных машин (англ. Virtual machine introspection, VMI) (в компьютерах) — это технология для мониторинга внутреннего состояния виртуальной машины. Она может использоваться для отладки, расследования инцидентов или обнаружения вредоносного кода.[1][2][3]
Термин интроспекция по отношению к виртуальным машинам впервые был использован в работе Гарфинкеля и Розенблюма.[4] Они предложили подход к защите приложений от атак вредоносных программ. Сейчас интроспекция используется также для обозначения других методов анализа, наблюдения и отладки.[5]
Программные средства для интроспекции могут работать как внутри анализируемой системы, так и вне ее. Они могут отслеживать события машины (прерывания, обращения к памяти) или обращаться к гипервизору за необходимой информацией. Гипервизор обычно предоставляет низкоуровневую информацию о состоянии системы (например, содержимое ячеек памяти). Проблема преобразования этой низкоуровневой информации в высокоуровневую (например, выделение структур данных) известна как семантический разрыв. Эта проблема решается с помощью развития методов интроспекции виртуальных машин.[6]
Интроспекция внутри виртуальной машины
[править | править код]Программы, работающие в виртуальной машине могут получать информацию о других процессах, а затем передавать ее по сети для последующего анализа. Примеры таких программ — это сервисы отладчиков WinDbg[7] или GDB[8]. Они взаимодействуют с удаленным отладчиком, позволяя изучать процессы в виртуальной машине.
Основной недостаток такого подхода в том, что операционная система и ее сервисы должны функционировать. Отладить программу не удастся, если ОС еще не загружена или зависла.
Интроспекция извне виртуальной машины
[править | править код]Средства интроспекции могут быть реализованы в гипервизоре[9][10] или в виде внешнего приложения[11], получающего от гипервизора информацию. Эта информация должна интерпретироваться, чтобы определить какие именно процессы происходят внутри системы. Volatility framework — одно из средств для такой интерпретации.[12] Volatility позволяет анализировать содержимое дампов памяти для множества операционных систем, извлекая оттуда такие сведения, как дерево процессов или список объектов ядра.
Примечания
[править | править код]- ↑ https://link.springer.com/referenceworkentry/10.1007%2F978-1-4419-5906-5_647 Архивная копия от 4 июня 2018 на Wayback Machine Encyclopedia of Cryptography and Security: Virtual Machine Introspection
- ↑ https://github.com/libvmi/libvmi Архивная копия от 10 июня 2018 на Wayback Machine LibVMI: Simplified Virtual Machine Introspection
- ↑ http://www.novsu.ru/file/1180100 Архивная копия от 5 декабря 2016 на Wayback Machine Интроспекция виртуальных машин
- ↑ https://suif.stanford.edu/papers/vmi-ndss03.pdf Архивная копия от 9 августа 2017 на Wayback Machine A Virtual Machine Introspection Based Architecture for Intrusion Detection
- ↑ OpenNews: Выпуск платформы виртуализации XenServer 7 . Дата обращения: 15 января 2018. Архивировано 17 января 2018 года.
- ↑ https://elibrary.ru/item.asp?id=30035372 Легковесный метод интроспекции виртуальных машин
- ↑ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/remode-debugging-using-windbg Архивная копия от 28 апреля 2018 на Wayback Machine Remote Debugging Using WinDbg
- ↑ https://sourceware.org/gdb/onlinedocs/gdb/Server.html Архивная копия от 14 февраля 2018 на Wayback Machine Using the gdbserver Program
- ↑ https://wiki.xenproject.org/wiki/Virtual_Machine_Introspection Архивная копия от 10 ноября 2017 на Wayback Machine VMI in Xen
- ↑ https://dl.acm.org/citation.cfm?id=3122817 QEMU-based framework for non-intrusive virtual machine instrumentation and introspection
- ↑ https://github.com/Cisco-Talos/pyrebox Архивная копия от 24 декабря 2017 на Wayback Machine Python scriptable Reverse Engineering sandbox
- ↑ https://github.com/volatilityfoundation/volatility Архивная копия от 11 июня 2018 на Wayback Machine Volatile memory extraction utility framework