TY - GEN
T1 - Using memory errors to attack a virtual machine
AU - Govindavajhala, S.
AU - Appel, A. W.
N1 - Publisher Copyright:
© 2003 IEEE.
PY - 2003
Y1 - 2003
N2 - We present an experimental study showing that soft memory errors can lead to serious security vulnerabilities in Java and.NET virtual machines, or in any system that relies on type-checking of untrusted programs as a protection mechanism. Our attack works by sending to the JVM a Java program that is designed so that almost any memory error in its address space will allow it to take control of the JVM. All conventional Java and.NET virtual machines are vulnerable to this attack. The technique of the attack is broadly applicable against other language-based security schemes such as proof-carrying code. We measured the attack on two commercial Java virtual machines: Sun's and IBM's. We show that a single-bit error in the Java program's data space can be exploited to execute arbitrary code with a probability of about 70%, and multiple-bit errors with a lower probability. 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. Fortunately, there are some straightforward defenses against this attack.
AB - We present an experimental study showing that soft memory errors can lead to serious security vulnerabilities in Java and.NET virtual machines, or in any system that relies on type-checking of untrusted programs as a protection mechanism. Our attack works by sending to the JVM a Java program that is designed so that almost any memory error in its address space will allow it to take control of the JVM. All conventional Java and.NET virtual machines are vulnerable to this attack. The technique of the attack is broadly applicable against other language-based security schemes such as proof-carrying code. We measured the attack on two commercial Java virtual machines: Sun's and IBM's. We show that a single-bit error in the Java program's data space can be exploited to execute arbitrary code with a probability of about 70%, and multiple-bit errors with a lower probability. 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. Fortunately, there are some straightforward defenses against this attack.
UR - http://www.scopus.com/inward/record.url?scp=34547509801&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34547509801&partnerID=8YFLogxK
U2 - 10.1109/SECPRI.2003.1199334
DO - 10.1109/SECPRI.2003.1199334
M3 - Conference contribution
AN - SCOPUS:34547509801
T3 - Proceedings - IEEE Symposium on Security and Privacy
SP - 154
EP - 165
BT - Proceedings - 2003 Symposium on Security and Privacy, SP 2003
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 2003 Symposium on Security and Privacy, SP 2003
Y2 - 11 May 2003 through 14 May 2003
ER -