[发明专利]一种对协议实现进行安全测试的方法及装置有效
申请号: | 201110293769.3 | 申请日: | 2011-09-29 |
公开(公告)号: | CN103036730A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 唐文 | 申请(专利权)人: | 西门子公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 李慧 |
地址: | 德国*** | 国省代码: | 德国;DE |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 协议 实现 进行 安全 测试 方法 装置 | ||
1.一种对协议实现进行安全测试的方法,该方法包括:
将所述协议实现所基于的协议规范映射为第一协议状态模型;
向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现中存在的安全故障相对应;
利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目标;
利用文法约束来表征所述第二协议状态模型和/或第一协议状态模型的合法输入报文的文法规则;
对所述第二协议状态模型执行行为变异操作,生成变异的协议状态模型;
根据所述断言对所述变异的协议状态模型执行模型检测,生成一个或多个违反所述断言的反例,将所述反例映射为测试序列;
对所述测试序列执行文法变异操作,生成包含变异报文的变异测试序列,每个测试序列生成包含一个或多个变异报文的变异测试序列;
根据所述文法约束对所述变异测试序列中的变异报文执行文法检测,得到所述变异报文中违反所述文法约束的有效变异报文,将包含所述有效变异报文的变异测试序列作为测试用例;及,
利用所述测试用例对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述一个或多个测试用例对应的安全漏洞。
2.根据权利要求1所述的方法,其中,所述第一协议状态模型为参数化扩展有限状态机PEFSM或者输入/输出符号转移系统IOLTS。
3.根据权利要求1所述的方法,其中,所述利用断言来表征所述第一协议状态模型和/或所述第二协议状态模型的测试目标,包括:
基于给定的测试目标来定义的断言;和/或,
根据安全测试领域知识的预定义的断言;和/或,
从所述第一协议状态模型中反射出的断言。
4.根据权利要求1所述的方法,其中,所述利用文法约束是:
根据协议规范来定义的文法约束;和/或,
从所述第一协议状态模型的合法输入报文中反射出的文法约束。
5.根据权利要求1所述的方法,其中,所述对所述第二协议状态模型执行行为变异操作,包括:利用行为变异算子来对所述第二协议状态模型中的转移以及转移中的逻辑运算执行行为变异操作。
6.根据权利要求5所述的方法,其中,所述对所述第二协议状态模型中的转移执行行为变异操作,包括:
利用状态陷阱算子和/或输入改变算子对所述转移执行行为变异操作,所述状态陷阱算子用于将转移的后续状态改变为非法状态,所述输入改变算子用于将转移的输入报文改变为其他报文;
7.根据权利要求5所述的方法,其中,所述对所述第二协议状态模型中转移中的逻辑运算执行行为变异操作,包括:
利用表达式否定算子、表达式递增算子、表达式递减算子、保持为0算子、保持为1算子、操作数否定算子、操作数引用算子、范围探测算子和用例注入算子中的任一者或任意组合对所述逻辑运算执行行为变异操作,其中:
所述表达式否定算子用于对逻辑运算中的表达式值取反;
所述表达式递增算子用于使逻辑运算中表达式的值增加n;
所述表达式递减算子用于使逻辑运算中表达式的值减少n;
保持为0算子用于使逻辑运算中表达式的取值变为0;
保持为1算子用于使逻辑运算中表达式的取值变为1;
操作数否定算子对表达式的各个操作数按位取反;
操作数引用算子用于将操作数逐一与其后的另一操作数交换,对于最后一个操作数,则将其与第一个操作数交换;
范围探测算子对表达式中每个操作数的值进行按位取反,并其将该赋值语句标记为“替换”标识;
用例注入算子用于将逻辑运算中可变长度的字段的长度增加或减少n个字节,并将该赋值语句标记为“注入”标识;
其中n为正整数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子公司,未经西门子公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110293769.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:塑料提手进料分量传送装置
- 下一篇:一种组合式自行车双向可调健康鞍座