許宏云,李 晗
(1. 河南省農(nóng)業(yè)科學院農(nóng)業(yè)經(jīng)濟與信息研究所 河南 鄭州 450002;2. 遼寧工業(yè)大學電子與信息工程學院,遼寧 錦州 121000)
現(xiàn)如今局域網(wǎng)安全問題越來越嚴峻[1],其中蟲洞攻擊是危害局域網(wǎng)的一種攻擊手段,由于蟲洞攻擊在攻擊網(wǎng)絡時不需要解密就可以直接攻擊局域網(wǎng),導致對其進行預防和檢測的難度較大[2],因此許多學者對蟲洞攻擊的檢測展開研究[3]。
陳晉音[4]等人提出自適應免疫計算下的蟲洞攻擊路徑檢測方法,該方法在密度聚類算法的基礎(chǔ)上對網(wǎng)絡訓練樣本數(shù)據(jù)進行預處理,同時通過聚類分析,將訓練數(shù)據(jù)進行去噪并構(gòu)建網(wǎng)絡攻擊檢測器,結(jié)合自我檢測器及非我檢測器實現(xiàn)蟲洞攻擊路徑檢測,該方法在檢測前沒有進行蟲洞攻擊路徑的預測,無法精準檢測蟲洞攻擊,導致蟲洞攻擊路徑檢測成功率低;劉立明[5]等人提出基于異常流量可視化的通信網(wǎng)絡蟲洞攻擊路徑檢測方法,該方法采集網(wǎng)絡中的鏡像流量,通過定時器函數(shù)獲取異常流量特征參數(shù),利用異常流量標記被攻擊路徑,實現(xiàn)蟲洞攻擊檢測,該方法只是利用標記異常流量特征參數(shù)估計蟲洞攻擊,沒有識別歷史蟲洞攻擊痕跡,導致最終結(jié)果和預測結(jié)果出入過大,檢測時間較長,存在檢測效率低的問題。石俊濤[6]等人提出無線網(wǎng)絡的蟲洞攻擊路徑檢測方法,該方法通過網(wǎng)卡獲取無線網(wǎng)數(shù)據(jù),在蟲洞攻擊描述語言的基礎(chǔ)上生成攻擊路徑檢測規(guī)則數(shù)據(jù)庫,利用檢測引擎實現(xiàn)網(wǎng)絡攻擊路徑檢測,該方法在檢測蟲洞攻擊前沒有判斷歷史蟲洞攻擊等級,無法確定蟲洞攻擊最有可能發(fā)起攻擊的路徑,不能準確識別網(wǎng)絡中的其它攻擊類型,檢測誤判率較高。
為了解決上述方法中存在的問題,提出需求評估響應下局域網(wǎng)蟲洞攻擊路徑檢測方法。在檢測局域網(wǎng)蟲洞攻擊路徑前,首先根據(jù)原有的蟲洞攻擊行為痕跡推測攻擊等級,然后計算蟲洞攻擊概率預測攻擊路徑,最后基于灰色理論方法評估路徑灰類,實現(xiàn)蟲洞攻擊路徑檢測。
根據(jù)局域網(wǎng)歷史蟲洞攻擊痕跡,通過概率問題預測出新的攻擊路徑[7]。即首先尋找歷史攻擊痕跡,并按照攻擊痕跡的路徑推測攻擊等級,根據(jù)概率分布預測蟲洞攻擊路徑。
當網(wǎng)絡受到蟲洞攻擊前會接收到警告提醒,假設(shè)提醒的痕跡為
Alarm=(AS,AE)
(1)
式中,AS表示提醒警告的狀態(tài)集合,AE表示提醒警告的事件集合。
則T時刻的提醒警告痕跡為AlarmT=(AST,AET),提醒警告的事件集合為AET={aei|i=1,2,…},提醒警告的狀態(tài)集合為AST={asi|i=1,2,…}。
假設(shè)T時刻網(wǎng)絡受到蟲洞攻擊的痕跡為
AttackT=(ST,A′,A″)
(2)
式中,A′代表歷史攻擊失敗的蟲洞攻擊節(jié)點集合,ST代表T時刻局域網(wǎng)中正確網(wǎng)絡狀態(tài)的節(jié)點集合,A″代表歷史攻擊成功的蟲洞攻擊節(jié)點集合。
令ε為識別局域網(wǎng)是否受到蟲洞攻擊的閾值,受到的攻擊為ai,若ai的概率Δ1(ai)小于閾值ε,則認定局域網(wǎng)沒有受到攻擊,若ai的概率Δ1(ai)大于閾值ε,則局域網(wǎng)受到攻擊。
基于CKN構(gòu)建警告攻擊痕跡AlarmT到蟲洞攻擊痕跡AttackT的實時投影,即實時蟲洞攻擊,投影的算法為:
在局域網(wǎng)CKN=(N,E,Δ)中輸入提醒警告痕跡AlarmT=(AST,AET)和閾值ε。
求解得到T時刻受到攻擊的痕跡為AttackT=(ST,A′,A″),則網(wǎng)絡運算過程為:
步驟一:初始化處理T時刻受到的攻擊痕跡并求解AttackT-1,經(jīng)過處理后的蟲洞攻擊痕跡自身帶有前一刻的運算結(jié)構(gòu),可有效減少運算時間。
步驟三:生成具有通過狀態(tài)的提醒警告ST=ST∪[fAS→S(asi)]。
步驟四:生成成功攻擊的蟲洞攻擊集合A″=A″∪{Pre[fAS→S(asi)]}。
步驟六:結(jié)束運算,此時所有aei∈AET,生成攻擊失敗的蟲洞攻擊集合A′。
步驟七:如果[Δ4(fAE→A(aei))>ε],則攻擊失敗的蟲洞攻擊集合A′=A′∪[fAE→A(aei)]。
步驟八:結(jié)束運算,返回T時刻受到攻擊的痕跡AttackT。
根據(jù)上述方法識別出局域網(wǎng)中的蟲洞攻擊為
Res∈{Lsuc,Lfail,Msuc,Mfail,Hsuc,Hfail}
(3)
式中,L代表復雜度為low且成功攻擊的蟲洞攻擊,M代表復雜度為medium但攻擊失敗的蟲洞攻擊,H代表復雜度為high且攻擊成功的蟲洞攻擊。
蟲洞攻擊結(jié)果可實時顯現(xiàn)出蟲洞攻擊痕跡,亦能直接反應蟲洞攻擊的實際情況,進而預測出蟲洞攻擊的等級,則等級確定方法可總結(jié)為
(4)
局域網(wǎng)的防火墻可隨蟲洞的攻擊和防守之間的對抗等級強度變化而變化,兩者之間還存在著客觀相對性,因此不同攻擊等級之間的先驗概率相等,綜合葉斯定理可求出局域網(wǎng)受到同一蟲洞攻擊時的攻擊行為等級的概率分布及攻擊成功或失敗的概率分布之間的比值[8]。
假設(shè)局域網(wǎng)受到同一攻擊為Res(ai),將推測出攻擊行為能力等級的分布記為P(Cap(attacker)|Res(ai)),則概率為P(Cap(attacker)|Res(ai))。
根據(jù)不同蟲洞攻擊等級的先驗概率相等,可得式(5)
P(Cap(attacker)|Res(ai))∝
P(Res(ai)|Cap(attacker))
(5)
若Res∈{Lsuc,Msuc,Hsuc},則可得出
P(Res(ai)|Cap)=f(Cpx(ai),Cap)
(6)
式中,蟲洞攻擊成功的概率記為f(Cax(ai),Cap),至此實現(xiàn)蟲洞攻擊等級預測。
在Dijkstra算法的基礎(chǔ)上利用矩陣G、攻擊目標S[y]和攻擊痕跡TAttackT預測出可能受到攻擊概率最高的路徑Path和成功攻擊的概率MaxPr ob,并綜合特殊攻擊節(jié)點集合L完善蟲洞攻擊路徑預測,具體算法為:
步驟一:在Dijkstra算法中輸入矩陣G,集合L、蟲洞攻擊目標S[y]和攻擊痕跡TAttackT。
步驟二:獲取攻擊路徑。
步驟三:如果攻擊路徑Pr obPath(S[y]).Path中含有特殊攻擊節(jié)點ai。
步驟四:則可獲得蟲洞攻擊概率Pr ob(ai)=Δ12(aij)∏ProbPath(S(i).MaxProb)。
步驟五:如果Prob(ai)>ProbPath[Post(ai)].MaxProb。
步驟六:重置攻擊預測路徑和成功攻擊的概率。
步驟七:輸出蟲洞成功攻擊路徑的預測結(jié)果。
更新預測路徑和成功攻擊的概率后運算出可能受到的攻擊路徑函數(shù)ProbPath,此函數(shù)就是求解概率鄰近矩陣中到攻擊點集合之間的最小路徑。
(7)
式中,δi代表聚類目標i的統(tǒng)一聚類系數(shù)向量。則統(tǒng)一后的聚類系數(shù)矩陣為
(8)
假設(shè)蟲洞攻擊中存在n個聚類目標及s個不一樣的灰類,設(shè)置綜合聚類系數(shù)的權(quán)向量η=(1,2,…,s-1,s)T,可獲取聚類目標i的綜合聚類系數(shù)ωi的表達式為
(9)
因此基于灰色理論的局域網(wǎng)蟲洞攻擊的效能評估過程如圖1所示。
圖1 局域網(wǎng)蟲洞攻擊的效能評估
基于灰色理論評估局域網(wǎng)蟲洞攻擊的效能過程為:
1)明確蟲洞攻擊評估指標體系和權(quán)重:按照蟲洞攻擊類別,構(gòu)建蟲洞攻擊評估指標體系,以此獲取出蟲洞攻擊的灰色綜合聚類評估指標I,并利用綜合賦權(quán)法明確出各項指標的權(quán)重。
2)明確評估樣本矩陣,歸一化樣本極性:假設(shè),在局域網(wǎng)被攻擊的樣本數(shù)據(jù)的基礎(chǔ)上構(gòu)建出評估樣本矩陣D,矩陣D的表達式如下所示:
(10)
將全部蟲洞攻擊樣本歸一化成極大值極性,可更加簡易評估蟲洞攻擊,當指標數(shù)據(jù)為極小值極性時,利用轉(zhuǎn)換法將其轉(zhuǎn)換成極大值極性或提取此數(shù)據(jù)的倒數(shù)。
3)明確評估灰類,建造適合的白化函數(shù)
則符合要求的白化權(quán)函數(shù)的表達式為
(11)
6)運算綜合聚類系數(shù):在向量δi及聚類系數(shù)權(quán)向量η=(1,2,…,s-1,s)T的基礎(chǔ)上計算蟲洞攻擊i的綜合聚類系數(shù)ωi。
為了驗證所提方法的整體有效性,假設(shè)局域網(wǎng)節(jié)點總數(shù)為158,場地尺寸為150 m×150 m。每個節(jié)點每秒產(chǎn)生并發(fā)送一個數(shù)據(jù)包,每個數(shù)據(jù)包大小為128字節(jié),網(wǎng)絡帶寬為12kbp,分別對需求評估響應下局域網(wǎng)蟲洞攻擊路徑檢測方法、文獻[4]基于自適應免疫計算的網(wǎng)絡攻擊檢測方法、文獻[5]基于異常流量可視化的通信網(wǎng)絡入侵攻擊路徑智能跟蹤方法進行虛假鏈路移除概率、激活時延和可擴展性測試。
虛假鏈路移除概率測試通過測試不同時間間隔下的蟲洞攻擊點位移,在時間間隔一致時,蟲洞攻擊點位移越大,蟲洞攻擊聚類效果越差,測試結(jié)果如圖2所示。
圖2 不同方法的虛假鏈路移除概率
分析圖2可知,所提方法的蟲洞攻擊點位移隨著時間增加而變大但仍相較于其它兩種檢測方法更低,最高為12m,因為所提方法在檢測蟲洞攻擊前預測出局域網(wǎng)蟲洞攻擊的路徑,可提升蟲洞攻擊聚類效果,提高蟲洞攻擊路徑檢測能力。
激活時延測試通過測試不同閾值下的蟲洞節(jié)點通信半徑,節(jié)點通信半徑越短,蟲洞攻擊生成提醒警告速度越快,測試結(jié)果如圖3所示。
圖3 三種方法的激活時延
根據(jù)圖3可知,局域網(wǎng)在閾值不同時,節(jié)點通信半徑會因為其它因素導致蟲洞攻擊生成提醒警告速度減緩,但所提方法的最長時間不超過2s,而文獻[5]方法的最長檢測時間超過6s,文獻[4]方法次之,因為所提方法采用識別歷史蟲洞攻擊痕跡的方法估計出即將受到的蟲洞攻擊軌跡,以此提升蟲洞攻擊生成提醒警告速度。
可擴展性測試通過測試不同攻擊強度下,不同滑動窗口的數(shù)量,滑動窗口的數(shù)量越多,可擴展性越好,蟲洞攻擊路徑檢測性能越好,測試結(jié)果如表1所示。
表1 不同方法的可擴展性測試
分析表1可知,隨著攻擊強度的增大,三種方法滑動窗口的數(shù)量均有所提升,但所提方法的滑動窗口的數(shù)量始終高于其它兩種方法,且所提方法的窗口數(shù)量最高為20,因此,所提方法的可擴展性更好,這是因為所提方法通過判斷蟲洞攻擊等級預測出蟲洞攻擊最有可能發(fā)起攻擊的路徑,以此提高蟲洞攻擊可擴展性。
針對蟲洞攻擊檢測算法檢測成功率低、檢測效率低和檢測誤判率高的不足,提出需求評估響應下局域網(wǎng)蟲洞攻擊路徑檢測方法。
1)首先預測出蟲洞攻擊最有可能攻擊的路徑,并通過基于灰色理論的蟲洞攻擊評估方法評價此路徑,以此實現(xiàn)蟲洞攻擊路徑檢測;
2)虛假鏈路移除概率測試表明,所提方法的蟲洞攻擊點位移最高為12m,蟲洞攻擊聚類效果較好;激活時延測試表明,所提方法激活時延最長時間不超過2s,蟲洞攻擊生成提醒警告速度更快;可擴展性測試表明,所提方法窗口數(shù)量最高為20,蟲洞檢測可擴展性能更好;
3)下一步研究將嘗試所提方法應用于其它類型攻擊,擴展方法適用范圍。