2019 · 137 citations · 81 references
ComputingComputer ScienceCybersecurityComputer SecurityProgramming LanguagesVulnerability AnalysisAnti-analysis TechniquesBehavioral AnalysisControl-flow AnalysisSoftware Security EngineeringSoftware Vulnerability DiscoveryStatic Vulnerability AnalysisDynamic Program AnalysisSanitization TestingSanitizer Identification
The C and C++ programming languages are notoriously insecure yet remain indispensable. Developers therefore resort to a multi-pronged approach to find security issues before adversaries. These include manual, static, and dynamic program analysis. Dynamic bug finding tools-henceforth "sanitizers"-can find bugs that elude other types of analysis because they observe the actual execution of a program, and can therefore directly observe incorrect program behavior as it happens. A vast number of sanitizers have been prototyped by academics and refined by practitioners. We provide a systematic overview of sanitizers with an emphasis on their role in finding security issues. Specifically, we taxonomize the available tools and the security vulnerabilities they cover, describe their performance and compatibility properties, and highlight various trade-offs.
81
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Nicholas Nethercote, Julian Seward · 2007 · 2.3K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations