Sec

网络安全研究员,专注于工业互联网安全领域。求职中。

导航

[工控安全][翻译]Rogue7:西门子s7comm-plus协议全解析

Rogue7:西门子s7comm-plus协议全解析

mailto:wangkai0351@gmail.com

【未经同意禁止转载】

鉴于本博客涉及的信息安全技术具有破坏计算机信息系统的风险,建议读者在学习/研究/探讨之前,确保已经充分了解以下内容:

本博客所讨论的技术仅限于研究和学习,旨在提高计算机信息系统的安全性,严禁用于不良动机,任何个人/团队/组织不得将其用于非法目的,否则后果自负,特此声明。

[译者说]本文的研究思路是:通过反编译的方式逆向分析上位机软件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编辑  收藏  举报