“祝融”一款针对PLC控制系统的欺骗攻击病毒
2020-02-27 280浏览
- 1.“祝融” 一款针对PLC控制系统的欺骗攻击病毒 wangkai0351@126.com
- 2.Outline PLC设备探测 二进制码逆向分析 具体攻击过程 DEMO “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 3.Outline PLC设备探测 二进制码逆向分析 具体攻击过程 DEMO “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 4.震网和祝融 IT安全 ICS安全 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 5.震网和祝融 实现的效果相似,但实现的手段不同 是否攻击Step7/Wincc软件? √震网->暴力替换dll文件 ×祝融->温柔绕过,不做任何修改 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 6.PLC设备探测 为获得PLC的“位置”,有两种实现方式: 1. 监听工程师站与PLC通信的报文 2. 主动去扫描PLC设备 各有利弊 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 7.PLC设备探测 ①TCP ②COTP ③s7comm:setupcommunication “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 8.PLC设备探测 python->socket setup comm COTP “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 9.设备探测完成->建立连接->? 让PLC停机? 停机,给PLC下载恶意程序? ->震网可以绕过 ->祝融无法绕过 实施欺骗攻击! “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 10.Outline PLC设备探测 二进制码逆向分析 具体攻击过程 DEMO “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 11.二进制码逆向分析 C中用户程序的二进制码? C源码 逆向分析 汇编 逆向分析 可执行 二进制
- 12.二进制码逆向分析 PLC中用户程序(梯形图)的二进制码? Block STL FB41:PID 二进制 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 13.Outline PLC设备探测 二进制码逆向分析 具体攻击过程 DEMO “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 14.人机界面 实验中,我们用WinCC来 对PLC下达指令(设定温度) 以及获取PLC中的参数信 息(实际温度和加热阀的开 度) 当设备与监视器分离时, 我们可以在攻击的同时通 过修改监视器上的数据来 达到欺骗观察员的目的 其中,WinCC的刷新时间(WinCC两 次向PLC读写数据的时间间隔)是2s “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 15.获取WinCC的刷新时间 要想篡改WinCC上 的监测数据,必然 要准确的知道它刷 新的时刻,在此, 我们用抓取其通信 数据包的方式来获 取其刷新的时刻 但因为是无差别 的地抓取网络上 的所有数据包, 所以我们并不知 道哪个才是目标 数据包 我们可以由目标 数据包的先验知 识在若干个数据 包中通过匹配特 征的方式找到目 标 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 16.获取WinCC的刷新时间 读取保存好 的数据包 确定目标数 据包的特征F 用F与第i个 数据包匹配 匹配 获取WinCC 刷新时间 “祝融”——一款针对PLC控制系统的欺骗攻击病毒 不匹配
- 17.攻击策略 攻击目标 水箱内水的温度在一定时间内基于稳定值不 断升高,而WinCC监测不到这一异常。 实施策略 向PLC发送写变量报文,来修改设定温度,实 际温度和阀门开度的值,实现对设定温度的 篡改和WinCC的欺骗。 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 18.攻击策略 写变量报文(以写设定温度值为例) 设定温度值 地址:400 实际温度值 地址:200 阀门开度值 地址:300 “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 19.攻击总体思路 t_start t 2s 0.5s 系统运行时序图 1s 0.5s WinCC监控,每2s得到一次数据(设定温度+实际温度+阀门开度) 整个系统运行过程中,PLC每过2s向WinCC发送一次数据 攻击步骤1:发送一条报文,将设定温度改为100度 攻击步骤2:不断(为了覆盖PLC存储区的真实值,这些值也以一定速度连续 传送)发送报文,将设定温度,实际温度和阀门开度改为稳态正常值(即30 度,30度,0) 当前系统时间,根据这个时间和 t 来确定开始发动攻击的时间t_start “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 20.攻击实现过程 建立TCP连接 向PLC发送报文,修改设定温度值为100 建立COTP连接 延时1s 建立S7连接 向PLC发送报文,修改设定温度值为30 获取WinCC监测时刻 1s时间内不断向PLC发送报文, 修改实际温度值为30,阀门开度为0 获取系统当前时刻,计算得 △t,并延时(2.5-△t)s “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 21.Outline PLC设备探测 二进制码逆向分析 具体攻击过程 DEMO “祝融”——一款针对PLC控制系统的欺骗攻击病毒
- 22.目标 正常工作情况下,当水箱温度达到系 统设定值时,即达到稳态后,水箱温 度保持在设定值上下。 我们的目标是在躲过界面观察员和车 间巡逻员的监察,让水箱温度上升。 所以要在车间巡逻员巡逻空隙发起攻 击,攻击开始后保持监控室监控界面 参数不变。
- 23.对象—水箱 白色框中就是我们攻击的具体水箱。 它通过电加热器加热,并通过阀门 开度(0~100%)控制加热速度。 黄色框中显示水箱的实时温度,车 间巡逻员每隔一定周期时间到车间巡 1 逻,记录水箱温度。 蓝色框中为蓄水水箱,用于系统水 的循环利用,实验中具体用到的是1 号蓄水箱。 2
- 24.水箱温度控制系统 以S7-400PLC为主要控制器、基于WINCC平台形成良好的人际界面。实验中WINCC平 台即为工厂界面监控室的界面。 在WINCC界面输入设定温度值,温度传 PLC控制算法处理数据:主要采用PI控制。 感器获得实际温度信号通过变送器转换 实验中采用参数为GAIN=2 TI=20S 为4-20mA标准电流信号传送至PLC模拟量 由于水箱加热降温速度较慢,我们调参 输入模块。 过程不是很顺利,采用了系统默认值。 PID控制输出电压,改变电加热器阀门开 通过一段时间的控制调节,最终水箱温 度,升高水箱实际温度。 度达到设定值附近并在小范围内波动。 攻击程序由python编写,主要思想是修改温度设定值并保证WINCC界面的温度设定值T_SET, 实际温度值T_REAL,阀门开度值V_REAL与稳态显示状态相同。(假设稳态时的阀门开度为0) 具体实现过程小组成员刘颖已经详细介绍了。
- 25.“祝融” 谢谢观看!