一种工业私有协议的自动化逆向分析方法及系统技术方案

技术编号:37368597 阅读:8 留言:0更新日期:2023-04-27 07:14
本发明专利技术涉及一种工业私有协议的自动化逆向分析方法及系统。属于工业控制系统领域。该方法包括:在工业私有协议处理阶段,对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段;在工业私有协议消息分析阶段,根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点;在工业私有协议消息分析阶段,根据所述分割点的位置将所述过滤后的报文分割为多个报文字段,并提取出各个所述报文字段的取值范围,完成工业私有协议的自动化逆向分析过程。本发明专利技术能够提高工业私有协议的自动化逆向分析的效率和性能。分析的效率和性能。分析的效率和性能。

【技术实现步骤摘要】
一种工业私有协议的自动化逆向分析方法及系统


[0001]本专利技术涉及工业控制系统领域,特别是涉及一种工业私有协议的自动化逆向分析方法及系统。

技术介绍

[0002]日益频发的工业互联网安全事件表明工业控制系统ICS已经存在大量安全漏洞和隐患,如2017年乌克兰、俄罗斯等多国的银行、电力、通信系统均遭受Petya勒索病毒袭击,2019年委内瑞拉遭受电网攻击,2021年伊朗国家铁路系统遭受网络入侵等。工业控制系统中的物联网设备采用工业私有协议进行通信,实现系统内各个组件间的相互配合。然而基于商业性或者其他因素的原因,大多数工业私有协议都不公开协议的具体内容,包括协议的消息格式、各个字段的长度和取值范围集合以及相对应的语义关系等等,因此为安全分析人员在对工业控制系统进行安全性分析的时候造成了极大的麻烦。
[0003]协议逆向工程(protocol reverse engineering,PRE)仅通过对捕获到的通信实体双方的通信流量进行分析,提取协议消息格式等相关内容,从而推断出未知协议的消息格式和状态机模型的过程。在相关领域,已经有许多研究对协议逆向的方法进行探索和改进,目的是提高逆向结果的准确性,近年来协议逆向技术被用于各个相关的安全领域,包括模糊测试、网络入侵检测、入侵防御等多个方面,都使用了协议逆向来获取未知协议的先验知识,以提高分析工作效率。
[0004]由于工业私有协议在使用中受到工业物联网设备处理能力和内存的限制,为了减少工控设备在通信时候的开销,工业私有协议大都采用二进制协议进行通信。因此,需要一种能针对工业私有协议的自动化逆向分析方法,来提高工业私有协议的自动化逆向分析的效率和性能。
[0005]最早的协议逆向技术的是Protocol Informatics项目(简称PI)。PI项目借鉴了一种从DNA序列寻找特定基因的算法,类比到协议逆向领域即从捕获流量报文数据中寻找特定类型的消息。PI项目为后来的许多工作提供了指导,后来的研究者对方法进行了改进,例如Leita等人的协议状态机自动提取工具ScriptGen就是以PI项目为指导,该工具完成部分语义的提取,但是在推断状态机之前并未对消息序列进行聚类,性能上与今天的工具有很大的差距。另一个重要且经典的工具是Cui等人提出的Discoverer,其对不同类型的待分析报文能够选择合适的方法,提高了分析性能。在此之后,随着人工智能技术的兴起,机器学习、自然语言处理领域的算法被应用于协议逆向领域中,协议逆向工程在短时间内得到迅速发展,研究对象从普通的文本协议扩展到二进制协议,方法类型也不断丰富,并且准确率和可靠性等方面得到大幅度提升,比如NetZob等使用了基于序列比对算法将报文各个字段对齐,进而聚类并提取关键词,AutoReEngine基于频繁集和先验算法提出了一种无监督学习方法来提取消息格式和协议状态机,ReFSM提出了一种由数据流和控制流信息组成的扩展有限状态机(EFSM)行为模型。
[0006]现有的协议逆向方法大都是针对文本协议设计的,即使是可以同时面向文本协议
和二进制协议,在面向二进制协议进行自动协议逆向的时候其召回率、准确率也不如面向文本协议。这是因为这些方法对文本协议进行逆向时,使用ASCII编码的关键字构建其消息的协议上工作效果很出色,分隔符明确分隔了关键字和数据字段。二进制协议可以更密集地打包数据,并且不通过分隔符分隔字段或通过显式关键字标记字段,使得这些特征无法显示出来;然而,这些消息的显示对自然语言处理是十分必要的。这些方法在本质上并不适用于分析二进制协议。因此,需要一种能针对工业私有协议的自动化逆向分析方法,来提高工业私有协议的自动化逆向分析的效率和性能。

