[发明专利]针对com组件导出函数参数空间及2进制数据的fuzz工具的测试用例生成方法无效
申请号: | 201210042953.5 | 申请日: | 2012-02-23 |
公开(公告)号: | CN102622297A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | 贾春鹏;张炯 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 com 组件 导出 函数 参数 空间 数据 fuzz 工具 测试 生成 方法 | ||
技术领域
本发明适用于网络安全领域,功能为com组件的漏洞的发掘和测试,其核心是一种新的针对com组件的黑盒测试生成测试用例的方法具体涉及一种针对com组件导出函数参数空间及2进制数据的fuzz工具的测试用例生成方法。
背景技术
网络安全问题一直是现今最重要的计算机问题之一,其中axtiveX控件的安全问题又是最重要的网络安全问题之一。诸如网上银行,网上购物等等网站都大量使用axtiveX控件,com技术是axtiveX技术的基础,一旦com组件出现漏洞,将对网络安全造成巨大的威胁。避免这些隐患,一方面需要以程序员的角度,开发时尽量避免留下漏洞,一方面也需要以黑客的角度,发掘已经写好的com组件中的漏洞,证明他的可利用性,并及时上报漏洞。
现在的测试工具诸如最著名的COMRaider,其核心都是对于不同导出函数的参数类型进行等距大范围的覆盖,其效率和准确率受到生成测试用例的方法的限制,往往测试结果需要大量的专业人员进行人工分析筛选,并且近些年漏洞很少依托与数据类型本身的特征,在生成大量无用的测试用例的同时,很多可能出现漏洞的异常数据无法被覆盖,综上,使用传统技术对com组件的测试不仅仅效率准确率存在问题,覆盖率也存在问题。使自动测试之后仍然需要十分大量的人工测试。
为了解决以上问题,就需要一种新的生成测试用例的方法和与之相适应的信息提取和漏洞跟踪的方法。
发明内容
本发明要解决的技术问题为:解决现有针对com组件的fuzz中生成测试用例效率低准确率低有效覆盖率低的特点。
本发明解决上述技术问题的技术方案为:针对com组件导出函数参数空间及2进制数据的fuzz工具的测试用例生成方法,该方法步骤如下:
步骤(1)通过组册表HKEY_CLASSES_ROOT/TypeLib键,遍历所有已经注册的com组件的名称、版本、GUID、以及绝对地址。
步骤(2)提取每一个com组件的导出函数的信息,信息包括导出函数返回的类型,导出函数每一个参数的类型。根据测试用例的生成规则,筛选容易出现漏洞的com组件以及其容易出现漏洞的导出函数。
步骤(3)针对每一个导出函数的参数类型所占的空间以及最可能引发异常的2进制数据的数据特征,构造测试用例。
步骤(4)执行每一个测试用例,使用window系统提供的api针对测试用例构造方法和漏洞的利用难度跟踪并记录所有出现的有利用价值的异常。
步骤(5)记录测试结果信息。
所述的步骤(2)进一步包括:
(a1)针对组册的com组件,分析记录导出函数参数数据类型以及数据所占的空间大小;
(b1)针对数据类型以及数据类型的数据所占空间分析漏洞发生的可能性,并根据此结果筛选出易发现漏洞,发现的漏洞易利用的com组件,其中可能性的判断见功能(3)的叙述;
所述的步骤(3)进一步包括:
(a2)针对导出函数参数的数据类型的数据所占空间,确定生成用例所需要覆盖的异常数据的长度。其中用于记录实际信息的切长度固定的数据类型,生成原类型长度,和原类型长度增加1个半字,增加2个半字的三种长度的异常数据,对于指针句柄等数据类型的数据使用规则(d),对于字符串等不定长数据类型使用规则(e)。
(b2)对于异常数据长度等于原数据类型长度的异常数据,构造以半字为单位的2进制数据,使每半字覆盖0000 0000、1111 1111。对每个半字的情况进行组合,使整体测试用例覆盖所有容易引发异常的数据。
(c2)对于异常数据长度大于原数据类型长度的异常数据,减少原数据类型长度内的覆盖,使用全1,对于超出原数据类型长度部分依照(b)的规则并忽略全0进行用例构造。
(d2)对于指针句柄等类型数据32位内的部分,特殊的只构造0000 0000 0000 0000 00000000 0000 0000、1111 1111 1111 1111 1111 1111 1111 1111两种异常数据。
(e2)对于字符串等不定长数据类型,以半字为单位,长度以2的指数的增长速度,生成全0和全1的异常数据。达到用户指定的长度时停止。
(f2)针对用户指定的数据类型增加指定的测试用例,选择性的测试漏洞出现几率比较小的依托数据类型的特点的漏洞。
所述的步骤(4)进一步包括:
(a3)获得线程的EXCEPTION_DEBUG_INFO结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210042953.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:耐海水防腐蚀PE料
- 下一篇:一种铁沟浇注料及其制备方法