PartiSan: Fast and Flexible Sanitization via Run-time Partitioning.

作者: 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.

参考文章(10)
Jonas Wagner, Volodymyr Kuznetsov, George Candea, Johannes Kinder, High System-Code Security with Low Overhead 2015 IEEE Symposium on Security and Privacy. pp. 866- 879 ,(2015) , 10.1109/SP.2015.58
Konstantin Serebryany, Derek Bruening, Alexander Potapenko, Dmitry Vyukov, AddressSanitizer: a fast address sanity checker usenix annual technical conference. pp. 28- 28 ,(2012)
Anil Kurmus, Robby Zippel, A Tale of Two Kernels: Towards Ending Kernel Hardening Wars with Split Kernel computer and communications security. pp. 1366- 1377 ,(2014) , 10.1145/2660267.2660331
Konstantin Serebryany, Timur Iskhodzhanov, ThreadSanitizer: data race detection in practice Proceedings of the Workshop on Binary Instrumentation and Applications. pp. 62- 71 ,(2009) , 10.1145/1791194.1791203
Lucas Davi, Christopher Liebchen, Ahmad-Reza Sadeghi, Kevin Z. Snow, Fabian Monrose, Isomeron: Code Randomization Resilient to (Just-In-Time) Return-Oriented Programming network and distributed system security symposium. ,(2015) , 10.14722/NDSS.2015.23262
Konstantin Serebryany, Evgeniy Stepanov, MemorySanitizer: fast detector of uninitialized memory use in C++ symposium on code generation and optimization. pp. 46- 55 ,(2015) , 10.5555/2738600.2738607
Stephen Crane, Andrei Homescu, Stefan Brunthaler, Per Larsen, Michael Franz, Thwarting Cache Side-Channel Attacks Through Dynamic Software Diversity network and distributed system security symposium. ,(2015) , 10.14722/NDSS.2015.23264
Chris Lattner, Vikram Adve, LLVM: a compilation framework for lifelong program analysis & transformation symposium on code generation and optimization. pp. 75- 86 ,(2004) , 10.5555/977395.977673
Istvan Haller, Yuseok Jeon, Hui Peng, Mathias Payer, Cristiano Giuffrida, Herbert Bos, Erik van der Kouwe, TypeSan: Practical Type Confusion Detection computer and communications security. pp. 517- 528 ,(2016) , 10.1145/2976749.2978405
Stijn Volckaert, Michael Franz, Yeoul Na, Alessandro Di Federico, Mathias Payer, Scott A. Carr, Priyam Biswas, Prabhu Rajasekaran, Venerable Variadic Vulnerabilities Vanquished usenix security symposium. pp. 186- 198 ,(2017)