西门子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,,,,,,,,职能码执行阶段。。。。。
图1 S7Comm-Plus和谈交互流程
密钥认证成功后方可进入职能码执行阶段,,,,,,,,图2为四次握手认证具体流程。。。。。
图2 四次握手认证
(1)TIA向PLC发送M1开启一个新的会话。。。。。
(2)PLC将返回给TIA一个响应包M2,,,,,,,,M2蕴含 PLC固件版本和随机数ServerSessionChallenge,,,,,,,,长度20个字节。。。。。
图3 M2认证数据包
(3)TIA收到M2后,,,,,,,,将向PLC发送M3,,,,,,,,M3中蕴含SecurityKeyEncryptedKey(图4中红色框所示)。。。。。其中,,,,,,,,Magic字段为0xfee1dead,,,,,,,,长度180字节。。。。。SecurityKeyEncryptedKey里蕴含3个关键的加密字段(图4中蓝色框所示)。。。。。
图4 M3认证数据包
(4)PLC收到M3后,,,,,,,,进行密钥认证。。。。。若认证成功,,,,,,,,向TIA回复M4数据包。。。。。
四次握手认证实现后,,,,,,,,TIA向PLC发送职能码数据包,,,,,,,,职能码数据包中蕴含IntergrityPart字段,,,,,,,,如图5所示。。。。。PLC收到职能码数据包后,,,,,,,,首先校验IntergrityPart字段,,,,,,,,若校验通过,,,,,,,,执行相应职能码。。。。。
图5 stop职能码数据包
算法分析
固然主机TIA与PLC之间的认证引入了非对称加密算法,,,,,,,,但是PLC与主机之间并没有进行绑定,,,,,,,,因而依然存在安全问题,,,,,,,,攻击者能够伪造成一个恶意的主机/工作站,,,,,,,,利用已知的公钥及加密算法,,,,,,,,对PLC进行犯法节造或者中央人攻击。。。。。
下面介绍密钥天生算法流程。。。。。
图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)。。。。。
图7 M3数据包结构
缝隙复现
我们对OMSp_core_managed.dll进行逆向分析,,,,,,,,通过挪用关键接口函数,,,,,,,,机关四次握手加密认证数据包。。。。。攻击端首先发送认证数据包,,,,,,,,密钥认证实现后发送stop职能码,,,,,,,,成功使得西门子PLC S7-1500终场运杏祝。。。。
正常运行时,,,,,,,,PLC S7-1500运行批示灯为绿色。。。。。运行状态如图8所示。。。。。
图8 攻击前PLC正常运行
发送攻击剧本后,,,,,,,,PLC S7-1500运行批示灯变为黄色,,,,,,,,PLC终场运行,,,,,,,,PLC状态如图9所示。。。。。
图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


京公网安备11010802024551号