zoukankan      html  css  js  c++  java
  • [工控安全][翻译]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-

    致谢

    参考文献

  • 相关阅读:
    近期遇到的问题 与 总结
    最近使用的控件整理
    sass import 小记
    Visual studio 相关插件
    nodeJs中linq.js学习
    C++ Socket编程步骤
    Qt 多线程同步 与 通信
    信号槽 与事件区别
    Qt 关键宏 转自网络整理
    mongoDB windows安装
  • 原文地址:https://www.cnblogs.com/bianmu-dadan/p/11771864.html
Copyright © 2011-2022 走看看