基于模糊技术的可信软件栈测试系统的制作方法

文档序号:6600977阅读:521来源:国知局
专利名称:基于模糊技术的可信软件栈测试系统的制作方法
技术领域
本发明涉及信息系统安全技术领域,尤其涉及一种基于模糊技术的可信软件栈测 试系统。
背景技术
可信计算作为一种信息系统安全新技术,已经成为信息科学与技术领域的研究热 点之一。在国际上,可信计算组织TCG(Trusted Computing Group,参见文献1)制定并不断 完善一系列的技术规范,可信计算产品日趋产业化、系列化,截止目前几乎所有的主流笔记 本生产厂商都已经或计划在产品中配置TPM安全芯片,可信PDA、可信服务器等产品也已推
出ο所谓的可信计算,其主要观点在于在PC机硬件平台上引入安全芯片架构,通 过提供安全特性来提高终端的安全性。其中,可信计算平台TCP基于可信平台模块 TPM(TrustedPlatform Module,可信平台模块),以密码技术为支持,安全操作系统为核心。可信计算的核心是称为TPM的安全芯片,它是固化在PC终端的主板上的一个具有 安全保护功能的硬件芯片,由于TPM芯片内部资源有限,仅提供了基本功能的接口,所以就 需要在TPM芯片外部套接一个软件栈来实现它的上层的面向实际应用的功能,软件栈的引 入使得TPM的内部功能得到了充分应用。可信软件栈TSS (TCG Software Stack,参见文献2)是一种为上层的可信计算应用 提供访问TPM接口的软件系统,是可信计算平台体系中必不可少的组成部分,其设计的目 标是提供对TPM的同步访问,给上层的应用程序提供一个合理有效的接口来替代TPM繁杂 的指令流,管理TPM资源,在适当的时候释放TPM资源。在整个体系中,可信平台模块TPM是整个平台的信任根;信任链(Trusted Chain) 将信任从信任根依次传递给BIOS、操作系统和可信计算应用环境;TSS为应用程序访问 TPM提供支持,并对TPM进行管理。目前TSS的相关产品有Infineon TPM Professional Package 3. 0、IBM TrouSerS和NTRU CTSS等,广泛的应用在可信计算平台中。然而,目前缺乏对可信软件栈软件自身的脆弱性、安全威胁和影响进行的评估,缺 乏对其中是否存在安全缺陷的检查,因此可信软件栈需要提出一种进行安全缺陷测试的有 效方法。文献 1 ;Trusted Computing Group.TCG Specification Architecture Overview[EB/0L]· [2007-04-08]https://www. trustedcomputinggroup. org/groups/TCG l_4_Architecture_0verview. pdf文献 2 :Trusted Computing Group. TCG Software Stack (TSS) Specifiction [EB/ OL]. [2005-12-01]. https://www. trustedcomputinggroup. org/specs/TSS.

