核电厂安全级DCS拒绝服务攻击及防御策略研究

2020-11-25 08:06王超莹刘朝晖刘明明
自动化与仪表 2020年11期
关键词:传输层网络层应用层

王超莹,陈 智,张 谊,刘朝晖,刘明明

(1.南华大学 计算机学院,衡阳421001;2.中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都610213)

随着互联网技术的快速发展,工业化与信息化不断融合,针对工业控制系统特别是核电厂控制系统的安全事故时有发生,引起了世界各国政府和社会各界的高度关注,核电领域的信息安全建设也成为研究的热点。2010年,伊朗布什尔核电站遭受“Stuxnet”[1]病毒的攻击,让数千台离心机超载,给核电厂造成了巨大的物理性破坏。2016年4月,德国Gundremmingen 核电站的计算机系统遭受网络攻击,核电站操作员为防不测,关闭了发电厂[2]。种种迹象表明核电厂的信息安全形势已经非常严峻。

核电厂安全级数字化仪表与控制系统DCS(digital control system),是核反应堆的“中枢神经”,能够提供对核电厂偏离正常运行工况的探测,同时驱动相应的安全功能,以使电厂安全停闭并维持安全状态,从而保证在事故情况下反应堆、人员和环境的安全。拒绝服务攻击是一种十分常见又难以解决的入侵性攻击,是破坏网络服务可用性的主要手段。一旦安全级DCS 遭受拒绝服务攻击则可能会导致系统不能被合法用户访问,或者系统操作和功能延迟,从而危及核电厂安全。基于上述背景,在此搭建了安全级DCS 试验平台并对其进行拒绝服务攻击测试,并根据系统遭受拒绝服务攻击的情况研究合适的防御策略。

1 安全级DCS 的特点及脆弱性

1.1 安全级DCS 的特点

首先与传统的模拟技术相比,采用数字化技术的安全级DCS 具有不易老化,便于变更和维护,可对故障自诊断等优点。另外,在部署环境的选择上,安全级DCS 通常采用与互联网物理隔离的方式,以便尽可能减少外界不法分子对核电厂的网络攻击行为。

按照核电厂安全设计准则的要求,单一故障准则[3]是反应堆保护系统必须满足的要求,因此,核电厂安全级DCS 平台中多处采用了冗余设计,为系统的可靠性提供了强力的保障。根据IEC 603-1991[4]的规定“安全系统应在设计基准所列的全部适用条件下完成所承担的安全功能”,安全级DCS在投入使用前通过进行温度试验、湿度试验、抗震试验等各种环境鉴定试验,确保了系统的完整性。安全级DCS 提供了手动操作所需要的人机界面,为操纵员提供了后备操作手段,是系统可操作性的体现。

除此之外,根据不同的应用场景,安全级DCS还具有多样性和纵深防御、安保性、兼容性、可维护性、可持续性、灵活性、经济性等关键特性[5]。

1.2 软件脆弱性

软件脆弱性是指软件在需求分析、设计、编码和运行阶段存在的某些漏洞。当软件在网络环境中运行时,攻击者可以利用该漏洞危害系统的安全[6]。对于核电厂安全级DCS 而言,脆弱性的存在可能会导致系统的可用性、完整性以及机密性受到不同程度的影响,为核电站的安全稳定运行带来隐患。在此从两个方面对安全级DCS 的脆弱性进行分析。

1)从安全级DCS 平台设计漏洞的角度 平台工程师站的相关软件在设计之初通常未考虑到对输入数据中非法字段的检测,留下了注入攻击的安全隐患,同时工程师站不限制非授权应用软件的安装,可能会引入软件冲突等未知风险[7]。另外,网关站作为安全级DCS 平台与其他非安全系统通信的接口,通常会使用Modbus 等公有通信协议,给攻击者通过解析协议对平台进行攻击带来了可能性。

2)从安全策略配置的角度 安全级DCS 的工程师站通常安装在Windows 7,Windows XP 等较早版本的操作系统上,操作系统未及时修补的漏洞就给恶意攻击者带来了可乘之机。通过对操作系统开启的服务、端口的非法利用,以及通过预留接口进行移动存储介质接入,攻击者也可轻易地侵入工程师站。若工程师站连接的网络交换机存在预留接口,也会被攻击者所利用,通过外部设备接入交换机的方式,对系统的安全性构成威胁。

2 拒绝服务攻击

拒绝服务攻击DoS(Denial-of-Service)是指攻击者向被攻击对象(服务器)发送大量数据包,试图耗尽其网络带宽或系统资源,使其无法提供正常服务的一种恶意行为[8]。拒绝服务攻击的原理如图1所示。

