SIMATIC西门子PLC模块授权代理商丨西北地区一级代理

发布日期 :2023-12-14 11:27 编号:12784162 发布IP:114.82.102.105
SIMATIC西门子PLC模块授权代理商丨西北地区一级代理SIMATIC西门子PLC模块授权代理商丨西北地区一级代理SIMATIC西门子PLC模块授权代理商丨西北地区一级代理
供货厂家
上海乘晖科技集团有限公司  
西门子
西门子PLC总代理
西门子PLC
西门子PLC总代理商
德国
西门子PLC一级代理商
报价
电议
联系人
肖先生(先生)经理
手机
17373148720
区域
上海宝山工控系统及装备
地址
上海市奉贤区驰华路775号2幢
在线咨询:
点击这里给我发消息
让卖家联系我
详细介绍
手机版链接:https://m.trustexporter.com/cz12784162.htm

                     西门子PLCET200SP架构

 一、西门子PLC ET200SP介绍

 

       2015年1月,SIEMENS ET200SP Open Controller上市公开销售,这是***款采用实时虚拟机管理器技术的工业控制器。一套硬件上运行两个操作系统,实时虚拟机管理器用于控制Windows和RTOS两个虚拟机,西门子称之为SWCPU。

 

       SWCPU是加密的(存放在PLC存储器),在PLC启动过程中由虚拟机管理器加密和解密。SIEMENS的实时虚拟机管理器和RTOS都是SIEMENS自己开发的私有产品,实时虚拟机管理器将硬件资源完全虚拟化成两套硬件,每套硬件上运行不同的操作系统,有各自独立支配的硬件资源,可以并行运行互不干扰,使系统具有高可用性。RTOS运行可编程控制逻辑,具有运行PLC、运动控制等实时功能,Windows运行HMI/SCADA或者数据库等非实时应用。即使Windows在操作期间重启也不会对控制器的控制逻辑产生影响,因此可以无影响的更新Windows系统、安装其他工业类的程序文件。
 

 


       二、 Intel VT

 

       Intel VT指的是Intel推出的基于x86架构的硬件辅助虚拟化技术。Intel VT提供了2 个运行环境:根(Root)环境和非根(Non-root),这两种模式都有相应的特权级0至特权级3。VMM运行在根模式的特权级0,GuestOS的内核运行在非根模式的特权级0,GuestOS的应用程序运行在非根模式的特权级3。ET200SP使用了Intel VT技术对PLC进行虚拟化,使用VT指令开启虚拟化以及模式的切换,大大提高了虚拟机性能。

 

 

       三、 启动流程

 

       来自以色列工***的研究人员指出,ET200SP的启动过程并不安全,通过Ubuntu启动,可以直接挂载ET200SP的硬盘分区。如图2,sda1分区为Windows Embedded,sda5分区为ROTS,将sda5挂载到/mnt后可查看TIA_porject_files,也就是说攻击者可以启动他所选择的操作系统并读取整个文件系统,包括实时虚拟机管理器的二进制文件、加密的SWCPU和GRUB配置文件。

 

 

 

 

       根据以色列工***的研究人员会议中披露的内容,我们分析了Boot/GRUB2/menu.cfg配置,获取到虚拟机映射的本地信息和启动流程,在进入到菜单选择界面执行SWCPU会将VMM_1st_stage.elf、VMM_2st_stage.elf逐个加载到内存执行。

 

 

 

 

       总体流程图如下所示:

 

 

       四. 解密

 

       4.1 解密逻辑

 

       CPU.elf是加密的软PLC固件,以“S3”字符串开头,下图表明这个固件已经被加密,解密逻辑在VMM 2nd Stage中进行。

 


       分析代码便能很快地定位到解密函数,该函数先对比文件的前四个字节,如果符合加密特征就执行解密流程。

 


       SWCPU解密算法相当复杂,西门子为了对抗逆向工程,还对一些函数指针,关键常量进行了加密,这对于静态分析来说并不直观。所以议题中使用的方法是

 

       使用Intel研发的动态二进制插桩框架Pin平台,先执行环境初始化,替换一些函数(如malloc代替vm_alloc、 printf代替VM_print等),同时读取加密的ELF数据传入到解密函数中,再执行解密函数后将解密完成的ELF数据dump下来,如下所示:

 

 
     4.2 Unicorn模拟执行

 

       在议题中,作者使用的方法可以在内存中解密软件,但是无法提取,绿盟科技格物实验室工控安全研究员发现其方法过度依赖原始系统,需要绕过的检测策略太多,导致解密后的软件获取会失败。通过分析,绿盟科技工控安全研究员另辟蹊径,使用Unicorn框架模拟执行解密函数,从而获得解密后的程序,相关代码如下所示:

 


       解密之后是lzma压缩的数据,对数据进行解压得到原始的ELF数据。

 


       通过使用模拟执行成功解密得到原始的ELF数据

 


       通过简单的分析可以知道,整个PLC固件一共识别得到13W+的函数,是个庞大而复杂的固件。系统大部分上由C++编写,使用了ACE框架。TCP/IP协议栈移植了Open BSD的协议栈,这一点和***新的PLC设备使用的协议栈保持一致。

 

       五. 调试

 

       5.1 调试难点

 

       基于硬件方案的调试限制诸多,首先需要购买西门子厂商的IPC或者ET 200SP系列开放控制器,再次需要确认这类设备中是否有底层调试的接口,即便开放了调试接口也需要购买Intel专业的调试设备,该类调试设备价格不菲。

 

