作者: Stijn Volckaert , Per Larsen , Julian Lettner , Michael Franz , Dokyung Song
DOI:
关键词:
摘要: Code sanitizers are used to automatically detect security vulnerabilities in C/C ++ code that elude static analysis. This requires the paths containing vulnerability actually executed with sanitization enabled. Under current practice, is routinely applied when developers perform continuous integration testing and fuzzing of pre-release software. However, not commonly enabled alpha, beta, final releases software, one main obstacles being added run-time overhead. We present PartiSan, a framework uses partitioning bring additional flexibility use speed up sanitizer execution. Our core idea probabilistically partition overall execution time into sanitized slices incur overhead, unsanitized running at near-native speed. Uniquely, we never remove checks completely, which leaves adversaries an unpredictable attack surface increases coverage. Sanitization traditionally all or nothing proposition, makes hard distribute heterogeneous crowd beta-testers whose hardware ranges from low-end high-end. PartiSan can adjust amount fit within performance budget, turn off altogether if host lacks sufficient resources. The resulting means alternate between different types dynamically; today, have pick single type ahead time. In other words, broadens applicability general coverage existing scenarios.