程 濱,曹祖紅
(華東師范大學,上海200062)
計算機軟件技術與物聯網技術的不斷發展,為人們的工作、學習和生活帶來了巨大便利,與此同時,物聯網軟件的惡意攻擊行為也隨之誕生,這給物聯網的安全運行帶來了巨大的威脅,同時也嚴重影響了人們的學習、工作[1]。因而,如何采取有效的措施來抵抗物聯網軟件中存在的惡意攻擊行為,成為亟待解決的問題[2]。
近年來,國內外諸多學者對如何防御來自物聯網軟件攻擊行為,進行了大量的研究。如劉世文等人基于網絡安全態勢感知的主動防御技術研究[3]、張云等人基于SDN跨層回環攻擊的檢測與防御的研究[4]。這些研究在防御物聯網軟件攻擊方面,取得了可人的成績,在一定程度上對物聯網軟件中存在的攻擊行為進行了有效防御,縮短了系統運行的時間,提高了網絡運行的安全性[5,6],但是,其對攻擊行為的誤判率較高、在進行軟件攻擊自動防御后無法快速恢復網絡的平穩運行[7]。
深度學習作為一種人工智能技術,其在無監督模式下的優秀特征學習能力給物聯網軟件攻擊防御提供了嶄新途徑,為此本文提出基于人工智能的物聯網軟件攻擊自動防御方法,在防御物聯網軟件攻擊行為時,能夠快速區分物聯網軟件的正常與異常數據,對軟件攻擊行為的誤判率更低,防御后恢復網絡平穩運行時間更快,更能滿足實際工作需求。
2.1.1 基于深度學習的DDoS攻擊自動防御架構圖
本文通過人工智能深度學習防護模塊與物聯網進行并聯的方式,實現物聯網軟件攻擊的自動防御。物聯網中軟件攻擊自動防御架構圖如圖1。

圖1 軟件攻擊自動防御架構圖
具體的攻擊防御流程為:
1)通過數據輸入模塊將網絡數據流量同時傳輸給人工智能深度學習模塊與物聯網Openflow網絡協議模塊。
2)物聯網的Openflow網絡協議對傳輸過來的數據流量進行正常處理,人工智能深度學習模塊對網絡數據流量中是否存在攻擊流量進行檢測。
3)利用Openflow網絡協議流表下發模塊將檢測出的物聯網軟件攻擊行為轉換成Openflow網絡協議流表[8,9]。
4)將轉換的網絡協議流表發送給Openflow網絡協議交換機,完成軟件攻擊自動防御,輸出安全數據[10]。
2.1.2 人工智能深度學習模塊軟件攻擊檢測處理流程
在人工智能深度學習模塊中,對物聯網軟件中數據流量攻擊的檢測處理流程可以歸結如下:
1)通過數據包處理模塊對輸入的網絡數據進行特征提取,并生成新的數據格式、構建新的網絡數據維度。
2)在深度學習DDoS攻擊監測模塊,通過SMNA-CUSUM算法對經過數據包處理模塊處理過的網絡數據進行異常檢測。
3)在Openflow網絡協議流表下發模塊中,提取物聯網軟件中存在的異常數據特征,根據提取的異常數據特征產生Openflow異常數據網絡協議流表,并將其發送給交換機,完成后續攻擊自動防御過程[11,12]。
本文應用基于滑動窗口的多維度自適應閾值非參數累積和(SMNA-CUSUM)算法對物聯網軟件中網絡數據流量進行數據異常檢測,尋找惡意攻擊數據,為防御物聯網軟件攻擊提供可靠依據[13,14]。其算法流程如圖2。

圖2 SMNA-CUSUM算法流程圖
SMNA-CUSUM算法在本文進行物聯網軟件網絡數據異常數據檢測的過程如下:
用L代表滑動窗口的長度,在長度為L的滑動窗口中,提取若干個特征序列,將其數量表示為K,相應的維度為k的特征中的第i個樣本點便可標記為{Xik},如果將{Xik}的均值用μk代表,μk用公式可以表示為

(1)
用σk代表特征序列的方差,則有

(2)
用Uik、Lik代表特征序列中樣本點累積和的上下限,有

(3)

(4)
在i=L的條件下,若將當前窗口特征序列的最終上限與下限用公式表示為Uk、Lk,那么對于特征序列k的判決函數,用公式可將其表述為

(5)
式中,特征序列k的閾值用Nk代表:
Nk=h*σk
(6)
式中,自適應閾值與方差的線性系數用h表示。在k個判決函數中,代入各個Uk、Lk,可得到判決向量D,D滿足D=(d1,d2,…,dk)。用r(D)表示最終得到的判決函數,滿足

(7)
在式(7)中代入判決向量D,如果數據流量異常,式(7)結果顯示為1,反之顯示為0。對每一個滑動窗口重復以上操作,便可完成對物聯網軟件異常數據的檢測[15]。
本文以某大型物流公司的物聯網軟件為實驗對象,使用matlab軟件仿真該物流公司軟件攻擊自動防御過程,驗證本文方法的應用效果。
表1是應用本文方法與文獻[3]基于網絡安全態勢感知的主動防御方法、文獻[4]基于SDN跨層回環攻擊的檢測與防御方法得到的網絡運行時間為200s時的自動防御攻擊軟件數量。

表1 自動防御攻擊軟件樣本數量(個)
從表1可以看出應用本文方法可以實現軟件攻擊的自動防御,并且對比其它兩種方法,本文方法在相同的時間內能夠防護的惡意軟件的數量更多。說明應用本文方法可以更有效防御軟件攻擊,滿足實際物聯網軟件攻擊防御需求。
圖3是仿真得到的應用本文方法進行軟件攻擊防御的歸一化混淆矩陣示意圖。

