前言

互联与共享成为工业控制系统新的发展方向,工控系统与企业办公网和互联网逐渐相连,工业控制网络环境越来越开放。

工业控制系统需从设备安全和信息数据安全两方面保障系统稳定运行:

从 ICS 自身结构看,由于通信协议相对简单、操作系统和软件缺乏相应的防护措施,这些漏洞都可被利用施行破坏性操作;

从外部网络环境看,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基础上。

检测方法二:利用ICMP协议确认IP包是否成功到达目标地址,并告知发送过程中IP包被丢弃的原因。检测设备的路由器向设备B发送ARP包获取设备B的MAC地址,多次发送ARP请求包,始终无法到达设备B,路由器返回ICMP Destination Unreachable,如下图所示:

检测方法三:通过简单网络管理协议(SNMP)的GET命令从设备读取数据,例如操作系统和网络协议状态等。

检测方法四:利用ICS/SCADA态势感知开源工具GRASSMARLIN进行实时的数据捕获,绘制网络拓扑图,查看是否有新增设备,如下图所示:

02

场景:无通信的设备间突然互通信

利用wireshark分析抓取的流量包,例如下图设置ip.src==231,ip.dst=163,查看两者之间是否建立通信,如下图所示:

03

场景:设备之间突然有S7通信

如果两台设备之间突然有COTP、S7comm、S7comm-plus协议的通信,那我们需要检测这些通信协议。除了用wireshark、Xplico和Tcptrace等软件进行分析外,我们也可以用Pcap-Analyzer可视化工,如下图所示。同样可以自己开发工具检测,方法很多。具体可参考:https://github.com/HatBoy/Pcap-Analyzer

04

场景:协议包长度异常

工控设备的协议长度是固定的,比如S7-300设备提交密码的数据包长度为91,启停操作携带Session id的数据包为155。利用python的scapy模块从pcap包里提取五元组信息进行检测分析即可检测出长度异常的协议,如下图所示:

05

场景:功能码异常

行为异常指的是异常设备短时间内的高频繁启停操作以及生僻的功能码,例如修改安全功能、时间功能和数控编程等,常用的功能码如下图所示:

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 的入侵检测模型,能有效地识别部分工控网络中的攻击行为,如下图所示:

总结

攻击者只需记录设备流量即可轻易地获取设备信息,比如用户名、密码、协议会话、操作指令等。恶意的修改任意一个变量即可导致PLC的崩溃。与此同时,类似于网络设备故障、网络拓扑结构改变、恶意网络攻击等行为极易干扰网络流量正常行为的建模,从而影响流量检测的正确率与误报率。

基于以上安全隐患,中新赛克推出星河Salaxy工业安全管理中心产品,该产品内置成熟的流量基线模型、完善的工业资产指纹库与工控漏洞库,利用大数据分析技术,将被动监测与主动扫描相结合,实时监测工业现场的流量数据,并对工业安全事件给予预警,保障工业设备的安全运行。

