Slashdot Mirror


Virtualization Decreases Security

ParaFan writes "In a fascinating story on KernelTrap, Theo de Raadt asserts that while virtualization can increase hardware utilization, it does not in any way improve security. In fact, he contends the exact opposite is true: 'You are absolutely deluded, if not stupid, if you think that a worldwide collection of software engineers who can't write operating systems or applications without security holes, can then turn around and suddenly write virtualization layers without security holes.' de Raadt argues that the lack of support for process isolation on x86 hardware combined with numerous bugs in the architecture are a formula for virtualization decreasing overall security, not increasing it."

340 comments

  1. Uh oh by $RANDOMLUSER · · Score: 5, Funny

    Theo de Raadt asserts...
    CAUTION: flame war ahead.
    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    1. Re:Uh oh by Anonymous Coward · · Score: 4, Funny

      CAUTION: flame war ahead. No there isn't! How dare you say that?? F-you! YOU GO TO HELL AND YOU DIE!!!
    2. Re:Uh oh by Chas · · Score: 0, Flamebait

      Yep. As with everything else Theo does, it's starts out with "ass".

      --


      Chas - The one, the only.
      THANK GOD!!!
    3. Re:Uh oh by Anonymous Coward · · Score: 1, Interesting

      We should put Theo and Daniel J. Bernstein (DJB) and see who survives. These so-called 'visionaries' and have a hard time forming an argument without degrading the argument with words like 'stupid'. It's a real shame that men like these are considered leaders the Free Software movement.

      After reading vitriolic posts by these two fools, RMS doesn't seem all that bad.

    4. Re:Uh oh by Anonymous Coward · · Score: 0

      These so-called 'visionaries' and have a hard time forming an argument without degrading the argument with words like 'stupid'. It's a real shame that men like these are considered leaders the Free Software movement.


      At least they can form coherent sentences.

    5. Re:Uh oh by oyenstikker · · Score: 4, Insightful

      I don't think anybody considers DJB a leader of the Free Software movement.

      They consider him a brilliant man, and excellent programmer, and generous to let people download his code. They consider him a hero for taking on and beating the US government. They consider him a jerk. I've never heard anybody call him a leader of the Free Software Movement. I've never even heard his license-free software to be considered Free Software.

      As an aside, many people call him a jerk for his style of writing information and documentation. I had to install a DNS server, and I found his you-must-be-a-moron-so-I-will-explain-everything-in-very-simple-terms documentation very informative, clear, and helpful. The security advantage is nice, but to me, tinydns' greatest advantage was the DJB's documentation.

      --
      The masses are the crack whores of religion.
    6. Re:Uh oh by xorbe · · Score: 1

      This guy should not operate in a PR capacity at all!

    7. Re:Uh oh by XenoPhage · · Score: 4, Insightful

      We should put Theo and Daniel J. Bernstein (DJB) and see who survives. These so-called 'visionaries' and have a hard time forming an argument without degrading the argument with words like 'stupid'. It's a real shame that men like these are considered leaders the Free Software movement.

      After reading vitriolic posts by these two fools, RMS doesn't seem all that bad. I disagree. He seems to call it like it is. And I would agree that anyone deluded enough to think that adding another layer to the, already complex, PC model increases security is just stupid. Sure, it may be that they are not well versed in the inner workings of both the hardware and software, but does that make their assertion any more correct? And besides, he's on a mailing list where the majority of the readers should be close to his level of knowledge.. He may not be the most tactful guy in the world, but he's a hell of a lot smarter than most...

      I've been on the fence about virtualization for a very long time now. Sure, it's quite convenient to install VMware, load up a guest OS, and tinker with new features. But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all. And the marketing teams are incredibly good at making people believe that by installing their virtualization software, you'll suddenly have a bunch of "virtual" servers with the same capabilities as a single server. Sure, they all have the same capabilities from an OS standpoint, but performance isn't going to be anything close to a standalone server..

      And as far as security goes, it's nonsense. Ok, so I install 5 copies of RHEL 5.0 on my virtual server. If the virtualization software itself is attacked and compromised, all 5 servers go down. If an OS level attack is successful, then all 5 virtual servers are likely vulnerable because it's an OS level attack. The only security "benefit" I can see is if a single virtual server is compromised through something like a web application. That application may not exist on the other virtual servers, so they're "safe".. However, once you get into that one server, DDoS attacks aren't far behind. At the very least, you'll take up resources and you can potentially impact the operation of the other virtual servers.

      I'll stick with standalone servers for now.. At least until there's a better solution, of which I don't see one coming anytime soon...
      --
      XenoPhage
      Technological Musings
    8. Re:Uh oh by Anonymous Coward · · Score: 2, Insightful

      TdR also asserts that SMP makes the system less secure ... and he is right. Most new functionality does.

      It is sad that he doesn't acknowledge that the larger your trusted code base the less secure you are.

    9. Re:Uh oh by Anonymous Coward · · Score: 0

      Why is this modded funny? It should've been modded insightful.

    10. Re:Uh oh by CrazedWalrus · · Score: 4, Informative

      The fact is that very little hardening is typically done on the inside of the organization. A lot of organizations have the hard crunchy outside with a soft chewey center. (Don't remember who I heard make that analogy, but it's apt.) Most IT departments seem to have hardened servers at the border, but the inside is run-of-the-mill software and hardware. What this means is that maybe virtualization isn't great for the border proxies and firewalls, but it probably fits right into the controlled chaos on the inside, where nothing is especially secure anyway.

    11. Re:Uh oh by kyofunikushimi · · Score: 1

      ...But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all...

      Ah, but it probably does save a few thousand on hardware costs, which tends to be more important to the head honchos (who decide what checks get signed) than the possibility of being the victim of an exploit that might not ever be discovered. Cost savings is probably the number 1 reason virtualization is as popular as it is.

      --
      oo
    12. Re:Uh oh by Bill_the_Engineer · · Score: 4, Insightful

      I've been on the fence about virtualization for a very long time now. Sure, it's quite convenient to install VMware, load up a guest OS, and tinker with new features. But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all. And the marketing teams are incredibly good at making people believe that by installing their virtualization software, you'll suddenly have a bunch of "virtual" servers with the same capabilities as a single server. Sure, they all have the same capabilities from an OS standpoint, but performance isn't going to be anything close to a standalone server..

      Performance will take a hit from the overhead involved, but availability should increase. Most server applications don't fully utilize the CPU anyway, so sacrificing some cycles to run the apps in a virtualized environment is not really a big deal. Where virtualization shines is availability. If a server is malfunctioning or overburdened, the virtualized environment can migrate to another server without the server clients knowing this has taken place (other than some latency caused by the migration). This is actually the coolest part of this technology.

      I never thought about using virtual servers to increase security. Except for running windows within Mac OS X, I really don't see virtualization making anything more secure.

      I think this is much ado about nothing. It is only here because Theo is getting upset...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    13. Re:Uh oh by Anonymous Coward · · Score: 0

      The world-famous asshat pronounces again! Nothing to read here, please move on...

      Captcha: aberrant - just like Theo...

    14. Re:Uh oh by fuliginous · · Score: 1

      I'm bored of Theo. Just seems he tries hard to have his name in lights. Which means I've stopped bothering with anything associated.

    15. Re:Uh oh by COMON$ · · Score: 2, Interesting
      But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all.

      What is the difference between the popular, "by 10 Dell 2650s and slap server 2003 on all of them" or "buy 1 2650 and slap 10 server 2003s on it?" Answer? nothing other than that with the virtual server you have a layer in between the hardware and OS, which 'could' offer greater security or worse. It is up in the air right now as in my opinion Virtual environments tend to put out patches faster than windows, keeping up with Linux. You say this yourself in your last paragraph.

      The fault as other posters mentioned, is not with the software, but with the security measures taken to protect the underlying Apps. Admins have been running multiple Apps on one server since the beginning of the computer era. Look at servers running Apache, samba, posfix...they are just as supseptable. Now with a VM environment you can at least split them apart and kill them. If you have actually used a VM environment like the VI clients that you get from VMware there are multiple features that actually give you a step up on traditional physical environments.

      In the end it is a comfort game, if you are intelligent enough, VM environments can be waaaaay more secure than traditional bare metal installs. If you are not up on your game, you shouldnt be playing anyway. I aim for reliability and security, vs ease of use and support time. VM gives me a level of comfort with my network that I cannot get without VM.

      I dont know about other people in this forum but my threat to uptime is not hackers. It is user error (viruses, deleted files, massive e-mails) and proper maintainance schedules. I properly manage my firewall, keep my patches up to date and that takes care of enough of the "malicous user" problem to make me comfortable. Since switching to VM my uptime is through the roof, costs are about the same, maintainance is a bit more complex, and hardware issues are simple and rare.

      Of course what do I know I am just a biased vm user who graduated a long time ago from the winNT/redhat conspiracy theories.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    16. Re:Uh oh by COMON$ · · Score: 1

      actually in my shop it comes out about even so far...7K for enterprise licensing, buy a 30K server to house 15 servers that I could have bought for 2-3K a piece. The big plus for me is rackspace, and manageablilty, things like VMotion are phenominal products, not to mention not having to buy an expensive IP KVM so I can manage all my servers from one console. Snapshots and localized storage, not to mention managing drivers and upgrading hardware is a breeze.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    17. Re:Uh oh by COMON$ · · Score: 1

      I havent noticed all that much of a performance hit on my VMs. I run ESX and wouldnt put SQL or exchange on it but for webservers, fileservers, and dev servers.....it is just phenominal because as you put it, most apps done fully use CPUs anyway, especially with the hardware that is out there now adays.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    18. Re:Uh oh by Anonymous Coward · · Score: 1, Interesting

      Da thing is that if your virtualization software is written in Java it is more secure than if written in C.

      Also, you should be encripting the hard drive or they make take it with them. But that doesn't happen in a non virtualized world, so why care?

      I mean, of course there are holes. But there are also holes if you don't virtualize.

      Maybe it would be preferable to just encrypt the credit card numbers, just in case somebody walks out with the disks. I mean this has happened before.

    19. Re:Uh oh by dragonmantank · · Score: 1

      I've been on the fence about virtualization for a very long time now. Sure, it's quite convenient to install VMware, load up a guest OS, and tinker with new features. But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all. And the marketing teams are incredibly good at making people believe that by installing their virtualization software, you'll suddenly have a bunch of "virtual" servers with the same capabilities as a single server. Sure, they all have the same capabilities from an OS standpoint, but performance isn't going to be anything close to a standalone server..
      We've been running VMWare here at work for over a year now. What it let us do is consolidate a bunch of aging servers into two machines. We had no delusions of security (I and coworkers head to SANS every year and do what we can to stay abreast of security, and I got to listen to the VMWare Escape talk that IntelGuardians gave). Performance on modern hardware is not really an issue anymore. Granted, the virtual file server I built won't be as fast as the octa-core, 32gb RAM ESX server it is running on... but do I need it to be? Now, if you're dumb enough to run ESX or any VM software on a single CPU system, that is your own fault.

      And as far as security goes, it's nonsense. Ok, so I install 5 copies of RHEL 5.0 on my virtual server. If the virtualization software itself is attacked and compromised, all 5 servers go down
      Not going to argue with you there. Without extra software like VMotion or external SANs to store the VMs on, if the server goes down for any reason (like, say, updating ESX itself), they are all down.

      If an OS level attack is successful, then all 5 virtual servers are likely vulnerable because it's an OS level attack.
      So is the room full of RHEL 5 installs. Once you've compromised a server you can bet that the company you've gotten into is running more boxes with the same OS. This is a bad analogy that people always bring up to show the low security of VMs when this type of attack has nothing to do with VMs.

      However, once you get into that one server, DDoS attacks aren't far behind. At the very least, you'll take up resources and you can potentially impact the operation of the other virtual servers.
      Out of all the VMs that we have set up, none of them have come close to DDoSing the server it is on. VMware lets you specify the amount of RAM that a VM has access to as well as forcing a VM to a specified CPU. Even without any extra tweaking, VMware makes it hard to let you DDoS a box. Let me say again though, I know fully that VMs don't provide any extra security. When you've seen a VM escape in person, you realize real quick on what is to come. Virtualization is for convenience only, not security.
    20. Re:Uh oh by styrotech · · Score: 1

      Just seems he tries hard to have his name in lights.


      How so? Some idiot on the OpenBSD mailing list gets into an argument with a bunch of people that know way more than he does, then this counts as Theo "trying hard to get his name in lights"?

      I sounds more like posting a Theo flame is a guaranteed way to get a Slashdot story - just like critising Apple or Linux on a tech site intentionally drives ad traffic. It's just trolling.
    21. Re:Uh oh by Corwn+of+Amber · · Score: 1

      There isn't, because I plop in just to say that, in my opinion, the guy who writes the most secure OS in the world does know what he's talking about.

      I agree with him on one point, though: it is possible to write 100% bug-free programs. Maybe you can't prove they are correct, but I know for a fact that you can write code that simply can't crash without changing the running code from outside. Fault handling at every block, can't beat that. Check every input, verify each operation, check data between disk and memory, verify every write, write code that checks the data sanity, code that checks that code, and so forth. Ah, yes, that's heavy bloat. But it is bug-free. (Don't come saying it becomes too complex, please. It's so self-evident! Check, check, check. If there are design errors, they appear at checking eventually :-)

      --
      Making laws based on opinions that stem up from false informations leads to witch hunts.
    22. Re:Uh oh by drsmithy · · Score: 1

      I've been on the fence about virtualization for a very long time now. Sure, it's quite convenient to install VMware, load up a guest OS, and tinker with new features. But to load up a server with multiple instances of the same operating system is ludicrous. It certainly doesn't scale well at all.

      Actually, it scales exceptionally well. When 8-core, 32G RAM Dell 1955 blades are cheap as chips, and Sun's x4450 has 16-cores and 128G RAM in 2U, I can "fit" anywhere from 8-42U worth of low-end 1U servers in 0.7 - 2U. That's a *massive* saving in physical resources (not just the rack space, but also network, power and KVM connections, not to mention power usage) plus improvements in reliability (fewer points of physical failure, and low-end 1U servers typically lack things like redundant power) and purchase cost.

      And the marketing teams are incredibly good at making people believe that by installing their virtualization software, you'll suddenly have a bunch of "virtual" servers with the same capabilities as a single server. Sure, they all have the same capabilities from an OS standpoint, but performance isn't going to be anything close to a standalone server..

      When you only need the performance equivalent of, say, a 1Ghz P3 (or less), you don't *need* all the power (or even half of it) of even the lowest-end new machine on the market today.

      And as far as security goes, it's nonsense. Ok, so I install 5 copies of RHEL 5.0 on my virtual server. If the virtualization software itself is attacked and compromised, all 5 servers go down. If an OS level attack is successful, then all 5 virtual servers are likely vulnerable because it's an OS level attack. The only security "benefit" I can see is if a single virtual server is compromised through something like a web application.

      The security (plus reliability and maintenance) benefit exists because it allows you to isolate a single service to a single "server" (ie: VM). From that, you get the advantage that a compromise (outage/maintenance window) on that one server doesn't affect any other services.

      Of course, you *do* have the problem that a single VM host problem can knock out multiple VMs, but that's why you have a farm of VM hosts to migrate VMs between (and, depending on your uptime requirements, VMs on multiple hosts clustered together).

      However, there is an additional risk that the extra exposure via the VM host, or a bug/flaw in the VM software, add more vulnerability to the VMs (over and above what they would have on physical hardware). Whether or not that (very small, IMHO) additional risk outweighs the benefits, is a decision you have to make yourself. Personally, I don't think it even comes close.

    23. Re:Uh oh by Anonymous Coward · · Score: 0

      This troll is so amazing that I had to mod it up.

    24. Re:Uh oh by shotgunefx · · Score: 1

      The issue aside, no matter how smart you are, there is still no reason to be a dick about things. I don't recall reading any articles about what an ass Einstein was.

      --

      -William Shatner can be neither created nor destroyed.
    25. Re:Uh oh by j-cloth · · Score: 1

      Unless your SQL and Exchange are clipping on a physical box I wouldn't be too concerned. I've got several SQL Servers (one running pretty heavy) a couple exchange servers and a whack of Oracle boxes on ESX. No issues at all and the performance is better than it was before we migrated them (granted, the underlying hardware is more powerful)

    26. Re:Uh oh by fuzznutz · · Score: 1
      You only really have one valid point in all this:

      If an OS level attack is successful, then all 5 virtual servers are likely vulnerable because it's an OS level attack.

      Which is no worse than 5 separate pieces of hardware. No gain, no loss...

      The only security "benefit" I can see is if a single virtual server is compromised through something like a web application. That application may not exist on the other virtual servers, so they're "safe"

      Still similar to running 5 separate pieces of hardware. Throttling CPU usage between virtual machines will prevent a cracked one from affecting the others. Again, no loss, no gain...

      If the virtualization software itself is attacked and compromised, all 5 servers go down.

      This is really the only valid point. Right now, it does not seem to be an issue. Virtualization does contain many benefits aside from security that I would argue override this concern presently. And being able to create non-persistent state images ala Deep Freeze is in itself a security advantage as well as has testing benefits.

    27. Re:Uh oh by XenoPhage · · Score: 1

      The issue aside, no matter how smart you are, there is still no reason to be a dick about things. I don't recall reading any articles about what an ass Einstein was. That's only because he was a dick on such a higher level, no one understood he was actually being a dick to them. :)

      I agree, in principle.. But we're talking about another world here. How many "laymen" were able to directly interface with Einstein on an almost daily basis? There were no mailing lists, etc. back them. So, he only had to deal with it once in a while, if ever. It doesn't excuse the behavior, but it may explain it somewhat.
      --
      XenoPhage
      Technological Musings
    28. Re:Uh oh by fuliginous · · Score: 1

      It's the over all accumulation. For example so recently all the GPL Linux Kernel people are thieves milarky over the wireless driver. Does he discuss it with any experts that actually are professionals in the law and are offering to talk about it. No, just keeps shouting.

      That contrasts with Linus who yes comes out and says things. But (and I'm not much for liking Linus) his tone though seemingly comparably rude (confrontational) at times sets it down as a challenge to those he is confronting and accepts them giving him the evidence to make him change his mind.

      So to me the two approaches contrast to say one likes hearing their own voice the other speaks out when they consider it necessary but otherwise shuts up and gets on with things. And the shutting up and getting on with things tone seems to be the culture (to me as an observer) of the Linux kernel development high profile names.

      And I'm not being hard about this, just saying that's how it seems to me. Like the approach described of Linus if I see the evidence I'll change my mind. I started of a while back liking what Theo had to say but the more I heard the less I liked and the more bored I got with his opining. He's made sense at times I happily admit.

  2. History teaches once again... by jellomizer · · Score: 1, Interesting

    The Irish Potato Famine happened because Ireland was growing a small range of species of potato.
    A virus hit the Potato and it spread so most of the potato's died thus causing the famine.
    Other Areas had the same virus but it didn't cause a Famine because their stock was more diverse.
    It wasn't because the other guys potatoes were immune to all virus or they were a heartier bread, but
    because they had a wider diversity of product.

    The same thing with Virtualization, each VM will not be completely secure and will have holes in it but
    spreading will be reduced because only a smaller portion of application will use that OS to virtualize.
    A Linux VM OS, a BSD VM OS, a Windows VM OS... Sure there will be security problems and patching and fixing
    the problems in the Virtual OS will need to be resolved... But if there is an outbrake you will basicly loose your
    VM application and perhaps some other ones that you may have running at the same time that uses the same OS. But now
    If your OS Gets infected all your Apps are dead.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:History teaches once again... by micromuncher · · Score: 2, Informative

      You missed the part about the solution; eating ones children. :-)

      --
      /\/\icro/\/\uncher
    2. Re:History teaches once again... by jellomizer · · Score: 1

      It is not sustainable. It takes more calories to produce a child then you get from eating them. It may only fix the problem in the short term, but in the long term you are better off putting them to work plaining new crops.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    3. Re:History teaches once again... by Bob-taro · · Score: 3, Informative

      The Irish Potato Famine happened because Ireland was growing a small range of species of potato.

      The same thing with Virtualization, each VM will not be completely secure and will have holes in it but spreading will be reduced because only a smaller portion of application will use that OS to virtualize.

      I don't think that analogy applies here. I think TA's point is that the hypervisor itself may not be any more secure than the OSes it virtualizes. So now you're hypervisor OR the OS it's running may get hacked.

      --
      Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
    4. Re:History teaches once again... by jellomizer · · Score: 3, Insightful

      Well right now most flaws are threw Applications anyways. I can run Open BSD and still make an application that runs as root and have such a major security flaw that it will allow people to have full access to my system. At least with it being virtualized it will at least protect it from quickly spreading to my other Apps.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    5. Re:History teaches once again... by jcr · · Score: 1

      I think TA's point is that the hypervisor itself may not be any more secure than the OSes it virtualizes.

      I would say he's mistaken on that, simply because the hypervisor offers a far smaller surface area for attack.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    6. Re:History teaches once again... by mdielmann · · Score: 3, Funny

      It is not sustainable. It takes more calories to produce a child then you get from eating them. This assumes that you eat (only) your own children.
      --
      Sure I'm paranoid, but am I paranoid enough?
    7. Re:History teaches once again... by Chris+Burke · · Score: 4, Insightful

      The Irish Potato Famine happened because potato crops were the only thing they could grow on tiny plots of land in sufficient quantity to both pay their English Lords and feed themselves (the latter being the optional part), so when the potato crop failed they didn't have any other food. Other areas had a more diverse potato crop, but more importantly they had other crops entirely and thus even had all their potatoes died, it wouldn't have caused a famine (or at least not anywhere near the scale of the Great Famine) because they had other food to eat. The Irish had no other food source by design of the English, thus causing mass starvation.

      There's still a lesson in diversity and computer security to be learned here. But it includes the harsher lesson that human leaders often don't care about the necessity for diversity and the cost to security (and thus the IT department), and can impose a homogeneity that is even worse than an IT department that just didn't consider diversity to be important.

      --

      The enemies of Democracy are
    8. Re:History teaches once again... by alan_dershowitz · · Score: 5, Informative

      You're missing the point. Your virtualization product is an application, which weakens the security of the OS running under it. So now you can have attacks from both sides. As Theo says, now an OS crash (inside the VM) can become an attack on the host system, and application attacks on the VM can become an attack on the OS running in the VM.

      His position has many facets. As I understand it:

      * programmers make buggy code, and now programmers are programming virtual hardware
      * the hardware they are emulating (PC architecture) is a nightmare, they have to do crazy, unsafe crap to implement it.
      * application flaws in the VM can compromise the guest OS.
      * OS flaws in the guest OS can potentially compromise the host OS.
      * virtualizing hardware is inherently less secure than the physical segmentation of using actual, separate machines, so when you consolidate many machines onto a VM system you have a net loss in security.

    9. Re:History teaches once again... by Anonymous Coward · · Score: 0

      a small range of species of potato.

      I think it was a single species of potato, with a small range of genotypes. They mostly came from a small number of potatoes brought over from America, thus a small number of genotypes.

      Small distinction.

    10. Re:History teaches once again... by alan_dershowitz · · Score: 2, Insightful

      ack, I didn't address your specific example. Theo's position here is: now, instead of an exploitable app and an exploitable OS, you have two exploitable OS (guest and host) and two exploitable apps (your app and the VM.) Making this worse is that the the exploitability of each individual piece is amplified by the potential promoting of an OS crash into an application exploit (VM.)

    11. Re:History teaches once again... by _Sprocket_ · · Score: 2, Insightful

      I don't think that analogy applies here. I think TA's point is that the hypervisor itself may not be any more secure than the OSes it virtualizes. So now you're hypervisor OR the OS it's running may get hacked Actually... the gist of argument seems to go deeper. The point being stressed is that the underlying hardware can't provide sufficient separation so its unwise to expect either the host kernel / hypervisor or guest OS to do it. Buggy OS implementations seems to be more historical proof than the issue in itself.

      Keep in mind that the base debate is whether a virtualized environment is "more secure" or not. I understand where the initial idea is coming from; the ability to provide various groups with their own virtual host to configure / jeopardize. But I must admit I haven't seen anything that convinces me one box with two virtualized hosts is any more secure than two seperate hosts on two seperate boxes. The only advantages to be found is in dealing with cost and/or utility of hardware.
    12. Re:History teaches once again... by somersault · · Score: 1

      Security by obscurity, baby!

      --
      which is totally what she said
    13. Re:History teaches once again... by DrSkwid · · Score: 2, Informative

      > The Irish Potato Famine happened because Ireland ...

      You missed the part where the World's richest nation continued to export other foodstuffs from Ireland, refusing to help.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    14. Re:History teaches once again... by darthflo · · Score: 1

      It doesn't really matter how big the hypervisor's attack surface to the outside world is, as long as a guest running on top of it is in any way able to compromise it. If this is the case (and I don't really doubt it), a hole in one of your guests and the hypervisor will allow an attacker not only to compromise all identical guests but all guests to which said hypervisor has access to. This has the potential to trade whatever efficiency gains virtualization provides for complete lack of control over the whole network from two small vulnerabilities.

    15. Re:History teaches once again... by jours · · Score: 1

      > So now you're hypervisor OR the OS it's running may get hacked

      The avenues of attack against a hypervisor number far less than those against a guest OS...and should be zero behind a proper perimeter.

      One thing no one mentioned in the article is that virtualization provides a great opportunity for intrusion detection. I haven't seen it implemented by anyone yet (admittedly I haven't been looking) but the concept at least allows for software running at the hypervisor level that could detect misbehaving or compromised guests. Surely something like that would be an increase in security since it would be running outside of the guest OS and not vulnerable to attack itself.

      --
      This sig intentionally left blank.
    16. Re:History teaches once again... by darthflo · · Score: 1

      Actually I think virtualization is somewhat able to undermine all advantages diversification has if (and only if) an attacker is able to not only gain access to one guest but also, through that guest, to the hypervisor itself. After that is done, no amount of diversity in your choice of guests will be of any help whatsoever.
      Using different hypervisors is a possibility, but there doesn't seem to be real possibility to both provide security and maximum usage of capacity.

    17. Re:History teaches once again... by the_B0fh · · Score: 1

      And the problem is that once your hypervisor gets owned, all your OTHER OSes are screwed as well, even those that are not potatoes.

    18. Re:History teaches once again... by davidwr · · Score: 1

      * programmers make buggy code, and now programmers are programming virtual hardware Real hardware is not without bugs. I'll concede real hardware likely has fewer bugs because the cost of patching is so much higher.

      * the hardware they are emulating (PC architecture) is a nightmare, they have to do crazy, unsafe crap to implement it. Ok fine.

      * application flaws in the VM can compromise the guest OS. OK fine. The same goes for bugs in real hardware.

      * OS flaws in the guest OS can potentially compromise the host OS. If the guest OS and the underlying real hardware are well-designed and bug-free this won't happen. It's much better to say OS flaws in the guest OS combined with design or implementation flaws in the VM, host OS, and/or real hardware can potentially compromise the host OS.

      * virtualizing hardware is inherently less secure than the physical segmentation of using actual, separate machines, so when you consolidate many machines onto a VM system you have a net loss in security. It might be somewhat less secure but it provides enormous benefits.

      Ideally, a good engineer will consider all the pluses and minuses of a particular VM before deciding to change from pure hardware to a VM environment. In many cases, it will be obvious what to do.

      In the real world, a frazzled engineer on his 100th cup of coffee of the day will make an off-the-cuff decision. In the obvious cases he'll get it right. In the not-so-obvious cases hopefully he'll be right more often than wrong.
      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    19. Re:History teaches once again... by Wavicle · · Score: 4, Insightful

      I think TA's point is that the hypervisor itself may not be any more secure than the OSes it virtualizes.

      Actually Theo's argument was that software engineers can't write an OS without security holes, therefore they can't write a hypervisor without security holes.

      The argument is, of course, full of shit. The hypervisor in question, Xen, is 50,000 lines of code. Compare this to the linux kernel which is about 6 million lines of code or Vista which is said to be 10s of millions. Theo also drags out his favorite attack about page protection. He is known for attacking a "vulnerability" in a C2D code segment limit/page accessed issue (AI90) as being "assuredly exploitable" in OSes other than OpenBSD, even though nobody has been able to propose a way to exploit it.

      The problem with Theo attacking things is that he is so well respected in BSD-land that his word is taken for granted. Sometimes he gets it wrong, but unless someone equally high up wants to spend the time to rebut his ranting (a lot of work for no gain) everybody accepts what he says.

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    20. Re:History teaches once again... by pionzypher · · Score: 1

      the hardware they are emulating (PC architecture) is a nightmare, they have to do crazy, unsafe crap to implement it.
      Question, (and forgive my ignorance of the actual implementation of VMs) but would this not be an opportunity for an improvement? It would be a huge undertaking to be sure, but why emulate x86? If an architecture specifically for VMs were developed that did away with the craziness of x86 and streamlined to be more efficient and secure, would that not be worthwhile? I can run linux on sparc or (motorola) mac hardware, would a standard HyperVisor architecture be much more of a stretch?

      This definitely doesn't address bugs in the VM itself, nor applications running in the VM. But we could at least take one of the weak points out of the system if it were designed properly.
      --
      I'll believe in corporations having personhood when Texas executes one... - advocate_one
    21. Re:History teaches once again... by mdarksbane · · Score: 2, Insightful

      It's an interesting fact that Ireland was still a net EXPORTER of food during the potato famine, most of it going to England. Politics kills more people than crop failures.

    22. Re:History teaches once again... by Anonymous Coward · · Score: 0

      The Irish Potato Famine happened because Ireland was growing a small range of species of potato. A virus hit the Potato and it spread so most of the potato's died thus causing the famine. Really? I always thought it was because the Frito-Lay company opened a factory there and was exporting all the potatoes as chips.
    23. Re:History teaches once again... by the_B0fh · · Score: 1

      your last bullet is unfinished - Theo did specifically say his points were to x86 virtualization. Mainframe LPARs are considered quite good.

    24. Re:History teaches once again... by afidel · · Score: 2, Insightful

      virtualizing hardware is inherently less secure than the physical segmentation of using actual, separate machines, so when you consolidate many machines onto a VM system you have a net loss in security.

      And you know what, I don't freaking care about that. If I can trade a little theoretical attack surface for real world gains I'd be foolish to not consider it. I mean we do it every day when we use normal OS's instead of something like Trusted Solaris, so why not do it to see significant gains. The gains are reduced server count, reduced electricity use, reduced physical plant, etc. Those have significant direct and indirect benefits (lowered cost and less environmental impact primarily). I guess if you're a security zealot you wouldn't even consider the tradeoff, but for those of us in the real world it's probably not a tough sell.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    25. Re:History teaches once again... by crush · · Score: 1

      Not to forget that huge quantities of corn (not the same thing as US corn, but what we would call wheat) were exported from Ireland from the estates of the English absentee landlords while the population starved. An extremist "laissez faire" freemarket ideology was used at the time to explain the situation (especially by the eminent philospher Burke) similar to the approach taken across several centuries of famines in India by the English Imperialists). These market experiments on millions of starving people were directly justified by Adam Smith's ravings in _The Wealth Of Nations_ "famine has never arisen from any other cause but the violence of government attempting, by improper means, to remedy the inconvenience of dearth". Lots of good stuff about this (from an ultra-left perspective) in Mike Davis' _Late Victorian Holocausts_

      Anyway, it pisses me off to see statement's like Theo's. Your own lesson/analogy is much more exact and appropriate.

    26. Re:History teaches once again... by coldmist · · Score: 1

      Although the potatoes died because of the blight, the famine was caused by the corn laws:

      http://www.fee.org/publications/the-freeman/article.asp?aid=2019

      The situation of Irish tenant-farmers explains how the failure of a single crop could devastate an entire country. Since most of the farmland in Ireland belonged to a few wealthy English and Irish landowners, the majority of the Irish agricultural population did not own land and had to trade their labor for the use of a dwelling and a garden plot. Although some of these tenant-farmers paid rent by raising and selling a pig, many worked in their landlords' fields of oats, rye, or other grains. For their own families they planted only potatoes, which cost little and yielded more food per acre than most other crops (Woodham-Smith, p. 35). Also, potatoes thrived on this rented land: ground unfit for the landowners' grain or animals (Green, p. 103).

      For most rural laborers, then, their potato crop was the only source of food. Tenant-farmers lived in constant danger of famine, not only because they depended upon a single article of food, but also because the potato "in its very nature [is] peculiarly liable to fail in certain seasons" (O'Brien, p. 223). The crisis that began in 1845 was not Ireland's first potato famine. An 1851 census reported that the potato crop had failed in some degree at least 24 times since 1739 (Woodham-Smith, p. 38). Every summer more than two million people went hungry until the new crop came in (Woodham-Smith, p. 165). So the failure of the potato crop yearly from 1845 to 1851 greatly increased the misery of a country already burdened by extreme poverty.

      Although historians emphasize Parliament's free market stance, the best way to describe the British economy of 1845 is that it was a fusion of free market principles and certain govern mental interventionist measures. Parliament's critics assert that free market policies increased the ill effects of the famine. Yet evidence shows that government intervention in the form of the corn laws, the navigation laws, and the poor laws intensified Ireland's difficulties.

      When the potato crop failed, Parliament adhered to free market principles by refusing to close Ireland's ports. Critics insist that Parliament should have prevented the export of other crops, arguing that the Irish people should have benefited from Irish produce. However, not only did those crops rightfully belong to the landowners, they were also needed to feed English laborers (O'Neill, p. 257). If Parliament had closed Irish ports, famine, rather than being prevented, would have been transferred from Ireland to England. The suggestion that the government buy Ireland's produce and distribute it among the Irish would have solved the problem of paying the landlords (Woodham-Smith, p. 75), but not the problem of feeding the English laborers.

      Yet the corn laws and the navigation laws show that Parliament was less dedicated to the free market than many historians would indicate (O'Brien, pp. 265-6). The corn laws, passed to protect British agriculture, kept the price of grain artificially high by imposing tariffs on imported grain. The navigation laws protected the British shipping industry. Under these laws, only British ships could carry goods into British ports.

      Such protectionist measures worked against both the English laborer and the Irish tenant- farmer. The corn laws increased the price that the English laborers paid for food. And while thousands of Irishmen were dying of starvation, food that private societies in the United States had sent to distribute to the Irish could not go directly to Ireland. It first had to be transferred to a British ship, increasing the cost of aiding the needy and lengthening the time that starving people had to do without food (O'Brien, p. 266). The combination of the corn laws and the navigation laws made it unprofitable for foreign markets t

      --
      Don't steal. The government hates competition.
    27. Re:History teaches once again... by bertybassett · · Score: 0

      It wasnt a virus, it was a fungus.....
       
      Yep, a plain old fungus that brought Windows to its knees (or perhaps it was on its knob, I dont remember).....

      --
      Wibble-Wobble, Wibble-Wobble, jelly on a plate
    28. Re:History teaches once again... by Sloppy · · Score: 1

      think TA's point is that the hypervisor itself may not be any more secure than the OSes it virtualizes

      This is what I don't "get." Don't you need a hole in the OS before the hypervisor can be attacked? i.e. Suppose I have non-root access on an OpenBSD DomU. Don't I need to escalate my privs on OpenBSD, before I can even start to attack Xen?

      If there's some way for a non-privileged user to attack Xen, I'd think the same approach could be used to attack hardware or at least the OS itself. What am I missing?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    29. Re:History teaches once again... by thePowerOfGrayskull · · Score: 1

      On the other hand, if a security hole is found in the virtualization layer itself, then all of your guest OS's are exposed, and at higher risk than they would be as discrete servers.

    30. Re:History teaches once again... by value_added · · Score: 4, Funny

      There's still a lesson in diversity and computer security to be learned here.

      Indeed. Implementing proper security is no small potatoes.

    31. Re:History teaches once again... by Anonymous Coward · · Score: 0

      Utter garbage. Try learning some history, it had nothing to do with other countries, just Ireland and its crops and the potato virus.

    32. Re:History teaches once again... by Just+Some+Guy · · Score: 2, Insightful

      Those have significant direct and indirect benefits (lowered cost and less environmental impact primarily). I guess if you're a security zealot you wouldn't even consider the tradeoff, but for those of us in the real world it's probably not a tough sell.

      I think his point was to make people aware of the tradeoff. He's telling them that those reasons are perfectly valid, but you should know what new risks you're exposing your systems to so you can make that decision with full knowledge. I do know people who equate VMWare with security, and that's just not true. He wants everyone to understand that.

      --
      Dewey, what part of this looks like authorities should be involved?
    33. Re:History teaches once again... by afidel · · Score: 1

      I still think he's wrong. I think for your average case the attack surface between two apps running on the same box is significantly higher than the attack surface of those same two apps running on separate VM'd OS's on the same physical machine. Sure your MOST secure option is to run them on their own physical servers, but that's just not financially or environmentally responsible if the apps are good candidates for running in a VM. I have many roles as a network administrator and security is just one of them. Theo's almost sole purpose in life is security to the point where it often blinds him to the whole problem. This is why techies often have such a problem with business people, they get so embroiled in edge cases and whatifs that they fail to look at the big picture of how to best serve the business. I'm not saying ignore security, I'm just saying look at it in the right framework.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    34. Re:History teaches once again... by Chris+Burke · · Score: 1

      I suppose that's true from some perspective, since Ireland was part of the United Kingdom and thus England wasn't "other countries". But it is you who needs to learn some history, since you obviously don't know a damn thing about how England ruled Ireland, and where the majority of Irish crops went.

      Hint: The Irish don't just love potatoes so much that given the choice they would still grow nothing else.

      --

      The enemies of Democracy are
    35. Re:History teaches once again... by nizo · · Score: 1

      Of course there is also the possibility that I am more likely to keep virtualized machines updated (since I can now update and test them without taking the server down) and I set them up so that when they restart they reset to a known "safe" state on the next startup; at least in these two cases virtualized machines would be safer. Treating virtualized machines as being identical to the same exact software installed directly on hardware isn't valid.

    36. Re:History teaches once again... by Obfuscant · · Score: 1
      His position has many facets.

      I think the part of the equation that TdR misses is that the issue is not black and white.

      If you are using virtualization to create multiple general-purpose servers, then perhaps your security is going to be worse than using individual hardware.

      If you are using virtualization to provide quasi-independent special purpose servers on one hardware platform, I think his argument is not so correct.

      I'm moving into virtualization to provide multiple limited-access special purpose servers on one piece of hardware that would be massive overkill were it to be the real host for any one of them. In my opinion, this increases security because:

      • Almost nobody is allowed to log in but me. The biggest lack of security is the user.
      • Almost nobody is allowed to log in but me. I don't need to care if someone needs a hole poked through the iptables for a VNC connection offsite, e.g..
      • Each server runs one specialized service, which I can lock down without having to worry about what other things need access. And whatever hole that service has, isn't on any other server.
      • I can create the first server, learn the specifics of that distro as far as security and access control, and clone it almost trivially once I have it locked down.
      • Full, complete, bootable backup is trivial, which makes it more likely. That applies even to Windows systems where complete backups really aren't. I am less likely to try to clean up a hacked server because I know that restoring it to the last backup state is also trivial.
      • In an environment where every ethernet line is switched, I can still monitor ALL traffic into and out of my virtual servers for intrusion detection.
      • I can trivially remove any hacked server from the net while still having a virtual console to it.
      • I can put operating systems that are closed source and poorly documented wrt open ports behind a NAT interface, so while it appears to the user (me) like it is on the net, it's a one-way connection and nobody from the outside can connect. (E.g., WinXP, NT, etc.)
      I think the short version of that is that administration of ten virtual servers is much easier than ten physical servers, and as such, mistakes that allow compromises are less likely, and when they happen, cleanup is much easier.

    37. Re:History teaches once again... by TemporalBeing · · Score: 1

      * virtualizing hardware is inherently less secure than the physical segmentation of using actual, separate machines, so when you consolidate many machines onto a VM system you have a net loss in security.
      It might be somewhat less secure but it provides enormous benefits.
      It's not a matter of might - it is inherently. Why? Because if your host OS gets compromised than all of your guests OSes are compromised. Yes, you can mitigate the risk down a little (e.g. guest OS's have to encrypt outgoing data, but that's full of extra overhead on top of it) so that the host OS cannot steal data; but they are non-the-less compromised as the host OS could just go and read their memory, fake input/output data, etc. and the guest OS has no way of knowing, nor any way to really be able to handle it.

      So when you would have before VM's just had one system compromised, you now have N systems compromised - where N is the number of guest OS's running in the VM's. I'd say that's a lot less secure.
      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    38. Re:History teaches once again... by alan_dershowitz · · Score: 1

      That's great and I agree, but the article is about people using virtualization for purported security benefits, and Theo de Raadt saying that it is actually less secure. If you're using virtualization to simplify administration and reduce costs, you are using it for its intended purpose.

    39. Re:History teaches once again... by LurkerXXX · · Score: 1

      Itaniam systems have a number of extra features for security.

      Have you bought any yet?

      Thought not.

      There are more secure hardware architectures out there. They just don't have the attractive prices of x86 hardware.

    40. Re:History teaches once again... by LurkerXXX · · Score: 1

      Yes, VM's let you consolidate machines so you can buy fewer, spend less on electricity, less on cooling, less on storage space. etc.

      All that's fine, but it has absolutely nothing to do with the current discussion.

      Some yahoo on the OpenBSD mailing list was trying to say VMs were more secure than hosting OS's on individual boxes. They aren't. Period. There are a lot of other reasons to use VMs (I do) but security is NOT one of them. Theo never said no one should use VMs, just pointing out that saying they increased security was very very very wrong.

    41. Re:History teaches once again... by Anonymous Coward · · Score: 0

      The virtualization layer itself does not add or improve security, but it does improve stability and operating system isolation. Security as a practice of application isolation can lead to better security in a virtualized environment.

      The value of Virtualization is the isolation of dissimilar applications to prevent one application from incapacitating the rest. From a life-cycle perspective, this allows you to upgrade and manage those environments independently of each other.

      Virtualization products from any of the major players have resulted in very stable environments. Host stability is inherently different from security, the ability to exploit guest systems through virtualization layers can be very difficult for the following reasons:

      - Direct access to the virtualization layer, if implemented correctly, is limited and heavily restricted.

      - Propagation of malicious code from guest to host to other guests happens on a very low-level of code, one that not many people have experience with.

      - Changes to virtualization layers happen less frequently than to the guest operating systems they host. It is easier to develop exploits for code bases which change more frequently.

      - If you are seeking to compromise hundreds or thousands of systems, it is naturally easier to exploit those ever-changing guest OSs directly with traditional means. Traversing from one guest to host to a small number of additional guests is not an effective means infiltrating a large number of systems.

    42. Re:History teaches once again... by Sancho · · Score: 1

      I've been on Slashdot long enough to know that the below is an acceptable rebuttal:

      It doesn't really matter how big the operating system's attack surface to the outside world is, as long as a process running on top of it is in any way able to compromise it. If this is the case (and I don't really doubt it), a hole in one of your processes and the operating system will allow an attacker not only to compromise all identical processes, but all processes to which said operating system has access to. This has the potential to trade whatever efficiency gains running multiple processes on a single operating system provides for complete lack of control over the whole network from two small vulnerabilities.

    43. Re:History teaches once again... by Sancho · · Score: 1

      Why would you need root? If the vulnerability were in hardware, and was not in a privileged instruction, a guest with low-level access could still quite possibly compromise the hypervisor.

    44. Re:History teaches once again... by Anonymous Coward · · Score: 0

      Theo point is that the VM will have emulation bugs. Such bugs can be triggered from user-space. This means that the following scenario become possible:

      Application A, running on OS O, under VM V and hardware H:

      Application A is running unprivileged
      Application A triggers a bug in the VM
      Application A takes control of the VM
      Compromised VM take control of OS

      All data on the server is now compromised. The entire security of the OS is moot. Note that it is not a case of protecting an application from another one. It is a case of protecting the OS from a faulty application.

      This attack vector is specific to the VM presence, and there is nothing that the OS can do. Theo is paranoid, hence is against the idea of running OpenBSD under a virtualizer. At least, saying that running under a virtualizer is good from a security standpoint is a no-no to him.

      And I think he is right. If you want OpenBSD, you want maximum security. Hence, you don't want to run under an hypervisor.

    45. Re:History teaches once again... by Anonymous Coward · · Score: 0

      > Don't you need a hole in the OS before the hypervisor can be attacked?

      No you don't. A few (15) years ago, there was an issue in NeXTstep, wich made it crash on a specific opcode that was never geneated by the compiler.

      A simple non-privileged shell-access was enough to crash any NeXTstep system. It could probably have been turned in an attack if needed.

      Same goes for a VM attack: write unpriviledge code that crashes the VM through some emulation bug, and *bam*, potentially take control of all the OS on the hardware.

      And this is what Theo is talking about.

    46. Re:History teaches once again... by jcr · · Score: 1

      , as long as a guest running on top of it is in any way able to compromise it.

      My point is that that's hard to do. The hypervisor doesn't present much to the hosted OS to try to attack. If you look at a system like EROS or Coyotos, for example, if a process has no permission for a resource, then that resource isn't even mapped in its address space.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    47. Re:History teaches once again... by Anonymous Coward · · Score: 0

      No, not at all. The attack vector goes like this:
      Application A, OS O, VM V

      Application A is running unprivileged
      Application A triggers a bug IN THE OS O to gain privilege
      OS O triggers a bug in V to compromise the virtualization layer

      So there are three bugs required, one in each product. A similar non-virtual case would be if these systems were all connected to a serial console system, and that serial console system was vulnerable to some compromise.

      There is no direct path between application A and the VM. It goes through the OS. There has so far only been one bug in Xen that allowed compromise, and that required root access to the Guest OS (required editing boot files and then triggering a reboot), and that wasn't actually a bug in the virtualization layer itself, it was a bug in certain Dom0 libraries written by redhat intended to allow guests to configure themselves. Once the bug was fixed, guests can run arbitrary kernels/OSs without being able to compromise Xen or Dom0. This is by design.

      What Theo is basically saying is the same as "OpenBSD is insecure because you can run perl or c++ and write an application that can do whatever you want, even without root privileges". The answer is "no you can't, unless there is a bug in OpenBSD". The same thing applies here. The Xen codebase is very small and has been carefully audited, just like OpenBSD.

      Also, he is looking at the problem backwards. The comparison isn't really that normally each application would be running on a separate OS on separate hardware. The comparison is to running all the applications on the same OS on the same piece of hardware, because you only have one system in either case. Then you have the risk that one remote user level exploit in one application plus one local privilege escalation exploit in a different application result in all the applications being compromised at once. With virtualization that won't happen, because the applications aren't running on the same OS.

    48. Re:History teaches once again... by Anonymous Coward · · Score: 0

      * the hardware they are emulating (PC architecture) is a nightmare, they have to do crazy, unsafe crap to implement it.


      Would you or he care to site evidence to back up this assertion? Not that x86 is a nightmare, but that it requires "crazy, unsafe crap" to impliment virtualization on it?

      * application flaws in the VM can compromise the guest OS.


      Yes, just as a flaw in a serial console can compromise the systems that are connected to it (and for the same reasons). I don't hear him advocating removing serial port support from the OS.

      * OS flaws in the guest OS can potentially compromise the host OS.


      Oh really? Care to site an example on that? Because that sounds like where the "hey I'm pulling this out of my ass" part really starts. The point of Xen is that an arbitrary guest CANNOT potentially compromise the host. There has been one security problem, where an optionally used library (not a part of the hypervisor itself, but a library to simplify management) on the host accepted any command fed to it from the guest, and that was a bug, and it was fixed. Generally speaking, no guest can compromise the hypervisor, and no guest should be able to compromise the host unless it does something stupid.

      What Theo is basically saying is the same as "OpenBSD is insecure because you can run perl or c++ and write an application that can do whatever you want, even without root privileges". The answer is "no you can't, unless there is a bug in OpenBSD". The same thing applies here. The Xen hypervisor codebase is very small and has been carefully audited, just like OpenBSD.

      * virtualizing hardware is inherently less secure than the physical segmentation of using actual, separate machines, so when you consolidate many machines onto a VM system you have a net loss in security.


      Sure it is. But virtualizing a system is inherently more secure that running all your applications together on the same box in the same OS, because it enhances isolation.

      He is looking at the problem backwards. The comparison isn't really that normally each application would be running on a separate OS on separate hardware. The comparison is to running all the applications on the same OS on the same piece of hardware, because you only have one system in either case. Then you have the risk that one remote user level exploit in one application plus one local privilege escalation exploit in a different application result in all the applications being compromised at once. With virtualization that won't happen, because the applications aren't running on the same OS. More hardware decreases risk, less hardware increases risk, regardless of virtualization. Adding virtualization decreases the risk compared with not using virtualization on the same hardware.
    49. Re:History teaches once again... by Anonymous Coward · · Score: 0

      > No, not at all. The attack vector goes like this:
      > Application A, OS O, VM V

      > Application A is running unprivileged
      > Application A triggers a bug IN THE OS O to gain privilege
      > OS O triggers a bug in V to compromise the virtualization layer

      This isn't the only attack path. For instance, when an app executes a priviledged instruction, the controls goes straight to the VM, not to the OS. Hence, if a VM has a bug, an app can compromise the VM without compromising the OS. Of course, it will be difficult to exploit, but it is definitely possible.

    50. Re:History teaches once again... by styrotech · · Score: 1

      This is what I don't "get." Don't you need a hole in the OS before the hypervisor can be attacked? i.e. Suppose I have non-root access on an OpenBSD DomU. Don't I need to escalate my privs on OpenBSD, before I can even start to attack Xen?


      Or looking at it another way - that OpenBSD guests total security is nothing to do with the security of OpenBSD itself, it is the combined security of Xen/VMware and the weakest guest OS on the machine. So your OpenBSDs security has been reduced by some amount (assuming it isn't already the weakest guest on the machine).

      In the eyes of OpenBSD developers, mathematically as the likelihood curve of any other guest being compromised approaches a certainty it leaves Xen/VMware as effectively the only layer of defence against the OpenBSD guest getting compromised. As they know how hard it is to write a secure virtualisation layer on x86 hardware, they don't have much faith in having Xen/VMware as their only layer of defence.

      And it isn't as though Xen or VMware haven't had security advisories already.

      That said, I do like using Xen for Linux servers, but I'm not deluding myself into thinking it is for security.
    51. Re:History teaches once again... by G-Licious! · · Score: 1

      You're doing a far better job than Theo explaining it. (Even if your explanation happens to be not exactly Theo's point.)

    52. Re:History teaches once again... by Anonymous Coward · · Score: 0

      Yeah, they say the producing part is great excercise -- and a lotta fun!

    53. Re:History teaches once again... by jsonn · · Score: 1

      I can assure you that most people in the BSD-land don't buy a word from Theo without checking the facts first either. So outside OpenBSD you will find a lot of disagreement and not much desire to rant against him for the low gain it brings.

    54. Re:History teaches once again... by h2_plus_O · · Score: 1

      An extremist "laissez faire" freemarket ideology was used at the time to explain the situation (especially by the eminent philospher Burke) similar to the approach taken across several centuries of famines in India by the English Imperialists). These market experiments on millions of starving people were directly justified by Adam Smith's ravings in _The Wealth Of Nations_ "famine has never arisen from any other cause but the violence of government attempting, by improper means, to remedy the inconvenience of dearth".
      Hm. I don't read your Adam Smith quote as justification of the economic policies of the time- it's rather an indictment of them. There was nothing laissez-faire about the situation. Ireland was occupied, its citizens subject to the Penal Laws, which were intended to make life hard on them, and did: Most Irish could not legally hold office, practice law or serve in the judiciary, become educated at home or abroad, vote, buy or lease land for a period of more than 31 years, inherit land, or own horses valued at over £5. By law, if when a Catholic died, his estate was divided equally among his sons, unless the eldest son converted to the protestant faith whereby he could inherit all the land. This policy was intended to reduce the size of catholic landholders, and in concert with the rest of the penal laws, created a perfect storm in which the Irish Catholics were simultaneously disenfranchised, denied access to education, wealth, opportunity, and squeezed onto smaller and smaller parcels of land. Basically, these laws made it virtually impossible for most Irish to obtain wealth.
      Is this somehow what laissez-faire capitalism looks like? ...because that looks quite a bit like the violence of government.

      I rather imagine Adam Smith would be horrified to hear himself cited in defense of such policy- indeed, in his lifetime he vigorously attacked the sorts of governmental regulations that hindered economic freedoms (which the Penal Laws certainly did). Moreover, he advocated in his lifetime for public education of poor adults and institutional systems that were not profitable for private industries. In his seminal works he made it clear that he regarded selfishness (as distinct from self-interested, a term used in the context of buying and selling) to be more or less immoral, and that the self-interested actor has sympathy for others.
      Thus, any indictment of the economic policies in place at the time of the Irish Potato Famine as "laissez-faire" are sadly inaccurate. They might have been intended to be such, and perhaps the occupiers themselves thought so, but given the punitive conditions in occupied Ireland, they were not, by any stretch of the imagination, consistent with what Adam Smith had advocated some 70 years prior.

      Per nobel laureate Aymarta Sen, in Democracy as a universal value, the common thread behind famine is not just food insecurity or even the kind of market system- it occurs only where freedom and empowerment are absent:

      in the terrible history of famines in the world, no substantial famine has ever occurred in any independent and democratic country with a relatively free press. We cannot find exceptions to this rule, no matter where we look: the recent famines of Ethiopia, Somalia, or other dictatorial regimes; famines in the Soviet Union in the 1930s; China's 1958-61 famine with the failure of the Great Leap Forward; or earlier still, the famines in Ireland or India under alien rule. China, although it was in many ways doing much better economically than India, still managed (unlike India) to have a famine, indeed the largest recorded famine in world history
      Whenever you want to blame famine on where the food is going... look at the politics of the situation. Don't let the fact that some may have cited Hume or Smith in defense of such atrocities make you think that either would have approved.
      --
      If there's one thing I won't stand for, it's intolerance.
    55. Re:History teaches once again... by myowntrueself · · Score: 1

      Politics kills more people than crop failures.

      Indeed.

      Guns don't kill people, bombs don't kill people; politics kills people.

      --
      In the free world the media isn't government run; the government is media run.
    56. Re:History teaches once again... by crush · · Score: 1

      There /never/ is or has been a situation where the imaginary ideal conditions for laissez faire economics have obtained. I completely agree with your analysis which is why I used scare quotes. The point is that the ideal of free market economics is used time and time again to justify inequality and massive interference on behalf of the priveleged minorities. Adam Smith's work I refer to as raving because he completely ignores the reality of power in human societies. Nice idea, shame about reality.

    57. Re:History teaches once again... by h2_plus_O · · Score: 1
      silly me. I missed the "scare" part of your "scare quotes". :-)

      With due respect, your argument seems perverse- it's as though you were condemning security (also a good idea) because asshats like the Bush Administration invoke 'security' to justify their agendas, but don't actually deliver the security they promise, or make things less secure. Your complaint isn't with Smith or his ideas, it's that some assholes misrepresent those good ideas when trying to sell their snake oil.
      I say that's no reason not to work toward good-but-tough-to-obtain ideals like security and liberty and free markets, simply because the alternatives are much, much worse.

      You probably should go back and read more Smith if you think he ignores the reality of power in society- he wrote an entire book that deals with the limits of man's moral capacity and he's not blind to the fact that nobody's moral capacity goes beyond their own sphere of self-interest:

      though we are ... endowed with a very strong desire of [universal happiness], it has been intrusted to the slow and uncertain determinations of our reason to find out the proper means of bringing them about. Nature has directed us to the greater part of these by original and immediate instincts. Hunger, thirst, the passion which unites the two sexes, and the dread of pain, prompt us to apply those means for their own sakes, and without any consideration of their tendency to those beneficent ends which the great Director of nature intended to produce by them.
      ...which is really just a flowery way of saying "Don't expect men to be angels, they don't have the capacity". ...to which I might add, "that goes doubly so for politicians". The root cause of the "reality" you note [that free markets are unobtainable] is this thing that Smith notes above: peoples' capacity for compassion and fairness only goes as far as their self-interest does. This isn't an argument against free markets; it's a compelling argument in favor of limited government power.
      Smith doesn't ignore the fact that power corrupts; he simply realizes that there's no fix for it that isn't worse. Empowering government to control aspects of the market (beyond enforcement of rules and contracts) merely concentrates more power in fewer hands. To bring it back to the original example (the potato famine), the problem wasn't a lack of market regulation, it was that the crown was regulating the majority of participants in the market in a punitive manner.
      --
      If there's one thing I won't stand for, it's intolerance.
    58. Re:History teaches once again... by crush · · Score: 1

      Your criticism is mostly fair. I do however have severe problems with Smith's abstractions of human society and I suspect that much of what he argues is invalidated by more recent work in game theory. As you say though I should go back and read TWON again, and probably other work.

      Meanwhile he continues to be (mis)used by von Mises fans trying to project US power onto 3rd world markets. I'll be willing to give free markets a try once corporations and the state are severly curtailed or eliminated.

  3. Welcome to the rest of the IT world, Theo! by JazzyJ · · Score: 1

    You're just NOW realizing this???

    1. Re:Welcome to the rest of the IT world, Theo! by superpulpsicle · · Score: 2, Interesting

      Virtualization is overrated. For people who are really in the field to manage, it creates as much overhead as the it solves. Whatever happen to the days when 1 machine is 1 machine. For the people who claim there is benefit, I am starting to be convinced it only benefits where configs are simple.

    2. Re:Welcome to the rest of the IT world, Theo! by Anonymous Coward · · Score: 0
      For the people who claim there is benefit, I am starting to be convinced it only benefits where configs are simple.


      I'm convinced that you're shitty admin incapable of learning how to manage new technology.

    3. Re:Welcome to the rest of the IT world, Theo! by spun · · Score: 5, Insightful

      Not to put it as harshly as the AC, but you don't know what you're talking about. Are you a sysadmin of any kind? Security was never the direct reason for virtualization. Utilization was. Now, virtualization may not help with crackers, but it does help isolate configuration issues, runaway processes and things like that. Admins like to keep one app on one machine because in a production environment, we are afraid of borking things that are currently working. Virtualization lets us keep one app per virtual machine, while letting us more fully utilize our physical hardware. This cuts down on electrical and cooling bills, & frees up rackspace. Mainframes have been doing this for decades.

      --
      - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    4. Re:Welcome to the rest of the IT world, Theo! by i.r.id10t · · Score: 1

      Not to mention making the hardware generic - you can move the virtual disks from one machine to another (or have it boot them from a SAN, etc) and not worry about the HAL that windows sees changing, even if the "real" HAL does. Makes migrating your "server" to a new box very easy, same with developing and setting up a "box"....

      --
      Don't blame me, I voted for Kodos
    5. Re:Welcome to the rest of the IT world, Theo! by Anonymous Coward · · Score: 0

      Maybe its overrated, but it certainly has its place.

      So many specialized applications believe they "own" a box - all the ports an services. As hardware gets faster and cheaper, its not reasonable to keep a separate box for each application. Recoding those applications, or even just making sure ones that are supposed to cooperate really do, is a nightmare that would take many man-years (and several calendar years) in our organization.

      Just think about this:
      - getting the applications to cooperate on a single OS, fixing any port conflicts, config conflicts, logging conflicts, scheduling conflicts
      - getting all the applications to work on the same version of the same OS.

      In my business, we deliver a network as our product with several specialized boxes. To rewrite all that software would be a nightmare. To force our smaller customers to continue to buy, rent space for, and maintain 10+ boxes - running some combination of linux, windows, and solaris, is business suicide. But we can combine boxes into one box with virtualization.

      Does it make it harder to maintain? In the short run we have to learn something new. In the long run having a single piece of hardware is an absolute win.

    6. Re:Welcome to the rest of the IT world, Theo! by Anonymous Coward · · Score: 0

      Windows Admins like to keep one app on one machine because in a production environment, we are afraid of borking things that are currently working.


      You forgot a word; added.

      There's no reason why multiple services can't run on one box. You run each as a separate user / UID and set resource limits.

      While one app per box is certainly done in the Unix world, IMHO the mindset and prevalense is more likely in the Windows world (especially in the more flakier days of NT 3.x and 4.x, and the practice simply was brought forward to newer revisions).

    7. Re:Welcome to the rest of the IT world, Theo! by Anonymous Coward · · Score: 0

      Hooboy, I want to work for you.

      Sysadmin: I need another dual quad-core machine for backup dns.
      Boss: Duh, ok.

    8. Re:Welcome to the rest of the IT world, Theo! by Anonymous Coward · · Score: 1, Funny

      Virtualization is overrated. For people who are really in the field to manage, it creates as much overhead as the it solves. Nobody cares about that. Virtualization is buzzword compliant, it has hypervisors, it can synergistically leverage stuff ! That's all that really matters in meetings. Whether it actually can or cannot do stuff isn't really very relevant.
      Even though in real life it can be of use in a few situations (although using it for security purposes might be akin to relying on chroot(8)).

    9. Re:Welcome to the rest of the IT world, Theo! by Lord+Ender · · Score: 1

      The best benefit of virtualization is essentially free disaster recovery plans.

      By the way, crackers break DRM, Hackers break security. Alternatively, crackers is a slang term for caucasians, and hackers is a slang term for golfers.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    10. Re:Welcome to the rest of the IT world, Theo! by spun · · Score: 1

      And snapshots for developers. Compile, run, oops: bork-bork-bork, reset to snapshot, hack more, rinse & repeat.

      --
      - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    11. Re:Welcome to the rest of the IT world, Theo! by asdfghjklqwertyuiop · · Score: 1

      Admins like to keep one app on one machine because in a production environment, we are afraid of borking things that are currently working.


      We do? Speak for yourself. That isn't why I use virtualization and isn't why anyone I know uses it either. Sure, we're afraid of breaking things but most of us know how to keep more than one program running on a computer. We don't like to break things, but this is why we have development/staging/test environments, redundancy, backups, plan for rollback, script as much work as possible, etc.

      Virtualization is nice because it makes all of those things incredibly easy. Right now I can clone a running, production VM, set it up on a test network and do whatever changes I want to do to test them against the production system. System image backups and rolling back to them is just as easy.
    12. Re:Welcome to the rest of the IT world, Theo! by toadlife · · Score: 1

      Well it benefited us this morning.

      This morning our UPS went haywire and sent a power surge which destroyed four of our five blade servers. Because the virtual machine's hard drives and configs were stored on the SAN we were able to bring back 40+ servers on the remaining blade within two hours.

      We're on line power for now, and only have one blade, but we're up. If this had happened before our move to virtualization, we would still be down and my weekend would be shot.

      --
      I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
  4. Counterargument by Anonymous Coward · · Score: 3, Insightful

    Virtualization layers can be much smaller than operating systems. Hypervisors don't have to do as much as a monolithic kernel does, so they're less prone to security holes.

    1. Re:Counterargument by Kristoph · · Score: 1

      I am not sure how this makes sense given that each VM is actually running a monolithic kernel.

      ]{

    2. Re:Counterargument by spun · · Score: 1

      You don't get the concept. It doesn't matter what the VMs are doing. The monolithic kernels can get hacked up down and sideways, and if there are no bugs in the hypervisor, the rest of the machine is still secure.

      --
      - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    3. Re:Counterargument by HardcorePooka · · Score: 1

      I don't think that you could show me any program with 100% perfect code. Yes, OSes get hacked/broken/etc. constantly... so why do you think a hypervisor would be any different? I would have to say I fully agree with Theo on this one. The ability to write perfect code with no exploitable security flaws and no bugs is pretty much beyond what companies are willing to go through in this day and age. The time and money needed to fully test every aspect of every single line of code in a system would delay a product's release so long that the company in question would probably go bankrupt before they ever got to sell it to anyone. Thats why there are updates and patches and new versions that have the exact same functionality as the old...

    4. Re:Counterargument by 644bd346996 · · Score: 1

      Fewer lines of code in the hypervisor makes it easier to audit the whole thing for bugs. Yes, there will still be bugs, but it is quite feasible for a hypervisor to have significantly fewer bugs per line of code than the operating systems it runs.

    5. Re:Counterargument by darthflo · · Score: 1

      Fewer still implies more than zero, which is a few too many. Don't forget to include the severity a potential hijack might have into your equation. A bug in Slash (just an example, I know Slash doesn't and will never have any bugs ;)) would usually compromise the web server, maybe just Slash itself running on a given machine. A bug in the kernel of the VM running Slash would compromise the whole VM, but a bug in a Datacentre-wide Hypervisor net certainly could render your whole facility useless (for a limited amount of time, unless it's able to turn off the A/C, fry your servers and burn down the whole building^H^H^H^H^H^H^H^H planet or something).

    6. Re:Counterargument by Tanktalus · · Score: 1

      #include <stdio.h>
      int main()
      {
      return printf("Hello world\n");
      }

      Small, simple, bug free. Scaling this to 50,000 lines is far simpler (or at least more accurately scaled) than scaling to 6,000,000 lines, or 50,000,000 lines.

      (And then there is the defensive code that actually works around its own defects such that bugs can't actually be exploited... but I don't know if the VMs in question have that or not.)

    7. Re:Counterargument by HardcorePooka · · Score: 1

      Maybe I should have said I don't think you can show me any usefull code that is 100% secure/correct and actually would be used by many people.

    8. Re:Counterargument by Anonymous Coward · · Score: 1, Interesting

      Auditing for bugs is not good enough. You need to apply a machined checked formal analysis, and prove a reasonable security policy (such as GWV) holds for the hypervisor. This is something that can be done.

    9. Re:Counterargument by Anonymous Coward · · Score: 0

      #include <stdio.h>
      int main()
      {
      return printf("Hello world\n");
      }
      Small, simple, bug free. Bug free? No it isn't. On success printf() will return the number of bytes written, and if it fails it will return a negative value. The only valid portable return values from main() are one of 0, EXIT_SUCCESS or EXIT_FAILURE.

      If you're going to start making statements about how easy it is to write scalable software correctly, it might help if you get your most basic examples correct.
    10. Re:Counterargument by maxwell+demon · · Score: 1

      I don't think that you could show me any program with 100% perfect code.

      Hmmm ... where's the flaw in the following code?

      int main()
      {
        return 0;
      }
      --
      The Tao of math: The numbers you can count are not the real numbers.
    11. Re:Counterargument by Anonymous Coward · · Score: 0

      How many lines of code do you think are involved when you count stdio.h and the sources for printf()? Are you sure they're all bug-free?

      Now, prove it.

    12. Re:Counterargument by mzs · · Score: 1

      Also main() is supposed to take 2 arguments, in the posted version it takes a variable number of arguments. main() and main(void) are not necessarily interchangeable because the first means a function that can take an arbitrary number of args and second means a function that takes none.

      Is the compiler going to figure-out that it really uses none? What about running this on an architecture that passes var args differently than a handful of arguments. Is _start() going to call it correctly? What if you pass args to the program when running it?

    13. Re:Counterargument by Sancho · · Score: 1

      Bugs aren't always exploitable, and the common classes of errors which lead to exploitable code are well known. Thus, for small projects, even if you can't squash all of the bugs, it's pretty likely that you can squash all of the exploitable bugs (at least, those with known attack vectors.)

      Assuming this is done, you're now left with a monolithic guest kernel (probably with many exploitable bugs) and a hypervisor with extremely difficult-to-exploit bugs. Is it more than 1? Yes, so strictly speaking, it does make it less secure. But it doesn't make it significantly less secure, and the benefits will likely outweigh the negligible security hit.

    14. Re:Counterargument by Anonymous Coward · · Score: 0
      No, now you're trying to hard. A portable main() may take zero or two arguments. A non-portable UNIX application may also use a three-argument form of main (For envp). Other non-portable implementations can do whatever they like.

      Is the compiler going to figure-out that it really uses none? What about running this on an architecture that passes var args differently than a handful of arguments. Is _start() going to call it correctly? What if you pass args to the program when running it?
      That's implementation dependent. With the IA32 it's likely that argc & argv will be placed on the stack before main() is called and then removed again during exit(). Other implementations may have different methods. If arguments are passed in argv when main() is called and main() never uses them, nothing happens, exactly as it should.

      main() isn't a variadic function either, by the way.
  5. Perhaps a Different Train of Thought by eldavojohn · · Score: 4, Insightful
    Well, here's his original post :

    Virtualization seems to have a lot of security benefits.

    You've been smoking something really mind altering, and I think you should share it.

    x86 virtualization is about basically placing another nearly full kernel, full of new bugs, on top of a nasty x86 architecture which barely has correct page protection. Then running your operating system on the other side of this brand new pile of shit.

    You are absolutely deluded, if not stupid, if you think that a worldwide collection of software engineers who can't write operating systems or applications without security holes, can then turn around and suddenly write virtualization layers without security holes.

    You've seen something on the shelf, and it has all sorts of pretty colours, and you've bought it.

    That's all x86 virtualization is. It's highly probable that Theo is right. After reading the above post, it's highly probable he is a very abrasive and one sided individual. But this is a tech forum so I won't get into judging character.

    However, his technical argument is ... somewhat unsound in my humble opinion. He seems to follow the train of thought that 1) people are, by nature, erroneous coders 2) virtualization means more code therefore 3) virtualization has more errors.

    I'm going to point out some other things I know about coding. Although more lines of code usually means more bugs, this is not always the case. Correlation does not equal causation. It is correlated but only because the more lines of code, the more probability that more people contributed to the project which means it is highly probable one of them was a bad coder. Also, if you plan things out and follow a rigorous model, it is within your power to make very fully functional, very nice software.

    My second point is a different way of looking at the problem. Let's take the naive approach of assuming a primary job of the operating system is to protect the user (and applications) from completely fouling things up in the hardware & memory realm. So it does an 'ok' job at this but, as Theo noted, some bugs still exist. Let's say it's something really bad like they don't stop programs from altering a very sensitive range of memory that is very vital to the correct execution of the operating system itself. Now, hypothetically, the virtualized layer on top of this would give coders a chance to catch this and correct it and protect the user from bringing down the operating system. In this way of looking at things you have two nets. Alone one lets many things pass through so you double it up and now you're catching more fish.

    But my analogy is probably very flawed and I must confess I have coded neither of these pieces of software so I cannot confirm or deny this. I am quite shocked that Mr. de Raadt would react so abusively to a post where someone was merely saying that they 'appeared' to be receiving some amount of additional security from virtualization.

    As for the very last comment Mr. de Raadt makes, I am confused. My employer uses virtualization on a mass scale to more effectively utilize hardware. I believe it has more uses than just bright shiny colors and wrapping--in fact I am interested in its potentials for hosting web OSs and other neat applications to users. It might not be the future like some people think it is but I think Mr. de Raadt was suffering a moment of frustration or dealing with irritable people when he authored this.

    I do wish he were open to more ideas. The second you start to just outright dismiss all your options because they don't satisfy you on the surface you will find you are left with none and often miss the best.
    --
    My work here is dung.
    1. Re:Perhaps a Different Train of Thought by Anonymous Coward · · Score: 0

      I am quite shocked that Mr. de Raadt would react so abusively With all respect, which rock have you been living under for the last 15 years?

      Theo is the same guy who called linux developers "inhuman" because they *very* politely notified a public mailing list that there was a license violation of code in OpenBSD's public CVS server.

      I do wish he were open to more ideas. As long as you're wishing you might as well ask for a pony. (In fact, the odds of you getting a pony are significantly higher than Theo opening his mind a smidge.)
    2. Re:Perhaps a Different Train of Thought by kebes · · Score: 2, Insightful

      It's highly probable that Theo is right. After reading the above post, it's highly probable he is a very abrasive and one sided individual. But this is a tech forum so I won't get into judging character.
      This is off-topic but I'm going to say it anyway. After reading the email exchange I find Theo's style quite bothersome. He's a highly skilled hacker and I don't doubt his technical abilities. However his writing style is terrible for technical discussions:

      1. He uses troll-like sentences that divert away from the technical discussion. E.g. he says "You are absolutely deluded, if not stupid, if you think that..." rather than just saying "It is incorrect to say that..." In each post, he throws in some needlessly inflammatory sentences and personal attacks.
      2. He uses idioms and analogies that do more to confuse than to get a point across. E.g. he says "The security benefits are at the 'ability to buy a steak for dinner' level." It's not at all clear what useful information is added to the discussion with sentences like that.
      3. He is dismissive in his responses to the point of being uninformative. If he had simply laid out his entire argument in the first email, then others could judge the quality of his logic. Instead he dismisses the entire discussion with things like: "You've seen something on the shelf, and it has all sorts of pretty colours, and you've bought it. That's all x86 virtualization is." This is supposed to be a technical discussion but instead he leaves all the details to the imagination.
      4. He makes bold assertions without citations. He simply relies on his 'authority' (e.g. "Those of us who have experience with the gory bits of the x86 architecture...") rather than pointing out specifics. (For example, in this Slashdot thread, many people have posted links to actual examples of exploits where code was injected into the host OS. Why could he not have provided similar real-world data to back up his point?)

      While we can all agree that the message/argument is more important than who delivers it, the means by which they deliver it absolutely has an effect on how quickly people will understand the logic. By being so inflammatory and dismissive, Theo turns an opportunity to educate others on security (and x86 hardware design) into a protracted back-and-forth where he mentions a few isolated facts per post. At the end of the day, he is right, and his argument is sound... but his style of discourse is very inefficient for convincing others of a technical point.

      This doesn't just go for Theo. Many geeks have a superiority complex that causes them to be acerbic, arrogant, and dismissive in technical discussions. This is just a reminder that doing so merely causes the discussion to take longer than it would have otherwise.
    3. Re:Perhaps a Different Train of Thought by rk · · Score: 1

      That Theo... he's such a smooth talker. I'll bet he's quite a hit with the ladies.

    4. Re:Perhaps a Different Train of Thought by yuna49 · · Score: 1

      Regardless of Theo's language or his comments about the quality of OS engineers, I thought this argument was more compelling:

      x86 virtualization is about basically placing another nearly full kernel, full of new bugs, on top of a nasty x86 architecture which barely has correct page protection.

      Just how nasty is the x86 architecture as a platform for virtualization? Certainly the x86 wasn't originally designed to be an S/370 in a smaller box. I read Theo's post as raising the question of how exposed the hypervisor is to attack given the allegedly rather dicey hardware platform on which these VM programs run. He seems to suggest that virtualization might make denial-of-service attacks against the host more possible, with the consequence that a successful attack could take down all the VMs at once. But I'm not well-versed in any of these matters, so I'm relying on the collective "wisdom" of Slashdot to learn more.

    5. Re:Perhaps a Different Train of Thought by Soko · · Score: 1

      It's highly probable that Theo is right.

      Theo is a very smart and resourceful individual - that's shown by his work

      After reading the above post, it's highly probable he is a very abrasive and one sided individual.

      That's an understatement to say the least. It's not "highly probable", it's an absolute certainty.

      But this is a tech forum so I won't get into judging character.

      You must be new here. ;-)

      Anyway, abrasive as he is, when Theo has something to say on security I tend to listen as he has a proven track record in that regard. Think about it - if you own one virtual machine (say through a poorly secured PHP application) and can then break into the virtualization layer, you can likely own every virtual machine hosted on the physical machine or even the cluster.

      I tend to agree with Theo here - so far, security (other than on a theoretical level, i.e. OS isolation) has not been completely thought out at the virtualization layer, hence there's no true security benefits to using virtual machines (other than recovery). That's what he means, I think, when he talks about "something on the shelf" - the security selling point is not really there.

      Soko

      --
      "Depression is merely anger without enthusiasm." - Anonymous
    6. Re:Perhaps a Different Train of Thought by Colin+Smith · · Score: 4, Informative

      This doesn't just go for Theo. Many geeks have a superiority complex that causes them to be acerbic, arrogant, and dismissive in technical discussions. Actually caused by strong feelings of insecurity. The secure don't need to attack to try to constantly prove their superiority.

      --
      Deleted
    7. Re:Perhaps a Different Train of Thought by wattrlz · · Score: 1

      I find your arguements interesting, but flawed. Not all bugs are created by some, "bad coders" sneaking into a project and plying their trade of writing bad code. If that was so every project could be perfected by handing it to a few known good coders to edit. Bugs are created from many different factors and one of them is the fact that people, no matter how skilled, make mistakes. Enough mistakes made by enough people in confluence create a bug. It is logical to assume that, since bugs do occur, there is a finite probability, greater than zero, that a bug will occur on any particular line of code. If one had an exceptionally good statistical analysis of all coding one could make statements such as, "A project with X lines of code is 95% likely to have at least Y bugs". I like the net analogy though. I think that one works well.

    8. Re:Perhaps a Different Train of Thought by Anonymous Coward · · Score: 0

      >I'm going to demonstrate I know bugger-all about coding. Although more lines of code usually means more bugs, this is not always the case.

      Fixed. That entire paragraph made me laugh (and I assure you that I am a *very* good engineer).

    9. Re:Perhaps a Different Train of Thought by kitgerrits · · Score: 1

      If you follow the original thread on the article's link, you'll see that Theo is mostly upset at someone making a statement that he finds stupid and flaming the poor guy into oblivion.
      On one hand, I have to agree with Theo that adding virtualization does not benefit the security of a machine.
      OpenBSD programmer's obsession with finding and fixing that last 10% of security holes gives them a jaded view of any piece of software that is not in OpenBSD.

      Indeed, Xen might not be quite as bug-free as OpenBSD and it might not (currently) provide more security than is currently present in x86 hardware and O/S'es.

      What he does not see, though, is that current Virtualization is merely in an infant state.
      CPU developers are still trying to find ways of segmenting Virtual Machines in better, more secure ways than are currently possible.

      If OpenBSD van at least get its Virtualization act together and thing -WITH- the virtualization developers, they might be able to make a difference.

      I know there are currently holes in Virtualization security. Blue Pill is living proof.
      The discussion going on about it, w.r.t. detection and prevention will eventually allow future generations virtualization to be more secure.

      What Virtualization -does- allow you to do, is set up a fully featured Development-, Test- and Acceptance- server on the same piece of hardware. With a bit of trickery it even allows on-the-fly hybernation-type full backups and restores os a machine, without even stopping the machine itself. Like an Ignite tape on steroids.

      I think the original question on the list was a reasonable one, if only for the wrong reasons.
      Virtualization allows for fully-controlled testing and forensic environments.
      Copying the full DomU currently running on the firewall and restoring it to a testing/development server gives you an environment to test a new firewall design or to examine a hacked machine in a sandbox environment, without the hacker's scripts/tools finding out about it, allowing for forensic examination.
      (Network Associates has been using virtualization to study virii for quite a while, now).

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    10. Re:Perhaps a Different Train of Thought by the_B0fh · · Score: 1
      Why would you even think a virtualization layer can fix any thing from "altering a very sensitive range of memory that is very vital to the correct execution of the operating system itself"? How much complexity is that going to add to the virtualization layer? For every OS? Every service pack and hotfixes and patches?


      As for your last point, Theo's exact point is that you use virtualization for cost savings, but please do not say you're using it for "more security".

    11. Re:Perhaps a Different Train of Thought by the_B0fh · · Score: 1
      Think about how the whole x86 architecture came about? In the early 80s, it was all Commodore and Apple IIs. IBM saw that, and said they were "toys". But, since there's such a bunch of hype, they tried to dip their toes into the water. Revisionists now adays say they used off the shelf components to be more compatible, cost savings, etc. All bullshit. The team was only given 9 months, or the project would have been yanked. There was no time to build and fab their own cpus, etc.


      So they went cpu shopping. Motorola and Intel. Oh, lookie here, Intel's cpu came with a manual, and somewhere around appendix (I), there's a little circuit with a nice title "lookie here, you can even build a simple personal computer with our cpu, and here's the schematic for it". Why do you think IBM sued all those clone makers for BIOS infringement and not hardware infringement? Because IBM didn't freaking own the rights to the hardware.


      So, they put in this 8 slot system, with 8 IRQs. Oops, not enough IRQs for all the slots, since some were used up by the system. Darn. Let's increase the IRQs, but in order to retain compatibility, let's tunnel 8-15 through IRQ 2. That's why, while IRQ 3 has higher priority than IRQ 4, IRQ 9 has higher priority than IRQ 3! And all these other stupid design decisions. These are only the ones I know about, as a user, so, at a lower, design level, there has to be more.


      And at the cpu level? When they went from 16->32 bits? Oh, the users will never need to use all 32 bits, so, lets just mask it out and give them 20 bits. WTF?!?!


      25 years later, what happens? We're still building on that pile of shit. WHY THE HELL do you think Intel tried to hard to go with the Itanic? They wanted a fresh start. THE MAKERS OF THE X86 CPU WANTED TO GET THE HELL AWAY FROM X86 AND GO TO A FRESH NEW START!!! What more evidence do you need that x86 stinks to high heaven?!

    12. Re:Perhaps a Different Train of Thought by Anonymous Coward · · Score: 0

      Says you, dickweed.

    13. Re:Perhaps a Different Train of Thought by yuna49 · · Score: 2

      I thought the 386 and successor architectures were fundamentally different from the original 8086 and 80286 architectures, particularly with regard to support for multitasking and memory protection. The transition to the 386 was pretty apparent to me. I used Desqview/386 to run more than one DOS program at a time in parallel, a feat not possible on any of the earlier x86 chips.

      I admit to being a total novice in these areas, but intuitively I imagined that a hypervisor was nothing more than a stripped-down multitasking OS which runs the VMs as separate processes, presents virtual hardware interfaces to the VMs, and manages hardware contention among them. Linux seems to do a pretty good job of preventing processes from overstepping their bounds and stepping on other processes. Isn't a hypervisor doing essentially the same thing Linux is doing, just at a higher level of abstraction?

    14. Re:Perhaps a Different Train of Thought by TemporalBeing · · Score: 1

      I thought the 386 and successor architectures were fundamentally different from the original 8086 and 80286 architectures, particularly with regard to support for multitasking and memory protection. The transition to the 386 was pretty apparent to me. I used Desqview/386 to run more than one DOS program at a time in parallel, a feat not possible on any of the earlier x86 chips.
      The i386 was not fundamentally different. It just added more features, and extended to 32-bit from i286's 16-bit. It also allowed for the OS to choose between more memory formats, etc. and did a better job at multitasking. In a sense, it is kind of like the jump we are seeing now in the GPU space between the GPUs that did single tasking and the DX10 compliant GPUs that can allow themselves to be used for other tasks as well using multitasking methods.

      I admit to being a total novice in these areas, but intuitively I imagined that a hypervisor was nothing more than a stripped-down multitasking OS which runs the VMs as separate processes, presents virtual hardware interfaces to the VMs, and manages hardware contention among them. Linux seems to do a pretty good job of preventing processes from overstepping their bounds and stepping on other processes. Isn't a hypervisor doing essentially the same thing Linux is doing, just at a higher level of abstraction?
      Yes, that is basically the concept. Problem is from a security POV if the host OS (hypervisor, VM, etc.) gets compromised, then everything under is compromised. That's the nature of security. So it doesn't really offer any security advantages.
      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    15. Re:Perhaps a Different Train of Thought by kv9 · · Score: 1

      Actually caused by strong feelings of insecurity. The secure don't need to attack to try to constantly prove their superiority.

      I would have expected a more on topic explanation (nerds, matters, etc.) from a low ID-er, such as yourself, instead of the tired old psychobabble used by most armchair shrinks. but I guess you bought your ID on EBay too, eh?

      (mods: apologies for the vitriolic remarks. I will not hold it against you for cracking the karma-whip.)

    16. Re:Perhaps a Different Train of Thought by BitZtream · · Score: 1

      Your analogy is flawed, because, if you read the rest of the post, you would have noted that as theo pointed out, if you could easily 'add another net', you would just add it to the OS anyway so it was there for everyone/thing to use from the start. The x86 hardware we have today doesn't give software this ability, so you can't add it to the OS, likewise, creating another software package that can do it isn't possible since the hardware simply can not do it.

      What VMs can not do:

      A) Not do any better than the OS since its running on the same hardware. If the VM authors were capable of writing more secure code, someone would be paying them to write more secure kernel code, which would be worth far more money since it would be used by everyone running the OS in a VM as well as on dedicated hardware.
      B) They can not reduce the total number of bugs in the system as a whole, since it is adding code not taking it away.

      **NOTE**
      While adding more lines does not explicitly cause more bugs, and developer who has written code for something other than a school project will tell you up front that more code DOES mean more bugs, regardless of how meticulous you are, human beings are flawed from the start, we can't imagine every possible way someone will do something and thus, software security is a very reactive art, no matter how proactive you try to be, someone is always better at breaking into what you have.

      In the end, you have a less secure environment compared to running individual machines on individual pieces of hardware. You also have less expenses overall due to a reduced amount of physical hardware. Its a trade off between the level of security and the level of hardware expenses (machines, power, space, ect).

      You can argue which side of the trade off is better all day long, what you can not argue is which one is actually more secure.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    17. Re:Perhaps a Different Train of Thought by phliar · · Score: 1

      Not all bugs are created by some, "bad coders" sneaking into a project and plying their trade of writing bad code. .... Bugs are created from many different factors and one of them is the fact that people, no matter how skilled, make mistakes.

      Sadly the truth is even bleaker. The fact is that in large systems bugs are inevitable. We never begin from a rigorous and correct functional spec that only needs to be implemented correctly for bug-free code. The reality is that the spec, the design, and the code co-evolve; in the earlier phases you might not even know which assumptions you're making, let alone ensure you don't make any unwarranted ones. And there will always be miscommunication (damn humans!)... then add the usual time and resource constraints. If the project is large enough -- say anything greater than five full-time hackers -- no mistakes need be made; there will be bugs. Projects like OpenBSD and TeX give us proofs-by-example of what kind of extraordinary effort bug-free software takes -- and I'll bet that they aren't bug-free yet.

      --
      Unlimited growth == Cancer.
    18. Re:Perhaps a Different Train of Thought by epine · · Score: 1

      Wow, bold all-caps. Point taken. Anyone spotted the Itanic lately? Long ago I dug into the theory of TTA (transport triggered architectures) that originally motivated the Itanic. Right from the outset, I thought they went about eliminating the wrong problems. Many featues of x86 have been citicised over the years, but the elimination of these problems has rarely lead anyone straight to the promised land.

      x86 was born into the world with a deformed leg. It walks with a limp. Always has. And yet, it's won every knife fight it has ever been in. And still the cry goes out, "kill the gimp!". Perhaps the hobbled leg is not the liability it has been made out to be. I think some people are excessively fixated on the superhero looking good in neon tights.

      x86 has been criticised for its irregular instruction set encoding for as long as I can remember. And what did every design do that bought into this myth? Fixed-width 32-bit instructions. How did that work out? I don't have time to relate twenty years of CPU design, so I'll just point out Thumb-2: the code density of a 16-bit instruction set, with the expressive power of a 32-bit instruction set.

      From a code density and expressive power perspective, Thumb-2 is now roughly in the same place as x86 began. This is not to say that Thumb-2 hasn't made some key improvements, they just don't happen to be the improvements that were originally tagged as the problem. The main difference is that the Thumb-2 instruction decoder uses less power and die space for a comparable level of performance. The parallel decoders required for modern x86 are terribly tricky and large and hot. However, you get some of that back with the improved density of your L1 instruction cache. Even with all this complexity, the decoders do not dwarf the other functional elements (cache, execution units, memory interface) so the percentage die cost is marginal. And until recently, total thermal dissipation did not constrain the performance envelope. A bigger heatsink solved the problem.

      Going back to the original 8086/8088, there was no icache. Instruction fetch bandwidth directly subtracted from data access bandwidth. Pin counts were a fairly large term in the final cost structure. A $10,000 PC? I recall how well that worked out when Apple first tried it. Sweet ISA. Pity about the price.

      With a small register set, there is an enormous design pressure to have single-byte instructions for stack management. With a medium sized register set, you have the option to move toward ARM-style stack management, which is dense and fast, but not nearly as flexible (witness the fantastic Watcom C/C++ compiler), and I'm not certain the compilers were quite ready for it back in 1982.

      A larger register set is not the obvious win most people think it is. It slows down context switches, occupies more die area, bloats instruction set encoding, and necessitates more stack management at call boundaries. AMD64 doubles register set size for roughly a 10% performance win.

      In the case of x86, the small register set was leveraged by RMW addressing modes, long the anathema of RISC designs. A small register set and dense instruction set encoding, combined with RMW addressing modes means that the battle is won or lost on core to L1 cache integration. It has always struck me as batty that for RISC to increment a memory based counter, the core has to present the same address to the L1 cache interface *twice*, once for read and again for write-back. Surely the L1 cache interface has better things to do than repeat virtual memory translation on the same address twice, and dirty a named register for the EA calculation in the process, which is now a burden to calls/context switches. x86 presents the EA once, and doesn't dirty a named register.

      This design troika means that as performance pressure increased, x86 implementations were forced to invest relatively more effort into core to cache integration. The Pentium Pro broke the back of the RISC presumption. Wha

    19. Re:Perhaps a Different Train of Thought by dbIII · · Score: 1

      Actually caused by strong feelings of insecurity

      Yes, he obviously thinks virtualisation is insecure.

      It sounds like the sort of rant that is given to somedody you think does not understand the problem that has just pulled in a buzzword from somewhere - the sort of thing you would say if somebody mentions a thing to solve one problem (virtualisation to run seperate stuff) in a completely different context (security). Read what the Xen and Qemu people have said about the inadvisability of using their software as some sort of extra layer of security at this point - they designed it to do different stuff and it needs more testing and most likely other work.

      I see the article about "Theo flames newbie for using buzzword out of context" which is really what you would expect. Doing some sort of weird personality analysis deeper than the one I just did (he has a history of going off at people that write things he thinks are stupid) is a bit of a pointless waste of time based on little information and would be a pretty creepy waste of time if it's based on a lot of information.

    20. Re:Perhaps a Different Train of Thought by turing_m · · Score: 1

      Having a reputation for not tolerating fools lightly also curbs the stupid and uninformed from wasting his time and the time of his collaborators. I suppose that's still motivated by insecurity, in that he needs OpenBSD to work well in order for it to pay, although it wouldn't be to prove his superiority.

      It's not as if he has Don Knuth's option of simply doing away with email in order to get his work done, he needs to stay up to date. http://www-cs-faculty.stanford.edu/~knuth/email.html

      The guy he was replying to could have just asked "Theo, I've scoured the mailing list for your opinion on the security of virtualization, I couldn't find any, I've seen a lot of claims by virtualization vendors for increased security benefits on the basis of x, what's your opinion?"

      Maybe he should have read "How To Ask Questions The Smart Way". If he had, he probably wouldn't have spouted a bunch of marketing blurb to Theo and suggest that he implement a feature based on that marketing blurb.
      http://www.catb.org/~esr/faqs/smart-questions.html

      --
      If I have seen further it is by stealing the Intellectual Property of giants.
    21. Re:Perhaps a Different Train of Thought by drsmithy · · Score: 1

      It's highly probable that Theo is right.

      The problem is that Theo's opinion is based on the narrow (very narrow) perspective of a kernel developer. He focuses solely on one part of the whole virtualisation equation with a somewhat valid criticism, but then proceeds to write off *the whole idea* without taking into account the massive benefits virtualisation delivers in other (far more expensive) areas.

      This sort of attitudent, I might point out - along with his confronting writing style - a problem _rampant_ throughout the geek world.

    22. Re:Perhaps a Different Train of Thought by epine · · Score: 1

      Actually caused by strong feelings of insecurity. The secure don't need to attack to try to constantly prove their superiority. As I commented in another post already, I was reading the tedious John P. Kotter's Leading Change the other day. I was also reading the much superior Who does what and why in book publishing by Clarkson N. Potter, from 1990. It's surprising how much overlap I discovered, the main difference being that Potter seems to have managed to thrive in a long and interesting career without discovering the use of Powerpoint. Where Potter manages to tell vivid stories with discretion and humour, Kotter explains "I once knew a guy named Manny (exhibit on facing page)". I might point out for this crowd that Potter was Martin Gardiner's editor for The Annotated Alice. If you liked that book, you might enjoy reading words of wisdom from the editor who dared to publish it.

      What does Potter have to say about this? Here are the bookends of his section on natural talent.

      Here we must consider five talents that some people have in abundance and some not at all, but which are crucial to success in life as well as in business and which are not taught, not measured, but gained largely out of the awareness of most people most of the time.
      ...
      These various talents are distributed most unevenly, and for anyone to have even one of them in abundance is rare. Potter's five talents are politics, diplomacy, leadership, teaching, and salesmanship. In particular he makes some interesting statements about talent for politics.

      [It has been said] a good politician can go through a room full of people, shaking hands and talking to each person in turn and exchanging a few sentences and at the end have a clear and accurate idea of who each person is and what his capabilities and ambitions are. This ability to size people up very quickly, to judge their potential for usefulness and for loyalty with almost no mistake, is a rare and precious talent. It often goes with deep underlying insecurities (emph. mine), and appears to be entirely instinctive.

      His other interesting remark concerns diplomacy. Potter states "More than the others, it appears to be teachable." Apparently that lesson was lost on Theo.

      From his perspective, mediocrity is having an equal (and equally negligible) dab of all five. OpenBSD does not aspire to mediocrity. You can even make a strong argument that Theo's lack of conventional diplomacy is a bonus to his score in all four of the other categories. Security is brittle and not for the timid. You need to get the losers out of your kitchen if anything much is to be accomplished at all. It's not a popularity contest. As any major league professional coach might say, "It's a results driven business".
    23. Re:Perhaps a Different Train of Thought by Raenex · · Score: 1

      The link you provided is also "tired old psychobabble used by most armchair shrinks", but it happens to be nerd-friendly. I think there's truth in both points of view, and I'll add a bit of my own pyschobabble: People like Linus and Theo who haven't progressed beyond the "angry nerd" mindset are emotionally immature.

    24. Re:Perhaps a Different Train of Thought by myowntrueself · · Score: 1

      Actually caused by strong feelings of insecurity. The secure don't need to attack to try to constantly prove their superiority.

      Awesome.

      You have just neatly explained for me almost all world-PvP activity in World of Warcraft.

      Thank You.

      --
      In the free world the media isn't government run; the government is media run.
  6. Theo is so full of himself he misses reality by lib3rtarian · · Score: 2, Insightful

    Theo thinks so highly of himself, he is just wrong on this one. There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.

    1. Re:Theo is so full of himself he misses reality by mccalli · · Score: 1

      There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.

      VMware Tools seems to do it every day...

      Cheers,
      Ian

    2. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 0

      Yeah, but can they break into a virtual enviroment? That's more of a problem.

    3. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 1, Informative

      There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.

      Start eating. There have been documented & patched bugs in VMware where the actions of the client VM can crash or exploit problems in the host.

      That being said, VMware is the most solid virtualization product for the PC architecture.

    4. Re:Theo is so full of himself he misses reality by LLuthor · · Score: 2, Informative

      Lots of hypervizors and VM kernels are vulnerable, and can allow guest OSes to inject code into the host OS.

      See this for just a few examples: http://secunia.com/advisories/26890
      I can easily find several implementations that cause DOS and escalation attacks on older versions (these are fixed in the current versions, but you can bet more flaws will be found).

      Regardless of Theo's opinion of himself, he is right in that more complexity means more bugs.

      --
      LL
    5. Re:Theo is so full of himself he misses reality by Cheesey · · Score: 1

      Here is one.

      Beware of a false sense of security! VMware was not designed to be a security tool.

      --
      >north
      You're an immobile computer, remember?
    6. Re:Theo is so full of himself he misses reality by Krondor · · Score: 1

      There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.

      How do those words taste?.

      From the link: "It could allow a malicious hacker to sidestep the virtual machine and exploit the underlying operating system.".

      Anyway I think that you do make a point. Exploiting the underlying OS isn't as much as exploiting the guest OS in the virtual instance. Interesting stuff like Blue Pill (which is hotly debated in security circles ATM), poses unique risks to virtual environments.

      Still, I would say Theo is dead on. Virtualization makes a lot of sense, but that doesn't mean you should assume you gain anything from a security perspective. Think of it this way. Every layer of complexity in your environment adds another attack vector... Virtualizing an operating system provides an additional complexity over running the same operating system native. Makes sense to me that there would be additional security concerns. Even Intel VT itself has been proposed as a source of potential security concern.

    7. Re:Theo is so full of himself he misses reality by Stipe · · Score: 1
      > Regardless of Theo's opinion of himself, he is right in that more complexity means more bugs.

      That more complexity means more bugs I agree with. However:

      • While the points of interaction are probably more complex (virtualizing interrupts, memory faults), there is a smaller number than in the typical kernel interface - so it's not clear whether the overall complexity is larger or smaller.
      • The amount of code in a typical kernel includes many device drivers and other such features (filesystems, etc), which must all be written correctly. A Virtualization layer is providing a simpler set of primitives (block devices rather than filesystems), so there's likely to be less code.
      • VM code is much less mature and hasn't had the security focus that OS's have. Unix-like OS's have been around for best part of 30 years, virtualization on x86 for, what, 10 years? Figures that Virtualization has had less security-related scrutiny (and almost certainly less than OpenBSD)
      So I think there's potentially less code to be worried about in virtualization, but the code that is is still prone to security bugs, just the way page faults and the like are in conventional kernels. The lack of noise that's been made about virtualization security (until now) is a sign to pessimissists (or just those that are experienced) that it's not had the thorough peer review and battering that most OS kernels have. There's potential there for a smaller codebase to be worried about (thus more security), but in the short term, it's an unknown factor, which translates to less security. Long term, I think virtualization is a win, but there's no shortcut to a secure system.
    8. Re:Theo is so full of himself he misses reality by 644bd346996 · · Score: 1

      That's a feature, not a bug. The existence of that hole is well-documented and intentional (even if the details of exploiting it aren't). I haven't used VMware, so I can't comment on whether that feature can be disabled by the user, but it would be trivial for VMware to do so.

    9. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 0

      See http://taviso.decsystem.org/virtsec.pdf for several examples.

    10. Re:Theo is so full of himself he misses reality by _pi-away · · Score: 1

      There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.

      Well then I hope you're hungry. I saw Ed Skoudis from counterhack.net demonstrate virtual machine escape live at SANS Las Vegas in September. VMware and others have released patches related to the vulnerabilities he discovered.

      From patch release notes:

      Workstation 6.0.1 addresses the following security issues:

              * This release fixes a security vulnerability that could allow a guest operating system user with administrative privileges to cause memory corruption in a host process, and thus potentially execute arbitrary code on the host. The Common Vulnerabilities and Exposures project (cve.mitre.org) assigned the following name to this issue: CVE-2007-4496.

      I'm not even positive this is the exact bug he used, but even if it isn't it shows the possibilities exist.

      --

      "The crows seemed to be calling his name, thought Caw."
    11. Re:Theo is so full of himself he misses reality by jojo1835 · · Score: 1

      They do, but it's a purposeful feature, not a security risk.

      Also, this discussion deals around virtualization interacting with the host OS, not dealing with virtualization's ability to interact between guests. VMware's ability to isolate guests from each other is fabulous. When you talk about VMware, you have to separate the features of their Workstation product (designed to make life easier) from the security of their ESX product (designed to be enterprise class virtualization).

      Thanks!
      Tim

      --
      See... and you thought your sig was boring - TT
    12. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 0

      Mod grandparent 1, Nomnomnom.

      But seriously, unless the virtualisation means that untrusted users can gain privileges, Theo's talking nonsense. If you have to be root in a virtual machine to exploit the vulnerability, then you aren't any worse off than if the user was root when virtualisation wasn't used. In fact, the worst-case scenario of there being a vulnerability and the attacker having an exploit ready only means that you are exactly as screwed as you would be without the virtualisation.

    13. Re:Theo is so full of himself he misses reality by the_B0fh · · Score: 1

      by lib3rtarian (1050840) Alter Relationship on Thursday October 25, @12:00PM (#21114769)
      Theo thinks so highly of himself, he is just wrong on this one. There is not one recorded/public example of someone breaking out of the isolation of a virtual environment! I dare someone to demonstrate otherwise, and I will eat my words.


      Since someone just showed proof, can you post a youtube video of you eating your words? Thanx.

    14. Re:Theo is so full of himself he misses reality by LLuthor · · Score: 1

      Anything inside a VM IS untrusted. Whether someone has root inside the VM or not should not make a difference.

      --
      LL
    15. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 0

      You're missing my point. Yes, whether somebody has root or not shouldn't make a difference. But good security is always dependent upon more than one factor. If somebody does compromise the virtual server, they still have another layer to break through in order to compromise other parts of the system, compared with non-virtualised servers, where if they manage to gain root, they have control over everything.

    16. Re:Theo is so full of himself he misses reality by Sloppy · · Score: 1

      An unspecified error can be exploited by a user with administrative privileges in the guest system..

      But that's with admin privs in the guest system! We're talking about a situation where the OS' security has already been defeated. Running it under a VM doesn't make things worse.

      I envision two alternative situations:

      1. An OpenBSD machine runs, for example, an email server and a web server.
      2. An Xen machine runs an OpenBSD Dom0 (assuming OpenBSD ever gets that capability; Linux otherwise), an OpenBSD DomU running an email server, and an OpenBSD DomU running a web server.

      Now let's say there's a vulnerability in the web server. A cracker exploits it.

      Scenario 1: Cracker can now try local attacks on the email server. One possible approach is to find an OpenBSD bug that escalates privs, becoming root. If he succeeds that that, attacking the email server becomes trivial.

      Scenario 2: Cracker can now try to escalate privs on the OpenBSD DomU. If he succeeds, then he can try to attack Xen. If he succeeds, then he can try to attack the Dom0 (and if he gets root there, he wins) or the email server's DomU (if he gets root, he wins (sort of)).

      Isn't Scenario 2 as good or better that Scenario 1, in every way?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    17. Re:Theo is so full of himself he misses reality by mzs · · Score: 1
      Yummy words I hope, it's an oldie but a goodie:

      CVE-2005-4459:

      Heap-based buffer overflow in the NAT networking components vmnat.exe and vmnet-natd in VMWare Workstation 5.5, GSX Server 3.2, ACE 1.0.1, and Player 1.0 allows remote authenticated attackers, including guests, to execute arbitrary code via crafted (1) EPRT and (2) PORT FTP commands.

      You don't even need to be root in the guest VM.

    18. Re:Theo is so full of himself he misses reality by Sancho · · Score: 1

      Blue Pill doesn't pose risks to virtual environments--it poses risks to machine with hardware virtualization enabled. It's irrelevant whether or not virtualization is actively being used. Furthermore, virtualized environments without hardware virtualization (such as is offered by new Intel and AMD chips) are immune to Blue Pill.

      It's really a completely different subject.

    19. Re:Theo is so full of himself he misses reality by maxwell+demon · · Score: 1

      You are making three assumptions:

      1. You must get root access in the guest OS in order to exploit VM bugs.

      While this may be true for certain VM bugs (e.g. if there's a bug in the emulation of certain priviledged instructions which user code cannot trigger), there's in general no reason why it has to be.

      2. Compromising the VM gives you only user level access to the host OS.

      I don't know how much of a VM runs in user space, but there are definitively parts running as root. If you can exploit the root part, you've immediately gained root on the host OS.

      3. There's another security barrier for going from the host OS to any guest OS.

      While I'm no expert in this, I think as soon as you get host-root, you've got complete control (e.g. you can simply replace the running guest VM with your own).

      Of course, even if you can gain host-level root from user-level VMs, it doesn't necessarily mean the VM scenario is less secure. The point is, the tradeoff is between

      (a) The cracker exploits the OS to get root access, at which point it can control the other app running on the same OS

      and

      (b) The cracker exploits the WV to get host root access, at which point it can controll the other app running on another gues of the same host.

      Note that the security of either the host or the guest OS doesn't matter at all in the second scenario. Therefore the question of which is more secure is simply the question of which will more likely be exploited: The OS, or the VM?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    20. Re:Theo is so full of himself he misses reality by BitZtream · · Score: 1

      Actually, you are missing the point. They don't have control over all the other 'virtual machines' when the OS is running on the dedicated hardware rather than in a VM because there are no other virtual machines to gain access to. The other non-virtualized servers are on some other piece of hardware which you would not have direct hardware access to, so you would have to exploit them in some form as well.

      Versus breaking into the hypervisor gives you direct access to memory of all the machines running on it, meaning you have instantly owned every machine on the hypervisor since you can randomly inject stuff into random memory locations as you see fit.

      The original discussion is about turning the software running on 5 physical machines running different operating systems (or at least different instances of the same), and putting it all on one piece of hardware. What you are assuming is that running running the software from those 5 machines on a single piece of hardware is less secure than doing it on 5 virtualized machines. While at first glance this seems logical, except you've made the assuming that a VM can't exploit the hypervisor, which is without a doubt, wrong. The idea is that the hypervisor cant' be exploited, but history shows us this is not the case.

      Essentially, getting 'root' on the hypervisor gives you access to all VMs on it. On the other hand, getting root on a machine running a single OS (no VMs) means you get root on that machine.

      This of course is simplified because its likely that you'll be able to exploit root access on a given machine to obtain information useful for attacking other machines on the same network or related to the machine you have compromised. But if you are compartmentalizing servers for security reasons, running them on a VM is a good way to give up a lot of the reason you compartmentalized them.

      Compartmentalizing them to prevent configuration conflicts between software on them on the other hand, is a great reason to use a VM.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    21. Re:Theo is so full of himself he misses reality by Anonymous Coward · · Score: 0

      They don't have control over all the other 'virtual machines' when the OS is running on the dedicated hardware rather than in a VM because there are no other virtual machines to gain access to. The other non-virtualized servers are on some other piece of hardware

      You're presenting the alternative to virtual machines as more physical machines, when in reality the alternative most people opt for is running more than one service on a single machine. The other services aren't running on another piece of hardware, they are on the same piece of hardware. The only choice is whether you virtualise and give more than one layer to break through, or don't virtualise, in which case the attacker only has the one layer to break through.

      you've made the assuming that a VM can't exploit the hypervisor

      No I haven't, go back and read my comment again, it was quite clear.

  7. Attention Grabbing by Anonymous Coward · · Score: 0

    This guy is just grabbing for attention. Anyone in IT already knew there will be security issues when introducing a Hypervisor, but it doesn't make your hosts/lpars any less or more secure. A good IT admin designs systems to be secure by identifying potential security risks and minimizes them and there is no reason to let this clown spread FUD that might inhibit a fast growing technology advancement.

    I'll make a bold statement that hypervisors make systems MORE secure because they obscure the hardware layer and allow for cleaner more efficient drivers to be installed uniformly on your accessable hosts.

    1. Re:Attention Grabbing by ben+kohler · · Score: 1

      This guy is just grabbing for attention. wait, did theo submit the story to /.?
  8. VMware selloff by Anonymous Coward · · Score: 1, Funny

    Thanks for the insider tip Theo, I just dumped all of my VMware stock.

  9. Missing the point by Anonymous Coward · · Score: 1, Interesting

    Virtualization layers, and their cousins Separation Kernels are the darlings of the security crowd because they can be written in a relatively small number of SLOCs, which means there is a possibility to formally analyze them. Where Formal Analysis means proofs written in a well established mathematical notation, and machine checked. Green Hills Software has a separation kernel that should shortly be certified to a very high level (EAL 6 Augmented) CCEVS

  10. What are the big threats now? by timeOday · · Score: 2, Interesting

    A few years ago, it seemed email worms were constantly ravaging Outlook. That, I noticed. But that seems to have tapered off. Haven't noticed any panicked patching of zlib or ssh or sendmail lately. What is keeping people busy these days? Spyware-infested zombie boxes? Anything else?

    1. Re:What are the big threats now? by zappepcs · · Score: 2, Funny

      The number one threat to America today? BEARS !

    2. Re:What are the big threats now? by somersault · · Score: 1

      I think the latest is something called "World of Warcraft".

      --
      which is totally what she said
  11. Risk profiles by Anonymous Coward · · Score: 5, Insightful
    Let's consider the following:
    1. Security is improved by minimizing the number of services your software layer exports.
    2. Virtualization has a relatively small, well-defined number of services.
    3. Operating systems do not.
    4. ???

    Virtualization is no doubt a complex problem to get right, but it's only one problem. There is a relatively fixed set of hardware any virtualization system claims to support. A reasonably complete virtualization system can be frozen at some level of functionality. An operating system can not; it must, by nature, constantly evolve to new requirements. Hardware, in contrast, is relatively more stable.

    Operating systems running on virtualized systems also have the advantages of operating systems running any fixed configuration. While not quite as consistent as a completely emulated environment, virtualization gets most of the benefits, under reasonable assumptions.

    So, in short, virtualization has the same sort of benefits microkernels were supposed to provide, albeit with a much more heavyweight solution: smaller core that's easier to secure. Virtualization has been used in the mainframe community for years. Virtualization is an even stronger form of process isolation than what operating systems provide.

    Virtualization is much more costly to run than a standard operating system process. This should be a clue that it probably provides stronger isolation guarantees, even if you don't buy the rest of the argument.

    I think it's a specious argument, as usual, to claim that securing the virtualization layer is no harder or easier than securing an operating system. I think securing the virtualization layer is going to be much easier, because while the problem itself is complex, it's still less complex than a complete operating system is.

    A better argument would have been to point out that guest operating systems running under virtualization are no less vulnerable to being compromised than those running on real hardware. But then that would point the finger at operating system vendors, not virtualization ones.
    1. Re:Risk profiles by Aladrin · · Score: 1

      I think you missed the point.

      App A may be secure, but probably is not.
      App B may be secure, but probably is not.

      If you run BOTH, you're even less likely to be secure.

      It's the same here. OS A is insecure. To 'secure' it, you run it under Virtualization, which is itself possibly insecure. You've now got all the insecurity of OS A and all its apps plus the Virtualization to worry about.

      If Virtualization covered up the problems with the OSs it hosts, there would be no issue. It does not.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    2. Re:Risk profiles by Anonymous Coward · · Score: 0

      > Virtualization has been used in the mainframe community for years.

      But mainframes don't run intel chips. Mainframe hardware is on another level entirely, designed from the outset to support virtualization. The article knocks x86 hardware as providing insufficient security mechanisms. Virtualization is being retrofitted to the platform, and can offer no additional OS security guarantees because there's nothing on the processor that the OS can't already access by itself.

      > Virtualization is much more costly to run than a standard operating system process. This should be a clue that it probably provides stronger isolation guarantees, even if you don't buy the rest of the argument.

      This statement is specious. Your logic suggests that Vista Ultimate, because it costs more to run (in hardware requirements and in cash) than Vista Home, is more secure.

      You're right, you've got to ask why someone went through the trouble of constructing it all, but the answer is: hardware utilization.

    3. Re:Risk profiles by ZorbaTHut · · Score: 1

      I don't agree. You're assuming that an attacker can exploit bugs in both App A and App B, at will. I don't think that's the case. In order to even touch the OS, you have to first exploit the virtualization framework.

      I run virtualization because it seems stronger to me than not. Without virtualization, in order to root my box, the user needs to follow this order:

      * Exploit a running process to get in
      * Find a hole in any root-permission process to get root privileges

      (Note that these might be the same step in some cases.)

      With virtualization, there's this order:

      * Exploit a running process to get in
      * Find a hole in the virtualization layer that is accessible from a user level
      * Find a hole in any root-permission process to get root privileges

      Or possibly, even worse:

      * Exploit a running process to get in
      * Find a hole in any root-permission process to get root privileges
      * Find a hole in the virtualization layer that is accessible from a root level
      * Find a hole in any root-permission process to get root privileges

      That seems quite a bit stronger to me.

      No, virtualization isn't a security guarantee. But I do think it's a bonus. And, yes, it's arguable, and you could indeed argue that this is still less secure - but claiming that running VMWare on Apache means that an attacker can now choose to exploit either VMWare or Apache is simply misleading.

      --
      Breaking Into the Industry - A development log about starting a game studio.
    4. Re:Risk profiles by Aladrin · · Score: 1

      If a VMWare exploit gives you direct access to memory that is as good as having root access to the machine. It doesn't matter -how- you get root access, just that you have it. If you hack one, there's no need to also hack the other.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  12. Topic is x86 Virtualization by swamp+boy · · Score: 1

    From TFA,

    The topic is specifically about virtualization on the x86 platform.

    1. Re:Topic is x86 Virtualization by Anonymous Coward · · Score: 0

      Wanna sell me an AIX boy?

  13. Useless by andreyw · · Score: 3, Interesting

    Theo's side keeps asserting that "x86 virtualization isn't secure", but they seem to be perfectly comfortable at keeping the discussion at the level of a "I'm right, NO I'M RIGHT", without any corroborating statements (Hint: Theo's "I am familiar with x86 and its 'nastiness'" isn't one). What's not secure about SVM? What's not secure about VT-x? Why does Theo think that virtualizatio somehow has to imply legacy PC I/O emulation?

    Ugh.

    1. Re:Useless by Krondor · · Score: 4, Interesting

      What's not secure about SVM? What's not secure about VT-x?

      VT-x and SVM provide paths for rootkits to integrate and hide. New rootkits like Blue Pill and Vitriol utilize SVM and VT-x to virtualize the host platform and remain undetected and immune from removal. They're not widespread, but an attack vector exists, which implies the security concerns over them.

      Makes sense to me.

    2. Re:Useless by Anonymous Coward · · Score: 0

      Isn't that more of an argument against an OS on the bare hardware? The rootkit can take over the hardware, and running the OS in a VM it controls.

      But, if there is already a hypervisor in place, this attack vector is gone.

    3. Re:Useless by the_B0fh · · Score: 1
      That's because you didn't follow the rest of the thread. Hint: That was just one email in a hundred+ long chain of emails.


      Also - how the hell do you do virtualization without virtualizing legacy PC I/O emulation? And emulating all the assorted crap from the early 80s?! Hello, IRQs anyone? Just because there's now a layer of crap on top, hiding the old crap does not mean the old crap is not there.


      And, lets say you have a guest, running a secure operating system, in a VM. And you have windows in another VM. Windows get rootkitted. And a guest->host escalation happens. The attacker now has full access to your secure OS's memory space! It doesn't matter even if you encrypt everything - the attacker has full access to your memory space! Not only that - any type of security you have in place can be easily thwarted. Hell, the attacker can just map any checks you have to NOPs, and you would not be any wiser.

    4. Re:Useless by tji · · Score: 1

      Yes, precisely. He doesn't say that he has looked into virtualization code and it has X problems. Or, even virtualization is vulnerable to Y attacks. He says "Those of us who have experience with the gory bits of the x86 architecture can clearly say
      that we know what would be involved in virtualizing it, and if it was so simple, we would not still be fixing bugs in the exact same area in our operating system going on 12 years."

      In other words "I've never really studied the problem. But my guess is that this is hard."

      The thing is, his premise looks correct. You don't somehow gain security by moving from physical hosts to combining them as VMs on a single hypervisor. You gain a ton of other efficiencies, but you don't actually gain in security. Some of the examples cited as gaining in security were really just operations improvements afforded by easier separation of VMs as compared to physical hosts.

      The question is: how much security do you lose? For most practical purposes, it's not enough to dissuade people from virtualization.

      Unfortunately, his message is obscured by the childish way in which he presents it.

    5. Re:Useless by Ed+Avis · · Score: 1

      If you choose not to run a virtualization layer, that doesn't (as far as I know) make you any safer from rootkits like Blue Pill.

      If you run a virtualization layer, that doesn't (as far as I know) make you more vulnerable to rootkits.

      In any case, a rootkit can work only once you've already compromised the system. What happens once the system is compromised is not really relevant; we take it for granted that an attacker with root access can do anything he or she wants. The question of security mostly hinges on preventing someone from getting the unauthorized access in the first place.

      So I don't think that the existence of these rootkits is an argument to say that virtualization layers will increase or decrease security.

      --
      -- Ed Avis ed@membled.com
    6. Re:Useless by Seumas · · Score: 1

      I didn't realize virtualization was supposed to be about security. I thought it was supposed to be about simplicity and cutting space, resources and other costs.

    7. Re:Useless by Krondor · · Score: 1

      Isn't that more of an argument against an OS on the bare hardware?

      No, the parent asked what is insecure about VT-x and/or SVM. Both of which provide attack vectors for VM-type rootkits, which are quite serious. VT-x and SVM are designed to be transparent to the guest so these are hard to detect.

      As to your point, If an existing hypervisor is there already this is probably not effective. Perhaps a VM rootkit could emulate a ring-0 environment to nest itself as a virtual instance on the host while still virtualizing the guest. There is also the potential that a security vulnerability in the isolation of the current hypervisor could be exploited to allow the rootkit to embed itself within, or supplant, the existing hypervisor. So still security avenues exist, though they become more remote.

    8. Re:Useless by Anonymous Coward · · Score: 0

      http://blog.virtualiron.com/2007/06/14/can-the-virtualization-manager.html

      It looks like you can run a virtualized version of these guys' virtualizer on their virtualizer. Unfortunately, I don't know about Xen and VMWare.
      Anyway, it would be possible for an attacker to eat his way through all your layers of virtualization.
      And it's a funny thought ^_^

    9. Re:Useless by Krondor · · Score: 1

      If you choose not to run a virtualization layer, that doesn't (as far as I know) make you any safer from rootkits like Blue Pill.

      Approaches like Blue Pill and Vitriol are dependent on the existence of hardware virtualization. You don't have to be running under it to be exploited, it just has to be present and enabled.

      So if you meant not running as in disabling VT-x and SMV functions, then it would indeed make you safer from VM type rootkits.

      However, if you meant not running as in not running a virtualized guest OS, then no it wouldn't matter one way or the other really. Running virtualized would probably make you safer overall in that case because there is another layer of difficulty involved in virtualizing the guest for the rootkit function.

      So I don't think that the existence of these rootkits is an argument to say that virtualization layers will increase or decrease security.

      Yes the host has to be in a state to load the rootkit regardless, but this can be easier then you assume (especially on your Windows based platforms). Security is layered and it's nice to know that if the box is compromised in that way that at least the rootkit should be easier to detect/remove then if it were a VM based rootkit.

      I guess the argument goes back to does hardware virtualization like VT-x open up avenues for system exploit beyond what is present without VT-x. I would surmise it does, but whether this applies to virtualization in general, or the transparent hardware virtualization options presented by VT-x is another discussion.

    10. Re:Useless by Anonymous Coward · · Score: 0

      Unfortunately, his message is obscured by the childish way in which he presents it. Computer programming "genius" and open-source advocate with poor social and communication skills? Where have I heard that before? Oh right, RMS. Listen, a big reason people have issues taking Open Source operating systems and programs seriously is because of things the people at the forefront say and/or do. The fact is they make horrible spokespersons. Part of the reason I think Ubuntu has made strides where others have failed is because of the spokesperson it has.

      Yeah, I know Bill Gates looks like a huge nerd, what kind of spokesperson can he be? Well, he is clean shaven and well spoken. He doesn't throw childish insults and he is nicely dressed. Perception is everything and well with RMS as a perception people don't want to deal with open source stuff he is involved with. There are moments I wish someone would step up and sell Linux and Open Source the way they should be. *cough*Perens*cough*
    11. Re:Useless by arkanes · · Score: 1
      It's important to note that what he's comparing virtualization to is running each app on a separate physical box, not to running them on the same box without VT.

      VT *does* (or at least can) improve security when you take 2 apps running on one box under a single OS and instead run them on one box under 2 guest OSes. It doesn't provide any gain (and Theo argues, rightly, that it's likely to be a loss) compared to running the 2 apps on 2 distinct physical boxes.

      One last point is that the malware has to know or be able to detect that it's running under VT. This can be quite hard, for exactly the same reason that Blue Pill is hard to detect. In a sort of irony, it's quite possible that if a (legit) hypervisor used the same masking techniques that Blue Pill does, that Blue Pill would be powerless against it because it wouldn't know to "break out" and attack the host, even if a vector were available.

    12. Re:Useless by Ed+Avis · · Score: 1

      Yes, hardware virtualization opens up new possibilities for exploits, but the discussion was about whether running a virtualization layer makes you more secure on the hardware you already have. Given a particular PC, which presumably has the virtualization instructions built into its CPU by Intel or AMD, will it be more secure running plain OpenBSD, or running OpenBSD on top of some hypervisor?

      --
      -- Ed Avis ed@membled.com
    13. Re:Useless by andreyw · · Score: 1

      I did follow the rest.

      How do you do virtualization with legacy I/O? You just do. You use drivers that use "synthetic" (In Viridian-speak) devices ("paravirtualized" in Xen-speak). You really don't want to use the emulated legacy I/O, because it is slow.... always.... slow. Imagine doing a block read from a disk. Even if you use DMA, it takes something like 10 I/O port write commands to set the transaction up. Everytime you write to an I/O port, the VM you run in is going to be descheduled by the Hypervisor and paused, while the request gets forwarded to the relevant processing facilities within the root/Dom0 partition. These extra context switches and hyperentries and hyperexits are unnecessary overhead. Never mind that your software layer providing the legacy I/O emu has to be *perfect* and not intoduce any exploitable bugs (like the DHCP bugs within VMWare, reading the mailing list...).

      You might ask how this is different from a purely paravirtualized approach. It is different because you dont need to port the OS to the slightly-different pseudo-CPU and IC combo exposed by the hypervisor. All you might want to do, in order to improve performance, is to use virtual devices, instead of emulated legacy I/O ones.

      You keep talking about a "guest -> host" escalation. Barring bugs in device virtualization (intra-VM communication, really), hypercall processing - that cannot happen. At worst, you might be able to exploit the VM that runs the actual device emu/support code.

    14. Re:Useless by BitZtream · · Score: 1

      In other words "I've never really studied the problem. But my guess is that this is hard."

      Actually ... a lot of what an OS does is effectively virtualization on a different kind then we are thinking about in this discussion.

      In this discussion, Virtualization means: Abstracting the hardware layer so the OS doesn't know its sharing it with other ones.

      In theo's typical daily code, Virtualization means: Abstracting the hardware layer so the application doesn't know its sharing it with other ones.

      Slightly different final product, overall the general concept and requirements are a lot a like.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  14. I'm Not Sure I Buy His Analysis by Nova+Express · · Score: 5, Interesting
    The snippet presented seems to suggest that more security holes in virtualization = less secure operating system, or OS(X) + V(X), where OS(X) represents the operating system vulnerabilities and V(X) represents virtualization vulnerabilities.

    However, I see this more as if the virtualization layer actually sits under the OS layer, then the actual security for remote intrusion would be, first, Y/OS(X), THEN Y/V(X), where Y is the number of people with the knowledge to exploit each vulnerability. Thus, someone who wanted to exploit the system would both have to be capable of exploiting an OS vulnerability, and THEN also exploiting a virtualization vulnerability.

    (And we're talking about remote usage, because we all know it's virtually impossible to protect a system from anyone who has direct access to the hardware.)

    I understand that reality may not be quite as tidy, but it still seems like a virtualized system would be much more secure that a non-virtualized system, if only because the increased level of knowledge involved means a smaller number of hackers capable of exploiting both layers. What am I missing?

    --
    Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)

    http://www.lawrenceperson.com/

    1. Re:I'm Not Sure I Buy His Analysis by Cheesey · · Score: 1

      I understand that reality may not be quite as tidy, but it still seems like a virtualized system would be much more secure that a non-virtualized system, if only because the increased level of knowledge involved means a smaller number of hackers capable of exploiting both layers. What am I missing?

      I think you might be assuming that the security provided by the OS and the VM are multiplicative, that the result of having both is much stronger than the sum of the two parts. But that might not be true, because an attacker does not have to compromise both systems at the same time. He can attack the OS, get control of that, then use it as a launch pad to hit the VM.

      Others have argued that the VM will be more secure than the OS because it is smaller and simpler, and in general I think that is a good argument. Less code = less bugs. But VMware was not designed as a security tool, and it is actually very large because it contains reverse drivers for virtual hardware (Ethernet and VGA, for example). Bugs in this code could be serious security problems (example). To take another example, the QEMU VM lets you use SLIRP as a quick and dirty way to get networking running. But SLIRP is notoriously filled with security bugs. It's useful, but it's not designed to be secure, and if you use it, QEMU can't stop malicious programs escaping the VM through SLIRP.

      --
      >north
      You're an immobile computer, remember?
    2. Re:I'm Not Sure I Buy His Analysis by mdielmann · · Score: 1

      I understand that reality may not be quite as tidy, but it still seems like a virtualized system would be much more secure that a non-virtualized system, if only because the increased level of knowledge involved means a smaller number of hackers capable of exploiting both layers. What am I missing? What you are missing is that hackers with different skillsets might talk to each other. This is similar to defeating DRM, another security model. Once it's broken by one person, there's nothing to stop him from sharing it with everyone else.
      --
      Sure I'm paranoid, but am I paranoid enough?
    3. Re:I'm Not Sure I Buy His Analysis by jon_anderson_ca · · Score: 1

      where OS(X) represents the operating system vulnerabilities

      I have a box here addressed to you from one M.Fanbois... it's ticking... shall I open it for you?

    4. Re:I'm Not Sure I Buy His Analysis by evilviper · · Score: 1

      it still seems like a virtualized system would be much more secure that a non-virtualized system, if only because the increased level of knowledge involved means a smaller number of hackers capable of exploiting both layers. What am I missing?

      #1) The simple fact that the alternative to virtualization is separate physical hardware, where NO amount of knowledge can allow you to break-out of the hardware, and gain control of the 10 other systems.

      #2) Reality really isn't nearly that tidy. Anyone who is skilled enough to know how to do one of those, is going to have no trouble with the second. This excludes script kiddies, of course, but you really shouldn't be designing security systems that will only stop them... In your scenario, it's not security, but one level of obscurity, which also cause a big performance hit for nothing.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    5. Re:I'm Not Sure I Buy His Analysis by Isao · · Score: 1
      If I understand your formula, then you're saying TOTAL_VULNERABILITIES = OS(X) + V(X)

      I think this should be more like (though not literally) TOTAL_VULNERABILITIES = OS(X) * V(X), as happens when any two systems are integrated.

    6. Re:I'm Not Sure I Buy His Analysis by Anonymous Coward · · Score: 0

      OS(X) = apple
      V(X) = toxic nerve agent

      So we're comparing apples to nerve agents??

    7. Re:I'm Not Sure I Buy His Analysis by maxwell+demon · · Score: 1

      #1) The simple fact that the alternative to virtualization is separate physical hardware, where NO amount of knowledge can allow you to break-out of the hardware, and gain control of the 10 other systems.

      Are you completely sure? If the computers share resources (e.g. mounted directories from a common file server), there might still be ways to "propagate" root access from one host to another. Some ideas:

      * If you manage to happen a central server giving updates to other computers, you can manipulate the update data those other computers get.

      * If any user has shell access to several computers using a shared home directory and a shared directory with execution rights (not necessarily writable by the user), someone gaining root access on one computer might utilize that user account to gain root access to the other computers as well.

      Now neither of the above scenarios may apply to your case, but then, that's just two things I quickly came up with, and I'm not a security expert, so I'm sure true experts can come up with much more. The point is, just running on different hardware doesn't necessarily mean that "NO amount of knowledge can allow you to break-out of the hardware, and gain control of the 10 other systems."
      --
      The Tao of math: The numbers you can count are not the real numbers.
    8. Re:I'm Not Sure I Buy His Analysis by PitaBred · · Score: 1

      I hear they have cyanide in their seeds...

    9. Re:I'm Not Sure I Buy His Analysis by incense · · Score: 1

      Say you have two operating systems, A and B with a couple of services serving the public. By using virtualization, you're allowing an additional attack vector into the OS'es: To get into OS B, I could break OS A, then break the virtualization, and thereby own your OS B without breaking it.

      This, of course, is less secure than placing OS A and B on different physical boxes.

      --
      testing 1 2 3
  15. But it's so fun by Anonymous Coward · · Score: 1, Funny

    You mean my strategy of running Windows inside of Mac Parallels inside of Pear inside a VMWare instance in a Wine bottle isn't the most secure, stable environment ever conceived? Sheeze. Maybe I should just get a Mac. :)

    --
    http://www.metagovernment.org/
    GOVERNMENT BY *ALL* THE PEOPLE

  16. Theo rocks, as his usual! by VincenzoRomano · · Score: 3, Funny

    And as there is no engineer that can develop hardware without security bugs, the only solution is to stay with insecurity!

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
  17. Sounds to me like "those who can't, bitch" by RLiegh · · Score: 2, Interesting

    This sounds suspiciously close to his comments about journaling filesystems when asked why OpenBSD didn't support them (which boiled down to "journaling sucks, use softdeps instead"). OpenBSD has native support for exactly zero virtualisation schemes, whereas NetBSD has native Xen support (something Opensolaris is working on -if they don't have it already), FreeBSD and Linux both have support for kqemu and Linux and Windows both have support for VMWare, Virtualbox and kqemu.

    For fuck's sake, OpenBSD can't even offer a modern version of WINE in their ports (the one they offer is from 1999, and is broken to boot).

    So instead of fixing OpenBSD so that it has native support for running some sort of native virtualisation scheme, Theo does what he usually does -bitches, whines and blames the technology for the flaws in his OS.

    1. Re:Sounds to me like "those who can't, bitch" by ltjohhed · · Score: 1

      It's all strategy. When you can't run anything, you're as secure as you'll ever be!

      --
      All generalizations are false
    2. Re:Sounds to me like "those who can't, bitch" by MikeBabcock · · Score: 1

      He has a point inasmuch as adding complexity invariably adds security issues that need addressing. However, auditing the Xen code makes much more sense considering the possible security benefits in the long run than avoiding it altogether. Partitioning of the system's resources is a net win for me.

      --
      - Michael T. Babcock (Yes, I blog)
    3. Re:Sounds to me like "those who can't, bitch" by RLiegh · · Score: 1

      And to think they laughed at my 'run everything on cp/m' strategy. Who's laughing now? ;)

    4. Re:Sounds to me like "those who can't, bitch" by evilviper · · Score: 1

      "journaling sucks, use softdeps instead"

      I fail to see why you have a problem with that statement. It's true that softdeps has better performance than journaling, both in theory, and in practice. You need only look at FreeBSD.

      FreeBSD and Linux both have support for kqemu and Linux and Windows both have support for VMWare, Virtualbox and kqemu.

      kqemu is borderline useless on FreeBSD. I don't notice any performance difference with or without it. So OpenBSD is on pretty much equal footing. Not to mention that Windows support for kqemu is a very recent development, and it's predecessor ('vm86' or something) was pretty lousy.

      I don't see why you have an obsession with "native" either... OpenBSD is perfectly capable of running Linux binaries, including VMWare (in ports).

      OpenBSD can't even offer a modern version of WINE in their ports

      There's a big difference between "doesn't" and "can't". I guess OpenBSDers just aren't big on running Windows binaries.

      So instead of fixing OpenBSD so that it has native support for running some sort of native virtualisation scheme,

      What needs to be "fixed"? Is every single application that isn't available a "bug"?

      Theo does what he usually does -bitches, whines and blames the technology for the flaws in his OS.

      I must have missed that part... you'll have to point it out for me. His point was that virtualization isn't a method that improves security, and there, he certainly does have a valid point. He's certainly not the only one saying so. Everyone just likes to pick on Theo's inflammatory comments. See Henning Brauer's e-mails from that thread instead if you like.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    5. Re:Sounds to me like "those who can't, bitch" by Anonymous Coward · · Score: 0

      FFS go to the OpenBSD website and read it.

      Only two remote holes in the default install, in more than 10 years!

      Capiche?

    6. Re:Sounds to me like "those who can't, bitch" by Anonymous Coward · · Score: 0

      OpenBSD has native support for exactly zero virtualisation schemes, whereas NetBSD has native Xen support
      Really. http://hg.recoil.org/openbsd-xen-sys.hg
    7. Re:Sounds to me like "those who can't, bitch" by the_brobdingnagian · · Score: 2, Insightful

      You don't have to use OpenBSD. If you want to use Wine and Xen, use FreeBSD or Linux. OpenBSD is targeted at people who want a clean, simple and secure OS. Use the best tool for the job, don't complain to the OpenBSD developers they wont provide the features YOU want. If you want some feature, take the source and implement it yourself (you don't even have to contribute your code to the project). Why should the OpenBSD developers spend THEIR OWN time on something they don't want?

    8. Re:Sounds to me like "those who can't, bitch" by maxwell+demon · · Score: 1

      How many remote holes have been found in VMs yet?

      --
      The Tao of math: The numbers you can count are not the real numbers.
  18. You mean baby MULCHING by shking · · Score: 1

    "software which OpenBSD uses and redistributes must be free to all (be they people or companies), for any purpose they wish to use it, including modification, use, peeing on, or even integration into baby mulching machines or atomic bombs to be dropped on Australia" — Theo de Raadt

    --
    -- "At Microsoft, quality is job 1.1" -- PC Magazine, Nov. 1994
  19. credibility? by Known+Nutter · · Score: 4, Insightful

    Theo's childish, condescending and pointless choice of language seems to undermine his credibility. Although he may be an authority on the subject, I think he owes it to himself - as well as the rest of the community he helped to create - to communicate in a more professional, civilized and respectful manner.

    He's in the same bucket as Dvorak - who wants to listen to the little twerp?

    --
    Beware of the Leopard.
    1. Re:credibility? by yanyan · · Score: 1

      That, in my opinion, is an unfair analogy. If Theo de Raadt is a score: 1 flamebait, John C. Dvorak would be a score: -1 troll.

    2. Re:credibility? by Anonymous Coward · · Score: 0

      "I think he owes it to himself - as well as the rest of the community he helped to create - to communicate in a more professional, civilized and respectful manner."

      Or, change his name to Linus.

    3. Re:credibility? by magus_melchior · · Score: 2, Insightful

      There are some people who think that the whole "professionalism" thing is just a sham that suits like to use to pull the wool over their customers' eyes. While it's true that many so-called "professionals" do use their conduct to gain an unearned advantage, it's also true that all the facts in your favor won't matter if your conduct causes people to stop listening to you.

      I don't know if Theo gets this, or simply doesn't care— my bet's on the latter.

      --
      "We are Microsoft. You shall be assimilated. Competition is futile."
    4. Re:credibility? by Anonymous Coward · · Score: 0

      FUCK OFF CUNT!

    5. Re:credibility? by Raenex · · Score: 1

      It's not an "unearned advantage" to refrain from insulting people. It's an "earned disadvantage" to act the way Theo does.

    6. Re:credibility? by wikinerd · · Score: 1

      He has the right to speak in any way he wants. He is a great hacker and he has earned this privilege.

  20. Its not just the developers... by rodney+dill · · Score: 1

    I do a lot of prototyping and testing out of scenarios with virtual machines. (40+ iterations for servers and client) Not all are complete builds as I do a lot of cloning. If you fire up a virtual machine that hasn't been in use for a while, you may need to spend time with security updates. Also if you didn't place or adequately configure virus protection and a firewall in an original clone you may end up with a number of machines with poor security. On the other hand cleaning up viruses is easy with my scenario, I just delete a current clone and go back to one not infected. (Assuming the virus is readily identifiable.

    --

    Use your head, can't you, use your head,
    You're on earth, there's no cure for that
    - S. Beckett
  21. Wrong argument? by leuk_he · · Score: 1

    I am not sure that the argument is right. Saying that virtualizion add possible security bugs is like saying that adding a personal firewall is adding fucntionaltity and thus possible exploits.

    Virtualiztaion is more secure IMHO than current process isolation in most operating systems, but both can fail.

    Theo's argument about security just proves the argument of linux about Security is "people wanking around with their opinions" is not unrealstic.

    You have torealize that the alternative to virtualisation is getting an extra box with hardware or run 2 application on the same box. 2 machines is more secure, second solutions sounds LESS secure.

    1. Re:Wrong argument? by darthflo · · Score: 1

      1. I'd argue that a personal firewall does make a system more vulnerable in many cases, not because it's own vulnerabilities (usually few, if any), but because it makes it's user feel (more) secure. Similar to always sporting a kevlar vest, it'll certainly help in some situations, but you might forget that you still are vulnerable and, after needlessy walking through the worst part of some city, end up in an armed robbery with a gun pointed at your (un-kevlar'd) head.

      Additional to that, virtualization doesn't directly secure anything. Each and every hole your machine has while running two processes on one OS will persist if the processes are running on seperate OSes/VMs. The virtualization will (should) isolate them from each other, but, by design, won't make them any more secure.

  22. Dumb by Reality+Master+101 · · Score: 1

    I have no idea with Theo's point here is. His statement is like saying, "Firewalls are programmed by the same people who write operating systems. If you think Firewalls have no security issues, then you're deluded, if not stupid." Therefore, Firewalls are useless and just increase complexity.

    Virtualization, from a security standpoint, is just a firewalling method. It increases isolation between instances, and more isolation is ALWAYS good.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Dumb by Sloppy · · Score: 1

      I respect Theo, but what you're saying is pretty much how I (admittedly, not a kernel hacker) have perceived it. It seems like the two layers would need to be attacked in serial, just like attacking a daemon that behind a firewall. One can argue that firewalls don't help, but I don't see how they can hurt. Doesn't virtualization just add more "depth" to the defense? How can I attack the virtualization layer before I have defeated the hosted OS?

      Yes, I'm using words like "seems" and "I don't see how." It's not a good argument. But the opposing side hasn't presented a clear argument either.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    2. Re:Dumb by Chandon+Seldon · · Score: 1

      Therefore, Firewalls are useless and just increase complexity.

      That's sometimes true. Your assumption is that two layers means that you have to hack both. In practice, it frequently ends up that hacking *either* is enough to cause security problems.

      Using your firewall example, consider the following two setups:
      First: A web server machine with HTTP and SSH ports open and a mail server with SMTP, POP3, and SSH ports open.
      Second: The above situation with those servers behind a firewall that only allows incoming connections to those ports.

      The second situation is arguably *less* secure than the first. The firewall prevents attacks against closed ports (which largely don't exist) and attacks against other services that were left enabled by mistake (which shouldn't be there). In exchange, it's now possible to attack the firewall itself - which is approximately as juicy a target as either server.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
  23. You're not complicating it enough by Anonymous Coward · · Score: 0

    It would be OK if you accessed the whole thing through an X-window running on a VirtualPC instance of Debian inside a Win 2000 shell.

    1. Re:You're not complicating it enough by Anonymous Coward · · Score: 0

      ...through a OpenBSD VNC server onto an Ubuntu-based terminal server, accessed on a Mac through VPN...

    2. Re:You're not complicating it enough by Anonymous Coward · · Score: 0

      ...accessed through screen sharing onto an iPhone...

  24. unstated assumption by sribe · · Score: 1

    I believe that he is working from the unstated assumption that the virtualization host and guest OSen all have approximately equivalent levels of security. If so, then virtualization does just increase the number of holes available for exploit. Rather like the way a RAID system increases the overall chance of a drive failing, because of using more drives. The difference of course, is that the RAID system is able to effectively isolate the failed drive, where a security exploit in one OS can potentially provide a path for breaching other OSen.

    So his point makes sense given an assumption. But what if there were some OS "A" that was much more secure than some other OS "B". In that case, it is at least possible to increase the security of an installation of OS "B" by hosting it under "A", where "A" (and the virtualization software, which of course also needs to be much more secure), can protect it from a variety of attacks. So the question remains: what if? Hmm...

    1. Re:unstated assumption by vidarh · · Score: 1
      Of course two systems layered can be more secure than either system separately, but they can also be more insecure.

      If either system can allow uncontrolled access to hardware or disk if there's a bug, for example, having two systems instead of one would be less secure.

      Similarly if the hosting system has a bug or configuration problem that allow an attack against the hosting system to grant access to the hosted system, then obviously security will be weakened. Some vm systems have a way to get password-free access to the vm's if you have root access to the host, for example (though that's debatably not a huge problem - if you have root access you could install a modified kernel and reboot unless the system has been hardened a lot more than what people usually do) so any root compromise of the host system would compromise any and all vm's on such systems.

      It's hard to get away from the thought that ANY additional network service potentially increases the possible methods of attacks, and so hypervisors that are network accessible does have a potential risk.

      On the other hand, virtualization also allows a lot of additional isolation that people might not be able to afford otherwise - not everyone can afford to run a single service per server to prevent security holes in one from affecting others. In cases like that, virtualization may mean your applications may face significantly reduced privileges. Personally I think that benefit does have significant potential to reduce the attack vectors far more than adding a hypervisor will increase it. Particularly since the hypervisor is likely to receive far more scrutiny than an app put together for a small business with a handful of developers.

      If you use virtualization to concentrate more services on the same hardware, you almost inevitably increase the risk of weaker security: For each additional service you add additional potential for misconfigured vm's and broken applications, and if there are then bugs in the hypervisor that allow you to break out of a vm and gain access to the hypervisor or other vm's you suddenly have a far greater problem than before you concentrated things.

      I think Theo is making a point that's worth keeping in mind, but in his usual obnoxious way, and I think it is a far smaller problem than he makes it.

  25. The only secure OS by Colin+Smith · · Score: 1

    One unplugged from the network, with no applications.

    If you want to do anything in this world, there is risk and generally, the greater the risk the greater any reward. So while he may well be correct, he's totally missed the point of well, everything. Leave him to stew in his paranoid fantasy world. I'm sure the NSA, CIA or whoever will be happy to use his skills.

    --
    Deleted
  26. When a Port is Lagging Behind the Mainstream by shking · · Score: 2, Informative

    For fuck's sake, OpenBSD can't even offer a modern version of WINE in their ports (the one they offer is from 1999, and is broken to boot)

    The ports tree is 3rd party stuff, not OpenBSD. Why don't YOU contribute instead of whining.

    When a Port Is Lagging Behind the Mainstream Version

    "The ports collection is a volunteer project. Sometimes the project simply doesn't have the developer resources to keep everything up-to-date. Developers pretty much pick up what they consider interesting and can test in their environment."

    "If you really need a new version of a port, you should ask the MAINTAINER of the port to update the port....if you can send patches for this, all the better. To create proper patches, you should refer to the documentation on building ports."

    --
    -- "At Microsoft, quality is job 1.1" -- PC Magazine, Nov. 1994
    1. Re:When a Port is Lagging Behind the Mainstream by RLiegh · · Score: 3, Insightful

      For fuck's sake, OpenBSD can't even offer a modern version of WINE in their ports (the one they offer is from 1999, and is broken to boot)

      The ports tree is 3rd party stuff, not OpenBSD. Why don't YOU contribute instead of whining.

      Because I have a wealth of already working solutions to choose from. Why in the fuck would I waste my time contributing to a project full of assholes (read the mailing lists for details) who don't even want to admit there's a problem in the first place -much less fix it?

      Don't know about you, but I've got a life to live; if OpenBSD doesn't feel like offering virtualisation technology (or -in the case of WINE- compatibility functionality) then I'll simply move on and use operating systems which do.

      And if Theo insists on making it sound as if the problem isn't OpenBSD's inability to support virtualisation but virtualisation itself; then I reserve the right to laugh my ass off at his extremely silly pompousness.
    2. Re:When a Port is Lagging Behind the Mainstream by Anonymous Coward · · Score: 0

      babulicm@cuug.ab.ca

    3. Re:When a Port is Lagging Behind the Mainstream by Anonymous Coward · · Score: 0

      Are you claiming that you can't contribute to more than two asshole-ridden projects at once?

      So says HomelessInLaJolla, easily the biggest asshole here.

      (And not just from whoring himself out as a gay prostitute.)

    4. Re:When a Port is Lagging Behind the Mainstream by PCM2 · · Score: 1

      Don't know about you, but I've got a life to live; if OpenBSD doesn't feel like offering virtualisation technology (or -in the case of WINE- compatibility functionality) then I'll simply move on and use operating systems which do.

      That's fine for you. Doesn't surprise me at all. Because, though I admit I've never used OpenBSD, my understanding of its goals and ethos leads me to believe that the kind of people who want to try to run Windows applications on top of a hacked version of the Microsoft APIs were never Theo's intended market to begin with.

      --
      Breakfast served all day!
    5. Re:When a Port is Lagging Behind the Mainstream by BitZtream · · Score: 1

      Well there are two things I have to say.

      First off, OpenBSD isn't really about letting you run your Windows apps on a Unix machine just so you don't have to run windows (or whatever your reason may be). OpenBSD is about being a >secure server. Not a desktop machine or anything else so you can be sure that a lot of desktop-ish stuff doesn't work perfectly in OpenBSD.

      Second, Theo's argument (in this case) isn't that OpenBSD doesn't have virtualization support because of reason X. His argument is simply that it isn't more secure, he was replying to the erroneous statement made on the mailing list that VMs machine make things more secure. Statements like that make Theo's blood boil as he feels very strongly about people understanding security and not making ignorant statements about it. He's a genius when it comes to coding, but he's not so well versed in being 'nice' when he feels very strongly about something. I think the best way to put it is that he's very outspoken when he feels someone doesn't fully understand something.

      Sure he called the guy stupid, and he was probably wrong. Its unlikely that the guy is stupid, its far more likely that he is ignorant when it comes to security issues on the large scale that operating systems and VMs interact at.

      I write cryptography software, and while I am NO WHERE NEAR Theo's level of skill or understanding, I can sympathize with him on this one. Its very hard to stop simple security issues when people who are ignorant of the facts spread incorrect information and others who are even less knowledgeable, or worse don't WANT to understand the issues pick up on something like this and think (in this case) VMs are the solution to all our corporate security concerns.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  27. Comment removed by account_deleted · · Score: 2, Funny

    Comment removed based on user account deletion

  28. Theo's pessimism and where it comes from. by argent · · Score: 4, Insightful

    Theo tends to be cynical and pessimistic about just about anything that's got to do with security, and he's got good reasons to be... things that people push as security features turn out to be irrelevant or even actually dangerous a large proportion of the time. They're not batting 1.000, or even 0.500, by any means.

    This doesn't mean that OpenBSD won't get some kind of virtualization support, it just means that he's being careful and conservative and letting other people be the pioneers. I think this is a good thing, on balance... you don't want to be pulling arrows out of your back because your secure OS decided to take you through unknown territory.

    Yeh, he's got an emphatic way of putting things. You just gotta deal with it. Several years ago I asked him about stack protection and his response was eerily similar to this. A few years later OpenBSD enabled stack protection by default.

    I think he's got a point, but he's comparing running separate computers to running separate OS instances on the same computer. If that's how you're using VMs, then yes, the resulting system is less secure overall... and for Windows that's often how VMs get used because Windows tends to make it unreasonably hard to run multiple instances of the same application on the same computer. If you're replacing less extreme isolation mechanisms on the same computer with VMs, though, then you're adding an extra layer of defence. Think of it as a hierarchy...

    * Same application instance (eg, web server modules)
    * Separate applications (running multiple instances of apache)
    * User level separation (multiple accounts for the separate instances)
    * File system separation (multiple chrooted instances of apache)
    * OS-level separation (eg, FreeBSD jails and I think Solaris domains)
    * Hardware-assisted software virtualization (VMware, Xen)
    * Hardware virtualization (IBM VM "penguin farms")
    * Separate physical computers

    It might be argued that IBM's virtual machines should be lumped with virtualization, or that separate computers should be split from blades, and things like NAS and SAN complicate things, but you get the idea.

    Theo's looking at the hierarchy starting at the bottom, and seeing a reduction in security. Other people are starting at the top, and seeing an increase in security. Both sides are correct, it depends on where you start.

    1. Re:Theo's pessimism and where it comes from. by aztektum · · Score: 1

      Theo's pessimism and where it comes from. You sure it's not because his rostral anterior cingulate and amygdala aren't working properly?
      --
      :: aztek ::
      No sig for you!!
  29. a google employee has done a good analysis by cpm99352 · · Score: 3, Informative

    As another person pointed out on the OpenBSD list, see http://taviso.decsystem.org/virtsec.pdf for Tavis Ormandy's analysis of various VM's -- attack methods were exploiting bugs in the x86 architecture as well as invalid I/O device communication.

  30. both sides have a point; by LukeCrawford · · Score: 1
    say I have two applications that need to be run; a mailserver and a webserver, say. The most secure configuration is to have one hardware box for the mailserver, and another for the webserver; each box running nothing else.

    Now, if I want to save money, I could combine both onto one box without virtualization. This is the least secure way to do it, as if someone compromized the mail server, they would only need to overcome the user-level isolation to then gain access to the mailserver.

    If I want a setup that is not quite as secure as the first option, but much better than the second, I could create two virtual servers, one for the webserver and one for the mailserver; this way, if someone compromised the mailserver, they would need to overcome both the os-level protections and then find a hole in the virtualization isolation (which, from what I understand, hasn't yet happened with paravirtualized xen- HVM xen is much less secure.)

    when you are running a paravirtualized xen setup, the big thing to be concerned about is the Dom0; you should never have an external IP on the Dom0, as if the dom0 is compromised, it is all over.

  31. Straw man argument by ToasterMonkey · · Score: 1
    I wouldn't be very concerned with Theo's rant. I don't believe the industry at large is pushing VMs as a security solution. Vmware doesn't even mention it as a reason for virtualization, and they sure as hell would if it was a good one. Maybe security is used as a pitch elsewhere, who knows. Somewhere this thing snowballed into a straw man, from the actual posts, to kerneltrap, to Slashdot, we get "Virtualization Decreases Security"... *facepalm* It gets harder and harder to read Slashdot every day.

    This started when a guy on his message list suggested that OpenBSD get a Xen port and believed "Virtualization seems to have a lot of security benefits."

    Theo responds by insulting him, then downplaying virtualization as if it were some kind of toy.

    You've seen something on the shelf, and it has all sorts of pretty
    colours, and you've bought it.

    That's all x86 virtualization is. Further down the postings, you get a better idea of what Theo's opinion of VMs.

    If people were saying:

            "Yes, it increased hardware utilization, and the nasty
            security impact might be low"

    it would be fine.

    But instead we have many uneducated people saying:

                  "Yes, it increased hardware utilization, and it improved security too".

    And that's complete and utter bullshit. All that can be taken from this silly "news" here on Slashdot is that NOBODY had better use security as an excuse to weasel something past Theo de Raadt. He apparetnly has a very good nose for both weasels and security.
  32. A lesson on mis-communication in English by Anonymous Coward · · Score: 0

    After scanning that thread, I was quite amused. This is a classic example of everybody talking about something, believing they are talking about the same thing, but. . . not really. Nobody notices it because nobody states an essential premise.

    We have one poster, "Lee", who states that he feels that Virtualization improves security. . . but he fails to define his point of comparison - more secure than *what*? We have other posters, Theo among them, who state that they feel Virtualization decreses security. . but they also fail to define their point of comparison - less secure than *what*?

    After reading through the posts, I think what this argument comes down to is that Lee feels Virtualization improves security compared to a bunch of users sharing resources of a single computer (e.g. a shared web host, where there is a single instance of Apache on a single instance of whatever OS, and they each have their own virtual websites in seperate directories [as one example]). Particularly where you want to give those users a relative amount of freedom. From his basis of comparison, he is possibly correct (though I suppose the argument could be made that the VM is still not really any safer than a server that is properly setup to be shared by multiple users).

    I think that, the argument that Theo, et. al., are trying to make though is that multiple physical servers can provide guaranteed isolation that a single server running multiple VMs cannot do. So, I think, the basis of comparison for them is that one server is not more secure than multiple physical servers, and that if you are looking at software-based security on a single machine, a software hypervisor is probably not any more secure (and, at least theoretically could be less secure) than the Operating System is. I dunno if that is true or not, as I do not have any expertise in these matters. But, in any case, I found the thread to be a fascinating example of what, appears to me, to be miscommunication, because people feel it's *obvious* what they mean, when they appear to have omitted a necessary piece of information, to me.

  33. Much as I love the analogy... by Anonymous Coward · · Score: 1, Informative

    the cause of the Famine needs to be shared by the idiotic British
    government at the time, and the greedy bastard landowners, as
    well as the fungus. If the Irish had been free to BUY FOOD FROM
    ABROAD not that many people would have starved.

  34. History teaches that you must check your facts by giafly · · Score: 1
    ... or look like a retard. Potato blight is caused by a mold, not a virus. Your on-topic opinion is equally wrong, because if any OS running on your computer gets pwned then the bad guys can use it in their botnet - they only need to crack one not all - so more OS's == more risk.

    The Irish Potato Famine happened because Ireland was growing a small range of species of potato. A virus hit the Potato and it spread so most of the potato's died thus causing the famine.
    --
    Reduce, reuse, cycle
    1. Re:History teaches that you must check your facts by Anonymous Coward · · Score: 0

      Potato blight is caused by a mold, not a virus. Yeah, but you won't be laughing when your computer goes mouldy now, will you? :)
  35. Aesop's Fox and the Grapes by Anonymous Coward · · Score: 0

    Theo is like the fox in the Aesop fable.

    That fox saw some tasty grapes hanging just out of reach on an arbor. Try as he might, jumping and hopping as high as he could, that fox just could not reach those grapes. So the fox trotted away muttering to himself, "Those grapes are probably sour anyway . . ."

    When Theo or his pet project has technical problems with some concept or hardware situation, instead of solving the problem with his OS, he squawks and rationalizes that the hardware/software/whatever is "stupid" and "doesn't work right". Theo is the living example of what Aesop illustrated so many years ago in the fable "The Fox and the Grapes".

    1. Re:Aesop's Fox and the Grapes by PitaBred · · Score: 1

      Oh, you've just got sour grapes that Theo's such a genius... wait a second...

  36. Oh yeah? by Ambitwistor · · Score: 1

    Virtualization, from a security standpoint, is just a firewalling method. It increases isolation between instances, and more isolation is ALWAYS good. More isolation is ALWAYS good? Bah, I think it's a real pain. It makes it much harder for me to write security exploits.
  37. Okay, here's what happened by Schraegstrichpunkt · · Score: 2, Informative

    Theo de Raadt argues that it's more secure to put applications on separate machines than to consolidate them into a single machine.

    L. V. Lammert very inarticulately argues that having a VM provides more security, because otherwise, you're not going to put applications on separate machines, because it's too expensive.

  38. Security == managing complexity by kscguru · · Score: 4, Interesting
    Virtualization is NOT intended for security. Period, end of story, full stop. Security is a secondary effect from having smaller interfaces, and you DO get smaller interfaces with inherent security advantages.

    Here's the first truth of security: your ability to secure a system is INVERSELY PROPORTIONAL to the size of the interface to that system. Every interface point is a potential attack vector, whether direct (an attacker can exploit the interface) or indirect (something outside your control is loaded at interface A, then an attacker at interface B causes A to exploit something). Most security products try to reduce the size of interfaces (e.g. a firewall limits the number of open ports, then further excludes some types of traffic from those ports).

    Look at a general purpose operating system kernel. There are hundreds of system calls (direct attack vectors), hundreds more driver interfaces (indirect attack vectors - driver interfaces are privileged and thus drivers must be bug-free), a few thousand more configuration points (Windows Registery, Linux /sys and /proc trees). Add the libraries that make up the rest of the operating system, and the number of APIs has exploded to thousands, if not tens of thousands.

    Now look at a hypervisor stack. The hypervisor::guest interface is the CPU instruction set (extremely well documented and easy to programatically verify, especially when 99% of instructions can be verified to have no side effects!). Much narrower interface than a general-purpose API. The driver::hypervisor interface is narrower too, since the hypervisor only uses a lower-level interface (e.g. Xen's block device interface, VMware's SCSI interface) that happens to be simpler and better documented. Configuration API is smaller, since it only needs to manage virtual machines, not every possible combination of user-level program and device.

    It's the old microkernel / monolithic kernel debate all over again, where a hypervisor is a microkernel and a general-purpose OS is a monolithic kernel, and the performance loss is small enough that companies are using it in production today. Microkernel have advantages in being easier to secure, more robust in the face of bugs ... monolithic kernels are faster. Is the smaller API (and increased security) worth the loss in performance?

    Here's some security thoughts, based on actual experience with virtualization bugs.

    • The largest number of security vulnerabilities appear in user-level servers, e.g. NAT, DHCP, ssh, apache. Potential commands to these services are unlimited (wide API), often involve text-parsing in C code (inherently difficult), and so they are hardest to secure.
    • A moderate number of security vulnerabilities appear in paravirtualized device emulations. Paravirtual devices are less well specified (medium-width API), so the implementations have more bugs, often from ways the paravirtual device spec doesn't anticipate. (Yes, hardware folks write more complete specs than software folks).
    • Extremely few security vulnerabilities appear in the hypervisor::guest boundary. This boundary is extremely well specified via data sheets and architectural manuals. (narrow API).
    --

    A witty [sig] proves nothing. --Voltaire

    1. Re:Security == managing complexity by Anonymous Coward · · Score: 0

      True. What is interesting is to take an automated complexity metric (such as Halstead or McCabe)and run it aginst OpenBSD source code. What you will find are absolutely dreadful numbers, truly terrible nasty complexity. Theo may claim that his OpenBSD is of high quailty, however impartial metrics tell a completely different story.

      The only way that Theo has managed to keep OpenBSD in line is through pure brute force effort. Quality (as defined by complexity metrics) is not built in. OpenBSD is essentially brittle and only as secure as long as it resists change or enhancement. That is why Theo is a luddite when it comes to new technologies and techniques.

    2. Re:Security == managing complexity by Anonymous Coward · · Score: 0

      and what are you comparing against ?

      the linux code, where userland arguments are
      passed down through layers without checking them
      upfront to see if they point in the address space
      of the process ?

      it was so fun to have to debug some bug with a
      tty ioctl where a bogus buffer would cause irreparable
      all over the kernel, being able to be exploited
      in some 10 or 15 places.

      all complex code is full of bugs. the BSD has the
      merit of having a LOT of engineers able to
      effectively fix any bug in half an hour, and to
      fully understand the brain-damage and embarassing
      limitations of every piece of it.

      the same cannot be said of the Windows or linux
      kernel code.

  39. Lack of process isolation? by tjstork · · Score: 1

    When did segment registers and page tables quit working? I guess I must have missed that errata!

    --
    This is my sig.
    1. Re:Lack of process isolation? by Dwedit · · Score: 1

      They stopped working the minute the program finds a privilege escalation exploit to run kernel code.

  40. Wrong by spun · · Score: 2

    We are talking custom in-house apps, not running DNS and a web server on the same box. I am and always have been a UNIX admin, I was taught this method, and I've seen it done in every place I've worked.

    Dumb AC fanboi. Pick a better reason to dis Windows.

    --
    - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    1. Re:Wrong by Anonymous Coward · · Score: 0

      Dumb AC fanboi. Pick a better reason to dis Windows.

      Vista. :)
  41. Missing the obvious by He+Who+Waits · · Score: 1

    Virtualization increases security against nastyware that isn't aware it's running in a virtual layer. There's nothing to stop nastyware that's written to penetrate (or even exploit) virtual layers. So, yes, virtualization increases security. But not by much, and not for long.

  42. Well that would be an excellent solution... by Jon.Laslow · · Score: 1

    ...the main reason I want to run a VM is to use existing Operating Systems that are written for x86 hardware, and I'm willing to bet that's also the main reason others use VMs, too. If you change the architecture of the HyperVisor, now you have to write OSs for that, and say hello to another seven versions of Windows plus thousands of additional *nix and *bsd distros.

    1. Re:Well that would be an excellent solution... by IvyKing · · Score: 1
      I think what he is saying is to do a 'clean sheet' hardware design and then use a VM to emulate running on a PC. One of Theo's points is that the PC architecture is a bloody mess as it has to look like a early 1980's PC-AT plus add-ons.


      A couple of examples of design eff-ups in the PC include:
      Using interupts below 20H when Intel specifically said not to use those interrupts
      Using the NMI for the 8087/80287 when Intel specifically said not to use the NMI for the co-processor.


      The BIOS itself is a hell of a mess, Open Boot firmware is a much nicer interface to work with.

    2. Re:Well that would be an excellent solution... by bhima · · Score: 2, Interesting

      I have sort of mused for a while that adding native hypervisor functionality (or would it, in this case, be native para-hypervisor?) would be an interesting path for next generation firmware, like Open Boot Firmware, to take.

      I also think that another one of Theo's point that is getting lost is that _anything_ that adds complexity also adds risk and should be considered unsafe. It may be that it adds value and is therefore worth to add and to audit but it still adds risk. This I wholly agree with, which is why I also don't see the rational behind wanting to run OpenBSD in any kind of virtualized environment unless you are a developer, tester, or researcher.

      --
      Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
    3. Re:Well that would be an excellent solution... by Sancho · · Score: 2, Interesting

      Security is all about layers. It's about doing many things to keep your systems from becoming compromised, so that if any one of them fails, hopefully the others will minimize or mitigate the damage. If I jail a service, that's one more barrier that an attacker must overcome to get control of the bare metal. In this case, although you're adding complexity, it's possible that it increases security overall. If that process which I jailed happens to be init, and it happens to load an entire new instance of the OS, that doesn't change anything.

      What can't be said is that virtualization will be as secure as running several, physical boxes (assuming there is no trust relationship between the boxes). In a virtualized scenario, a compromise on either the host or any of the guests will make it easier to attack the other guests/host. In a scenario where each machine is on separate hardware, this is not the case.

    4. Re:Well that would be an excellent solution... by mr_mischief · · Score: 1

      Another physical machine in the same rack on the same VLAN is still easier to attack than repeating the same attack from across the public network. There's much more bandwidth with much less latency to use. There are also potentially whole new classes of attacks that weren't available from outside the local network (ARP-based attacks, convincing the switch to go into dumb hub mode through various means, duplicating IPs on the LAN) as well as whole classes of attacks made easier by the proximity and network speed (smurf, ping flood, vulnerability scans).

      Yes, keeping OS installations on separate physical machines instead of co-hosted virtual machines does make them more secure. However, the further statement that compromising one server in a rack does not make it easier to compromise other physical servers in the same rack does not follow. It is indeed easier to attack another physical machine once you're in a LAN or VLAN segment even though it doesn't give you the same kind of heightened access as a hypervisor or hardware emulator.

    5. Re:Well that would be an excellent solution... by Anonymous Coward · · Score: 0

      A secure system has no attackable vulnerabilities. It doesn't matter how many layers there are, only whether at least one of them is flawless. But we as an industry don't care to invest in making that happen (and so we haven't quite figured out how) so we settle for adding more stumbling blocks to make attacks more inconvenient, in hopes someone else will be a more attractive target.

  43. VMWare rocks but... by Anonymous Coward · · Score: 0

    For application testing and tinkering with various operating systems VMWare and the like are a godsend.

    For hosting providers given the current state of things I can see the advantages of advertising 'root' access to a virtual machine, this is useful but not ideal.

    For certain high reliability tasks the ability to pause and migrate VMs between systems is compelling.

    From my POV the 'buz' around virtualization does not justify what the market demand should be.

    Virtualization is great for CPU and Memory manufacturers but for consumers the better solution is ususally improved security access controls/jails/etc that allow isolated execution of untrusted applications. There is no reason this should require execution in a virtual machine.

    Virtualization is basically a gross simple hack rather than solving a problem at the OS and application levels where they belong.

    VMs do add some interesting security twists...especially giving people root access they can have lots of fun with network access (ping -f works:) (L2/L3) and mess with the operation of other virtual machines by configuring bridges and stealing data transiting the network - Requirement for Security for access to external resources is one reason I believe the VM approach is fundementally incorrect from a security POV.

    However I disagree that its harder to write a secure VM environment than a secure OS. Popular VMs benefit too much from economies of scale and overall less complexity when compared with the security models and escalation opportunities of modern operating systems.

    1. Re:VMWare rocks but... by mrpdaemon · · Score: 1

      VMs do add some interesting security twists...especially giving people root access they can have lots of fun with network access (ping -f works:) (L2/L3) and mess with the operation of other virtual machines by configuring bridges and stealing data transiting the network. Not necessarily. For example, in VMware ESX server the default configuration is that a VM can not switch any of its virtual NIC's to promiscuous mode unless explicitly allowed to do so.
  44. I think Theo is making some unstated assumptions by Egdiroh · · Score: 1

    I think Theo is making some unstated assumptions. If you assume that in the absence of virtualization would result in the different virtual machines each being their own server, then if root level access on one VM would allow you to take over the host OS, then the security of each machine on the server has been reduced to the security of the weakest machine on the server. And since it is his assertion that virtualization would increase utilization, it is reasonable to conclude that there is a good chance that that is the assumption he is making.

    The counter assumption is that in the absence of virtualization all the services that would have run on the VMs would just all run on the same server, then virtualization can increase security because no one service may constitute a top to bottom root exploit but some combination of them may. Of course adding the extra overhead of the VMs potentially decreases the utilization your services get from the machine. However most of the time when security is discussed it is this scenario they are talking about.

    And of course the reality of what happens in the field is that there is a little of both going on. You have both server that did too many things being broken up into VMs, and clumps of smaller servers being replaced with a single larger capacity VM server.

  45. He's right, in theory by Chris+Snook · · Score: 5, Insightful

    [disclosure text="I work for a company that sells virtualization."]

    Theo's expertise, and indeed that of the entire OpenBSD project, is in the realm of provably correct security. Virtualization adds yet another layer where something can go wrong. Sure there are and will be bugs. We're finding them and fixing them, just as we've always done. From an absolute security standpoint, Theo's right.

    Of course, most businesses couldn't care less. Businesses don't view security as an absolute thing, because human factors make it generally impossible. Businesses view security as a risk, with associated probabilities and costs, worst-case scenarios, likely scenarios, mitigation strategies, and ultimately, diminishing marginal returns. For businesses using virtualization to consolidate systems, it generally reduces risk because it makes it easier to implement policies that mitigate human factors.

    To be precise, virtualization *technology* decreases security, but virtualization *solutions* increase security, at least when done well, which is much more practical than the technical absolute of "done right".

    [/disclosure]

    --
    There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
    1. Re:He's right, in theory by afidel · · Score: 1

      Wow, great post. It's similar to what I said up higher in the article in a much more articulate manner. Theo and company spend so much time in their security box that they fail to realize the complexity of running real world systems. Just because there is a theoretical attack surface for virtualization doesn't mean that it makes real world systems less secure, in fact it is often quite the opposite. From a security standpoint the ideal solution is each module of an application running on a seperate box not connected to the network running a minimal permissions based OS. In the real world we're lucky when we can get everything into it's own OS container, which virtualization makes more cost effective and therefore likely to happen.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    2. Re:He's right, in theory by LurkerXXX · · Score: 1

      I don't think Theo ever argued that businesses don't have to weigh multiple variables in their decisions on what to implement.

      Someone stated that VMs increased security. Theo said they didn't. As you admit. They don't.

      Theo never argued no company should ever run one. Some companies don't have enough money for the extra computers/electricity/space/etc it would take to run unconsolidated. Tradeoffs happen. I've weighed the options and I virtualize a number of machines because it's the overall best thing for me to do. Not the most secure thing, but overall best thing with the resources I have available.

      I think Theo understands that fine. What he didn't want was folks to fool themselves (or others) into thinking they were actually more secure by doing it.

    3. Re:He's right, in theory by Anonymous Coward · · Score: 0

      > Theo's expertise, and indeed that of the entire OpenBSD project,
      > is in the realm of provably correct security.

      Do you know what ``provably correct'' means? No, it doesn't mean
      that the code was audited. It means that there are formal logic
      requirements that specify the functionality of the system, and that
      those requirements have been mathematically proven to be fulfilled
      by the software.

      OpenBSD ( which I run and love ) is very, very far from provably
      secure.

    4. Re:He's right, in theory by Chris+Snook · · Score: 1

      I argue that virtualization provisioning improves security by improving homogeneity in the data center, reducing the potential for human error. Human error is a far greater security risk than architectural defects.

      --
      There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
    5. Re:He's right, in theory by Lost+Race · · Score: 1

      One of my advanced math professors defined a mathematical proof as whatever it takes to convince mathematicians. Sure, there are formal techniques but non-trivial proofs are rarely 100% formalizable (i.e. they can't be completely expressed in predicate calculus). General purpose computers generally can't be formally proven to be secure due to the halting problem (not to mention vagueness in the definition of security) so "provably secure" in practice means "you can convince Theo that it's secure".

  46. Security granularity too big by Animats · · Score: 2, Interesting

    I'm always amazed that virtualization on x86 works at all. The architecture didn't support it, and VMware dealt with that by dynamic code patching. Then Intel and AMD both added some hardware support, but 1) incompatible between Intel and AMD, and 2) single-layer (you can't run a VM on a VM on a VM, unlike IBM mainframes, where that works quite nicely. And then there's the issue that you now have two levels of scheduler, which may or may not play well together.

    But those aren't the real problems. From a security standpoint, a VM running a whole operating system is an overly large security domain. It doesn't even contain, say, exploitable PHP scripts on a server, let alone a rootkit. In fact, almost any exploit that will work on a standalone server will work on the same server inside a VM, and can cause just as much trouble on the net. Now you can have multiple corrupted VM partitions!

    What we're really seeing is that server virtualization is a way to unload security worries from the server farm operator (be it a hosting company or an in-house operation) onto the user. If the server operator just gives the user an empty partition and takes no responsibility for maintaining it, it's cheaper to be a server operator. Server management is easier. But it's no more secure from the standpoint of network, user, or data protection. Too much code in one security box.

  47. Two types of security by QuasiEvil · · Score: 2, Interesting

    Ugh, I hate it when I have to agree with Theo, but in this case, I think he's got a point. Hypervisors will have bugs, and some small portion of those will lead to security holes. I don't care how carefully the code is audited, when you're dealing with handling an architecture this nasty, there will be bugs. Because of the smaller amount of code and services that a hypervisor provides, it should be easier to get all the big bugs out, but I'd be willing to bet that some small ones will hang on, undiscovered, for some time.

    As far as VMs and security, there are two types of security - defense against the malicious, and defense against the retarded. While VMs may not add much in the long term against the malicious (and may even expose more risk), I'd argue right now they're reasonable tools of isolation, until virtualization becomes mainstream and crackers get wise to exploiting the host machine.

    They are effective, from a defense against the malicious standpoint, for isolating old platforms that you continue to need, but can't be exposed to the world. We have a proprietary tool that only runs on NT 4 (we've tried 2k, XP, etc. and no dice) that we absolutely must have at work. NT4 is no longer patched when security issues are found, and there are no longer drivers for the hardware we've had to move it to. So we run it in a VMWare VM that has no network access. Problem solved.

    I'd argue that VMs are very effective on the "defense against the retarded" side. We have a shared departmental webserver here my job. I'm the main admin in my spare time. However, when they merged a bunch of groups, they made us share the box with them. Thus, management mandated they be allowed to change things as root to fit their needs - adding users, resizing LVs, fiddling with apache, etc. They kept fucking up the box and breaking our stuff. So eventually I loaded up Xen and gave them their own VM that they could break in any way they wanted. Tada - their virtual box is always screwed up, mine stays up all the time, and management is happy because we didn't need more hardware.

    Arguably, the above also fits within the greater utilization purpose that I see being the big driver for virtualization. Realistically, most production boxes are far oversized for what they do. If you could stack virtual boxes on real iron to get better asset utilization, that's going to be the driving force for business, as it's a simple, quick way to reduce costs.

  48. Networking Decreases Security! by erroneus · · Score: 1

    You're Broadcasting an IP Address!!!!

    Seriously. It goes a bit too far to suggest that virtualization decreases security simply because of the added accessibility or mode of operation. But it's not "untrue" either. But to ignore the benefits of virtualization because of unknown but presumed added risk would be like securing your server by removing the networking from it. Yes, there are risks, but they must be balanced against the benefits.

    And as for attack angles against a virtualized server? Well, you'd just about have to compromise the host first anyway and by that time, the game is already lost. (Now if someone were stupid enough to make the virtual machine's management interfaces available to the internet, that's ANOTHER problem) But otherwise, all the same steps needed to compromise a virtual server are pretty much the same as compromising a server running directly on the hardware.

  49. Theoretics versus the practical by tearmeapart · · Score: 1

    I know that this will be probably marked as flamebait, but I have to at least partially agree with my fellow Canadian (Theo). To me, all forms of virtualization are never going to provide 100% security. To me, virtualization is a lot like using a NAT in a network: For a person smart enough, the 'security' in a NAT is easy to get around (check out http://www.google.com/search?q=+site:www.merit.edu+nanog+nat+security for evidence).

    However, what Theo skips over is that both NAT and virtualization are great for keeping out the riff-raff. At least on my home connection, the network traffic outside of the NAT is at least 2 packets/second of bad stuff (measured via FreeBSD 7.0's security log/emails), and inside the NAT the traffic is less than a packet/day of bad stuff (when all Winblows machines are off). I believe virtualization can do the same and keep virii/spyware/bugs/etc. contained and better monitored.

    So in conclusion:
    In theory, I believe Theo is right.
    In practice, virtualization is probably a good thing for enterprises, just as NAT is a good thing for home users.

    I am hoping that people will stop yelling at each other and realize that Theo likes everything to be practically and theoretically secure, and most of us just care that our machines are "practically secure enough." However, as botnets perhaps become more profitable, it seems that they are getting smarter, and have been using multiple exploits for quite some time, so Theo might have a point.

    1. Re:Theoretics versus the practical by maxwell+demon · · Score: 1

      To me, all forms of virtualization are never going to provide 100% security.

      Of course. The only way to get 100% security is to keep your computer switched off. Well, thinking about it, even then there are local exploits where others may switch on the computer ...
      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Theoretics versus the practical by Anonymous Coward · · Score: 0

      If you don't see the same number of packets inside and outside your NAT, it is also serving as a firewall, and you would be equally protected if you just used the same firewall functionality without translating addresses.

  50. Once again... by WK2 · · Score: 1

    The technology itself does not add or subtract security. It all comes down to how you use the technology.

    A lot of people use virtualization to combine physical machines into one. They do this for utilization, and not for security. I can see how this might make the machines less secure, since if you hack one virtual machine, and break out of the hypervisor, you now have 20 (virtual) machines hacked.

    However, there is another common way to use virtualization. A desktop user might surf the web in a virtual machine. We have been told that this enhances security. It does, using the classic "layers" solution. Not only does a hacker have to exploit the user's browser, but he also has to break out of the hypervisor. The hacker doesn't know what hypervisor he needs to break into beforehand, and his time is limited to the amount of time the user spends surfing the web. Most likely, the exploit was automated, will not break out of the hypervisor, but instead die when the hypervisor is shut down, and the hacker will never even notice. Compare that to having your machine compromised as soon as a hacker exploits one of the flaws in firefox.

    --
    Write your own Choose Your Own Adventure. http://www.freegameengines.org/gamebook-engine/
    1. Re:Once again... by rawler · · Score: 1

      Sorry, but I think this belief is flawed. Many payloads for different types of automated attacks such as trojans and worms today are smart enough to be dynamic and handle many different environments. I.e. they detect what mailer you're using and use it to send spread it's word, to add authenticity. It detects what I'm, what addressbook and what browser you're using, to skim for passwords and similar to mail back to it's master etc.

      I think worms, soon if not already will contain detection mechanisms to exploit a variety of hypervisors. If nothing else, it will most likely be able to crunch some numbers (say, it's part of the storm botnet) and dehash your admin p/w which for most systems will be the same in all servers.

    2. Re:Once again... by Anonymous Coward · · Score: 0

      It's depth. Security is about security in depth. Each layer can add to the complexity of cracking the security. You have a guard at the entrance of the courthouse, and another standing by the judge. A committed attacker can get by both, but it ups the level of commitment you have to have and decreases the number of mistakes you can afford to make as attacker.

      Running IE inside a vm under solaris is obviously more secure than running IE directly on your box. Most, but not all, attacks will stay inside the box and can be wiped away. Without the vm, all attacks are basically fatal.

      And "de-hashing your admin password"? Who would not firewall their vm from the mother system? Why would you give direct access to the child of the hash? Is this some kind of crazy windows problem? Or are you assuming that you would not have your vm's firewalled from each other? Or that you would use the same admin password on the mother as on the children and allow access from the children into the mother?

      Those are all problems you would have as well with a physical farm as with a vm farm - bad administration.

  51. One pb you can avoid by this+great+guy · · Score: 1

    Virtualization is no doubt a complex problem to get right, but it's only one problem.

    And it's one problem you can avoid by not using virtualization.

    Theo's point is a very simple, obvious fact. Why is this necessary to even argue about this ? He is not saying virtualization is useless. He is not saying it has no practical uses in the real world. He is just saying it reduces your overall security by introducing new potential attack vectors.

    One concrete data point: a VM running under QEMU 0.9.0 can escape the virtualized environment by exploiting buffer overflows in the code emulating the virtual NIC. If you run under a VM you are vulnerable, else you are not. Remind me why you are arguing about this again ? See http://taviso.decsystem.org/virtsec.pdf for a bunch of other vulnerabilities recently discovered in VMware, Xen, QEMU, etc.

  52. Forget producing it. by camperdave · · Score: 1

    It takes more calories to produce a child then you get from eating them.

    Forget producing them. Have you ever tried keeping up with a kid who is trying to run away from you? You'll burn more calories trying to catch them than you'll get from eating them.

    --
    When our name is on the back of your car, we're behind you all the way!
  53. See a real virtualization security hole by Anonymous Coward · · Score: 0

    Check out Parallels .mem memory dump files written out on suspend.

    Read the whole of the memory of the emulated machine. Whatever it contains.

    1. Re:See a real virtualization security hole by PitaBred · · Score: 1

      If you're running exploitable services on the host as well as running virtual machines, you're doing something seriously, seriously wrong. But hey, all security can be screwed up by a sufficiently incompetent admin, right? Just run all processes as root under OpenBSD and see what happens.

  54. Re:History is rewritten once again.. by MyrddinBach · · Score: 1

    I have to pipe in here about the fallacy of the irish potato "famine" and the rewriting of history by the English - even if it is off topic a bit.

    There was no "famine" in the true sense in Ireland. Read the REAL history.

    This is what happened -

    At that time in Ireland there were actually many many different crops still being grown, sheep and cattle were being raised. There was lots of food to go around - even plenty of it. What was going on was that the English - being the great oppressers that they were (and still are) at the time were harvesting all this food and shipping it via protected and secure means to their own tables. The only food they did not cart off for themselves was the potatoes. They basically stole all the other food that was being produced at the time for themselves - leaving the irish with nothing to eat but potatoes.

    So yes a blight did hit the potatoe and many people starved.. but it wasn't for lack of enough food being produced.

    --
    You can ping 1208941928

  55. It's easy to defeat Theo's argument by Morgaine · · Score: 4, Insightful

    > CAUTION: flame war ahead.

    There doesn't need to be a flame war, because in this particular instance Theo's argument has a gaping hole in it. Consider the following two system architectures:

    1) An ordinary multi-function Unix-type system which also runs a non-trivial component that is exposed to the world (all non-trivial components have bugs, as Theo is right to point out, and hence are attack vectors).

    2) A machine running 2-guest virtualization, in which the non-trivial component runs in one guest, and the rest of the functions run in another.

    Now consider what happens when the world-facing component gets compromised, and by one of many methods (because sysadmins are fallible) the attack gets promoted to root privilege. Security has failed in one guest, but has it failed in the other? Not necessarily, depending on whether the sysadmin has made repeated blunders and not just one. (Eg. a fool might be keeping ssh keys on the public-facing guest ...)

    In this scenario, the isolation created by virtualization has given the syadmin an additional bulkhead against his own fallibility, and that is worthwhile for security, not only for better hardware utilization. The partitioning of the application and O/S space has reduced the cross-section of software open to attack.

    Theo's argument also doesn't bear scrutiny at the hypervisor level, because while an O/S in dom0 is just as fragile as the one in domU that runs an exposed application, the instance in the hypervisor isn't exposed to attack. Theo seems to miss the distinction between endpoint fallibility and fallibility in the conveyance and resourcing that is done by hypervisors. They're different.

    I like Theo's hard stance on security, but on this issue he's handwaving.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:It's easy to defeat Theo's argument by Chris+Mattern · · Score: 5, Insightful

      I don't think you've entirely grasped Theo's argument. He argues that your reasoning is invalid *because it assumes that the interface between the O/S in dom0 and the hypervisor has no security holes in it*. You don't get to just state that the hypervisor isn't exposed to attack. Now, you can argue that because of its limited nature, and because great pains are taken to avoid unwanted interaction between the hypervisor and the virutal O/S, it is more secure than ordinary software interactions. But I think Theo is not arguing that VMs are less secure than running all your stuff in one O/S. I think he's arguing that VNs are less secure than running your services *on actual separate machines*. And that stands a good chance of being true.

      Chris Mattern

    2. Re:It's easy to defeat Theo's argument by LurkerXXX · · Score: 1

      Actually I think he might argue that chroot'ing has been audited a lot more than any hypervisor and might be the more secure approach in many/most instances if it's set up correctly.

    3. Re:It's easy to defeat Theo's argument by Anonymous Coward · · Score: 1, Insightful

      It depends on where you're coming from: If you're coming from a single system with multiple services, then virtualization can add a layer of separation and thereby increase security. That's not how virtualization is commonly used though. If you're coming from one-computer-per-service architecture, then virtualization increases hardware utilization and reduces the barriers between the individual services. That said, it's still better to move services into separate virtual machines on one server than to consolidate servers onto a single OS instance, so if the decision to decrease the number of machines has been made, virtualization must still be seen as a security benefit. The only downside is that more admins will decide (or have it decided for them) to consolidate because virtualization is available.

    4. Re:It's easy to defeat Theo's argument by CAIMLAS · · Score: 1

      That's a possibility, but consider: more bugs don't only inherently come with added complexity, but it's also more difficult to sort out that complexity from an attacker's standpoint - especially when it's almost recombinant, with so many different options for virtualization.

      Think of it as open-faced obscurity. Not only does an attack have to take advantage of the world-facing component and operating system, but then it's got to take advantage of the underlying host OS. That host OS isn't always going to be the same, let alone the same version.

      Or a (crude) analogy: an interrogator can try the same technique on three psychopathic murderers and only see results on one of the three. Why? Because each of those three psychopaths are going to have different underpinnings that make them tick. Even if their world-facing qualities are the same, and their motivations similar, no two are going to be -exactly- alike. Flawed or not, each additional layer between the shell and the delicious nougat in the center is going to protect all that much better.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    5. Re:It's easy to defeat Theo's argument by Chris+Mattern · · Score: 1

      Think of it as open-faced obscurity. Not only does an attack have to take advantage of the world-facing component and operating system, but then it's got to take advantage of the underlying host OS. That host OS isn't always going to be the same, let alone the same version.


      That may indeed be a tough nut to crack. But it's still not as secure as hosting the components on different physical machines and having no underlying host OS to take advantage of. You've completely eliminated their ability to target it through the simple mechanism of eliminating the target altogether.

      Chris Mattern
  56. VT-x? by Typoboy · · Score: 1

    paths for rootkits to integrate and hide AFAIK, what this means is, if the real box is already rooted (or equivalent), THEN the rootkit can set itself up as the hypervisor or whatever. That doesn't say anything about the security of VT-x. Actually, it does in one sense. If VT-x makes it harder for the now-guest operating system to detect the rootkit (because the detection software is now part of the virtualized box), doesn't that also say that it should be harder for malware inside a virtualized box, to break out, than if it were possible for detection software inside to detect the malware outside?

  57. With all due respect to Theo but it must be said.. by ceeam · · Score: 1

    Tits... sorry, exploit examples, or GTFO.

  58. DRM a joke to Virtualization by Anonymous Coward · · Score: 0

    In other news, Virtualization reduces DRM from "pipe dream" to "joke". Virtualization is the ultimate man in the middle. It sees everything and controls you're ability see to anything. A hardware virtualized host is living in "The Matrix". RDTSC -- virtualized, CPUID -- virtualized, RTC -- virtualized, page tables -- virtualized, memory access -- virtualized at will, LAPIC, IOAPIC, PIC, PIT -- virtualized, interrupts, breakpoints, and faults -- virtualized, motherboard -- virtualized, PCI/PCIe chipset virtualized, BIOS -- you guessed it...

    Essentially what used to take a $1M in logic analysis equipment is all there for a free download of Xen.

    Unless a DRM requires access to a secure off-host authN/authZ system it is naked for all the world to see.

    1. Re:DRM a joke to Virtualization by maxwell+demon · · Score: 1

      Of course all virtualization won't help much if anything important happens out of the control of the VM. This includes your DVD/whatever drive, your graphics card/monitor, and the license server you have to contact to with some DRM schemes. VMs may help with the breaking of such DRM schemes by making the data streams visible, but it cannot reveal anything going on in your hardware and/or on external servers.

      For a simple example how a DRM scheme might work: The DVD drive and the graphics card set up an encrypted data stream (basically the same way two computers set up an ssh connection through the untrusted internet), and the computer only issues commands to the drive and graphics card, and transports encrypted data from one to the other. There's no way to break this scheme just through a VM; you'll have to analyze your hardware to find out the secret keys.

      --
      The Tao of math: The numbers you can count are not the real numbers.
  59. Chroot is not a security tool by Anonymous Coward · · Score: 1, Informative

    Actually I think he might argue that chroot'ing has been audited a lot more than any hypervisor and might be the more secure approach in many/most instances if it's set up correctly.

    Some very well informed people might reply that "chroot is not and never has been a security tool."

    1. Re:Chroot is not a security tool by LurkerXXX · · Score: 1

      It certainly can add to security if set up right. Setting it to run as root is not setting it up right.

  60. Mod parent up by mengel · · Score: 1

    While I love Theo when he's being outspoken (here he's clearly right, on principle -- humans write buggy software, and adding more code in this fashion makes it worse because there are more, orthogonal vectors of attack...) it is still good to back things up with empirical data, as the parent post does.

    --
    - "History shows again and again how nature points out the folly of men" -- Blue Oyster Cult, 'Godzilla'
  61. MOD PARENT UP by Abcd1234 · · Score: 1

    Finally, I see someone gets it! The issue, here, isn't whether a vulnerability in software on one VM could lead to a compromise of another. The issue is that the VM *itself* maybe insecure. And an exploit in the VM can lead to the entire machine, and all VMs on it, being compromised. *That* is the additional layer of software Theo is referring to, software which may be buggy, and is most certainly subject to attack.

  62. What Theo is really saying.... by rahvin112 · · Score: 1

    What Theo is really saying is that virtualization is insecure until OpenBSD has a virtualization system integrated into the kernel in 2020.

    Theo criticizes the security of every new technology until it's implemented into OpenBSD (I bet a quick search would show 100's of examples of this, in fact I think he said something similar about SMP when Linux first implemented it), it's part of his jealousy of the gnu/Linux system having more developers and resources than OpenBSD and his belief that only OpenBSD is secure.

    1. Re:What Theo is really saying.... by Anonymous Coward · · Score: 0

      Theo is so deluded. It is obvious to anyone with an IQ over 100 that Theo is jealous of the capabilities of other operating systems. He bashes the rival technology until he can figure out how to implement it in OpenBSD. The reason OpenBSD doesn't have virtualization is that no one in the OpenBSD project has the time, knowledge or money to do it.

      If and when OpenBSD ever supports virtualization, it will be a like the second coming of Christ. Theo will trumpet it from the rooftops--"mother, pin a rose on me!"

  63. *sigh* by jon3k · · Score: 1

    He's such a bright guy, why does he continually have to act like a spoiled child?

  64. wrong argument by The+Monster · · Score: 1

    I haven't seen anything that convinces me one box with two virtualized hosts is any more secure than two seperate hosts on two seperate [sic] boxes.
    That's not really the point. The question is whether one box running each service in its own virtual machine is more secure than the same hardware running the same services on the bare iron. If the networking is configured to not allow access to the bare iron from anywhere other than known trusted IPs, the theory is that someone subverting a service may take total control of the VM it runs on, but be impeded from being able to go further, because access to the other VMs has to be through virtual network interfaces.

    For client machines, using a VM sandbox to run your web browser could keep the host from being compromised by malicious code execution. I can't imagine how that could make browsing less secure.

    For servers, what I'm really looking forward to is a hypervisor that trips on security events such an attempt to remount r/w a filesystem that's been locked down. It would respond to such events by forking off the VM into an ad-hoc honeypot/tarpit.

    --

    [100% ISO 646 Compliant]
    SVM, ERGO MONSTRO.

  65. Really? by lordSaurontheGreat · · Score: 1

    In other news, researchers have recently concluded that levels of personal privacy increase inversely to the number of people you live with!
    In other words, THANK YOU CAPTAIN OBVIOUS!!! WE WOULD HAVE NEVER KNOWN!

    --
    Consider yourself spoken to.
  66. Security through obscurity by PCM2 · · Score: 1

    I understand that reality may not be quite as tidy, but it still seems like a virtualized system would be much more secure that a non-virtualized system, if only because the increased level of knowledge involved means a smaller number of hackers capable of exploiting both layers. What am I missing?

    But that's just security through obscurity. You're kind of assuming a probability-based model, where the goal is to lower that X percent chance that some random hacker might wander in and decide to go at your systems. What if you know for a fact that somebody is already out to get you? What if you're in a highly competitive industry that's prone to industrial espionage? What if you're the United States government? In such cases, the fact that exploiting a vulnerability is difficult to do, and therefore not many people have the required level of skill, is not relevant. You can assume that your enemies will find those people, and then all that "much more security" instantly vanishes.

    --
    Breakfast served all day!
  67. Except that the VM isn't exposed by Anonymous Coward · · Score: 0

    The issue is that the VM *itself* maybe insecure.

    You're just not getting the problem with Theo's position at all. Of course the VM is insecure, because all complex systems have faults. That is not under dispute.

    But those faults (WHICH MUST EXIST in the VM and hypervisor) are not exposed to attack in the same way that a guest operating system is. The hypervisor O/S is almost entirely transparent to the attack vectors, and that's the issue that Theo conveniently ignores to give himself a platform.

    Theo's premise would be valid only if all VMs including the one at hypervisor level were endpoints so that they would all be equally at the mercy of attacks. But they're not endpoints. The hypervisor is just a conveyor and a resource manager and simply can't be the target of attacks against an endpoint guest, and traffic destined for endpoint guests doesn't go through or into or anywhere near other VMs that run systems and apps that are not endpoints.

    When you shoot at a window, the window won't break if it has no glass to intercept your shot. That's what hypervisor VMs are like ... you can't target them.

    The one place where Theo's rant makes a valid point is when he says that new code has more bugs than well tested code --- yes, that is undoubtedly true, and "new code" definitely includes virtualization code. But it's not specifically a point against virtualization but against all change, and in favor of stability and the slowing down of development. If that had been his point then fine, but when he singles out virtualization then he's just off on another "Theo rant".

    It's a pity that he goes off on these rabbit trails, because he's good at what he does and shouldn't need to. But boy does he love a platform on which to rant, even when his point is pretty thin.

    1. Re:Except that the VM isn't exposed by AVee · · Score: 2, Insightful

      The hypervisor O/S is almost entirely transparent... "No really officer, my door was almost entirely closed. I really don't understand how they got in."

      And thats one of the reason why, as much as I totally *hate* to admit it, Theo is right about this.
      On of the other reasons is the simple fact that running more code on your system means more potential bugs, allways. Or perhaps the stupid trivial fact that it doesn't really matter if the machine that is pwned is virtual or not, its not like those creditcard records suddenly become virtual when you start using Xen.

      I *might* *maybe* *sometimes* help security a bit when you are using it to separate software which was allready running on the same machine, but I have yet to find the first real live scenario for that. After all, if it's allready running perfectly on the same machine, what would you gain from virtualization?
    2. Re:Except that the VM isn't exposed by Anonymous Coward · · Score: 0

      Well I'm not going to knock anyone for being cautious when it comes to security, but I can't name one single instance in which a hypervisor-level O/S was compromised when it carried no exposed network endpoints nor does implicit data transformations of the NAT type. *In theory* it might be susceptible to attacks if it looked at traffic content as the data wizzes by into a guest O/S, but I can't imagine why it might be coded to do that since it has no need to look.

      One of the few ways to compromise a dom0 is to find a bug in the guest-resources handling code, then attack the guest and hope that the bug is triggered at hypervisor level. But it's very indirect. When you can't target something but have to work by side effect, your options for evilness are pretty limited.

    3. Re:Except that the VM isn't exposed by Lally+Singh · · Score: 1

      I think the security tradeoffs are worth it, once confidence in the VM is built.

      Take this argument: take this VM code, and code review, fuzz, test, and otherwise* make it as secure as humanly possible. /If/ you got the VM locked down pretty well**, then it would add a _lot_ of security to the rest of the system. The tradeoff is that the VM is a single piece of code --- compare this to the sheer amount of code it could help really lock down through virtualization.

      * Offer $25k at Defcon for a hack
      ** Which is quite possible
      *** It's a ring 0, kernel-level system. No external deps. All the vulnerabilities have to be in it, not any piece of code it depends on (as it's self-reliant)

      --
      Care about electronic freedom? Consider donating to the EFF!
  68. hypervisors are complex by Anonymous Coward · · Score: 0

    As an ex-developer for VMware ESX Server I can tell you that the system is extremely complex. There is a complex kernel for running virtual machines, and a whole lot of fancy difficult to grasp stuff going on in the Monitor. It is apparent that assuming that a very large and complex piece of relatively new software is bug-free and secure is a dishonest sale's pitch. Especially when you compare it to the simplicity of using separate under-utilized machines or using simpler, more mature and much better understood chroot jail environments on BSD.

  69. In general, he may be right. In specific cases... by JimMarch(equalccw) · · Score: 1

    Let's take my situation. I boot Linux, fire up a virtual machine manager (VirtualBox), start WinXP to run just those Win apps I have to have - which don't need Internet access, so I disable that most of the time in XP. My internet stuff is all done in Linux.

    Question: am I now running XP in a more secure fashion versus using it for everything? HELL YES. And I would argue this is more secure for Linux itself, because I don't need to run Wine with it's own set of security issues.

    Jim

  70. Translation by Anonymous Coward · · Score: 0

    Theo's OS doesn't have Xen so therefore Xen is worthless crap.

  71. Bluepill and Vitriol are IRRELEVANT... by Anonymous Coward · · Score: 0

    Bluepill and Vitriol are irrelevant when you already run an hypervisor on your system.

    This is something people have a lot of problem grasping, but you are NOT installing a rootkit hypervisor on a machine that already is running an hypervisor. Sure, there have been some security issues (Red Hat fuxx0red pretty bad with Xen, allowing a file in a guest to r00t the hypervisor, but that was a Red Hat problem). Hypervisor are *small* compared to full OSes. They are *way* easier to secure than a whole OS, even if this OS happens to be OpenBSD.

    People crying "but Bluepill or Vitriol can r00t your box" conveniently ignore the fact that it's not working when your machine is already running an hypervisor...

    And they'll never be able to prevent being detected by a timing attack (that's not an opinion, it's a fact).

    So please please... Enough paranoia. Go install Xen and see how complicated it is to run Windows at reasonable speed + all the hardware working fine and now you come back and you tell how Bluepill or Vitriol will be able to stealthy r00t a box. Note that I'm not saying it's impossible to r00t an hypervisor but that's it's impossible to install a stealth hypervisor that can then run another hypervisor that can run guests inside VMs (on the current generation of CPUs it's simply impossible: and good luck emulating VMs instead of virtualizing them and pretending it's still a 'stealth' technology... I can't help but laugh about that one ;)

    In addition to that from a security point a view it's not just because there's an hypervisor that the guest OSes are more secure: it's also because it's way easier to re-image them, to transparently move them from one machine to another, to scan them from the host, etc. that they are more secure. There are a lot of reasons that makes a virtualized OS being a smarter choice from a security point of view.

    Sure, there can be hypervisor-exploits. But will they stand the Tripwire integrity check you'll run on your hypervisor + VMs that you just took offline and are running by mounting the drives read-only from another machine? Remember that it's *trivial* to do because you just migrated your *running VMs* to another hypervisor.

    I'm a big fan of Theo, but sometimes he doesn't tell the whole story.

    Most people commenting in this thread have no experience running an hypervisor, live migrating VMs and running integrity checks on read-only hard drives, so take their words with a grain of salt...

    As a final note, wheter you like it or not virtualization as so many advantages (security, when done corretly, being one of them) that it is here to stay.

  72. He's basically correct by eer · · Score: 1
    It IS possible to create secure hypervisors and secure virtualization (see significant research results summarized in P.A. Karger, M.E. Zurko, D.W. Bonin, A.H. Mason, C.E. Kahn, "A Retrospective on the VAX VMM Security Kernel," IEEE Transactions on Software Engineering, vol. 17, no. 11, pp. 1147-1165, Nov., 1991. The abstract and the opportunity to purchase a PDF of the full paper are at http://doi.ieeecomputersociety.org/10.1109/32.106971 ).

    But they're rare, and the current raft of hypervisors don't rate as being possibly secure.

    One area in which they fail to pass muster is in regard to their layering. From the DEC paper:

    "Strict levels of abstraction . . . as a means of reducing complexity and providing precise and understandable specifications. Each layer of the design implements some abstraction in part by making calls on lower layers. In no case does a lower layer invoke of depend upon high layer abstractions."

    One noted security practioner (not me) has opined in private correspondence that, while "[c]learly much more than this is required (as reflected in the rest of the DEC paper), but without such a strict layering a VMM design cannot be considered a serious candidate, and is probably not worth spending time and energy on. The precise number of layers will depend on the particular design, but consistent experience over several decades indicates that for the kind of functionality in a VMM something on the order of the 16 layers in the DEC design are essential to "minimizing the complexity". A small integer number of layers is an immediate tip-off that something "smells rotten" in the design."

    Such minimization of complexity is necessary to support the formal modeling and analysis that would allow you to verify that, for instance, there is no unnecessary code in the hypervisor that might be exploited by an attacker (whether deliberately inserted or not).

    ...sarcasm on
    But, in today's world, who cares? These lessons were learned decades ago - they couldn't be relevant today...
    ...sarcasm off

  73. I/O virtualization insufficient by Anonymous Coward · · Score: 0

    Not pretending to read Theo's mind, but my own investigations into Xen et. al. over the past few years for work simply pointed out that the holistic security story includes not just the OS, CPU, and MMU but all the I/O devices (particularly every bus-mastering capable component, but others too). Worse yet, the pressure for better performance is leading to many compromises such as multiple "driver domains" in Xen, and other paravirtualized drivers that give more I/O hardware control to guests. The problem is that the PCI bus is not really a safely virtualized communication environment, so giving control of DMA to a guest often means in practice that they can corrupt other guests and/or the hypervisor at will. It is cooperative safety, not mandatory protections. They do not really have a safely isolated virtual PCI, but all play in the same hardware security domain, which is furthermore as secure as the most poorly behaving attached hardware.

    A similar problem exists for other things abused as security devices, such as VLAN. It is telling that published documents from network equipment vendors warn against using VLANs in an attempt to isolate distrustful hosts, yet people blithely go ahead doing this anyway. There are too many potential holes in the entire distributed system to believe it is secure.

    The risk of virtualization hype, as pointed out already in this discussion, is in naively thinking that it is safe to consolidate guests with very different trust profiles onto the same host. It is certainly safer to keep them isolated on separate hosts. Now, the question of consolidating guests in an equivalence class of trust is different. The only real observation here is that virtualization makes a larger system with more components and more complexity that could go wrong, from a statistical perspective.

  74. Writing bugfree code is... by madbawa · · Score: 1

    ...virtually impossible.

  75. Hmm so many posts and IBM not mentioned? by TheLink · · Score: 1

    Theo does has a point. I've personally caused a VMware host to crash from a vmware guest by changing the date on the guest O/S to something invalid. I doubt that's exploitable other than as a DoS attack but given the weird sort of stuff that's needed to enable copy and paste and other "magic", I won't be surprised if there are more exploitable bugs.

    But, VM technology is old stuff. It's just the x86 people are reinventing it and sometimes poorly. Heard something like this from one of the "new VM" people, "If we have VM problems we just go ask the IBM guys what they used to do in the old days to deal with that" ;).

    Sure there's probably exploitable security bugs in many VM implementations. But that does not mean there will be exploitable security bugs in all VM implementations.

    You could run a pure x86 PC emulator and I think it'll be quite safe, though rather slow :). It's not going to be so easy to break out of an Apple II emulator and get the Windows machine it's running on 0w3ned.

    Can one really claim that it is impossible to get a virtualized machine as secure as an emulated machine (in practice anyway)?

    --
  76. Theo is right by wikinerd · · Score: 1

    Ideally we should run apps on dedicated boxes. Virtualisation is good for saving money and for some "virtual" security against script kiddies, newbie crackers, or your own users (or yourself). VMs can't defend you against real crackers, and in fact they will make you less secure. Do it for the money or for protecting against script-kiddies and users, but not for real security. Always use multiple boxes for various apps if you can do so.

  77. was debating by Joseph_Daniel_Zukige · · Score: 1

    whether to use my last mod point this round to mod your post overrated or to respond directly.

    Well, yeah, Theo apparently mentioned the penchant for programming holes.

    But, no, that's not his argument.

    Partitioning isn't perfect in hardware designed for it. The PC is not designed for it. Do you think the software can take up the slack?

    Think about iNTEL's first attempts to make CPUs that handle threads better. With all the fufarah about hyperthreading, I don't remember what iNTEL called the stuff, but the only fix was to disable it, which was a no-brainer because it really didn't speed things up worth noticing. PCs have lots and lots of such good-ideas-that-wasn't.

    So, you have several such bugs on your CPU. One of your hosted OSses is set up to accept the security risk for some (possibly valid on separate hardware in a separate segment of the LAN) reason. Something core dumps in that hosted OS and some of the garbage in the unallocated areas of the dump contains (!) private keys from some other hosted OS that the admin _thought_ was properly patched.

    Lots of complaints about hand-waving, but do we have to burlesque?

    1. Re:was debating by Wavicle · · Score: 1
      whether to use my last mod point this round to mod your post overrated or to respond directly.

      You are absolutely deluded, if not stupid, if you think that a
      worldwide collection of software engineers who can't write operating
      systems or applications without security holes, can then turn around
      and suddenly write virtualization layers without security holes.
      Yeah, clearly I was incorrect. He was, in fact, somehow not saying exactly what he just said.

      Well, yeah, Theo apparently mentioned the penchant for programming holes.

      Okay, I'll challenge you. Come up with a theoretical attack on AI90. Theo said it was already exploitable in some OSes (though failed to mention which ones or how), this shouldn't be difficult.

      So, you have several such bugs on your CPU.

      Which bugs? "I don't remember" isn't a CPU bug.

      One of your hosted OSses is set up to accept the security risk for some (possibly valid on separate hardware in a separate segment of the LAN) reason. Something core dumps in that hosted OS and some of the garbage in the unallocated areas of the dump contains (!) private keys from some other hosted OS that the admin _thought_ was properly patched.

      This doesn't make a whole lot of sense. Explain this one better using the context of Xen, the hypervisor in question. Are you saying one domain can look at the memory of another domain? I'd be curious to hear how. I actually have to write custom qemu code for Xen and had to do some strange bits to get two domains to communicate.

      Lots of complaints about hand-waving, but do we have to burlesque?

      Is that a fancy way of saying "we don't really know how you'd exploit it or if it is even exploitable, so we're going to attack your asking us to put up" ??
      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
  78. VM to fix problems in M$Windows by Joseph_Daniel_Zukige · · Score: 1

    is not much of a security argument.

  79. DNS and web server in the same box by Joseph_Daniel_Zukige · · Score: 1

    is what management is thinking.

  80. And, ... by Joseph_Daniel_Zukige · · Score: 1

    do you think you are emotionally mature?

    1. Re:And, ... by Raenex · · Score: 1

      Not in particular, and no one is perfect, but I used to argue exactly as Linus and Theo do -- always with ad hominem attacks and anger. Now I try to keep that stuff out of my arguments.

  81. mod parent up! (creepy waste of time) by Joseph_Daniel_Zukige · · Score: 1

    Now I wish I hadn't posted to this thread.

    (Maybe I should do like so many others and get another account just for accumulating and using mod points.)

  82. Maybe what Theo is saying is that by Joseph_Daniel_Zukige · · Score: 1

    VMs should be restricted to the soft inner arena?

    (Many others have suggested this already, I know.)

    But, yeah, the systems where they run those proofs are most likely to be either

    (1) enclosed within a sandbox so they can qualify their results (formal proofs can't deal with unscheduled input like a real attack.), or

    (2) running as honeypots in the real world.

    Neither of the above is production networking equipment.

  83. Theory and practice by Joseph_Daniel_Zukige · · Score: 1

    Elsewhere, lists of vulnerabilities to do exactly what you describe have been mentioned.

    And I suspect, as the first comment to your post points out, that you misunderstand the level of virtualization being obtained in software VMs.

  84. Wait a minute. by Joseph_Daniel_Zukige · · Score: 1

    I'll call you on my cellphone when I'm ready for you to open it for me.

    Kind of you to volunteer. ;->

  85. And, of course, a LAN is a shared resource. by Joseph_Daniel_Zukige · · Score: 1

    Hey?

  86. No, it would be a plain way of saying by Joseph_Daniel_Zukige · · Score: 1

    you're being ignorant, and we don't particularly feel like spoon feeding you the information you're ignoring.

    That's the way it is over there. The people who contribute to openbsd don't have to be told where to look for things. If the person to whom Theo was responding is really interested in contributing to that project, he's going to have to learn to do his own research.

    VMs can be useful for many kinds of end-user applications. Careful use in end-user applications may actually lead to improved security in some cases.

    They are also useful for _research_ _into_ security (testing hypotheses about provable systems, implementing honeypots, etc.) People who can do this build their own tools anyway.

    You don't want to put your firewalls, DNSses, watchdogs, and routers in VMs.

    Yeah, that means that I think that when we finally get to the point where it's recognized that each house needs its own full-blown LAN, we are going to have to put at least three processors in the "broadband modems" that now may or may not come with firewall:

    One processor for firewall.

    One processor for DNS.

    One processor for watchdog.

    Each of those could probably be implemented in a low-power, single-chip semi-custom, complete with on-chip flash for logging and setup. Perhaps all three could fit in a single package, as long as the CPU and flash are kept separate.

    Some semi-custom processors, I believe, have sufficient cpu support for virtualization that one might be tempted to implement better memory management and combine them. But now we are talking about a completely different world from VMware, XEN, QEMU, etc. And I still wouldn't do it, because, even though none of those need to be fast, they all need to be responsive. And I would prefer to use separate RAM and separable seek and read/write circuits for the flash, rather than add the complexity to the virtualization monitor required to properly enforce separation on the non-volatile store. These kinds of CPUs are not that expensive.

    And, of course, if one is not careful when designing such a device, it is really easy to introduce hardware vulnerabilities, (I've mentioned sharing RAM and flash as one temptation.)

    1. Re:No, it would be a plain way of saying by Wavicle · · Score: 1

      you're being ignorant, and we don't particularly feel like spoon feeding you the information you're ignoring.

      When you're taking wild guesses, blathering nonsense and I don't bite it doesn't qualify as ignorant. No matter how smart you fancy yourself.

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
  87. Fact: VM compartmentalization is not absolute. by Anonymous Coward · · Score: 0

    Google funded research proved that. So it only then goes to say, that if virtualization software adds vulnerabilities to allow jumping from guest to guest or guest to host, then your overall security across all guest VM's and the host, is only as strong as the weakest service provided by any one of the VM guests.

    But hey, this issue must not be real, since Theo brought it up. Right?