一种文件处理程序的加密点和检查点定位方法及系统技术方案

技术编号:16837254 阅读:23 留言:0更新日期:2017-12-19 19:49
本发明专利技术属于软件测试技术领域,尤其涉及一种文件处理程序的加密点和检查点定位方法及系统。一种文件处理程序的加密点和检查点定位方法,包括:载入被测对象,即文件处理程序,对文件处理程序进行污点分析;根据污点分析的结果,构造候选检查点集合;逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;根据污点分析的结果,定位文件处理程序的加密点。一种文件处理程序的加密点和检查点定位系统,包括:载入分析模块;候选检查点生成模块;检查点定位模块;加密点定位模块。本发明专利技术提出一种文件处理程序的加密点和检查点定位方法及系统,可以提高模糊测试生成的有效样本的比例。

A method and system for locating the encrypted points and checking points of a file processing program

The invention belongs to the field of software testing technology, in particular, the encryption point of a file processing program and the location method and system of the checkpoint. Including a program file encryption and check point positioning method, load the measured object, namely document processing procedures, analysis of the file handling procedures for spot stain; according to the analysis results, the candidate set to construct the checkpoint; reverse analysis of each checkpoint checkpoint candidate set, according to the relationship between positioning check the data encryption and taint analysis; according to the results, the encryption point positioning document processing program. A file processing program's encryption point and checkpoint location system, including loading analysis module, candidate checkpoint generation module, checkpoint location module, encryption point location module. The invention provides an encryption point and checkpoint location method and system for file processing program, which can improve the proportion of effective samples generated by fuzzy test.

