2013 · 109 citations · 29 references
ComputingComputer EngineeringComputer ScienceCompilersProgramming LanguagesSecure Software DevelopmentSoftware Security EngineeringStatic Code AnalysisCode DiversificationCode Reuse AttacksOverhead ReductionPerformance OverheadPerformance Overhead AnalysisProfile OptimizationProfile-guided OptimizationRandomization
Code-reuse attacks are notoriously hard to defeat, and most current solutions to the problem focus on automated software diversity. This is a promising area of research, as diversity attacks the common denominator enabling code-reuse attacksthe software monoculture. Recent research in this area provides security, but at an unfortunate price: performance overhead. Leveraging previously collected profiling information, compilers can substantially improve subsequent code generation. Traditionally, profile-guided optimization focuses on hot program code, where a program spends most of its execution time. Optimizing rarely executed code does not significantly impact performance, so few optimizations focus on this code. We use profile-guided optimization to reduce the performance overhead of software diversity. The primary insight is that we are free to diversify cold code, but restrict our diversification efforts in hot code. Our work investigates the impact of profiling on an expensive diversification technique: NOP insertion. By differentiating between hot cold and cold code, we optimize NOP insertion overheads from a maximum of 25% down to a negligible 1%, while preserving the security properties of the original defense. Consequently, using our profile-guided diversification technique, even randomization techniques having a high performance overhead become practical.
29
The geometry of innocent flesh on the bone
Hovav Shacham · 2007 · 1.3K citations
Martı́n Abadi, Mihai Budiu, Úlfar Erlingsson et al. · 2005 · 1K citations
On the effectiveness of address-space randomization
Hovav Shacham, Matthew J. Page, Ben Pfaff et al. · 2004 · 861 citations
Native Client: A Sandbox for Portable, Untrusted x86 Native Code
Bennet Yee, David Sehr, Gregory Dardyk et al. · 2009 · 553 citations