TY - GEN
T1 - Undermining information hiding (and what to do about it)
AU - Göktaş, Enes
AU - Gawlik, Robert
AU - Kollenda, Benjamin
AU - Athanasopoulos, Elias
AU - Portokalidis, Georgios
AU - Giuffrida, Cristiano
AU - Bos, Herbert
N1 - Publisher Copyright:
© 2016 Proceedings of the 25th USENIX Security Symposium. All rights reserved.
PY - 2016
Y1 - 2016
N2 - In the absence of hardware-supported segmentation, many state-of-the-art defenses resort to “hiding” sensitive information at a random location in a very large address space. This paper argues that information hiding is a weak isolation model and shows that attackers can find hidden information, such as CPI’s SafeStacks, in seconds—by means of thread spraying. Thread spraying is a novel attack technique which forces the victim program to allocate many hidden areas. As a result, the attacker has a much better chance to locate these areas and compromise the defense. We demonstrate the technique by means of attacks on Firefox, Chrome, and MySQL. In addition, we found that it is hard to remove all sensitive information (such as pointers to the hidden region) from a program and show how residual sensitive information allows attackers to bypass defenses completely. We also show how we can harden information hiding techniques by means of an Authenticating Page Mapper (APM) which builds on a user-level page-fault handler to authenticate arbitrary memory reads/writes in the virtual address space. APM bootstraps protected applications with a minimum-sized safe area. Every time the program accesses this area, APM authenticates the access operation, and, if legitimate, expands the area on demand. We demonstrate that APM hardens information hiding significantly while increasing the overhead, on average, 0.3% on baseline SPEC CPU 2006, 0.0% on SPEC with SafeStack and 1.4% on SPEC with CPI.
AB - In the absence of hardware-supported segmentation, many state-of-the-art defenses resort to “hiding” sensitive information at a random location in a very large address space. This paper argues that information hiding is a weak isolation model and shows that attackers can find hidden information, such as CPI’s SafeStacks, in seconds—by means of thread spraying. Thread spraying is a novel attack technique which forces the victim program to allocate many hidden areas. As a result, the attacker has a much better chance to locate these areas and compromise the defense. We demonstrate the technique by means of attacks on Firefox, Chrome, and MySQL. In addition, we found that it is hard to remove all sensitive information (such as pointers to the hidden region) from a program and show how residual sensitive information allows attackers to bypass defenses completely. We also show how we can harden information hiding techniques by means of an Authenticating Page Mapper (APM) which builds on a user-level page-fault handler to authenticate arbitrary memory reads/writes in the virtual address space. APM bootstraps protected applications with a minimum-sized safe area. Every time the program accesses this area, APM authenticates the access operation, and, if legitimate, expands the area on demand. We demonstrate that APM hardens information hiding significantly while increasing the overhead, on average, 0.3% on baseline SPEC CPU 2006, 0.0% on SPEC with SafeStack and 1.4% on SPEC with CPI.
UR - http://www.scopus.com/inward/record.url?scp=85072917299&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85072917299&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:85072917299
T3 - Proceedings of the 25th USENIX Security Symposium
SP - 105
EP - 119
BT - Proceedings of the 25th USENIX Security Symposium
T2 - 25th USENIX Security Symposium
Y2 - 10 August 2016 through 12 August 2016
ER -