System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种工控防火墙白名单规则自学习的饱和测试方法及系统技术方案_技高网

一种工控防火墙白名单规则自学习的饱和测试方法及系统技术方案

技术编号:40814359 阅读:5 留言:0更新日期:2024-03-28 19:34
本申请提供一种工控防火墙白名单规则自学习的饱和测试方法及系统,饱和测试方法包括获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段;自定义工控报文新工控协议的IP层协议类型、传输层协议类型、目标端口号和自定义编辑数据,得到目标工控报文;IP层协议类型包括IPV4和IPV6,传输层协议类型包括TCP和UDP;将目标工控报文发送给工控防火墙,在工控防火墙中对目标工控报文进行工控协议白名单规则自学习,得到工控协议白名单规则自学习结果。本申请通过上述方法及系统高效且灵活的对工控协议指定覆盖范围进行了最大化模拟,模拟出现场抓取不到的合法工控报文,并以此完善工控防火墙白名单规则自学习的测试。

【技术实现步骤摘要】

本专利技术涉及工业控制系统安全,特别涉及一种工控防火墙白名单规则自学习的饱和测试方法及系统


技术介绍

1、白名单技术已经成为工控安全防护的基础性技术,基于工业控制网络,只要工艺流程、业务数据固定下来,白名单就基本稳定。在实际工业生产控制网络中,工控防火墙首先进行白名单规则自学习操作,然后基于工控协议层面的白名单规则对系统环境中的流量进行白名单检查,如流量匹配工控白名单规则,则放行合法报文,如流量不匹配工控白名单规则,则阻断非法协议报文。

2、工业协议基本上都是明文的协议,并且传输的数据包具有顺序性。由于最开始时期工业环境是专用软件硬件和专用的协议,而且处于隔离的网络环境,设备计算性能低下,因此工业协议设计都从未考虑加密的特性,基本上都是明文的传输。明文传输这个特性非常重要。明文传输意味着我们可以知道数据包里面的内容,然后对数据包里面的内容进行修改。对工控报文中相关内容进行批量修改,然后发送给工控防火墙,来达到测试目的。

3、在工控防火墙研发领域,针对一个新的工控协议的支持时,需要学习到该工控协议的完备指令集,即需要从工业生产控制网络中抓取足够多、足够全的报文来进行覆盖测试,因此,要尽可能覆盖所有的工控报文指令集。但是实际的工业生产控制领域,报文获取非常不全备,需要到工控网络现场进行抓取收集,即使是现场不停的抓取,获得的工控报文也不全备,无法覆盖所有的测试场景。有一些指令和操作并不是经常进行,比如有些操作一周才进行一次,或者特殊的操作才会有,导致不容易抓取到完备的该工控协议的工控报文,并且还有一些指令是为以后扩容升级准备的,以致目前实际网络中无法抓取到真实的报文;再则,目前工控网络是ipv4网络,未来可能会升级到ipv6网络,目前实际工业控制生产网络抓取不到ipv6的工控报文。但是在研发和测试阶段,则需要对该工控协议支持的所有的指令集进行验证和测试,也需要为未来升级到ipv6网络做准备。


技术实现思路

1、本申请提供一种工控防火墙白名单规则自学习的饱和测试方法及系统,以解决现有技术中无法获取到足量报文来进行白名单规则自学习测试的问题。

2、第一方面,本申请提供一种工控防火墙白名单规则自学习的饱和测试方法,所述饱和测试方法包括:

3、获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段,所述目标数据字段的格式为十六进制格式;

4、将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中,并根据实际组网情况和所述工控报文的工控协议标准文档自定义所述工控报文新工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据,得到目标工控报文;所述实际组网情况为实际工况环境的网络组建情况,所述ip层协议类型包括ipv4和ipv6,所述传输层协议类型包括tcp和udp;

5、将所述目标工控报文发送给工控防火墙,在所述工控防火墙中对所述目标工控报文进行工控协议白名单规则自学习,得到工控协议白名单规则自学习结果。

6、优选的,所述获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段的步骤包括:

7、获取在实际工况环境中工控协议为pcap格式工控报文;

8、利用wireshark提取所述工控报文中的初始数据字段;

9、去除所述初始数据字段中的多余字符并保留十六进制格式,得到所述目标数据字段。

10、优选的,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

11、测试python自定义报文程序的运行环境;

12、将socket库和struct库导入所述python自定义报文程序。

