Undetectable Rootkits Through Virtualization?
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."
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.
Implementing malware with virtual machines
Who runs anything *real* on a virtual server?
Can't you just take the hard drive out, mount it from another computer, and see all the malicious DLLs the rootkit was trying to hide from you?
Current virtualization doesn't virtualize anything but basic VGA graphics. That's certainly noticable.
Boss asks: are you playing games at work?!
Me: Just checking for rootkits boss!
Some, albeit high end, motherboards support a visual warning message that alerts the user to a program, or the OS trying to modify the boot sector on the hard disk. If you had this enabled it would stop this rootkit dead in its tracks. It's just a shame that more bioses / motherboards don't offer this support by default.
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).
If your system suffered a successful intrusion, you wipe.
/dev/null.
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
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
From TFA:
I don't think this changes the situation much. Viruses have always tried to hide. This just requires different methods to detect them. Ultimately some viruses can only be reliably detected by booting off of readonly media. The same now as before. I think OS providers should provide a boot disk for routine scanning as a matter of standard procedure.
Perhaps there could be an OS that wouldn't allow malware to be injected through root-trust, signed applications, memory compartmentalization with read, write, execute permissions and 4 privilege levels (instead of 2). Of course, that wouldn't be Windows or Linux or BSD or any other generic OS.
So, just as you would expect, the future of having CPUs with hardware support for virtualization will be wonderful for preserving absolutely perfect security and cloaking for rootkits and their owners. In fact, thinking of why a certain class of non-blackhat beneficiaries would very much like such a possibility, this could be why both Intel and AMD are planning to ensure that all future CPUs, including even those in ordinary non-server desktop PCs, will have compulsory (permanently enabled) hardware support for virtualization. You know the routine - think of the children etc etc.
Technically it's not rooting an OS but actually is almost it's own OS (hypervisor actually) that is running the OS in a virtual machine. Couldn't you get the same effect by hacking BIOS?
--- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
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)"
- Kal`Goblez
The Matrix has you.
Did you ever notice that *nix doesn't even cover Linux?
Microsoft already working on one to address teh issue. I dont know if you have to pay additional money as MS hinted that ms antivirus will be a subscription service.
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.
http://saveie6.com/
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.
I don't know about your company, but I work for a giant Fortune 100 multinational company, by far one of the largest and most profitable and recognizable ones in the world. I'm very familiar with our computing environment, and I can tell you with absolute certainty that running applications on virtual machines is not only common here, it's a very important part of our future.
Yes, real applications, the kind that are business critical.
Is it a smart move? Maybe yes, maybe no. If you want to argue about it, go for it. (I don't really care one way or another.) But is it happening? Hell yeah, it already has.
"Is this testing whether I'm a virtual machine or a lesbian, Mr. Dowd?"
There are no trails. There are no trees out here.
I remember an article a couple of months ago where Microsoft employees had done something similiar, that is using virtualization to create a low level rootkit.
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.
I don't think that anyone is suprised by this. After all, it is common sense that the virtual OS's security is at the pleasure of the host, in much the same way that the security of a user-mode process is at the pleasure of the operating system. If there is anything between you and the actual naked hardware, then there is always the possiblity that that layer is doing something with your data that you don't lie.
...En að Besta Sem Guð Hefur Skapað Er Nýr Dagur
that is not true.
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.
The Kruger Dunning explains most post on
This is regarding Linux rather than Windows but:
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/
AIDE: http://www.securityfocus.com/infocus/1424
This is actually the good side to the Trusted Platform Module - you can set up your machine to refuse to boot, warn you, whatever if anything in the boot process changes. As it's implemented in BIOS with hashing of the boot process before it even loads it from disk, there's no real way around this short of having physical access to the machine and turning off the TPM.
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.
Fear: When you see B8 00 4C CD 21 and know what it means
Can't the same trick be used to make a rootkit-safe environment? Launch a watchdog application and let that watchdog application launch the real OS in a virtualized environment, as soon as a rootkit wants to fiddle the watchdog application takes notice and there would be no way for the rootkit to either detect or by pass the watchdog. Or even more drastic, launch each (or most) process in a virtualized environment, would probally be a little slow, but should provide a extremly secure OS.
"A Slashdot article just went by, and then another one that looks just like it!"
"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."
No, the solution is to not give the malware the path to even be able to do this by using a capability-type system.
Please, for the good of Humanity, vote Obama.
... it's not your machine anymore.
Your sig isn't scary, it just returns an error code of 0 (Success) to DOS. I'd be more worried about INT 13 calls...
A virtual machine can't tell anything about the state of the host it runs on other than what's exposed to it? Isn't this kinda like saying that if you use an oscilloscope to monitor bit flips on the bus, the OS can't detect it? How is this news?
Loading...
Launch a watchdog application and let that watchdog application launch the real OS in a virtualized environment, as soon as a rootkit wants to fiddle
;)
Or the watchdog could use a similar exploit to jump above the rootkit and look down to see what is running. If we're nested one level too deep then we've got a problem.
Assuming of course we can nest. If we can't, the failure to nest would show the problem.
Or you could always run something using heavy 3D, and if the CPU ignites then something's up.
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.
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
davecb@spamcop.net
I don't know about you, but when I start up VMWare in windows (or parrellels in OS X) I definatley notice a performance hit. I find it difficult to believe that somebody wouldn't notice the fact that larg(ish depending on how exactly this is implemented) chunks of RAM and disk space are suddenly in use by some rogue program.
Look out honey cause I'm usin' technology
Ain't got time to make no apologies
I've been telling people this for a while, mainly to blank stares; you cannot detect if you have a virus/keylogger/spyware on your system .... They only detect the known malware, but nobody knows about the undetected hacks.
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.
Can we use this to bypass the DRM included in Vista?
In Soviet Russia the insensitive clod is YOU!
Ok, I see how that's a great technical feat, but how is this any different? If I suspect a machine at work I wipe it. If it's a friend asking for help, and there are tons of settings I can't easily copy, I use a LiveCD and hope for the best. The illusion of real-time scanners and programs like AdAware passed a long time ago. Unless the virus flashes the BIOS (kudoz to the writer), the LiveCD should still be able to track it down, right? Provided the signature is known of course. I don't see how this changes anything?
>Accepting this then, the only truly safe way to compute today is to keep your
> 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.
The fundamental question of systems administration: once you have had a root compromise, what can you do to the machine to get it back up and running, in a known good configuration, with all chances of future compromise as a result of the initial compromise removed?
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.
You need to only use the hot water.
You need 12 bars of new, still in shrink-wrap, soap.
You need to rub 1 min under water per bar of soap.
.....wee bit paranoid?
That isn't correct. Today's top of the line security software can detect threats that have never been seen before. It works by detecting behavior, not signatures.
The next version of WGA will be undetectable? Thanks, Microsoft! ;)
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
There were some motherboard BIOSes that had built in boot sector virus scanning, but they didn't know anything about Free operating systems. A BIOS watchdog wouldn't be any better, most likely. The other problem with virtualization is that it does cause a slight overhead for any protected mode instructions that need to be virtualized. It doesn't help that the x386 architecture has several unprivileged instructions that can easily tell an OS whether it's being emulated or not (see this paper). Timing privileged instructions will also allow a hosted operating system to detect virtualization unless the entire system is emulated, which is very slow.
You just think you're booting off that DVD.
As always, all IMO. Insert "I think" everywhere grammatically possible.
Windoze has a half life of 12 minutes but other OS don't. Can you name a Linux, BSD or even a Mac worm that's managed to escape a laboratory? Computers outside the windows world only have to worry about dedicated attacks by people who know what they are doing. Yes, intrusion detection helps at that level.
There are problems with running from non writable media. The first is that you will never get security updates, so any know exploit is going to get you every time you boot. Also, wiping your binaries won't do you much good if the hacker has put the rootkit into the files you keep.
Friends don't help friends install M$ junk.
Or boot from a bootCD and investigate from there. You'd have to have the machine down, but a downed machine to catch a rootkit is often better than an infected machine doing who knows what.
Accepting this then, the only truly safe way to compute today is to keep your boot/OS/application drive from being writable. Baring this, the next best step is to re-image your drive from non-writable media daily.
Yes, but how do you know that your drive or image hasn't already been infected?
Ewige Blumenkraft.
I don't think they're right. Look at page 3 where they have their diagram showing the VMM in direct contact with the hardware.
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.
This is old news. SubVirt by Peter Chen's group at UMich is the original system which proposed this idea. FYI.
It's called Tron. It's a security program itself, actually. Monitors all the contacts between our system and other systems... If it finds anything going on that's not scheduled, it shuts it down. I sent you a memo on it.
DILLINGER
Mmm. Part of the Master Control Program?
ALAN
No, it'll run independently. It can watchdog the MCP as well.
Don't put advice in your sig.
It'll always be possible to find something that the code won't detect. All anti-virus software does is adds another step to the virus development process.
-- The act of censorship is always worse than whatever is being censored. Always.
Since the anti-virus software is available to the general public, the virus writers can test against it.
It'll always be possible to find something that the code won't detect. All anti-virus software does is adds another step to the virus development process.
Absolutely.
Having said that, you don't always have access to all versions of AV solutions (some do cost and a malware author might not find a warez version), and all research-in-progress at universities, AV labs, and whitehat/blackhat circles. Not all of it is available to the general public.
Also, even discounting the volume of software you don't have access to, finding a solution that requires reverse engineering multiple versions of multiple AV solutions is generally going to be a hard problem.
Also, just as one can examine AV code and find a way around it, once the exploit is out, one can examine it and find a weakness in the exploit.
Having said all that, once you put money behind the problem it becomes easier. Sure, defeating several dozen AV solutions is going to require a lot of work. But if you can sell off the victims computers for a commercial DDOS or blackmailing, set up spam bots, or collect credit card numbers, it suddenly becomes profitable. Once there is money behind it, you will find people who are willing to make that investment of time.
It's basically an arms race.
I remember somewhere reading that the founder of Ubuntu, MArk Shuttleworth, wanted to get linux to the point of being as easy as Firefox to install. What better way than to install linux, and still virtualize Windows on top of it? Not very practical at this point, I admit, but this could be quite an impressive way to switch over, not to mention quite easy for the end-user. You could even set it up so that you could easily switch between the two.
BSD 4, yes. But how was the Morris Worm a Linux or Mac problem?
SubVirt is the training wheels version, check this:
/ 33600#33600
http://www.securityfocus.com/columnists/402
Want to Talk?
http://www.securityfocus.com/comments/columns/402
~hylas
The rootkit's code name is "The Matrix"?
...the virtual hardware drivers. The driver software which is part of the vm management software is by definition standardized and thus a prime target for attack. It also operates below most antivirus software so if an exploit can be found in the virtual hardware, it concievable could leap from the virtual machine into the host operating system. At least that's the way I understand the process.
The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
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).OK, that was the original question. But how does it affect Linux or Mac?
Of course, this assumes your watchdog OS doesn't have vulnerabilities...
There were some motherboard BIOSes that had built in boot sector virus scanning, but they didn't know anything about Free operating systems.
All the ones I've seen didn't know anything about any operating systems. They just trapped all writes to the boot sectors. You were expected to turn it off while installing an operating system.
All those utilities people pay so much for are worthless! They only detect the known malware, but nobody knows about the undetected hacks.
One area of active reasearch in intrusion detection looks at detecting malware by examining the behavior of applications. The behavior patterns (network connections, system calls, file accesses, etc.) of a program can be compared against a list of known-bad actions. If a program acts like malware, it's malware, regardless of how what vulnerability (known or unknown) compromised it.
Also, it is possible for some programs to detect when a specific vulnerability is triggered and take preventative action. This will stop previously-unseen exploits from using an established vulnerability to compromise a system. Still, the vulnerability must be discovered first for this to work.
An technique called anomaly detection seeks to get around this limitation by building a profile of "normal" behavior for a program and flagging any deviant behavior. This still can't catch all malware, since the malware could have the infected application act within its normal boundaries, but it does severely limit what malware can do with a hijacked process. Hopefully, the malware is limited enough that it can't really harm the system.
Launch a watchdog application and let that watchdog application launch the real OS in a virtualized environment, as soon as a rootkit wants to fiddle the watchdog application takes notice and there would be no way for the rootkit to either detect or by pass the watchdog.
Well, it's possible, but you're presupposing the existence of a function that can reliably tell whether or not a rootkit is present, assuming it has full access to look at anything it wants. That would be a very useful tool in its own right. Unfortunately it's very very hard to create.
Can't the same trick be used to make a rootkit-safe environment?
Yes, provided you know exactly what the rootkit looks like and does.
Unfortunately, you are committed to looking exactly for something specific, the rootkit writer knows what you are looking for, and should be able to get by your defenses with some ridiculously bad disguise.
The only thing that might stop a new virus is installed antivirus software, most of which you can get at Staples for $40 (the corporate edition might cost twice that). I wouldn't want to base my security model on "the attacker will be to lazy to go to the store". As for new research, it doesn't matter at all - you can't install a college paper on your systems.
Sure, it'll take some work - but if it wasn't feasible we wouldn't hear about viruses any more.
Right. After the attacker has *succeeded*, and infected a bunch of systems, then you can write a defense against it. It'd be better to just get an OS patch out quickly.
-- The act of censorship is always worse than whatever is being censored. Always.
Now it's the invading code in the 'software' that's supposed to be hardware. Not even the BIOS is safe anymore.
You're making a major mistake here. You're thinking the only way to build a secure core is to define badness, that is to define what must be blocked. That's well known to be a dumb way of doing it because you end up in an arms race to define all possible badness in the world. Crazy.
Far better is to define goodness. That is to say, define exactly when you'll allow something to bypass your protections. For best effect, do this in a way that is user-specific so that the onus in the arms race is wholly on the rootkit author. Let the blackhats do work (or, more likely, pick a different softer target).
"Little does he know, but there is no 'I' in 'Idiot'!"
The fact of the matter is, everything described in the article is implementable right now with existing hardware. Any x86 machine can emulate an x86 machine. If you don't believe me, take a look at qemu, which can do so entirely in user-mode.
Rutkowska's approach to detecting whether code is run in a virtual machine is based on checking the address of the IDT. This approach fails to detect qemu. Below, furthermost is a qemu machine; evanescence is a "bare-metal" AMD K6-2:
The IDT address that qemu reports doesn't match the signature of a VM. I should imagine this address could be modified to return the same result as my K6-2 does.
The emulator has complete control over the guest environment. Complete. Control. Including completely spoofing the hardware of the real host system.
This shouldn't be shocking.
I'd also like you to qualify or expound on your allegations. It's not exactly clear; what does Intel or AMD stand to gain from undetectable rootkits?
Problem: Virus / Rootkits are now so good there's no way we can detect them anymore! Reaction: Somebody has to do something about this! We need to be able to make sure something like that doesn't get installed. Solution: Trusted Computing / "Palladium" / "Fritz Chip" -- what they wanted all along. It would surprise me not one bit if the hypervisor root kit was built for people who had exactly this kind of discussion in mind.
The goal of the Pacifica technology is to do the virtualization in the hardware to avoid the need to emulate devices. Microsoft's Virtual PC product is forced to emulate a particular network card (an old Intel 10mbit card, if memory serves) and then translate usage of that network card to calls to the NT device drivers for the real network card. Under Pacifica, the virtualized system talks directly to the real network card and the hypervisor software (which runs beneath the OS kernel) co-ordinates the different OS kernels in a similar sense to how the NT kernel co-ordinates multiple applications talking to the network card.
Since the hypervisor software is essentially "an OS to run OSes on top of", if you can find a way get some software running in there you can do whatever you want with the "real" OS completely oblivious.
Please don't let Sony hear...
There's a difference between what he said "known malware", i.e. programs, and your character known behavior. Out of curiousity, how in the world is this related to basic math?
The only thing that might stop a new virus is installed antivirus software, most of which you can get at Staples for $40 (the corporate edition might cost twice that). I wouldn't want to base my security model on "the attacker will be to lazy to go to the store".
;) And for the people doing it professionally, I don't imagine $40 is a particularly expensive testbed, agreed.
;)
The type of person who writes malware probably doesn't have much of an issue with just copying the software rather than paying.
As for new research, it doesn't matter at all - you can't install a college paper on your systems.
Quite true. I was thinking along the lines of a malware author developing software that almost nobody can find, which wasn't really the subject, so my mistake.
Sure, it'll take some work - but if it wasn't feasible we wouldn't hear about viruses any more.
We hear about a range of viruses, some fairly simple in function and some with capabilities designed to avoid specific products. I would say that for some viruses, the effort is made, and for others, it is not.
Right. After the attacker has *succeeded*, and infected a bunch of systems, then you can write a defense against it.
My point was that once it is out, damage is done to a number of systems, but given time someone will (may?) develop a means to detect it and stop it. Thus you need to achieve whatever purpose you set out for in the first hit before AV vendors start blocking you.
It'd be better to just get an OS patch out quickly.
Indeed, if your OS vendor supplies you with it in a timely fashion.
Yup. That's the reality of the attackers... not poor kids sitting in their parent's basements who can't drive to Staples because they don't have drivers licenses.
I'd say that there are both. Kiddies using virus toolkits, amateurs reversing exploits or rolling their own, and pros who are taking the time to do what they need to make a profit.
Right... but Antivirus software adds almost nothing that you couldn't get from reasonably quick OS patches.
Assuming you mean worms: Fast OS patches would certainly be nice, but occasionally a blackhat will find an exploit first. Yes, they should be handled by the OS, not a separate product. If you meant viruses: Viruses don't need exploits to spread, patches won't stop them. Blocking modification to executables in some intelligent way (that doesn't barf if you use a compiler) could work though.
AVs can sometimes clean up the mess caused by a virus or worm strike. They can pick up viruses in email attachments, or sitting in a new executable that you've just downloaded. They can often pick up known malware. They can contain generic tests to pick up some new malware. I'd argue they are still useful.
Having said that, when it comes to a new exploit, worm, or similar that it doesn't know about, or is actively hiding from, you're dead right, they don't do a damn thing.
This requires them to move the host OS to a VM. Getting someone to install a trojan is getting easier but something this disruptive would be obvious to even the dumbest lamer.
Having to work for a living is the root of all evil.
A key point about virtualization (even hardware virtualization) that people miss is that it does not guarentee that programs run as they normally if those programs are timing sensitive. This isn't a new revelation. If you go back to the Popek/Goldberg paper from the 70s, they make it quite clear.
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.
### Yes, it is entertaining how many people solve the problem that "this OS gets infected" by saying, aha, we'll write another OS to watch if this OS gets infected, and never wonder, what happens when the 'another' OS gets infected.
How should that watchdog OS get infected? Its not talking to the internet the whole day, but instead doesn't do anything other then watching files. Sure, there is still a tiny tiny chance that it might get infected by some good old buffer overflow, but that is really so extremly tiny compared to the chance that a normal OS gets infected these days, that it doesn't really matter.
### Unfortunately, you are committed to looking exactly for something specific, the rootkit writer knows what you are looking for, and should be able to get by your defenses with some ridiculously bad disguise.
No, its actually very easy, just use some cryptography and sign all 'good' binaries with a private key, let the watchdog OS have the public key and check all the binaries. A rootkit can't break that check unless it breaks the encryption, which is extremly hard, almost impossible. The trick is simply to not look for a rootkit, but just anything that differs from a clean OS.
You're modded as funny, and you may have meant it as a joke, but is it actually possible? Could a virus modify the BIOS settings to always boot from the hard disk (or even re-flash the BIOS to do so), have the hard disk boot manager load the virus, then search for bootable floppy's / CDs / DVDs ?
It's a pain to reboot from a CD and plug in the hard drive every time you want to back up your system though, and then unplug it once you're done. Makes unattended scheduled backups tricky.
So the scenario described in TFA is like this:
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.
You're thinking the only way to build a secure core is to define badness, that is to define what must be blocked.
... You have a similar problem trying to define goodness.
Actually, no. (But I am phrasing things rather carefully and your reaction is totally correct if you didn't parse everything precisely)
BUT
Carefully define everyone/everything who/how/whatever will ever befriend you during your uncertain future.
However you try, you definition of friendly will have in it something fatal.
A simple checksum on binaries -- trivial to implement in a program loader. Probably tried a few times and abandoned.
As soon as you encounter a certain type of bug, you have just ensured that the bug is unfixable, unpatchable. There is a quick and easy fix but applying it makes the system permanently unusable. (Actually makes a very effective "logic bomb";)
Running a virtual os through a security "watchdog" application, talk about security. I think im hearing the future of software security suites. Instead of installing them on your os, Macafee or Norton could make little security distros of their software, allowing for any virtualization on top of that. Wow, that would be cool.
Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
He doesn't seem to realize that worms existed before 1994 and they ran on UNIX, not Windows.