发明内容
本发明的目的是提供一种基于模糊技术的可信软件栈测试系统,以实现对不同的可信软件栈TSS产品进行安全缺陷测试。为达到上述目的,本发明采用如下的技术方案
-服务提供者测试模块,用于测试可信软件栈的服务提供者管理功能中的安全缺 陷,所述服务提供者测试模块进一步包括用户函数通信拦截子模块,用于拦截可信软件栈的服务提供者管理函数的通信数 据流,同时保持函数原有的执行状态迁移不变;故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回服务提供者管 理函数,同时保持函数原有的执行状态迁移不变;-核心服务测试模块,用于测试可信软件栈的核心服务管理功能中的安全缺陷,所 述核心服务测试模块进一步可包括网络通信拦截子模块,用于拦截可信软件栈的核心服务管理函数的网络通信数据 流,同时保持网络通信原有的交互状态迁移不变;故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回核心服务管理 函数,同时保持网络通信原有的交互状态迁移不变。模糊测试模块,用于根据通信数据格式解析拦截数据,并识别其中的测试数据变 量,然后根据安全缺陷的模糊测试算法对测试数据变量进行构造,最后将构造后的数据重 新按数据格式完成封装;数据库模块,用于存储通信数据的结构描述,利用XML记录其中的变量声明、类型 定义以及需要进行构造的变量或字段。所述模糊测试模块由通信拦截子模块、畸形构造子模块和故障注入子模块三部分 组成,通信拦截子模块,用于拦截可信软件栈测试函数的通信数据流,同时保持函数原 有的执行状态迁移不变;畸形构造子模块,用于根据数据库中存储的数据格式解析拦截数据,并识别其中 的测试数据变量,然后根据安全缺陷的模糊测试算法对测试数据变量进行构造;最后将构 造后的数据重新按数据格式完成封装;故障注入子模块,用于将构造的畸形数据返回可信软件栈测试函数,同时保持函 数原有的执行状态迁移不变。测试可信软件栈的服务提供者管理功能的方法,包括以下步骤①可信软件栈的服务提供者根据测试需求,执行相关的管理功能,确定需要测试 的功能函数;②在功能函数执行后,用户函数通信拦截模块得到功能函数的输入数据流;③数据流转发给模糊测试模块,由该模块负责从正常数据到测试数据的转换;④模糊测试模块得到数据流后,从数据库中得到相关的数据格式,再依据该格式 解析通信数据,并得到需要进行构造的变量或字段;⑤针对测试变量或字段,根据模糊测试算法进行模糊构造;⑥模糊测试模块根据得到通信数据的结构描述信息,重新封装测试数据;⑦模糊测试模块将测试数据回传给故障注入模块,此时并不影响原功能函数的处 理流程与状态迁移;
⑧故障注入模块将测试数据输入待测功能函数后,观察执行后的程序状态;⑨如果程序状态出现异常或错误,转至步骤⑩;如果程序执行正常,说明该组测试 数据通过,转至步骤⑤,重新进行测试数据的构造;⑩对程序异常或错误进行调试与观察,发现程序中引发异常的安全缺陷。本发明具有以下优点和积极效果1)在测试内容方面,实现对可信软件栈各层次数据通信的有效拦截,在不影响正 常执行流程的情况下,实现了数据包的拦截与替换功能;2)在测试方法方面,通过运用模糊技术来构造测试数据,其中包括根据通信数据 格式解析并识别数据,根据安全缺陷的模糊测试算法构造测试数据变量以及根据通信数据 格式重新封装数据。


