程 濱,曹祖紅
(華東師范大學(xué),上海200062)
計算機軟件技術(shù)與物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,為人們的工作、學(xué)習(xí)和生活帶來了巨大便利,與此同時,物聯(lián)網(wǎng)軟件的惡意攻擊行為也隨之誕生,這給物聯(lián)網(wǎng)的安全運行帶來了巨大的威脅,同時也嚴(yán)重影響了人們的學(xué)習(xí)、工作[1]。因而,如何采取有效的措施來抵抗物聯(lián)網(wǎng)軟件中存在的惡意攻擊行為,成為亟待解決的問題[2]。
近年來,國內(nèi)外諸多學(xué)者對如何防御來自物聯(lián)網(wǎng)軟件攻擊行為,進行了大量的研究。如劉世文等人基于網(wǎng)絡(luò)安全態(tài)勢感知的主動防御技術(shù)研究[3]、張云等人基于SDN跨層回環(huán)攻擊的檢測與防御的研究[4]。這些研究在防御物聯(lián)網(wǎng)軟件攻擊方面,取得了可人的成績,在一定程度上對物聯(lián)網(wǎng)軟件中存在的攻擊行為進行了有效防御,縮短了系統(tǒng)運行的時間,提高了網(wǎng)絡(luò)運行的安全性[5,6],但是,其對攻擊行為的誤判率較高、在進行軟件攻擊自動防御后無法快速恢復(fù)網(wǎng)絡(luò)的平穩(wěn)運行[7]。
深度學(xué)習(xí)作為一種人工智能技術(shù),其在無監(jiān)督模式下的優(yōu)秀特征學(xué)習(xí)能力給物聯(lián)網(wǎng)軟件攻擊防御提供了嶄新途徑,為此本文提出基于人工智能的物聯(lián)網(wǎng)軟件攻擊自動防御方法,在防御物聯(lián)網(wǎng)軟件攻擊行為時,能夠快速區(qū)分物聯(lián)網(wǎng)軟件的正常與異常數(shù)據(jù),對軟件攻擊行為的誤判率更低,防御后恢復(fù)網(wǎng)絡(luò)平穩(wěn)運行時間更快,更能滿足實際工作需求。
2.1.1 基于深度學(xué)習(xí)的DDoS攻擊自動防御架構(gòu)圖
本文通過人工智能深度學(xué)習(xí)防護模塊與物聯(lián)網(wǎng)進行并聯(lián)的方式,實現(xiàn)物聯(lián)網(wǎng)軟件攻擊的自動防御。物聯(lián)網(wǎng)中軟件攻擊自動防御架構(gòu)圖如圖1。
圖1 軟件攻擊自動防御架構(gòu)圖
具體的攻擊防御流程為:
1)通過數(shù)據(jù)輸入模塊將網(wǎng)絡(luò)數(shù)據(jù)流量同時傳輸給人工智能深度學(xué)習(xí)模塊與物聯(lián)網(wǎng)Openflow網(wǎng)絡(luò)協(xié)議模塊。
2)物聯(lián)網(wǎng)的Openflow網(wǎng)絡(luò)協(xié)議對傳輸過來的數(shù)據(jù)流量進行正常處理,人工智能深度學(xué)習(xí)模塊對網(wǎng)絡(luò)數(shù)據(jù)流量中是否存在攻擊流量進行檢測。
3)利用Openflow網(wǎng)絡(luò)協(xié)議流表下發(fā)模塊將檢測出的物聯(lián)網(wǎng)軟件攻擊行為轉(zhuǎn)換成Openflow網(wǎng)絡(luò)協(xié)議流表[8,9]。
4)將轉(zhuǎn)換的網(wǎng)絡(luò)協(xié)議流表發(fā)送給Openflow網(wǎng)絡(luò)協(xié)議交換機,完成軟件攻擊自動防御,輸出安全數(shù)據(jù)[10]。
2.1.2 人工智能深度學(xué)習(xí)模塊軟件攻擊檢測處理流程
在人工智能深度學(xué)習(xí)模塊中,對物聯(lián)網(wǎng)軟件中數(shù)據(jù)流量攻擊的檢測處理流程可以歸結(jié)如下:
1)通過數(shù)據(jù)包處理模塊對輸入的網(wǎng)絡(luò)數(shù)據(jù)進行特征提取,并生成新的數(shù)據(jù)格式、構(gòu)建新的網(wǎng)絡(luò)數(shù)據(jù)維度。
2)在深度學(xué)習(xí)DDoS攻擊監(jiān)測模塊,通過SMNA-CUSUM算法對經(jīng)過數(shù)據(jù)包處理模塊處理過的網(wǎng)絡(luò)數(shù)據(jù)進行異常檢測。
3)在Openflow網(wǎng)絡(luò)協(xié)議流表下發(fā)模塊中,提取物聯(lián)網(wǎng)軟件中存在的異常數(shù)據(jù)特征,根據(jù)提取的異常數(shù)據(jù)特征產(chǎn)生Openflow異常數(shù)據(jù)網(wǎng)絡(luò)協(xié)議流表,并將其發(fā)送給交換機,完成后續(xù)攻擊自動防御過程[11,12]。
本文應(yīng)用基于滑動窗口的多維度自適應(yīng)閾值非參數(shù)累積和(SMNA-CUSUM)算法對物聯(lián)網(wǎng)軟件中網(wǎng)絡(luò)數(shù)據(jù)流量進行數(shù)據(jù)異常檢測,尋找惡意攻擊數(shù)據(jù),為防御物聯(lián)網(wǎng)軟件攻擊提供可靠依據(jù)[13,14]。其算法流程如圖2。
圖2 SMNA-CUSUM算法流程圖
SMNA-CUSUM算法在本文進行物聯(lián)網(wǎng)軟件網(wǎng)絡(luò)數(shù)據(jù)異常數(shù)據(jù)檢測的過程如下:
用L代表滑動窗口的長度,在長度為L的滑動窗口中,提取若干個特征序列,將其數(shù)量表示為K,相應(yīng)的維度為k的特征中的第i個樣本點便可標(biāo)記為{Xik},如果將{Xik}的均值用μk代表,μk用公式可以表示為
(1)
用σk代表特征序列的方差,則有
(2)
用Uik、Lik代表特征序列中樣本點累積和的上下限,有
(3)
(4)
在i=L的條件下,若將當(dāng)前窗口特征序列的最終上限與下限用公式表示為Uk、Lk,那么對于特征序列k的判決函數(shù),用公式可將其表述為
(5)
式中,特征序列k的閾值用Nk代表:
Nk=h*σk
(6)
式中,自適應(yīng)閾值與方差的線性系數(shù)用h表示。在k個判決函數(shù)中,代入各個Uk、Lk,可得到判決向量D,D滿足D=(d1,d2,…,dk)。用r(D)表示最終得到的判決函數(shù),滿足
(7)
在式(7)中代入判決向量D,如果數(shù)據(jù)流量異常,式(7)結(jié)果顯示為1,反之顯示為0。對每一個滑動窗口重復(fù)以上操作,便可完成對物聯(lián)網(wǎng)軟件異常數(shù)據(jù)的檢測[15]。
本文以某大型物流公司的物聯(lián)網(wǎng)軟件為實驗對象,使用matlab軟件仿真該物流公司軟件攻擊自動防御過程,驗證本文方法的應(yīng)用效果。
表1是應(yīng)用本文方法與文獻[3]基于網(wǎng)絡(luò)安全態(tài)勢感知的主動防御方法、文獻[4]基于SDN跨層回環(huán)攻擊的檢測與防御方法得到的網(wǎng)絡(luò)運行時間為200s時的自動防御攻擊軟件數(shù)量。
表1 自動防御攻擊軟件樣本數(shù)量(個)
從表1可以看出應(yīng)用本文方法可以實現(xiàn)軟件攻擊的自動防御,并且對比其它兩種方法,本文方法在相同的時間內(nèi)能夠防護的惡意軟件的數(shù)量更多。說明應(yīng)用本文方法可以更有效防御軟件攻擊,滿足實際物聯(lián)網(wǎng)軟件攻擊防御需求。
圖3是仿真得到的應(yīng)用本文方法進行軟件攻擊防御的歸一化混淆矩陣示意圖。
圖3 歸一化混淆矩陣圖
從圖3可以看出,在當(dāng)前的網(wǎng)絡(luò)環(huán)境下,應(yīng)用本文方法后可以清晰地從混淆矩陣看到該物流公司的物聯(lián)網(wǎng)軟件中是否存在攻擊行為,驗證了本文方法的可行性。
受試者工作特征曲線可以用來反映分類性能的好壞。曲線包圍面積的大小與分類性能呈正相關(guān)。圖4是應(yīng)用本文方法仿真得到的不同網(wǎng)絡(luò)流量下的受試者工作特征曲線。
圖4 受試者工作特征曲線
從圖4可以看出,隨著物聯(lián)網(wǎng)軟件中數(shù)據(jù)流量的增加,受試者工作特征曲線無大幅度波動,波動趨勢基本一致,曲線包圍面積也基本相同。說明,應(yīng)用本文方法即使在數(shù)據(jù)流量較大的情況下,也能很好地區(qū)分網(wǎng)絡(luò)數(shù)據(jù)流量中的正常與異常數(shù)據(jù),更好實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)中數(shù)據(jù)流量異常狀況的監(jiān)測,為物聯(lián)網(wǎng)軟件攻擊自動防御提供可靠依據(jù),能更好滿足實際工作中對軟件攻擊的自動防御需求。
CPU占有率是衡量網(wǎng)絡(luò)軟件運算復(fù)雜度的一個重要指標(biāo),圖5是不同攻擊流速下應(yīng)用本文方法進行軟件攻擊自動防御的CPU占有率情況。
圖5 不同攻擊流速CPU占有率
從圖5可以看出,隨著攻擊流速的不斷增加,CPU占有率也隨之增加,但是增加幅度不大,隨著攻擊流量從80p/s增加到380p/s,CPU占有率僅增加了約5%。說明應(yīng)用本文方法,可以降低進行物聯(lián)網(wǎng)軟件攻擊自動防御時的運算復(fù)雜度,提高軟件攻擊自動防御的效率。
圖6是本文方法應(yīng)用前后物聯(lián)網(wǎng)軟件的網(wǎng)絡(luò)數(shù)據(jù)流量狀態(tài)變化情況。
圖6 網(wǎng)絡(luò)流量特征變化
從圖6可以看出,應(yīng)用本文方法的各網(wǎng)絡(luò)數(shù)據(jù)流量特征變化曲線比較平穩(wěn),波動的幅度較小,而未用本文方法得到的網(wǎng)絡(luò)數(shù)據(jù)流量特征變化曲線波動較大。說明應(yīng)用本文方法進行物聯(lián)網(wǎng)軟件攻擊自動防御時,很快就能使網(wǎng)絡(luò)恢復(fù)平穩(wěn)運行的狀態(tài),驗證了本文方法的有效性。
本文方法在不同攻擊流量下,不同滑動窗口構(gòu)造對判決時間影響的對比圖見圖7。
圖7 不同滑動窗口判決時間
從圖7可以看出,隨著累計分布函數(shù)數(shù)值的增加,對物聯(lián)網(wǎng)內(nèi)數(shù)據(jù)流量的判決時間大部分都在5s以內(nèi),只有一少部分的數(shù)據(jù)判決時間超過5s,并且隨著攻擊流量的增加,數(shù)據(jù)判決時間也沒有呈現(xiàn)較大幅度增加,三條曲線的變化趨勢基本一致。說明,應(yīng)用本文方法即使在攻擊流量較大時,也能用較短的時間對網(wǎng)絡(luò)數(shù)據(jù)進行判別,可有效提高物聯(lián)網(wǎng)軟件攻擊自動防御的效率。
圖8是在滑動窗口為10時,不同自適應(yīng)閾值和方差系數(shù)h對本文方法的物聯(lián)網(wǎng)軟件攻擊檢測結(jié)果的影響。圖中小正方形代表檢測到異常。
圖8 不同h值檢測結(jié)果
從圖8可以看出,在相同的時間點范圍內(nèi),當(dāng)h取值為1時,監(jiān)測到兩個異常點,當(dāng)h取值為2時,監(jiān)測到一個異常點,而當(dāng)h取值為3時,并未監(jiān)測到異常點。說明,在進行異常數(shù)據(jù)檢測時,隨著h值的增大,出現(xiàn)了漏發(fā)網(wǎng)絡(luò)數(shù)據(jù)異常警報的狀況,在進行軟件攻擊自動防御過程中,h的取值越小越好,可有效防止漏發(fā)警報狀況的發(fā)生,增強軟件攻擊自動防御的效果。
圖9是本文方法應(yīng)用過程中網(wǎng)關(guān)防火墻輸入、輸出包速率變化情況。
圖9 防火墻輸入/輸出包速率
從圖9可以看出,本文方法應(yīng)用過程中,無論在低數(shù)據(jù)量還是高數(shù)據(jù)量情況下,都可以在很短時間內(nèi)將物聯(lián)網(wǎng)軟件中的攻擊流量過濾掉。在仿真時間約為100~200s時,雖然兩種數(shù)據(jù)流量情況下都繼續(xù)存在一些攻擊流量,但是經(jīng)過短暫的時間后,這些攻擊流量又被過濾掉,網(wǎng)絡(luò)呈現(xiàn)穩(wěn)定運行狀況,說明此時本文提出的物聯(lián)網(wǎng)軟件攻擊自動防御方案發(fā)揮了作用,有效防御了物聯(lián)網(wǎng)中惡意的軟件攻擊行為。
圖10為分別應(yīng)用本文方法與文獻[3]方法、文獻[4]方法進行攻擊防御時得到的不同軟件集群連接數(shù)下的物理網(wǎng)吞吐量對比圖。
圖10 吞吐量對比圖
從圖10可以看出,在軟件集群連接數(shù)為10~103時,三種方法應(yīng)用后的網(wǎng)絡(luò)吞吐量基本完全一致,沒有差別,但在連接數(shù)達到103以后,隨著連接數(shù)的增加,本文方法的攻擊防御下網(wǎng)絡(luò)吞吐量隨之增加。說明應(yīng)用本文方法在進行物聯(lián)網(wǎng)軟件攻擊自動防御時,運算性能更為良好,物聯(lián)網(wǎng)網(wǎng)絡(luò)運行更加穩(wěn)定,更有利于對軟件攻擊進行自動防御。
圖11顯示的是受惡意攻擊情況下,本文方法應(yīng)用后網(wǎng)絡(luò)接入層軟件攻擊檢測圖。
圖11 網(wǎng)絡(luò)接入層軟件攻擊檢測
從圖11可以看出在相同時間內(nèi),網(wǎng)絡(luò)實際轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量明顯少于網(wǎng)路收到的數(shù)據(jù)包數(shù)量。說明,在惡意攻擊情況下,物聯(lián)網(wǎng)軟件對惡意軟件的攻擊采取了自動防御措施,將存在惡意的流量數(shù)據(jù)阻擋在了網(wǎng)絡(luò)之外,驗證了本文方法的有效性。
本文提出的基于人工智能的物聯(lián)網(wǎng)軟件攻擊自動防御方法,提高了軟件攻擊自動防御過程中對異常數(shù)據(jù)的監(jiān)測效率,并降低了監(jiān)測過程中的誤報率,在防御物聯(lián)網(wǎng)軟件攻擊方面防御性能較好。但是,由于在實際的軟件攻擊自動防御過程中,由于受多種因素影響,可能還有很多比較隱秘的軟件攻擊網(wǎng)絡(luò)數(shù)據(jù)未被發(fā)現(xiàn),從而影響整個物聯(lián)網(wǎng)軟件攻擊自動防御的效果,下一階段將在對各特征值進行合理有效分析的基礎(chǔ)上,研究如何防御物聯(lián)網(wǎng)軟件中隱秘軟件攻擊的角度進行相關(guān)研究。