[发明专利]一种文件处理程序的加密点和检查点定位方法及系统在审
申请号: | 201710587017.5 | 申请日: | 2017-07-18 |
公开(公告)号: | CN107491387A | 公开(公告)日: | 2017-12-19 |
发明(设计)人: | 武泽慧;曹琰;魏强;王允超;柳晓龙;麻荣宽 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 郑州大通专利商标代理有限公司41111 | 代理人: | 陈勇 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 处理 程序 加密 检查点 定位 方法 系统 | ||
技术领域
本发明涉及软件测试技术领域,尤其涉及一种文件处理程序的加密点和检查点定位方法及系统。
背景技术
从当前软件脆弱性测试技术的发展情况来看,模糊测试技术 (Fuzzing)仍然是文件处理软件脆弱性检测的主要手段。模糊测试是一种基于缺陷注入的自动软件测试技术,通过构造大量畸形数据作为应用程序的输入,导致一些未对输入做校验或者校验不严格的应用触发异常行为。文件处理软件作为当前操作系统应用频率最高的软件,由于其代码复杂性往往包含一些未知的0day漏洞。目前针对该类软件的模糊测试主要集中于对文件格式数据的变异方面。
尽管现在有很多支持对文件进行模糊测试的工具,例如Peach,Sulley,FileFuzz等,但当被测软件中存在数据加密机制以及完整性检查机制的情况下,会导致模糊测试生成的大量测试用例因无效而被过早丢弃,从而大大降低了这些工具的有效性,具体原因如下:
(1)为保证数据的私密性,很多文件处理软件都会对数据进行加密,但是这种加密机制会限制模糊测试生成的测试用例的有效性,如果直接对加密数据进行变异会导致解密后的数据完全不可控,使得解密后的数据直接被程序丢弃,从而无法测试代码的深层逻辑。
(2)为保证数据的完整性,通常文件处理软件在对文件进行格式解析前也会对文件的完整性进行检查,只有通过验证点的文件才会被处理。然而这种完整性检查机制使得模糊测试产生的大量畸形测试用例都会被验证点过滤掉,导致针对该类程序的模糊测试失效。
综上分析,用于模糊测试的程序中采用的加密机制以及完整性检查机制为软件脆弱性测试带来很大障碍,亟需进行解决。
发明内容
本发明的目的在于克服上述模糊测试的不足,提出一种文件处理程序的加密点和检查点定位方法及系统,可以提高模糊测试生成的有效样本的比例。
为了实现上述目的,本发明采用以下技术方案:
一种文件处理程序的加密点和检查点定位方法,包括以下步骤:
步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
步骤2:根据污点分析的结果,构造候选检查点集合;
步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
步骤4:根据污点分析的结果,定位文件处理程序的加密点。
优选地,所述步骤1包括:
步骤11:载入被测对象,即文件处理程序;
步骤12:通过污点分析对文件处理过程中的数据流进行跟踪;
步骤13:通过静态分析方法去除、合并不必要的污点传播过程。
优选地,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系。
优选地,所述步骤2包括:
步骤21:通过PIN插桩每一条被污染的条件跳转指令;
步骤22:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
步骤23:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
优选地,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。
优选地,在所述步骤3之后,还包括:
修改文件处理程序的二进制文件实现检查点绕过;
对修改后的文件处理程序进行模糊测试;
模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;
根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
优选地,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。
优选地,在所述步骤4之后,还包括:
利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;
修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;
将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;
保留故障再现成功的测试样本。
基于上述的一种文件处理程序的加密点和检查点定位方法的一种文件处理程序的加密点和检查点定位系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710587017.5/2.html,转载请声明来源钻瓜专利网。