西门子PLC S7-1500缝隙分析与复现

颁布功夫 2020-04-23

钻研布景


西门子PLC宽泛使用在各行业的工业节造系统上,,,,,,,,好比钢铁、石油、化工、电力、建材、机械造作、汽车、轻纺、交通运输、环保及文化娱乐等行业,,,,,,,,其安全性直接关乎国度民生安全。。。。。


2019 BlackHat USA会议上,,,,,,,,安全钻研员Sara Bitan指出西门子PLC最新的通讯和谈S7Comm-Plus存在安全问题。。。。。为此,,,,,,,,8827太阳集团ADLab对有关缝隙进行钻研,,,,,,,,并在西门子S7-1500设备上复现了攻击成效。。。。。


西门子PLC和谈


西门子PLC蕴含S7-200、S7-300、S7-400、S7-1200以及S7-1500等多个系劣祝。。。。S7-200/300/400系列PLC选取早期的西门子私有和谈S7comm进行通讯,,,,,,,,S7-1200/1500系列PLC选取西门子S7Comm-Plus和谈进行通讯。。。。。


S7Comm-Plus和谈在S7comm基础上引入了密钥�; ;; ;;;;せ�,,,,,,,,以匹敌会话劫持、沉放攻击和中央人攻击等。。。。。TIA与PLC交互过程可分为以下4个阶段:


(1)TCP Connection。。。。。

(2)COTP Connection。。。。。

(3)S7Comm-Plus Connection,,,,,,,,即四次握手密钥认证阶段。。。。。

(4)S7Comm-Plus Function,,,,,,,,职能码执行阶段。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图1 S7Comm-Plus和谈交互流程


密钥认证成功后方可进入职能码执行阶段,,,,,,,,图2为四次握手认证具体流程。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图2 四次握手认证


(1)TIA向PLC发送M1开启一个新的会话。。。。。

(2)PLC将返回给TIA一个响应包M2,,,,,,,,M2蕴含 PLC固件版本和随机数ServerSessionChallenge,,,,,,,,长度20个字节。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图3 M2认证数据包


(3)TIA收到M2后,,,,,,,,将向PLC发送M3,,,,,,,,M3中蕴含SecurityKeyEncryptedKey(图4中红色框所示)。。。。。其中,,,,,,,,Magic字段为0xfee1dead,,,,,,,,长度180字节。。。。。SecurityKeyEncryptedKey里蕴含3个关键的加密字段(图4中蓝色框所示)。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图4 M3认证数据包


(4)PLC收到M3后,,,,,,,,进行密钥认证。。。。。若认证成功,,,,,,,,向TIA回复M4数据包。。。。。

四次握手认证实现后,,,,,,,,TIA向PLC发送职能码数据包,,,,,,,,职能码数据包中蕴含IntergrityPart字段,,,,,,,,如图5所示。。。。。PLC收到职能码数据包后,,,,,,,,首先校验IntergrityPart字段,,,,,,,,若校验通过,,,,,,,,执行相应职能码。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图5 stop职能码数据包


算法分析


固然主机TIA与PLC之间的认证引入了非对称加密算法,,,,,,,,但是PLC与主机之间并没有进行绑定,,,,,,,,因而依然存在安全问题,,,,,,,,攻击者能够伪造成一个恶意的主机/工作站,,,,,,,,利用已知的公钥及加密算法,,,,,,,,对PLC进行犯法节造或者中央人攻击。。。。。


下面介绍密钥天生算法流程。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图6 密钥天生算法


主机(TIA)随机天生20字节的PreKey,,,,,,,,使用类椭圆曲线加密算法和公钥加密PreKey,,,,,,,,作为Keying materaial 1(对应图7中M3数据包的EG1、EG2)。。。。。


主机(TIA)凭据PreKey推算KDF,,,,,,,,并由今天生CEK(Checksum Encryption Key),,,,,,,,CS(Checksum Seed),,,,,,,,KEK(Key Encryption Key)。。。。。


主机(TIA)将Challenge和KDK相结合,,,,,,,,使用AES-CTR加密算法和KEK进行加密,,,,,,,,其了局作为Keying material 3(对应M3数据包中的EncryptedChallenge和EncryptedKDK)。。。。。


主机(TIA)用CS和Keying material 3进行哈希运算(Tabulation Hash),得到了局TB-HASH。。。。。


主机(TIA)使用AES-ECB算法和CEK来加密TB-HASH并得到了局Keying material 2(对应M3数据包中的EncryptedChecksum)。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图7 M3数据包结构


缝隙复现


我们对OMSp_core_managed.dll进行逆向分析,,,,,,,,通过挪用关键接口函数,,,,,,,,机关四次握手加密认证数据包。。。。。攻击端首先发送认证数据包,,,,,,,,密钥认证实现后发送stop职能码,,,,,,,,成功使得西门子PLC S7-1500终场运杏祝。。。。


正常运行时,,,,,,,,PLC S7-1500运行批示灯为绿色。。。。。运行状态如图8所示。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图8 攻击前PLC正常运行


发送攻击剧本后,,,,,,,,PLC S7-1500运行批示灯变为黄色,,,,,,,,PLC终场运行,,,,,,,,PLC状态如图9所示。。。。。


8827太阳集团(Macau)股份有限公司-Official website

图9 攻击后PLC终场运行


安全建议


西门子官方已颁布安全补丁!�。。。�


https://cert-portal.siemens.com/productcert/pdf/ssa-232418.pdf

https://cert-portal.siemens.com/productcert/pdf/ssa-273799.pdf


幼 结


在本次钻研中,,,,,,,,我们分析了西门子S7系列最新的通讯和谈S7Comm-Plus。。。。。固然主机与PLC之间的通讯和谈选取了壮大的加密算法,,,,,,,,但是PLC并没有对TIA进行认证,,,,,,,,使得攻击者能够假装成一个恶意的TIA,,,,,,,,在其通讯过程中插入肆意指令,,,,,,,,如PLC的启停指令,,,,,,,,即可达到远程节造PLC的成效。。。。。除此之表,,,,,,,,一样型号/固件版本的PLC,,,,,,,,其私钥齐全一样,,,,,,,,这意味着同样的攻击步骤合用于所有一样的PLC。。。。。


参考链接:

[1]https://i.blackhat.com/USA-19/Thursday/us-19-Bitan-Rogue7-Rogue-Engineering-Station-Attacks-On-S7-Simatic-PLCs.pdf

[2]https://i.blackhat.com/USA-19/Thursday/us-19-Bitan-Rogue7-Rogue-Engineering-Station-Attacks-On-S7-Simatic-PLCs-wp.pdf

[3]https://www.secshi.com/30290.html