Virtualization for security
Vista of fluffy white clouds
Sometimes we don't really see what our eyes are viewing. That's true with your computer screen, and it's true in nature as well. Oh sure, we can say what we think we're seeing, but we're missing the big story such as the man behind the curtain, to recall a famous phrase from an even more beloved movie.
For instance, it's a beautiful day here in St. Louis. The temperature is warm but not hot, there's a breeze gently wending its way through our offices, and the sun is out but not blinding. A few clouds are drifting across the sky. All in all, a perfect spring day.
A few days ago, however, I stood on the front deck of my house and watched a line of angry gray clouds sprint across the sky heading northeast. There was literally a line of demarcation in the sky: on one side was the remainder of a blue sky, running as fast as it could to flee from the dark thunderstorm chasing it along. As I watched the storm approach, I thought about one of the most fascinating bits of weather trivia I ever heard: the weight of rain clouds in terms of elephants [ABC has unfortunately removed the 2003 news article - Ed.].
Every cloud is made up of moisture, of course. On a day like today, a single fluffy cloud contains about 550 tons of water. Your average elephant weighs about six tons, so that means that those happy spring clouds are equivalent to around 100 elephants.
A bigger storm cloud, more like the one I saw barreling into the area recently, is more like 200,000 elephants in terms of weight. That's quite a jump, and it's kind of humbling, funny, and awesome to think of 200,000 elephants stampeding across the sky.
No such emotions attach to the numbers associated with a hurricane, however. Instead of awe or humor, now we're talking absolute terror. Instead of 100 elephants, or even 200,000 elephants, the water in a hurricane is equivalent to 40,000,000 - yes, forty million - elephants. Forty million elephants in the sky, bringing destruction and fear. Forty million elephants.
Next time you look at a cloud, think about how many elephants are in it. You had no idea that a cloud was so massive, and no idea that a creature so huge and seemingly earth-bound can be used to understand something so apparently light and ephemeral, did you?
And that brings us to virtualization software. You don't necessarily see what's really there.
Virtualization software allows you to run multiple operating systems on one machine at the same time. Yes, that's a gross simplification, but let's keep things simple. If you're really interested, Wikipedia gives a good overview of virtualization that will help clear things up, or read the explanation offered by VMWare, one of the leading companies in this area.
I've been working with virtualization software for quite some time, and sometime watching and waiting until it became more widely usable. In the last few years there's been a tremendous growth in the virtualization options that computer users have available to them. Security people in particular tend to be very familiar with the technology.
VMWare. As far as I'm concerned, the king of the mountain was, and still remains, VMWare. You can pay for various versions of VMWare's software, and in my opinion they're worth it. In the last few months, however, VMWare has reduced the price for both its Player and now its Server to zero. Want to use VMWare on your Windows or Linux box to run other operating systems? Thanks to VMWare's actions, you have no excuse. And now it appears that VMWare has gotten its flagship software running on the new Intel-based Macs in the lab, and will hopefully be releasing the software sometime soon. Once that happens, an Apple Mac becomes the only machine able to legally run Mac OS X, Windows, and Linux at the same time, thus causing me to drool in anticipation.
Win4Lin. Win4Lin is for Linux users who want to run Windows on their boxes. Years ago I used to rely on Win4Lin to run Windows 98 inside Red Hat, Libranet, and K/Ubuntu, and it worked well. For Penguinistas who need Windows, Win4Lin might be the perfect option (although I've heard that Win4Lin Pro, which supports installing Windows 2000 and XP, isn't quite as robust as Win4Lin Classic, which only supports the Windows 9x line).
Xen. The object of a lot of attention, the open source and free Xen will undoubtedly show its face on more and more Linux distros as it matures. Since it's part of the kernel, performance is lightning fast.
Parallels. While Mac OS users are waiting for VMWare, they can try out Parallels Workstation, which is here and working now. Although the software has worked on Windows and Linux boxes for some time, it is the new support for Mactel hosts that has drawn a lot of attention in the last several weeks. Friends of mine are using it on their new MacBooks, and they report awesome speed, stability, and success.
Microsoft Virtual PC and Virtual Server. Microsoft purchased Virtual PC from Connectix since it was the leading tool at the time for Mac users to run Windows. Unfortunately, it always ran Windows slowly (since it was emulation, not virtualization, software); even worse, it doesn't work at all with the new Intel-powered Macs, and it's not clear if Microsoft is going to port the software or not. Virtual Server, however, is a different story. Also purchased from Connectix, Microsoft is making a big push with Virtual Server by recently announcing that it is now free. Even bigger, Microsoft will also support Linux installs under Virtual Server. Is that the sound of chattering teeth in Hades I hear?
Intel and AMD. The two chip vendors are building support for virtualization into their CPUs to make the technology easier to implement and faster to run. Called, respectively, Vanderpool and Pacifica, this bodes well for virtualization technologies.
There are others; if you want to know more, Wikipedia provides a nice comparison chart of the various software options you have.
Why get excited?
The broad trends in virtualization are clear: greater commoditization, cheaper prices, more options, better integration with hardware, improved performance, and wider availability and usage. It's that last trend in particular that I want to focus on, as it appears obvious to me that users of all three of the major operating system families - Windows, Mac, and Linux - are one day going to find virtualization software and support installed as a matter of course. Like a text editor or web browser, virtualization will be an expected part of an operating system. How's that going to affect security pros?
If you haven't started working with virtualization, now's the time to begin. In particular, if you have a machine of reasonably recent vintage running Linux or Windows, you should immediately head over to VMWare and download the free VMWare Player. Once it's installed, you can install and run pre-made operating system images (open source only, of course - you think Microsoft is going to make an image of Windows available for this?).
VMWare offers a Browser Appliance virtual machine, for instance, that's designed for safe and secure web usage, but you can download a huge number of different VMs for SUSE, Red Hat, K/Ubuntu, Debian, Fedora Core, Gentoo, FreeBSD, and OpenBSD. Even more interesting, there are VMs available that are designed to showcase software such as Asterisk, Bugzilla, TWiki, MySQL, Zimbra, and DB2. And even more interesting than that, you can find VMs for security programs such as the Still Secure Strata Guard IDS, the IPCop firewall, the SmoothWall firewall, and the Squid proxy. Trust me: for security folks like those reading this article, you're going to feel like a kid in a candy store.
That's with the free VMWare Player, which allows you to run VMs created by others. If you instead want to create VMs, you'll need to buy VMWare Workstation (around $175) or - and here's my tip of the day - spend $300 on the VMWare Technology Network subscription and get access to almost every bit of cool software the company has to offer, for every platform they support. Once you have VMWare Workstation on your Linux or Windows machine (and soon Mac), you can create as many VMs as you'd like, and run as many at one time as your system can handle (the more RAM and faster CPU, the better).
Think about it: create a VM of Windows XP similar to what your users have installed, and then use that image to test new software, policies, and methods. Make a mistake or run into a problem? Either roll back to an earlier version of the VM, or just blow it away and copy over a backed-up copy of the original image. Want to experiment with Linux or any of the cool software tools coming out all of the time, like Zimbra or Asterisk or TWiki? Just create a VM, or download a VM that someone else has already created and start modifying it to suit your interests. How about a honeypot for your network? Rather than sacrifice a machine, use a VM instead. The list goes on and on, and I fully expect that many of you smart readers will list other good uses you already have for VMs in the Comments section below.
Virtualization for ordinary users
It's not just the computer guys who will benefit from the increased usage of virtualization technology, however - it's also the ordinary users. Mike Danseglio, a Microsoft program manager in the company's security group, recently had this to say at a security conference: "When you are dealing with rootkits and some advanced spyware programs, the only solution is to rebuild from scratch. In some cases, there really is no way to recover without nuking the systems from orbit." So it's come to that. Everyone reading this knew it all along, but there it is in black and white - if a Windows machine gets infected, wipe it and start again from a baseline install. Virtualization, however, makes that easy, affordable, and quick.
I've been advocating it for years: put Linux on everyone's computer in your organization. Start with a secure base. I'm talking about a stripped down distro, with little more on it than the kernel, the shell, and whatever X, GTK, or QT libraries your virtualization solution requires. On top of your Linux install, install your virtualization software and then the Windows du jour. Set things up so that on boot, Win4Lin or VMWAre (or whatever else you're using) loads by default and then immediately loads Windows in full-screen mode. Trust me: your users won't even realize that they're not "really" running Windows. To them, they see Windows, they're using Windows, all the software they expect is right there, and everything works just like normal.
Underneath, however, your virtualization software, coupled with the powerful networking ability of Linux, will make your life infinitely easier. If a you receive a phone call that a problem has developed on Bob's "Windows computer" in legal, just use SSH to run a script that closes the virtualization software, blows away or backs up the damaged Windows image so that you can review it, and then copies a master copy of the Windows VM from your server. In just a few minutes Bob will be back up and running, and he'll never know how easy you have it.
To me, this is a no-brainer. It's easier all around, it's more secure, and it's a simple way to get a handle on the horrendously complicated situation most organizations find themselves in as they try to manage a network of vulnerable Windows machines. Give the software and technologies I've mentioned in this article a try, and I think you'll find that they'll become integral tools in your security toolkit. As for me, I'm going to head outside for a little walk. It's a gorgeous day, and I feel like breathing in the air, hearing the world change around me, and looking up into the sky above St. Louis to look for some elephants.
Scott Granneman is a senior consultant for Bryan Consulting Inc. in St. Louis. He specializes in Internet Services and developing Web applications for corporate, educational, and institutional clients.
This article originally appeared on SecurityFocus
Copyright © 2006, SecurityFocus