一种基于增量学习的快速工控协议格式逆向推断方法技术

技术编号:19067722 阅读:214 留言:0更新日期:2018-09-29 14:50
本发明专利技术公开了一种基于增量学习的快速工控协议格式逆向推断方法,能快速推断协议的格式和语法,通过增量式的序列比对方法极大地减少协议逆向分析过程中的计算复杂度,从而能在较短时间内推断出协议的格式和语法,并能保持较高的分析准确度,IPRI方法在对协议进行逆向分析时采用了目前国际上较为认可和流行的Needleman‑Wunsch序列比对算法,该算法通过相似度计分、最优回溯等步骤能较为准确地推断协议的格式和语法,保证了分析结果的准确性。

【技术实现步骤摘要】
一种基于增量学习的快速工控协议格式逆向推断方法
本专利技术涉及协议格式逆向推断方法
,尤其涉及一种基于增量学习的快速工控协议格式逆向推断方法。
技术介绍
工业控制系统(IndustrialControlSystem,ICS),简称工控系统,是由计算机设备与工业过程控制部件组成的自动控制系统,广泛应用于电力、水处理、石油与天然气、化工、交通运输、制造业等行业,是国家关键基础设施运行的“大脑”和“中枢”。随着计算机和网络技术的飞速发展,工控系统的网络化和信息化,在极大地推动了工业生产效率的同时,也使工控系统接口越来越开放,带来了不少安全隐患。为了挖掘工控协议中潜在的漏洞,一种有效的方法是对工控协议进行模糊测试。模糊测试又称Fuzzing测试,它使用大量半有效的数据作为目标程序的输入,通过监控程序出现的异常来发现潜在的漏洞。工控协议模糊测试主要分为三个部分,分别为协议逆向分析、测试用例生成和异常监测,其中协议逆向分析是后续测试用例生成的前提和依据。协议自动逆向技术的实现可以显著减少人工分析的工作量,提高对私有协议的分析效率,并使对网络安全事件的快速自动响应成为可能。在协议逆向工程领域,国内外已进行了较为深入的研究。根据分析对象的不同,现有的协议逆向技术大致分为基于网络流量(NetworkTrace)的分析方法分析和基于指令执行序列(ExecutionTrace)的分析方法。基于网络流量的分析方法以嗅探得到的网络数据流为分析对象,其可行性在于以下两点:(1)单个报文样本的数据流为报文格式的一个实例,同一报文格式对应的多个报文样本具有相似性;(2)会话是协议实体之间的完整交互过程,协议实体在一次会话中的状态转换序列是协议状态机的一个子集。同一会话内报文的时序关系,包含了部分协议状态转换的信息。目前对基于网络流量的协议逆向方法的主要采用序列比对算法来实现,其具体流程主要包括以下几步:首先,通过Needleman-Wunsch等序列比对算法计算报文字节序列之间的相对距离,获得距离矩阵;其次,采用非加权成对群算术平均(UPGMA,unweightedpairgroupmethodwitharithmeticmean)等方法,根据序列顺序构建系统树;最后,采用渐进比对算法遍历系统树实现多序列比对。由于实际应用中的网络报文具有序列长、数量多的特点,而且分析的时间复杂度往往与报文数量及报文长度成指数关系,因此实现多序列精确匹配需要耗费大量时间和计算资源,在报文数量较多时难以在较短时间内。为此,通过增量式的学习方法来降低分析样本的数量,加快分析速度,同时保证分析的准确性具有非常重要的作用。
技术实现思路
本专利技术的目的就在于为了解决上述问题而提供一种基于增量学习的快速工控协议格式逆向推断方法。本专利技术通过以下技术方案来实现上述目的:本专利技术包括以下步骤:步骤S1,判断要进行协议逆向分析的样本数据集的大小,如果样本数据集中的报文数目超过了1000个,那么首先构建三个集合,分别为HandledPackets、HandlingPackets和UnhandledPackets,其中HandledPackets集合存储的是已经通过序列比对算法处理好的报文,HandlingPackets集合存储的是正在进行序列比对处理的报文,UnhandledPackets集合存储的是尚未处理好的报文,在初始状态下,所有样本数据集的报文都置于UnhandledPackets集合中,并按照时间戳的先后顺序对报文按序排列,而HandledPackets和HandlingPackets集合初始为空,然后转入步骤S2;步骤S2,提取UnhandledPackets集合的前1000个报文,将它们从UnhandledPackets集合移动到HandlingPackets集合中,采用Needleman-Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,然后转入步骤S3;步骤S3,在UnhandledPackets集合非空的条件下,如果某个消息类型中所属的报文数目只有一个,则该消息类型创建失败,删除该消息类型,并将该报文保留在HandlingPackets集合中,对于其他消息类型的报文,将它们全部从HandlingPackets集合移动到HandledPackets集合,然后转入步骤S4,否则如果UnhandledPackets集合为空,则终止程序的运行;步骤S4,从UnhandledPackets集合中按序逐个选择报文,并将每个报文与生成的消息类型进行匹配,如果匹配成功,将该报文添加到该消息类型中,并将该报文从UnhandledPackets集合移动到HandledPackets集合,而如果匹配不成功,则将该报文移动到HandlingPackets集合中,直至HandlingPackets集合的报文数目达到1000个或UnhandledPackets集合中不再有报文,然后转入步骤S5;步骤S5,采用Needleman-Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,然后返回步骤S3。本专利技术的有益效果在于:本专利技术提供一种基于增量学习的快速工控协议格式逆向推断方法,实能快速推断协议的格式和语法,通过增量式的序列比对方法极大地减少协议逆向分析过程中的计算复杂度,从而能在较短时间内推断出协议的格式和语法,能保持较高的分析准确度,IPRI方法在对协议进行逆向分析时采用了目前国际上较为认可和流行的Needleman-Wunsch序列比对算法,该算法通过相似度计分、最优回溯等步骤能较为准确地推断协议的格式和语法,保证了分析结果的准确性。附图说明图1是本专利技术所述一种基于增量学习的快速工控协议格式逆向推断方法的流程示意图。具体实施方式下面结合附图对本专利技术作进一步说明:如图1所示:本专利技术包括以下步骤:步骤S1,判断要进行协议逆向分析的样本数据集的大小,如果样本数据集中的报文数目超过了1000个,那么首先构建三个集合,分别为HandledPackets、HandlingPackets和UnhandledPackets,其中HandledPackets集合存储的是已经通过序列比对算法处理好的报文,HandlingPackets集合存储的是正在进行序列比对处理的报文,UnhandledPackets集合存储的是尚未处理好的报文,在初始状态下,所有样本数据集的报文都置于UnhandledPackets集合中,并按照时间戳的先后顺序对报文按序排列,而HandledPackets和HandlingPackets集合初始为空,然后转入步骤S2;步骤S2,提取UnhandledPackets集合的前1000个报文,将它们从UnhandledPackets集合移动到HandlingPackets集合中,采用Needleman-Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,然后转入步骤S3;步骤S3,在UnhandledPackets集合非空的条件下,如果某个消息类型中所属的报文数目只有一个,则该消息类型创建失败,删除该消息类型,并将该报文本文档来自技高网
...

