,,
(浙江工业大学 信息工程学院,杭州 310023)
随着工业化,信息化的发展与深入,新一代的高级持续性威胁(advanced persistent threat, APT)已成为当今工业控制系统安全的首要威胁[1]。据美国国土安全部下属的工业控制系统网络应急响应小组(ICS-CERT)发布的报告披露,2014年9月~2015年2月期间共发生了245起网络安全事件,其中超过半数属于APT攻击,并且对重要能源工业,化工,核工业等均造成了重大的危害[2-3]。尽管企业在网络安全防护领域的能力有所提高,传统的基于模式匹配的入侵检测系统已经能够检测出大部分的网络攻击,如分布式拒绝服务(Distributed Denial of Service, DDOS),蠕虫病毒,已知的木马病毒等,但是却无法有效检测出攻击手段高明,持续时间长久,隐蔽性极高的APT攻击,因为APT攻击者通常利用零日漏洞,并使用标准协议和加密通信(如HTTPS)来逃避检测[4-5]。针对未知APT攻击的防范,全球一些安全公司在对APT攻击展开持续跟踪与分析后的报告[6-7]中指出,虽然无法预知新变体的文件特征,但是APT攻击中恶意软件在窃密阶段与C&C服务器的通信模式却是不变的,因此分析恶意软件与控制命令(Control and Command, C&C)服务器建立通信时产生的深度流特性是APT攻击检测一个重大的突破口。戴震,程光等人根据安全公司对已有APT活动通信特征的描述,将全球安全公司APT活动报告中出现的特征进行提取并存入特征库,并提出一种双层特征匹配的方法对网络报文进行分析[8]。该方法对已有的APT攻击检测具有较高的检测率,但是利用传统特征匹配的方法缺乏对未知攻击的检测能力。Sana Siddiqui等人分析APT攻击时恶意软件与C&C服务器产生的TCP流特征,提出一种利用分形维数并使用机器学习思想的APT攻击检测方法[9],该方法能较为有效地检测出APT攻击,但是提取的特征只有单个TCP会话的数据包总数以及TCP会话的持续时间,两类特征并不能很好的区分正常流量与异常流量。孙易安等人认为传统以单纯隔离为手段的工业防护系统已经无法检测出新型APT攻击,提出一种以纵深防御为手段的“4+1”安全防护模型,对工业控制系统进行全网防护,该模型只是提出一种可行的框架[10],但是并未对具体的检测模块进行相应的分析论证。MircoMarchetti等人利用大数据方法以天为检测时间窗口提取某大型企业的主机流量特征,从特征向量与特征中心点的欧式空间测度与向量时间变化测度对主机流量行为进行评分,最后输出系列可疑主机名单用于人工分析判别[11]。然而目前针对的APT攻击流量异常检测方法大多基于骨干网流量异常分析或者基于应用层流量异常分析[12-14]的方法,而这些基于粗粒度检测方法很难检测出擅长隐匿潜伏的APT攻击,并且实时性不足,容易在攻击被发现前就造成巨大的危害。
为此,设计了一种基于深度流特性的APT攻击检测系统,提取最能反映APT可疑通信行为的深度流特征,利用基于多特征空间的加权组合SVM分类器对APT可疑行为进行判别。实验表明,本文提取的可疑APT攻击行为的深度流特征对检测APT攻击具有良好的检测效果,而利用基于多特征空间的组合SVM分类器方法能进一步提高检测精度并且降低误报率,对工控网络安全防护具有较高的借鉴价值。
随着工业控制系统的“两化融合”的逐步推进,原本处于隔离状态的工业控制系统与管理系统可以直接通信,甚至能直接连入互联网。使得工业控制系统也面临了来自互联网的威胁。而工控系统管理网络通常会是APT攻击者攻击的首要目标。为此,本文设计了一套应用于工控网络环境下的深度流检测软件系统,针对工控网络中的管理网络层的深度流数据进行异常检测。深度流检测技术应用在工控网络环境下APT攻击检测中即是以流为检测单位,提取APT窃密通信产生的异于正常通信行为的流的特征,并利用机器学习方法判别流是否异常。由于基于深度流的APT攻击检测方法不对应用层数据深入分析,只对流特征数据进行深入挖掘与分析,因而即使对利用加密隧道通信的隐匿APT攻击也具备良好的检测性能。基于深度流检测模型框架分为数据采集模块,数据预处理模块,检测模块和报警模块4个部分。系统总体架构如图1所示。
图1 系统总体架构示意图
1)数据采集模块:系统的数据采集模块部署在工控网络系统的脆弱节点与敏感节点处,在linux系统环境下利用Libpcap函数库实现对数据包的采集,通过BPF(BSD packet filter)算法进行数据包过滤,由于本文只分析基于TCP流的通信特征,并以TCP流数据作为特征提取的基础数据,因而需要对其它协议的数据包进行丢弃。
2)数据预处理模块:对于采集到的数据包需要将其暂时存储到内存中,为了节省内存空间,只提取数据包部分信息存储以作为下一步TCP流重组的元数据,元数据记录信息包括数据包采集时间戳,源目IP,源目端口,数据包长度,SYN位数值, FIN位数值。将采集到的数据包进行会话还原,消除因网络条件造成的乱序,重传,延迟等异常对判别造成干扰,并从非结构化的数据流中抽取结构化的元数据信息。进一步,采用TCP流重组算法提取TCP会话流。
3)检测模块:从会话流元数据中通过简单组合计算等获取所需的检测特征并向量化,将检测向量输入到组合SVM检测模型中判定是否为异常会话流,检测模块是本文研究的关键技术与方法,因此将在下一节作详述。
4)告警模块:当检测模块的输出结果大于给定阈值时,记录异常的时间戳,源目IP,源目端口信息,并向网络管理员发出告警。
在一个深度流检测系统中,特征选取往往决定检测模型性能的好坏,本文对APT恶意软件与工控网络C&C服务器通信特征进行深入分析,提取最具代表性的7维特征。其中APT攻击流量样本数据来自于Contagio malware database[15],正常流量数据则是利用浙大中控的WebField JX-300XP工业控制系统搭建实验平台,采集管理用户与外界联网的流量数据。
2.1.1 间隔时间特征
大多数正常TCP通信模式是一个简单的客户端请求资源并得到服务器端响应的过程,工控环境中数据包的传输时间间隔往往比较稳定,并且由于服务器的性能较高,处理客户端请求的速度往往很快,所以时间间隔也比较小。而APT攻击则是一个交互的通信过程,攻击者对恶意软件发出指令得到响应后可能还需要一定的思考时间发送下一个指令,所以时间间隔序列的平稳性更低,并且被控主机作为服务器端完成攻击者的指令任务,其处理能力肯定不如服务器,因此数据包时间间隔较大。因此选取一条TCP流的平均间隔时间TaveΔ,最大间隔时间TmaxΔ,间隔时间序列的标准差σTΔ作为该项检测特征。对数据集中APT与正常通信产生的TCP流间隔时间特征进行统计分析,统计结果如表1所示,APT攻击的间隔时间相对较大并且时间间隔序列标准差也更高。
表1 间隔时间特征比较
2.1.2 数据包特征
恶意软件与C&C服务器通信时内网工控主机会接收到大量来自服务器端的小数据包,这些小数据包往往攻击者的指令数据,因此数据包的长度往往较短,而正常通信情况内网主机接收的下载数据包则为服务器对主机请求的响应,通常采用大数据包传输,因而数据包长度总体偏大。根据经验,定义数据包字节长度小于100 byte的数据包为小数据包。
提取下载数据包平均长度Lave以及下载小数据包数与下载数据包总数之比Fsp作为待检测检测特征。
(1)
(2)
其中:ltotal表示下载数据包总字节数。Nspdown代表下载小数据包总数,Npdown代表下载数据包总数。
图2 数据包特征分布
数据包特征的实验分析结果如图2(a),图2(b)所示,我们发现APT攻击产生的下载数据包平均长度Lave大多分布在150 byte以内,下载小数据包数占总下载数据包总数之比Fsp大多分布在0.6以上,而正常通信数据中Lave则大多分布在200 byte以上,而Fsp值则大都分布在0.6以内。
2.1.3 上下行流量比特征
正常情况下,工控主机向外网服务器发出资源请求,资源请求的数据包一般都很小,服务器响应该请求并发送相应内容,此时服务器传输的数据包一般较大。因此,正常通信情况下上行流量会明显小于下行流量。而受攻击的工控主机与C&C服务器通信时的情况正好完全相反,外网C&C服务器作为控制端向被控主机发送指令,工控主机返回指令结果,并且回传相应的数据信息这就导致了存在APT攻击行为的TCP流的上行流量常常会大于上行流量。提取一条TCP流中上传数据包与下载数据包数量之比Fp与上传数据包字节长与下载数据包字节长度之比Fl作为待检测的特征向量。
(3)
其中:Npup代表上传数据包总数,Npdown代表下载数据包总数。
(4)
其中:Nlup代表上传数据包字节数总长,Nldown代表下载数据包字节数总长。
图3 上下行流量比特征分布
上下行流量比特征的实验分析结果如图3 (a),图3(b)所示,APT攻击样本的上下行流量比特征分布区间Fl与Fp大多大于1,而正常样本此类特征的值分布为Fp大都分布在0.5~1之间,而Fl大多分布在0~0.6之间。
构建由上述7种特征组成的特征表,如表2所示。
表2 特征表
p=p1S1+p2S2+p3S3
(5)
(p1>δ)∩(p2>δ)∩(p2>δ)∩(p>τ)
(6)
正是由于输入数据的海量性,并且针对APT攻击的防范,流量检测只是其中的一个关键环节,因而更希望检测分类结果趋向于正常,以减少虚警率。因此,取δ=0.4,τ=0.6。这样设定的意义在于δ是每个分类器的否决阈值,当三个基分类器中的任意一个的得分小于设定阈值时,都可以将直接将样本归于正常样本,而τ则表示最终的投票得分输出的判定阈值,因此适当提高阈值则能够降低误报率。检测模型如图4所示,将提取到的特划分为3个特征子空间模块,输入到不同以不同特征集训练的SVM基分类器中,每个SVM基分类器输出一个APT攻击预测值,将这些预测值输入当决策器中,如果满足公式(6)的判别条件,则认为该样本数据为可疑攻击数据,否则为正常通信会话流数据。
图4 组合分类器检测模型
本文的实验环境包括操作系统64位Ubuntu16.04,处理器英特尔酷睿i5 2467M,4核8线程,内存32G,硬盘大小1TB,使用Libcap库对离线流量数据进行处理,机器学习模块使用LIBSVM库。实验数据主要来自于两方面,APT攻击数据样本来自于Contagio malware database[15],正常流量数据则是采集浙大中控的WebField JX-300XP工业控制系统管理用户与外界联网的流量数据。将APT攻击数据注入到背景流量当中的融合流量数据输入到检测系统中,经过数据包采集与预处理,提取出会话流特征,并输入到组合分类器检测模型进行异常会话流检测。
为了准确评价检测模型的性能,引入准确率,精确率,召回率(True Positive Rate, TPR),误报率(False Negative Rate, FPR),F值(F-measure),曲线面积(Area Under Curve, AUC) 6个评价指标。其中,准确率表示所有预测正确的样本数目占样本总数目的比例,精确率表示预测为APT攻击数据的分类正确率,召回率表示正确预测APT攻击的样本数目占所有APT攻击样本数目的比例,误报率正常通信数据被预测为APT攻击数据占正常样本数目的比例,F-measure与AUC用于评价分类器ROC曲线,F-measure是精确率与召回率的加权调和平均,AUC表示ROC曲线下面的面积。
将本文的基于并联SVM组合分类器检测模型检测结果与基于单一特征集的SVM单分类器检测模型检测结果进行比较,实验结果如表3所示。
表3 不同SVM检测模型效果
由表3可知,选用本文所述的特征集训练的SVM1分类器的性能比选用NSL-KDD特征集训练出的分类器精确率更高而误报率更低,说明本文选取的特征对APT攻击描述更加具有代表性,而SVM2与SVM3的召回率分别为78.1%与77.2%误报率为9.1%与8.7%,说明SVM2与SVM3选用的特征空间也能较为有效地描述APT攻击特性。准确率比召回率高10%左右,这是因为制定的决策准则适度提高了的判定攻击阈值,因此正常通信样本被误分数目减少,误报率显得更低,而正常通信样本的数目远多于APT攻击样本数目,因而准确率比召回率更高。通过对比本文组合SVM分类器与其余分类器的实验结果,我们发现本文所述组合分类器方法在大多数时候的性能都优于SVM1分类器,组合分类器的准确率召回率更高,而误报率更低。这是因为不同特征描述的单一分类器误分集合并不完全重叠,因此不同特征训练得到分类器往往拥有互补信息,本文组合分类器的检测模型正是综合利用这些互补信息而提高了分类器的性能。
图5 组合SVM与单一分类器ROC曲线对比图
各SVM分类器检测效果ROC曲线图如图5所示,ROC曲线图的检测阈值为决策准则中的投票判定阈值。图4中组合SVM分类器的F-measure值以及AUC值在绝大多数时候均是所有分类器里面最高的,说明组合SVM分类器的检测性能最优。而SVM1与组合SVM分类器的AUC值都达到90%以上,说明二者的性能都较为不错。
APT攻击是当今工业控制系统安全的首要威胁,针对传统基于模式匹配的入侵检测系统无法有效检测新型APT攻击,设计了一种基于深度流特性的APT攻击检测系统,在工控网络脆弱节点与敏感节点部署流量采集模块,将采集到的数据经过预处理后输入组合SVM分类检测模型进行异常会话流判别,实验结果表明,基于深度流特性的APT攻击检测方法具有较高的准确率,同时,基于投票法的组合分类器算法较传统单一分类器检测精度更高,误报率更低,具有良好的实用价值。然而,APT攻击是一系列极为复杂的攻击过程的总和,仅仅根据异常会话流无法断定存在攻击,在今后的研究中,还应对可疑邮件,可疑HTTP传输等作进一步深入研究,关联APT攻击各个阶段的异常行为事件,准确快速地发现威胁所在,降低工业控制系统受害的风险与损失。