图1 拒绝服务攻击原理Fig.1 Schematic of denial of service attack

根据攻击发生的网络层次可以将常见的拒绝服务攻击划分为2种形式,基于网络层/传输层的拒绝服务攻击、基于应用层的拒绝服务攻击。

2.1 网络层/传输层拒绝服务攻击

此类攻击通过发送大量TCP,UDP,ICMP,以及DNS 数据包来淹没被攻击者的路由器、交换机等基础设施的方式,达到耗尽被攻击对象的网络带宽,使其无法为合法用户提供连接服务的目的。典型的攻击方式有:SYN Flood[9],ACK Flood,UDP Flood[10],等。对于此类攻击时,攻击者可以选择不同的攻击速率来启动攻击,可以是以一个稳定的速率发送流量的恒定速率攻击法,也可以使用增长速率法。

2.2 应用层拒绝服务攻击

应用层拒绝服务攻击通过耗尽服务器有限的可用资源如内存、磁盘、套接字等,来破坏正常用户对服务器的访问。与网络层/传输层拒绝服务攻击的不同是,此类攻击消耗的带宽较低,因此很难使用流量分析的方式识别到它。

3 针对核电厂安全级DCS 的拒绝服务攻击

虽然安全级DCS为了保证可靠性在多处采用冗余设计,但其系统资源仍然有限,应用层拒绝服务攻击依旧有可能对系统造成威胁,影响系统可用性。此外,在核电厂安全级DCS 的设计中没有流量控制机制,因此在遭受网络层/传输层拒绝服务攻击时可能会导致其通信带宽被大量非法占用,影响系统内部或与其他系统之间的正常通信连接。

3.1 拒绝服务攻击的测试点选择

在安全级DCS 平台的设计中,除工程师站和网关站之外都属于1E 级设备,它们彼此之间使用私有安全协议进行通信,具有较高的安全性。因此,在选择拒绝服务攻击的测试点时,仅需考虑使用通用协议的通信链路上的设备,包括工程师站与安全级设备进行通信的维护网络以及与非安全级设备相连接的网关站。

根据美国仪器仪表协会提出的ISA99 参考模型[11],可将ICS(industrial control system)整理为4个层次,如图2所示。

图2 工业控制系统分层参考模型Fig.2 Hierarchical reference model of industrial system

在此所讨论的安全级DCS,限定于图2所示第1 层设备与第2 层、第3 层组件的通信。通过分析平台通信路径发现,工程师站与安全级设备之间的通信传输均经过了网络交换机与协议转换模块2种设备,但是商用交换机的各种安全测试已有相当成熟的研究成果,且本文研究的目的是为安全级DCS研发者对自研产品的安全加固提供指导建议,因此商用交换机的测试及防御策略研究不在本文讨论范围之内。而协议转换模块为安全级DCS 平台的一部分,通常由DCS 平台的研发人员一同研发,在经过拒绝服务攻击测试后,相关研发人员能够对其进行完善和修改。故在维护网络上,选择协议转换模块作为本次拒绝服务攻击的测试点。

网关站作为安全级DCS 平台与其他系统通信进行数据交换的接口,负责将信息从安全级系统发送到非安全级系统的单向通信,对保障安全级设备的信息安全有着至关重要的作用。攻击者除了通过对Modbus 协议解析对平台进行攻击外,还可能通过直接对网关站进行攻击的方式破坏网关站的功能,并通过网关站发送不安全数据至安全级设备,对安全级设备的运行、状态信息进行修改。因此有必要将网关站作为拒绝服务攻击的一个测试点。

3.2 试验环境

选择某核电厂安全级仪控系统作为此次试验的被攻击对象,其工程师站软件安装在Windows 7操作系统的PC 上;试验所需其他软件为Python 3.7,Kali-Linux 操作系统,hping3。试验拓扑如图3所示,图中A 和B为此次试验的攻击测试点。

图3 拒绝服务攻击试验拓扑图Fig.3 Experimental topology of denial of service attack

3.3 试验过程

此次试验分别针对平台网关和协议转换模块,进行网络层/传输层拒绝服务攻击和应用层拒绝服务攻击。

针对网关的攻击测试,首先使用Python 编写攻击脚本,不断向网关非安全模块发送socket 连接,试图耗尽网关站的连接资源,属于应用层拒绝服务攻击;网络层/传输层拒绝服务攻击则是部署在Kali-Linux系统上的hping3 工具完成,通过hping3 制造SYN Flood,TCP Flood,UDP Flood 三种泛洪攻击包,试图耗尽网关站与非安全级系统连接的网络带宽。