基于软件的调试一般采用虚拟化方案,但是对于西门子的软件PLC来说很有挑战,因为软件PLC在加载过程中需要对BIOS类型、硬盘接口、网卡总线、IO卡件、工业以太网卡件类型等做检查和初始化,虚拟化方案很难完全运行起软件PLC的所有功能。

 

       5.2 int3调试器

 

       以色列的研究人员使用了自带的诊断输出页面来查看数据,只要插入int3指令即可看到寄存器和栈上的相关数据,但是无法扩展出更为强大的真正调试器。如下图为int3调试的输出。

 

       5.3 如何解决

 

       由于绿盟科技格物实验室没有真实的ET 200SP设备,所以使用VMware进行仿真,并使用GDB调试,通过patch来绕过各种检查,然后直接到达解密CPU.elf的代码,在内存中找到完全解密ELF数据,***后dump得到ELF数据。

 

 

       六. 影响&缓解措施

 

       2019年西门子PLC的市场份额占31%,广泛应于电厂、水利设施、运输系统、核反应堆等关键信息基础设施。以色列工***的研究人员从解密的固件发现,与S7-1500共享99%的软件。在工业环境下固件更低的更新频率,将使整个Simatic S7-1500产品线容易受到已知漏洞的攻击。

 

       此外,还有项研究正在进行中,研究人员声称已经找到了一种方法,获得Windows虚拟机管理权限的攻击者可以用自己制作的流氓PLC固件替换PLC固件,他们与西门子厂商分享了全部细节,但在本次BlackHat大会尚未披露此漏洞的细节。***后研究人员给出了针对西门子ET200SP的缓解措施:

 

 

       七. 总结

 

       议题《sOfT7:揭开西门子S7 PLC的神秘面纱》在诸多工控相关类的议题中脱颖而出,足以说明了它的创新性,研究人员着眼于软件PLC的工作机制研究并在加载过程中找到了设计缺陷,通过二进制插桩技术得到了可分析的固件,通过分析固件可以获知西门子大型PLC系列诸多功能的实现也作为后续深入研究的切入点。条条大路通罗马,通过学习后,我们采用了另外2种方法(模拟执行和动态调试)得到了解密后的固件。

 

       未来可能的研究方向还有如下几点:

 

       1.研究西门子PLC的漏洞。

 

       2.了解S7 COMM PLUS 服务端的实现流程。

 

       3.MC7P代码的解释执行流程。

 

       4.学习业务功能的实现方式,比如冗余机制、web服务器、OPC-UA服务器等




我们的其他产品
相关西北地区产品