An Efficient Hardware-Oriented Runtime Approach for Stack-based Software Buffer Overflow Attacks

Love Kumar Sah, Sheikh Ariful Islam, Srinivas Katkoori · 2018

Software countermeasures to mitigate buffer overflow attacks suffer from excessive memory and/or performance overhead. With such overhead, the defender can use software-only approaches only to the debugging context. In this paper, we present a novel hardware approach to detect stack based buffer overflow attack during runtime. The base and bound information of the static variable in a program are automatically extracted, stored, and compared with the object code in real time without any support from the compiler. Such an approach is transparent to the programmer. Given a traditional five-stage pipeline (fetch, decode, execute, memory, and write back), we introduce an adaptive pipeline architecture to modify the decode and execute stage of Sim-Outorder simulator in the SimpleScalar toolset. Compared to our previous work, which requires compiler support and incurs 7.3% instruction overhead, the proposed technique can demonstrate buffer overflow detection with 0% additional instruction. We validate the technique with NIST benchmark suite (5 C programs) and MIT Static Corpus (270 C programs) and our approach can detect 92.78% of test cases in MIT static Corpus. In addition, the average execution time per test case is five or more orders of magnitude less.

Read the paper · More papers on PaperTik