Slashdot Log In
Undetectable Rootkits Through Virtualization?
Posted by
Zonk
on Thu Jun 29, 2006 05:28 PM
from the two-rooted-plants-die dept.
from the two-rooted-plants-die dept.
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."
Related Stories
[+]
Hackers Serving Rootkits with Bagles 150 comments
Iran Contra writes "Security researchers at F-Secure in Finland have discovered a rootkit component in the Bagle worm that loads a kernel-mode driver to hide the processes and registry keys of itself and other Bagle-related malware from security scanners. Bagle started out as a simple e-mail borne executable and the addition of rootkit capabilities show how far ahead of the cat-and-mouse game the attackers are."
[+]
Microsoft Research Warn About VM-Based Rootkits 336 comments
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."
[+]
Ask Slashdot: A Closed Off System? 177 comments
AnarkiNet wonders: "In an age of malware which installs itself via browsers, rootkits installing themselves from audio cds, and loads of other shady things happening on your computer, would a 'Closed OS' be successful? The idea is an operating system (open or closed source), which allows no third party software to be installed, ever. Yes, not even your own coded programs would run unless they existed in the OS-maker-managed database of programs that could be installed. Some people might be aghast at this idea but I feel that it could be highly useful for example in the corporate setting where there would be no need for a secretary to have anything on his/her computer other than the programs available from the OS-maker. For now, let's not worry if people can 'get around' the system. If each program that made up the collection of allowed programs was 'up to scratch' and had 'everything you need', would you really have an issue with being unable to install a different program that did the same thing?"
[+]
Your Rights Online: Canadian Sony Rootkit Settlement Stirs Controversy 96 comments
An anonymous reader writes "Canadian law professor Michael Geist is reporting
that Sony BMG Canada has quietly kept a key legal document secret as part of
its class action settlement over last year's rootkit case. The
document, which is not on the Sony settlement
site but has now been posted
on Geist's site (pdf), contains a series of bogus arguments about why
Canadians are receiving far less than U.S. consumers."
This discussion has been archived.
No new comments can be posted.
Undetectable Rootkits Through Virtualization?
|
Log In/Create an Account
| Top
| 237 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Before people start the Windows flamefest (Score:4, Informative)
fta:
Rutkowska stressed that the Blue Pill technology does not rely on any bug of the underlying operating system. "I have implemented a working prototype for Vista x64, but I see no reasons why it should not be possible to port it to other operating systems, like Linux or BSD which can be run on x64 platform," she added.
Let's make this a bit easier to understand. (Score:5, Interesting)
This is not really different from running WinXP, then installing VMWare Workstation, then installing Win2K in a virtual machine.
The "host" OS is what gets infected. That would be WinXP. Of course nothing running in the "guest OS (Win2K) would be able to detect it. But
There are only three (3) ways for the "underlying operating system" to be infected.
#1. Worm
#2. Virus
#3. Trojan
If we aren't talking "nude pictures of celebrities", then it's either a worm or a virus and both of those are bugs in the OS.
If it's a trojan, then WTF are you doing installing unknown apps on the host OS?
Now, the only way this would be interesting would be if the worm / virus / trojan installed the virtualization software, moved the existing OS to a virtual machine and faked the names of all the interfaces (NIC, IDE controller, etc). If you can do that, VMWare really wants to talk to you.
Re:Let's make this a bit easier to understand. (Score:4, Interesting)
Think about what it means if they're right. (Score:5, Insightful)
Here's a simple test to see if they're right.
Put in a NIC that your host OS does not have drivers for. Your host OS will not be able to connect to the network. Now, if the virtual machine in their example can access the network, then they're correct.
There's no end of hype for "threats" that never seem to materialize (or are vastly over-stated). If they can do what their diagrams indicate, then this would revolutionize the computer industry. I really mean that.
For example, you would NEVER again have any problem with wireless networking under Linux. Or sound. Or any peripheral. Or hardware accelerated video. No more nVidia drivers needed! The VMM handles it for you!
So, no, I don't believe that what they claim is actually what they can deliver.
MOD PARENT UP, he's right. (Score:4, Interesting)
Grandparent seems to think that BluePill merely is a mal-VMM that sits between any guest OS and the host OS. So the guest OS won't know that he's being thwarted. What these folks are claiming is two-fold:
- They'll do what SubVirt did -- move the VMM which is usually operating as a process on a host OS below that host OS. So, not only are all the guest OSs not going to know a/b the the mal-VMM, but also the host OS itself effectively becomes another guest OS.
- Unlike SubVirt which required that the mal-VMM exploit a vulnerability in the *host OS* in order to do this swallowing-up of the host OS, these folks' claim is that there are generic mechanisms to inject code into the Vista kernel. And these generic mechanisms are sufficient for this subversion.
- Moreover, they're saying that this is the case, despite security mechanisms in Vista that prevent kernel-mode code from running if that code is not signed (by a trusted party).
Anyway these are some pretty tall claims (particularly, re: the ability to inject arbitrary code into the Vista kernel). I initially thought the same thing as the grandparent: that they were saying that you could create a mal-VMM so that any VM running on that mal-VMM would not be able to detect the badness of the VMM (which is pretty trivial, actually).Re:Before people start the Windows flamefest (Score:5, Insightful)
Getting to the point, people act as if virtualization simplifies things, But really it's an additional layer of abstraction and complication, another mass of code and/or hardware to go wrong. Now there will have to be software tools to manange this new underlying minimal OS, and maybe virus/rootkit software. I think the applicability will be limited.
said this before (Score:5, Interesting)
(Last Journal: Saturday September 02 2006, @12:18AM)
ok, but... (Score:3, Funny)
(http://www.celardore.net/)
Re:ok, but... (Score:4, Interesting)
Technology finance will cretae some bizarre technical solutions, if sombody in the organisation doesn't put the brakes on - another good example is "hmm terminal server runs all the same apps that native desltops do for the remote workers - let's just issue everyone a Windows TS "device" and host everyone's sessions inside a big servers in the data centre - it's cheaper, and there's no difference right? This is where someone gets to try and explain latency, and how it's different from "bandwidth", to an accountant
It's not new either - mainframes have operated like this for years. IBM would have you create your entire data centre inside z/VM - including the routers, switches and firewalls. It's great for development and testing - need more Linux/Apache/WAS/Oracle servers? sure just wish 3 more into existence, re-test your fancy shmancy clustering and treacle bending widget, and then bin them off again with another wave of the virtual wand.
We have clusters of Websphere AS inside one LPAR - not for speed I hasten to add - that would be silly, but to create resilience, seperate the Java VMs and add flexibitlty for software releases.
Is it *really* undetectable? (Score:1, Insightful)
(http://forums.interestingnonetheless.net/)
the side effects are detactable (Score:4, Funny)
Boss asks: are you playing games at work?!
Me: Just checking for rootkits boss!
Motherboards already block this... (Score:5, Informative)
If you have this on your motherboard I highly recommend you turn it on, it isn't too often that you reinstall the OS and pressing F9 isn't that much of an inconvenience even if you did it once a day.
PS - All of the "My favorite OS is secure" posts below this are wrong if the Operating System supports some type of driver, or root program (running in the kernels memory space).
Re:Motherboards already block this... (Score:5, Informative)
(http://soapbox.bartsplace.net/)
This offers at best a partial protection. While the MBR is important, the actual boot is done from the partition boot record, mot the master boot record, and this badly named feature is not going to help against that. Why badly named? because it does monitor (attempted) changes to the bootrecord and doesn't know anything about viruses.
Next. even if you could protect against that, things just get a bit more OS and possibly OS version dependent because you have to move to the file that gets loaded by the partition bootrecord.
Oh, quite a few 'boot managers' change the mbr on every boot.
So while it offers some protection, that protection is extremely limited, and can be quite inconvenient.
This just reinforces the good old principle (Score:5, Insightful)
Of course, there were LKM rootkits (pretty hard to detect) for a good while now, this is just taking it to an all new level.
I wish the spread of better hidden rootkits on Windows, because only that will further sane security policies and wipe the stupid idea of virus scanners out (when it's doing IDS not IPS). There ain't such thing as 'intrusion removal'. It's like putting on a condom after sex. Oh wait, it's slashdot. Let me rephrase. It is like trying to recover data from
A win-win situation for everyone (Score:3, Funny)
(http://skippus.blogspot.com/ | Last Journal: Sunday June 19 2005, @07:25AM)
From TFA:
Not much less detectable (Score:5, Insightful)
Maybe it's time for some new paradigm (Score:4, Insightful)
Real Beneficiaries of Hardware Virtualization... (Score:3, Interesting)
Is this a "root kit"? (Score:3, Interesting)
(Last Journal: Wednesday January 03 2007, @11:08AM)
While the subject is scary (Score:2)
Is this really a surprise? Given the layered design of software, if you have something that can sit between the hardware and the software (and monitor what passes between, and control said information), they why would it not have complete control? The question is how could this easily be placed on someone's machine? The next question is why can a level of virtualization be introduced between the operating system and the hardware during execution?
"your operating system swallows the Blue Pill and it awakes inside the Matrix controlled by the ultra thin Blue Pill hypervisor. This all happens on-the-fly (i.e. without restarting the system)"
Brilliant (Score:2)
(Last Journal: Thursday September 21 2006, @07:20AM)
livecd (Score:2)
(http://www.livejournal.com/users/sinistertim101 | Last Journal: Saturday March 24 2007, @12:32PM)
Running everything off a livecd is a good idea since most infected pc's are as slow as a 486 and could take hours to days to scan. In this case it would be ineffective.
I wonder if bios virii are next/? Its the only way to go above even booting off a pc and some malware and spyware makers are working on this. That way it can't be removed at all. Claria should be taken out to a field and shot.
Towards a runtime for Voight-Kampff machines (Score:3, Funny)
(http://www.littleblur.com/ | Last Journal: Wednesday June 27, @07:32PM)
Microsoft (Score:2)
Because, y'know, the only way to protect yourself against attacks like these are with Trusted Platform Modules.
20 bucks Microsoft sponsored this research in some way.
So what? (Score:2)
(http://www.tidewaterblues.com/)
The Reverse: Using Host to Protect Virtual Servers (Score:1)
Host machine with Vserver kernel running Tripwire or Aide
with configuration adjustments to detect changes in client "machines"
Host machine well protected
client machines doing ftp or web services or email or.....
Although Vserver is particular to Linux: Other schemes doing
reasonably strong virtualization can also do the job in Linux,
Solaris (Zones), BSD (Containers), Windows, etc.
It should greatly decrease the ability of something as clever as
BluePill to do damage if it was infecting a well-partitioned virtual
machine rather than a regular machine.
Vserver: http://linux-vserver.org/ [linux-vserver.org]
AIDE: http://www.securityfocus.com/infocus/1424 [securityfocus.com]
TPM (Score:2)
(http://blog.chase.net.au/)
The bad side of the TPM is when you lose control of it - then the machine isn't yours any more but the xxAA's.
Virtualisation used for rootkit-safe environments (Score:5, Interesting)
Whoa. Déjà vu. (Score:5, Funny)
(http://www.televisio...com/show.cgi?show=44)
"It's a glitch in the rootkit! It happens when it changes something!"
"No, I said a SLASHDOT article."
"Ah, you're probably fine then."
Once untrusted software is run on your machine... (Score:2)
So let me get this straight... (Score:3, Insightful)
(Last Journal: Tuesday September 04, @09:07PM)
The virus must use some memory (Score:1)
(http://dreamlayers.blogspot.com/)
What could the virus do? I doubt it could swap to disk to cover that. I guess it could try using compression on a small part of the guest OS.
Bah, humbug! (Score:4, Informative)
(http://www.oreilly.com/catalog/samba/author.html | Last Journal: Wednesday August 24 2005, @03:32PM)
Exactly the same thing was done using the ancient "cookie monster" program on Multics, long before Unix was even a gleam in T&R's eye.
The perpetrator created a user-ring instance of a user (a virtual-machine-like process), loaded in the cookie mosnter, then loaded the command interpreter and handed the result to an unsuspecting user, my boss.
He searchrd high and low, never suspecting the program that kept saying "Want cookie!" was down below the shell.
--dave
Undetectable to software maybe (Score:2)
(http://www.shadyproject.net/)
DRM? (Score:3, Funny)
(Last Journal: Thursday February 02 2006, @10:51PM)
LiveCDs? (Score:1)
(http://www.kepp.net/)
Nothing new, really. (Score:5, Insightful)
Answer: either compare the system (booted from known good media) to a known good set of files, or reinstall from known good media.
There's no other answer. Any tools you run on the compromised system are by definition suspect; they might be good, or they might be compromised. You have no way of knowing; anything they tell you is suspect. Even if you have tool binaries that you know are good, you don't know that the data they're gathering reflects reality or has been altered to give you a wrong impression.
So the fact that this software is undetectable doesn't really change anything; you're still finding out about the compromise through unusual activity, so that's 'status quo'. The only thing that's different is the layer that's compromised.
The interesting question is how the software gets in place in the first instance to compromise the system. The answer is that it was run as root (or administrator, or supervisor, or whatever the super-user is called). How did it get root privileges? Two possible answers: (1) a flaw in the OS (defined as the kernel, and any processes running with root privileges); or (2) the end user ran it somehow as root.
In the first case, it's the standard security problem. The OS is flawed; anything can get root. That's a bug. In the second case, it's end user stupidity. Nothing you run as an end user should require root privileges. (If the OS is designed in such a way that you do, again, that's a flaw in the OS. If the application expects it when it doesn't really need it, that's a bug in the application, and the vendor should be shot.)
So there's another layer the rootkit can hide in. Be still, my beating heart! This is, and remains, nothing fundamentally new. [acm.org]
What's that you say? (Score:3, Funny)
(http://kim.biyn.com/)
Subvirt (Score:1)
(http://paul.rutgers.edu/~spravin)
Useful Applications? (Score:1)
Great (start) Paper (Score:1)
(http://www.youtube.com/watch?v=5bfLtD4GESc)
http://www.securityfocus.com/columnists/402 [securityfocus.com]
Want to Talk?
http://www.securityfocus.com/comments/columns/402
Let me guess... (Score:2)
(http://marciandgreg.com/ | Last Journal: Wednesday January 07 2004, @07:30PM)
As I understand, a likely initial vector is... (Score:3, Interesting)
(http://www.thenorth.com/apblog | Last Journal: Monday February 13 2006, @07:48AM)
First it was the chocolate in the peanut butter... (Score:1)
Shhhhhhhhh....... (Score:2, Funny)
(http://www.junket-watch.com/)
Kind of obvious (Score:2)
(http://www.deepnines.com/)
Actually quite detectable (Score:3, Interesting)
(http://tocm.blogspot.com/)
So how do you exploit this to detect that you're in a VM? If you're an operating system, the easiest approach is to disable interrupts periodically and wait out a few time slices. You would then compare wallclock time and see if you're wait took longer than you expected it should. If it did, you're being pre-empted. With interrupts off, that's a sure sign that you're in a VM.
The above is a general solution to the problem. It's funny the author used SVM (a.k.a. Pacifica). SVM has a feature called dynamic attestation. This essentially introduces an unemulatable instruction that one can use precisely for the purpose of determining whether you're in a VM or not.
An Obvious Solution (Score:1)
Hardware [ Operating System ]
C:\rootkit.exe
Hardware [ Rootkit [ Operating System ] ]
But if we go back a step...
Hardware [ Hypervisor [ Operating System ] ]
VirtualC:\rootkit.exe
Hardware [ Hypervisor [ Rootkit [ Operating System ] ] ]
Then the Hypervisor can, in theory, detect the rootkit. So the obvious defense against such shenanigans is to install your own hypervisor before the bad guys do it first.
All of this is meaningless, of course, because if a piece of malware has sufficient privileges to install a hypervisor, you're already boned. Fix the privilege hole and you're as safe as you ever were.
Re:The only defense (Score:2)
(http://slashdot.org/ | Last Journal: Thursday February 21 2002, @04:37PM)
All thr AV companies have labds where they make new exploits. Then design a way to detect that TYPE of exlpoit.
Besides, have software to protect your systems helps with the know problems bouncing around out there even if not the zero day ones. Fortuasntly there aren't a lot of zero day issues.
Re:Is the solution DRM? (Score:2, Insightful)
(Last Journal: Tuesday January 30 2007, @08:29PM)
Re:The only defense (Score:1, Funny)
Re:The only defense (Score:2)
(http://www.entropicsoftware.com/eve/sd.html | Last Journal: Monday July 10 2006, @07:42PM)
Not true.
Many detection tools will look for specific signatures of known exploits. Thus this part of the detection will not detect anything else. We're in agreement up to this point.
However...
There are other means of detection. One can look to see if certain system calls have been hooked in some way, files placed in certain places, alternate calls to read the same file return different results, system behaviour typical of an exploit, so forth. Code sequences with known execution times can be run and if the results are too far off, you know something is up. Network traffic can be examined on the machine and passively tapped just off the machine, and the difference can be enlightening. Even if your malware author is a certified genius and masks every single possible activity (ha!), then how on earth are they going to hide the CPU power required to implement it? And so on and on...
I'd be surprised if there were many modern anti-malware utilities that didn't implement a few of the more basic generic checks. Your assertion is not true.
Heck, even in this case, bugs in the implementation of the virtualisation can be used to detect if we're running or not. Code sequences exist that can detect whether you're in a virtual machine by the subtle differences between a true machine and a virtual one. Look at VMware I/O addresses and drive IDs, for example. Any difference between the _huge_ interface between virtual machine and the real machine can potentially be tested for and used for detection.
Re:The only defense (Score:1)
> boot/OS/application drive from being writable. Baring this, the next best
>step is to re-image your drive from non-writable media daily.
You'd certainly get a blank stare from me.
That's not very practical. Depending on your OS and partioning scheme, you would be losing logs, patches, and preferences with each re-image.
A better approach is to start with a clean system, run something like tripwire, and keep an eye out for unusual changes.