DocumentCode
3230983
Title
Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
Author
Yamaguchi, Fabian ; Maier, Alwin ; Gascon, Hugo ; Rieck, Konrad
Author_Institution
Univ. of Gottingen, Gottingen, Germany
fYear
2015
fDate
17-21 May 2015
Firstpage
797
Lastpage
812
Abstract
Taint-style vulnerabilities are a persistent problem in software development, as the recently discovered "Heart bleed" vulnerability strikingly illustrates. In this class of vulnerabilities, attacker-controlled data is passed unsanitized from an input source to a sensitive sink. While simple instances of this vulnerability class can be detected automatically, more subtle defects involving data flow across several functions or project-specific APIs are mainly discovered by manual auditing. Different techniques have been proposed to accelerate this process by searching for typical patterns of vulnerable code. However, all of these approaches require a security expert to manually model and specify appropriate patterns in practice. In this paper, we propose a method for automatically inferring search patterns for taint-style vulnerabilities in C code. Given a security-sensitive sink, such as a memory function, our method automatically identifies corresponding source-sink systems and constructs patterns that model the data flow and sanitization in these systems. The inferred patterns are expressed as traversals in a code property graph and enable efficiently searching for unsanitized data flows -- across several functions as well as with project-specific APIs. We demonstrate the efficacy of this approach in different experiments with 5 open-source projects. The inferred search patterns reduce the amount of code to inspect for finding known vulnerabilities by 94.9% and also enable us to uncover 8 previously unknown vulnerabilities.
Keywords
application program interfaces; data flow analysis; public domain software; security of data; software engineering; C code; attacker-controlled data; automatic inference; code property graph; data flow; data security; inferred search pattern; memory function; open-source project; project- specific API; search pattern; security-sensitive sink; sensitive sink; software development; source-sink system; taint-style vulnerability; Databases; Libraries; Payloads; Programming; Security; Software; Syntactics; Clustering; Graph Databases; Vulnerabilities;
fLanguage
English
Publisher
ieee
Conference_Titel
Security and Privacy (SP), 2015 IEEE Symposium on
Conference_Location
San Jose, CA
ISSN
1081-6011
Type
conf
DOI
10.1109/SP.2015.54
Filename
7163061
Link To Document