[工控安全][翻译]Rogue7:西门子s7comm-plus协议全解析
Rogue7:西门子s7comm-plus协议全解析
【未经同意禁止转载】
鉴于本博客涉及的信息安全技术具有破坏计算机信息系统的风险,建议读者在学习/研究/探讨之前,确保已经充分了解以下内容:
本博客所讨论的技术仅限于研究和学习,旨在提高计算机信息系统的安全性,严禁用于不良动机,任何个人/团队/组织不得将其用于非法目的,否则后果自负,特此声明。
[译者说]本文的研究思路是:通过反编译的方式逆向分析上位机软件TIA的核心OMSp_core_managed.dll组件,然后得到关于s7comm-plus协议的秘钥生成、交换、加密等环节的算法,利用上述密码学逆向成果,再逆向分析s7comm-plus协议应用层的payload字段结构,最终完成了s7comm-plus协议的全部逆向工作,实现了将梯形图的二进制payload注入到PLC中的目的。
基于协议逆向的成果,最容易实现的攻击手段是欺骗攻击,就是上位机软件TIA和PLC设备之间相互欺骗。最常见的场景是,攻击者的程序伪造成资产所有者的TIA,实现对PLC设备的欺骗。那么,最新的s7comm-plus协议是怎样实现的TIA和PLC双方之间的信任度量——加密保护机制的呢?这是新一代s7comm-plus针对s7comm的重要改进。也是本文核心。
[译者注]因本文讨论中涉及的PLC设备绝大多数是紧凑式一体式设备,因此下文并不严格区分PLC设备,PLC CPU模块,PLC以太网模块,PLC I/O模块这几个概念。
0 摘要
1 简介
1.1 针对ICS的攻击
1.2 s7协议升级版
S7-200、S7-300、S7-400系列的PLC采用早期的西门子私有协议S7Comm进行通信。
S7-1200/1500系列固件版本为V3.0以下的PLC采用西门子新一代的S7Comm-Plus协议进行通信。该协议采用了一些特殊编码规范
S7-1200/1500系列固件版本为V3.0以上,以及S7-1500系列的PLC,采用了最新的S7Comm-Plus协议,该协议对比之前S7Comm-Plus协议,采用了加密算法。
1.3 本文地点工作
1.4 本文的结构
2 前置知识
2.1 基于TCP/IP的s7comm协议
2.2 基于s7comm协议的PLC
Siemens SIMATIC S7产品线的PLC设备
2.3 s7comm-plus协议概览
3 s7comm-plus协议的加密保护
3.1 身份认证和完整性保护
3.2 s7秘钥的生成
3.3 秘钥传递的漏洞和利用
4 攻击事件的结构
4.1 TIA软件
5
6 程序下载
在实现程序下载功能之前,我们
7 对策和结论
附录A s7 P3-
致谢
参考文献
posted on 2019-10-31 16:14 大单GreatDane 阅读(3551) 评论(2) 编辑 收藏 举报