表 3 主站服务器中预置的白名单
外站PC-1中预置的白名单如表 4所示。
表 4 外站PC-1中预置的白名单
外站PC-2中预置的白名单如表 5所示。
表 5 外站PC-2中预置的白名单
主站发出含标识值的链路复位报文如表 6所示。
表 6 含标识值的请求报文
其中第一行为符合标准DNP3.0总线协议的链路复位请求报文内容。第二行为外站根据标识码和报文内容计算得到的标识值。计算方法是将标识码与链路层报文头中的第3、4字节相加。
入侵者尝试模拟主站向外站PC-1发送链路复位请求报文,因为入侵者不知道标识码及其算法,所以无法发送正确的标识值,报文如表 7所示。
表 7 入侵者发出的请求报文
因为标识值与预期不符,外站PC-1收到该请求报文后将其丢弃,不予响应。
该安全策略的缺陷是,入侵者可以先采用中间人攻击方法,模拟主站使外站停止工作,然后主站会向外站发送链路复位请求报文,此时入侵者就可以读取该报文,获得正确的标识值后,再向外站PC-1发送大量链路复位请求报文,展开拒绝服务攻击。
4.3 窃听攻击防护效果
主站根据外站PC-1的公钥对链路复位请求报文进行加密,如表 8所示。
表 8 加密后的请求报文
报文中的链路层功能码由0xC0加密为0xD1。
由于入侵者不知道私钥,所以不能对加密后的报文正确解密,无法正确解析报文内容。
该安全策略的缺陷是,私钥相对固定,而入侵者在进行窃听攻击时不容易被察觉,所以可以长时间进行窃听并收集大量的加密报文,通过破解算法,有可能计算得到私钥,使加密报文内容的安全策略失效。
5 结论
本文分析了SCADA系统中DNP3.0总线协议的安全性风险,在对标准DNP3.0总线协议进行入侵测试的基础上,提出了相应的安全应对策略,利用报文截取与分析技术对采用了安全策略的DNP3.0总线协议进行了测试。实验结果表明本文所提出的安全应对策略方法可以在一定程度上抵御SCADA系统中DNP3.0总线协议的攻击行为,但是每种安全策略均有其局限性,应当根据SCADA系统的实际使用环境,采用针对性强的安全应对策略,才能有效提高SCADA系统的安全防护能力。