CA168首页 > 自动化信息 > 综合信息 > 信息详情

SCADA系统DNP3.0总线的安全性分析及测试方法研究(二)

发布日期:2015-01-20 来源:中国软件评测中心作者:网络
  2 标准DNP3.0工业总线安全性测试
 
  对SCADA系统的攻击可能来自于多个途径,比如外部的入侵者、内部的恶意员工或硬件错误等[ ]。常见的攻击行为包括中间人攻击、拒绝服务攻击、窃听等。由于DNP3.0协议是开放标准,所以DNP3.0协议的报文结构、数据格式都是公开的,DNP3.0协议的报文在传输过程中很容易被截取、监听、修改,降低了通信网络的安全性。
 

 

  为了对标准DNP3.0工业总线安全性进行测试,搭建SCADA系统工业总线协议测试环境,被测SCADA系统主要由主站服务器和外站PC组成,其网络示意图如图 1所示。测试过程中,入侵者通过DNP 3.0总线接入被测网络,模拟入侵者对DNP3.0总线进行攻击,通过测试机观察被测系统的工作状态。

  图 1 测试环境示意图

 

  2.1 中间人攻击

 

  DNP3.0总线协议中,并不是通过设备地址来区分主站和外站,而是通过报文中链路层报文头的DIR位进行判断。当DIR=1,则当前报文是主站到外站的报文;当DIR=0,则当前报文是外站到主站的报文。由于DNP3.0总线协议对主站和外站的判断方法非常简单,所以相对于其他协议更容易受到中间人攻击(Man-in-the-Middle Attack)。

 

  执行中间人攻击时,入侵者直接或间接接入被攻击的SCADA系统的网络中,入侵者先保持静默,拦截总线上的正常报文,获取当前总线上的设备地址,然后模拟系统的主站或外站,向系统内的某个合法设备发送错误的报文,使SCADA系统工作异常。中间人攻击可以分为模仿主站攻击和模仿外站攻击。

 

  在模仿主站攻击过程中,入侵者在获得攻击对象的地址等关键信息后,模仿主站向被攻击外站发送非正常控制指令。入侵者先监听正常报文,得知某关键外站地址为0x10,则产生一个控制报文,将目的地址设为0x10,应用层的功能码设为0x15,该命令可使外站停止发送非请求报文,防止该外站向合法主站发送异常报警信息;然后入侵者再产生第二个报文,目的地址仍为0x10,应用层的功能码设为0x12,该命令可使外站的应用程序停止工作,而主站并不会收到外站发来的异常报文。

 

  在模仿外站攻击过程中,入侵者在获得某个关键外站的工作特性后,模仿外站对主站的请求报文做出虚假响应,使主站对当前系统状态做出错误判断。入侵者接入总线后获取报文,得知某外站返回的储液罐的液位数值稳定在10左右之后,先如前文所述使外站的应用停止工作,然后当主站发出功能码为0x01的报文读取外站数据时,入侵者模拟外站发出液位数值为5的响应,主站就会发出加大储液罐进水流量的命令。在实际现场环境中可能会使储液罐液体溢出,造成事故。

 

  中间人攻击的流程如图 2所示。

图 2 中间人攻击的流程

2.2 拒绝服务攻击

DNP3.0总线协议支持两种数据采集方式,一种是主站发送数据采集请求,然后外站发出响应报文,回复数据;第二种是外站直接发送非请求报文,将数据上送到主站。由于在第二种方法中,外站不需要主站允许就可以发送数据报文,所以入侵者可以利用该功能向主站进行拒绝服务攻击。

在拒绝服务攻击中,入侵者向被攻击对象持续、快速、大量发送无意义的报文,使被攻击者忙于应付这些无意义的报文,而无法执行正常操作,进而使系统瘫痪。

在攻击之前,入侵者先监听正常报文获得主站地址,然后发送大量功能码为0x82的非请求报文,消耗主站资源,使其无法响应其他外站的正常通信报文。

拒绝服务攻击的流程如图 3所示。

图 3 拒绝服务攻击的流程

TAG: SCADA
[信息搜索] [] [告诉好友] [打印本文] [关闭窗口] [返回顶部]

上一篇:包装企业拓宽成套自动专业生产线领域

下一篇:SCADA系统DNP3.2总线的安全性分析及测试方法研究(三)

免责申明

       本文仅代表作者个人观点,与中自网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!来源网络如有误有侵权则删。

视觉焦点