图1是本发明提供的可信软件栈的测试模型。图2是本发明提供的模糊测试模块组成结构。图3是本发明提供的基于模糊技术的服务提供者测试框架。
具体实施例方式
下面以具体实施例结合附图对本发明作进一步说明可信软件栈的测试模型如图1所示,在对可信软件栈TSS进行安全性测试前,首先 需要对可信软件栈TSS设计所依据的设计规范进行分析,提取具体的测试需求。针对TSS 中的服务提供者和核心服务层函数,通过规范分析检查器,分别使用相应的测试模块进行 测试用例的自动化生成和测试自动执行。当添加模糊测试策略到测试用例的自动化生后, 它可与可信软件站TSS产品进行输入输出的交互。最后,输出测试结果,使用评估方法对测 试结果进行总结与评估,给出量化的测试报告和意见。图1所示为可信软件栈的测试模型,根据TCG的TSS规范所定义的内容,本发明提 供的基于模糊技术的可信软件栈测试系统包括服务提供者测试模块,用于测试可信软件栈的服务提供者管理功能中的安全缺 陷;核心服务测试模块,用于测试可信软件栈的核心服务管理功能中的安全缺陷;其中,服务提供者测试模块进一步可包括①用户函数通信拦截子模块,用于拦截可信软件栈的服务提供者管理函数的通信 数据流,同时保持函数原有的执行状态迁移不变;②故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回服务提供者 管理函数,同时保持函数原有的执行状态迁移不变。核心服务测试模块进一步可包括①网络通信拦截子模块,用于拦截可信软件栈的核心服务管理函数的网络通信数 据流,同时保持网络通信原有的交互状态迁移不变;②故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回核心服务管 理函数,同时保持网络通信原有的交互状态迁移不变。
本发明上述可信软件栈测试模块的基础上,进一步改进提出了安全缺陷测试模 型,依据通信数据格式与模糊测试算法构造缺陷测试数据,如图2所示模糊测试模块模型, 包括模糊测试模块,由通信拦截子模块、畸形构造子模块和故障注入子模块三部分组 成。数据库模块,用于存储通信数据的结构描述,利用XML记录其中的变量声明、类型 定义以及需要进行构造的变量或字段。具体来说,模糊测试模块中通信拦截子模块用于拦截可信软件栈测 试函数的通信 数据流,同时保持函数原有的执行状态迁移不变;畸形构造子模块负责根据数据库中存储 的数据格式解析拦截数据,并识别其中的测试数据变量,然后根据安全缺陷的模糊测试算 法对测试数据变量进行构造;最后将构造后的数据重新按数据格式完成封装;故障注入子 模块,用于将构造的畸形数据返回可信软件栈测试函数,同时保持函数原有的执行状态迁 移不变。模糊测试模块利用模糊技术根据通信数据格式和缺陷测试算法构造用于测试的 畸形数据,包括1)模糊测试模块接收来自于拦截装备的数据包,并利用收集到的数据结构描述信 息,解析通信数据并识别其中的测试变量;2)针对测试变量,利用模糊测试算法创建用于测试的畸形数据;3)模糊测试模块再次利用数据结构描述信息,将测试数据与原通信数据中的其它 内容封重新封装;4)将封装后的数据包返回给服务提供者测试模块、核心服务测试模块或设备驱动 库测试模块中的故障注入模块。模糊测试模块在执行过程中,与数据库模块相交互,完成基于模糊技术的测试数 据构造,具体工作过程如下(1)模糊测试模块从各层测试模块的通信拦截模块得到通信数据;(2)模糊测试模块查询数据库模块,得到通信数据的结构描述信息,依据该信息解 析通信数据,并得到需要进行构造的变量或字段;(3)根据模糊测试算法对测试数据变量或字段进行构造,以有利于检测安全缺陷 为前提;(4)模糊测试模块查询数据库,得到通信数据的结构描述信息,依据该信息重新封 装测试数据。本发明提供了测试可信软件栈的服务提供者管理功能的方法,如图3所示1.可信软件栈的服务提供者根据测试需求,执行相关的管理功能,确定需要测试 的功能函数。2.在功能函数执行后,用户函数通信拦截模块得到功能函数的输入数据流。3.数据流转发给模糊测试模块,由该模块负责从正常数据到测试数据的转换。4.模糊测试模块得到数据流后,从数据库中得到相关的数据格式,再依据该格式 解析通信数据,并得到需要进行构造的变量或字段。5.针对测试变量或字段,根据模糊测试算法进行模糊构造。
6.模糊测试模块根据得到通信数据的结构描述信息,重新封装测试数据。7.模糊测试模块将测试数据回传给故障注入模块,此时并不影响原功能函数的处 理流程与状态迁移。
8.故障注入模块将测试数据输入待测功能函数后,观察执行后的程序状态。9.如果程序状态出现异常或错误,转至步骤10 ;如果程序执行正常,说明该组测 试数据通过,转至步骤5,重新进行测试数据的构造。10.对程序异常或错误进行调试与观察,发现程序中引发异常的安全缺陷。
权利要求
一种基于模糊技术的可信软件栈测试系统,其特征在于,包括-服务提供者测试模块,用于测试可信软件栈的服务提供者管理功能中的安全缺陷,所述服务提供者测试模块进一步包括用户函数通信拦截子模块,用于拦截可信软件栈的服务提供者管理函数的通信数据流,同时保持函数原有的执行状态迁移不变;故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回服务提供者管理函数,同时保持函数原有的执行状态迁移不变;-核心服务测试模块,用于测试可信软件栈的核心服务管理功能中的安全缺陷,所述核心服务测试模块进一步可包括网络通信拦截子模块,用于拦截可信软件栈的核心服务管理函数的网络通信数据流,同时保持网络通信原有的交互状态迁移不变;故障注入子模块,用于将模糊技术测试模块处理后的构造数据返回核心服务管理函数,同时保持网络通信原有的交互状态迁移不变。
2.根据权利要求1所述的基于模糊技术的可信软件栈测试系统,其特征在于,还包括 模糊测试模块,用于根据通信数据格式解析拦截数据,并识别其中的测试数据变量,然后根据安全缺陷的模糊测试算法对测试数据变量进行构造,最后将构造后的数据重新按数 据格式完成封装;数据库模块,用于存储通信数据的结构描述,利用XML记录其中的变量声明、类型定义 以及需要进行构造的变量或字段。
3.根据权利要求2所述的基于模糊技术的可信软件栈测试系统,其特征在于所述模糊测试模块由通信拦截子模块、畸形构造子模块和故障注入子模块三部分组成,通信拦截子模块,用于拦截可信软件栈测试函数的通信数据流,同时保持函数原有的 执行状态迁移不变;畸形构造子模块,用于根据数据库中存储的数据格式解析拦截数据,并识别其中的测 试数据变量,然后根据安全缺陷的模糊测试算法对测试数据变量进行构造;最后将构造后 的数据重新按数据格式完成封装;故障注入子模块,用于将构造的畸形数据返回可信软件栈测试函数,同时保持函数原 有的执行状态迁移不变。
4.一种测试可信软件栈的服务提供者管理功能的方法,其特征在于,包括以下步骤①可信软件栈的服务提供者根据测试需求,执行管理功能,确定需要测试的功能函数;②在功能函数执行后,用户函数通信拦截模块得到功能函数的输入数据流;③数据流转发给模糊测试模块,由该模块负责从正常数据到测试数据的转换;④模糊测试模块得到数据流后,从数据库中得到相关的数据格式,再依据该格式解析 通信数据,并得到需要进行构造的变量或字段;⑤针对测试变量或字段,根据模糊测试算法进行模糊构造;⑥模糊测试模块根据得到通信数据的结构描述信息,重新封装测试数据;⑦模糊测试模块将测试数据回传给故障注入模块,此时并不影响原功能函数的处理流程与状态迁移;⑧故障注入模块将测试数据输入待测功能函数后,观察执行后的程序状态;⑨如果程序状态出现异常或错误,转至步骤⑩;如果程序执行正常,说明该组测试数据 通过,转至步骤⑤,重新进行测试数据的构造;⑩对程序异常或错误进行调试与观察,发现程序中引发异常的安全缺陷。
全文摘要
本发明涉及信息系统安全技术领域,尤其涉及一种基于模糊技术的可信软件栈测试系统。本发明包括服务提供者测试模块、核心服务测试模块,所述服务提供者测试模块进一步包括用户函数通信拦截子模块、故障注入子模块;所述核心服务测试模块进一步可包括网络通信拦截子模块、故障注入子模块。本发明在测试内容方面,实现对可信软件栈各层次数据通信的有效拦截,在不影响正常执行流程的情况下,实现了数据包的拦截与替换功能;在测试方法方面,通过运用模糊技术来构造测试数据,其中包括根据通信数据格式解析并识别数据,根据安全缺陷的模糊测试算法构造测试数据变量以及根据通信数据格式重新封装数据。
文档编号G06F21/00GK101833503SQ20101015036
公开日2010年9月15日 申请日期2010年4月14日 优先权日2010年4月14日
发明者严飞, 何凡, 傅建明, 吴俊 , 周鹏, 张娅珊, 张焕国, 杨飏 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1