You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
5.6 KiB

title = "DieHard: Probabilistic Memory Safety for Unsafe Languages",
ISSN = "0362-1340",
DOI = "10.1145/1133255.1134000",
volume = "41",
number = "6",
year = "2006",
URL = "",
journal = "SIGPLAN Not.",
pages = "158–168",
author = "Berger, Emery D. and Zorn, Benjamin G.",
abstract = "Applications written in unsafe languages like C and C++ are vulnerable to memory errors such as buffer overflows, dangling pointers, and reads of uninitialized data. Such errors can lead to program crashes, security vulnerabilities, and unpredictable behavior. We present DieHard, a runtime system that tolerates these errors while probabilistically maintaining soundness. DieHard uses randomization and replication to achieve probabilistic memory safety by approximating an infinite-sized heap. DieHard's memory manager randomizes the location of objects in a heap that is at least twice as large as required. This algorithm prevents heap corruption and provides a probabilistic guarantee of avoiding memory errors. For additional safety, DieHard can operate in a replicated mode where multiple replicas of the same application are run simultaneously. By initializing each replica with a different random seed and requiring agreement on output, the replicated version of Die-Hard increases the likelihood of correct execution because errors are unlikely to have the same effect across all replicas. We present analytical and experimental results that show DieHard's resilience to a wide range of memory errors, including a heap-based buffer overflow in an actual application.",
file = "DisARM: Mitigating Buffer Overflow Attacks on Embedded Devices-Paper:{\_}ATTACHMENTS{\_}CORE{\&}method=downloadAttachment{\&}id=15{\&}resourceId=43{\&}filename=d029a4ad8728645a43fd586702f39aa2142b5602:pdf",
keywords = "randomization,DieHard,replication,dynamic memory allocation,probabilistic memory safety"
title = "Shadow-Heap: Preventing Heap-Based Memory Corruptions by Metadata Validation",
ISBN = "9781450375993",
DOI = "10.1145/3424954.3424956",
series = "EICC 2020",
year = "2020",
URL = "",
booktitle = "Proceedings of the European Interdisciplinary Cybersecurity Conference",
author = "Bouch'e, Johannes and Atkinson, Lukas and Kappes, Martin",
abstract = "In the past, stack smashing attacks and buffer overflows were some of the most insidious data-dependent bugs leading to malicious code execution or other unwanted behavior in the targeted application. Since reliable mitigations such as fuzzing or static code analysis are readily available, attackers have shifted towards heap-based exploitation techniques. Therefore, robust methods are required which ensure application security even in the presence of such intrusions, but existing mitigations are not yet adequate in terms of convenience, reliability, and performance overhead.We present a novel method to prevent heap corruption at runtime: by maintaining a copy of heap metadata in a shadow-heap and verifying the heap integrity upon each call to the underlying allocator we can detect most heap metadata manipulation techniques. The results demonstrate that Shadow-Heap is a practical mitigation approach, that our prototypical implementation only requires reasonable overhead due to a user-configurable performance-security tradeoff, and that existing programs can be protected without recompilation.",
publisher = "Association for Computing Machinery",
file = "DisARM: Mitigating Buffer Overflow Attacks on Embedded Devices-Paper:{\_}ATTACHMENTS{\_}CORE{\&}method=downloadAttachment{\&}id=14{\&}resourceId=42{\&}filename=1678422185293c97d41e7c6054d951590e64c280:pdf"
title = "DisARM: Mitigating Buffer Overflow Attacks on Embedded Devices",
ISBN = "978-3-319-25645-0",
year = "2015",
booktitle = "Network and System Security",
pages = "112--129",
author = "Habibi, Javid and Panicker, Ajay and Gupta, Aditi and Bertino, Elisa",
editor = "Qiu, Meikang and Xu, Shouhuai and Yung, Moti and Zhang, Haibo",
abstract = "Security of embedded devices today is a critical requirement for the Internet of Things (IoT) as these devices will access sensitive information such as social security numbers and health records. This makes these devices a lucrative target for attacks exploiting vulnerabilities to inject malicious code or reuse existing code to alter the execution of their software. Existing defense techniques have major drawbacks such as requiring source code or symbolic debugging information, and high overhead, limiting their applicability. In this paper we propose a novel defense technique, DisARM, that protects against both code-injection and code-reuse based buffer overflow attacks by breaking the ability for attackers to manipulate the return address of a function. Our approach operates on arbitrary executable binaries and thus does not require compiler support. In addition it does not require user interactions and can thus be automatically applied. Our experimental results show that our approach incurs low overhead and significantly increases the level of security against both code-injection and code-reuse based attacks.",
publisher = "Springer International Publishing",
file = "DisARM: Mitigating Buffer Overflow Attacks on Embedded Devices-Paper:{\_}ATTACHMENTS{\_}CORE{\&}method=downloadAttachment{\&}id=19{\&}resourceId=49{\&}filename=780912fea01840b170d5be044cab1e4bd6731596:pdf"