产品名称 | SIEMENS云南省昆明市西门子(授权)中国总代理-西门子西南地区一级总代理商 |
---|---|
公司名称 | 湖南西控自动化设备有限公司 |
价格 | .00/件 |
规格参数 | |
公司地址 | 中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301 |
联系电话 | 15344432716 15386422716 |
虽然主机TIA与PLC之间的认证引入了非对称加密算法,但是PLC与主机之间并没有进行绑定,因此仍然存在安全问题,攻击者可以伪造成一个恶意的主机/工作站,利用已知的公钥及加密算法,对PLC进行非法控制或者中间人攻击。
下面介绍密钥生成算法流程:
图6 密钥生成算法
主机(TIA)随机生成20字节的PreKey,使用类椭圆曲线加密算法和公钥加密PreKey,作为Keying materaial1(对应图7中M3数据包的EG1、EG2)。
主机(TIA)根据PreKey计算KDF,并由此生成CEK(Checksum Encryption Key),CS(ChecksumSeed),KEK(Key Encryption Key)。
主机(TIA)将Challenge和KDK相结合,使用AES-CTR加密算法和KEK进行加密,其结果作为Keying material3(对应M3数据包中的EncryptedChallenge和EncryptedKDK)。
主机(TIA)用CS和Keying material 3进行哈希运算(TabulationHash),得到结果TB-HASH。
主机(TIA)使用AES-ECB算法和CEK来加密TB-HASH并得到结果Keying material2(对应M3数据包中的EncryptedChecksum)。
图7 M3数据包结构
4.漏洞复现
我们对OMSp_core_managed.dll进行逆向分析,通过调用关键接口函数,构造四次握手加密认证数据包。攻击端首先发送认证数据包,密钥认证完成后发送stop功能码,成功使得西门子PLCS7-1500停止运行。
正常运行时,PLC S7-1500运行指示灯为绿色。运行状态如图8所示。
图8 攻击前PLC正常运行
发送攻击脚本后,PLC S7-1500运行指示灯变为黄色,PLC停止运行,PLC状态如图9所示。
图9 攻击后PLC停止运行