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