陳觀林 吳 穎 周坤瀧
1(浙江大學(xué)城市學(xué)院計算機(jī)與計算科學(xué)學(xué)院 浙江 杭州 310015)2(浙江大學(xué)計算機(jī)學(xué)院 浙江 杭州 310027)
近年來,無線移動端的用戶量一直持續(xù)增長,并隨著手游、社交網(wǎng)絡(luò)、移動支付等應(yīng)用的普及,構(gòu)成了移動端的天然優(yōu)勢,在教育、農(nóng)業(yè)、醫(yī)療、交通、智能家居、可穿戴設(shè)備等方面也占領(lǐng)了主要市場。然而,無線網(wǎng)絡(luò)本身存在協(xié)議缺陷,導(dǎo)致了用戶的信息、財產(chǎn)面臨潛在的威脅,如何保障無線網(wǎng)絡(luò)安全顯得尤為重要。為此發(fā)展了很多相關(guān)的技術(shù),包括防火墻、入侵檢測和防御技術(shù)等,它們在保障有線網(wǎng)絡(luò)環(huán)境的安全中有很大的應(yīng)用,而無線環(huán)境的應(yīng)用較為欠缺,所以面向無線網(wǎng)絡(luò)的復(fù)雜多步攻擊識別是本文的研究方向。
本文提出了一種面向無線入侵檢測系統(tǒng)的復(fù)雜多步攻擊識別方法,包括告警精簡、邏輯攻擊圖生成器、攻擊流量拓?fù)鋱D生成器、攻擊路徑解析器、復(fù)雜攻擊評估等模塊,層層挖掘出攻擊者的最終意圖。實(shí)驗(yàn)結(jié)果表明,該識別方法能夠應(yīng)對無線入侵領(lǐng)域的復(fù)雜攻擊場景,對無線多步攻擊意圖的識別具有一定的意義。
為保證計算機(jī)網(wǎng)絡(luò)安全,產(chǎn)生了一種稱作入侵檢測系統(tǒng)[1]IDS(Intrusion Detection System)的技術(shù)。這是一種主動式的安全機(jī)制。但是入侵的技巧越來越高明,形式也越來越豐富?,F(xiàn)有的攻擊已經(jīng)不再局限于單步攻擊,單步攻擊產(chǎn)生的告警所代表的攻擊行為不是攻擊者最終意圖,而是復(fù)雜攻擊的一個環(huán)節(jié)[2]。不同復(fù)雜攻擊可能包含相同的攻擊片段,即某幾步攻擊是相同的,攻擊意圖也有多種可能性,攻擊者的復(fù)雜攻擊雖然一般有時序關(guān)系,但發(fā)生時差不定[3]。攻擊者可能故意發(fā)起一些和攻擊意圖不相關(guān)的攻擊行為來擾亂防御者的判斷。針對日益進(jìn)步的入侵手段,入侵檢測與識別方法的研究也漸漸成為了一門領(lǐng)域跨度較大的綜合性學(xué)科。
2008年,Rahman A、Ezeife C I等提出一種基于改進(jìn)Apriori-Infrequent算法的無線入侵檢測系統(tǒng)。2010年,Chen等[4]基于簽名檢測和規(guī)劃識別設(shè)計了一種可以預(yù)測攻擊的入侵防御系統(tǒng)。2010年,Peng X Q、Zhang C提出了檢測Rogue AP的一些策略。2010年,Han等[5]提出了一種基于Markov模型的入侵檢測技術(shù)。2011年,文獻(xiàn)[6]中提出了一種基于支持向量機(jī)SVM的異常檢測WIDS。2012年,文獻(xiàn)[7]中提出了一種可以檢測MAC Spoofing的方法,該方法使用包含radio tap header的beacon幀中的兩種時間戳計算出AP和STA之間的clock-skew,若檢測到擁有相同MAC地址、BSSID和SSID的AP卻擁有不同clock-skew值則認(rèn)為其為fake AP。2013年,文獻(xiàn)[8]中依據(jù)D-S證據(jù)理論提出了一種自適應(yīng)無需訓(xùn)練的采用多層度量值的Wi-Fi攻擊檢測方法。2016年,文獻(xiàn)[9]中提出了能夠?qū)iT識別deauthentication攻擊和evil twin攻擊的度量方法。2016年,文獻(xiàn)[10]中研究了針對無線傳感網(wǎng)絡(luò)WSN的異常檢測方法。
2011年,Mei等[11]提出了一種通過定義告警間相似度來構(gòu)建攻擊活動序列集,而后對序列聚類,提取最長公共子序列的方法發(fā)現(xiàn)多步攻擊模式。
2012年,文獻(xiàn)[12]中提出了一種可用于多步IDS的誤用檢測簽名語言Event Description Language(EDL),對應(yīng)一種基于有色Petri網(wǎng)的狀態(tài)轉(zhuǎn)換圖,圖中有開始和結(jié)束狀態(tài),到達(dá)結(jié)束狀態(tài)則表示攻擊發(fā)生。
隨著針對移動互聯(lián)網(wǎng)的攻擊方式越來越多樣化,已有的入侵檢測技術(shù)往往無法準(zhǔn)確移動攻擊行為。因此,我們還要研究面向無線入侵檢測系統(tǒng)的復(fù)雜多步攻擊識別方法。
本文設(shè)計的系統(tǒng)總體架構(gòu)如圖1所示。系統(tǒng)包括數(shù)據(jù)采集、單步攻擊識別、復(fù)雜攻擊識別和信息展示等四個模塊。
圖1 總體架構(gòu)圖
數(shù)據(jù)采集模塊:分布式采集所在環(huán)境的無線流量包,作為后續(xù)分析的數(shù)據(jù)來源。單步攻擊識別模塊:用于識別出單步攻擊,是后續(xù)復(fù)雜攻擊識別的基礎(chǔ)。復(fù)雜攻擊識別模塊:識別出復(fù)雜攻擊以及攻擊者最終意圖。信息展示模塊:實(shí)時展示系統(tǒng)識別出的攻擊過程。
單步攻擊識別中,度量(metric)的選擇十分關(guān)鍵。El-Khatib K在他的論文中說明了對于異常檢測分類時使用的SVM、神經(jīng)網(wǎng)絡(luò)、遺傳算法等方法,及如何選取合適的特征及數(shù)目來提升檢測率。
這些機(jī)器學(xué)習(xí)方法一般在前期需要大量的訓(xùn)練過程,而本文將使用能夠自適應(yīng)的在線分類算法,以避免IDS實(shí)際使用的局限性。本文將單步攻擊識別方法分為兩個部分:一是一種通用的無需訓(xùn)練的檢測方法(General Detector),對于各個攻擊行為,只需設(shè)定所需度量即可;二是針對特定攻擊行為,使用誤用檢測技術(shù),通過配置攻擊簽名庫(Signature Database)來判斷的方法(Specification Detector)。本模塊將結(jié)合兩種識別方法來判斷單步攻擊是否發(fā)生,以及攻擊者影響到的幀。單步攻擊識別模塊組成如圖2所示。
圖2 單步攻擊識別模塊
下面先從邏輯分類的角度描述幀(frame),攻擊(attack)和網(wǎng)絡(luò)節(jié)點(diǎn)(network node)。
從數(shù)據(jù)幀的粒度來說,根據(jù)是否攻擊者發(fā)出或影響可以將之分為正常幀NF(normal frame)和非正常幀MF(malicious frame)。從攻擊對網(wǎng)絡(luò)流量是否影響,可以將攻擊分為顯性攻擊EA(explicit attack)和隱性攻擊HA(hidden attack)。而網(wǎng)絡(luò)節(jié)點(diǎn)則分為攻擊者AN(attacker node)、受害者VN(victim node)、過渡者SN(springboard node)。一個實(shí)際發(fā)生的攻擊行為對應(yīng)一條從攻擊者到受害者的攻擊路徑(attack path)。
攻擊識別就是識別出數(shù)據(jù)幀、攻擊行為和場景角色這三個對象。
1) 一種基于D-S理論識別方法 General Detector所使用的識別方法,是一種基于Dempster-Shafer證據(jù)理論 (D-S evidence theory) 的識別方法。D-S證據(jù)理論是一種無需先驗(yàn)知識的方法,其基本概念如下。
識別框架:Θ={θ1,θ2,…,θn},有關(guān)問題域的互斥命題的有窮集合??山M成冪集2Θ。
基本概率分配BPA(basic probability assignment),質(zhì)量函數(shù):
(1)
命題信任函數(shù):
(2)
表示A的全部子集的BPA之和。
似然函數(shù):
(3)
表示不否認(rèn)A的信任度,是所有與A相交的子集的BPA之和。
信任區(qū)間:[Bel(A),pl(A)],表示A為真有Bel(A)的信任度,A為假的信任度1-pl(A),A為真的不確定度pl(A)-Bel(A)。
Dempster合成規(guī)則:
(m1⊕m2⊕…⊕mn)(A)=
(4)
對于一個幀而言,有Θ={NF,MF},2Θ={?,NF,MF,{NF|MF}},其中{NF|MF}=UF(uncertain frame)。對于每一個度量,維持一個滑動窗口SW(sliding window),其長度為n,則有n個NF幀在其中組成配置數(shù)據(jù)集。若檢測到一個幀為MF,則不會將其放入SW中,若檢測為NF則更新SW。
滑動窗口如圖3所示。
圖3 滑動窗口機(jī)制
該方法對2Θ={?,NF,MF,{NF|MF}}的BPA計算方式如下。
BeliefMF:SW中度量重復(fù)最大次數(shù)F,均值mean,最大Euclidean距離Dmax,
(5)
對于每一個進(jìn)入的幀,計算:
(6)
BeliefNF:將SW中的數(shù)據(jù)按度量大小順序排列后,根據(jù)進(jìn)入幀的度量值所在位置分配固定值。離中位數(shù)越近取值越高,最高為0.5。
BeliefUF:根據(jù)前面兩種分配數(shù)值有以下四種情形:
(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,并設(shè)定閾值,用于判定進(jìn)入幀是MF或NF。
要使得該方法有效需要滿足三個條件。(1) 正常流量占總流量大部分;(2)NF、MF的度量值有明顯差異;(3) 滑動窗口長度n的設(shè)置。n取值過小,則無法包含足夠信息,取值過大,則增加誤入MF風(fēng)險,同時延長檢測過程。
2) 一種基于D-S理論識別方法 根據(jù)上述兩種檢測方法得到的結(jié)果,綜合判斷攻擊是否發(fā)生。兩種檢測方法均建立內(nèi)存數(shù)據(jù)庫,存儲所有檢測的歷史數(shù)據(jù)。General Detector存儲每個幀的信任區(qū)間,Specification Detector存儲每個檢測到的s_attack。單步攻擊決策函數(shù)為,t為某時刻,結(jié)果為攻擊發(fā)生可能性AP(attack possiblility)。s_decsion將從內(nèi)存數(shù)據(jù)庫中分別根據(jù)幀的時間戳和ftime查找t附近的數(shù)據(jù)。
若某種攻擊行為只進(jìn)行了其中一種檢測方法,則以其為準(zhǔn)。若兩者均處于檢測中則對某時刻t有如下情形:
(1) General Detector檢測到,Specification Detector檢測到;
(2) General Detector檢測到,Specification Detector未檢測到;
(3) General Detector未檢測到,Specification Detector檢測到;
(4) General Detector未檢測到,Specification Detector未檢測到。
在(1)、(4)情形下,兩者結(jié)果一致則直接以此為結(jié)果,為1和0。
在(2)情形下,認(rèn)為有攻擊A發(fā)生,對應(yīng)該MF,結(jié)果為:
αBelMF(A)+βPlMF(A)
(10)
在(3)情形下,對應(yīng)該攻擊和幀的信任區(qū)間或拒絕證據(jù)區(qū)間較大,此時認(rèn)為有攻擊A發(fā)生,對應(yīng)s_attack。此時,計算s_attack中r_frames的所有信任區(qū)間的均值:
(11)
(12)
若均值滿足General Detector設(shè)定的閾值,則結(jié)果為1,否則結(jié)果為:
αBelr_frames(A)+βPlr_frames(A)
(13)
上述有參數(shù)α+β=1,α,β∈[0,1],通常取值α=β=0.5。
單步攻擊決策中,需要對幀的分類,即單步攻擊結(jié)果輸出進(jìn)行統(tǒng)一化。在(1)情形下,將General Detector對應(yīng)的MF加入到rframes中,在(2)情形下,根據(jù)MF構(gòu)造出s_attack(A, MF.mac_src, MF.mac_dst, MF.mac_reciever, MF.timestamp, MF.bssid, {MF}),其中的name為A,src為MF數(shù)據(jù)鏈路層的源地址,dst為MF的目的地址,tran為接收端地址,ftime和etime為timestamp,rframes為{MF},bssid為MF的BSSID。最終單步攻擊識別模塊輸出對象single-step attack information(SAI)為二元組(AP,s_attack)。
復(fù)雜攻擊識別模塊對應(yīng)IDS的告警關(guān)聯(lián)階段,而攻擊圖可用于告警關(guān)聯(lián)。本文的復(fù)雜攻擊識別模塊中就使用了邏輯攻擊圖生成器和攻擊流量拓?fù)鋱D生成器搭配去挖掘攻擊路徑。
上一步得到的單步攻擊告警,在這一模塊中包括兩個主要步驟。首先需要預(yù)處理,去除無關(guān)告警和重復(fù)告警,精簡告警數(shù)量。然后需要通過整理得到的超告警去識別攻擊者易采取的攻擊序列,并預(yù)測攻擊者后續(xù)動作和最終意圖。
識別攻擊序列時,從邏輯上將告警(Alert)分為三類:一是已檢測到的告警ADE(Alert Detected),這類告警明確屬于某種單步攻擊;二是未檢測到的告警AUD(Alert Undetected),即可能丟失的告警;三是未來將發(fā)生的告警APR(Alert Predicted),即預(yù)測結(jié)果。另外考慮到攻擊者可能會在攻擊過程中進(jìn)行一些無意義攻擊來混淆其真實(shí)目的,第一類告警還將分為屬于真實(shí)意圖的告警AR(Alert Real)以及擾亂告警AD(Alert Disturbed)。
1) 告警精簡 上一模塊中產(chǎn)生的單步攻擊告警,由于其General Detector細(xì)化到幀的程度,將可能產(chǎn)生大量的告警。有必要對這些告警進(jìn)行精簡處理,減少告警數(shù)量,消除無關(guān)告警和重復(fù)告警。告警SAI精簡流程如圖4所示。
圖4 單步攻擊告警精簡流程
(1) 無關(guān)告警:有一些告警指示的是與無線攻擊行為無關(guān)的其他攻擊,或者該告警明顯錯誤。
(2) 重復(fù)告警:同一攻擊行為產(chǎn)生的告警,且沒有在單步攻擊識別模塊中合并,通常是具有相同攻擊路徑由同一攻擊者發(fā)出的同一類型攻擊行為,或者時間上存在連續(xù)性、周期性的表現(xiàn)。
處理單步攻擊識別模塊產(chǎn)生的數(shù)據(jù)庫SAIs時,比較算子cmp(SAI1,SAI2)比較兩者是否可以合并,若可以則放入同一個集合Merging SAIs中。于是將SAIs分類成一組Merging SAIs,對每一個SAIs進(jìn)行合并。
2) 攻擊鏈簽名 攻擊鏈簽名描繪了常見復(fù)雜攻擊場景,攻擊鏈基于因果關(guān)系建立攻擊之間的鏈接。一個攻擊發(fā)生需要前置條件,發(fā)生后產(chǎn)生一些后果,從前一步攻擊到達(dá)后一步攻擊需要滿足相應(yīng)條件。最后的一項(xiàng)攻擊節(jié)點(diǎn)為最終攻擊者所實(shí)施的攻擊,通常蘊(yùn)含著攻擊者的攻擊真實(shí)意圖。復(fù)雜攻擊識別模塊的簽名數(shù)據(jù)庫包含了一系列經(jīng)典攻擊鏈,供生成邏輯攻擊圖所需。其模型如圖5所示。
圖5 攻擊鏈模型
3) 攻擊鏈簽名 攻擊流量拓?fù)鋱D生成流程如圖6所示。
圖6 攻擊流量拓?fù)鋱D生成流程
攻擊流量拓?fù)鋱D示例如圖7所示。
圖7 攻擊流量拓?fù)鋱D示例
圖7存在2個VNs,其中一個是由兩個VNs合并而來,還有3個VNm以及2個VNt。這個攻擊流量拓?fù)鋱D中一共包含了四種單步攻擊,分別是:
attack1:VNs1->VNm1->VNm2->VNt2;
attack2:VNs1->VNm2->VNt2;
attack3:VNs1->VNm1->VNt1+VNs21->VNm3->VNt2;
attack4:VNs2[VNs21+VNs22]->VNm3->VNt2。
VN之間的單步攻擊關(guān)聯(lián)度為:
(14)
式中:k為VN1到VN2的單步攻擊告警集合SAIVN1->VN2的告警數(shù)目。
4) 攻擊路徑解析 結(jié)合攻擊流量拓?fù)鋱D和邏輯攻擊圖可以進(jìn)行攻擊路徑解析,其流程圖如圖8所示。
圖8 攻擊路徑解析流程
在攻擊流量拓?fù)鋱D上找尋到一條的攻擊路徑時,其關(guān)聯(lián)度為:
(15)
將其對應(yīng)到候選攻擊鏈的相應(yīng)節(jié)點(diǎn)上。
本實(shí)驗(yàn)使用設(shè)備和環(huán)境情況如表1所示。
表1 實(shí)驗(yàn)設(shè)備配置
實(shí)驗(yàn)環(huán)境中使用6個公開認(rèn)證AP(接入點(diǎn)),2個WEP(有線等效保密協(xié)議)加密AP,7個WPA加密AP,1個隱藏SSID的AP,其中WEP加密以及隱藏SSID均為實(shí)驗(yàn)準(zhǔn)備,其他AP為正常使用。
實(shí)驗(yàn)場景部署平臺如圖9所示。
單步攻擊識別使用了兩個檢測器:一是基于D-S證據(jù)理論的異常檢測;二是依賴簽名數(shù)據(jù)庫的誤用檢測。誤用檢測單步攻擊識別評估標(biāo)準(zhǔn)為False Negative(FN)、False Positive(FP)和Detect Rate(DR),本文根據(jù)s_attack中r_frames統(tǒng)計,再加上式(10)中對單個MF的可信度AP的均值A(chǔ)verge Attack Possibility(AAP)、方差Variance Attack Possibility(VAP),組成單步攻擊識別的評估。
首先對中間人攻擊Dnsspoof進(jìn)行識別,Dnsspoof攻擊截獲用戶DNS Request,發(fā)送其錯誤地址,特征是無論何種域名,所有DNS Response報文均為攻擊者指定同一地址。實(shí)驗(yàn)結(jié)果如下:Specification Detector檢測率為88.67%,General Detector 對屬于惡意報文的平均評估為0.63,方差為0.13,表示對惡意報文的識別比較穩(wěn)定,對正常報文的平均評估為0.34,表示其為攻擊行為產(chǎn)生的可信度比較低,具體結(jié)果如表2所示。
表2 Dnsspoof攻擊識別結(jié)果
然后對取消認(rèn)證攻擊deauthentication進(jìn)行識別,deauthentication攻擊冒充合法用戶給AP發(fā)送取消認(rèn)證報文使其斷開連接,特征是該攻擊發(fā)送時將持續(xù)產(chǎn)生大量取消認(rèn)證及用戶重連時產(chǎn)生的管理幀報文,實(shí)驗(yàn)結(jié)果如表3所示。
表3 deauthentication攻擊識別結(jié)果
實(shí)驗(yàn)表明,本文提出的方法能夠較好地識別單步攻擊,其評估的高可信度為識別復(fù)雜攻擊場景提供了支撐。
本實(shí)驗(yàn)對涉及Deauth攻擊的四種復(fù)雜攻擊鏈進(jìn)行識別,分別如下:
Chain A:攻擊意圖為拒絕服務(wù)攻擊,攻擊者使用airodump偵聽得到目標(biāo)AP的SSID、MAC地址以及連接該AP的設(shè)備MAC地址,所需條件是一張monitor mode的網(wǎng)卡。到達(dá)Airodump攻擊節(jié)點(diǎn)后,根據(jù)上一步得到的信息,攻擊者將循環(huán)進(jìn)行Deauth攻擊,斷開指定設(shè)備到目標(biāo)AP的連接,形成取消認(rèn)證洪泛攻擊。
Chain B:最終攻擊為MAC Spoofing,經(jīng)過airodump和Deauth兩個攻擊節(jié)點(diǎn)后,攻擊者根據(jù)目標(biāo)設(shè)備的MAC地址和ssid使用macchanger偽造MAC地址。
Chain C:最終攻擊為Evil Twin,經(jīng)過airodump攻擊節(jié)點(diǎn)后,攻擊者根據(jù)目標(biāo)設(shè)備的MAC地址,AP MAC地址和SSID并行實(shí)施兩種攻擊行為,分別是使用airbase-ng偽造AP,以取消認(rèn)證攻擊斷開目標(biāo)設(shè)備連接。滿足偽造AP建立條件后,目標(biāo)設(shè)備連入偽造AP,形成Evil Twin攻擊。
Chain D:攻擊意圖為Key Crack,經(jīng)過airodump攻擊節(jié)點(diǎn)后,若檢查到arp request報文則進(jìn)行arp replay攻擊,獲取arp response報文供密鑰破解。若沒有則使用Deauth攻擊,使到達(dá)arp replay的條件滿足。
利用復(fù)雜攻擊識別模塊對Chain D攻擊序列進(jìn)行識別,得到評估前3的攻擊鏈。其中目標(biāo)為Key Crack的攻擊鏈1的關(guān)聯(lián)度為1.32,攻擊鏈長度為4,識別為攻擊者最終攻擊意圖,實(shí)驗(yàn)結(jié)果如表4所示。
表4 攻擊鏈評估結(jié)果
另外,分別對四種復(fù)雜攻擊意圖所展開的攻擊行為進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。
表5 取消認(rèn)證攻擊場景識別結(jié)果
實(shí)驗(yàn)中取識別出攻擊行為的為有效數(shù)據(jù),每個攻擊意圖各100次。實(shí)驗(yàn)結(jié)果中,對Chain A和Chain D的識別率較高,分別為0.69和0.78。這是由于Chain A洪泛攻擊不停地實(shí)施取消認(rèn)證攻擊,因此與其他攻擊鏈有較高的區(qū)分度,Chain D則是由于攻擊時產(chǎn)生大量的arp報文,所在的arp replay攻擊節(jié)點(diǎn)易于識別。實(shí)驗(yàn)結(jié)果表明,使用本文所提出的方法判斷攻擊者攻擊意圖,關(guān)鍵因素之一是可能的攻擊鏈之間的區(qū)分度。當(dāng)所實(shí)施的攻擊行為存在明顯特征時,具有較好的預(yù)測結(jié)果。但如果兩種攻擊意圖使用相同或近似的攻擊步驟時,則在最終預(yù)測的候選攻擊鏈中會擁有相近的評估分?jǐn)?shù),說明預(yù)測結(jié)果不太適宜只使用一種攻擊鏈對應(yīng)的攻擊意圖。由于Chain A與Chain D都可能以Deauth攻擊為最終節(jié)點(diǎn),根據(jù)攻擊步驟來看,還是具有較為明顯的特征區(qū)別,本文提出的方法能夠較好地進(jìn)行區(qū)分,并最終識別出真正的攻擊意圖,在一定程度上說明了該方法在無線入侵檢測領(lǐng)域中有著一定的參考價值。
本文針對無線網(wǎng)絡(luò)中的復(fù)雜攻擊,設(shè)計并實(shí)現(xiàn)了一個復(fù)雜無線入侵檢測系統(tǒng)。系統(tǒng)從流量采集到復(fù)雜攻擊識別,其間每一個模塊所產(chǎn)生的信息有效與否都將影響后續(xù)模塊,考慮到類似攻擊誤判的可能性,采用評估值而非布爾計量對整個系統(tǒng)進(jìn)行描述。實(shí)驗(yàn)表明,使用本文所提出的方法判斷攻擊者攻擊意圖,能夠提供較為全面的預(yù)測結(jié)果,對識別攻擊者的最終攻擊意圖具有一定的意義。