![8ca6c92006542bb47b46c8d850d5db4d.gif](https://i-blog.csdnimg.cn/blog_migrate/bdb19643bc98eebb38dd043bc6ace9d7.gif)
前言
互联与共享成为工业控制系统新的发展方向,工控系统与企业办公网和互联网逐渐相连,工业控制网络环境越来越开放。
工业控制系统需从设备安全和信息数据安全两方面保障系统稳定运行:
![34b807891e6da3442d85592dc7c9793e.png](https://i-blog.csdnimg.cn/blog_migrate/b067b7d14a75efe662a16c04baf16a1d.png)
从 ICS 自身结构看,由于通信协议相对简单、操作系统和软件缺乏相应的防护措施,这些漏洞都可被利用施行破坏性操作;
![34b807891e6da3442d85592dc7c9793e.png](https://i-blog.csdnimg.cn/blog_migrate/b067b7d14a75efe662a16c04baf16a1d.png)
从外部网络环境看,ICS 广泛使用 TCP/IP 等通信协议,导致针对IT 系统的攻击行为蔓延至工控网络,给工业控制系统的安全雪上加霜。
本文基于西门子PLC系列S7-300产品,探讨安全防御工作中流量检测的方法。
检测思路
在实际工业控制网络中,网络流分为两类:
第一类:上位机发送给PLC 对工控现场进行实时控制的下行数据;
第二类:由PLC 定时发送给HMI 软件工控现场实时数据,能实时反映工控现场的工作情况。
这两类数据基于S7 议的ROSCTR 字段值分类。第一类数据ROSCTR的值为0x01和0x03,第二类数据ROSCTR固定值为0x07。针对工控网络的攻击通常都是获取上位机权限进而控制PLC(第一类流量)。
01
场景:PLC专用网络内突然冒出新IP
正常情况下在企业PLC网络区会做禁止外联的操作,突然出现一个新的IP,也就代表有新的设备接入,这也是憨憨入侵者做的事。
检测方法一:通过简单的ARP协议进行探测,物理地址广播,并进一步对照系统累积的MAC地址表,如果不一致将会给予告警。如下图所示。理想的网络安全信任关系应建立在IP+MAC基础上。
![91b9c9d31b2bd58463a487e61e5d0725.png](https://i-blog.csdnimg.cn/blog_migrate/d006f9141394fce67357d08eea05c04c.png)
检测方法二:利用ICMP协议确认IP包是否成功到达目标地址,并告知发送过程中IP包被丢弃的原因。检测设备的路由器向设备B发送ARP包获取设备B的MAC地址,多次发送ARP请求包,始终无法到达设备B,路由器返回ICMP Destination Unreachable,如下图所示:
![6241950632fc4c33c898c2be15505fc6.png](https://i-blog.csdnimg.cn/blog_migrate/855b913fb04cec7a4b9f6fa7e050e095.png)
检测方法三:通过简单网络管理协议(SNMP)的GET命令从设备读取数据,例如操作系统和网络协议状态等。
检测方法四:利用ICS/SCADA态势感知开源工具GRASSMARLIN进行实时的数据捕获,绘制网络拓扑图,查看是否有新增设备,如下图所示:
![b0303a34906ddd4543718ee18f8b84be.png](https://i-blog.csdnimg.cn/blog_migrate/6bcfc91ecc514c4d804753f3385dd801.png)
02
场景:无通信的设备间突然互通信
利用wireshark分析抓取的流量包,例如下图设置ip.src==231,ip.dst=163,查看两者之间是否建立通信,如下图所示:
![6b07480d022afadeb909b0a067a4737c.png](https://i-blog.csdnimg.cn/blog_migrate/6f570416b7cda089afc7f09f8b6eafba.png)
03
场景:设备之间突然有S7通信
如果两台设备之间突然有COTP、S7comm、S7comm-plus协议的通信,那我们需要检测这些通信协议。除了用wireshark、Xplico和Tcptrace等软件进行分析外,我们也可以用Pcap-Analyzer可视化工,如下图所示。同样可以自己开发工具检测,方法很多。具体可参考:https://github.com/HatBoy/Pcap-Analyzer
![5821c95b6fecc4ed9baafc7dc078bb94.png](https://i-blog.csdnimg.cn/blog_migrate/ecb14a15be257ed70a7ebfda116392f4.png)
04
场景:协议包长度异常
工控设备的协议长度是固定的,比如S7-300设备提交密码的数据包长度为91,启停操作携带Session id的数据包为155。利用python的scapy模块从pcap包里提取五元组信息进行检测分析即可检测出长度异常的协议,如下图所示:
![93997cd79ee8e06d6a32fe3d9d7fc83b.png](https://i-blog.csdnimg.cn/blog_migrate/d8c9d3892ebda3e80cd3726feb35e843.png)
![db1ea6e62f7b5b0ec7c73b5b7869bdf3.png](https://i-blog.csdnimg.cn/blog_migrate/4e311c4602dc239ebea16cd53e9fd292.png)
![3a11c1523efde5da6b0d96c3f428a22a.png](https://i-blog.csdnimg.cn/blog_migrate/e09fe2927b7e423fa02b0af0e453656e.png)
05
场景:功能码异常
行为异常指的是异常设备短时间内的高频繁启停操作以及生僻的功能码,例如修改安全功能、时间功能和数控编程等,常用的功能码如下图所示:
![a771eb788c8cabc19e5bceb2c8bc4347.png](https://i-blog.csdnimg.cn/blog_migrate/ab79acaf18d7fb10abbea3cd3ba38789.png)
06
场景:攻击类型检测
流量异常类型有多种,比如:
1、中间人攻击:通过拦截HMI 与PLC 之间正常工作时的网络通信数据,并对数据进行篡改和嗅探,可以同时达到欺骗HMI 与PLC 的目的。
2、Snap7 攻击:工业控制场景中往往缺乏PLC 对于HMI 设备的检测认证机制,因此可以通过在局域网内的另一台主机上安装S7 协议的编程软件,对PLC 进行编程操作。
3、响应注入攻击:HMI 组态软件除了对系统进行数据收集的功能外,也会同时对PLC 返回的各项参数如发电机转速值进行监测,如果转速超过一定阈值,HMI软件就会对操作人员进行告警,通过捕获PLC 发往HMI 的响应数据包,并修改数据包中的关键内容,可以掩盖PLC 的异常运行信息。
4、序列攻击:通过修改数据包的传送次序,来达到篡改工业控制系统运行逻辑的目的,因为数据包是网络中出现的正常数据包,对单一数据包的检验方式无法发现这种异常。
如何判断当前设备遭受的攻击类型,需要利用机器学习对PLC的正常行为建模,从而识别异常操作。例如2015年针对S7 SCADA 网络提出了基于DFA 的入侵检测模型,能有效地识别部分工控网络中的攻击行为,如下图所示:
![3282a5c0838f5588565b8d6234197c3d.png](https://i-blog.csdnimg.cn/blog_migrate/7fecee2eecbc5f2af751860a9acf343d.png)
总结
攻击者只需记录设备流量即可轻易地获取设备信息,比如用户名、密码、协议会话、操作指令等。恶意的修改任意一个变量即可导致PLC的崩溃。与此同时,类似于网络设备故障、网络拓扑结构改变、恶意网络攻击等行为极易干扰网络流量正常行为的建模,从而影响流量检测的正确率与误报率。
![4969a27e9fc9ddc4d5ad21cfbbae7c4e.png](https://i-blog.csdnimg.cn/blog_migrate/403edad76fc5247d3229f1abc1d63851.jpeg)
基于以上安全隐患,中新赛克推出星河Salaxy工业安全管理中心产品,该产品内置成熟的流量基线模型、完善的工业资产指纹库与工控漏洞库,利用大数据分析技术,将被动监测与主动扫描相结合,实时监测工业现场的流量数据,并对工业安全事件给予预警,保障工业设备的安全运行。
![edad90bec5e641903926f61749fd86e9.png](https://i-blog.csdnimg.cn/blog_migrate/63a577d788371e6bb88e66785163bbf2.jpeg)