Securing software by enforcing data-flow integrity
By Miguel Oom Temudo de Castro, Manuel Costa, T. Harris. USENIX Symposium on Operating Systems Design and Implementation, 2006
439 citations recorded by the source corpus.
View Paper: https://www.semanticscholar.org/paper/e8e3496598fcc6d5ee5463a043740d5cd4c82df5
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
- Volodymyr Kuznetsov
- P. Akritidis
- Santosh Nagarakatte
- Hong Hu
- Manuel Costa
- R. Sekar
- Chao Zhang
- Ahmad-Reza Sadeghi
Citations in the corpus
- Practical Control Flow Integrity and Randomization for Binary Executables (2013, background): “Approaches that enforce data-flow integrity [25] can also stop many kinds of exploits, but cause a 2.”
- Code-pointer integrity (2014, methodology): “Data-flow based techniques like data-flow integrity (DFI) [10] or dynamic taint analysis (DTA) [42] can enforce that the used code pointer was not set by an unrelated instruction or to untrusted data, respectively.”
- HardFails: Insights into Software-Exploitable Hardware Bugs (2019, background): “Thus, we assume all platform software is protected by defenses such as control-flow integrity [1] and data-flow integrity [13], or is formally verified.”
- ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection (2011, methodology): “Another way to deploy ZOZZLE is as a filter for a more heavy-weight technique such as NOZZLE or some form of control- or dataflow integrity [1, 5].”
- Preventing Memory Error Exploits with WIT (2008, methodology): “DFI’s average overhead on the SPEC benchmarks where we ovelap is 104%.”
- CETS: compiler enforced temporal safety for C (2010, methodology): “Examples include: control flow integrity [3], dataflow integrity based on reaching definition analysis calculated statically [9], or using pointer analysis to compute the approximate set of objects written by each instruction [4].”
- Guest-Transparent Prevention of Kernel Rootkits with VMM-Based Memory Shadowing (2008, background): “Meanwhile, solutions exist for protecting control flow integrity [3, 23, 24] and data flow integrity [25], which can be leveraged and extended to complement NICKLE.”
- Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense against Out-of-Bounds Errors (2009, background): “DFI [8] computes reaching definitions statically and enforces them at runtime.”
- Jump-oriented programming: a new class of code-reuse attack (2011, background): “DFI [12] and others [5, 13] build on the control-.ow integrity property and further extend it for other types of memory safety (e.g., data-.ow integrity).”
- Data-Oriented Programming: On the Expressiveness of Non-control Data Attacks (2016, background): “2) Data-Flow Integrity : Data-flow integrity (DFI) generates the static data-flow graph (DFG) before the program execution [57].”