针对协议转换模块的攻击与网关类似,由部署在Kali-Linux系统上的hping3 工具完成网络层/传输层拒绝服务攻击,通过编写Python 脚本,不断向协议转换模块发送socket 连接完成应用层拒绝服务攻击。

3.4 结果与评估

对网关及协议转换模块的DoS 攻击结果见表1。

表1 DoS 攻击结果Tab.1 DoS attack results

结果评估如下:在多次反复试验中,协议转换模块在2种拒绝服务攻击下都出现了功能失效的情况,导致工程师站组态软件下装失败,并且在工程师站无法获取协议转换模块的IP 地址。而网关站在分别遭受网络层/传输层拒绝服务攻击和应用层拒绝服务攻击的情况下,其单向通信功能均未受到影响。

网关与协议转换模块在同样的攻击条件下,其结果之间表现出了巨大的差异。其原因分析如下:协议转换模块在设计之初,未考虑到遭受安全威胁攻击的情况,也未进行流量控制的设计,因此在其遭受拒绝服务攻击时,大量的流量连接包将其淹没,使其可用性遭到破坏。网关站在设计时考虑到与外部非安全系统的连接,添加了白名单系统,仅能响应白名单内的IP 地址的连接请求,对于hping3 制造的随机源IP 地址攻击包进行了拦截。

4 防御措施及预期效果

针对安全级DCS 平台在试验过程中表现出不能抵御拒绝服务攻击的情况,应设计添加有效的防御措施对其进行防御。设置拒绝服务攻击防御措施的目的,是在系统遭受攻击后能够尽快发现攻击的存在,并且在尽可能靠近攻击源的位置对攻击进行阻断。可根据拒绝服务攻击的2种不同形式对其现有防御策略研究成果进行分类。

针对基于网络层/传输层拒绝服务攻击的防御技术可以分为四类:①基于攻击源的检测技术,在攻击源附近部署检测系统,防止客户端产生拒绝服务攻击;②基于网络的检测技术;③基于目标的防御技术,在服务器处部署检测和响应设备,或采用蜜罐技术在服务器端捕获拒绝服务攻击流量包;④分布式技术,在来源、目的或中间网络等多个点部署混合防御系统[12]。

针对基于应用层拒绝服务攻击的防御技术可以分为两类:基于服务器端的防御技术;分布式防御技术。

由于安全级DCS 与传统IT 信息系统的系统构造存在较大差异,主要表现在:在安全级DCS 的设计中,通常将下位机的安全级硬件设备作为服务器端,而工程师站、操作员站等上位机作为客户端。因此,在IT 信息系统上,适用的拒绝服务攻击的防御措施,不一定适合于安全级DCS 平台。

由于协议转换模块与网关站均使用硬件平台,作为实现其安全隔离功能的方式,从减少对系统硬件更改的角度,选择在工程师站所依赖的PC 端上部署软件防御系统更为简单方便。即选择基于攻击源检测技术的拒绝服务攻击防御策略,在接入到安全级DCS 的每台PC 上均部署防御系统,在源头上捕获并过滤掉拒绝服务攻击的流量包,能够对网络层/传输层拒绝服务攻击起到较好的防御作用,对应用层拒绝服务攻击起到一定的防御作用。

另外,针对协议转换模块受拒绝服务攻击较严重的情况,可以参考平台网关使用白名单方式控制外部系统与安全级DCS 的连接,在协议转换模块上配置白名单IP,只响应来自白名单的主机请求,则可以很好地抵御来自未知IP 地址的DoS 攻击,对网络层/传输层拒绝服务攻击有较好的防御能力。

5 结语

作为信息安全领域巨大的安全威胁,拒绝服务攻击问题始终没有得到有效的解决,但是拒绝服务攻击给信息化系统,特别是工业控制系统,带来的危害是十分严重的。在对拒绝服务攻击的防御研究上,IT 行业也提出了各种不同的防御策略,由于核电厂安全级DCS 与传统IT系统的系统架构与内在需求都不同,所以很多方法并不能够直接应用在核电安全级DCS 上。在此通过对某核电厂安全级DCS 安全特性的分析,找出其易受攻击的脆弱点。以此为基础搭建了试验平台,采用渗透测试的方式对平台开展了模拟拒绝服务攻击研究,证实了理论分析结果。最终,根据平台受攻击影响程度,针对性地提出了有效的防御策略。其研究成果将对该DCS 平台信息安全防范技术的深入研究提供借鉴。

猜你喜欢
传输层网络层应用层
基于Python语言的网络传输层UDP协议攻击性行为研究
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
基于物联网GIS的消防智能巡检系统设计与实现
论物联网安全威胁及其应对策略
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用
物联网无线通信传输层动态通道保障机制
浅析TDCS/CTC系统中心网络防火墙的链接