Slashdot Log In
Using Memory Errors to Attack a Virtual Machine
Posted by
michael
on Sat Mar 15, 2003 03:03 AM
from the no-one-is-safe dept.
from the no-one-is-safe dept.
gillus writes "A very cool scientific paper from Appel and Govindavajhala that explains how virtual machines like java or .Net can be exploited. How? Quite simple, bomb your DRAM chip with X-rays... or more simply with 50-watt spotlight, as the authors demonstrate. Definitively worth a read!"
This discussion has been archived.
No new comments can be posted.
Using Memory Errors to Attack a Virtual Machine
|
Log In/Create an Account
| Top
| 251 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
This just in! (Score:4, Funny)
(http://www.gfunk007.com/ | Last Journal: Saturday May 27 2006, @04:33AM)
Film at 11.
Re:This just in! (Score:5, Informative)
Reports are sketchy at present, but we're being led to believe that it's easy to compromise a machine to which you have physical access!
Bet you didn't even read the abstract. Here's the relevant bit:
Our attack is particularly relevant against smart cards or tamper-resistant computers, where the user has physical access (to the outside of the computer) and can use various means to induce faults; we have successfully used heat.
Re:This just in! (Score:5, Informative)
(http://arvindn.livejournal.com/ | Last Journal: Monday June 16 2003, @12:39AM)
Some pointers:
Brute force (Score:5, Insightful)
(http://siliconcarne.org/)
And any literary work can be obtained with an infinite number of monkeys sitting at an infinite number of typewriters for an infinitely long period of time.
Most serious ciphers attacked using brute force with contemporary technology will probably hold out until the universe's heat death. Not to mention the fact that some experts claim that there simply is not enough energy in the universe to cycle a 128 bit counter through all its states, let alone perform any computations.
Re:This just in! (Score:5, Insightful)
(http://slashdot.org/)
Any encryption can still be broken through though brute force.
This is simply not true. One-time pads are 100% unbreakable, and they will always be unbreakable (at least mathematically speaking), no matter how sophisticated technology gets in the future. For those who are unfamiliar with the concept, a one-time pad is a cryptographically random string of 1's and 0's, which is at least of the same length of the message itself. Two parties have a secure channel in which to exchange these pads; for example, if Alice and Bob wish to use one-time pads, Alice can generate a list of 10,000 cryptographically random strings, put them in a suitcase that is handcuffed to her wrist, and deliver them to Bob in person. Bob and Alice then have a set of one-time pads that they can use for all future communication. Each time they encrypt a message with one of the pads, they discard the pad and never use it again. Because the pad is at least the length of any messages they might pass back and forth, there is no way to analyze the encrypted message for patterns. It is mathematically impossible. You could easily come up strings of 1's and 0's that would ``decrypt'' the message into anything, be it passages from the Bible, or Ogg Vorbis encoded music. You would have no idea which set of 1's and 0's produced the actual original message. This is truly unbreakable encryption on a mathematical level.
Most companies claiming that their encryption is ``unbreakable'' are using one-time pads; the problem is reduced to finding a secure channel of communications in which to transmit those pads. This is usually not a feasible assumption, which is why we all prefer using, for example, Diffie-Hellman key exchange, which depends on the difficulty of math involving discrete logarithms. The encryption we now use is breakable, but it is hard enough to break that it is generally considered secure.
Re:This just in! (Score:5, Informative)
<sigh> You know, I answered just this same question yesterday... </sigh>
As a thermodynamic minimum it takes 4.4 * 10**-26 joules to set a bit. (Well, it takes that much to erase one bit of information. But that's quibbling.) So multiply that by 256, for the number of bits in an AES key, and you get 1.1 * 10**-23 joules to store a key.
Now multiply this by 2**255, which is the number of AES keys you'd have to try to break it by brute force (on average). You get 6.4 * 10**53 joules of energy needed.
The total annual energy output of the Sun is on the order of 10**34 joules. Multiply that by 10**10 to compute the total energy release over the Sun's entire lifespan (yes, this is a nasty kludge of an estimate, I know the Sun's energy output varies) and you get 10**44 joules of energy.
Which means you've only exhausted one billionth of the damn keyspace.
No, you can't break any encryption through brute force. There just isn't enough energy in the universe to do it, even positing thermodynamically-perfect computers operating at 3.2K.
Re:This just in! (Score:4, Informative)
(http://theducks.org/)
What you really need for a physically secure device is an IBM 4758 CryptoCard.. [ibm.com] of course, for it to be useful, you need it protected against key recovery attacks. [slashdot.org]
Re:This just in! (Score:4, Interesting)
(Last Journal: Friday November 14 2003, @03:56PM)
Just a guess, but I have sure had my share of EMI and radiation induced problems.
Re:This just in! (Score:4, Insightful)
So if I can break smart card event if is does not run any my [untrusted] code, who cares about attack to smart card that allows to run untrusted code? Besides, I've never seen any smartcard that actually does this stupid thing.
A better target for attack may be a server at a nuclear reactor facility that has natural high rate of memory failures :)
Re:This just in! (Score:5, Interesting)
"To attack machines without physical access, the attacker can rely on natural memory errors."
This paper showed some means an attacker could physically cause a memory error, but it never said that such intervention was required to stage the attack. My guess is that this would be most useful with those "low load" ram chips that ran on slashdot a while back.
This attack doesn't look very effective (Score:1)
(http://www.misscellania.com/ | Last Journal: Monday October 29, @11:47PM)
Re:This attack doesn't look very effective (Score:5, Interesting)
Um... no. The paper states that if a single-bit error can be induced, then the probability that this single-bit error will then allow the exploiting program to execute arbirary code (as opposed to causing the OS or the VM to crash, etc) is 70%.
So, keep in mind that there are two components to this exploit: 1) writing a program that takes advantage of single-bit errors to execute arbitrary code, and 2) wait for cosmic rays or direct some radiation yourself at the hardware to induce soft errors. The effectiveness depends largely on how quickly/reliably you can induce such errors w/out crashing the machine in the process.
Maybe the techniques for programming the exploit program described here are well known to more experienced programmers, but I found the article extremely interesting and enlightening. I've been taught for years about the superiority of Java's type system as a security measure, and I know that a lot of theoretical work and proofs have been done to show that Java's type system is secure, but this exploit manages to get around the type safety with such a simple trick that I'm kicking myself for not having seen it myself. It's almost elegant, the way they get it done.
seriously (Score:1, Interesting)
(http://randyrandy.net/)
So, I can't share my team's research results that clearly show that this is a bigger problem than most raders probably realize. Nor can I share the steps (advanced ECC, logic-BIST, etc) we're taking to prevent this before it gets well-known enough to be a problem.
But I can say: this is indeed a scoop, way to go
Secrecy my arse. (Score:5, Informative)
(http://slashdot.org/)
Using bit errors to flake out machines, where there is no parity or other error checking, is very far removed from "secret tinfoil hat" stuff. Why do you think chips are packed in black epoxy?
the implications!! (Score:5, Funny)
Rather useless because of a few points (Score:1, Interesting)
A quick workaround... (Score:5, Funny)
However, now you get a denial of service attack, but hey, it's better than information disclosure or arbitrary code execution.
*.ppt (Score:2, Redundant)
(http://swerdfeger.com/ | Last Journal: Sunday May 25 2003, @12:25AM)
Open office did a decent job on it though
Re:*.ppt (Score:5, Informative)
(http://www.metlin.org/ | Last Journal: Friday July 20, @01:58PM)
Link is valid for 7 days
End of Slashdot (Score:5, Funny)
(Last Journal: Saturday September 17 2005, @08:51PM)
Re:End of Slashdot (Score:5, Funny)
They actually posted a *link* to a *PowerPoint* document in a Slashdot article! Worse yet, no one seems concerned.
Noone reads the articles, so they probably didn't even notice. OK, *I* didn't notice.
Re:End of Slashdot (Score:4, Informative)
(http://slashdot.org/ | Last Journal: Wednesday October 02 2002, @10:14PM)
Just to infoome people who may not know:
The file loads just fine in OpenOffice.
OpenOffice is available free (beer and speech) at OpenOffice.org for Windows, Linux, MAC OS X, FreeBSD and Solaris.
I'm sure Apple's Keynote works as well.
New nifty trick for a hacker book (Score:3, Interesting)
If the air conditioner went out at midnight, most system administrators wouldn't know until the morning.
I'm reminded of Knuth's quote (Score:5, Insightful)
(http://arvindn.livejournal.com/ | Last Journal: Monday June 16 2003, @12:39AM)
Scientific paper (Score:1)
This just in... (Score:5, Funny)
(http://www.greplaw.org/)
(There are some things you just never forget from your high school physics lab)
Re:This just in... (Score:4, Informative)
(http://ozma.dyndns.org/)
A black-and-white TV has only one type of phosphor, so it is not as important that the electron streams hit the correct, absolute position on the screen. The screen is uniformly coated, and I don't believe there is an appeture screen on these types of screens.
So, what happens when you hold a magnet to the screen? For one, you deflect the electron streams, so you get a temporarily distorted image, and the colors are off because the electron streams are pointing to the wrong phosphors. With B/W, it just doesn't matter; a phosphor is a phosphor.
Additionally, a powerful magnet can permanently distort or magnetize the metal appeture mask/grille, causing permanent damage the the screen's ability to align electron streams to the appropriate phosphors.
And that's it. I may have misspelled appeture. Oh well.
In other news. (Score:5, Funny)
best line from the article (Score:5, Funny)
(http://www-mae.engr.ucf.edu/~ambrose/)
More elegant way to break a VM (Score:3, Interesting)
(Last Journal: Saturday September 20 2003, @01:55PM)
Seems more elegant than nuking your machine.
At DefCon X, Gobbles announced a simmiler vulnerability in vmware, though no exploit or advisory has been released so far. For anyone that assumes they're just fear mongering, They also announced the zero day apache bug there, which I'm sure you all remember.
viva las vegas (Score:2, Funny)
Yes no problem... (Score:1)
Make clip on lamps illegal (Score:5, Funny)
(http://www.phcomp.co.uk/)
Next Spy Gadget? (Score:2, Funny)
(http://www.udviklingschef.dk/ | Last Journal: Sunday April 18 2004, @02:52PM)
Or, it can be used for lesser evil stuff as well. In the office. Find the cubicle with the guy that just hates computers. Every time you walk by him to get a cup of coffee, zap his computer with your device. Try to time it so he loses maximum amount of work. Then sit back and watch him go postal.
New Computer Cases (Score:5, Funny)
(http://x11.rocks.it/)
Alex descends into hell for a bottle of milk (Score:5, Funny)
(http://www.shopping-cart-reviews.com/)
"A very cool scientific paper..."
Oh dear, we really are geeks, aren't we.
a side note about developement of ecc (Score:3, Insightful)
More likely a system crash would occur (Score:1, Interesting)
This attack doesn't sound very useful....though does make an interesting paper.
Hundreds of megabytes (Score:2, Funny)
Makes you think about ICQ, doesn't it?
Atari 2600 & a screwdriver... (Score:2)
(http://slashdot.org/)
Even at that age, I knew the system wasn't too complex...one chip-per-game, less than a couple dozen pins teasingly poking out the back. Hmmmm...about the width of a screwdriver. TV connected, power on, and screwdriver in hand, in went my Adventure game cartridge. Pin 1+2, garbage, reset. Pin 2+3, more garbage, reset. Pin 3+4...hmmm. After a while, I moved on to short pieces of wire.
Some pin combinations made the walls dissapear, dragons flicker (and become harmless). Others rearranged the contents of the rooms and/or where the exits went to.
The exploit described in the article is similar. If you have a focused enough energy disruption I'd expect you would get some odd results in almost any electronics. If you make secure devices, this is one more thing to design for.
ECC for making machines .... **cheaper** ! (Score:5, Insightful)
Note however that this common perception is not strictly speaking entirely accurate or necessary, because if a system is designed to meet a given level of reliability then a machine with ECC may end up being cheaper than one without ECC, because the error detection and correction can make up for reduced reliability in the rest of the hardware.
As an example, some components may be run closer to their operating limits, possibly partially overclocked, or power supplies may be less well regulated and hence electronic noise margins may be slightly compromised, or the system may be designed with substandard cooling, and so on. ECC could help mitigate some of the effects of such presumably cheaper designs, while still maintaining the reliability of better implementions.
So, there's slightly more to the "ECC only found in better systems" argument than at first meets the eye. As usual, caveat emptor.
Powerpoint??? (Score:2)
(http://freefall.homeip.net/)
Excellent Smithers!!! (Score:3, Funny)
(http://www.petedavis.net/)
In the lab today, in the wild tomorrow... (Score:4, Interesting)
This is good stuff. Although the experiment used physical access to stress the memory, the theory could be used as an exploit in real situations in ways that the narrow of mind (like me) cannot conceive.
Perhaps this is not a method of practical attack on a machine. But it may be just a matter of creative thinking.
The key take away is to not disallow the possiblity.
Threats you discard as harmless is a logical place for an attacker to begin. Remeber the Maginot line [straightdope.com].
Article in short (Score:2)
Looks like all xSeries servers from IBM and Dell(Power Edges) and HP ship only with ECC RAM , and ECC errors are actually logged by software.
So forget walking into Las Vegas Casinos with a Xray machine.
Even submitters don't read the article (Score:4, Interesting)
The article does mention x-rays, saying "not enough energy to change a DRAM capacitor." Yet everyone talks about x-rays...
I found the phrase from the article "screw driver to remove hard drive" amusing when I first read it. Then I realized they meant "screwdriver". I thought initially they were referring to a DOS attack by corrupting the device driver!
palladium (Score:5, Insightful)
(Last Journal: Friday March 26 2004, @04:22PM)
Palladium is just a specialized VM that runs on tamper proof hardware, that's designed to let other people trust the results of some computations performed on your machine.
Nothing new in the article... (Score:1, Insightful)
-Memory errors can allow a system running a virtual machine to be compromised/corrupted
-Such memory errors are most likely to occur when an attacker has physical access to the machine
-One way to make it less likely, is to use error correction (ECC) on the memory.
Rewritten:
-If a computer's memory is not 100% reliable, you can't fully trust software running on it, to perform as expected
-Physical access to a machine gives an attacker more chance of compromising it
-Having error correction enabled, would make a system more reliable.
So what's new here? Nothing.
I have to give the researchers credit though, for the nice way they worked out how to exploit such hardware errors.
Neons (Score:2, Funny)
(Last Journal: Wednesday October 09 2002, @12:38AM)
Know what is really scary? (Score:2, Informative)
Back in the older days _all_ computers shipped with at least parity memory. Today you get no checking unless you buy a workstation or server class machine.
Did you ever notice that when you build an IBM system on-line that they make it very clear that the system uses non-parity memory where other companies never mention this? I think they know that someday someone will bring forth litigation on this subject and they want to make sure everything was clearly stated.
Did you ever wonder how much data is corrupted my bad memory chips? Remember that memory sizes are increasing all the time so one would think that the probability for an error is higher.
Did you ever wonder why Apple didn't use ECC memory in their xserve rack mount server?
google ppt cache render... (Score:1)
(http://dave.oc7.org/)
-- AcquaCow
NASA has been researching this for a long time (Score:2, Interesting)
It is often questioned on this site as to why spacecraft do not use the latest/greatest computing equipment available. It is because the flight-capable designs have proven themselves tolerant of harsh environments, including alpha/beta/X radiation. (And other things, like low power consumption, heat generation, etc.)
It would be nice to know that a smart card with all of my personal information could survive the places my wallet has been. I need quad redundancy and forward error correction in my pocket!
I told you so! (Score:1)
(http://www.geocities.com/tablizer | Last Journal: Saturday March 15 2003, @01:22PM)
Cosmic Billies? (Score:1)
(Last Journal: Tuesday March 15 2005, @11:17AM)
To
attack a computer to which he has no physical access, he
can convince it to run the program and then wait for a
cosmic ray (or other natural source) to induce a memory
error.
Cosmic Rays... are they like country singers [brcspirit.com] in space or something?
trusted bytecode (Score:2)
I've always thought that the JVM security model was the moral equivalent of eliminating the FDA in favour of tamper resistant pill bottles.
Tamper resistant packaging is a darn good idea. But it's not a good idea to be so impressed by the packaging that we forget that how easily well intentioned people can create combinations of carbon, hydrogen, and oxygen and a few choice flavour additives that kill.
Bottom line: no matter how much rocket science you pour into the packaging, you still have to ask hard questions before ingesting the contents into your body.
Unless you believe that large software companies have entirely different profit motives than large pharmaceuticals.
Author responds + PDF slides available (Score:2, Informative)
Naturally occuring computer viri (Score:1)
(Last Journal: Monday March 15 2004, @12:05AM)
One of the systems I worked on had checksums on the data ever point in the system. It was checked in hardware every time it crossed a bus or was stored. This improved the reliability considerably.
-Happy
I don't know if anyone bothered to read the paper, (Score:3, Informative)
OH MY GOD!! (Score:2)
COSMIC RAYS!!
Java vulnerable, through C! (Score:2)
(http://eoti.org/~malachi)
Watch further and it all makes sense. He said that Java is vulnerable to these memory errors, and that you can prove it by adding some non-Java code. Well, no S*&t! Has anyone ever doubted that you can do whatever the hell you want from C or ASM?
If you are really worried about it, disable JNI. Not only is it an optional package, but you can force it to always be disabled in the Security Manager.
As a side comment, if you are going to post a nice exploit of Java, please write it in Java.
Malachi
Static electricity (Score:2)
A long time ago, when I worked at a restaurant as a teenager, I saw an employee that was screwing around with an ion ray gun [plans-kits.com] accidentally open a secure time-lock safe. He simply pointed it at the safe from a few inches away and the safe's electronic display started blinking and it just opened.