Improving Software Reliability through Decoupled Dynamic Analysis

Instruction-by-instruction checking of program execution is a powerful method for identifying and mitigating hard-to-find software bugs, including security vulnerabilities. However, adoption of this technique has been limited by the associated performance overheads. This talk will show that decoupling the analysis from, and running it concurrently with the monitored program is a promising approach for addressing the performance limitations of heavyweight program monitoring. Using system software monitoring, I will show that decoupling enables arbitrary instruction-grained dynamic analysis of kernel-mode drivers for safeguarding persistent I/O device state from corruption by driver bugs, without incurring slowdowns that could break timing-sensitive interrupt handling codes. I will present three novel tools for data races, DMA bugs and memory bugs in drivers that are enabled by decoupling. Using application software monitoring, I will show that decoupling enables further optimizations of hand-tuned instruction-grained dynamic analysis codes. I will present novel compiler-based and parallelism-based dynamic optimization techniques that individually achieve up to 3X speedup of state-of-the-art tools for mitigating data races, memory bugs and security vulnerabilities in applications.

Speaker Details

Olatunji Ruwase is a PhD candidate in the Computer Science Department at Carnegie Mellon University, where he explores compilers, computer architecture, and operating systems techniques for addressing performance and correctness issues in computing systems. He is a recipient of the 2010 Intel PhD Fellowship, and holds a MS in Computer Science from Stanford University and a BS in Computer Science from University of Ibadan.

Date:
Speakers:
Olatunji Ruwase
Affiliation:
Carnegie Mellon University

Series: Microsoft Research Talks