SoK: Eternal War in Memory
By László Szekeres, Mathias Payer, Tao Wei, Dawn Song. IEEE Symposium on Security and Privacy, 2013
842 citations recorded by the source corpus.
Memory corruption bugs in software written in low-level languages like C or C++ are one of the oldest problems in computer security. The lack of safety in these languages allows attackers to alter the program's behavior or take full control over it by hijacking its control flow. This problem has existed for more than 30 years and a vast number of potential solutions have been proposed, yet memory corruption attacks continue to pose a serious threat. Real world exploits show that all currently deployed protections can be defeated. This paper sheds light on the primary reasons for this by describing attacks that succeed on today's systems. We systematize the current knowledge about various protection techniques by setting up a general model for memory corruption attacks. Using this model we show what policies can stop which attacks. The model identifies weaknesses of currently deployed techniques, as well as other proposed protections enforcing stricter policies. We analyze the reasons why protection mechanisms implementing stricter polices are not deployed. To achieve wide adoption, protection mechanisms must support a multitude of features and must satisfy a host of requirements. Especially important is performance, as experience shows that only solutions whose overhead is in reasonable bounds get deployed. A comparison of different enforceable policies helps designers of new protection mechanisms in finding the balance between effectiveness (security) and efficiency. We identify some open research problems, and provide suggestions on improving the adoption of newer techniques.
Subfields: Artificial Intelligence, Materials Chemistry, Signal Processing
View Paper: https://www.semanticscholar.org/paper/602e4c977664087e5629a40637a1b97a381d28c9
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Nicholas Carlini
- David A. Wagner
- Zhenkai Liang
- Dawn Song
- Ahmad-Reza Sadeghi
- Christopher Krügel
- N. Asokan
- Giovanni Vigna
In Materials Chemistry
In Signal Processing
- Nicholas Carlini
- Christopher Krügel
- Giovanni Vigna
- David A. Wagner
- Lucas Davi
- Manuel Costa
- Ahmad-Reza Sadeghi
- Thorsten Holz
Citations in the corpus
- InvisiSpec: Making Speculative Execution Invisible in the Cache Hierarchy (2018, background): “Since program behavior is undefined, speculative execution attacks will be able to manifest in many ways, similar to attacks exploiting lack of memory safety [3].”
- VC3: Trustworthy Data Analytics in the Cloud Using SGX (2015, background): “Since memory safety implementations for C/C++ have high overhead [43], [44], [60], we instead address this problem with a compiler that efficiently enforces two security invariants for code running inside the enclave.”
- Data-Oriented Programming: On the Expressiveness of Non-control Data Attacks (2016, background): “Development of practical memory safety defense is an active research area [56].”
- C-FLAT: Control-Flow Attestation for Embedded Systems Software (2016, background): “Keywords remote attestation; control-flow attacks; embedded system security”
- Fuzzing: A Survey for Roadmap (2022, background): “Although many approaches have been proposed to mitigate the influence of memory violations, most of them are not used in practice due to the disadvantages such as performance overhead, low compatibility, and low robustness [178].”
- SGXBOUNDS: Memory Safety for Shielded Execution (2017, result): “We have obtained similar results with SPEC CPU2006 and four real-world case studies: SQLite, Memcached, Apache, and Nginx.”
- Control-Flow Integrity (2017, background): “[67] surveyed mitigations against memory corruption and found that mitigations with more than 10% overhead do not tend to see widespread adoption in production environments and that overheads below 5% are desired by industry practitioners.”
- SOK: (State of) The Art of War: Offensive Techniques in Binary Analysis (2016, background): “To this end, the security research community has invested a substantial amount of effort in developing analysis techniques to identify flaws in binary programs [55].”
- Counterfeit Object-oriented Programming: On the Difficulty of Preventing Code Reuse Attacks in C++ Applications (2015, background): “In the past, attackers typically immediately redirected the hijacked control flow to their own injected malicious code.”
- Control-Flow Bending: On the Effectiveness of Control-Flow Integrity (2015, background): “Each has limitations: stack canaries protect only against contiguous overwrites of the stack, DEP protects against code injection but not against code reuse, and ASLR does not protect against information leakage.”
- SoK: Automated Software Diversity (2014, background): “For example, we think that it can provide probabilistic protection against the long standing problem of covert channels.”