Tuesday, September 04, 2007

Using VMware for Network Security Monitoring

While teaching last week I learned that recent versions of VMware Server (I used 1.0.2) no longer act like a hub. Doing some quick testing this morning with three VMs, I told VM 1 to ping VM 2 while VM 3 watched. I learned VM 3 cannot see VM 1 ping VM 2 when using bridged, host-only, or NAT networking. The host OS can see traffic on the bridged interface, /dev/vmnet1 (host) and /dev/vmnet8 (NAT).

This is important because it means you can't deploy a VMware-only monitoring lab. The only solution appears to be running sensor components on the host OS, watching the bridged interface, /dev/vmnet1 (host) and /dev/vmnet8 (NAT). I noticed that monitoring the physical bridged interface results in double packets, so only watching /dev/vmnet1 or /dev/vmnet8 seem like viable solutions for doing testing with VMs.

Does anyone have an opinion on this? Thank you.

9 comments:

eugenek said...

I think you're right. This is something that recently changed in VMware Server, so that virtual switches behaved more like real switches, and less like hubs. It was raised as a performance and security concern in the past.

The recommended way to monitor VMs is the way you described, from the host OS. If you use the non-free ESX Server, you can do more advanced things like configure virtual VLANs, etc.

By the way, have you seen NeuralIQ? They have some interesting concepts on monitoring VMs from the outside.

Jon Baer said...

Not that this may / may not be related but Ive been having all types of issues w/ Nmap on OSX since running VMware Fusion and pretty much any libcap app is having a real confusing time picking an interface. I was mainly interested in the lab type setup as well but don't think it's working out w/ the way it sets up. With FreeBSD or Fedora guests. Ive googled the issue w/o luck and interested in what you come up with (if it's related).

- Jon

Landon Lewis said...

With the SCADA Honeynet I use a virtual Honeywall to monitor traffic on a particular vmnet. Here's an image of how I set it up: wp-content/uploads/2006/11/honeynet.png

It works for the scenario I have and could work for a inline snort setup as well.

mechanix said...

may be it is time to switch to Xen, as virtualization platform?
combined with dynamips as cisco router simulator it is possible to build much more complicated and interesting scenarios and networks. Here is an article with some explanation on how to do it http://xgu.ru/wiki/Xenomips/en

Chris Buechler said...

Not sure about on Linux, but on Windows, VMware Server 1.0.3 acts the same as it and Workstation always have - each VMnet is acts like a hub, and bridged VMnets also pick up the host's traffic.

The latest Workstation 6 on Windows also behaves the same way.

I don't have a Linux VMware Server box handy at the moment, but I'll post back once I get a chance to try.

Matt said...

There's been rumors lately about 3rd party virtual switches for VMware ESX. For shops that use ESX extensivly, this seems like an opprotunity to get some of the visibility that Richard has been looking for.

Anonymous said...

Not sure with VMWare Virtual Server, but with VMWare ESX Server if you set the VLAN to 4095 you can see traffic on any VLAN while leaving the VLAN tags intact.

neovatar said...

Had the same problems and google pointed me to this blog.

I am running VMware server 1.0.4 build-56528 and have two openbsd VMs connected to vmnet1 (host-only) and was not able to see the ping traffic from host to VM1 on VM2.

The following steps fixed this:
1.) stop vmware server
2.) chgrp vmadm /dev/vmnet*
3.) chmod g+rw /dev/vmnet*

The UID which is used to run the VMs needs to be in the group vmadm.

Now the OS in the VMs is able to put the interface into promiscuous mode and see the packets for the other VM on the same vmnet network.

shinn said...

I guess you have to look into proprietary software like something from Tek-Tools for effecting vmware monitoring.