馮文超
(蘭州職業技術學院電子信息工程系,甘肅蘭州,730070)
關鍵字:物聯網;機器學習;異常流量檢測
隨著5G通信技術以及NB-IoT技術[1]的成熟,物聯網已經廣泛的應用在智慧城市,智能農業,智慧家庭等各個方面。物聯網環境下,各個設備通過某種規定的通信協議進行數據采集和交互,從而完成設備的自動化智能化控制。
相對于普通的互聯網設備,物聯網設備具有數量大,類型多,分布廣,處理能力弱等特點[2],但物聯網設備在系統復雜度,處理能力,安全重視程度相對較弱,因此物聯網對網絡攻擊的抵抗能力更差,往往成為互聯網安全防護的缺口,極大的威脅到用戶的隱私安全。近些年來,國內外都出現一系列針對物聯網的安全事件,如2018年臺積電遭遇病毒攻擊導致三大產線停產,2019年的委內瑞拉全國大規模停電事件,2020年伊朗港口被網絡攻擊事件,綜上,基于物聯網的安全問題面臨著更嚴峻的挑戰,急需一種高效的異常流量檢測技術,以應對物聯網面臨的安全威脅。
為應對上述情況,提出了基于機器學習的物聯網異常流量檢測方法,該對一段時間內的流量進行分析,將樣本數據打標,然后將數據分為訓練集和測試集,使用訓練集建立分類模型,最后使用連續假設檢驗算法[3]對特征進行分類,過濾物聯網中的正常流量,然后使用神經網絡算法對惡意流量的空間分布進行二次特征分析,從而降低流量分析的復雜度。
一般情況下,由于物聯網中的設備的功能專一,如溫度濕度傳感器,壓力傳感器,攝像頭,因此其網絡流量會比較平穩且具有一定的周期性。如果出現異常流量則會使物聯網中的流量出現異常波動。根據上述特點,可以將網絡流量按時間劃分為多個等份,設時間等份為時間越長,該時間區間內數據包的數量就越多,處理所需的開銷就越高。通過分析不同時間段內流量的變化趨勢,進行甄別哪段時間內的流量可能出現問題。物聯網流量特征提取方法中,首先需要對一定時間窗口內的流量進行采集,然后對其特征進行打標,然后使用聚類算法對數據進行聚類分析,形成若干個集群,最后采用概率分類算法[4]進行分類。
通過分析一個時間段內所有流量進行分析,將數據包以源IP,目的地址,數據類型等進行聚合,在提取上述特征之后,以該時間段內類型最大的特征為該時間段內的流量特征。物聯網流量特征變量如表1所示。

圖1 物聯網流量特征提取框架

表1 物聯網流量特征變量
在物聯網流量特征聚類分析過程中使用期望最大化算法,由于不同的流量是不同的業務數據,也就是說各個流量出現的概率各不相同,因此一個時間區間內網絡上的總體流量與各流量概率大致相同。在對一個時間段內所有流量進行采集并打標時,需要對集群的是否惡意進行甄別,標準是惡意流量的概率是否超過某個閾值,超過即標為惡意集群,否則標為正常集群。
總體來說,基于機器學習的異常流量檢測方法就是通過獲取物聯網中數據流量,并以等長時間段內的數據分片,然后對該數據分片內的數據包進行特征提取并人工標記,然后使用機器學習的聚類算法[5]劃分為惡意數據和正常數據,當惡意數據包的數量超過一定的閾值時,將該數據區分為惡意集群和正常集群。總體架構如圖2所示。

圖2 基于機器學習的異常流量檢測框架
為了驗證真實的網絡環境下的網絡流量,本文采集了智能溫室管理系統中的數量流量作為系統測試的背景流量,并在該流量中使用kali虛擬機發送了端口掃描,SYN flood攻擊,SSH暴力破解,FTP爆破,Dos GoldedEye攻擊,網絡SQL注入攻擊,僵尸網絡,DDos攻擊,Dos Hulk攻擊等,然后捕捉相應的數據流量以便后續處理和分析。測試環境如圖3所示。

