陈观林 吴 颖 周坤泷
1(浙江大学城市学院计算机与计算科学学院 浙江 杭州 310015)2(浙江大学计算机学院 浙江 杭州 310027)
近年来,无线移动端的用户量一直持续增长,并随着手游、社交网络、移动支付等应用的普及,构成了移动端的天然优势,在教育、农业、医疗、交通、智能家居、可穿戴设备等方面也占领了主要市场。然而,无线网络本身存在协议缺陷,导致了用户的信息、财产面临潜在的威胁,如何保障无线网络安全显得尤为重要。为此发展了很多相关的技术,包括防火墙、入侵检测和防御技术等,它们在保障有线网络环境的安全中有很大的应用,而无线环境的应用较为欠缺,所以面向无线网络的复杂多步攻击识别是本文的研究方向。
本文提出了一种面向无线入侵检测系统的复杂多步攻击识别方法,包括告警精简、逻辑攻击图生成器、攻击流量拓扑图生成器、攻击路径解析器、复杂攻击评估等模块,层层挖掘出攻击者的最终意图。实验结果表明,该识别方法能够应对无线入侵领域的复杂攻击场景,对无线多步攻击意图的识别具有一定的意义。
为保证计算机网络安全,产生了一种称作入侵检测系统[1]IDS(Intrusion Detection System)的技术。这是一种主动式的安全机制。但是入侵的技巧越来越高明,形式也越来越丰富。现有的攻击已经不再局限于单步攻击,单步攻击产生的告警所代表的攻击行为不是攻击者最终意图,而是复杂攻击的一个环节[2]。不同复杂攻击可能包含相同的攻击片段,即某几步攻击是相同的,攻击意图也有多种可能性,攻击者的复杂攻击虽然一般有时序关系,但发生时差不定[3]。攻击者可能故意发起一些和攻击意图不相关的攻击行为来扰乱防御者的判断。针对日益进步的入侵手段,入侵检测与识别方法的研究也渐渐成为了一门领域跨度较大的综合性学科。
2008年,Rahman A、Ezeife C I等提出一种基于改进Apriori-Infrequent算法的无线入侵检测系统。2010年,Chen等[4]基于签名检测和规划识别设计了一种可以预测攻击的入侵防御系统。2010年,Peng X Q、Zhang C提出了检测Rogue AP的一些策略。2010年,Han等[5]提出了一种基于Markov模型的入侵检测技术。2011年,文献[6]中提出了一种基于支持向量机SVM的异常检测WIDS。2012年,文献[7]中提出了一种可以检测MAC Spoofing的方法,该方法使用包含radio tap header的beacon帧中的两种时间戳计算出AP和STA之间的clock-skew,若检测到拥有相同MAC地址、BSSID和SSID的AP却拥有不同clock-skew值则认为其为fake AP。2013年,文献[8]中依据D-S证据理论提出了一种自适应无需训练的采用多层度量值的Wi-Fi攻击检测方法。2016年,文献[9]中提出了能够专门识别deauthentication攻击和evil twin攻击的度量方法。2016年,文献[10]中研究了针对无线传感网络WSN的异常检测方法。
2011年,Mei等[11]提出了一种通过定义告警间相似度来构建攻击活动序列集,而后对序列聚类,提取最长公共子序列的方法发现多步攻击模式。
2012年,文献[12]中提出了一种可用于多步IDS的误用检测签名语言Event Description Language(EDL),对应一种基于有色Petri网的状态转换图,图中有开始和结束状态,到达结束状态则表示攻击发生。
随着针对移动互联网的攻击方式越来越多样化,已有的入侵检测技术往往无法准确移动攻击行为。因此,我们还要研究面向无线入侵检测系统的复杂多步攻击识别方法。
本文设计的系统总体架构如图1所示。系统包括数据采集、单步攻击识别、复杂攻击识别和信息展示等四个模块。
图1 总体架构图
数据采集模块:分布式采集所在环境的无线流量包,作为后续分析的数据来源。单步攻击识别模块:用于识别出单步攻击,是后续复杂攻击识别的基础。复杂攻击识别模块:识别出复杂攻击以及攻击者最终意图。信息展示模块:实时展示系统识别出的攻击过程。
单步攻击识别中,度量(metric)的选择十分关键。El-Khatib K在他的论文中说明了对于异常检测分类时使用的SVM、神经网络、遗传算法等方法,及如何选取合适的特征及数目来提升检测率。
这些机器学习方法一般在前期需要大量的训练过程,而本文将使用能够自适应的在线分类算法,以避免IDS实际使用的局限性。本文将单步攻击识别方法分为两个部分:一是一种通用的无需训练的检测方法(General Detector),对于各个攻击行为,只需设定所需度量即可;二是针对特定攻击行为,使用误用检测技术,通过配置攻击签名库(Signature Database)来判断的方法(Specification Detector)。本模块将结合两种识别方法来判断单步攻击是否发生,以及攻击者影响到的帧。单步攻击识别模块组成如图2所示。
图2 单步攻击识别模块
下面先从逻辑分类的角度描述帧(frame),攻击(attack)和网络节点(network node)。
从数据帧的粒度来说,根据是否攻击者发出或影响可以将之分为正常帧NF(normal frame)和非正常帧MF(malicious frame)。从攻击对网络流量是否影响,可以将攻击分为显性攻击EA(explicit attack)和隐性攻击HA(hidden attack)。而网络节点则分为攻击者AN(attacker node)、受害者VN(victim node)、过渡者SN(springboard node)。一个实际发生的攻击行为对应一条从攻击者到受害者的攻击路径(attack path)。
攻击识别就是识别出数据帧、攻击行为和场景角色这三个对象。
1) 一种基于D-S理论识别方法 General Detector所使用的识别方法,是一种基于Dempster-Shafer证据理论 (D-S evidence theory) 的识别方法。D-S证据理论是一种无需先验知识的方法,其基本概念如下。
识别框架:Θ={θ1,θ2,…,θn},有关问题域的互斥命题的有穷集合。可组成幂集2Θ。
基本概率分配BPA(basic probability assignment),质量函数:
(1)
命题信任函数:
(2)
表示A的全部子集的BPA之和。
似然函数:
(3)
表示不否认A的信任度,是所有与A相交的子集的BPA之和。
信任区间:[Bel(A),pl(A)],表示A为真有Bel(A)的信任度,A为假的信任度1-pl(A),A为真的不确定度pl(A)-Bel(A)。
Dempster合成规则:
(m1⊕m2⊕…⊕mn)(A)=
(4)
对于一个帧而言,有Θ={NF,MF},2Θ={∅,NF,MF,{NF|MF}},其中{NF|MF}=UF(uncertain frame)。对于每一个度量,维持一个滑动窗口SW(sliding window),其长度为n,则有n个NF帧在其中组成配置数据集。若检测到一个帧为MF,则不会将其放入SW中,若检测为NF则更新SW。
滑动窗口如图3所示。
图3 滑动窗口机制
该方法对2Θ={∅,NF,MF,{NF|MF}}的BPA计算方式如下。
BeliefMF:SW中度量重复最大次数F,均值mean,最大Euclidean距离Dmax,
(5)
对于每一个进入的帧,计算:
(6)
BeliefNF:将SW中的数据按度量大小顺序排列后,根据进入帧的度量值所在位置分配固定值。离中位数越近取值越高,最高为0.5。
BeliefUF:根据前面两种分配数值有以下四种情形:
(1)MF取低值,NF取低值;
(2)MF取低值,NF取高值;
(3)MF取高值,NF取低值;
(4)MF取高值,NF取高值。
在(2)、(3)种情形下,MF和NF没有冲突则分配UF一个较小值。在(1)、(4)种情形下则需要分配较高值,分配方法是先计算出:
(7)
则有:
(8)
m(x)=Beliefx-μ
(9)
然后合成各个度量的BPA,并设定阈值,用于判定进入帧是MF或NF。
要使得该方法有效需要满足三个条件。(1) 正常流量占总流量大部分;(2)NF、MF的度量值有明显差异;(3) 滑动窗口长度n的设置。n取值过小,则无法包含足够信息,取值过大,则增加误入MF风险,同时延长检测过程。
2) 一种基于D-S理论识别方法 根据上述两种检测方法得到的结果,综合判断攻击是否发生。两种检测方法均建立内存数据库,存储所有检测的历史数据。General Detector存储每个帧的信任区间,Specification Detector存储每个检测到的s_attack。单步攻击决策函数为,t为某时刻,结果为攻击发生可能性AP(attack possiblility)。s_decsion将从内存数据库中分别根据帧的时间戳和ftime查找t附近的数据。
若某种攻击行为只进行了其中一种检测方法,则以其为准。若两者均处于检测中则对某时刻t有如下情形:
(1) General Detector检测到,Specification Detector检测到;
(2) General Detector检测到,Specification Detector未检测到;
(3) General Detector未检测到,Specification Detector检测到;
(4) General Detector未检测到,Specification Detector未检测到。
在(1)、(4)情形下,两者结果一致则直接以此为结果,为1和0。
在(2)情形下,认为有攻击A发生,对应该MF,结果为:
αBelMF(A)+βPlMF(A)
(10)
在(3)情形下,对应该攻击和帧的信任区间或拒绝证据区间较大,此时认为有攻击A发生,对应s_attack。此时,计算s_attack中r_frames的所有信任区间的均值:
(11)
(12)
若均值满足General Detector设定的阈值,则结果为1,否则结果为:
αBelr_frames(A)+βPlr_frames(A)
(13)
上述有参数α+β=1,α,β∈[0,1],通常取值α=β=0.5。
单步攻击决策中,需要对帧的分类,即单步攻击结果输出进行统一化。在(1)情形下,将General Detector对应的MF加入到rframes中,在(2)情形下,根据MF构造出s_attack(A, MF.mac_src, MF.mac_dst, MF.mac_reciever, MF.timestamp, MF.bssid, {MF}),其中的name为A,src为MF数据链路层的源地址,dst为MF的目的地址,tran为接收端地址,ftime和etime为timestamp,rframes为{MF},bssid为MF的BSSID。最终单步攻击识别模块输出对象single-step attack information(SAI)为二元组(AP,s_attack)。
复杂攻击识别模块对应IDS的告警关联阶段,而攻击图可用于告警关联。本文的复杂攻击识别模块中就使用了逻辑攻击图生成器和攻击流量拓扑图生成器搭配去挖掘攻击路径。
上一步得到的单步攻击告警,在这一模块中包括两个主要步骤。首先需要预处理,去除无关告警和重复告警,精简告警数量。然后需要通过整理得到的超告警去识别攻击者易采取的攻击序列,并预测攻击者后续动作和最终意图。
识别攻击序列时,从逻辑上将告警(Alert)分为三类:一是已检测到的告警ADE(Alert Detected),这类告警明确属于某种单步攻击;二是未检测到的告警AUD(Alert Undetected),即可能丢失的告警;三是未来将发生的告警APR(Alert Predicted),即预测结果。另外考虑到攻击者可能会在攻击过程中进行一些无意义攻击来混淆其真实目的,第一类告警还将分为属于真实意图的告警AR(Alert Real)以及扰乱告警AD(Alert Disturbed)。
1) 告警精简 上一模块中产生的单步攻击告警,由于其General Detector细化到帧的程度,将可能产生大量的告警。有必要对这些告警进行精简处理,减少告警数量,消除无关告警和重复告警。告警SAI精简流程如图4所示。
图4 单步攻击告警精简流程
(1) 无关告警:有一些告警指示的是与无线攻击行为无关的其他攻击,或者该告警明显错误。
(2) 重复告警:同一攻击行为产生的告警,且没有在单步攻击识别模块中合并,通常是具有相同攻击路径由同一攻击者发出的同一类型攻击行为,或者时间上存在连续性、周期性的表现。
处理单步攻击识别模块产生的数据库SAIs时,比较算子cmp(SAI1,SAI2)比较两者是否可以合并,若可以则放入同一个集合Merging SAIs中。于是将SAIs分类成一组Merging SAIs,对每一个SAIs进行合并。
2) 攻击链签名 攻击链签名描绘了常见复杂攻击场景,攻击链基于因果关系建立攻击之间的链接。一个攻击发生需要前置条件,发生后产生一些后果,从前一步攻击到达后一步攻击需要满足相应条件。最后的一项攻击节点为最终攻击者所实施的攻击,通常蕴含着攻击者的攻击真实意图。复杂攻击识别模块的签名数据库包含了一系列经典攻击链,供生成逻辑攻击图所需。其模型如图5所示。
图5 攻击链模型
3) 攻击链签名 攻击流量拓扑图生成流程如图6所示。
图6 攻击流量拓扑图生成流程
攻击流量拓扑图示例如图7所示。
图7 攻击流量拓扑图示例
图7存在2个VNs,其中一个是由两个VNs合并而来,还有3个VNm以及2个VNt。这个攻击流量拓扑图中一共包含了四种单步攻击,分别是:
attack1:VNs1->VNm1->VNm2->VNt2;
attack2:VNs1->VNm2->VNt2;
attack3:VNs1->VNm1->VNt1+VNs21->VNm3->VNt2;
attack4:VNs2[VNs21+VNs22]->VNm3->VNt2。
VN之间的单步攻击关联度为:
(14)
式中:k为VN1到VN2的单步攻击告警集合SAIVN1->VN2的告警数目。
4) 攻击路径解析 结合攻击流量拓扑图和逻辑攻击图可以进行攻击路径解析,其流程图如图8所示。
图8 攻击路径解析流程
在攻击流量拓扑图上找寻到一条的攻击路径时,其关联度为:
(15)
将其对应到候选攻击链的相应节点上。
本实验使用设备和环境情况如表1所示。
表1 实验设备配置
实验环境中使用6个公开认证AP(接入点),2个WEP(有线等效保密协议)加密AP,7个WPA加密AP,1个隐藏SSID的AP,其中WEP加密以及隐藏SSID均为实验准备,其他AP为正常使用。
实验场景部署平台如图9所示。
单步攻击识别使用了两个检测器:一是基于D-S证据理论的异常检测;二是依赖签名数据库的误用检测。误用检测单步攻击识别评估标准为False Negative(FN)、False Positive(FP)和Detect Rate(DR),本文根据s_attack中r_frames统计,再加上式(10)中对单个MF的可信度AP的均值Averge Attack Possibility(AAP)、方差Variance Attack Possibility(VAP),组成单步攻击识别的评估。
首先对中间人攻击Dnsspoof进行识别,Dnsspoof攻击截获用户DNS Request,发送其错误地址,特征是无论何种域名,所有DNS Response报文均为攻击者指定同一地址。实验结果如下:Specification Detector检测率为88.67%,General Detector 对属于恶意报文的平均评估为0.63,方差为0.13,表示对恶意报文的识别比较稳定,对正常报文的平均评估为0.34,表示其为攻击行为产生的可信度比较低,具体结果如表2所示。
表2 Dnsspoof攻击识别结果
然后对取消认证攻击deauthentication进行识别,deauthentication攻击冒充合法用户给AP发送取消认证报文使其断开连接,特征是该攻击发送时将持续产生大量取消认证及用户重连时产生的管理帧报文,实验结果如表3所示。
表3 deauthentication攻击识别结果
实验表明,本文提出的方法能够较好地识别单步攻击,其评估的高可信度为识别复杂攻击场景提供了支撑。
本实验对涉及Deauth攻击的四种复杂攻击链进行识别,分别如下:
Chain A:攻击意图为拒绝服务攻击,攻击者使用airodump侦听得到目标AP的SSID、MAC地址以及连接该AP的设备MAC地址,所需条件是一张monitor mode的网卡。到达Airodump攻击节点后,根据上一步得到的信息,攻击者将循环进行Deauth攻击,断开指定设备到目标AP的连接,形成取消认证洪泛攻击。
Chain B:最终攻击为MAC Spoofing,经过airodump和Deauth两个攻击节点后,攻击者根据目标设备的MAC地址和ssid使用macchanger伪造MAC地址。
Chain C:最终攻击为Evil Twin,经过airodump攻击节点后,攻击者根据目标设备的MAC地址,AP MAC地址和SSID并行实施两种攻击行为,分别是使用airbase-ng伪造AP,以取消认证攻击断开目标设备连接。满足伪造AP建立条件后,目标设备连入伪造AP,形成Evil Twin攻击。
Chain D:攻击意图为Key Crack,经过airodump攻击节点后,若检查到arp request报文则进行arp replay攻击,获取arp response报文供密钥破解。若没有则使用Deauth攻击,使到达arp replay的条件满足。
利用复杂攻击识别模块对Chain D攻击序列进行识别,得到评估前3的攻击链。其中目标为Key Crack的攻击链1的关联度为1.32,攻击链长度为4,识别为攻击者最终攻击意图,实验结果如表4所示。
表4 攻击链评估结果
另外,分别对四种复杂攻击意图所展开的攻击行为进行实验,实验结果如表5所示。
表5 取消认证攻击场景识别结果
实验中取识别出攻击行为的为有效数据,每个攻击意图各100次。实验结果中,对Chain A和Chain D的识别率较高,分别为0.69和0.78。这是由于Chain A洪泛攻击不停地实施取消认证攻击,因此与其他攻击链有较高的区分度,Chain D则是由于攻击时产生大量的arp报文,所在的arp replay攻击节点易于识别。实验结果表明,使用本文所提出的方法判断攻击者攻击意图,关键因素之一是可能的攻击链之间的区分度。当所实施的攻击行为存在明显特征时,具有较好的预测结果。但如果两种攻击意图使用相同或近似的攻击步骤时,则在最终预测的候选攻击链中会拥有相近的评估分数,说明预测结果不太适宜只使用一种攻击链对应的攻击意图。由于Chain A与Chain D都可能以Deauth攻击为最终节点,根据攻击步骤来看,还是具有较为明显的特征区别,本文提出的方法能够较好地进行区分,并最终识别出真正的攻击意图,在一定程度上说明了该方法在无线入侵检测领域中有着一定的参考价值。
本文针对无线网络中的复杂攻击,设计并实现了一个复杂无线入侵检测系统。系统从流量采集到复杂攻击识别,其间每一个模块所产生的信息有效与否都将影响后续模块,考虑到类似攻击误判的可能性,采用评估值而非布尔计量对整个系统进行描述。实验表明,使用本文所提出的方法判断攻击者攻击意图,能够提供较为全面的预测结果,对识别攻击者的最终攻击意图具有一定的意义。