Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Microsoft Research Warn About VM-Based Rootkits

Posted by Zonk on Fri Mar 10, 2006 08:56 PM
from the why-would-you-prove-that-concept? dept.
Tenacious Hack writes "According to a story on eWeek, lab rats at Microsoft Research and the University of Michigan have teamed up to create prototypes for virtual machine-based rootkits that significantly push the envelope for hiding malware and maintaining control of a target OS. The proof-of-concept rootkit, called SubVirt, exploits known security flaws and drops a VMM (virtual machine monitor) underneath a Windows or Linux installation. Once the target operating system is hoisted into a virtual machine, the rootkit becomes impossible to detect because its state cannot be accessed by security software running in the target system."

Related Stories

[+] Undetectable Rootkits Through Virtualization? 237 comments
techmuse writes "eWeek has an article about a prototype rootkit that is implemented using a virtual machine hypervisor running on top of AMD's Pacifica virtualization implementation. The idea is that the target OS, or software running on it, would not be able to detect the rootkit, because the OS would be running virtualized on top of the rootkit. The prototype is supposed to be demonstrated at the Syscan conference and the Black Hat Briefings over the next month."
[+] VM-Based Rootkits Proved Easily Detectable 128 comments
paleshadows writes "A year and a half has passed since SubVirt, the first VMM (virtual machine monitor) based rootkit, was introduced (PDF), covered in the tech press, and discussed here. Later Joanna Rutkowska made news by claiming she had a VMM-based attack on Vista that was undetectable — a claim that was roundly challenged. Now in this year's HotOS workshop, researchers from Stanford, CMU, VMware, and XenSource have published a paper titled Compatibility Is Not Transparency: VMM Detection Myths and Realities (PDF) showing that VMM-based rootkits are actually easily detectable."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • I say we take off... (Score:5, Funny)

    by LiquidCoooled (634315) on Friday March 10 2006, @08:57PM (#14895974)
    ...and nuke the entire site from orbit.
    It's the only way to be sure.

    Everything I know about rootkits tells me that you cannot detect one from within the running system, you have to be objective (I consider the current fingerprint detection to be working because of bugs in the rootkit implimentation, these will be "fixed" over time).

    Keep a known secure boot CD.

    Drain the battery and reset the bios then boot from that cd.
    If theres anything sophisticated enough to bypass this level of paranoia then it can damn well have my credit card number and I'll gladly send spam for them.
  • Why is microsoft researching this? (Score:3, Insightful)

    by Saven Marek (739395) on Friday March 10 2006, @09:02PM (#14895990)
    Why is microsoft researching this kind of thing? And with Linux too? It makes me wonder if the next time you go to install Windows on a partition somewhere with the same machine as you also dual boot into Linux whether your linux boot will not then be "taken over" by Windows, and MS can insert any little hooks, DRM, inspection code or other things running underneath the linux system you have.

    Then they can force linux to perform worse than Windows and nobody will be none the wiser.

    Except when you boot into linux and then you get a blue screen it will give it away lol.
  • You never sure if this is a feature or a bug. Either way, they will probably charge a subbscription fee to get the feature or get rid of the bug.
  • Original Paper [umich.edu]

    Abstract

    Attackers and defenders of computer systems both strive to gain complete control over the system. To maximize their control, both attackers and defenders have migrated to low-level, operating system code. In this paper, we assume the perspective of the attacker, who is trying to run malicious software and avoid detection. By assuming this perspective, we hope to help defenders understand and defend against the threat posed by a new class of rootkits.

    We evaluate a new type of malicious software that gains qualitatively more control over a system. This new type of malware, which we call a virtual-machine based rootkit (VMBR), installs a virtual-machine monitor underneath an existing operating system and hoists the original operating system into a virtual machine. Virtual-machine based rootkits are hard to detect and remove because their state cannot be accessed by software running in the target system. Further, VMBRs support general-purpose malicious services by allowing such services to run in a separate operating system that is protected from the target system. We evaluate this new threat by implementing two proof-of-concept VMBRs. We use our proof-of-concept VMBRs to subvert Windows XP and Linux target systems, and we implement four example malicious services using the VMBR platform. Last, we use what we learn from our proof-of-concept VMBRs to explore ways to defend against this new threat. We discuss possible ways to detect and prevent VMBRs, and we implement a defense strategy suitable for protecting systems against this threat.

  • rootkits? (Score:3, Interesting)

    by gcnaddict (841664) <gcnaddict.gmail@com> on Friday March 10 2006, @09:03PM (#14895997)
    (http://www.gcnaddict.com/)
    Can anyone say dual boot?

    And another question: I can understand the risk that this may pose for enterprise servers (Virtual Server systems, just to name one), but does this hold any implications for client VMs?
    • Re:rootkits? by TheWanderingHermit (Score:2) Friday March 10 2006, @09:17PM
      • Re:rootkits? by Dionysus (Score:3) Friday March 10 2006, @09:29PM
        • Re:rootkits? by tekiegreg (Score:2) Friday March 10 2006, @09:48PM
          • Re:rootkits? by Sancho (Score:2) Saturday March 11 2006, @02:15AM
        • Re:rootkits? by TheWanderingHermit (Score:2) Friday March 10 2006, @09:52PM
        • Re:rootkits? by Stephen Samuel (Score:2) Saturday March 11 2006, @09:06PM
      • Re:rootkits? by Tyger (Score:2) Friday March 10 2006, @11:19PM
      • Re:rootkits? by TheWanderingHermit (Score:2) Friday March 10 2006, @09:59PM
      • 1 reply beneath your current threshold.
    • ABSOLUTELY by hey! (Score:2) Saturday March 11 2006, @06:41AM
      • Re:ABSOLUTELY by Dan Ost (Score:2) Saturday March 11 2006, @03:06PM
  • Of Course (Score:3, Insightful)

    by Alien54 (180860) on Friday March 10 2006, @09:03PM (#14895998)
    (Last Journal: Saturday October 27, @10:19AM)
    while I can appreciate the logic of the research, I imagine this only gives creedance to the theories that companies deliberately design viruses so that they can sell more of their latest security product. or system/OS upgrade
  • that virtualising i386 was hard and carried quite some overhead.

    i'd imagine the vm would have quite different performance patterns for some operations than the real machine. it would also pretty much by definition have to have slightly less ram.
  • ROM Boot Keys (Score:5, Interesting)

    by PktLoss (647983) on Friday March 10 2006, @09:05PM (#14896004)
    (http://www.preinheimer.com/ | Last Journal: Friday August 22 2003, @10:32AM)
    It may not be feasible for home environments, but for workplaces. What about booting off either dedicated ROM boot keys, or USB memory keys with a some sort of physical read only/read&write switch. Put the key into your machine to boot (for bonus points, the key tells the machine who you are and begins to load your roaming profile), when it comes time for a new image the IT guys either give you a brand new ROM key, or update your USB key by toggling the switch.

    My worry with keeping things inside the machine (the article indicates that AMD and Intel have ideas) is that it's just going to be a perpetual arms race. Since we can't rely on the user to know when it is and is not apropriate to allow your OS to modify your boot sector, evenually virus/malware authors will just trick people into accepting the updates.
  • translation (Score:5, Insightful)

    by Anonymous Coward on Friday March 10 2006, @09:09PM (#14896026)
    You can only be secure if your run hardware with treacherous computing modules installed on the motherboard and in the "approved" CPUs and BIOS chips, and that only works with treacherous computing software, sort of expensive hand in designer glove..

    Kind of a sneaky advertisement, isn't it? Instill terror to sell vendor lockin hardware and operating systems. Maybe even get a law or three passed. They sort of gloss over the "get the rootkit there in the first place" part, don't they?
  • Link to research paper (Score:5, Interesting)

    by saikatguha266 (688325) on Friday March 10 2006, @09:10PM (#14896030)
    (http://saikat.guha.cc/)
    Here is a link to the actual paper the article references:
        http://www.eecs.umich.edu/virtual/papers/king06.pd f [umich.edu]

    The authors make an interesting point -- users and rootkits are about control. Whichever one controls the outer layer wins. If the user is in a protected environment, a rootkit running as root can win. If the user is root, then the rootkit must be a kernel-level root-kit and run in the kernel. If the user can control the kernel, the rootkit must control the machine, in this case, put the user kernel in a VM.

    My take is: in this game of cat and mouse, you'll stop only at the hardware -- it is hard for a rootkit to control the hardware short of the rootkit script kidde being able to get physical control. So yes, the user can win this game, if he controls the hardware that controls the software. How does the hardware control software? You guessed it: trusted computing ala TCPA ala Palladium etc etc.

    Can you think of a way to win against rootkits without TCPA?
    • Re:Link to research paper by ptelligence (Score:1) Friday March 10 2006, @09:18PM
    • Re:Link to research paper by BitwizeGHC (Score:2) Friday March 10 2006, @09:18PM
    • Re:Link to research paper (Score:5, Interesting)

      by Jon Luckey (7563) on Friday March 10 2006, @09:25PM (#14896093)
      Can you think of a way to win against rootkits without TCPA?

      A rootkit can really only win if its undetectable. If you are playing a game of who has control of ring-zero resources, the victim, if running in a VM should be able to do various things that would cause an exception when it tried to do ring-0 only hardware accesses. If the exceptions are not what is expected, then the victim would be able to detect that its not in true control.


      It might be possible to make a VM that tried to emulate ring-0 hardware access in user mode. Been a while since I looked at that area of cpu's. But if so, I'd expect it to be much more complex than a normal VM.


      But suppose it is possible to test for true ring-0 hardware access. Then the root-kit has to fall back to classical root-kit techniques. It has to subvert the detection software. That task can be made difficult by classic defenses, like trip-wire, or running software from read-only sources, etc.

      [ Parent ]
      • Re:Link to research paper by saikatguha266 (Score:2) Friday March 10 2006, @10:00PM
      • Re:Link to research paper (Score:5, Interesting)

        by Tyger (126248) on Friday March 10 2006, @10:51PM (#14896376)
        Speaking just of the x86 architecture...

        The thing with emulating a "ring 0" environment is that there is a lot to emulate. Most everything that would not work in a true ring 0 environment would cause the CPU to raise an interrupt for the host OS to handle. Typically the OS handles it by smacking around the application for being bad and doing something it isn't supposed to do. But it is possible to instead do what it is trying to do, and make it look like nothing was amiss.

        The trouble is there is a lot of different things to deal with. If you know your target OS, it's easier since you don't need to emulate every little thing the CPU does, just what the OS will be using. But even then there will always be telltale fingerprints that something is amiss. Theoretically you could get around some of them by scanning ahead the instructions to be executed, but at some point you seriously impact system performance, and that in itself will make people notice.

        Off the top of my head, the simplest way to detect it takes advantage of the fact that emulating ring 0 operations involve a context switch and some execution. Context switches tend to be rather expensive operations compared to most everything else the CPU does. The CPU has something called a timestamp counter, which basically counts every clock cycle, always incrememting, no matter what process/thread is running. An instructions should take a deterministic number of clock cycles. So just check the timestamp counter, perform a priveleged instruction, then check the timestamp counter again. If it looks like it took too long, that means you are running under a virtual machine.

        Of course detection doesn't help with removal, but it's a start.
        [ Parent ]
    • Re:Link to research paper (Score:5, Insightful)

      by radtea (464814) on Friday March 10 2006, @10:04PM (#14896238)
      Can you think of a way to win against rootkits without TCPA?

      Almost trivially.

      The whole point of TCPA is that "trust" is built in to the machine in a fundamentally inaccessbile (to the user) way.

      What is needed to defeat rootkits is to allow the user to trust the hardware. This is totally different from application vendors trusting the hardware.

      Here's an extreme example: hook a logic analyzer up to the BIOS. Look at the nice bits go by. See if they match expectations. If not, you've been rooted and had your BIOS flashed. "Expectations" are stored in a separate device.

      The issue here is strictly one of treating a computer as a fully self-contained block of hardware and software that no one is allowed or able to look inside without going through the terribly civilized interfaces. The solution is to say, "Fuck the fucking interfaces, I'm going to fucking look at what is on the fucking bus." Not civilized at all.

      I've debugged embedded code this way, by hooking a logic analyzer up to the hardware and watching the bits go by. It's educational. It would be simple to build this kind of exposure of hardware internals in to the motherboard, to make it easy to plug in an external integrity checker to ensure that the basic state of the machine is as expected.

      "Trusted" computing is all about hiding the hardware state from the user. Beating VM-based rootkits is all about exposing hardware state to the user. The two are diametrically opposed.
      [ Parent ]
      • Re:Link to research paper by saikatguha266 (Score:2) Friday March 10 2006, @10:21PM
      • Re:Link to research paper by SiliconEntity (Score:2) Friday March 10 2006, @10:33PM
        • Re:Link to research paper (Score:4, Informative)

          by Soko (17987) on Friday March 10 2006, @11:37PM (#14896533)
          (http://arstechnica.com/journals/linux.ars)
          That's fine if you don't like this, but don't lie about the technology and say that it doesn't help the user to trust the machine. It helps everyone trust the machine. That's why it's called Trusted Computing.

          Mmmmmm... KoolAid.

          Dude, I trust a machine to do exactly as it's told. I do not trust humans to do the same. Trusted Computing is an aphorism for "Hey, you can trust $VENDOR, since your machine does, due to $TECHNOLOGY." Fuck that.

          If you r00t a computer, you're after one thing - getting information _out_ of said machine. (THINK - Credit card #s or Spam - it all has to leave the machine somehow.) You need to do this via a network connection, USB key or some other means. There are ways of noticing that information has left a machine in some way, either through physical security or other means (It'll be a cold day in Hades before a vendor brings a cell phone into my data center. Those things have memory, after all.) since once outside the box it's no longer under the control of the r00tk1t. IOW, if someone r00ts one of my machines, it'll be either noticed or totally useless to them.

          I, and I alone, establish trust of my systems. Any vendor who says they can do that for me is sadly mistaken, unless they are willing to allow me to completely vet thier Trust protocol and methods. Even then, I had better be able to fully audit that system at a whim, on my terms.

          "Trusted Computing" is for those who don't want to learn or do thier job professionally, are just plain lazy or, they're willing to drink the KoolAid. As for users, they tend to trust people, like me, who fix thier broken systems, and take my advice to heart when I charge them $TEXAS for fixing thier broken assed PCs. /me sips his Rye and cola....

          Soko
          [ Parent ]
        • Re:Link to research paper by quentin_quayle (Score:2) Friday March 10 2006, @11:48PM
        • Re:Link to research paper by IgnoramusMaximus (Score:3) Friday March 10 2006, @11:56PM
        • Re:Link to research paper by octopus72 (Score:1) Saturday March 11 2006, @05:17AM
      • Good luck. by b00m3rang (Score:2) Saturday March 11 2006, @12:09AM
      • Re:Link to research paper by swillden (Score:2) Saturday March 11 2006, @12:28AM
      • Re:Link to research paper by Dr. Blue (Score:2) Saturday March 11 2006, @02:10AM
    • Re:Link to research paper by rolosworld (Score:1) Saturday March 11 2006, @12:09AM
    • Re:Link to research paper by acaspis (Score:1) Saturday March 11 2006, @06:10AM
    • Re:Link to research paper by owlstead (Score:2) Saturday March 11 2006, @07:24AM
  • Performance Degration (Score:4, Insightful)

    by nurb432 (527695) on Friday March 10 2006, @09:12PM (#14896037)
    (http://slashdot.org/~nurb432/ | Last Journal: Friday August 27 2004, @03:24PM)
    On a normal machine, if you try to virtualize it you would notice right away that something was wrong as it would slow quite a bit.

    There might also be driver issues that could tip you off something isnt right. May not know what, but it should be apparent something is amis. It would have to emuate all the hardware that you had installed at the time of infection, unlike something like VMWare which presents a 'standard' ( but different ) set of hardware devices. Thats a prety tall order to pull off.
  • i've been working on a compromised system to poke for holes in the concept and i hit upon a novel idea. in fact, it's really simple

    all you have to do is-END CARRIER-
  • Virtually. (Score:2, Insightful)

    by Roskolnikov (68772) on Friday March 10 2006, @09:18PM (#14896071)
    My experience with Windows and VM scenarios is that it runs better in VM then in real life; mom and pop might not notice this but I should hope those that are savvy enough to understand what Microsoft is proposing as a 'threat' would also be savvy enough to notice the little things that make VM still a pain.
    examples:

    I bought 4 GB of ram and a 400 GB drive, now I have 1 GB and 150 GB drive (with 250 GB overhead for mail and porn).
    My Ultra-Monkey quad SLI Nvidia 9999 video card with 1 GB of ram now shows up as a 16 MB S3 Virge card, WTF?
    My Comcastic experience is now more like my old netcom dial up account but the cable modems lights are busy.

    Its really good to see Microsoft concerned about security, but I hope they will stop looking at how elaborate the hacks could be and focus more on why this crap
    can be done in the first place.....

    • Re:Virtually. by woolio (Score:2) Friday March 10 2006, @09:30PM
      • Re:Virtually. by sqlrob (Score:2) Friday March 10 2006, @10:48PM
      • 1 reply beneath your current threshold.
  • Not hard to detect (Score:2, Redundant)

    by LLuthor (909583) <lexington.luthor@gmail.com> on Friday March 10 2006, @09:19PM (#14896072)
    For someone like me, who games on his PC a lot as well as working, it would be immediately obvious that there is something wrong.

    Gaming performance would take a serious hit, as would anything that would normally require privileged hardware access.

    No virtual machine can work as fast as the host system or with as much RAM.
    • Re:Not hard to detect by Helios1182 (Score:2) Friday March 10 2006, @09:54PM
      • Re:Not hard to detect (Score:5, Interesting)

        by LLuthor (909583) <lexington.luthor@gmail.com> on Friday March 10 2006, @10:03PM (#14896234)
        Some functions cant be passed through, they need to be emulated, even on the same architecture, redirecting memory, storage and I/O requests, interrupt handlers and such. All these things suck performance, and in the case of games, where LOTS of memory and low-level calls to the graphics hardware are being made, performance sucks BADLY.

        Any gamer will notice a loss of 15 FPS or more in their favourite game. Developers will notice it too, when their profilers output does not match their codes timing.

        You can't play with the time, even if you are in a VM. People will notice this - even if the software wont.
        [ Parent ]
  • by MikeRT (947531) on Friday March 10 2006, @09:24PM (#14896085)
    (http://www.codemonkeyramblings.com/)
    an image of an idiot user taking their computer to a repair shop and the repair person uncovering 500 instances of VMWare running with 1 instance of spyware in each one?