Back to Search
Start Over
BoundShield: Comprehensive Mitigation for Memory Disclosure Attacks via Secret Region Isolation
- Source :
- IEEE Access, Vol 6, Pp 36341-36353 (2018)
- Publication Year :
- 2018
- Publisher :
- IEEE, 2018.
-
Abstract
- Address space layout randomization (ASLR) is now widely adopted in modern operating systems to thwart code reuse attacks. However, an adversary can still bypass fine-grained ASLR by exploiting memory corruption vulnerabilities and performing memory disclosure attacks. Although Execute-no-Read schemes have been proven to be an efficient solution against read-based memory disclosures, existing solutions need modifications to kernel or hypervisor. Besides, the defense of execution-based memory disclosures has been ignored. In this paper, we propose BoundShield, a self-protection scheme that provides comprehensive protection against memory disclosure attacks, especially against those based on executing arbitrary code by leveraging Intel Memory Protection Extension . BoundShield protects code memory by defending not only read-based memory disclosure attacks but also execution-based memory disclosure attacks. On one hand, read-based memory disclosures can be eliminated by hiding all code sections and code pointers in a secret region separated from the user address space. On the other hand, BoundShield prevents return addresses from being corrupted and ensures that all function pointers point to the legitimate entries whenever they are dereferenced, which significantly reduces the attack surface for execution-based memory disclosures. We have implemented a prototype of BoundShield based on a set of modifications to compiler toolchain and the standard C library. Our evaluation results show that the BoundShield can provide strong defenses against memory disclosure attacks while incurring a small performance overhead.
- Subjects :
- General Computer Science
Computer science
Memory corruption
02 engineering and technology
computer.software_genre
Computer security
01 natural sciences
Memory disclosure attacks
Function pointer
0103 physical sciences
0202 electrical engineering, electronic engineering, information engineering
Code (cryptography)
General Materials Science
execute-only memory
010302 applied physics
Address space layout randomization
software security
Address space
General Engineering
020207 software engineering
Hypervisor
Pointer (computer programming)
Compiler
lcsh:Electrical engineering. Electronics. Nuclear engineering
computer
lcsh:TK1-9971
Memory protection
Subjects
Details
- Language :
- English
- ISSN :
- 21693536
- Volume :
- 6
- Database :
- OpenAIRE
- Journal :
- IEEE Access
- Accession number :
- edsair.doi.dedup.....9e84b75f8f9a34e463c8a5019f4e9744