Назад | Перейти на главную страницу

Можно ли использовать единую антивирусную программу для многих виртуальных машин?

Извините, если задаю тупой вопрос.

Обычно мы используем физический сервер и создаем на нем несколько виртуальных машин (я говорю о простейшем сценарии). Операционные системы и конфигурации каждой виртуальной машины могут быть разными. Но фактическим «владельцем» всех ресурсов является базовая физическая машина. Например, каждая виртуальная машина использует одну и ту же физическую память, подключенную к физическому серверу, и они просто создают виртуальные диски на жестком диске физического сервера.

Теперь мой вопрос: почему мы не можем реализовать антивирусный механизм, который работает только на физическом сервере? Если это так, нам не нужно иметь отдельные антивирусные программы для каждой виртуальной машины .. (физическая машина имеет доступ к памяти, дисковое пространство, которое используют виртуальные машины)

Основная проблема заключается в том, что ОС хоста не обязательно понимает внутреннее устройство гостевых ОС, то есть не знает, какие процессы выполняются в гостевой ОС или даже структуру файловой системы. Обычно операционная система хоста видит виртуальные машины как черный ящик, используя определенный объем памяти, образ / раздел диска и несколько циклов процессора.

Но для реализации эффективной антивирусной программы вам потребуется доступ к деталям процесса и информации о файлах (а эта информация доступна только внутри виртуальной машины).

Немного поздно для этой конкретной стороны, но VMWare's Конечная точка vShield продукт в сочетании с конкретными сторонними виртуальными устройствами (такими как Конечная точка Sophos) позволяет одной центральной виртуальной машине обрабатывать все антивирусные операции для всей фермы виртуальных машин.

Антивирусные программы работают на уровне файлов, то есть при каждом доступе к файловой системе (открытии, чтении, записи и т. Д.) Они ходатайствовать по запросу и фильтруйте его в соответствии с их различными правилами. Например, проверка содержимого файла на наличие вирусных сигнатур, если это исполняемый файл.

Хосты виртуальных машин работают на уровне ЦП, то есть они ходатайствовать на их гостевых ОС, когда ОС делает что-то очень низкое и требует эмуляции для сохранения состояния виртуальной машины. Программное обеспечение хост-виртуальной машины не обращает внимания на фактическую работу гостевой ОС и действует просто, чтобы сохранить иллюзию, что гостевая ОС работает на реальном оборудовании (это не совсем так, существуют различные инструменты, позволяющие гостевой ОС получить доступ к ОС хоста, драйверы инструментов VMWare например).

Единственный способ, чтобы это работало, - это загрузить драйвер в гостевую ОС, который делегирует управление каждым доступом к хост-виртуальной машине, а оттуда - AV-программе пользовательского пространства, запущенной на хосте. Результат этих операций должен быть передан обратно в гостевую ОС, которая будет применена этой ОС, чтобы избежать повреждения, вызванного одновременным изменением структуры диска гостем и хостом.

Итак, в конце дня у вас будет одна копия вашего AV-программного обеспечения, работающего вне гостевой ОС, но вам придется связываться со всеми из них (в очень сложной усадьбе), чтобы добиться того, что могло бы сделать традиционное AV-решение.

Мы даже не коснулись работы с несколькими гетерогенными ОС на одной и той же хост-виртуальной машине, обновлений этой общей AV-службы, миграции виртуальных машин между физическими хостами и т. Д.

Я сомневаюсь, что приведенное выше решение окажется столь же производительным, как и традиционная AV-служба, работающая внутри гостевой ОС. Что побудило вас задать этот вопрос?

Вы не упомянули, какого поставщика технологий виртуальных машин вы использовали, но это то, что возникло как запрос продукта на стороне VMware, и я считаю, что он будет встроен в следующую версию их «голого железа». , vSphere.

http://www.vmware.com/technology/security/vmsafe.html

Это их главная страница продукта для этой технологии. Вы можете взглянуть на небольшую яркую демонстрацию, чтобы получить немного более высокоуровневое представление о том, как это будет работать, но, как вы предположили, уровень гипервизора может позволить `` устройству '' vmsafe (просто другой виртуальной машине в DataCenter) отслеживать все компоненты виртуального оборудования (сеть, ЦП, ОЗУ, диск) на предмет наличия вредоносного ПО и подавления его до того, как это станет проблемой.

Довольно круто, но только если вы используете VMware, и что ж, продукт еще не полностью выпущен!

Хорошие мысли.

Не уверен, теоретический это вопрос или практический ...

Теоретически это возможно, хотя нет поставщиков антивирусов, предлагающих эту функцию. На практике антивирусные приложения на уровне файлов будут вызывать проблемы со способностью ОС получать доступ к важным файлам, таким как сами виртуальные жесткие диски (эта ситуация аналогична Exchange, SharePoint или многим другим серверным приложениям), и вам необходимо исключить определенные файлы из сканировано AV.

Официальный ответ на этот вопрос дал Бен Армстронг (один из разработчиков Hyper-V) здесь: http://blogs.msdn.com/virtual_pc_guy/archive/2009/03/17/antivirus-and-hyper-v-or-why-can-t-i-start-my-virtual-machine.aspx

Не совсем сканер вирусов, но BlockWatch (на основе белого списка, проверка целостности памяти) работает следующим образом: опрашивает вашу работающую виртуальную машину, делает снимок или сохраняет состояние, а затем проверяет память, выделенную для этого гостя. Работает на 32- и 64-битных ОС Windows.