James Thew - Fotolia
A dangerous new Intel chip flaw found by researchers could allow adversaries to mount more potent attacks on all...
software platforms and even across virtualization boundaries.
Dmitry Evtyushkin and Dmitry Ponomarev, a Ph.D. student and professor, respectively, in the department of computer science at SUNY Binghamton, and Nael Abu-Ghazaleh, professor and computer scientist at the University of California, Riverside, described an attack that could reliably recover kernel address space layout randomization (ASLR) "in about 60 milliseconds when performed on a real Haswell processor running a recent version of Linux," in their paper, "Jump Over ASLR: Attacking Branch Predictors to Bypass ASLR."
According to the researchers, the trouble arises from Intel's use of the branch target buffer (BTB) in its chips.
"Branch predictors are critical to performance of modern processors. One of the main components of the branch prediction hardware is the branch target buffer," they wrote. "The BTB stores target addresses of recently executed branch instructions, so that those addresses can be obtained directly from a BTB lookup to fetch instructions starting at the target in the next cycle. Since the BTB is shared by several applications executing on the same core, information leakage from one application to another through the BTB side channel is possible."
Abu-Ghazaleh told SearchSecurity although the team used Intel's Haswell chips for testing, "It's likely that [other Intel chips] are vulnerable as well, since they use the same general principles for the branch predictor, but the specifics and whether we can recover all of ASLR depends on the configuration."
In the new attack described by the researchers, using the side-channel information from the BTB allows an attacker to "recover all random bits of the kernel addresses and reduce the entropy of user-level randomization."
"Our attack only requires the control of a user-level process and does not rely on any explicit memory disclosures," the researchers wrote. "The key insight that makes the new BTB-based side channel possible is that the BTB collisions between two user-level processes, and between a user process and the kernel, can be created by the attacker in a controlled and robust manner."
The researchers said the purpose of ASLR "is to make it difficult, if not impossible, for the attacker to know the location of specific code pages in the program's address space." So, being able to bypass ASLR could lead to a number of attacks.
"All current operating systems supporting randomizations implement variants of ASLR for both user- and kernel-level address spaces. Kernel-level ASLR (KASLR) randomizes kernel code segments and can stop attacks that require knowledge of the kernel address space layout (including [return-oriented programming], jump-oriented programming, return-to-libc, ret-2-user and other attacks)," the researchers wrote.
Andre Joseph, consultant at Cigital Inc., based in Dulles, Va., told SearchSecurity that being able to bypass ASLR is a very dangerous capability for an attacker to have.
"It's an important defense-in-depth measure, since it makes it much harder for an attacker to leverage overflow attacks by randomizing the location of attacker code," Joseph said. "Once sufficiently randomized, the attacker will not know where to make the instruction pointer flow in order to execute their code."
In addition to the Intel chip flaw potentially allowing an attacker to bypass ASLR on any platform, Felix Wilhelm, security researcher at ERNW Research, based in Germany, showed a proof-of-concept tool for leaking the base address of the KVM hypervisor kernel module from a guest virtual machine. However, Wilhelm noted a few restrictions to performing the attack in a virtualized environment, depending on the implementation.
Joseph said multiple processors might provide the most difficulty in performing the attack.
"It certainly seems easier to obtain the kernel ASLR bits instead of user-application ASLR bits. It becomes especially problematic for application ASLR if you have multiple cores," Joseph told SearchSecurity. "They pose methods of forcing the victim application onto the same core as the malicious process, but I'm not sure how reliable those methods would really be in practice. In order for the user-space ASLR exploit to work, you'd need both processes on the same processor, since each processor will have a different BTB."
The researchers said software countermeasures would have limited efficacy "because they are not able to control how branches are mapped to the BTB entries, thus they do not address the root cause of the side channel." But they said finer-grained ASLR schemes or fuzzing the time-stamp counter could make the attack more difficult.
However, the researchers concluded that changes to Intel processors would be far more effective.
"A hardware solution that would fundamentally mitigate the BTB-based attacks is to change the BTB-addressing mechanism in a way that prevents exploitable collisions in the BTB. The attack against KASLR can be mitigated by using full virtual address for accessing the BTB, thus eliminating collisions between the user code and the kernel code."
Intel did not respond to comment requests at the time of this post.
Learn more about an Android Stagefright exploit that can bypass ASLR.
Get info on what ASLR means to Windows security.