陳觀林 吳 穎 周坤瀧
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攻擊為最終節點,根據攻擊步驟來看,還是具有較為明顯的特征區別,本文提出的方法能夠較好地進行區分,并最終識別出真正的攻擊意圖,在一定程度上說明了該方法在無線入侵檢測領域中有著一定的參考價值。
本文針對無線網絡中的復雜攻擊,設計并實現了一個復雜無線入侵檢測系統。系統從流量采集到復雜攻擊識別,其間每一個模塊所產生的信息有效與否都將影響后續模塊,考慮到類似攻擊誤判的可能性,采用評估值而非布爾計量對整個系統進行描述。實驗表明,使用本文所提出的方法判斷攻擊者攻擊意圖,能夠提供較為全面的預測結果,對識別攻擊者的最終攻擊意圖具有一定的意義。