论文标题
Voldeelocator:基于深度学习的细粒脆弱性检测器
VulDeeLocator: A Deep Learning-based Fine-grained Vulnerability Detector
论文作者
论文摘要
自动检测软件漏洞是一个重要的问题,它吸引了学术研究界的很多关注。但是,现有的漏洞检测器仍无法实现漏洞检测能力和将其用于现实世界使用的定位精度。在本文中,我们提出了一个脆弱性检测器,该检测器可以同时获得高检测能力和高度定位的精确性,被称为脆弱性深度学习的定位器(vuldeelocator)。在设计Vuldeelocator的过程中,我们遇到了困难,包括如何适应类型的定义,宏与跨文件的用途之间的语义关系,如何适应准确的控制流以及可变的定义使用关系,以及如何实现高定位精度。我们通过使用两个创新的想法来解决这些困难:(i)利用中间代码来适应额外的语义信息,以及(ii)使用粒度精致的概念来限制脆弱性位置。当将其应用于从三个现实世界软件产品中随机选择的200个文件时,Vuldeelocator检测18个已确认的漏洞(即,真实派系)。其中,16个漏洞对应于已知漏洞。其他两个没有在国家漏洞数据库(NVD)中报告,但在发布更新版本时已被Libav的供应商“默默”。
Automatically detecting software vulnerabilities is an important problem that has attracted much attention from the academic research community. However, existing vulnerability detectors still cannot achieve the vulnerability detection capability and the locating precision that would warrant their adoption for real-world use. In this paper, we present a vulnerability detector that can simultaneously achieve a high detection capability and a high locating precision, dubbed Vulnerability Deep learning-based Locator (VulDeeLocator). In the course of designing VulDeeLocator, we encounter difficulties including how to accommodate semantic relations between the definitions of types as well as macros and their uses across files, how to accommodate accurate control flows and variable define-use relations, and how to achieve high locating precision. We solve these difficulties by using two innovative ideas: (i) leveraging intermediate code to accommodate extra semantic information, and (ii) using the notion of granularity refinement to pin down locations of vulnerabilities. When applied to 200 files randomly selected from three real-world software products, VulDeeLocator detects 18 confirmed vulnerabilities (i.e., true-positives). Among them, 16 vulnerabilities correspond to known vulnerabilities; the other two are not reported in the National Vulnerability Database (NVD) but have been "silently" patched by the vendor of Libav when releasing newer versions.