圖3 仿真測試環境
在圖3中的數據采集節點使用Zeek[6]獲取網絡數據包,獲取的數據包括時間戳,源IP,源端口,目的IP,目的端口,網絡協議,服務類型,連接時間,數據包數量,發送的數據長度,連接狀態,丟包數據等。在獲取流量之后,根據類型提取關鍵字段,去除非必要字段,降低后續處理工作的難度。以10分鐘區間為例,一個小時內數據統計結果如表2所示。

表2 一個小時內流量數據包統計結果

30-40min正常GoldedEye攻擊SQL注入攻擊26340(93.9%)747(2.7%)962(3.4%)8753(99.3%)32(0.4%)32(0.4%)36866 40-50min正常僵尸網絡DDos攻擊25098(92.9%)441(1.6%)1465(5.4%)5341(97.5%)65(1.2%)74(1.4%)32484 50-60min正常端口掃描Dos Hulk攻擊26654(91.4%)936(3.2%)1579(5.4%)1757(94.9%)32(1.7%)62(3.3%)31020
數據采集完畢之后,使用腳本將每個數據包進行人工標記,按照表1中所列舉的特征變量進行分類,統計各特征變量在各個時間區間內的數量,包括數據流的數量,唯一源端口的數量,唯一目的IP的數量,唯一目的端口的數量,發出數據包的個數,發送數據包的字節數,接受到數據包的數量,接受數據包的字節數等。上述特征的選取與物聯網上可能存在的攻擊類型相符合,如flood攻擊里,源IP和源端口,目的IP和端口都是固定的,而SSH爆破攻擊的目的IP和目的端口都為單一值。由于攻擊流量和正常流量有很大的不同,因此統計不同時間段內這些特征值,可以較為清晰顯示其流量的特征變化趨勢。
在一個時間段內的所有特征字段都打好標簽之后,網絡流量集群就建立完成,下一步就是通過連續假設檢驗來測試多個時間段內異常流量出現的概率,設前n個時間段內統計的惡意流量的概率分別為Y1,Y2,… ,Yn,則采用多時間段關聯算法總計各個時間段內值的異常判斷,定義當前時間段t內似然比Λt為

用檢準率PD和誤報率PF度量檢測精度,同時定義其上下限為α和β。隨著時間的推進,如果時間段n的似然比Λn不斷增加并達到閾值B= l n( 1 -β)/α,則該時間段n的數據為異常流量,如果Λn不斷減小,達到閾值A= l n( 1 -α) /β,則認為該事件段內的數據為正常流量。
本文采集了智能溫室管理系統中的數量流量作為系統測試的背景流量,并在該流量中使用kali虛擬機發送了端口掃描,SYN flood攻擊等攻擊流量,以此作為本文的實驗環境。根據前文所述,當惡意流量被正確識別為惡意流量時,則標識為TP,反之標記為FN,當正常流量被標記為惡意流量時,此判斷標識為FP,否則標識為TN。分類器的性能評估分類器的性能指標為


通過使用不同長度的時間段獲取流量,然后使用連續假設檢驗來計算該時間段內的流量是正常流量還是異常流量,并計算分類器的性能指標值,計算結果如表3所示。

表3 不同時間段長度下算法準確率計算
從表3中可以看出,隨著時間長度的增加,檢測的準確率先升高,然后不斷降低,最高在時間窗口長度為4min時可達到82.3%,而TPR和FPR的檢測效率大致相同,而F值的甲酸基本處于0.7-0.85之間,所以將時間窗口定為4min時計算結果較為理想。
隨著物聯網的廣泛應用,物聯網面對的安全形勢越來越嚴峻。為了適應物聯網中設備處理能力差,系統結構復雜等特點,提出了基于機器學習的異常流量檢測方法,通過分析一段時間內惡意數據包在整體數據包中的概率,使用連續假設檢驗算法對特征進行分類,過濾物聯網中的正常流量,然后使用神經網絡算法對惡意流量的空間分布進行二次特征分析,從而降低流量分析的復雜度。