[西门子] 工控系统PLC被攻击的种类与过程讲解(以西门子、施耐德PLC为例)

[复制链接]
查看94 | 回复0 | 2024-4-15 08:30:14 | 显示全部楼层 |阅读模式
以下文章来源于智能制造之家
01 PLC遭受攻击的种类


PLC遭受攻击的种类按照攻击难易程度可以分为干扰性攻击、组态攻击和固件攻击。
三类攻击的描述如下表所示:


表1 攻击的分类、描述及危害


01干扰性攻击





图1  PLC RootKit攻击过程

图2  I/O 针脚复用攻击示意图








图3  PLC组态注入过程







图4  PLC组态、固件、硬件模型



图5  对PLC固件诊断例程修改过程



Beresford等[1]实现了针对Siemens Simatic S7 PLC的固件攻击。Garcia等[8]详细介绍了针对PLC的固件攻击全过程,利用内嵌的固件升级机制、在线代码注入等达到固件攻击的目的。具体的攻击过程如图6所示:
图6  PLC固件双向攻击过程



通过双向修改实现攻击过程,修改PLC的控制指令,从而摧毁物理世界;同时修改传感器的测量值,使得操作员看到“合理”的数值,从而达到隐藏攻击,避开检测的目标。




02 PLC遭受攻击的路径
1、通过嵌入式系统漏洞实施攻击






图1 对shell系统的爆破



西门子、施耐德的多款PLC设备软件搭载在VxWorks系统上运行,wdbrpc是VxWorks的远程调试端口,以UDP方式进行通信,端口号为17185。该协议基于sun-rpc,提供的服务主要用于支持系统远程通过集成开发环境Tornado交互(如图2)。根据灯塔实验室公布的资料[2],黑客可以通过wdbrpc协议dump全部内存空间数据,找到内存中的所有ftp、telnet登录密码,进一步可以实现的攻击有:篡改bootline绕过登录验证、Dump内存数据从中抓取登录密码等。通过攻击嵌入式实时操作系统进而控制PLC的正常运行。
图2 Tornado开发环境与VxWorks系统图


2、通过PLC通信协议漏洞实施攻击

   



3、通过PLC软件漏洞实施攻击

   





图3  利用人机交互界面攻击PLC过程


Radvanovsky等[9]指出,美国启动的SHINE(SHodan Intelligence Extraction)项目是为了提取关于可以从互联网访问的SCADA和ICS设备的信息(尤其是PLC和RTU)。SHODAN搜索引擎是通过搜索常用的TCP/UDP端口来工作的,如表3:
表3  常用协议及端口对照表
       Newman[10]指出,监狱中控制室值班通过在线浏览图片和电影引入病毒和蠕虫。一些监狱为犯人提供上网服务,虽然不和监狱控制和监视系统直接连接,但是也是一个可攻入的脆弱点。还要监狱的巡逻车,使用的是无线信号,需要连接监狱网络上传数据,也是一个攻击入口。
Klick[11]在2015 USABlackHat上指出,PLC缺乏安全机制,通常可以上传代码到这些面向互联网的PLC,利用这些PLC作为网关,渗透生产网络,甚至是公司IT网络。Kclik利用PLC编程语言STL编写端口扫描器和SOCKS代理,然后利用感染的PLC去扫描本地网络,并将其作为网关,从而连接与其相连的其他PLC甚至渗透到公司业务网络,如图4所示:
图4  公司内系统层级图



       McLaughlin[12]设计了一款针对PLC的恶意软件,能够生成动态数据包载荷,攻击者使用这个工具,可以不用提前对控制系统有先验知识就可以实施攻击,极大的降低了攻击PLC的门槛。首先利用生成的载荷感染一个到多个主机,然后进行工业过程分析,接着对二进制文件进行解码,最后对生成的载荷进行裁剪,上传到PLC并运行,具体过程如图5所示:
图5  动态生成恶意载荷过程



      McLaughlin在另一篇文章[13]中开发了一种自动生成PLC载荷的工具—Sabot,自动识别PLC逻辑控制,并生成恶意的PLC代码,具体过程如图6所示:
图6  Sabot攻击过程示意图



     Spenneberg[14]等在2016 Asia BlackHat上西门子SIMATICA S7-1200为例,展示了一款专门在PLC上存活的蠕虫。此蠕虫不需要依赖于PC电脑去扩散,仅仅活跃并运行于PLC中,通过网络扫描来发现新的目标(PLC),然后攻击这些目标并将复制自身到新的PLC中,而且受感染的PLC主程序不会发生任何改变。从而可以做到目标发现,携带恶意载荷等攻击手段。而且,清除这些蠕虫非常困难,目前只能通过恢复出厂设置或者复写蠕虫所在的功能块(Function Block)。感染过程如图7所示:
图7  蠕虫感染PLC过程



      代码的执行过程如图8所示:
图8  蠕虫恶意代码执行过程



综上所述,PLC的安全态势不容乐观,针对PLC的攻击路径比较多,而且攻击层次在逐渐深入,要做好PLC的安全防护任重道远。
参考文献:
[1]Beresford D. Exploiting siemens simatic s7 plcs[J]. Black Hat USA, 2011, 16(2): 723-733.
[2]Kimon. 揭秘VxWorks——直击物联网安全罩门[EB/OL]. http://chuansong.me/n/1864339, 2015-11-01
[3]Langner R. A time bomb with fourteen bytes[J]. Available: hUp: llwww. langner. comlen, 2011.


西门子S7-1500博途PLC(基础+高级)视频教程分享西门子TIA博途高级语言SCL视频资料分享
三菱FX3U系列plc精讲视频分享(40讲+240讲) 49GB
西门子smart200视频教程分享汽车行业自动化SiCar标准的培训资料
两套西门子WinCC视频教程分享(9.5G)PLC、触摸屏工控小游戏样例合集分享EPLAN电气设计制图视频教程分享-限时删除都有哪些好用电工仿真软件?学习电路图变得如此简67本自动化书籍免费领取啦!!!最新西门子授权工具EKB2022版分享立体仓库穿梭车程序分享
威纶触摸屏视频教程(66讲)分享
如何使用C#编写程序读写西门子PLC?
VASS标准—PLC安全程序架构讲解
VASS05标准—KUKA机器人培训课件
大众VASS_05标准——PLC程序架构
KUKA机器人高级编程(下)第3-4章(计时器\运动编程)西门子博途SCL案例_仓储系统出料优先级控制程序实战练习西门子TIA博途SCL高级教程—伺服V90速度控制
西门子TIA博途SCL高级教程—伺服V90定位控制
西门子TIA博途SCL高级视频教程—模拟量在工程中的应用博途TIA Portal——SCL间接寻址PEEK和POKE指令的使用案例
西门子SCL高级语言教程—冒泡排序和选择排序西门子博途WINCC脚本VBS教程4_脚本操作画面内对象的属性如何使用C#编写程序读写西门子PLC?
C#上位机通过TCP/IP协议和KUKA机器人通讯
不外传的28条PLC编程规范及建议,赶紧收藏win10家庭版安装西门子博途软件时提示“管理员已阻止你运行此应用”解决方法西门子SCL编程-数据堆栈存储与操作在项目中的使用
博途实现程序动态加密—分级催款密钥授权管理系统程序实现分享几个PROFINET网络故障诊断与分析案例工控的面向对象编程

技术交流资源获取
趋热纳凉,尽享美好时光
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则