写在前面
今天我们来聊一聊基于Wireshark的S7、OPC等工业协议分析与工业网络漏洞挖掘~
1工控信息安全的现状分析
2工业控制系统的风险监测
当前工业控制系统安全面临严峻威胁,需要对工业控制系统网络进行安全监测,发现工业控制系统网络内部的安全威胁和存在的漏洞,从而采取相关的防护措施或修复相关漏洞,确保工业控制系统的设备和数据的安全。
2.1工控网络安全监测相关技术
2.2工控网络安全分析方法
2.2.1工业协议网络报文分析
3WireNmap的开发与实现
Wireshark与Nmap在工业协议分析与工业漏洞挖掘中是强有力的互补,而实际中两个软件是分立的,导致其使用效率偏低。在工业控制系统的应用中,Wireshark软件对工业协议支持不完整或不全面,而Nmap自带漏洞探测脚本有限,但其支持自主开发针对工业控制系统的脚本。
3.1Wireshark源码结构
Wireshark源码软件组成,如图1所示。
图1Wireshark源码框架
图1中,Core为核心调度模块,包括报文的捕获(Capture)、报文分析(Epan)、报文读取与存储(Wiretap)、界面交互与呈现(GTK/Qt),具体模块的具体功能如表1所示。
表1Wireshark各模块功能
3.2Nmap源码结构
4基于WireNmap的工业协议分析
WireNmap集成了自主研发的报文解析插件,如S7协议解析插件、OPC协议TAG深度解析插件等。
4.1S7协议解析插件
图2S7协议报文结构
表2空间类型对照表
拆分值段,值段前3个字节跳过,取值段第4字节为值的长度。
S7原生Wireshark未解析报文,如图3所示。以图3中数据段未解析的十六进制部分拆分为例进行方法说明,如图4所示。
图3S7原生Wireshark未解析报文
图4S7协议未解析段数据结构
(1)第1字节和第2字节为第一区字段的长度20(0x0014),第3字节和第4字节为第二区字段的长度14(0x000e),点表数据在第二区;
(2)从第5字节起为第一区字段,第一区字段长度为20个字节,跳过20个字节;
(3)从25字节开始,25、26字节为数据点个数,十六进制表达为0x0001,转换为十进制为1,即后续数据点个数只有1个,则地址段和值段分别只有一个点;
(4)读取地址段的空间类型,取0x22&0xf0,根据表2得到空间类型;
(5)地址值按照图中标识部分为0x00000206,换算成十进制为518;
(6)读取值段,值段的第3字节即图4中的0x02为值的长度,换算为十进制,值的长度为2;
(7)读取值为0x2acd。
根据该方法,图3中的未解析字段在经过二次开发后结果如图5所示,可以得到点的个数、地址和值。
图5S7协议二次解析后前后对比
可见,经过开发后,S7插件可以读取空间类型、地址以及数值等更多信息。在实际工业控制系统中,这些信息可以对应实际的温度、压力以及转速等信息,因此可以更好地对工业控制系统进行指令级分析。
4.2OPC协议
OPC是基于微软组件对象COM/DCOM/COM+等技术基础的一种接口标准,在标准下能够有效的进行信息集成和数据交换。在工业控制系统中,OPC协议规范中主要应用的是OPC DA规范。在OPC DA规范中,OPC由OPC服务器中包含OPC组,组内有一个或多个对象,其结构如图6所示。
图6OPC对象结构组成
在OPC DA规范中,IOPCItemMgt类型报文在客户端执行添加、删除对象时,协商客户端和服务器对象的句柄,在协商完成后,后续通信都通过句柄对该对象执行修改。由图7可知,Wireshark并未对句柄进行解析。
图7OPC原生Wireshark未解析报文示例
本文通过以下方法可以获取句柄和句柄相关的对象名称。
图8OPC二次开发前后对比
由图8可知,经过开发后的WireNmap软件可以获取OPC协议的TAG名字、数据类型以及数值等更多信息。在实际的工业控制系统中,该信息可以与实际物理量进行转换,从而获取更多的数量信息。
5基于WireNmap的工业漏洞扫描技术
WireNmap同时集成了自主研发的漏洞扫描脚本插件,如NSE脚本。
5.1NSE脚本简介
一个完整的NSE脚本包括描述性字段、行脚本的rule以及实际脚本指令的action等多个模块,如图9所示。它的各个模块的主要的功能如表3所示。
图9NSE脚本组成
表3NSE脚本各个模块的主要的功能
图10NSE脚本首部
5.2.2脚本portrule
这部分主要涉及一些特定的端口以及端口上的服务,在对服务器的访问中涉及到http,因此端口的选取是几个有关http服务的端口,具体如下:
portrule=shortport.port_or_service({80,8080},”http”)
一般来说,在Apache Tomcat服务器安装时会有默认的运行端口,端口一般为8080,有时会存在该端口被其他应用占用的情况,这时服务器启动后不能正常工作,可以在Apache Tomcat的文件中进行默认端口的修改。
5.2.3脚本action
这是整个脚本的核心部分,利用put请求发送一个jsp格式的文件,之后判断服务器对http的put请求返回的响应码,若为201,说明此时服务器已经接受请求,对文件名以及一些细节输出即可,如图11所示。查看该脚本在Nmap中的运行结果,如图12所示。
图11NSE脚本主体
图12NSE脚本运行结果
6基于WireNmap的资产管理与联合分析技术
图13WireNmap资产管理界面
由图13可以得出网络中的IP段与资产清单,如表4所示。
表4WireNmap报文分析与IP资产对应关系
图13中右侧框列出了当前所有的IP资产清单。点击对应的IP后,利用列举出来的与该IP地址相关的所有通信报文,可以直接分析该IP的流量,查看是否存在异常流量,同时结合已经开发的插件(如S7、OPC等),更好地对工业协议进行深度分析。图13中双击右侧IP地址,启动如图14所示的界面。对重点关注的资产IP进行深度探测,可以得出如表5所示的资产详细信息。
图14WireNmap资产扫描与深度探测
表5资产详细信息
7结语
本文提出了一种基于Wireshark与Nmap的工业控制系统安全联合分析方法,扩展了Wireshark的分析插件与Nmap的扫描插件,同时提出了将Wireshark与Nmap合并后的联合分析软件WireNmap。实际应用证明,WireNmap能更深层次解析工业协议,如S7、OPC协议,同时通过开发脚本能发现更多的漏洞,如CVE-2017-12617等。面对以窃取敏感信息和破坏关键基础设施运行为主要目的工业控制系统网络攻击,所提方法能更快速、全方位地适应工业控制系统安全威胁的需要。
审核编辑:汤梓红
-
控制系统
+关注
关注
41文章
6671浏览量
110968 -
西门子
+关注
关注
96文章
3068浏览量
116587 -
工业网络
+关注
关注
0文章
92浏览量
16443 -
工业控制
+关注
关注
38文章
1472浏览量
86088 -
Wireshark
+关注
关注
0文章
49浏览量
6559
原文标题:西门子S7、OPC等工业协议分析与工业漏洞挖掘
文章出处:【微信号:智能制造之家,微信公众号:智能制造之家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
五年磨一剑 工业控制系统信息安全防护的新高度
![五年磨一剑 <b class='flag-5'>工业</b><b class='flag-5'>控制系统</b>信息<b class='flag-5'>安全</b>防护的新高度](https://file.elecfans.com/web1/M00/F0/25/pIYBAGCkiSSAL_MDAACrgKtLhTI673.png)
浅谈工业控制系统安全问题
![浅谈<b class='flag-5'>工业</b><b class='flag-5'>控制系统安全</b>问题](https://file.elecfans.com/web1/M00/50/C3/o4YBAFr6kWKAV6ybAAAXWTRvDb8279.jpg)
工业控制系统安全控制应用指南,为其信息安全工作提供指导
![<b class='flag-5'>工业</b><b class='flag-5'>控制系统安全</b><b class='flag-5'>控制</b>应用指南,为其信息<b class='flag-5'>安全</b>工作提供指导](https://file.elecfans.com/web1/M00/5C/18/o4YBAFtydXWAFLrIAAFRNYPEu-0900.png)
赛门铁克推出面向工业控制系统安全的神经网络解决方案
工业控制系统网络安全难题怎么解决
如何提升工业控制系统安全终端认知
![如何提升<b class='flag-5'>工业</b><b class='flag-5'>控制系统安全</b>终端认知](https://file.elecfans.com/web1/M00/9D/39/pIYBAF0v7FuAFR7IAAHKwYDiDMM783.png)
工业控制系统的本体安全该如何理解
![<b class='flag-5'>工业</b><b class='flag-5'>控制系统</b>的本体<b class='flag-5'>安全</b>该如何理解](https://file.elecfans.com/web1/M00/9F/0A/o4YBAF1BW4eANk8bAAFa1grQ4wo619.png)
加速工业4.0-扩展工业控制系统中的安全终端
加速工业4.0:扩展工业 控制系统中的安全终端
![加速<b class='flag-5'>工业</b>4.0:扩展<b class='flag-5'>工业</b> <b class='flag-5'>控制系统</b>中的<b class='flag-5'>安全</b>终端](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
加速工业4.0:扩展工业 控制系统中的安全终端
![加速<b class='flag-5'>工业</b>4.0:扩展<b class='flag-5'>工业</b> <b class='flag-5'>控制系统</b>中的<b class='flag-5'>安全</b>终端](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
加速工业4.0:扩展工业控制系统中的安全终端
![加速<b class='flag-5'>工业</b>4.0:扩展<b class='flag-5'>工业</b><b class='flag-5'>控制系统</b>中的<b class='flag-5'>安全</b>终端](https://file1.elecfans.com/web2/M00/89/C5/wKgaomSKwVWAY82_AAQ6LlkjlEM844.png)
评论