ip 包流量分析程序_【干货】西门子S7300六大流量异常场景检测相关推荐

  1. ssis 包配置组织程序_如何停止失控的SSIS程序包

    ssis 包配置组织程序 There are many reasons for terminating a long running SSIS Package. Picture a scenario ...

  2. 移动流量转赠给好友_中国移动怎样转赠手机流量?月结流量用不完怎办

    我们有时候包月套餐流量不够使用,有时候包月套餐流量又剩下一大堆,目前中国移动又没有一个可以跨月累积剩余流量的服务,一般都是跨月自动清零当月的手机套餐流量,不管是用完还是没有用完.所以,对于每个月用不完 ...

  3. vs 启动调用的目标发生异常_如何解决不可测、异常场景的问题?

    阿里QA导读:在软件研发过程中,发布前跨多个系统的联调测试是不可或缺的一环,而在联调过程中,经常会遇到一些比较棘手的困难,阻塞整个联调进程.其中比较典型的有:第三方的研发节奏不一致,导致无法联调:下游 ...

  4. python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...

  5. 关键词热度分析工具_干货分享丨关键词热度分析工具

    不论我们是做竞价还是做自然优化,都需要对关键词的热度进行一番细致的分析.选择了不合适的关键词,可能就会浪费大量的时间和金钱,关键词的重要性不言而喻. 好啦,大家肯定会悄悄吐槽:谁不知道选择合适的关键词 ...

  6. 单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏

    为了让大家更深入地了解底层的原理,在讲解时特意选择了51单片机(而非STM系列),另外16*16点阵由译码器和移位缓存器直接驱动(而非MAX系列芯片),摇杆也利用ADC功能判断方向. 那如何让单片机驱 ...

  7. 不是有效的win32程序_【西门子PLC编程实例】S7200 PLC子程序指令及应用实例

    S7-200 PLC把程序主要分为三大类:主程序.子程序和中断程序.在实际应用中有些程序内容可能被反复使用,对那些需要经常执行的程序段,可设计成子程序的形式,并为每个子程序赋以不同的编号,在程序执行的 ...

  8. 西门子v90伺服说明书_干货 | 西门子1200与V90伺服PROFINET通信故障解决方法

    文章来源:网络 免责声明:本文系网络转载,版权归原作者所有.但因转载众多,无法确认真正原始作者,故仅标明转载来源.本文所用视频.图片.文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料 ...

  9. python 水位流量关系曲线_应用最小二乘法拟合水位流量关系曲线

    · 水文水资源 · 吉 林 水 利 · 的 年 第 期 应用最小二乘法 拟合水位流量关系曲线 长春 水 文分站 郭永杰 关键词 水 文 水利计算 水祖流量关 系 最 小 二 乘法 数 学拟合 水位流量 ...

最新文章

  1. ZOJ 3329 One Person Game 带环的概率DP
  2. 图标尺寸规范_作为刚入门的UI设计师,你需要懂哪些设计规范?
  3. javascript jquery對form元素的常見操作
  4. 怎么把series变为datamate_如何把时间序列问题转化为监督学习问题?通俗易懂的 Python 教程...
  5. 20000字节的包算大吗_20000的包和200的包区别,戳中了万千女人的内心!
  6. 技工学校计算机类论文,技工学校计算机教学论文
  7. python面试题及答案2020_2020年python面试题汇总(最新)
  8. 修改springmvc返回ajax方式的json数据
  9. 5G无线技术基础自学系列 | 5G信道结构
  10. 这是一个秘密,是一个秘密
  11. umi首屏加载速度优化
  12. 软件测试,在EasyMock中遇到expected: 1, actual: 0的解决办法,当你传入的是对象参数时所需要规避的坑
  13. 【AWVS】python调AWVS接口 新建扫描并导出扫描报告(一)
  14. Cong! ZOJ 100AC!
  15. 如何通过接口获取商品详情
  16. UVM field automation
  17. 使用TortoiseGit将已有的id_rsa转化为ppk
  18. ai外呼营销系统_上海AI外呼系统
  19. linux服务器中学习使用FFmpeg命令overlay滤镜用法
  20. 游戏制作之路-愤怒的小鸟-3(源码下载地址)

热门文章

  1. 【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
  2. 带你彻底搞懂高性能网络模式Reactor 和 Proactor
  3. 4项探索+4项实践,带你了解华为云视觉预训练研发技术
  4. 【华为云技术分享】自动网络搜索(NAS)在语义分割上的应用(二)
  5. 昇腾万里 | 猫咪+AI,训练推理一秒get√
  6. 【并发技术01】传统线程技术中创建线程的两种方式
  7. 给一线讲产品·7期|用户在云上如何快速搭建安全防护体系?
  8. 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#
  9. python方法的分类(实例方法、类方法、静态方法)
  10. linux创建更改目录,Linux中目录的创建与删除命令使用说明