Виртуальная инфраструктура VMware представляет собой совокупность виртуальных машин, а также систем, обеспечивающих сетевое взаимодействие между ними. Если две или несколько виртуальных машин «общаются» между собой в пределах одного сервера, то сетевое взаимодействие обеспечивают устройства, называемые виртуальными коммутаторами. При этом физические сетевые интерфейсы реальной машины не затрагиваются.
Такая модель сетевого взаимодействия очень удобна, поскольку таким образом можно ограничить доступ виртуальных машин в пределах сервера во внешнюю сеть, оставляя при этом возможность их сетевого взаимодействия между собой. Однако, как мы дальше увидим, существует некая проблема безопасности при сетевом взаимодействии в пределах виртуальной инфраструктуры, которая может привести к плачевным последствиям, если чётко не представлять себе как работают устройства, называемые компанией VMware виртуальными коммутаторами.
Есть несколько типов устройств, обеспечивающих сопряжение компьютеров в сети. В данной статье наибольший интерес представляют для нас два из них – это концентраторы и коммутаторы.
Чем же эти устройства отличаются друг от друга? Рассмотрим принципы их работы:
Как работает концентратор:
Если в локальной сети используется концентратор, все его абоненты делят между собой полосу пропускания сети. Пакет, принимаемый по одному из портов концентратора, рассылается во все другие порты, которые анализируют этот пакет (если пакет не предназначен абоненту, он просто отбрасывается). При небольшом числе пользователей такая система превосходно работает. Между тем в случае увеличения числа пользователей начинает сказываться конкуренция за полосу пропускания, что замедляет трафик в локальной сети. Также, с точки зрения безопасности, такой метод не является приемлемым во многих случаях, по причине того, что любой пакет, адресованный конкретному получателю, пересылается всем абонентам концентратора и может быть перехвачен с помощью специальных программ-анализаторов трафика, называемых снифферами. Однако такая реализация устройства проще и дешевле, ввиду отсутствия необходимости в определении конечного адресата пакета.
Как работает коммутатор:
В отличие от концентраторов, осуществляющих широковещательную рассылку всех пакетов, принимаемых по любому из портов, коммутаторы передают пакеты только целевому устройству (адресату), так как знают MAC-адрес каждого подключенного абонента (аналогично тому, как почтальон по почтовому адресу определяет, куда нужно доставить письмо). В результате уменьшается трафик и повышается общая пропускная способность, а эти два фактора являются критическими с учетом растущих требований к полосе пропускания сети современных сложных бизнес приложений. Коммутация является недорогим и надёжным способом обеспечения сетевого взаимодействия, а с точки зрения безопасности огромным плюсом коммутации является то, что при пересылке пакета он попадает к конкретному абоненту, не дублируясь на других портах коммутатора.
Компания VMware для сетевого взаимодействия предоставляет нам устройства, называемые виртуальными коммутаторами, что создает у нас впечатление, что это аналог физического устройства, работающий по тому же принципу.
Давайте проверим это предположение на двух основных платформах виртуализации VMware: бесплатной Server 1.0 и платной VMware ESX Server 3.0, являющейся частью виртуальной инфраструктуры Virtual Infrastructure 3.
VMware Server 1.0.
Для начала, на этой платформе были созданы 3 виртуальные машины (VM1, VM2, VM3) на базе операционных систем Windows 2003 Server. Затем виртуальные сетевые адаптеры каждой из машин были сконфигурированы для использования host-only networking. Для host-only networking VMware Server использует виртуальный коммутатор VMnet1.
Затем на виртуальной машине VM3 была установлена программа Network Monitor корпорации Microsoft, входящая в поставку Systems Management Server и применяемая для слежения за трафиком приходящим на выбранный сетевой адаптер.
Мы использовали Network Monitor из поставки Microsoft Systems Management Server, так как он, в отличие от стандартного, может переводить сетевой адаптер в режим promiscuous, в котором он начинает получать все пакеты, а не только адресованные ему.
После этого с машины VM2 производилось копирование файлов на сетевую шару машины VM1.
На машине VM3 был запущен Network Monitor и установлен режим “Capture”. При работе в режиме “Capture” Network Monitor переводит сетевой адаптер в режим promiscuous. В процессе копирования была получена следующая картина в программе Network Monitor на виртуальной машине VM3:
Как видно из рисунка, во время копирования файлов с виртуальной машины VM2 на виртуальную машину VM1, сетевая карта виртуальной машины VM3, работающая в promiscuous режиме, принимала пакеты с MAC-адресов машин VM1 и VM2. Это говорит о том, что устройство VMNet1 работает в режиме вовсе не коммутатора, а самого настоящего концентратора!
Проблемная ситуация, смоделированная в данном случае, представлена на картинке:
Вот она – проблема, которая может ускользнуть от специалиста по информационной безопасности. Злоумышленник, обладая доступом к одной из машин в виртуальной инфраструктуре на базе VMware Server, может прослушивать и анализировать трафик, содержащий конфиденциальную информацию, специальной программой-сниффером. При этом системный администратор может не догадываться о природе данной проблемы, проводя аналогию между настоящим коммутатором и виртуальным.
VMware ESX Server 3.0
По аналогии с предыдущим опытом, на платформе ESX Server компании VMware были созданы 3 виртуальные машины VM1, VM2, VM3 на базе операционной системы Windows 2003 Server. После этого все три машины в составе пула ресурсов были присоединены к виртуальному коммутатору vSwitch3 с настройками по умолчанию:
Затем на виртуальной машине VM3 был также установлен Microsoft Network Monitor. Так как на платформе ESX Server нет встроенного DHCP сервиса, работающего в качестве DHCP-сервера, IP-адреса виртуальных машин были назначены вручную: из диапазона подсети 192.168.5.0/24. Таким образом был образован аналог host-only networking в VMware Server. После этого производилось аналогичное, как и в предыдущем опыте, копирование с виртуальной машины VM2 на машину VM1.
Во время копирования, в программе Microsoft Network Monitor, работающей в режиме “Capture” была получена следующая картина:
Из рисунка видно, что пакеты переданные между машинами VM1 и VM2 не были получены сетевым адаптером машины VM3, работающим в promiscuous режиме. Таким образом, виртуальный коммутатор vSwitch3 действительно работает подобно настоящему, скрывая трафик между двумя виртуальными машинами от посторонних глаз за счет коммутации каналов.
Выходит, что платформа ESX Server надежнее защищена от описанной выше возможности вторжения по причине соответствия функций виртуального коммутатора реальному.
То есть соединения между виртуальными машинами более безопасны:
Однако, стоит отметить, что виртуальный коммутатор на платформе ESX Server можно также перевести в режим концентратора, выбрав Accept для promiscuous mode в свойствах виртуального коммутатора на вкладке Security.
При таком варианте поведение виртуального коммутатора, будет то же, что и в случае с VMware Server, когда трафик можно прослушивать на любой машине в виртуальной подсети. Поэтому, не рекомендуется менять эту опцию по соображениям безопасности.
Итог
Проведя эти исследования, можно заключить, что платформа виртуализации ESX Server компании VMware является не только более безопасной, нежели VMware Server, но и более настраиваемой и гибкой. Название виртуального устройства «виртуальный коммутатор» может ввести в заблуждение специалиста, настраивающего виртуальную сеть на базе VMware Server в рамках виртуальной инфраструктуры VMware, создав потенциальную угрозу безопасности. Необходимо внимательно читать документацию компании VMware, чтобы не попасться в ловушку предположений.
Помните виртуальные и реальные устройства могут функционировать по-разному!