文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.04.021
中文引用格式: 李俊,郭娴,孙军. 基于扩展Kalman滤波的工业控制系统DDoS攻击检测[J].电子技术应用,2016,42(4):73-77.
英文引用格式: Li Jun,Guo Xian,Sun Jun. The detection of DDoS attack for industrial control systems based on extended Kalman filtering[J].Application of Electronic Technique,2016,42(4):73-77.
0 引言
工业控制系统(Industrial Control System,ICS)广泛应用在工业、能源、交通、水利以及市政等重点领域,用于控制生产设备的运行。典型的工业控制系统包括可编程逻辑控制器(Programmable Logic Controller,PLC)、分布式控制系统(Distribute Control System,DCS)及数据采集与监控系统(Supervisory Control And Data Acquisition,SCADA)等。工业控制系统是国家关键基础设施的重要组成部分,其安全问题直接关系到国民经济的正常运行和社会稳定[1]。
随着我国“互联网+”、“中国制造2025”等战略的推进实施,互联网、物联网、云计算、大数据等信息技术对工业生产的各环节和城市关键基础设施建设的渗透越来越深,从而加剧了工业控制系统的信息安全风险。
近年来,工业控制系统信息安全事件不断发生,从伊朗核电站感染Stuxnet病毒事件,到Havex入侵了欧美1 000多家能源系统,再到乌克兰电力系统被BlackEnergy恶意软件攻击等事件,充分反映了工业控制系统信息安全面临的严峻形势。研究工业控制系统的攻击检测方法,对及时发现并阻止黑客的入侵攻击和避免造成物理损失具有重大意义。
1 背景
随着计算机技术和网络技术的发展及普及,网络安全问题越发凸显,尤其是拒绝服务攻击(Denial of Service,DoS),尽管方式简单,但是攻击非常有效。它能够短时间内使服务网络中充斥大量的信息,消耗带宽或系统资源,导致网络趋于瘫痪而无法提供正常的网络服务。其中,分布式拒绝服务攻击(Distributed Denial of Service,DDoS)作为DoS的特殊形式,它采用一种分布、协作方式对网络进行攻击。在众多的攻击方式中,分布式拒绝服务攻击的危害最大,最易于达到攻击效果,并且最难进行抵御和追踪,同时它也是现今网络面临的主要威胁之一。
针对网络DDoS攻击的检测研究由来已久,目前的检测方法大概可以分为两大类,大多数的检测方法或采用其中一种,或两种方法结合使用。其中一种是对服务/控制网络中流量进行建模分析,利用网络遭受DDoS攻击时,与模型相关的参数变化来识别出DDoS攻击,如文献[2-6];另外一种是利用网络在遭受DDoS攻击时网络表现出来的特性(如:IP地址集聚等)来进行攻击判断,如文献[7-10]。
对于具体的研究方法,文献[2]利用网络发生DDoS攻击时,攻击网络的目的地址或者目的端口过于集中的特性,以及发生DDoS攻击时的协议特征建立基于聚集和协议分布防御分布式拒绝服务攻击(Aggregat-based Protocal Analysis,ATA-ANTI-DDoS)模型,来检测DDoS攻击;文献[3]利用网络特性建立自回归系统模型,以此模型来估计参数分形维数和自相似系数,同时利用基于最大似然估计的改变点检测方法来检测DDoS攻击;文献[4]认为网络数据包具有多位属性,提出使用利用主成份分析(Principal Component Analysis,PCA)来降低主干网络的网络数据采集维数,同时,对网络中的OD流量和物理链路流量进行建模和特征进行分析;文献[5]在骨干网络中,在网络应用层的DDoS攻击(Application Distributed Denial of Service,AL-DDoS)中,构造了一个实时变频矢量,并建立实时的业务模型。通过检查AL-DDoS攻击流量的熵值,实时业务模型可以设别出真实的AL-DDoS攻击;文献[6]通过检测网络中的数据包地址来建立检测矩阵模型,同时运用遗传算法(Genetic Algorithm,GA)来减少模型中的地址划分冲突问题,以此提高对DDoS攻击的检测效率;文献[7]提出的方法主要是针对网络的物理层中的流量,利用数据包的维数来检测DDoS攻击;文献[8]提出从历史网络流量中抽取合法用户的IP地址建立数据库,以检查流经路由器当前数据包中的源IP地址是否在合法的IP数据库作为DDoS的检测手段;文献[9]使用累积和(Cumulative Sum,CUSUM)方法来统计路由器中进出各端口的流量,并以进出口流量比率作为检测DDoS攻击的统计量;文献[10]提出一种基于卡尔曼滤波的低速率分布式拒绝服务攻击(Low-rate Distribute Denial of Service,LDDoS)攻击检测方法,该方法根据网络流量矩阵估算理论以及网络在遭受DDoS攻击时流量突然减小的事实,对流量矩阵进行有效的预测和估算,然后通过比较预测与估算的误差就可以有效地检测LDDoS攻击。
本文在充分分析了工业系统中DDoS攻击的特点和传统DDoS检测方法的基础上,提出一种扩展Kalman滤波和控制系统的模型参数识别的算法来检测DDoS的攻击。通过在搭建的SCADA工业控制仿真系统平台中进行测试和实验,验证了本文提出的算法可以有效识别出针对特定工业控制系统网络的DDoS攻击。
2 基于扩展Kalman滤波的工业控制系统DDoS攻击检测
2.1 典型的工业控制系统结构图
典型的工业控制系统结构如图1所示。
在上述的常用工业控制系统中,最具有代表性意义的当属在石油石化、电力等能源行业应用最多SCADA系统。常见的SCADA系统的网络体系构架如图2所示。
越来越多的工业控制系统的网络采用基于TCP/IP的工业以太网协议。第一,由于企业的信息管理网络已经广泛采用了基于TCP/IP协议的以太网交互技术,这使得控制系统更加集成化。第二,控制网络采用以太网,大大提高了信息传输速率。第三,控制网络采用以太网,大大提高了不同设备和系统之间的信息交换效率。下面以Modbus/TCP协议为例,简要说明工业控制系统使用的协议特点。
Modbus协议广泛使用在SCADA系统中,它通常负责人机交互界面和控制器等的数据通信。现在Modbus已经成为工业控制事实上的标准,很多Modbus系统使用TCP作为通信层协议。Modbus/TCP使用了TCP/IP协议栈的五层,分别为:物理层、数据链路层、网络层、传输层和应用层。在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,其数据帧包含报文头、功能码和数据3部分,其使用的端口号是502。
Modbus使用主从通信模式。主设备负责发起查询任务,从设备负责进行响应。但同一时刻,只有一个设备作为主设备。在异构型网络拓扑结构中,包含有Modbus/TCP和串口Modbus设备,常使用网关或网桥将其连接到IP网络中。
从使用最广泛的Modbus/TCP协议的特征,可以看到工业控制系统所使用的协议相对互联网HTTP等协议较简单,功能码较少,信息交互机制简单,处理高效,没有加入加密等安全机制。可见,工控系统的协议特点决定了工控系统对网络攻击的承受力很低。
2.2 工业控制系统与传统信息系统区别
根据美国国家标准技术研究院(National Institute of Standards and Technology, NIST)发布的《工业控制系统(ICS)信息安全指南》可以清楚地看到传统信息系统与工业控制系统之间的区别,如表1[11]所示。
通过表1中的对比可以看到,工业控制系统因为需要更加安全、可靠、平稳的运行环境,而对实时性和数据准确性要求更高。由此,传统的信息系统和工业控制系统对于DDoS攻击的承受能力和防范要求是不一样的。工业控制系统因其独特的特点,就使得系统在检测DDoS攻击方面必须更加高效、准确、实时、高速和及时。同时,发生DDoS攻击时,要保证数据的有效和准确,特别是不能破坏控制系统的控制类数据。
2.3 扩展Kalman滤波算法
卡尔曼滤波是一种高效的递归滤波器,它通过对输入和输出贯彻数据,对系统状态进行最优估计,同时通过去除一系列的噪声来还原真实数据。扩展卡尔曼滤波算法是在标准卡尔曼滤波算法的基础上发展起来的,它的基本思想是:在滤波值的附近使用泰勒展开式,对于二阶以上的高阶项全部省去,从而将原非线性系统近似为线性系统,再利用标准的卡尔曼滤波算法对系统线性化型模型进行滤波。
扩展Kalman滤波方程组包含了预测步骤和更新步骤。对于离散系统,控制过程可以用微分方程描述为:
通常,在网络流量采样中,U(k)为系统的控制量,如果没有则为0,W(k)和V(k)可以假设成白噪声矩阵来近似处理,它们的协方差矩阵分别是Q和R,卡尔曼滤波器可以结合k时刻的预测值和测量值,得到下一时刻k+1的估计值。
假设现在的时刻为k+1,利用k时刻的最优估算,记为:X(k|k),可以得到k的先验估计,记为:X(k+1|k),则有:
其中,HT是H的转置矩阵,I为单位矩阵,当系统是单系统模型时,I=1;此时通过k时刻的观测值和预估值即可使系统进入k+1的状态,Φ和H分别是f和h的雅各比矩阵,其雅各比矩阵的具体求导法则如下:
2.4 基于Kalman滤波的模型参数识别算法
网络发生DDoS攻击时,网络中的很多性质都发生了变化,如网络的流量、时延以及数据包量与IP地址的比值等。要想准确地判断工业控制系统网络是否发生了DDoS攻击,只知道流量情况是不够的,如果知道网络发生DDoS攻击时的数据包和IP地址等的关系,就能大大提高DDoS检测的准确性。
在网络中,采样时刻k与流量的关系描述函数f和h,以及系统在发生DDoS攻击时,IP与流量的拟合关系函数g等都是未知的,它们都表征着网络的性能特点。并且,这些表征网络性质的函数都与具体的网络系统结构有关(如网络带宽、端口数量、路由能力等)。但不论这些函数是线性的还是非线性的,均可以用泰勒级数来展开,并可以对函数做近似处理:
将包含参数的函数f(x)和h(x)代入扩展卡尔曼滤波算法中,同时利用网络的历史数据,通过使用参数辨识的方法,得到流量的具体模型参数ai、bi和ci(i=0,1,2)。
3 实验平台说明
3.1 实验平台概况
本实验的验证平台是电子一所研究工业控制系统信息安全所搭建的一套模拟天然气管道输送的SCADA系统。除了仿真测试系统的天然气用压缩空气来代替之外,系统平台的输送控制流程和工艺均来自中国某油田的实际生产运行系统,并且系统的控制器、工作站、数据库等均与实际运行的一样。图3所示是简化的仿真测试系统平台的结构图。
该SCADA系统具有3个操作站(本地场、工程师站、远程中心)、若干个RTU(远程设备终端,协议是Modbus/TCP)、公司上层网以及一个中心服务器。其中,通过RTU将现场的实时数据传递到服务器中,各个操作站和管理网通过网络进行实时数据通信和共享;另外,各个操作站将依据各自的控制权限将控制命令通过服务器发送到RTU,实现对执行机构的实时控制。
3.2 攻击测试说明
本次攻击测试针对的是SCADA系统在管道输送过程中的降压流程。具体的DDoS攻击手段是通过使用1台高性能计算机控制10片刀片式服务器发生针对服务器服务端口进行的。攻击测试是在500 s的时间内随机进行多次攻击,持续时间5 s~10 s不等,同时反复进行多次测试。
4 实验
4.1 实验前数据预处理
实验前,针对网络进行数据采集。针对该工业控制系统所使用的端口号进行数据统计,采集时间随机从30 min~24 h等分45组进行,得到具体45组数据,如图4。
对图4得到的柱状图中的数据进一步处理,得到如图5所示数据包采样的均值和平滑处理值。
对系统的仿真测试平台的数据包采集值与所采集的报文的IP地址进行处理,得到报文数据值与IP地址的比值关系,如图6所示。
从图4、图5和图6中,可以看出工业控制系统网络的流量数据基本是平稳的,这与传统的IT互联网的网络流量忽高忽低不同;同时,在正常的网络运行中,每个IP地址所对应的报文数基本也是恒定的。这些不同于传统互联网的网络特性,为本文提出的算法提供了很好的适用性和检测的准确性。
4.2 算法实验
在仿真测试平台中对所提出的DDoS的检测算法进行实际的编程测试,得到图7所示的实际攻击检测图。
在建立的仿真测试平台中进行算法的测试,可以看出在系统平台发生DDoS攻击时,系统的瞬时流量急剧增加,同时数据包量与IP地址的比值也发生了显著的变化。实验结果表明,在特定的控制系统网络中,本文提出的算法可以有效检测出DDoS的攻击。
5 结语
随着计算机和网络技术的发展,工业控制系统产品越来越多采用通用协议、通用硬件和通用软件,并以各种方式与互联网等公共网络连接,以DDoS为代表的传统网络攻击方式也正在向工业控制系统扩散。由于工业控制系统高实时性、弱防护、计算能力有限等特点,传统信息系统中的入侵检测方法不适合直接用于工业控制系统。本文根据工业控制网络干扰小、数据变化不大等特点,设计出适用于工业系统的入侵检测方法。实验证明,提出的基于扩展Kalman滤波和控制系统的模型参数识别算法可以较好地完成工业控制系统DDoS的攻击检测。
参考文献
[1] 周雪.2013工业控制系统迎来“大考”[J].信息安全与通信保密,2013(9):10-21.
[2] 孙知信,姜举良,焦琳.DDoS攻击检测和防御模型[J].软件学报,2007,18(9):2245-2261.
[3] XIA Z,LU S,LI J.DDoS flood attack detection based on fractal parameters[C].Processing of the 8th International Conference on Wireless Communications Networking and Mobile.Shanghai:IEEE,2012:1-5.
[4] LAKHINA A,CROVELLA M,DIOT C.Structural analysis of network traffic flow[C].Processing of the SIGMETRICS/Performance.New York:ACM,2004:61-72.
[5] ZHOU W,WEI J,SHENG W,et al.Detection and defense of application-layer DDoS attacks in backbone web traffic[J].Future Generation Computer Systems,2014(38):36-46.
[6] LEE S,KIM D,LEE J,et al.Detection of DDoS attacks using optimized traffic matrix[J].Computers and Mathematics with Applications,2012(63):501-510.
[7] LAKHINA A,CROVELLA M,DIOT C.Diagnosing network-wide traffic anomalies[C].Processing of the SIGMETRICS’04.Portland:ACM,2004:219-230.
[8] PENG T,LECKIE C,RRAMAOHANARAO K.Protection from distributed denial of service attacks using history-based IP filtering[C].Anchorage:IEEE Computer Science,2003:482-486.
[9] PU S.Choosing parameters for detecting DDoS attack[C].Chengdu:IEEE Computer Society,2012:239-242.
[10] 吴志军,岳猛.基于卡尔曼滤波的LDDoS攻击监测方法[J].电子学报,2011(22):1590-1594.
[11] 美国国家标准和技术研究院.NIST-SP800-82,《工业控制系统(ICS)安全指南》[S].北京:国家标准出版社,2012:15-27.