[发明专利]一种基于中间语言分析的软件脆弱性测试方法无效

专利信息
申请号: 201110380232.0 申请日: 2011-11-25
公开(公告)号: CN102495795A 公开(公告)日: 2012-06-13
发明(设计)人: 郭世泽;赵静;吴志勇;牛伟;陈哲;陈渝;肖奇学;曹鼎;杨威;王啸天;赵建芝;房珊瑶;施凡 申请(专利权)人: 中国人民解放军总参谋部第五十四研究所
主分类号: G06F11/36 分类号: G06F11/36;G06F9/45
代理公司: 北京理工大学专利中心 11120 代理人: 张利萍;高燕燕
地址: 100083 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 中间 语言 分析 软件 脆弱 测试 方法
【说明书】:

技术领域

发明涉及软件测试技术领域,具体涉及到虚拟化技术、动态二进制插桩技术、中间语言分析技术、符号执行技术。

背景技术

在软件生命周期中,软件测试是非常重要的一个环节,高效完备的测试是保证软件质量的重要手段。基于测试的粒度,软件测试可以分为系统测试、模块测试、策略级测试。基于测试收集数据的类型,软件测试可以分为性能测试、功能测试、稳定性测试等。此外,根据测试过程是否依赖于程序内部结构,软件测试可以分为白盒测试、黑盒测试、灰盒测试。

基于分层和抽象的原则,计算机系统在不同层面上实现虚拟化技术,以提供多个同构或异构的平台。在硬件、系统以及应用程序各个层次上,虚拟化提供很好的物理隔离和逻辑隔离,并提供细粒度的运行时信息,在程序分析领域有广泛的应用。

动态二进制插桩是指在程序运行时,除了正常执行原始程序外,在相关位置插入执行其他代码,用于完成程序运行时信息收集、分析、优化等工作。根据是否对原始程序执行逻辑产生影响,插桩可以分为有损插桩和无损插桩。

中间语言分析和优化在编译技术领域有着广泛的应用。通过对程序源代码或机器指令进行翻译,转换为中间语言形式,导出某些隐含信息,从而方便程序的分析和优化。

与实际执行不同,在符号执行中,程序的输入数据是一个符号,这个符号代表任何可能的输入,而不是局限某个特定的输入。程序在执行计算、拷贝、比较、分支跳转等语句时,都可以表达为对应的符号操作。符号执行在软件测试和程序证明中有着广泛的应用。

发明内容

在传统测试方法中,普遍存在着代码覆盖率较低、测试效率低下的缺陷,无法根据实际需求,对特定的代码路径进行高效测试。有鉴于此,本发明提供了一种基于中间语言分析的软件脆弱性测试方法,用于发现程序潜在的设计缺陷。

该基于中间语言分析的软件脆弱性测试方法是这样实现的:

第一步:运行目标测试程序,采用基于动态二进制插桩方法将程序执行中的上下文信息记录到trace文件中;

其中上下文信息包括指令机器码、寄存器、访存数据。

第二步:对程序trace进行离线分析,顺次读取每一条指令,并将上下文信息保存到对应数据结构中,将指令机器码转换为中间语言表示;

其中中间语言包括7种基本操作,分别如下:

IRStmt_Mark:标记原始指令信息;

IRStmt_Put:临时变量向寄存器写数据

IRStmt_WrTmp:寄存器向临时变量写数据

IRStmt_Store:临时变量向内存写数据

IRStmt_Exit:退出中间语言某个代码块

IRStmt_PutE:临时变量向寄存器写浮点数据

IRStmt_Nop:空操作,无实际意义

将中间语言分成3个层次,即超级块、语句、表达式;一个Trace映射多个超级块,每个超级块包括多条语句,每条语句由多个表达式构成。

第三步:针对中间语言进行污点分析,包括污点标记和污点传播两个方面;污点标记通过分析Trace中的系统调用,将从外部设备读进内存的数据标记为污染源;污点传播通过分析中间语句,通过判断语句和源操作数类型,判定操作是否会引起污点传播;

第四步:约束条件收集:程序发生分支跳转时,污点对分支条件的影响即为约束条件;在中间语言中,如果分支跳转语句的条件被污染,那么收集对应的约束条件;

第五步:基于上述中间语言分析,某一条路径对应多个约束条件PC,对各个约束条件进行逻辑合取,生成布尔方程F=PC1∩PC2∩…∩PCn;

第六步:依据路径搜索策略对布尔方程进行变换,不同的方程对应程序所走的不同路径,如果方程有解,则存在输入使程序走对应路径,否则该路径不可达;

第七步:通过约束求解,得到各个路径对应输入值,基于输入模板,通过在相关位置上修改数据,生成新的测试用例,驱动程序继续执行。

本发明的有益效果为:

基于中间语言进行测试用例的自动化生成,使得在测试过程中,污点分析和符号执行的对象不再局限于某一个固定指令集,而是支持包括x86、arm等多种体系架构。因此,基于中间语言进行自动化测试,测试对象的运行平台即可以为PC或服务器,也可以为嵌入式系统。

附图说明

图1为基于中间语言进行自动化测试的系统框架;

图2为中间语言的翻译机制;

图3为中间语言的内部操作机制。

具体实施方式

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军总参谋部第五十四研究所,未经中国人民解放军总参谋部第五十四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110380232.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top