余鹏,王勇
(上海电力大学计算机科学与技术学院,上海200090)
传统配电网由于自愈能力差、实时控制性差、与用户互动性差等缺陷无法满足用户的需求,于是国家电网有限公司提出了智能配电自动化的概念[1]。配电自动化系统融合了通信技术、传感测量技术和控制技术等先进技术,使得智能电网具有更高的可靠性、自愈性和实时控制性,是智能电网的重要组成部分[2-4]。越来越多的配电终端设备通过有线专网、无线公网等通信方式接入配电网自动化主站系统,由于目前配电网防护薄弱以及网络攻击技术的进步,攻击者可以通过伪造终端身份、拒绝服务(DoS)攻击等方式对配电主站进行攻击[5]。
近些年,针对电力信息网络的攻击事件频发,2015 年12 月,黑客对乌克兰电网进行攻击,导致大规模停电,使得乌克兰70 万户居民断电数小时;2016年1月,以色列电力局遭受了严重的网络攻击,迫使关闭电力设施中被感染的计算机[6]。一系列的攻击事件引起安全专家对电力网络安全进行研究。
为研究配电自动化系统的通信安全,本文搭建了站所终端单元(DTU)与主站的通信系统,由于主站与DTU 采用的是传输控制协议(TCP)和特定端口进行通信,通过试验验证了该系统存在DoS 攻击的安全威胁,并提出基于白名单的防御机制。
配电自动化系统结构如图1 所示[7]。该结构非常清楚地表明了该系统的组成部分及组成形式,配电远方终端主要包括DTU、馈线终端单元(FTU)、变压器终端单元(TTU)等,这些设备被称为智能终端单元(STU)。DTU 作为配电自动化智能终端单元的一种,通常安装在开闭所(站),完成开关设备的电流、电压、功率等数据的采集和计算,并实现开关的分∕合闸操作及故障识别,从而保证配电网能快速切除故障,保证系统安全。
图1 配电自动化系统结构Fig.1 Structure of a distribution automation system
目前配电网中的终端用户大都是在线自动注册的,非法用户可以在系统重启时自动接入。配电终端设备与配电主站通信广泛采用了TCP 协议进行数据传输,由于TCP 协议设计缺陷以及配电终端设备分布广泛,配电主站易遭受DoS 攻击。DoS 攻击是一种通过消耗主机或网络资源,可使目标设备不能正常工作的、甚至停止服务的攻击方式[8]。DoS攻击可由一些公开的攻击软件发起,具有简单、难以防御且容易达到目的的特点,使DoS 攻击成为一种常见的攻击方式[9]。
针对电力信息网络存在的DoS 攻击威胁,大量学者进行了研究。文献[10]针对电力信息网络控制系统的脆弱性进行了分析,提出了一种脆弱节点的检测方法和防御策略,以此为基础设计了能够抵御DoS攻击的分布式控制器。文献[11]针对智能变电站过程层可能存在的物理设备故障和DoS攻击等造成的网络流量异常,提出了一种基于信息物理系统和差分序列方差的检测方法,通过试验验证可以识别DoS 攻击。文献[12]使用OPNET 软件对变电站进行DoS攻击并分析了智能电子设备的中央处理器的使用率、延时等效果。文献[13]针对分布式电力数据采集与监视控制(SCADA)系统可能存在的DoS 攻击的威胁,搭建了分布式电力SCADA 攻防平台,证明了分布式电力SCADA 系统存在SYN flood攻击的漏洞,提出随机早期检测(RED)算法与Reno拥塞控制防御算法,并证明了该算法可以有效弥补防火墙的短板。
本试验系统采用的硬件设备包括某厂商的DTU 设备、路由器、终端电脑和攻击者电脑,该系统的硬件设备物理连接示意及国际互连协议(IP)地址配置如图2 所示。由此可见,终端电脑充当主站通过路由器与DTU 设备进行相连,通过恰当的网络配置,DTU 设备与终端电脑就可以进行正常的通信。本文假设攻击者能够通过伪装身份接入到该局域网内,从而可以很容易地进行网络攻击。
图2 硬件设备物理连接示意及IP地址配置Fig.2 Physical connections and IP address configuration of the hardware
DTU 设备有相应的软件进行配套使用,在终端电脑通过配套软件进行相关设置,两者就可以进行通信。终端电脑可以遥测到相关数据并遥控终端设备等。完成网络配置后,使用Wireshark抓包软件对DTU 设备和终端电脑的通信数据包进行抓取,结果如图3所示。
图3 DTU与终端电脑通信数据包(截图)Fig.3 DTU and terminal computer communication data packet(screenshot)
由此可见,在DTU 设备和终端电脑之间主要通过TCP 协议进行数据传输,且双方分别使用6000端口和50431 端口进行通信,这也给该系统留下了安全隐患。当攻击者探明通信系统的IP 地址和使用的端口时,对系统发动DoS攻击,将使得通信端口堵塞从而无法进行正常的通信。
DoS 攻击是以破坏通信网络的可用性为目的的一种网络攻击。在智能电网中,DoS 攻击主要是通过对电力数据阻碍和延迟从而导致通信数据的不可用[14]。DoS 攻击作为一种资源耗尽型攻击,它利用网络协议漏洞或者软件缺陷等发起大量无用请求,消耗被攻击者的资源使得正常的通信无法继续进行。DoS 攻击方式有多种,常见的有Teardrop 攻击、Land攻击、SYN Flood攻击等,本文使用的DoS攻击为SYN Flood攻击。
SYN Flood 攻击是针对TCP 协议的漏洞来实施的,采用TCP 协议进行数据传输之前需进行3 次握手,而TCP∕IP 协议栈进行的连接和半连接的数量有限。SYN Flood 攻击原理如图4 所示,攻击者短时间内向目标主机发送大量的SYN 请求包,目标主机根据源地址回复1 个SYN+ACK 包,并等待返回ACK确认包。由于攻击者不会回复确认包,导致目标主机不会立即释放连接,使得被攻击者的资源被耗尽从而无法处理正常的连接请求。
本试验选用hping3 攻击软件生成随机源IP 地址对主站进行SYN Flood的DoS攻击,假设攻击方已经探明了目的IP 地址为198.120.0.100,目的端口为50431。进行攻击时,攻击方随机生成源地址IP,向目的IP 和目的端口发送大量的SYN 请求数据包,使用hping3 软件进行攻击的命令如图5 所示,攻击方仅使用了1 台主机进行攻击,当攻击方数量越多时损害也会越大。
图4 SYN Flood攻击原理Fig.4 SYN Flood attack principle
完成攻击后,在攻击承受方使用抓包工具进行抓包分析。在目标主机端抓包出现大量无效连接,无效的连接数据包如图6所示。攻击方向目标主机与DTU 的通信端口发送了大量的SYN 连接请求,目标主机直接拒绝所有连接[15]。由于存在大量无效连接会占用通信端口、网络带宽,使得中央处理器(CPU)使用率上升,终端电脑与DTU 的通信受到了影响,虽然通信并未中断,但会使采集数据的速度有所下降。在配电自动化系统中,主站与配电终端可以直接相连接,进行数据采集、传输和故障处理等操作,主站遭受攻击比配电终端遭受攻击的危害更大,可能导致主站数据处理延迟或者无法快速切除故障等隐患,最终导致系统故障或大面积停电等。
图5 使用hping3进行SYN Flood攻击的命令(截图)Fig.5 SYN Flood attack command with hping3(screenshot)
图6 SYN Flood攻击后无效的连接数据包(截图)Fig.6 Invalid connection packets after SYN Flood attack(screenshot)
传统的防火墙设置在网络边界,被称为边界防火墙。其通过在内部网和外部网之间建立相应的网络通信监控系统来对出入网络的传输进行访问控制,主要防御外部网络的攻击。但是实际中,有80%的网络攻击和非法访问来自网络内部。本文假设网络攻击来自局域网内部,这时边界防火墙就很难发挥作用。
本文提出采用Linux操作系统中的iptables防火墙对主机进行防护,通过建立白名单防护策略防御SYN Flood 攻击。Linux 的防火墙主要分为两大模块,应用规则管理工具iptables 和基于内核的netfilter 框架,利用iptables 编辑工具可以灵活地设计和修改防火墙规则。netfilter∕iptables 框架结构如图7所示[16],它主要包括数据包过滤表filter、网络地址转换表nat、数据处理表mangle。而每个表又包括多个链,filter 表包括INPUT,OUTPUT,FORWARD链 ;nat 表 包 括 OUTPUT,PREROUTING,POSTROUTING 链;mangle 表包括INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING 链。在每条链中又包括多条过滤规则。
图7 netfilter/iptables框架结构Fig.7 Framework of netfilter/iptables
白名单和黑名单都是访问控制形式,白名单对应的是允许行为或实体,黑名单对应的是不允许行为或实体。但是黑名单技术的规则特征库的更新一般会晚于被攻击者发现,所以很难做到提前防御[17]。白名单防护策略是指总体策略下是默认拒绝的,只有完全满足对应规则的数据包才能通过,如果请求的数据包中的规则特征存在一点不符合对应规则的情况就执行拒绝策略。电力生产现场的监控主机仅安装监控程序,其程序简单[18]。本文涉及的通信系统网络环境单一,适合使用白名单防护策略,维护和设置该防火墙规则较简单。复杂网络环境中的规则特征较多且复杂,设置和维护会很困难。
本文所述基于白名单的防护策略如图8 所示。首先对目的地址为本机的数据包进行过滤,检测源介质访问控制(MAC)地址和源IP 地址是否在白名单内,只有MAC地址和IP地址同时匹配才能接收数据包,否则丢弃。这样可以有效杜绝非授权设备对本主机的访问,达到防御SYN Flood攻击的目的。
假设合法终端的IP 地址为198.120.0.1,MAC地址为b4:4c:c2:78:00:01,设置规则如下:
root@kali:~#iptables-P INPUT DROP
图8 白名单防护策略Fig.8 Whitelist protection strategy
root@kali:~#iptables-A INPUT-s 198.120.0.1-p tcp -m mac --mac-source b4:4c:c2:78:00:01 -j ACCEPT
首先在终端电脑上将INPUT 链下的默认规则改为DROP,目的是将发送到主机的数据包全部进行丢弃。然后将DTU 设备的IP 地址和MAC 地址添加进白名单,这里并未对端口进行设定,此后只有IP 地址和MAC 地址都符合条件的情况下,TCP 数据包才能被本主机接收并处理。只要有1个条件不满足,都会将数据包进行丢弃并不予回应。
配置成功的白名单如图9 所示,当不在白名单内的攻击方对目标主机进行攻击时,发送的请求连接的数据包将被拦截后直接丢弃,目标主机不会进行任何回应。只有存在于白名单中的合法用户才可以访问本主机,从而达到防御作用。
该系统还可能存在另外一种形式的SYN Flood攻击。白名单中至少要添加1个由合法的IP地址和MAC 地址共同决定的合法用户,实际情况中甚至要求与其他多台主机进行通信。能力强的攻击方,有可能控制合法用户对目标主机发起SYN Flood 攻击,该合法用户位于白名单中。这时仅通过iptables防火墙设置的白名单策略就无法抵挡这类攻击。
对于劫持信任主机发起的DoS 攻击,可以对同一IP 地址每分钟发起的连接数进行限制。比如,可以限制客户端每分钟不得发起超过20 次连接的请求[19-22],否则对后面的数据包进行丢弃处理,设置如下。
图9 配置成功的白名单(截图)Fig.9 Successfully configured whitelist(screenshot)
该方法虽然无法完全杜绝SYN Flood 攻击的发生,但是可以有效降低劫持信任主机发起攻击所带来的影响。
本文分析了配电自动化系统的通信机制存在的安全隐患,搭建了配电终端DTU 与主站的通信系统,并对该系统进行了伪造IP 地址的SYN Flood 攻击且取得成功。为保证系统通信安全,本文提出了使用iptables防火墙构建白名单对主机进行防御,在白名单中设置合法用户的IP地址和MAC地址,当两者同时匹配时电力终端才可以与主站进行连接,该机制能有效防御攻击者进行攻击。本文针对劫持信任主机发起的攻击提出对数据包进行限速的方法,可以大大降低攻击者劫持信任主机发起SYN Flood攻击对系统的影响。