We use cookies to improve your experience with our site.

缓冲区溢出静态警报的自动确认

Automatic Buffer Overflow Warning Validation

  • 摘要: 1、研究背景(context)
    软件中的缓冲区溢出缺陷会严重威胁软件安全,攻击者可以利用缓冲区溢出执行恶意代码。尽管距Anderson 1972年第一次提出缓冲区溢出检测技术已经过去40多年,缓冲区溢出依然是最常见的软件缺陷。目前主要有静态分析方法和动态测试方法检测缓冲区溢出缺陷。动态测试方法需要特定的测试用例触发缓冲区溢出缺陷,但是很难获取所有缓冲区溢出缺陷的相关测试用例。静态分析方法可以在软件发布前检测到缓冲区溢出缺陷,但是由于缺少软件的运行时信息会报告大量警报。而通过人工对静态分析警报进行确认非常耗时。
    2、目的(Objective)
    本文目标是通过符号执行对缓冲区溢出静态分析警报进行自动确认,并对C程序中的确认的真警报提供修复建议。
    3、方法(Method)
    我们提出方法BovInspector,对缓冲区溢出静态分析警报进行自动确认,并对C程序中的确认的真警报提供修复建议。给定程序源码和该程序的缓冲区溢出静态分析警报,BovInspector首先进行可达性分析,然后使用可达性信息制导符号执行。通过求解路径约束和缓冲区溢出约束的可满足性对每一个警报进行确认和分类。对于确认的真警报BovInspector将依据11种修复策略提供自动修复建议。
    4、结果(Result&Findings)
    实验结果表明,BovInspector可以对60%的静态分析警报进行自动确认。自动修复模块可以完成大部分的缓冲区溢出修复,同时我们的修复方法和程序员的修复习惯近似。
    5、结论(Conclusions):
    BovInspector可以有效减少静态分析报告的缓冲区警报中的误报数目,同时我们为确认的真警报提供修复建议。为了进一步提升警报自动确认的效率,提高符号执行制导的精确度或许是比较有效的手段。比如通过一个更加精确的静态分析可以提前修剪掉更多冗余和无关的路径。这样再制导符号执行着重探索可疑路径空间,可以有效提升警报自动确认的效率。

     

    Abstract: Static buffer overflow detection techniques tend to report too many false positives fundamentally due to the lack of software execution information. It is very time consuming to manually inspect all the static warnings. In this paper, we propose BovInspector, a framework for automatically validating static buffer overflow warnings and providing suggestions for automatic repair of true buffer overflow warnings for C programs. Given the program source code and the static buffer overflow warnings, BovInspector first performs warning reachability analysis. Then, BovInspector executes the source code symbolically under the guidance of reachable warnings. Each reachable warning is validated and classified by checking whether all the path conditions and the buffer overflow constraints can be satisfied simultaneously. For each validated true warning, BovInspector provides suggestions to automatically repair it with 11 repair strategies. BovInspector is complementary to prior static buffer overflow discovery schemes. Experimental results on real open source programs show that BovInspector can automatically validate on average 60% of total warnings reported by static tools.

     

/

返回文章
返回