一种基于迭代优化的工控协议格式分析方法与流程

文档序号:18630195发布日期:2019-09-06 23:31阅读:395来源:国知局
一种基于迭代优化的工控协议格式分析方法与流程

本发明涉及协议格式分析技术领域,具体涉及一种基于迭代优化的工控协议格式分析方法。



背景技术:

工业控制系统(industrialcontrolsystem,ics),简称工控系统,是由计算机设备与工业过程控制部件组成的自动控制系统,广泛应用于电力、水处理、石油与天然气、化工、交通运输、制造业等行业。随着计算机和网络技术的飞速发展,工控系统的网络化和信息化,在极大地推动了工业生产效率的同时,也使工控系统接口越来越开放,带来了不少安全隐患。为了杜绝这些隐患的发生,其中重要的一个环节是对工控系统所采用的协议进行逆向分析,然后结合模糊测试等方法对其进行检测,判断工控协议本身是否存在安全漏洞。

对工控协议的分析方法大致可以分为基于网络流量的分析方法分析和基于指令执行序列的分析方法,由于基于指令执行序列的分析方法需要对协议实现代码进行深度分析,这种方法在执行过程中条件较为苛刻,而且对每种协议的实现都需要从头开始分析,而采用对网络流量进行分析的方法在通用性方面则更强,可以采用统一的方法来推断协议格式。

采用网络流量分析方法对工控协议进行逆向时,可以采用人工和自动化的方式来进行,但是人工分析方式存在的主要问题是工作量比较大,需要具备专业知识的人花费较长的时间来推断协议的格式和各字段语义,而采用自动化的方式存在的问题是自动化逆向分析工具往往难以完全准确地分析出协议的格式和字段语义,很多时候必须依靠人工分析的方法来对结果进行改进。因此,亟需设计一种新的技术方案,以综合解决现有技术存在的问题。



技术实现要素:

本发明的目的是提供一种基于迭代优化的工控协议格式分析方法,其能有效解决基于指令执行序列分析方法条件苛刻、对每种协议的实现都需要从头分析,而基于网络流量人工分析方法工作量大、耗时长以及基于网络流量自动化方式需要依靠人工分析的问题。

为解决上述技术问题,本发明采用了以下技术方案:

一种基于迭代优化的工控协议格式分析方法,包括以下步骤:

步骤s1.将pcap文件中的报文数据导入,并将报文数据全部加载到报文数据集packetset中,然后转入步骤s2;

步骤s2.用户根据先验知识或者对之前分析报文数据集packetset得到的结果自定义工控协议的格式以及各个字段的语义,随后再设置相似度分值,然后转入步骤s3;

步骤s3.将报文数据集packetset中的报文数据与用户自定义的协议格式逐个进行匹配,若匹配成功,则将该报文数据从报文数据集packetset中删除,直至所有报文数据都匹配完成,然后转入步骤s4;

步骤s4.采用needleman-wunsch序列比对算法对报文数据集packetset中的报文数据进行逆向分析,得到新的协议分析结果,之后用户判断是否结束此次协议逆向分析,若需要继续进行迭代分析,则将原来pcap文件中的所有报文数据重新加载到报文数据集packetset中,然后再转步骤s2,否则结束分析。

其中,步骤s2的相似度分值不同于之前分析时所设置的相似度分值。

上述技术方案中提供的基于迭代优化的工控协议格式分析方法,能实现准确的协议格式和语法推断,通过引入用户先验知识以及前期逆向分析得到的结果,自定义协议格式和字段语义,并不断迭代优化分析结果,从而能更为准确地推断出协议的格式和语法,本发明在对协议进行逆向分析时采用了needleman-wunsch序列比对算法,该算法通过相似度计分、最优回溯等步骤推断协议的格式和语法,有效保证了分析结果的准确性,同时由于用户定义的协议格式可以减少参与序列比对的报文数量,能显著加快工控协议逆向的速度。

附图说明

图1为本发明基于迭代优化的工控协议格式分析方法的流程示意图。

具体实施方式

为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行具体说明。应当理解,以下文字仅仅用以描述本发明的一种或几种具体的实施方式,并不对本发明具体请求的保护范围进行严格限定。

本实施例所需的运行环境为一台intel-windows架构的pc机以及格式为pcap类型的样本数据集,该样本数据集可采用wireshark等工具通过抓包的方式获得,且样本数据集中的报文都与待分析的工控协议有关。

运行本发明提供的基于迭代优化的工控协议格式分析方法的pc机系统配置如下:在intel-windows架构的pc机上安装并运行基于本发明的软件(本实施例中软件的名称为netpra),该pc机硬件的主频2.5ghz及以上的core八核cpu的pc机,内存≥4gb,硬盘500gb,运行windows7操作系统。

如图1所示,开始于步骤s101,程序读取pcap文件并将文件中所有的报文数据加载到报文数据集packetset中,然后转步骤s102;

在步骤s102中,用户根据先验知识或者之前得到的分析结果定义协议的报文格式以及各字段的语义然后转步骤s103;

在步骤s103中,设置needleman-wunsch序列比对算法执行所需的相似度分值,该相似度分值的设置应与之前分析时所设置的相似度分值不同,然后转步骤s104;

在步骤s104中,将报文数据集packetset中的报文数据与用户定义的协议格式逐个进行匹配,然后转步骤s105;

在步骤s105中,判断报文数据是否与用户定义的格式匹配成功,如果成功转步骤s106,否则转步骤s107;

在步骤s106中,将匹配成功的报文数据从报文数据集packetset中删除,然后转步骤s107;

在步骤s107中,判断报文数据集packetset中的所有报文数据是否都已经匹配完毕,如果没有转步骤s104,否则转步骤s108;

在步骤s108中,采用needleman-wunsch序列比对算法对报文数据集packetset中的报文数据进行协议逆向分析,并得到相应的分析结果,然后转步骤s109;

在步骤s109中,根据分析结果来判断此次逆向分析是否结束,如果不结束则转步骤s110,否则转步骤s111;

在步骤s110中,将pcap文件中的所有报文数据重新加载到报文数据集packetset中,然后转回步骤s102;

在步骤s111中,保存所有分析结果,并结束此次分析。

附注:1.“先验知识”主要取决于用户的认知能力,用户通过人工方式先分析一遍,发现其中存在的某些协议格式,或者由于采用了迭代分析,通过前一次的多序列比对结果,推断出了其中的某些协议格式。

2.对于“之前分析时所设置的分值”的解释,由于本发明采用的是迭代优化方法,因此用户之前已经进行过若干轮的分析,每轮分析都需要进行相似度分值的设置。

综上所述,本发明提供的基于迭代优化的工控协议格式分析方法,能实现准确的协议格式和语法推断,通过引入用户先验知识以及前期逆向分析得到的结果,自定义协议格式和字段语义,并不断迭代优化分析结果,从而能更为准确地推断出协议的格式和语法,本发明在对协议进行逆向分析时采用了needleman-wunsch序列比对算法,该算法通过相似度计分、最优回溯等步骤推断协议的格式和语法,在一方面保证了分析结果的准确性,同时由于用户定义的协议格式可以减少参与序列比对的报文数量,也在另一方面加快了工控协议逆向的速度。

上面结合实施例对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,对于本技术领域的普通技术人员来说,在获知本发明中记载内容后,在不脱离本发明原理的前提下,还可以对其作出若干同等变换和替代,这些同等变换和替代也应视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1