基于DPI技术的变电站网络异常检测研究∗
2020-05-15吴克河李梦雪张晓良
吴克河 李梦雪 张晓良 李 为
(华北电力大学控制与计算机工程学院 北京 102206)
1 引言
近年来,随着国家电网提倡的全球能源互联网的发展,工业控制系统间也开始形成大规模的互联[1],因此变电站网络的安全风险随之增加。与传统网络相比,现在的信息化网络存在大量漏洞,黑客也借此漏洞开始对变电站网络展开攻击,造成变电站网络的瘫痪,耗费了大量的人力与财力。2010年发生的“震网”事件,黑客注入的病毒攻破了整个伊朗核电站;2015年,乌克兰国家电网发生了大规模的停电[2],经调查是一种名为“BlackEnergy”的病毒侵入了电网,清除了电力系统大量的存储数据,造成系统瘫痪;2016年在以色列同样发生了一起网络攻击,造成了严重的经济损失。以上事件向全世界电力系统敲响了警钟,为确保变电站控制系统安全稳定的运行[3],本文提出了基于工控网络协议的分析,发现潜在的安全威胁,为提高电力工控系统的安全稳定运行提供支持。
2 相关技术理论
目前,随着网络信息化的发展,我们已跨入大数据时代,也正是因为海量数据的增加,网络通讯数据中会存在恶意流量,对网络设备、通讯设备产生安全威胁。为此,需要实时检测海量通讯数据中存在的异常,深度包检测(Deep Packet Inspection)技术是在传统数据包检测的基础上对应用层协议进行深度解析,传统数据包检测只是分析了数据包中源地址、目的地址、源端口、目的端口、协议类型,深度包检测技术不仅仅局限于传输层和网络层数据包头,而是深入到应用层数据包的有效载荷所封装的内容中,并且通过与特征库中的规则进行对比,数据包中哪些内容与特征库中的不符,将丢弃非法的数据包,图1为深度包检测过程。DPI技术主要分为以下三种关键技术。
1)“特征字”识别技术
“特征字”识别技术通常来讲是用于识别某种应用,不同的应用都依赖于不同的协议,每种协议都有不同的特征字,就相当于人类特有的“指纹”一样,通过这些“指纹”,包括字符串、特定的端口、特定的编码序列等来识别特有的应用协议[4]。“指纹”信息升级时,基于特征字的识别技术可实现对新协议的检测,方便进行功能扩展。
图1 深度包检测过程
2)应用层网关识别技术
应用层网关识别技术是针对业务流和控制流分离的某些业务,因为这些业务中业务流没有特征[4],因此采用应用层网关技术先识别控制流的协议,根据控制流的协议通过特定的应用层网关对其进行解析,从控制流协议的内容中识别相应的业务流。不同的协议都有特定的应用层网关对其进行分析。
3)行为模式识别技术
行为模式识别技术通过对终端已经实施的行为进行分析,对用户正在实施的动作或即将实施的动作做一个预判[5],可以通过分析上下行流量的比例、发送/接收数据包的频率、应用的连接数等识别应用类型。这种技术通常用于无法根据协议判断的业务的识别。
3 基于DPI技术的变电站网络异常检测
变电站网络在逻辑上分为三层两网的网络结构,三层包括站控层、间隔层、网络层。站控层设备包括监控主机、数据服务器、操作员站、数据通信网关等终端;间隔层设备包括继电保护装置、测控装置、网络记录分析仪等;过程层包括合并单元、智能终端等。两网主要为站控层网络、间隔层网络、过程层网络,全站通信采用高速工业以太网组成。站控层网络主要实现站控层与网络层之间的数据传输,采用MMS通信协议;过程层网络实现间隔层与过程层之间的数据传输,包括GOOSE网和SV网;间隔层网络实际上起到了承上启下的作用,在物理上可以映射到站控层网络,也可以映射到过程层网络[6~10]。
图2 三层两网架构
随着智能变电站在国内的逐步发展,与传统变电站相比,变电站控制系统中存在较大的网络安全隐患,因此,通过对变电站网络中所使用的通信规约进行分析,包括IEC61850、IEC104、用电信息采集等规约[11],实现对变电站控制系统操作的分析,对于网络中的设备操作进行分析,检测变电站控制系统是否存在异常操作并及时作出阻断,由此保障变电站控制系统的安全稳定运行[12~13]。
3.1 数据采集
在对实时数据进行分析前,需要获取变电站网络中的数据来源,将数据采集装置分布式部署在变电站站控层网络中,每台设备配有采集口、管理口、大容量存储介质,并与交换机端口进行连接,交换机端口为千兆网口,镜像网络数据,采用libpacp()函数包捕获数据包[14],包括通过站控层网络的所有通信数据流量,如IEC61850,用电采集协议等以及调度数据网中的IEC104规约(过程层SV和GOOSE采用直采直跳,暂不需要采集),分析所采集的网络数据包,按照相应协议标准对网络数据包进行解析,采集装置部署如图3所示。
图3 采集装置部署
3.2 工控协议深度解析
工控协议深度解析主要用DPI(深度包检测)技术分析采集到的网络数据包(此网络数据包是由变电站主站发送到从站的数据),根据端口号和特征字段识别出工业控制系统各类私有协议,如变电站网络通信协议中通常使用的的协议包括IEC61850、IEC104规约、用电采集信息、MODBUS等,通信协议分析流程如图4所示。
图4 通信协议分析流程图
本文主要以解析站控层网络MMS(制造报文规范)通信协议为例,MMS是解决设备之间实现实时数据交换与监控信息的国际报文规范,站控层和间隔层的通信采用抽象通信服务接口ASCI映射到MMS[15]。
1)首先确定MMS协议的格式,如图5所示,其中ASN.1是表示层的抽象语法描述,MMS与ASN.1采用了基本编码规则BER的编码格式:标识域(Tag)+长度域(Length)+值域(Value)。MMS定义了一组专用的tag值[16],通过MMS PDU的ASN.1定义和对应的数据结构的分析取出一对标签和值,调用相应的编码函数进行具体的编码。从接收的8位位组中依次取出MMS PDU的标签,产生一个空结构用来存放解码产生的值。然后根据整个MMS PDU的长度依次取出标签和长度,进行具体的解码,获得的信息填入结构中
2)按照相应MMS协议标准对获取的数据进行逐层解析,提取出关键的数据字段,匹配的主要字段为MAC(源地址-目的地址)、VLAN地段、APPID字段、APDU等。
图5 MMS通信协议格式
表1 MMS定义的相关类标记(Tag)值
(1)数据链路层通过网口抓取的MMS报文,获取接收方和发送方的MAC地址。
(2)网络层对部分数据内容进行解析,获取IC⁃MP协议、IP协议、ARP协议类型。
(3)传输层根据端口号2404识别MMS传输层协议TCP。
(4)会话层根据MMS协议建立面向会话的链接。
(5)表示层是MMS协议中ASN.1的抽象语言描述,根据相应的编码规则进行具体的编解码。
图6 AC算法工作流程
(6)应用层是根据IP五元组、端口号识别MMS协议,解析MMS协议头部,根据基本编码规则,判断功能标识符、数据长度及域值是否符合。根据协议中主要字段,用多模式字符串匹配(Aho-Cora⁃sick)算法对数据内容进行匹配[17]。
AC算法解析流程需要一个预处理过程,将待处理的匹配串输入到构造的字典树中,根据suc⁃cess函数构造success表,检查并创建失效函数,如果当前字符串匹配失败,将跳转前缀为前一个字符串匹配成功的节点继续匹配,直到输出函数不为空,输出匹配成功的字符串[18]。
3.3 异常检测
通过解析获取的数据,基于工控协议的分析,实时上传当前监测的网络数据流量,对变电站网络中的设备信息、网络通信等进行收集、形成电力工业控制系统特征指纹,并根据特征指纹建立策略规则。如网络通信流量阈值、黑/白名单、异常报文检测等策略。
1)基于流量阈值的异常检测
变电站工业控制系统中每台设备通信是会产生一定的通信流量,假设每台设备是一个节点,IP地址是每个节点的标识,记录两两节点之间的实时连接情况、实时流量、实时连接数、根据正常通信流量建立基线,实时监控节点通讯的最大带宽、最大实时连接数量、最大通讯间隔、最大外发流量和接收流量、发包频率和接收包频率是否超过设定的基线值,当超过基线值时,说明该设备正在进行异常操作,产生实时告警。
2)基于黑/白名单的异常检测
通过对变电站网络通信协议进行解析,分析应用层协议的关键操作信息,设置黑/白名单机制。每个应用层协议都有不同的功能码,每个功能码都象征不同的操作指令,黑名单指通信过程中存在的非法指令操作,如设置参数(0×04)、控制命令(0×05)、身份认证(0×06)、请求终端配置(0×09)、数据转发(0×10)、请求任务数据(0×0B)等重要操作指令,在通信过程中,将获取的数据包与黑名单的规则进行比对,若符合黑名单中的非法指令操作,说明该通信协议发出的操作指令为异常操作,将该数据包过滤掉。与之相对的则是白名单的设置,白名单是指可以通过的数据包所具有的特征,包括MAC地址、源/目的IP地址、源/目的端口、单元标识符以及功能码等,将获取的数据包与白名单的规则进行比对,若符合白名单的特征规则,则认为该数据包可以通过。
3)异常报文检测
由于变电站工业控制系统中的攻击日益复杂并且对系统的危害越来越大,如果完全通过流量特征或黑/白名单的设置来监测工业控制系统中存在的威胁不仅一直处于被动状态,还无法有效避免工业系统遭受攻击而带来的严重危害,因此需要对通信过程中异常报文的检测来提升系统的安全。
IEC61850协议畸形报文攻击,对协议报文不符合规约规定的格式进行检测并告警。
TCP/IP协议层风暴攻击,基于IP地址的阈值检测Syn Flood、Ping Flood、UDP Flood攻击。
IEC61850协议层风暴攻击,基于IP地址某工控协议的接收报文速率阈值检测。
IP无流量事件检测,在设定的时间内,单IP某服务的接收报文为零。
针对IEC61850协议的攻击,监测IEC61850协议异常检测规则。
4 应用测试
变电站工业控制系统的网络安全存在多种威胁,本文主要通过对变电站网络通信协议进行分析,及时发现通信过程中存在的异常操作并实时告警,保证变电站工业控制系统的安全稳定运行。
4.1 测试环境部署
本次测试主要将实验室的服务器和交换机作为通信装置与采集装置。服务器软硬件配置如表所示。1台服务器作为采集装置,负责采集数据,1台服务器作为监控平台,将分析数据展现给管理员,平台内装有数据库,用于存储数据,2台服务器通过交换机连接,测试环境部署如图所示。
表2 服务器软硬件配置
图7 测试环境部署
4.2 测试结果
本文测试过程中下载IEC61850模拟数据包,通过tcpreplay重放发送该数据包,采集装置抓取数据包,解析当前抓取数据包的协议内容,并与当前设置的策略规则进行匹配,如设置流量阈值为10,获取实时流量已超过10,违反策略规则,产生异常告警,将结果上传到监控平台,展示给管理员,以便管理员更好地观察变电站工业控制系统的是否安全运行,测试结果如图所示。
图8 发送IEC61850数据包
图9 识别IEC61850 MMS协议类型
图10 IEC61850 MMS流量
图11 异常告警
5 结语
本文主要介绍了变电站工业控制系统存在的网络安全威胁,通过分析该类威胁,提出一种基于DPI技术的变电站网络异常检测研究。首先介绍了DPI技术的广泛应用,同时将DPI技术应用到识别变电站网络的工控协议上,其次根据主要的网络安全威胁设置了策略规则,将深度解析的协议内容与策略进行比对,从而发现其存在的异常操作。最后,通过实验验证了该方法的有效性,一方面及时发现潜在的网络攻击或威胁并发出告警,在攻击发生前提前采取应对措施,防止对关键电力基础设施造成破坏。另一方面,在攻击发生后,能够还原攻击路径,追踪攻击源,发现脆弱点,有效地保证了工控系统的安全稳定运行。