原创 | 工控安全之PLC私有协议安全

admin 2020年12月1日15:26:22评论42 views字数 1630阅读5分26秒阅读模式

作者 | 绿盟科技格物实验室 陈杰

前言

在工业控制系统中,各种不同的型号系列的PLC除了使用公开的工业控制协议(例如 modbus,opcua等),还使用了厂家自己开发的私有协议(例如施耐德的UMAS,西门子的S7comm/S7commPlus等),这一系列协议主要用于和自家的组态软件进行通信来执行一些高权限的操作,例如启动停止,工程的上载和下装等。这些操作无疑会给工业现场造成巨大的安全隐患,对工业控制私有协议分析也成了工业控制系统安全的重点和难点。本文通过分析如今的PLC私有协议的现状,提出一些研究思路和安全建议。

私有协议实例

施耐德UMAS

施耐德UMAS协议是施耐德M340/M580和上位组态软件Unity Pro通信使用的一种私有协议,由于其下层协议使用的modbus 90功能码,所以服务端口也是502端口。通过阅读isf(https://github.com/dark-lbp/isf/)工业控制系统漏洞利用框架的源码找到针对施耐德系列PLC的启停脚本源码可以分析该协议的基本流程,如下:

原创 | 工控安全之PLC私有协议安全

该攻击脚本先是通过0x10功能码获取UMAS的会话key,再通过0x40(启动功能码)/0x41(停止功能码)来控制PLC设备的启动停止。如下即为Wireshark抓取到的数据包,UMAS协议解析插件可以自己编写。

原创 | 工控安全之PLC私有协议安全

通过协议分析可以知道,该协议是未加密的状态,可以使用简单的重放进行PLC攻击,该种私有协议相对简单,没有加密流量以及完整性校验,安全性相对不足。

西门子S7comm系列

S7comm是S7-300/S7-400和上位组态软件TIA通信的私有协议,下层协议为COTP,使用的服务端口号为102。通过阅读isf框架源码可以知道到该协议也没有加密,也没有完整性校验。

原创 | 工控安全之PLC私有协议安全

抓取到的数据流量如下所示,这种类型的协议也可以通过的简单的重放来控制PLC。

原创 | 工控安全之PLC私有协议安全

但是S7-1200/S7-1500使用的是S7协议加强版S7commPlus,该协议握手阶段使用了一系列复杂的算法来建立安全的会话链接,同时为接下来的每一个操作数据包都加上了完整性校验。

原创 | 工控安全之PLC私有协议安全

如下选中的地方即为完整性校验字段:

原创 | 工控安全之PLC私有协议安全

针对这类复杂的算法协议可以通过逆向关键的dll或者直接调用核心的dll来完成对PLC的攻击。下图为针对S7commPlus攻击工具。

原创 | 工控安全之PLC私有协议安全

密码设置

通过上面的分析可以知道,现在的工业控制私有协议安全性还有很大的不足,为了在工业系统中限制其他人使用私有协议执行高权限的操作,可以使用组态软件给PLC加上保护密码。
施耐德unitypro设置如下:

原创 | 工控安全之PLC私有协议安全

西门子TIA可以进行如下设置:

原创 | 工控安全之PLC私有协议安全

在设置密码后,可以有效保护PLC,阻止利用私有协议发起的恶意操作。

密码绕过

密码绕过属于工业控制系统安全里面的高级技术,只要绕过PLC中的密码,基本上就可以让PLC执行恶意操作,比如替换一个恶意工程等。在今年的看雪峰会上,已经有工控安全研究员着手这方面的研究,通过包括物理接触和非物理接触方式突破了施耐德,西门子,罗克韦尔等多个PLC的密码保护机制。总结如下两点:
1.   不正确的校验方式,包括把密码从PLC读到组态软件进行比较的设计。
2.   厂商留下的后门,包括未文档化的PLC内存读写功能。
详情请参考
https://zhuanlan.kanxue.com/article-14166.htm

总结

通过分析可以看出,工业控制系统上私有协议有复杂的、也有简单的,种类繁杂。不同的厂商有不同的私有协议,这对工控安全研究人员的协议逆向分析能力提出了较大的要求。同时本文还提到了通过设置密码来阻止私有协议的滥用,然而设置PLC密码不是万能的,它依赖于工业控制系统厂商在密码保护机制实现上的安全性。为了限制私有协议的访问,最好还是在工业现场部署专门针对工业控制业务环境的IDS/IPS,最大程度的提高工业现场的安全性。


转载请注明来自:关键基础设施安全应急响应中心

原创 | 工控安全之PLC私有协议安全

本文始发于微信公众号(关键基础设施安全应急响应中心):原创 | 工控安全之PLC私有协议安全

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月1日15:26:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   原创 | 工控安全之PLC私有协议安全https://cn-sec.com/archives/194064.html

发表评论

匿名网友 填写信息