DieHard: probabilistic memory safety for unsafe languages
By Emery D. Berger, B. Zorn. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2006
551 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Computer Networks and Communications, Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/545c32b3290b42c2262a9a8726a8f84abb579a03
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
- Ahmad-Reza Sadeghi
- David E. Evans
- Lucas Davi
- Dawn Song
- Mathias Payer
- László Szekeres
- Alexandra Dmitrienko
- Christopher Liebchen
In Computer Networks and Communications
- Ahmad-Reza Sadeghi
- Lucas Davi
- David E. Evans
- Christopher Liebchen
- Jonathan Bachrach
- Dawn Song
- Tao Wei
- Brighten Godfrey
In Hardware and Architecture
- Dawn Song
- László Szekeres
- Mathias Payer
- Lucas Davi
- Ahmad-Reza Sadeghi
- Derek Bruening
- Tao Wei
- Pradeep Varma
Citations in the corpus
- SGXBOUNDS: Memory Safety for Shielded Execution (2017, result): “This is in sharp contrast to the usual assumption of almost endless reserves of RAM for many other memory-safety approaches [9, 17, 23, 38, 51, 56, 69].”
- AddressSanitizer: A Fast Address Sanity Checker (2012, methodology): “Through properly selected magic values, there is a chance that the program will behave incorrectly in a way detectable by existing application tests (DieHard [5] has a replicated mode in which it is able to detect such incorrect behavior by comparing the output of several program replicas initialize”
- SoftBound: highly compatible and complete spatial memory safety for c (2009, background): “DieHard: Probabilistic Memory Safety for Unsafe Languages.”
- Automatically patching errors in deployed software (2009, background): “6.5 ErrorToleranceandCorrection Techniquesthatallow applicationstotolerate errors such as outof-bounds memory accesses include transactional function termination[42,39](which restoresthe state atthetime ofthefunction call, then returns from functions that perform out-of-bounds accesses),failur”
- SoK: Eternal War in Memory (2013, background): “DieHard [59] and DieHarder [60] are safer replacements for the original malloc implementation.”
- N-Variant Systems: A Secretless Framework for Security through Diversity (2006, background): “More recently, Berger and Zorn proposed a redundant execution framework with multiple replicas each with a different randomized layout of objects within the heap to provide probabilistic memory safety [7].”
- Debugging the data plane with anteater (2011, background): “The use of BFT combined with diverse replication (running multiple diverse instances) has proven to be a great success in the context of traditional software, for example in terms of building robust operating systems and runtime environments [18, 28, 36, 44, 12].”
- Just-In-Time Code Reuse: On the Effectiveness of Fine-Grained Address Space Layout Randomization (2013, methodology): “For instance, the plethora of works that improve heap layouts (e.g., by separating heap metadata from an application’s heap data) [2, 5, 28], use sparse page layouts [38, 40] and heap padding [6], use advanced memory management techniques (e.g., randomized [58] and type-safe memory re-cycling [2, 18”
- CETS: compiler enforced temporal safety for C (2010, methodology): “Although there has been considerable effort in detecting temporal errors [6, 14, 15, 18, 25, 26, 28], challenges remain.”
- Automatic patch generation by learning correct code (2016, background): “DieHard: DieHard [2] provides probabilistic memory safety in the presence of memory errors.”
- Backward-compatible constant-time exception-protected memory (2009, background): “[2] present a randomized memory manager approach to handling memory safety errors by increasing redundancy (replicating computation; and multiplying heap size, which is similar to Purify’s larger heap requirements in support of heap aging).”
- Binary stirring: self-randomizing instruction addresses of legacy x86 binary code (2012, methodology): “DieHard [7] is a simplified multi-variant framework that uses heap object randomization to make the variants generate differ-165 ent outputs in case of error or attack.”