技术实现思路

[0007]本专利技术的目的是提供一种工业私有协议的自动化逆向分析方法及系统,以提高工业私有协议的自动化逆向分析的效率和性能。
[0008]为实现上述目的,本专利技术提供了如下方案:
[0009]一种工业私有协议的自动化逆向分析方法,包括:
[0010]在工业私有协议处理阶段,对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段;
[0011]在工业私有协议消息分析阶段,根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点;
[0012]在工业私有协议消息分析阶段,根据所述分割点的位置将所述过滤后的报文分割为多个报文字段,并提取出各个所述报文字段的取值范围,完成工业私有协议的自动化逆向分析过程。
[0013]可选的,所述对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段,具体包括:
[0014]过滤所述工业私有协议的报文中的残缺报文、重复报文以及不属于待分析会话流量中的报文,生成过滤后的报文;
[0015]根据底层通讯协议层的特征截去所述过滤后的报文的底层字段,提取出所述工业私有协议的应用层数据段。
[0016]可选的,所述根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点,具体包括:
[0017]对所述应用层数据段中每两个连续字节应用位同余,将高斯滤波器的平滑半径作为所述连续字节的位值同余增量值的卷积内核,确定各个所述应用层数据段之间的相似性特征;
[0018]获取所述相似性特征的拐点;所述拐点的位置为所述过滤后的报文中的分割点。
[0019]可选的,所述位同余为:
[0020][0021]其中,为字节b与字节的位同余;为具有相同值的位数。
[0022]可选的,所述位值同余增量值为:
[0023]ΔBC=(BC(m
k
,m
k+1
)

BC(m
k
‑1,m
k
))
0<k<n
[0024]其中,ΔBC为位值同余增量值;BC(m
k
,m
k+1
)为字节m
k
与字节m
k+1
的位同余;BC(m
k
‑1,m
k
)为字节m
k
‑1与字节m
k
的位同余;k为字节位置,n为字节总数。
[0025]可选的,所述根据所述分割点的位置将所述过滤后的报文分割为多个报文字段,并提取出各个所述报文字段的取值范围,完成工业私有协议的自动化逆向分析过程,之后还包括:
[0026]对所述报文字段进行优化,生成优化后的报文字段。
[0027]一种工业私有协议的自动化逆向分析系统,包括:
[0028]应用层数据段提取模块,用于在工业私有协议处理阶段,对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段;
[0029]分割点确定模块,用于在工业私有协议消息分析阶段,根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点;
[0030]报文字本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工业私有协议的自动化逆向分析方法,其特征在于,包括:在工业私有协议处理阶段,对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段;在工业私有协议消息分析阶段,根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点;在工业私有协议消息分析阶段,根据所述分割点的位置将所述过滤后的报文分割为多个报文字段,并提取出各个所述报文字段的取值范围,完成工业私有协议的自动化逆向分析过程。2.根据权利要求1所述的工业私有协议的自动化逆向分析方法,其特征在于,所述对待分析会话流量中的工业私有协议的报文进行过滤,并提取所述工业私有协议的应用层数据段,具体包括:过滤所述工业私有协议的报文中的残缺报文、重复报文以及不属于待分析会话流量中的报文,生成过滤后的报文;根据底层通讯协议层的特征截去所述过滤后的报文的底层字段,提取出所述工业私有协议的应用层数据段。3.根据权利要求1所述的工业私有协议的自动化逆向分析方法,其特征在于,所述根据各个所述应用层数据段之间的相似性特征,确定过滤后的报文中的分割点,具体包括:对所述应用层数据段中每两个连续字节应用位同余,将高斯滤波器的平滑半径作为所述连续字节的位值同余增量值的卷积内核,确定各个所述应用层数据段之间的相似性特征;获取所述相似性特征的拐点;所述拐点的位置为所述过滤后的报文中的分割点。4.根据权利要求3所述的工业私有协议的自动化逆向分析方法,其特征在于,所述位同余为:其中,为字节b与字节的位同余;为具有相同值的位数。5.根据权利要求3所述的工业私有协议的自动化逆向分析方法,其特征在于,所述位值同余增量值为:ΔBC=(BC(m
k
,m
k+1
)

BC(m
k
‑1m
k
...

【专利技术属性】
技术研发人员:郝志强王冲华周昊曲海阔李俊李红飞余果林晨张雪莹孔同韦彦刘东东
申请(专利权)人:国家工业信息安全发展研究中心
类型:发明
国别省市:

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

1