(北京科东电力控制系统有限责任公司 北京 100192)
摘要:针对目前电网工控系统在运行过程中存在的安全威胁,本文对电网工控系统的异常检测技术进行了深入研究,并设计了一个电网工控系统异常检测实验平台进行验证。实验平台利用大数据技术采集工控系统中的设备日志、系统服务器的运行情况和流量信息,对日志信息采用基于规则库的方法检测设备异常,对系统运行情况和系统流量信息采用机器学习中的非监督学习算法,分析系统是否存在异常,并推测产生异常的原因。实验表明本文提出的异常检测方法可以及时发现电网工控系统中的异常,避免安全事件的发生。
关 键: 词:电网;工控系统;大数据;异常检测;非监督学习
电网工业控制系统在输配电和用电系统中应用广泛,并且在其中发挥了重要作用,其能否安全正常地运行关系到整个电网的安全,因此,电网工业控制系统所面临的安全威胁也逐渐受到重视。
针对电网系统和网络安全威胁的分析和风险的评估已经进行了大量的研究[1],国际电网标准化组织最早在1997年就已经针对电力系统运行的风险评估提出了大量有针对性的建议[2]。2000 年之后,美国电力科学研究院就已经开展了针对电力安全风险分析的体系模型和关键技术的研究工作;2003年8月14日,美国和加拿大的那场大规模停电事件之后,美国政府对电网安全的重视大为提高,并组织电力相关企业和研究机构进行大量的电网安全研究,在安全事件风险评估、应急防护、监测体系等领域取得了大量的成果,很有借鉴意义。
国内针对电网安全风险的研究也起步较早[3],但电网的安全风险分析方法主要参考安全风险评估的国家标准[4],在电网工业控制系统特有协议及系统的安全漏洞挖掘方面仍有待深入研究。电网工业控制系统安全威胁的监测与分析目前国内主要基于传统的入侵检测与安全事件采集等技术,但大多只是针对边界处的安全设备和网络设备的日志进行收集,无法针对工控系统内部服务器的运行情况和流量进行采集,更没有基于相关的安全算法进行深度分析和处理。
本文针对目前电网工控系统还没有全局性的安全预警现状,提出了一个电网工控系统的异常检测方法,使用非监督学习算法对工控系统中的设备日志、系统服务器的运行情况和流量信息,进行分析和异常检测,实现对电网工控系统的异常告警。
1工控系统异常检测技术
目前电网工业控制系统大多由设备、系统平台、业务软件和网络等要素组成,其中每个要素都存在各种可被攻击的弱点[5],随着攻击手段的层出不穷,其面临的威胁越来越严重[6]。
电网工控系统的安全攻击方式覆盖了整个系统的各个环节,因此,异常检测的数据源应覆盖整个电网工业控制系统即要包括系统中的设备又要包括系统本身,对于系统中的设备,采集其设备的安全日志;对于系统本身,采集系统中所有主机的运行情况和流量数据。
电网工控系统中设备的日志,主要是记录设备的各种行为事件,因此,采用基于规则库的方法对其进行异常检测的,实现把特定的安全事件与对应的告警类别关联起来生成规则,并写入规则库,在进行异常检测时,首先解析设备的安全日志,提取事件信息,匹配规则库中的规则,如果匹配到,说明该事件是异常事件,提取与该规则相关联的告警事件,生成告警信息。
电网工控系统本身异常的分析,主要分析系统中服务器运行时的CPU内存信息和网路流量信息。目前在针对网络流量的异常检测方面,随着机器学习和数据挖掘等技术的不断进步,大量研究者[7-10]尝试将这些新技术应用到网络流量检测上。文献[11]提出一种基于分布率、聚类偏差和密集度结合的聚类算法构建时间相关性流量异常检测模型,实验证明该模型可协助网络管理员及时发现异常,但需要大量历史数据支撑,并不适用于波动较大的网络环境。
1981年芬兰的T.kohonen教授提出一种与人脑自组织特性类似的自组织特征映射网,简称SOM网。SOM算法无需人工标识训练集并能较好的映射高维输入空间到一个低维的映射空间(通常是两个维度),同时保留原始输入空间的拓扑性质[12]。SOM可以在处理多变量行为学习的同时不丢失任何典型行为,且不局限于只分析流量异常。因此,本文设计了一种基于SOM的非监督学习异常检测方法对系统运行信息和流量进行异常检测和异常原因推测。
本文设计的基于非监督学习算法主要包含三个部分:自学习、异常判断和异常原因分析。
1.1自学习
1.3异常原因推测
当发现某个神经元存在异常时,可以通过算法找出哪个指标对异常的贡献最大从而推测产生异常的原因。虽然并不能识别导致异常的直接原因,但可以辅助提示从什么角度入手查找异常直接原因。基本方法是将正常与异常神经元进行比较,找出权重向量里最不相同的指标。当发现一个神经元异常时,计算它到相邻的正常神经元的欧几里得距离。这种方法需要避免与异常的神经元进行比较,因为异常的神经元本身处于不确定状态容易得出错误的指标提示。首先计算每一个邻接区域面积,如果高于阈值,就换另一个相邻的神经元比较,如果在异常神经元的相邻神经元中没有找到正常的神经元来比较,可以通过扩大计算距离来包含更多的神经元进行比较。为了确保正确性,使用Q个正常的神经元来与异常的神经元进行对比(一般,Q=5))。
当正常神经元的集合确定下来后,首先计算正常神经元与异常神经元在权重向量中每个指标上的差值的绝对值,找出差值最大的指标,定为可疑指标。当异常的神经元与集合中所有神经元比较后,将得到包含Q个可疑指标的列表。最后,统计列表中每种可疑指标的个数,个数最多的可疑指标定为最有可能引起异常的指标。
2电力工控系统异常检测实验平台
为了检验上述算法对电网工控系统异常检测的效果,实现了一个实验平台。首先,对电网工控系统中的设备日志和系统信息进行采集;然后,利用本文中的算法对采集的数据进行分析检测,生成告警;最后显示在界面上。电网工控系统异常检测实验平台的架构图如下:
如图2所示,电网工控系统异常检测实验平台基于大数据技术实现,总体步骤分为采集、存储、分析和展示。首先使用采集程序采集设备日志和系统信息(包括运行信息和流量信息),经过数据清洗后,存入分布式数据库中,然后使用大数据技术从数据库中读取数据,进行计算分析同时将分析后产生的告警再写回数据库,最后由前端界面展示告警信息。其中使用的大数据组件如下图所示:
图3 组件图
如图3所示,ElasticSearch是存储组件,作为分布式数据库,存储系统中采集数据和告警数据,供Spark分析和界面展示;Flume是数据传输组件,通过Flume管道将采集到的数据存入ElasticSearch中;Spark是计算组件,主要使用Spark的流计算技术和离线计算技术对数据库中的数据进行分析,并生成告警写回数据库;Node.js、Webkit和ECharts是界面显示程序用的技术和组件,用于读取数据库将告警展现出来。
2.1数据采集
数据采集程序主要采集电网工控系统的设备日志数据、系统运行数据和系统流量数据,其中系统运行数据包括系统中每台主机的CPU负载、内存占用情况和硬盘读写速度等,系统流量数据包括系统中每台主机的TCP发送接收数据量和UDP发送接收数据量。
采集程序对获取的原始数据进行解析,过滤掉不需要的数据或无用的数据,将过滤后的数据格式化为JSON格式并保存为文件放入Flume的传输目录,具体格式(以CPU使用率为例)如下:
备注:index表示索引名,type表示数据类型,time表示告警时间,hostname表示发生异常的主机名,ip表示异常主机的IP,starttime表示首次告警时间,updatetime表示最新一次告警时间,alarmtype表示告警类型,alarmdesc表示引起异常的原因,anomalytimes表示异常发生次数,其中告警类型与异常原因一一对应共8种,分别为1表示CPU异常;2表示内存异常;3表示磁盘读取过快;4表示磁盘写入过快;5表示TCP发送异常;6表示TCP接收异常;7表示UDP发送异常;8表示UDP接收异常。
2.4数据展示
数据分析模块如果检测出异常,其生成的告警信息都会写入到ElasticSearch数据库中,同时推送给前台界面,前台界面程序解析告警数据将告警信息展示给安全专责人员,安全专责根据告警信息采取相应措施消除告警。
4 结语
本文充分分析电网工控系统面临的安全威胁后,深入的研究了电网工控系统的异常检测技术,针对不同的检测场景,分别使用基于规则库和基于SOM非监督学习算法来检测异常,同时搭建了一个实验平台,对文中提出的方法进行检验。实验表明本文提出的方法可以有效的检测电网工控系统中的异常,能够为电网工业控制系统安全运行提供有效的技术支撑。
参考文献:
[1]Mccalley J D, Vittal V, Abi-Samra N. An overview of risk based security assessment[C]. Power Engineering Society Summer Meeting. IEEE, 1999:173-178 vol.1.
[2]Morison K, Wang L, Kundur P. Power system security assessment[J]. Power & Energy Magazine IEEE, 2004, 2(5):30-39.
[3]李文沅周家启. 电力系统风险评估模型、方法和应用[M]. 科学出版社, 2006.
[4]GB/T 20984- 2007. 信息安全技术信息安全风险评估规范[S]. 2007.
[5]陈晓刚, 孙可, 曹一家. 基于复杂网络理论的大电网结构脆弱性分析[J]. 电工技术学报, 2007, 22(10):138-144.
[6]Song H, Kezunovic M. A new analysis method for early detection and prevention of cascading events[J]. Electric Power Systems Research, 2007, 77(8):1132-1142.
[7]朱佳佳,陈佳.基于熵和SVM多分类器的异常流量检测方法[J]. 计算机技术与发展,2016,26(3):31-35.
[8]许倩,程东年,程国振. 一种半监督联合模型下的异常流量检测算法[J]. 小型微型计算机系统,2013,34(6):1242-1247.
[9]F Shen,C Pan,X Ren. Research of p2p traffic identification based on BP neural network [C]. Intelligent Information Hiding and Multimedia Signal Processing,2007,2:75-78.
[10]Ai-min Yang,Sheng-yi Jiang ,He Deng.a p2p network traffic classification method using SVM [C].International Conference for Young Computer Scientists,2008,4315:398-403.
[11]庄政茂,陈兴蜀,邵国林,叶晓鸣. 一种时间相关性的异常流量检测模型[J].山东大学学报:理学版,2017,52(3):68-73.
[12]翁时锋. 自适应SOM特征映射研究[D]. 清华大学, 2003.
论文作者:马晓,李勃,梁野,王景
论文发表刊物:《电力设备》2017年第30期
论文发表时间:2018/3/12
标签:异常论文; 电网论文; 系统论文; 神经元论文; 工控论文; 数据论文; 流量论文; 《电力设备》2017年第30期论文;