PLC模块-中国一级代理商 西门子ET200模块6ES7132-4HB01-0AB0
| 更新时间 2025-01-09 08:00:00 价格 请来电询价 PLC触摸屏代理商 西门子代理商 伺服电机驱动电缆 西门子一级代理商 变频器直流调速器 西门子一级总代理商 联系电话 13922889745 联系手机 18475208684 联系人 向小姐 立即询价 |
详细介绍
西门子
S7-PLC
攻击
执行
正如在任何典型的注入攻击中一样,我们在目标PLC的原始控制逻辑中植入我们的恶意代码,时间中断块OB10。CPU在每个单独的执行周期中检查是否满足中断的条件。这意味着,攻击者的中断块将始终被检查,但只有在CPU时钟的日期和时间与攻击者设置的日期和时间匹配时才会执行。因此,我们有两种情况:【1】CPU时钟的日期与OB10中设置的日期(攻击日期)匹配。CPU立即停止执行OB1,将断点的位置存储在专用寄存器中,并跳转到执行相应的中断块OB10的内容。【2】CPU时钟的日期与OB10中设置的日期不匹配。CPU在检查中断条件之后恢复执行OB1,而不激活中断并且不执行OB10中的指令。我们在本文中提出的攻击方法由两个主要阶段组成:注入阶段(在线阶段)和攻击阶段(离线阶段)。A、注入阶段下图显示了此阶段的基本过程。我们的目标是向PLC注入我们在中断块OB10中编程的恶意指令。此阶段包括四个步骤:a) 上传和下载用户程序。b) 修改和更新控制逻辑程序。c) 制作s7CommPlus下载消息。d) 将攻击者的消息推送给受害者PLC.为了篡改目标PLC,我们利用我们的MITM站,它有两个主要组件:【1】TIA门户:用于检索和修改PLC运行的当前控制逻辑程序。【2】PLC注入器:将攻击者的代码下载到PLC.在这项工作中,我们为此开发了一个基于Scapy的Python脚本。对于实际情况,攻击者在访问网络后可能会遇到两种情况。案例_1:非活动S7会话在这种情况下,合法的TIA门户处于脱机状态,并且仅在需要上传过程时才与PLC通信。步骤1:上传下载用户程序:此步骤的目的是获取PLC运行的反编译的控制逻辑程序,以及TIA Portal发送的S7CommPlus消息,将原用户程序下载到PLC中。为了实现这些目标,我们首先打开攻击者的TIA门户,并直接与受害者PLC建立连接。这是可能的,因为S7-1500 PLC设计上存在安全漏洞。事实上,可编程逻辑控制器没有引入任何安全检查,以确保当前通信的TIA门户与其在早期会话中通信的TIA门户相同。为此,任何在其机器上提供TIA门户的外部对手都可以轻松地与S7 PLC通信,而无需任何努力。成功建立通信后,我们将控制逻辑程序上传到攻击者的TIA门户。然后,我们再次将其重新下载到PLC,并使用Wireshark软件嗅探攻击者的TIA门户和受害者PLC之间交换的整个S7CommPlus消息流。在此步骤结束时,攻击者在其TIA门户上安装了程序,并将所有捕获的下载消息保存在PCAP文件中以供将来使用。步骤2:修改和更新PLC的程序:在检索目标PLC运行的用户程序后,攻击者的TIA门户将以一种编程语言(如SCL)显示该程序。基于我们对PLC控制的物理过程的理解,我们配置并编程了我们的时间中断块OB10,以强制系统的某些输出在中断被激活时关闭,尽管我们的恶意代码与原始代码的不同之处仅在于一个额外的小尺寸块(OB10),但它足以混淆我们实验设置的物理过程。更新PLC中运行的程序的Zui简单方法是使用攻击者的TIA门户。当我们下载修改后的控制逻辑时,PLC成功更新了其程序。但是,ICS操作员可以很容易地通过从受感染的PLC上传程序来发现篡改,并且比较分别在其合法TIA门户和远程PLC上运行的离线和在线程序。步骤3:制作s7CommPlus下载消息:为了向合法用户隐藏我们的感染,我们首先记录了下载修改程序时攻击者的TIA门户和PLC之间交换的s7CommPlus消息。步骤4.将特制的消息推送到PLC:特制的S7CommPlus下载消息包含以下属性:攻击者程序的对象MAC和对象代码属性,以及用户程序的源代码属性。由于S7CommPlusv3在TIA门户和PLC之间交换共享会话密钥以防止执行重放攻击,因此我们首先需要将数据包与正确的密钥捆绑在一起,然后才能将精心编制的消息推送到PLC.然而,利用共享密钥(不在本文的范围内),一旦恶意密钥交换完成,我们就可以轻松地将密钥字节码与精心编制的消息捆绑在一起。考虑到对会话ID和完整性字段的适当修改,我们将Zui终的S7消息(攻击者的消息)存储在PCAP文件中,以便将其作为重放攻击推回到PLC。下述算法描述了PLCInjector工具的主要核心,该工具用于使用攻击者的篡改PLC程序:PLCInjector工具有两个功能:第一个用于利用S7CommPlusV3使用的完整性保护会话密钥。在TIA Portal和S7-1500 PLC之间的每个会话中交换的会话密钥源自PLC的ServerSessionChallange的16个字节,确切地说是位于字节2和18之间的那些,与TIA Portal选择的随机24字节KDK的组合。然后,在SessionKey计算中使用指纹函数f()。第5行生成24字节随机量(M),并将其映射到作为预密钥贡献的椭圆曲线的域。根据随机点预密钥,我们使用密钥推导函数(KDF)来推导如下标识的3-16字节的量:密钥加密密钥(KEK)、校验和种子(CS)和校验和加密密钥(CEK)。在第7行中,CS生成组织为四个256字的4096个伪随机字节,即LUT.此LUT用于计算KDK和PLC_质询的校验和。从第8行到第13行描述了椭圆曲线密钥交换方法,类似于TIA Portal用于加密随机生成的预密钥的方法。之后,我们用随机选择的20个字节(在算法中贡献给X)来屏蔽椭圆曲线计算。第19行为加密的KDK提供认证的加密。这里,计算非加密校验和,然后由AES-ECP函数加密。Zui后,我们添加包括密钥指纹的2个报头字段,即,具有一些附加标志的相关密钥的8字节截断的SHA256散列(见第20行)。在与受害者成功建立会话后,PLC与攻击者机器交换恶意生成的Session_Key以及当前通信会话。在下一步中,我们的工具将执行函数2,向攻击者发送精心编制的S7消息,其中包含恶意代码以及生成的Session_Key。我们的攻击工具也可以用于攻击所有共享相同固件的S7-1500 PLC.这是因为西门子设计了新的S7密钥交换机制,假设所有运行相同固件版本的设备也使用相同的公钥-私钥对机制。成功注入后,PLC更新其程序,处理攻击者程序的目标代码,同时将用户程序的源代码保存在其内存中。因此,每当用户从受感染的PLC上传程序时,TIA Portal都会调用、反编译并显示原始程序。这使得我们的注入隐藏在PLC内部,用户无法检测到在线和离线程序之间的任何差异。案例_2:活动的S7会话在这种情况下,在篡改期间,合法的TIA门户和PLC之间有一个正在进行的活动S7会话。默认情况下,S7 PLC只允许一个活动的在线会话,因此攻击者无法与PLC通信。它将立即拒绝任何建立连接的尝试,因为它已经在与用户通信。在这种情况下,攻击者首先需要关闭当前合法用户和PLC之间的在线会话。通过启用TIA门户软件中的“在线”功能,用户可以与S7 PLC建立在线会话。然后他可以控制,监控,诊断,下载,上传远程启动和停止CPU。一旦用户与PLC建立了在线连接,双方(TIA门户和PLC)就开始定期在会话中交换特定消息。此消息称为S7-ACK,负责保持会话活动。TIA门户必须始终使用S7-ACK重放消息响应PLC发送的任何S7-ACK请求。因此,为了关闭当前的在线会话,我们运行我们的MITM站,它允许我们通过执行众所周知的ARP中毒方法来拦截和丢弃从TIA门户发送的所有数据包。如果PLC在发送确认请求后没有立即收到来自TIA门户的响应,它将关闭与已连接的TIA门户的连接,并且两者都将离线。值得一提的是,攻击者还可以使用不同的方式来关闭连接,例如端口窃取、使用“离线”数据包进行重放攻击等。在合法的TIA门户和受害者PLC都脱机后,攻击者可以使用自己的TIA门户轻松地与PLC建立新的会话。然后,他按照前面案例中解释的相同四个步骤修补受害者设备。对于这种情况,我们的攻击方法有局限性。合法的TIA门户被迫关闭与PLC的会话。这意味着,用户可以清楚地看到他失去了与远程设备的连接。成功注入后,攻击者离线并关闭与目标PLC的当前通信会话。在下一个执行周期中,攻击者的程序将在PLC中执行。这意味着,恶意中断块OB10的中断条件将在每个执行周期中被检查。只要不满足中断条件,该块就保持在空闲模式,并隐藏在PLC的存储器中。一旦配置的攻击日期和时间与CPU的日期和时间匹配,中断代码将被激活,即主程序(OB1)的执行过程被暂停,CPU跳转到执行攻击者用来编写OB10的所有指令。在我们的应用示例中,我们对OB10进行了编程,当我们与目标网络完全断开连接时,强制某些电机在特定时间和日期关闭。攻击实验中所使用到的恶意OB10如下图所示:总结
与思路扩展
本文介绍了Zui新的SIMATIC PLC面临的新威胁。我们的攻击方法是基于一旦攻击者获得目标网络的访问权限,就注入攻击者的恶意代码,但稍后激活其注入程序,而无需在攻击时连接。我们的调查发现了S7-1500 PLC使用的新完整性方法中的一些设计漏洞。根据我们的发现,我们成功地进行了注入攻击,通过篡改测试PLC的TOD中断块(OB10)。这个块允许我们激活我们的程序,并随后影响物理过程,而不是攻击者连接PLC后便立即攻击。我们的实验结果表明,当PLC运行攻击者的程序时,原始的控制逻辑程序总是显示给用户。此外,我们的注入不会增加控制逻辑的执行次数。因此,当我们的注入处于空闲模式时,物理进程不会受到影响。相关产品
产品分类
联系方式
- 电 话:13922889745
- 经理:向小姐
- 手 机:18475208684
- 微 信:18475208684