Export Citations
Whereas user-facing applications are often written in modern languages, the firmware, operating system, support libraries, and virtual machines that underpin just about any modern computer system are still written in low-level languages that value flexibility and performance over convenience and safety. Programming errors in low-level code are often exploitable and can, in the worst case, give adversaries unfettered access to the compromised host system. This book provides an introduction to and overview of automatic software diversity techniques that, in one way or another, use randomization to greatly increase the difficulty of exploiting the vast amounts of low-level code in existence. Diversity-based defenses are motivated by the observation that a single attack will fail against multiple targets with unique attack surfaces. We introduce the many, often complementary, ways that one can diversify attack surfaces and provide an accessible guide to more than two decades worth of research on the topic. We also discuss techniques used in conjunction with diversity to prevent accidental disclosure of randomized program aspects and present an in-depth case study of one of our own diversification solutions.
Cited By
- Hole K (2022). Tutorial on systems with antifragility to downtime, Computing, 104:1, (73-93), Online publication date: 1-Jan-2022.
- Kuang K, Tang Z, Gong X, Fang D, Chen X and Wang Z (2018). Enhance virtual-machine-based code obfuscation security through dynamic bytecode scheduling, Computers and Security, 74:C, (202-220), Online publication date: 1-May-2018.
- Sharif H, Abubakar M, Gehani A and Zaffar F TRIMMER: application specialization for code debloating Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (329-339)
- Huang C, Zhu S, Guan Q and He Y (2017). A software assignment algorithm for minimizing worm damage in networked systems, Journal of Information Security and Applications, 35:C, (55-67), Online publication date: 1-Aug-2017.
Recommendations
Large-Scale Automated Software Diversity—Program Evolution Redux
The software monoculture favors attackers over defenders, since it makes all target environments appear similar. Code-reuse attacks, for example, rely on target hosts running identical software. Attackers use this assumption to their advantage by ...