当前位置: 首页 > 专利查询>西门子公司专利>正文

一种对协议实现进行安全测试的方法及装置制造方法及图纸

技术编号:8565086 阅读:163 留言:0更新日期:2013-04-11 07:23
本发明专利技术提供了一种对协议实现进行安全测试的方法及装置。方法包括:将协议规范映射为第一协议状态模型;向第一协议状态模型引入非法状态形成第二协议状态模型;利用断言来表征第一协议状态模型/第二协议状态模型的测试目标,利用文法约束来表征此模型合法输入报文的文法规则;对第二协议状态模型执行行为变异操作生成变异的协议状态模型并执行模型检测,将得到的违反断言的反例映射为测试序列;对测试序列执行文法变异操作生成包含变异的测试报文的测试序列,将其中包含有效变异报文的作为测试用例;利用测试用例对协议实现进行模糊测试,以检测协议实现中存在的安全漏洞。采用本发明专利技术实施例能以高效及低成本实现协议安全测试。

【技术实现步骤摘要】

本专利技术涉及信息安全(Information Security)
,特别涉及ー种对协议实现进行安全测试的方法及装置
技术介绍
计算机信息安全技术是ー门由密码应用技术、信息安全技术、数据灾难与数据恢复技术、操作系统维护技术等组成的计算机综合应用学科。其中,信息安全技术主要用于防止系统漏洞、防止外部黑客入侵、防御病毒破坏和对可疑访问进行有效控制等。随着互联网(Internet)的发展,各种计算机系统中都迫切需要加强其信息安全技术。以信息通信技术(ICT, Information Communication Technology)系统为例。ICT作为ー种向客户提供的服务,是信息技术(IT, Information Technology)与通信技术(CT,Communication Technology)的结合和交融,通信业、电子信息产业、互联网、传媒业都将融合在ICT的范围内,进而能为客户提供一站式的ICT整体服务,包括集成服务、外包服务、专业服务、知识服务以及软件开发服务等。但是,随着ICT系统的发展,保护ICT系统的基础结构的要求也在显著提高。比如不同项目利益相关者(如合资企业、联盟伙伴、外包服务)之间连接性的提高、智能装置的连接性的提高、外部连接性的增强、快速增长的网络入侵事件以及出现更多的智能黑客和恶意软件等情况,都导致了 ICT系统的基础结构遭受攻击以及威胁的可能性的显著提高。因此,就非常有必要加强ICT系统的信息安全技木,以针对安全漏洞和/或自发故障来保证ICT系统的基础结构的通信安全。在信息安全技术中,很重要的一个课题就是对协议实现所基于的协议进行安全测试。现存的几种协议安全测试方法包括形式化验证(Informal Verif ication)、白盒(ffhite-box)测试和黑盒(Black_box)测试等等。其中,由于形式化验证和白盒测试需要作为被测实现系统(IUT, Implementation Under Test)的计算机程序的源代码(SourceCode),因此,此种方法可适用的场景非常有限;而另一方面,黑盒测试基于协议的外部描述,即协议规范(Specifications),其测试并不依赖于计算机程序的源代码,进而黑盒测试的实现可以与协议实现的计算机程序开发相互独立,其测试结果可以应用于协议规范的所有实现情况,因此,黑盒测试可以广泛应用于各种场景下的安全测试。但是,黑盒测试的实现成本非常高,也非常耗时,且难以优化和改进。因此,目前在信息安全
中,亟待开发ー种协议安全测试技术,其不需要协议实现的计算机程序的源代码,并且具有较高的执行效率以及较低的实现成本。
技术实现思路
为解决上述技术问题,本专利技术实施例提出了ー种对协议实现进行安全测试方法及装置,其不需要待测的协议实现的计算机程序的源代码即能实现协议的安全测试,且具有较高的执行效率以及较低的实现成本。本专利技术实施例提出了ー种对协议实现进行安全测试的方法,该方法包括将所述协议实现所基于的协议规范映射为第一协议状态模型;向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现中存在的安全故障相对应;利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目标;利用文法约束来表征所述第二协议状态模型和/或第一协议状态模型的合法输入报文的文法规则;对所述第二协议状态模型执行行为变异操作,生成变异的协议状态模型;根据所述断言对所述变异的协议状态模型执行模型检测,生成一个或多个违反所述断言的反例,将所述反例映射为测试序列;对所述测试序列执行文法变异操作,生成包含变异报文的变异测试序列,每个测试序列生成包含ー个或多个变异报文的变异测试序列; 根据所述文法约束对所述变异测试序列中的变异报文执行文法检测,得到所述变异报文中违反所述文法约束的有效变异报文,将包含所述有效变异报文的变异测试序列作为测试用例;及,利用所述测试用例对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述ー个或多个测试用例对应的安全漏洞。其中,所述第一协议状态模型为參数化扩展有限状态机PEFSM或者输入/输出符号转移系统I0LTS。其中,所述利用断言来表征所述第一协议状态模型和/或所述第二协议状态模型的测试目标,包括基于给定的测试目标来定义的断言;和/或,根据安全测试领域知识的预定义的断言;和/或, 从所述第一协议状态模型中反射出的断言。其中,所述利用文法约束是根据协议规范来定义的文法约束;和/或,从所述第一协议状态模型的合法输入报文中反射出的文法约束。其中,所述对所述第二协议状态模型执行行为变异操作,包括利用行为变异算子来对所述第二协议状态模型中的转移以及转移中的逻辑运算执行行为变异操作。其中,所述对所述第二协议状态模型中的转移执行行为变异操作,包括利用状态陷阱算子和/或输入改变算子对所述转移执行行为变异操作,所述状态陷阱算子用于将转移的后续状态改变为非法状态,所述输入改变算子用于将转移的输入报文改变为其他报文;其中,所述对所述第二协议状态模型中转移中的逻辑运算执行行为变异操作,包括利用表达式否定算子、表达式递增算子、表达式递減算子、保持为0算子、保持为I算子、操作数否定算子、操作数引用算子、范围探测算子和用例注入算子中的任一者或任意组合对所述逻辑运算执行行为变异操作,其中所述表达式否定算子用于对逻辑运算中的表达式值取反;所述表达式递增算子用于使逻辑运算中表达式的值增加n ;所述表达式递減算子用于使逻辑运算中表达式的值减少n ;保持为0算子用于使逻辑运算中表达式的取值变为O ;保持为I算子用于使逻辑运算中表达式的取值变为I ;操作数否定算子对表达式的各个操作数按位取反;操作数引用算子用于将操作数逐一与其后的另ー操作数交換,对于最后ー个操作数,则将其与第一个操作数交換;范围探测算子对表达式中每个操作数的值进行按位取反,并其将该赋值语句标记为“替换”标识;用例注入算子用于将逻辑运算中可变长度的字段的长度增加或減少n个字节,并将该赋值语句标记为“注入”标识;其中n为正整数。其中,将模型检测所产生的每ー个反例映射为ー个测试序列,所述反例对应所述变异的协议状态模型中一条由ー个或多个转移构成的转移路径,所述转移路径上存在ー个或多个输入报文及其对应的ー个或多个输出报文;则所述将所述反例映射为测试序列包括将所述反例映射为所述转移路径上存在的所述ー个或多个输入报文及其对应的ー个或多个输出报文,所得到的报文的序列即为所述测试序列,并且将与违反断言的变异转移所对应的任一报文以及所述报文中被模型检测出的字段标记出。其中,所述将与违反断言的变异转移所对应的任一报文以及所述报文中被模型检测到的字段标记出包括若模型检测能够识别出所述报文的某个字段的变异可以导致该反例,并且所述字段没有其它标记,则将所述字 段标记为“模糊测试”,否则,将整个报文标记为“模糊测试”标识;若模型检测识别出所述报文中的某个字段对应的逻辑运算被标记为“替换”标识,则将报文中的所述字段标记为“替换”标识 '及,若模型检测识别出所述报文中的某个字段对应的逻辑运算被标记为“注入”标识,则将报文中的所述字段标记为“注入”标识。其中,所述对所述测试序列执行文法变异操作中,对测本文档来自技高网
...

