A Novel Approach for Software Vulnerability Classification
一种软件漏洞分类的新方法
摘要
软件漏洞分析在预防和减轻软件安全攻击中起着至关重要的作用,漏洞分类是这种分析的关键部分。本文提出了一种基于错误或资源消耗累积、严格时序要求和环境与软件复杂交互等漏洞特征的软件漏洞分类方法。我们还提出了七种攻击模式,并探讨了漏洞类型和攻击模式之间的映射关系。本文所提出的方法用于分析Google Project Zero报告的漏洞和相应的攻击。文中给出了将我们的分类方法应用于特定漏洞的示例,以及对不同类型漏洞发生情况的统计分析。这些结果使我们能够更好地了解软件漏洞以及如何利用它们,从而在未来制定策略,使程序员更好地准备避免引入这些漏洞,并帮助我们制定有效的对策。
我们对软件漏洞分类进行了三项观察:1)Mandel漏洞,尤其是NMV(Non-Aging-Related Mandel漏洞)在所有分类的漏洞中所占份额最大。2)修复NMV需要更多的时间和复杂的策略。3)攻击者的主要目标是从目标系统获取权限提升。漏洞的主要原因是验证机制不正确。
研究成果
- 提出了一种新的漏洞分类方法,该方法根据漏洞识别、修复和利用的复杂性对漏洞进行分类。
- 提出了一组广义的攻击模式。提出了漏洞类型与攻击模式之间的映射关系,便于在已知漏洞对应模式的情况下识别未知漏洞,并根据漏洞类型选择适当的对策。
- 研究了Google Project Zero中不同类型漏洞的影响和原因,以及修复时间
方案优势
- 考虑了攻击条件的复杂性和漏洞的特性, 从攻击者和防御者的角度对漏洞进行了分类。
- 可以应用于不同类型的软件。
- 完成了漏洞分类,并且不同类别之间没有重叠。
漏洞类型

分类器原理
分类过程的顺序取决于在漏洞报告中识别特征的明显程度。首先,我们根据ARV的特征和亚型(MEM、LOG、NUM)来判断该漏洞是否为ARV,因为ARV的特征在报告中最容易识别。如果不是,我们将检查它是否是NMV (TIM, ENV, SDD, HDF)。否则,我们将检查漏洞是否容易识别和/或利用。如果是,则归类为BOV。最后,如果信息不足以确定其类别,则将其归类为UNK。

攻击模式
对漏洞报告的分析表明,某些漏洞可以通过某些固定的方式被利用。提出了7种攻击模式,包括缓冲区溢出攻击、整数溢出攻击(宽度溢出攻击和整数符号攻击)、检查时间到使用时间攻击、竞争条件攻击、自由使用后攻击、类型混淆攻击、非初始化攻击等。其对应关系如下图:

漏洞数据源
漏洞来自于Google的安全项目Google Project Zero报告的漏洞。虽然CVE已经验证了大部分漏洞报告,但是谷歌PZ团队为每个漏洞提供了更详细的信息,例如漏洞报告日期、漏洞修复日期、供应商、补丁以及利用漏洞的方法。更重要的是,谷歌PZ漏洞数据库还提供了新的漏洞,这些漏洞还没有在CVE中报告(例如,Issue 817)。
分类结果分析
- nmv具有最大份额的漏洞,原因是大多数利用都与虚拟地址空间有关,如堆栈、堆等。恶意用户可以通过操纵返回地址或函数指针等控制数据来获得特权提升(EoP)或执行自己的代码。
- 最常见的黑客攻击是针对EoP的。恶意用户希望控制系统,而不仅仅是崩溃,这可以给他们带来更多的好处。最常见的原因是不正确的验证机制。它包括不正确的输入类型检查、不正确的返回值类型检查、错误的绑定检查等等。
- 在nmv中,env具有很强的优势。env包括不正确的指针操作和内存管理,如空闲后使用、类型混淆和非初始化。
- 修复漏洞的平均时间为67.5天。至于修复bov的时间,虽然它们很容易识别,但修复它们也需要很多时间(66.8天)。

浙公网安备 33010602011771号