Marple: a demand-driven path-sensitive buffer overflow detector

Wei Le, M. Soffa
{"title":"Marple: a demand-driven path-sensitive buffer overflow detector","authors":"Wei Le, M. Soffa","doi":"10.1145/1453101.1453137","DOIUrl":null,"url":null,"abstract":"Despite increasing efforts in detecting and managing software security vulnerabilities, the number of security attacks is still rising every year. As software becomes more complex, security vulnerabilities are more easily introduced into a system and more difficult to eliminate. Even though buffer overflow detection has been studied for more than 20 years, it is still the most commonly exploited vulnerability. In this paper, we develop a static analyzer for detecting and helping diagnose buffer overflows with the key idea of categorizing program paths as they relate to vulnerability. We combine path-sensitivity with a demand-driven analysis for precision and scalability. We first develop a vulnerability model for buffer overflow and then use the model in the development of the demand-driven path-sensitive analyzer. We detect and identify categories of paths including infeasible, safe, vulnerable, overflow-input-independent and don't-know. The categorization enables priorities to be set when searching for root causes of vulnerable paths. We implemented our analyzer, Marple, and compared its performance with existing tools. Our experiments show that Marple is able to detect buffer overflows that other tools cannot, and being path-sensitive with prioritization, Marple produces only 1 false positive out of 72 reported overflows. We also show that Marple scales to 570,000 lines of code, the largest benchmark we had.","PeriodicalId":123649,"journal":{"name":"SIGSOFT '08/FSE-16","volume":"242 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"59","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SIGSOFT '08/FSE-16","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1453101.1453137","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 59

Abstract

Despite increasing efforts in detecting and managing software security vulnerabilities, the number of security attacks is still rising every year. As software becomes more complex, security vulnerabilities are more easily introduced into a system and more difficult to eliminate. Even though buffer overflow detection has been studied for more than 20 years, it is still the most commonly exploited vulnerability. In this paper, we develop a static analyzer for detecting and helping diagnose buffer overflows with the key idea of categorizing program paths as they relate to vulnerability. We combine path-sensitivity with a demand-driven analysis for precision and scalability. We first develop a vulnerability model for buffer overflow and then use the model in the development of the demand-driven path-sensitive analyzer. We detect and identify categories of paths including infeasible, safe, vulnerable, overflow-input-independent and don't-know. The categorization enables priorities to be set when searching for root causes of vulnerable paths. We implemented our analyzer, Marple, and compared its performance with existing tools. Our experiments show that Marple is able to detect buffer overflows that other tools cannot, and being path-sensitive with prioritization, Marple produces only 1 false positive out of 72 reported overflows. We also show that Marple scales to 570,000 lines of code, the largest benchmark we had.
Marple:一个需求驱动的路径敏感缓冲区溢出检测器
尽管检测和管理软件安全漏洞的工作越来越多,但安全攻击的数量仍在逐年上升。随着软件变得越来越复杂,安全漏洞更容易被引入系统,也更难以消除。尽管缓冲区溢出检测已经研究了20多年,但它仍然是最常被利用的漏洞。在本文中,我们开发了一个静态分析器,用于检测和帮助诊断缓冲区溢出,其关键思想是根据与漏洞相关的程序路径进行分类。我们将路径敏感性与需求驱动分析相结合,以实现精度和可扩展性。首先建立了缓冲区溢出漏洞模型,然后将该模型应用于需求驱动路径敏感分析器的开发。我们检测和识别路径类别,包括不可行的、安全的、易受攻击的、溢出输入无关的和不知道的。通过分类,可以在搜索易受攻击路径的根本原因时设置优先级。我们实现了我们的分析仪Marple,并将其性能与现有工具进行了比较。我们的实验表明,Marple能够检测到其他工具无法检测到的缓冲区溢出,并且具有优先级的路径敏感性,在72个报告的溢出中,Marple仅产生1个假阳性。我们还展示了Marple扩展到570,000行代码,这是我们拥有的最大基准。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信