[发明专利]基于状态融合的协议状态机自动推断方法有效
申请号: | 201310348136.7 | 申请日: | 2013-08-09 |
公开(公告)号: | CN103441990A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 洪征;吴礼发;郑成辉;潘璠;赖海光;李华波;周振吉 | 申请(专利权)人: | 中国人民解放军理工大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210007*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 状态 融合 协议 状态机 自动 推断 方法 | ||
1.一种基于状态融合的协议状态机自动推断方法,其特征在于,包括以下步骤:
(1)报文格式提取与报文分类:获取协议实体程序相关的输入、输出报文的具体格式信息,并依据报文格式分别对输入、输出报文分类,将结构相同的报文样本归为一类,以抽象符号表示分类的类别信息;
(2)会话抽象与初始状态机构建:基于抽象符号表示的分类类别,以会话为单位,对网络通信行为进行抽象,将会话过程中的输入输出报文序列描述为抽象的输入输出符号串,进而依据会话样本集,构建与输入输出符号串集合一致的初始状态机;
(3)基于输出报文的状态融合:依据相似度高低对候选状态进行融合,并生成测试符号串,再通过自动化的测试,比较协议实体与融合后的状态机在接收到测试符号串后做出的输出响应,验证状态融合的可行性;
(4)重复上述步骤(3)直到状态机中不再有符合融合条件的状态;
前述会话抽象与初始状态机构建阶段的工作流程如下:状态机的推断以会话样本集为基础构建,将会话中输入、输出报文以其所在类别对应的抽象符号表示,从而把完整会话的输入输出报文序列转化为抽象的输入输出符号串;在此基础上,依据会话样本集,采用增强前缀树转换器EPTT的形式构造初始状态机,初始状态机中包含了所有作为会话样本的输入输出符号串;
前述基于输出报文的状态融合阶段的工作流程如下:在初始状态机的基础上,依据相似度的高低每次对两个相似状态进行状态融合,相似状态的选择以Blue Fringe算法为基础,选择相似度最高的两个状态作为待融合的候选状态;候选状态的融合是否可行,将依据生成的测试字符串进行判定,判断两个候选状态是否能够融合,其中:测试字符串基于原始状态机中到达两个候选状态的字符串前缀和字符串后缀构建,通过交叉拼接的方式,将到达某一个候选状态的所有字符串前缀与另外一个候选状态的所有字符串后缀依次拼接,生成的字符串组成测试字符串集合,如果判定所有输出字符串均与融合后的协议状态机一致,则认为状态融合是可行的,否则判断状态融合不可行;将测试结果作为新样本加入会话样本集并扩展协议状态机,并继续尝试对其他状态进行融合。
2.根据权利要求1所述的方法,其特征在于,前述方法中,在协议状态机中选择待融合的候选状态时,以Blue Fringe算法为基础,相似度的计算依据协议状态的公共输入字符串后缀,公共输入字符串后缀反映协议实体在处于两个不同协议状态时,接收到相同输入报文时的状态转换和输出响应情况,其中:输入字符串后缀是指协议实体从某一协议状态开始,接收到一系列的输入报文,这些输入报文在状态机中被表示为输入字符串后缀;公共输入字符串后缀是指两个不同状态接收到相同的一系列输入报文;相似度的计算将考虑协议状态的公共输入字符串后缀的长短,以及对于接收到相同输入时协议实体是否产生相同的输出结果,如果两个协议状态,它们公共输入字符串后缀的长度最长,且对于相同输入有相同的输出,这样的两个协议状态将优先尝试融合。
3.根据权利要求1所述的方法,其特征在于,前述方法中,利用测试字符串集合进行状态融合与可行性判定的过程,包括以下步骤:首先依据测试字符串和已知的报文协议格式,生成作为测试用例的输入报文序列;将输入报文序列发向协议实体程序,获取作为响应的输出报文序列;对输出报文序列进行抽象,将其表示为输出字符串序列;针对候选状态融合后的协议状态机,判断输出字符串序列中的输出字符是否都存在于协议状态机对应状态的输出符号集中:如果所有输出字符串均与融合后的协议状态机一致,则认为状态融合是可行的,否则判断状态融合不可行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军理工大学,未经中国人民解放军理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310348136.7/1.html,转载请声明来源钻瓜专利网。