生成高覆盖率漏洞签名的方法与实践
1. 高覆盖率漏洞点可达谓词提取的价值
提取高覆盖率的漏洞点可达谓词,除了用于签名生成外,在漏洞利用生成和补丁测试等应用中也十分有用。例如,微软补丁 MS05 - 018 遗漏了一些通向漏洞点的路径,导致打补丁后漏洞仍可被利用。在 CVE 数据库中,有 13 个漏洞存在错误或不完整的补丁情况。我们的技术可以帮助软件开发人员构建更准确的补丁,并且基于协议级约束引导的方法能提高生成高覆盖率测试用例的有效性,对软件测试和漏洞发现具有重要价值。
2. 问题定义与示例
2.1 问题定义
自动生成协议级漏洞点可达谓词的问题是:给定一个实现特定协议规范的解析器、漏洞点以及一个能在程序中利用该漏洞点的输入,自动生成一个谓词函数 F。当解析器将输入映射到字段结构后,F 对这些字段结构进行评估。若评估结果为真,则认为该输入能够到达漏洞点;否则,不能到达。
该问题的解决需要满足以下条件:
- 解析器可用性 :需要一个能实现给定协议或文件规范的解析器。常见协议(如 Wireshark 支持的协议)有可用的解析器,许多基于网络的商业 IDS 或 IPS 也内置了此类解析器。此外,近期研究展示了如何创建一个通用解析器,它可以接受用中间语言编写的多个协议规范作为输入。
- 规范质量 :解析器使用的规范质量很重要。虽然获取高质量规范并非易事,但这是一次性的工作,可用于多个签名及其他应用。例如,WMF 文件格式规范可用于 21 个漏洞,HTTP 规范可用于 1500 多个漏洞。同时,近期工作还提出了从程序二进制文件中自动提取协议规范的方法
超级会员免费看
订阅专栏 解锁全文
846

被折叠的 条评论
为什么被折叠?



