Automatic Inference of Search Patterns for Taint-Style Vulnerabilities

Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
复制标题

自动推断污染型漏洞的搜索模式

DOI:
10.1109/sp.2015.54
复制
发表时间:
2015
期刊:
2015 IEEE Symposium on Security and Privacy
影响因子:
--
通讯作者:
K. Rieck
K. Rieck
中科院分区:
--
文献类型:
--
作者:
F. Yamaguchi;A. Maier;H. Gascon;K. Rieck

文献摘要

参考文献

被引文献

相似文献

污损式漏洞是软件开发中一个持续存在的问题,正如最近发现的“心脏出血”漏洞引人注目地说明的那样。在这类漏洞中,攻击者控制的数据未经处理就从输入源传递到敏感接收器。虽然此漏洞类的简单实例可以自动检测,但涉及跨多个功能或特定于项目的api的数据流的更微妙的缺陷主要是通过手动审计发现的。人们提出了不同的技术,通过搜索易受攻击代码的典型模式来加速这一过程。然而,所有这些方法都需要安全专家在实践中手动建模并指定适当的模式。在本文中,我们提出了一种自动推断C代码中污染样式漏洞的搜索模式的方法。给定一个安全敏感的接收器(例如内存函数),我们的方法会自动识别相应的源接收器系统,并构建模式,为这些系统中的数据流和清理建模。推断出的模式被表示为代码属性图中的遍历,并且能够有效地搜索未处理的数据流——跨多个功能以及特定于项目的api。我们在5个开源项目的不同实验中证明了这种方法的有效性。推断出的搜索模式减少了94.9%的代码检查以寻找已知漏洞,并且还使我们能够发现8个以前未知的漏洞。
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.
用于编写系统程序的编程语言
DOI: 10.1002/spe.4380040102
发表时间: 1974
期刊: Software: Practice and Experience
影响因子: --
作者:
C. A. Lang
通讯作者: C. A. Lang
ASimple,快速优势算法
DOI: --
发表时间: 1999
期刊:
影响因子: --
作者:
K. Cooper;Timothy J. Harvey;K. Kennedy
通讯作者: K. Kennedy
DOI: 10.1109/tse.2008.24
发表时间: 2008-09-01
影响因子: 7.4
作者:
Chang, Ray-Yaung;Podgurski, Andy;Yang, Jiong
通讯作者: Yang, Jiong
DOI: 10.1109/sp.2013.12
发表时间: 2013-05
期刊: 2013 IEEE Symposium on Security and Privacy
影响因子: --
作者:
Julien Vanegue;Shuvendu K. Lahiri
通讯作者: Julien Vanegue;Shuvendu K. Lahiri
DOI: 10.1145/2508859.2516665
发表时间: 2013-11
期刊: Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
影响因子: --
作者:
Fabian Yamaguchi;Christian Wressnegger;Hugo Gascon;Konrad Rieck
通讯作者: Fabian Yamaguchi;Christian Wressnegger;Hugo Gascon;Konrad Rieck