13、优选的,所述根据实际组网情况和所述工控报文的工控协议标准文档自定义所述工控报文新工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据的步骤包括:

14、创建列表msg,所述列表msg包括ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据的十六进制格式数据;

15、在所述列表msg中修改所述工控报文工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据。

16、优选的,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

17、定义参数接发函数和映射字典;所述参数接发函数用于接收ip地址、端口、需要发送的数据、ip层协议类型和传输层协议类型;所述映射字典用于映射所述ip层协议类型的字符串和socket库的模块常量;

18、根据所述传输层协议类型确定socket客户端,连接指定ip地址和端口。

19、优选的,所述根据所述传输层协议类型确定socket客户端的步骤包括:

20、当所述传输层协议类型为tcp时,创建tcpsocket客户端并连接指定的ip地址和端口;

21、当所述传输层协议类型为udp时,创建udpsocket客户端并连接指定的ip地址和端口;

22、当所述传输层协议类型为其他类型时,输出不支持该协议类型的错误信息。

23、优选的,所述将所述目标工控报文发送给工控防火墙的步骤包括:

24、使用struct库中的打包函数将所述目标工控报文打包成二进制格式数据或十六进制格式数据;

25、调用参数接发函数,将打包后的所述目标工控报文通过对应的socket客户端发送到指定的ip地址和端口,所述指定的ip地址和端口对应所述工控防火墙。

26、优选的,所述列表msg中ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据的十六进制格式数据为若干个数据元素,所述在所述列表msg中修改所述工控报文工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据的步骤包括:

27、在所述列表msg中的第n个数据元素进行修改,使其值为循环变量i的值。

28、优选的,所述在所述工控防火墙中对所述目标工控报文进行工控协议白名单规则自学习的步骤之前还包括:

29、开启所述工控防火墙的工控协议白名单规则自学习功能。

30、第二方面,本申请还提供一种工控防火墙白名单规则自学习的饱和测试系统,所述饱和测试系统包括:

31、报文获取单元,所述报文获取单元用于获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段,所述目标数据字段的格式为十六进制格式;

32、python自定义报文单元,所述python自定义报文单元用于将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中,并根据实际组网情况和所述工控报文的工控协议标准文档自定义所述工控报文新工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据,得到目标工控报文,并将所述目标工控报文发送给工控防本文档来自技高网...

【技术保护点】

1.一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述饱和测试方法包括:

2.根据权利要求1所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段的步骤包括:

3.根据权利要求1所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

4.根据权利要求3所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述根据实际组网情况和所述工控报文的工控协议标准文档自定义所述工控报文新工控协议的IP层协议类型、传输层协议类型、目标端口号和自定义编辑数据的步骤包括:

5.根据权利要求4所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

6.根据权利要求5所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述根据所述传输层协议类型确定socket客户端的步骤包括:

7.根据权利要求6所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述将所述目标工控报文发送给工控防火墙的步骤包括:

8.根据权利要求3所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述列表msg中IP层协议类型、传输层协议类型、目标端口号和自定义编辑数据的十六进制格式数据为若干个数据元素,所述在所述列表msg中修改所述工控报文工控协议的IP层协议类型、传输层协议类型、目标端口号和自定义编辑数据的步骤包括:

9.根据权利要求1所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述在所述工控防火墙中对所述目标工控报文进行工控协议白名单规则自学习的步骤之前还包括:

10.一种工控防火墙白名单规则自学习的饱和测试系统,其特征在于,所述饱和测试系统适用于权利要求1至9任意一项所述工控防火墙白名单规则自学习的饱和测试方法,所述饱和测试系统包括:

...

【技术特征摘要】

1.一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述饱和测试方法包括:

2.根据权利要求1所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述获取在实际工况环境中工控协议为pcap格式工控报文的目标数据字段的步骤包括:

3.根据权利要求1所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

4.根据权利要求3所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述根据实际组网情况和所述工控报文的工控协议标准文档自定义所述工控报文新工控协议的ip层协议类型、传输层协议类型、目标端口号和自定义编辑数据的步骤包括:

5.根据权利要求4所述的一种工控防火墙白名单规则自学习的饱和测试方法,其特征在于,所述将所述工控报文中的所述目标数据字段拷贝到python自定义报文程序的程序数据中的步骤之后还包括:

6.根据权利要求5所述的一种工控防火...

【专利技术属性】
技术研发人员:宋晓勇
申请(专利权)人:武汉思普崚技术有限公司
类型:发明
国别省市:

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

1