【技术保护点】
一种对协议实现进行安全测试的方法,该方法包括:将所述协议实现所基于的协议规范映射为第一协议状态模型;向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现中存在的安全故障相对应;利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目标;利用文法约束来表征所述第二协议状态模型和/或第一协议状态模型的合法输入报文的文法规则;对所述第二协议状态模型执行行为变异操作,生成变异的协议状态模型;根据所述断言对所述变异的协议状态模型执行模型检测,生成一个或多个违反所述断言的反例,将所述反例映射为测试序列;对所述测试序列执行文法变异操作,生成包含变异报文的变异测试序列,每个测试序列生成包含一个或多个变异报文的变异测试序列;根据所述文法约束对所述变异测试序列中的变异报文执行文法检测,得到所述变异报文中违反所述文法约束的有效变异报文,将包含所述有效变异报文的变异测试序列作为测试用例;及,利用所述测试用例对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述一个或多个测试用例对应的安全漏洞。

【技术特征摘要】
1.一种对协议实现进行安全测试的方法,该方法包括 将所述协议实现所基于的协议规范映射为第一协议状态模型; 向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现中存在的安全故障相对应; 利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目标; 利用文法约束来表征所述第二协议状态模型和/或第一协议状态模型的合法输入报文的文法规则; 对所述第二协议状态模型执行行为变异操作,生成变异的协议状态模型; 根据所述断言对所述变异的协议状态模型执行模型检测,生成一个或多个违反所述断言的反例,将所述反例映射为测试序列; 对所述测试序列执行文法变异操作,生成包含变异报文的变异测试序列,每个测试序列生成包含一个或多个变异报文的变异测试序列; 根据所述文法约束对所述变异测试序列中的变异报文执行文法检测,得到所述变异报文中违反所述文法约束的有效变异报文,将包含所述有效变异报文的变异测试序列作为测试用例;及, 利用所述测试用例对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述一个或多个测试用例对应的安全漏洞。2.根据权利要求1所述的方法,其中,所述第一协议状态模型为参数化扩展有限状态机PEFSM或者输入/输出符号转移系统IOLTS。3.根据权利要求1所述的方法,其中,所述利用断言来表征所述第一协议状态模型和/或所述第二协议状态模型的测试目标,包括 基于给定的测试目标来定义的断言;和/或, 根据安全测试领域知识的预定义的断言;和/或, 从所述第一协议状态模型中反射出的断言。4.根据权利要求1所述的方法,其中,所述利用文法约束是 根据协议规范来定义的文法约束;和/或, 从所述第一协议状态模型的合法输入报文中反射出的文法约束。5.根据权利要求1所述的方法,其中,所述对所述第二协议状态模型执行行为变异操作,包括利用行为变异算子来对所述第二协议状态模型中的转移以及转移中的逻辑运算执行行为变异操作。6.根据权利要求5所述的方法,其中,所述对所述第二协议状态模型中的转移执行行为变异操作,包括 利用状态陷阱算子和/或输入改变算子对所述转移执行行为变异操作,所述状态陷阱算子用于将转移的后续状态改变为非法状态,所述输入改变算子用于将转移的输入报文改变为其他报文;7.根据权利要求5所述的方法,其中,所述对所述第二协议状态模型中转移中的逻辑运算执行行为变异操作,包括 利用表达式否定算子、表达式递增算子、表达式递减算子、保持为O算子、保持为I算子、操作数否定算子、操作数引用算子、范围探测算子和用例注入算子中的任一者或任意组合对所述逻辑运算执行行为变异操作,其中 所述表达式否定算子用于对逻辑运算中的表达式值取反; 所述表达式递增算子用于使逻辑运算中表达式的值增加η ; 所述表达式递减算子用于使逻辑运算中表达式的值减少η ; 保持为O算子用于使逻辑运算中表达式的取值变为O ; 保持为I算子用于使逻辑运算中表达式的取值变为I ; 操作数否定算子对表达式的各个操作数按位取反; 操作数引用算子用于将操作数逐一与其后的另一操作数交换,对于最后一个操作数,则将其与第一个操作数交换; 范围探测算子对表达式中每个操作数的值进行按位取反,并其将该赋值语句标记为“替换”标识; 用例注入算子用于将逻辑运算中可变长度的字段的长度增加或减少η个字节,并将该赋值语句标记为“注入”标识; 其中η为正整数。8.根据权利要求1所述的方法,其中,将模型检测所产生的每一个反例映射为一个测试序列,所述反例对应所述变异的协议状态模型中一条由一个或多个转移构成的转移路径,所述转移路径上存在一个或多个输入报文及其对应的一个或多个输出报文; 所述将所述反例映射为测试序列,包括将所述反例映射为所述转移路径上存在的所述一个或多个输入报文及其对应的一个或多个输出报文,所得到的报文的序列即为所述测试序列,并且将与违反断言的变异转移所对应的任一报文以及所述报文中被模型检测出的字段标记出。9.根据权利要求8所述的方法,其中,所述将与违反断言的变异转移所对应的任一报文以及所述报文中被模型检测到的字段标记出包括 若模型检测能够识别出所述报文的某个字段的变异可以导致该反例,并且所述字段没有其它标记,则将所述字段标记为“模糊测试”,否则,将整个报文标记为“模糊测试”标识;若模型检测识别出所述报文中的某个字段对应的逻辑运算被标记为“替换”标识,则将报文中的所述字段标记为“替换”标识;及, 若模型检测识别出所述报文中的某个字段对应的逻辑运算被标记为“注入”标识,则将报文中的所述字段标记为“注入”标识。10.根据权利要求9所述的方法,其中,所述对所述测试序列执行文法变异操作中...

【专利技术属性】
技术研发人员:唐文
申请(专利权)人:西门子公司
类型:发明
国别省市:

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

1