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."

58 of 340 comments (clear)

  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 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.
    3. 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
    4. 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.

    5. 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.

    6. 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...
    7. 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?
  2. Re:History teaches once again... by micromuncher · · Score: 2, Informative

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

    --
    /\/\icro/\/\uncher
  3. 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.

  4. 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 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.
    2. 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
    3. 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?

  5. 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 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
  6. 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.

  7. 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 !

  8. 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.
  9. 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.
  10. 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.

  11. 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.
  12. 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/

  13. 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]
  14. 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
  15. 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 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?

  16. 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?
  17. 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
  18. 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 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."
  19. 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.

  20. 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.)

  21. 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.
  22. 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.
  23. Comment removed by account_deleted · · Score: 2, Funny

    Comment removed based on user account deletion

  24. 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
  25. 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.

  26. 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.

  27. 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)
  28. 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.

  29. 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

  30. 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.

  31. 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
  32. 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.
  33. 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.
  34. 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.

  35. 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.

  36. 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.

  37. 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?
  38. 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.
  39. 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

  40. 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.

  41. 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?