Testing Closed-Source Binary Device Drivers with DDTVolodymyr Kuznetsov, Vitaly Chipounov, and George Candea USENIX Annual Technical Conference (USENIX), Boston, MA, June 2010. [ PDF ]
DDT is a system for testing closed-source binary device
drivers against undesired behaviors, like race conditions,
memory errors, resource leaks, etc. One can
metaphorically think of it as a pesticide against device
driver bugs. DDT combines virtualization with a specialized
form of symbolic execution to thoroughly exercise
tested drivers; a set of modular dynamic checkers
identify bug conditions and produce detailed, executable
traces for every path that leads to a failure. These
traces can be used to easily reproduce and understand
the bugs, thus both proving their existence and helping
debug them. We applied DDT to several closed-source Microsoft-certified Windows device drivers and discovered 14 serious new bugs. DDT is easy to use, as it requires no access to source code and no assistance from users. We therefore envision DDT being useful not only to developers and testers, but also to consumers who want to avoid running buggy drivers in their OS kernels. |
