Как получить доступ к данным на виртуальной машине?
Здраствуйте! Знает ли кто, каким образом можно получить данные из гостевой операционной системы, например информацию о пользователях через возможности гипервизора, то есть не реализуя сеть между хостом и гостем. Очень интересно как гипервизор общается с гостевыми ос и какую информацию о них он может доставать
Самое простое - прочитать все с диска виртуальной машины, если он не зашифрован средствами самой VM.
А в остальном - зависит от того что вы имеете ввиду под возможностями гипервизора.
Если подразумеваются штатные возможности - там нет ничего для добывания информации из VM.
Если что то другое - в принципе гипервизор имеет доступ ко всем данным с которыми работает VM, хотя реализовать их добычу будут непросто технически.
Вот меня как раз добыча данных через гипервизор и интересует. В целом нашел два способа, это использовать виртуальную локальную сеть между хостом и гостем, либо такая же сеть между гостем и специальной виртуальной машиной, либо использовать буфер обмена. Но это все потребует дополнительных накладных расходов в виде написания по типа клиент-сервер, поэтому и стало интересно, может ли гипервизор сам данные вытаскивать в каком-то виде.
В данном случае хочется абстрагироваться от конкретной модели, а также попробовать найти реализацию в случае как аппаратной так и программной виртуализации
Если у вас полная виртуализация, то никак Вы во внутрь просто так не загляните. Точнее можно попробовать например в качестве диска в виртуаку подать lvm-том а на хост системе примонтировать его снепшот и на нем смотреть, но это костыль.
Можно ставить в виртуальный образ какой-то пакет который будет предоставлять интерфейс к каким-либо данным, но это тоже не очень хороший вариант.
В общем, полная виртуализации при правильном подходе обеспечивает очень хороший уровень безопасности.
Если мы говорим о конейнерах, то тут можно из хост системы дернуть любые данные находящиеся в контейнере. Проблем с этим вообще нет.
Насколько я знаю никак. В своё время решал такую задачу использую libvirt чтобы поднять машину и включить ей сеть, затем SSH/telnet соединение с ОС. Дальше дело техники.