Analyzing and improving Linux kernel memory protection

Siarhei Liakh, Michael Grace, Xuxian Jiang
2010 Proceedings of the 26th Annual Computer Security Applications Conference on - ACSAC '10  
Code injection continues to pose a serious threat to computer systems. Among existing solutions, W ⊕X is a notable approach to prevent the execution of injected code. In this paper, we focus on the Linux kernel memory protection and systematically check for possible W ⊕ X violations in the Linux kernel design and implementation. In particular, we have developed a Murphi-based abstract model and used it to discover several serious shortcomings in the current Linux kernel that violate the W ⊕ X
more » ... operty. We have confirmed with the Linux community the presence of these problems and accordingly developed five Linux kernel patches. (Four of them are in the process of being integrated into the mainline Linux kernel.) Our evaluation with these patches indicate that they involve only minimal changes to the existing code base and incur negligible performance overhead. 1 Strictly speaking, the property is ¬(W ∧ X), but we chose to use the traditional W ⊕ X notation to emphasize mutual exclusivity of write and execute access.
doi:10.1145/1920261.1920301 dblp:conf/acsac/LiakhGJ10 fatcat:xenpucv6vbfnnmgi7v2xspey2a