圖3 歸一化混淆矩陣圖
從圖3可以看出,在當前的網絡環境下,應用本文方法后可以清晰地從混淆矩陣看到該物流公司的物聯網軟件中是否存在攻擊行為,驗證了本文方法的可行性。
受試者工作特征曲線可以用來反映分類性能的好壞。曲線包圍面積的大小與分類性能呈正相關。圖4是應用本文方法仿真得到的不同網絡流量下的受試者工作特征曲線。

圖4 受試者工作特征曲線
從圖4可以看出,隨著物聯網軟件中數據流量的增加,受試者工作特征曲線無大幅度波動,波動趨勢基本一致,曲線包圍面積也基本相同。說明,應用本文方法即使在數據流量較大的情況下,也能很好地區分網絡數據流量中的正常與異常數據,更好實現對網絡數據中數據流量異常狀況的監測,為物聯網軟件攻擊自動防御提供可靠依據,能更好滿足實際工作中對軟件攻擊的自動防御需求。
CPU占有率是衡量網絡軟件運算復雜度的一個重要指標,圖5是不同攻擊流速下應用本文方法進行軟件攻擊自動防御的CPU占有率情況。

圖5 不同攻擊流速CPU占有率
從圖5可以看出,隨著攻擊流速的不斷增加,CPU占有率也隨之增加,但是增加幅度不大,隨著攻擊流量從80p/s增加到380p/s,CPU占有率僅增加了約5%。說明應用本文方法,可以降低進行物聯網軟件攻擊自動防御時的運算復雜度,提高軟件攻擊自動防御的效率。
圖6是本文方法應用前后物聯網軟件的網絡數據流量狀態變化情況。

圖6 網絡流量特征變化
從圖6可以看出,應用本文方法的各網絡數據流量特征變化曲線比較平穩,波動的幅度較小,而未用本文方法得到的網絡數據流量特征變化曲線波動較大。說明應用本文方法進行物聯網軟件攻擊自動防御時,很快就能使網絡恢復平穩運行的狀態,驗證了本文方法的有效性。
本文方法在不同攻擊流量下,不同滑動窗口構造對判決時間影響的對比圖見圖7。

圖7 不同滑動窗口判決時間
從圖7可以看出,隨著累計分布函數數值的增加,對物聯網內數據流量的判決時間大部分都在5s以內,只有一少部分的數據判決時間超過5s,并且隨著攻擊流量的增加,數據判決時間也沒有呈現較大幅度增加,三條曲線的變化趨勢基本一致。說明,應用本文方法即使在攻擊流量較大時,也能用較短的時間對網絡數據進行判別,可有效提高物聯網軟件攻擊自動防御的效率。
圖8是在滑動窗口為10時,不同自適應閾值和方差系數h對本文方法的物聯網軟件攻擊檢測結果的影響。圖中小正方形代表檢測到異常。

圖8 不同h值檢測結果
從圖8可以看出,在相同的時間點范圍內,當h取值為1時,監測到兩個異常點,當h取值為2時,監測到一個異常點,而當h取值為3時,并未監測到異常點。說明,在進行異常數據檢測時,隨著h值的增大,出現了漏發網絡數據異常警報的狀況,在進行軟件攻擊自動防御過程中,h的取值越小越好,可有效防止漏發警報狀況的發生,增強軟件攻擊自動防御的效果。
圖9是本文方法應用過程中網關防火墻輸入、輸出包速率變化情況。

圖9 防火墻輸入/輸出包速率
從圖9可以看出,本文方法應用過程中,無論在低數據量還是高數據量情況下,都可以在很短時間內將物聯網軟件中的攻擊流量過濾掉。在仿真時間約為100~200s時,雖然兩種數據流量情況下都繼續存在一些攻擊流量,但是經過短暫的時間后,這些攻擊流量又被過濾掉,網絡呈現穩定運行狀況,說明此時本文提出的物聯網軟件攻擊自動防御方案發揮了作用,有效防御了物聯網中惡意的軟件攻擊行為。
圖10為分別應用本文方法與文獻[3]方法、文獻[4]方法進行攻擊防御時得到的不同軟件集群連接數下的物理網吞吐量對比圖。

圖10 吞吐量對比圖
從圖10可以看出,在軟件集群連接數為10~103時,三種方法應用后的網絡吞吐量基本完全一致,沒有差別,但在連接數達到103以后,隨著連接數的增加,本文方法的攻擊防御下網絡吞吐量隨之增加。說明應用本文方法在進行物聯網軟件攻擊自動防御時,運算性能更為良好,物聯網網絡運行更加穩定,更有利于對軟件攻擊進行自動防御。
圖11顯示的是受惡意攻擊情況下,本文方法應用后網絡接入層軟件攻擊檢測圖。

圖11 網絡接入層軟件攻擊檢測
從圖11可以看出在相同時間內,網絡實際轉發的數據包數量明顯少于網路收到的數據包數量。說明,在惡意攻擊情況下,物聯網軟件對惡意軟件的攻擊采取了自動防御措施,將存在惡意的流量數據阻擋在了網絡之外,驗證了本文方法的有效性。
本文提出的基于人工智能的物聯網軟件攻擊自動防御方法,提高了軟件攻擊自動防御過程中對異常數據的監測效率,并降低了監測過程中的誤報率,在防御物聯網軟件攻擊方面防御性能較好。但是,由于在實際的軟件攻擊自動防御過程中,由于受多種因素影響,可能還有很多比較隱秘的軟件攻擊網絡數據未被發現,從而影響整個物聯網軟件攻擊自動防御的效果,下一階段將在對各特征值進行合理有效分析的基礎上,研究如何防御物聯網軟件中隱秘軟件攻擊的角度進行相關研究。