【技术实现步骤摘要】
一种文件处理程序的加密点和检查点定位方法及系统
本专利技术涉及软件测试
,尤其涉及一种文件处理程序的加密点和检查点定位方法及系统。
技术介绍
从当前软件脆弱性测试技术的发展情况来看,模糊测试技术(Fuzzing)仍然是文件处理软件脆弱性检测的主要手段。模糊测试是一种基于缺陷注入的自动软件测试技术,通过构造大量畸形数据作为应用程序的输入,导致一些未对输入做校验或者校验不严格的应用触发异常行为。文件处理软件作为当前操作系统应用频率最高的软件,由于其代码复杂性往往包含一些未知的0day漏洞。目前针对该类软件的模糊测试主要集中于对文件格式数据的变异方面。尽管现在有很多支持对文件进行模糊测试的工具,例如Peach,Sulley,FileFuzz等,但当被测软件中存在数据加密机制以及完整性检查机制的情况下,会导致模糊测试生成的大量测试用例因无效而被过早丢弃,从而大大降低了这些工具的有效性,具体原因如下:(1)为保证数据的私密性,很多文件处理软件都会对数据进行加密,但是这种加密机制会限制模糊测试生成的测试用例的有效性,如果直接对加密数据进行变异会导致解密后的数据完全不可控,使得解密后的数据直接被程序丢弃,从而无法测试代码的深层逻辑。(2)为保证数据的完整性,通常文件处理软件在对文件进行格式解析前也会对文件的完整性进行检查,只有通过验证点的文件才会被处理。然而这种完整性检查机制使得模糊测试产生的大量畸形测试用例都会被验证点过滤掉,导致针对该类程序的模糊测试失效。综上分析,用于模糊测试的程序中采用的加密机制以及完整性检查机制为软件脆弱性测试带来很大障碍,亟需进行解决。
技术实现思路
本专利技术的目的在于克服上述模糊测试的不足,提出一种文件处理程序的加密点和检查点定位方法及系统,可以提高模糊测试生成的有效样本的比例。为了实现上述目的,本专利技术采用以下技术方案:一种文件处理程序的加密点和检查点定位方法,包括以下步骤:步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;步骤2:根据污点分析的结果,构造候选检查点集合;步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;步骤4:根据污点分析的结果,定位文件处理程序的加密点。优选地,所述步骤1包括:步骤11:载入被测对象,即文件处理程序;步骤12:通过污点分析对文件处理过程中的数据流进行跟踪;步骤13:通过静态分析方法去除、合并不必要的污点传播过程。优选地,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系。优选地,所述步骤2包括:步骤21:通过PIN插桩每一条被污染的条件跳转指令;步骤22:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;步骤23:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。优选地,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。优选地,在所述步骤3之后,还包括:修改文件处理程序的二进制文件实现检查点绕过;对修改后的文件处理程序进行模糊测试;模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。优选地,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。优选地,在所述步骤4之后,还包括:利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;保留故障再现成功的测试样本。基于上述的一种文件处理程序的加密点和检查点定位方法的一种文件处理程序的加密点和检查点定位系统,包括:载入分析模块,用于载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;候选检查点生成模块,用于根据污点分析的结果,构造候选检查点集合;检查点定位模块,用于逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;加密点定位模块,用于根据污点分析的结果,定位文件处理程序的加密点。优选地,还包括:检查点绕过模块,用于修改文件处理程序的二进制文件实现检查点绕过;模糊测试模块,用于对修改后的文件处理程序进行模糊测试;故障模块,用于模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;逆向定位模块,用于根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。优选地,还包括:识别加密内容模块,用于利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;修改构造模块,用于修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;故障再现模块,用于将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;保留模块,用于保留故障再现成功的测试样本。优选地,所述载入分析模块进一步包括:载入模块,用于载入被测对象,即文件处理程序;跟踪模块,用于通过污点分析对文件处理过程中的数据流进行跟踪;静态分析模块,用于通过静态分析方法去除、合并不必要的污点传播过程。优选地,所述候选检查点生成模块进一步包括:插桩模块,用于通过PIN插桩每一条被污染的条件跳转指令;查看依赖模块,用于查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;筛选模块,用于筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。与现有技术相比,本专利技术具有的有益效果:(1)本专利技术解决模糊测试中采用随机法构造的样本失效的问题通过污点分析法对文件处理过程中的数据流进行跟踪,利用数据流污点特征构造出候选检查点集合,并定位检查点;定位出检查点后,修改二进制程序的跳转指令完成检查点绕过;对按照上述方法修改后的文件处理软件再次进行模糊测试,随机法构造的测试样本则不会失效。(2)本专利技术克服软件故障无法重现的问题通过检查点定位和绕过过程后,模糊测试过程中会出现导致被测对象崩溃、闪退等故障现象,但是利用该样本无法直接对未修改的被测对象进行故障重现,因此需要通过识别被测对象在处理数据过程中的加密位置和加密内容,通过修改对应加密内容构造合法的测试样本才能够再现软件故障;本专利利用污点分析过程中密码函数的雪崩效应识别内存中的加密数据,在密文识别的基础上按照产生故障的测试样本修改对应密文,重新构造合法测试样本对原被测对象进行故障重现。附图说明图1为本专利技术一种文件处理程序的加密点和检查点定位方法的基本流程示意图之一。图2为本专利技术一种文件处理程序的加密点和检查点定位方法的基本流程示意图之二。图3为本专利技术一种文件处理程序的加密点和检查点定位方法的Picasa检查点定位图。图4为本专利技术一种文件处理程序的加密点和检查点定位方法的Picasa检查本文档来自技高网
...
一种文件处理程序的加密点和检查点定位方法及系统

【技术保护点】
一种文件处理程序的加密点和检查点定位方法,其特征在于,包括以下步骤:步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;步骤2:根据污点分析的结果,构造候选检查点集合;步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;步骤4:根据污点分析的结果,定位文件处理程序的加密点。

【技术特征摘要】
1.一种文件处理程序的加密点和检查点定位方法,其特征在于,包括以下步骤:步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;步骤2:根据污点分析的结果,构造候选检查点集合;步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;步骤4:根据污点分析的结果,定位文件处理程序的加密点。2.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述步骤1包括:步骤11:载入被测对象,即文件处理程序;步骤12:通过污点分析对文件处理过程中的数据流进行跟踪;步骤13:通过静态分析方法去除、合并不必要的污点传播过程。3.根据权利要求1或2所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系。4.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述步骤2包括:步骤21:通过PIN插桩每一条被污染的条件跳转指令;步骤22:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;步骤23:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。5.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。6.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,在所述步骤3之后,还包括:修改文件处理程序的二进制文件实现检查点绕过;对修改后的文件处理程序进行模糊测试;模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。7.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。8.根据权利要求1所述的一种文件处理程序的加密...

【专利技术属性】
技术研发人员:武泽慧曹琰魏强王允超柳晓龙麻荣宽
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1