【技术保护点】
1.一种基于增量学习的快速工控协议格式逆向推断方法,其特征在于,包括以下步骤:步骤S1,判断要进行协议逆向分析的样本数据集的大小,如果样本数据集中的报文数目超过了1000个,那么首先构建三个集合,分别为HandledPackets、HandlingPackets和UnhandledPackets,其中HandledPackets集合存储的是已经通过序列比对算法处理好的报文,HandlingPackets集合存储的是正在进行序列比对处理的报文,UnhandledPackets集合存储的是尚未处理好的报文,在初始状态下,所有样本数据集的报文都置于UnhandledPackets集合中,并按照时间戳的先后顺序对报文按序排列,而HandledPackets和HandlingPackets集合初始为空,然后转入步骤S2;步骤S2,提取UnhandledPackets集合的前1000个报文,将它们从UnhandledPackets集合移动到HandlingPackets集合中,采用Needleman‑Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,然后转入步骤S3;步骤S3,在UnhandledPackets集合非空的条件下,如果某个消息类型中所属的报文数目只有一个,则该消息类型创建失败,删除该消息类型,并将该报文保留在HandlingPackets集合中,对于其他消息类型的报文,将它们全部从HandlingPackets集合移动到HandledPackets集合,然后转入步骤S4,否则如果UnhandledPackets集合为空,则终止程序的运行;步骤S4,从UnhandledPackets集合中按序逐个选择报文,并将每个报文与生成的消息类型进行匹配,如果匹配成功,将该报文添加到该消息类型中,并将该报文从UnhandledPackets集合移动到HandledPackets集合,而如果匹配不成功,则将该报文移动到HandlingPackets集合中,直至HandlingPackets集合的报文数目达到1000个或UnhandledPackets集合中不再有报文,然后转入步骤S5;步骤S5,采用Needleman‑Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,然后返回步骤S3。...

【技术特征摘要】
1.一种基于增量学习的快速工控协议格式逆向推断方法,其特征在于,包括以下步骤:步骤S1,判断要进行协议逆向分析的样本数据集的大小,如果样本数据集中的报文数目超过了1000个,那么首先构建三个集合,分别为HandledPackets、HandlingPackets和UnhandledPackets,其中HandledPackets集合存储的是已经通过序列比对算法处理好的报文,HandlingPackets集合存储的是正在进行序列比对处理的报文,UnhandledPackets集合存储的是尚未处理好的报文,在初始状态下,所有样本数据集的报文都置于UnhandledPackets集合中,并按照时间戳的先后顺序对报文按序排列,而HandledPackets和HandlingPackets集合初始为空,然后转入步骤S2;步骤S2,提取UnhandledPackets集合的前1000个报文,将它们从UnhandledPackets集合移动到HandlingPackets集合中,采用Needleman-Wunsch序列比对算法对HandlingPackets中的报文进行分析,并得到多个分析后的消息类型,...

【专利技术属性】
技术研发人员:张晓明何跃鹰刘中金方喆君孙中豪张嘉玮李建强王占丰胡超田益凡罗冰
申请(专利权)人:国家计算机网络与信息安全管理中心南京莱克贝尔信息技术有限公司
类型:发明
国别省市:北京,11

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

1