DocumentCode :
3315923
Title :
Improved kernel security through memory layout randomization
Author :
Stanley, Dannie M. ; Dongyan Xu ; Spafford, Eugene H.
Author_Institution :
Dept. of Comput. Sci., Purdue Univ., West Lafayette, IN, USA
fYear :
2013
fDate :
6-8 Dec. 2013
Firstpage :
1
Lastpage :
10
Abstract :
The vast majority of hosts on the Internet, including mobile clients, are running on one of three major operating system families. Malicious operating system kernel software, such as the code introduced by a kernel rootkit, is strongly dependent on the organization of the victim operating system. Due to the lack of diversity of operating systems, attackers can craft a single kernel exploit that has the potential to infect millions of hosts. If the underlying structure of vulnerable operating system components has been changed, in an unpredictable manner, then attackers must create many unique variations of their exploit to attack vulnerable systems en masse. If enough variants of the vulnerable software exist, then mass exploitation is much more difficult to achieve. Many forms of automatic software diversification have been explored and found to be useful for preventing malware infection. Forrest et. al. make a strong case for software diversity and describe a few possible techniques including: adding or removing nonfunctional code, reordering code, and reordering memory layouts. Our techniques build on the latter. We describe two different ways to mutate an operating system kernel using memory layout randomization to resist kernel-based attacks. We introduce a new method for randomizing the stack layout of function arguments. Additionally, we refine a previous technique for record layout randomization by introducing a static analysis technique for determining the randomizability of a record. We developed prototypes of our techniques using the plugin architecture offered by GCC. To test the security benefits our techniques, we randomized multiple Linux kernels using our compiler plugins. We attacked the randomized kernels using multiple kernel rootkits. We show that by strategically selecting just a few components for randomization, our techniques prevent kernel rootkit infection.
Keywords :
Linux; operating system kernels; program diagnostics; security of data; software architecture; GCC; Internet; Linux kernels; automatic software diversification; code reordering; compiler plugins; function arguments; kernel exploit; kernel rootkit infection; kernel security; malicious operating system kernel software; malware infection prevention; memory layout randomization; memory layout reordering; mobile clients; nonfunctional code; operating system component vulnerability; operating system families; plugin architecture; randomized kernels; record layout randomization; software diversity; stack layout; static analysis technique; Algorithms; Kernel; Layout; Linux; Organizations;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Performance Computing and Communications Conference (IPCCC), 2013 IEEE 32nd International
Conference_Location :
San Diego, CA
Print_ISBN :
978-1-4799-3213-9
Type :
conf
DOI :
10.1109/PCCC.2013.6742768
Filename :
6742768
Link To Document :
بازگشت