Security Threats 3 Levels Beyond Kernel Rootkits
GhostX9 writes "Tom's Hardware has a long interview with security expert Joanna Rutkowska (which is unfortunately split over 9 pages). Many think that kernel rootkits are the most dangerous attacks, but Joanna and her team have been studying exploits beyond Ring 0 for some years. Joanna is most well known for the BluePill virtualization attack (Ring -1) and in this interview she chats a little bit about Ring -2 and Ring -3 attacks that go beyond kernel rootkits. What's surprising is how robust the classic BluePill proof-of-concept is: 'Many people tried to prove that BluePill is "detectable" by writing various virtualization detectors (but not BluePill detectors). They simply assumed that if we detect a virtualization being used, this means that we are "under" BluePill. This assumption was made because there were no products using hardware virtualization a few years ago. Needless to say, if we followed this way of reasoning, we might similarly say that if an executable makes network connections, then it must surely be a botnet.'" Rutkowska says that for her own security, "I don't use any A/V product on any of my machines (including all the virtual machines). I don't see how an A/V program could offer any increased security over the quite-reasonable-setup I already deployed with the help of virtualization." She runs three separate virtual machines, designated Red, Yellow, and Green, each running a separate browser and used for increasingly sensitive tasks.
I don't use any A/V product on any of my machines (including all the virtual machines). I don't see how an A/V program could offer any increased security over the quite-reasonable-setup I already deployed with the help of virtualization.
This seems a touch... idiotic. I could see how it could offer more. AND I don't see how it could offer less.
For what its worth, I don't use an A/V product either.
And Like her, I also have a "pretty reasonable setup" and a dose of "common sense". But I'm still balancing the increased responsiveness and hassle-free experience vs the extra security. Its a trade-off that's worth it to me, but I recognize that it is still a trade-off.
She runs three separate virtual machines, designated Red, Yellow, and Green, each running a separate browser and used for increasingly sensitive tasks.
And in the article:
I totally don't care about a compromise of my "Red" machine--in fact I revert it to a known snapshot every week or so. I care much more about my "Yellow" machine. For example, I use NoScript in a browser I have there to only allow scripting from the few sites that I really want to visit (few online shops, blogger, etc). Sure, somebody might do a man-in-the-middle (MITM) attack against a plaintext HTTP connection that is whitelisted by NoScript and inject some malicious drive-by exploit, but then again, Yellow machine is only semi-sensitive and there would not be a big tragedy if somebody stole the information from it. Finally, the "Green" machine should be allowed to do only HTTPS connections to only my banking site.
And as long as your bank is never hacked and serving up malware, that probably works well...
Advice: on VPS providers
"...interview with security expert Joanna Rutkowska (which is unfortunately split over 9 pages)"
Why oh why did they split Joanna into 9 pages?! Thats so cruel!
Also, First Post
There's careful, there's paranoid, and there's three separate virtual machines.
Security is: 386 dx 40 (my first computer), BSD kernel, and Lynx non-graphical web browser. Only down side.... ascii-art porn (sigh).
Come back later when you're coherent.
When 4 cores and several gigs of ram are available in inexpensive off-the-shelf systems, and VM software is freely available and easier to deploy, paranoid levels of security become more and more practical.
I prefer rogues to imbeciles because they sometimes take a rest.
It's fine if you apply all security patches, utilize good firewall hardware, don't surf the web or run random untrusted executables on said win32 or win64 box.
Or if you run said web surfing inside a robust sandbox.
Time is only one half of the equation. What are your privacy and security worth?
I prefer rogues to imbeciles because they sometimes take a rest.
Microkernels that provide security boundaries between drivers have tended to have unacceptable levels of context switching in the kernel, so once you get past the theoretical stage and you're trying to push the performance to the point where you can compete with monolithic kernels... you're going to get rid of those boundaries.
Microkernels should be seen as a design model for a kernel, an abstraction of the traditional real-time kernel to a broader application area. You shouldn't demand or expect a microkernel to have actual separate processes for each component any more than you should or would demand a TCP/IP stack actually implement separate code layers and call gates for each level of the network stack.
It is idiotic for three reasons:
1) The vast majority of attacks out there are simple programs that install in the OS. They are not some uber VM root kits or the like. As such, a virus scanner running in the OS is perfectly capable of dealing with them. So no, it doesn't give you 100% defense but I bet it stops 99.99% of the attacks out there and that is worth something.
2) Even in the case of low level root kits, they still have to get to your system in the first place. That in general means they have to get downloaded form the net or transferred from a CD or flash drive. Guess what? A virus scanner in the OS can stop that. It can scan the program coming in, before it has a chance to run, and block it. Even if the program would set itself up on a level below what the scanner could detect, the scanner can notice it as it is coming in before it can execute and do that.
3) Defense in depth is ALWAYS a good idea. In the real, physical, world you have to accept that no security is unbreakable. Anything you can make another person can unmake or circumvent. Thus security does not come from having one impassable layer, it comes from having multiple layer of different kinds. Should one layer be bypassed, security over all is not compromised. Well, a virus scanner on the system is another layer. Should be the only layer, but it helps.
Personally, I've never been impressed with her as a security researcher. She seems to be rather paranoid, and living in a theoretical world. In part this is because for all the chatter about Blue Pill, I haven't seen it made practical. Oh sure you can talk about an undetectable super rootkit on paper but does it actually work in the real world? VMWare doesn't think it would, and they do know more than a bit about virtualization.
I'm not saying this isn't an interesting line of academic research, but I'm getting tired of the "OMG I can own any system and not be detected!" doomsaying. No, really, not the case it seems.
Not to mention the cost of 3 OSes. And I'm not sure if MS can enforce this, but right now you have to buy the more expensive version of Vista according to the license agreement.
Liberte, Egalite, Fraternite (TM)
She runs three separate virtual machines designated Red, Yellow, and Green, each running a separate browser and used for increasingly sensitive tasks.
Three operating systems to maintain. Three browsers. Three filing systems? Three PDF viewers?
Where does it end?
To me, the Zero Day exploit suggests that a random choice of OS, web browser and file viewer would make more sense.
But the whole idea seems overly complex and dangerously fragile.
"Most of the time the AV just dies with any half-decent virus infection"
This is true. It is also a valuable feature.
Not for the poor bastards at home, of course, it'll just make their descent into pop-up misery and a new computer from best buy even faster. Pretty much any centrally managed AV setup, though, makes it pretty easy to check whether or not AV is running on a given client. If you have a client where the AV won't stay up, you have excellent reasons to suspect that the OS is 0wn3d. You can then inspect further, or just pave and reimage, depending.
Malware's habit of shoving an ice pick into the AV's neck at first opportunity is bad for nontechy home users; but it arguably makes that malware easier to detect in serious setups(if the AV can't detect the malware, which is likely, its blood demise will be obvious enough to draw attention).
If only somebody would make a free OS! Well, I guess we can always dream.
I guess it's true that what you don't know can't hurt you.
I'm not sure I agree with that one. Plenty of stuff has bitten me in the ass regardless of whether I knew anything about it.
It's like being a cop and having a teen daughter. Knowing all the dangers out there you can't just let her go to this one party, can't you?
You can't shelter your kids forever; you have to build stronger, better kids and trust they can deal with the world when it is time ( Believe me, I know - I'm there right now).
In the same way, putting thought and care into building a robust, secure computer system pays dividends when it has to deal with the real world.
I guess that's why she's so paranoid about it.
She sounds like a contractor I knew who completely overbuilt his house just because he could. Paranoid? Not really. Just building the best house he reasonably could.
Whenever I see overprotective/overkill ... there are some people who live their lives in fear
What might be overkill in the hands of experts today might well be standard issue tomorrow, and no more difficult to use than personal AV and firewall apps today.
I see the Internet as just another way of communication. nothing more
Fair enough. But it sure isn't free of danger, and thinking otherwise won't change things.
I prefer rogues to imbeciles because they sometimes take a rest.
I'd root her box ;)
I'd be careful. She doesn't use AV.
Been there, done that, works great.
A few years ago, I set up a bunch of thin clients for general browsing, chatting and homework at a school dorm - they were (were, as I have no idea if they're still in use, but they were absolutely maintenance-free, so I guess they should be) running Linux, with the kernel and boot config (generated on the fly) loaded from a read-only TFTP server and / mounted from a read-only NFS share. On each boot, the init scripts would finish generating a machine-specific configuration in /etc/ and mount a few ramfses on top of some directories using unionfs to give an illusion of a read-write filesystem. Then, upon login (LDAP authentication), the user's directory would be mounted from an individual password-protected Samba share (accessible from the users' personal computers as well), with the noexec attrubite of course. /tmp/ and /var/ were also noexec. Upgrades to the client system were performed at the server, by chrooting into the exported root directory.
Such a configuration is absolutely invulnerable to users, rootkits, viruses and any other riffraff known for breaking things in computers. Even in the unlikely event that someone gained root privileges on a client, they would actually gain nothing and even that nothing would vanish after a reboot.
This is Slashdot. Common sense is futile. You will be modded down.
I guess it's true that what you don't know can't hurt you.
Okay, so, you're walking through your house, right? And you think, "I know, I think I'll make some pancakes", so you go to the kitchen. But what you don't know is there's an ANGRY GRIZZLY BEAR in your cupboard next to the flour.
Ezekiel 23:20
Most of your time IS worth nothing. But people are too arrogant to admit it.
You're serious, right? Let's assume that I have one copy of WinXP - or, Win7, legally licensed. I install a *nix as my primary OS, create a VM using VirtualBox, and I'm legal, so far, right? Get the VM all updated, then clone it 99 times. Suddenly, I'm illegal, right? But, all 99 machines are being used INSIDE of ONE BOX!!! I use one machine to browse the darknet, another machine to do torrenting, another to do my banking, one for general browsing, and one just to test malware on. The rest I may or may not ever fire up for some reason that I haven't thought of yet.
So, how much should I mail to Microsoft for all of my VM's?
Say, can I bum a dollar?
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
I understand the DEP (data execution prevention) enabled processors weren't common back in Windows XP days but what is the deal with Windows 7 even 64bit version? Why wouldn't MS enable it by default as it is said to prevent very serious attacks on CPU level, without slowing down the system at all?
While there are no real viruses on OS X yet, I try to prepare machines for "no AV needed even while viruses exist" configuration just like you with couple of extra admin prompts, that is all but I don't follow Windows scene too much.
After enabling DEP, I even gamed on Windows 7 64bit (game is even running under win2k compatibility) and I haven't seen anything bad happen. I remember some stupid HP driver on another machine crashed because of DEP but that was all, the error message was really informative too.
So, do they disable it to make couple of badly written software owners happy while 99% would benefit from it?
BTW, this is what DEP is
http://en.wikipedia.org/wiki/Data_execution_prevention
There's no benefit to a micro-kernel in these so-called ring -1 attacks. None.
You know, the really odd thing is that that's what I just said. Microkernels are not about security, they're about internal kernel API design. That's why Hurd and Mach suck, they're taking the API design guidelines and treating them as kernel architecture.
I hurd about something too, but that wasn't it.
She's also a man, baby!
http://www.rutkowska.yoyo.pl/
And what about those BIOS/EFI[1] firmware-based hypervisor rootkits? If someone is able to gain root access in a given system that is somehow "vulnerable" in such way that a permanent EFI (or similar) rootkit can installed, then you'll be fucked even with the read-only media and all.
Speaking of which, I don't understand why manufacturers are so eagerly adding all this new intelligence into the firmware. What do we need it for anyway? IMO it would be so much simpler from security perspective, if the OS would be at the bottom of it all. Added complexity adds new possibilities for exploitation.
[1] http://en.wikipedia.org/wiki/Extensible_Firmware_Interface
Running three separate VMs is not only a sign of paranoia but also a delusion that as a person functioning in todays world you can realistically have so much control over information that with enough effort you can control your own security in all regards, or even that you can control it to the extent necessary to protect yourself from common threats.
Put aside for a moment that she's a security researcher and that probably invites more attacks than the rest of us face. There are a number of flaws readily apparent with this approach to security:
1 - Knowledge is power, and you just told the world critical elements of your defenses. There's a reason banks don't disclose such things. It doesn't make your system any less secure, but it raises the bar for attackers.
2 - You maintain your own VMs. In your mind nobody is better equipped to protect your systems than you are. In reality if you made a security blooper on one system you probably replicated it on all three VMs, if not the host also.
3 - I guess you assume that if you're running an app in the VM and someone decides to attack a vulnerability in your network stack that it won't actually the host system, and since the VM leverages the network stack of the host system that's not necessarily true.
4 - You may secure connections between entities like your bank by allowing only HTTPS through a browser in the VM. Reality is that in the last year major payment processors have been breached resulting in millions of people's card details being stolen. RBS WorldPay and Heartland Data Systems are two known breaches, there is one other yet unidentified from what I have read.
5 - As others have pointed out, anti-virus *will* protect you against nearly all *common* attacks. Today's anti-virus products even scan mail and http traffic for threats before your applications can process the data themselves (usually not in free versions of the AV apps). To say it adds no value at all is sending a very bad message to the majority of readers who would like to think they're better equipped to handle their own security than they really are.
The reality is that you can very easily do many simple things to help protect yourself. Install all your application updates promptly, be careful where you download software from, don't run attachments from spam e-mail, don't follow links sent to you in email without checking where they really go first, be careful where you enter your card details, run AV software, etc. etc.
However, beyond a certain point you have to spend exponentially more effort, beyond what the majority of people would consider reasonable, for very small gains in security. Chances are that you will still suffer fraud etc. during your lifetime, and it will be due to some vector completely beyond your control.
No, I didn't RTFA. 9 pages? gtfo.
She now realizes that Ken Thompson's paper:
"Reflections on Trusting Trust"
http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf
- is the basis of ANY hardware firmware or re-flashing of hardware.
I can't wait for next month and hopefully the bombshell we've been waiting for.
Brilliant Joanna indeed.
~hylas
Okay so at my school we have faculty advisers that are assigned to students according to their last names. The faculty advisers help students with scheduling conflicts, general questions, help with internships/employment, etc. My adviser is named Jess Depew and she's pretty hot. I don't have a picture that could do her justice at the moment. She's like 25 and she's only been at the school a few years. Anyway, I have been looking into getting an internship at a TV station or something over the summer, and the school helps coordinate these things with an internship database that's maintained by the advisers. You log on with your school ID and password and you can browse internships and stuff. I was having trouble logging on to mine so I went to go see Ms. Depew. That's where all the trouble started.
Firstly, I walked into office like 15 minutes early like an idiot and she's in the middle of lunch. So I awkwardly make stupid stall talk until she's finished.
"Oh, hey, what are you eating?"
"Salmon. I love it. I eat it practically everyday."
"Just salmon? That's pretty weird." Why the hell did I say this?
"Oh, well, I don't know. I try to eat healthy, natural foods...you know, like wild berries and honey and stuff."
"Yeah, I like food too." *facepalm*
Man, I was so nervous. Anyway, we finally begin squaring my stuff away. She looks up what I registered with in the beginning of the year. This is when the crap really hit the fan. This is how the conversation went:
"Okay, your account name is [my name] and your password is ...'depewissexy'..."
Oh damn. I completely forgot that I put that as my password in the beginning of the year. What the hell was I thinking? It was probably the longest 20 seconds of my life before I finally got my balls together to stand up and leave. Just as I walk out the door she says,
"In the future, you might want to bear in mind what kind of things you want keep to yourself."
I was so freaking embarrassed I wanted to kill myself right then and there. I wanted to run the hell out of there and never, ever see her again. But something about what she just said kept me standing in her doorway. I decided to man up and apologize. I turned to her, looked her straight in the eyes, and swallowed my pride. And then, it hit me like a train full of bricks.
She was eating Salmon.
She tries to eat all healthy, natural foods, like wild berries and honey.
She told me that I might want to bear in mind what kind of things I want to keep to myself.
Ms. Depew was a bear disguised as a human.
Immediately, the bear saw that I had seen through its charade. It roared loudly and took a menacing swipe at me. I deftly avoided its claw and sprinted out of the office. The bear was soon in chase, crashing through the walls of the office as if they were made of paper. I jumped over the receptionist desk and ran out the back entrance. The bear followed, tossing the secretary aside like a rag doll. The bear began to pursue me through the street traffic. While I fought my way through the maze of vehicles, the bear simply careened its massive force through anything standing in its way. Cars veered off the road to escape the onslaught of grizzly force that was barreling down the road. The bear was gaining fast. I had no other option but to make my way into the nearest building: a preschool. I burst through the door, startling the children from their naps. Immediately, the bear slammed through the wall, crushing a child beneath his massive paws and burying several other children in sheet rock and debris. I maneuvered my way through the chaos towards the back exit. The pre-schoolers were little more than a screaming annoyance for the bear. Its massive paws cut swaths through the sea of toddlers with each swipe. I used the precious time these children had afforded for me to make my escape into the playground. I scrambled up a ladder to a fort-like structure. My goal was to walk across the monkey bars then jump to a tree which I could climb
Third party testing, that's how. VB100 would be a big one, but there are others. Various companies test virus scanners and see how they do. That is, in fact, the only way to know how well they work. Having the code open does nothing. You can look at the source and it doesn't tell you how well the thing actually works against threats.
Indeed the only OSS AV software I've aware of, CalmAV, does a pathetic job. The reason may be in part due to the way it is written but more because it doesn't have a good database of signatures. That is what really makes or breaks a detection program. There is no way to write heuristics to find everything. This is not only because there are no universally "bad" actions to look for but also because if you look for only certain behavior, the virus writers will write to avoid that. So the real way detection is done is via signatures. Viruses are analyzed and a database of them is updated on a daily basis (sometimes more often).
ClamAV just doesn't have a good, up to date database and thus misses a lot. NOD32 does, and thus misses little if anything. That the code is open doesn't mean a damn thing. Open or closed, you have to actually test it in an operating environment to see how it works and the answer is NOD32 works well, Clam does not.
Very strange... why would someone become transgendered and then turn lesbian?
You don't 'become' trans-gendered. Current medical opinion is that it's a brain structure thing you're born with.
And you wouldn't 'turn' lesbian either, typically you would be born with the tendency to be oriented towards men/women/both.
Gender identity (whether you 'feel' that you are male or female) and sexual orientation (whether you are attracted to men or women or both) are separate issues. It's not a question of 'what is easier', it's a fundamental identity issue.
A good AV will detect unknown threats and zero day attacks even before you read about them.
Really, how does that work if the malware has been tested to work against the AV before it being released into the wild?
Virtualbox doesn't run on "*nix", so the simplicity of your example is misleading. Windows, Linux, Macintosh and OpenSolaris are the only supported operating systems. The guest OS support is similarly limited.
Hang on, suddenly MacOSX, linux and OpenSolaris are not *nix?
MacOSX is registered Unix 03, OpenSolaris is based on System V Unix and Linux is a non registered Unix clone. Which of those don't you consider *nix? The ones without nix on the end (which leaves Linux) or the ones that aren't Unix (which at least leaves MacOSX)?
You could also throw FreeBSD into the mix which is similar to Linux in that it conforms to many of the same standards without being registered as Unix, there is an experimental version of VirtualBox available for FreeBSD.
The plank is frozen in fear.
Ezekiel 23:20
Most of your time IS worth nothing. But people are too arrogant to admit it.
My time is highly valuable. To me that is. I could care less if it's valuable to you or anyone else. I don't feel that is arrogance. If I don't value my own time, how can I appreciate/value other folks time? Or who would value my time if I don't value it myself first?
There are no loopholes. It's either legal or it's not.