于劉
(上海航空工業(yè)(集團)有限公司,上海 201206)
物聯(lián)網(wǎng)[1]大力發(fā)展的同時,也在承受著來自非法訪問帶來的安全威脅,因此極易出現(xiàn)信息泄露的問題。非法訪問者圍繞脆弱點構(gòu)建隱蔽緩存信道,竊取用戶終端中存儲的敏感信息[2]以及往來機密信息,包括智能手機、電腦、電動汽車等,對用戶信息安全造成了極大的威脅。面對這種情況,準確識別出物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流脆弱點,對加強網(wǎng)絡(luò)防護,預防非法入侵和訪問具有重要的現(xiàn)實意義。
數(shù)據(jù)流脆弱點識別本質(zhì)上屬于入侵檢測的一種,即根據(jù)采集到的數(shù)據(jù),挖掘數(shù)據(jù)特征,針對特征進行分類識別,判斷終端節(jié)點是否為脆弱點。在數(shù)據(jù)流脆弱點識別過程中,相關(guān)學者提出了支持向量機識別方法[3]、神經(jīng)網(wǎng)絡(luò)識別方法[4]以及聚類分析識別方法[5]等。受到算法本身的限制,上述方法雖然能夠?qū)崿F(xiàn)脆弱點識別,但是由于物聯(lián)網(wǎng)終端信號數(shù)據(jù)流數(shù)據(jù)量大,識別速度很難跟上數(shù)據(jù)流產(chǎn)生速度,存在一定的延遲。為此,提出物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流脆弱點快速識別方法,以期為保證用戶信息安全提供可參考的防護方法,提高物聯(lián)網(wǎng)的安全性能。
將數(shù)據(jù)流看作是物聯(lián)網(wǎng)終端狀態(tài)的一種隱性表征,根據(jù)數(shù)據(jù)流可以判斷物聯(lián)網(wǎng)終端節(jié)點當下所處的狀態(tài),以此識別是否存在異常。在脆弱點快速識別中,第一步是通過兩個子步驟獲取物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流,子步驟一是選擇要識別的物聯(lián)網(wǎng)區(qū)域[6],然后明確物聯(lián)網(wǎng)拓撲結(jié)構(gòu)和節(jié)點分布情況,在此基礎(chǔ)上構(gòu)建物聯(lián)網(wǎng)終端節(jié)點之間通信傳輸信道模型;子步驟二是使用SNMP 協(xié)議來實現(xiàn)數(shù)據(jù)流捕捉。具體捕捉過程如下:
步驟一:初始化參數(shù)。
步驟二:定期采集開始。
步驟三:判斷是否到達定時采集時間,若沒有,繼續(xù)采集;否則,進行下一步。
步驟四:設(shè)置要采集的物聯(lián)網(wǎng)終端設(shè)備IP 地址和訪問團體名。
步驟五:設(shè)置物聯(lián)網(wǎng)終端設(shè)備相應接口當前要讀取的MIB 變量的OID 值。
步驟六:構(gòu)造請求報文并發(fā)送。
步驟七:使用SNMP 協(xié)議取得當前設(shè)備相應接口某個MIB 的測量值。
步驟八:判斷是否完成物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流捕捉,若完成,存入數(shù)據(jù)庫;否則回到步驟五。
基于上述過程完成物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流捕捉。
采用SNMP 協(xié)議捕捉到的物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流屬性具有很強的連續(xù)性,降低了后續(xù)分析的時空效率。面對這種情況,需要對物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流進行離散化處理[7-8],在不改變數(shù)據(jù)相對大小的條件下壓縮數(shù)據(jù)大小,具體流程如圖1 所示。
圖1 連續(xù)數(shù)據(jù)流離散化處理流程
經(jīng)過圖1 離散化處理過程,對物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流的離散化[9-10],能夠有效降低數(shù)據(jù)流時間和空間的復雜度,方便后期的處理和運算,從而提高脆弱點識別速度。
特征提取是脆弱點識別前最關(guān)鍵的一步。提取到的特征是對物聯(lián)網(wǎng)終端信道數(shù)據(jù)流的一種描述,一種特征只能描述一個方面,因此其包含的信息量有限。為保證脆弱點識別的準確性,所提方法選取四類特征作為特征,分別為屬性信息熵、流入流出比、平均流長及單邊連接密度。
1)屬性信息熵
物聯(lián)網(wǎng)終端信道數(shù)據(jù)流中包括的屬性信息有很多,所提方法選擇源IP 地址、目的IP 地址、源端口和目的端口四種屬性計算其信息熵。通過信息熵可以了解到物聯(lián)網(wǎng)終端信道數(shù)據(jù)流的分布情況。該特征提取公式如下:
式中,H(ai) 為第i個特征屬性的信息熵[11-12];ai(t)為一段時間內(nèi)第i個特征屬性出現(xiàn)的頻率;A(t)為一段時間內(nèi)第i個特征屬性出現(xiàn)的頻率和;n為特征屬性量;T為時間長度。
2)流入流出比
流入流出比是指一段時間內(nèi)流入和流出某終端信道的數(shù)據(jù)流數(shù)量之比,公式如下:
3)平均流長
平均流長是指數(shù)據(jù)流中包含的報文個數(shù)的平均值,提取公式如下:
式中,Cj(t)為一段時間內(nèi)終端信道j數(shù)據(jù)流的平均流長;cj(t)、分別為一段時間內(nèi)數(shù)據(jù)流流入、流出終端信道j的總報文數(shù)。
4)單邊連接密度
單邊連接密度是指物聯(lián)網(wǎng)中沒有建立正常通信連接的數(shù)據(jù)包數(shù)目mj(t)占總數(shù)據(jù)包數(shù)目Mj(t)的百分比。計算公式如下:
式中,Dj(t)為單邊連接密度。
不同特征之間的量綱不同[13-14],無法進行統(tǒng)一運算,因此需要進行歸一化處理,記為Y={H1,H2,H3,H4,B,C,D}。
基于上述的研究成果,以提取到的特征為輸入,結(jié)合支持向量(Support Vector Machine,SVM)和人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)[15]兩種算法識別物聯(lián)網(wǎng)終端脆弱點。利用前一種算法的二分類確定物聯(lián)網(wǎng)終端節(jié)點是否為脆弱點,利用后一種進一步識別,確定節(jié)點的脆弱程度。
無論是SVM 還是ANN 都需要通過訓練樣本進行訓練,訓練后得到的第i種類別概率為:
式中,H()為點積運算;xi為特征值,bi為期望輸出;vi為引入拉格朗日乘子。
由于SVM 是二分類[16],因此通過兩類所占概率值(Q1,Q2)描述,Q1和Q2分別代表非脆弱點概率值(1,0)、脆弱點概率值(0,1),即哪個類別概率越接近1,SVM 就認為所屬哪個類別。
在確定物聯(lián)網(wǎng)終端節(jié)點是否為脆弱點的基礎(chǔ)上,利用ANN 確定該點的脆弱程度。模型如下:
式中,wi代表連接權(quán)值;xi代表特征信息;r代表連接閾值。
由于脆弱性是一個狀態(tài)描述,同理上述,通過概率值量化結(jié)果如下:較脆弱(0,0,1),明顯脆弱(0,1,0),嚴重脆弱(1,0,0)。同上述,哪個類別概率越接近1,脆弱點就認為所屬哪個脆弱等級。
以某一物聯(lián)網(wǎng)區(qū)域為例,該區(qū)域中共有225 個終端節(jié)點,已知其中152 個為非脆弱點,其余73 個為脆弱點。73 個脆弱點中有35 個較脆弱點、23 個明顯脆弱點、15 個嚴重脆弱點。運行10 min 后,利用SNMP 協(xié)議捕捉225 個終端節(jié)點信道連續(xù)數(shù)據(jù)流并進行離散化,組成數(shù)據(jù)流樣本。
提取225 個終端節(jié)點信道連續(xù)數(shù)據(jù)流的四個屬性信息熵、流入流出比、平均流長及單邊連接密度并進行歸一化處理。以其中10 個節(jié)點作為提取示例,結(jié)果如表1 所示。
表1 數(shù)據(jù)流特征及其歸一化結(jié)果示例
以識別質(zhì)量指數(shù)作為方法性能的評價指標,識別質(zhì)量指數(shù)通過識別結(jié)果的混淆矩陣計算得出,計算公式如下:
式中,J為識別質(zhì)量指數(shù);s為方法識別結(jié)果;s′為實際結(jié)果;IoU(s,s′)為s、s′的交并比;TP、FP、FN分別為真陽性、假陽性、假陰性。
另一個指標是時間復雜度,時間復雜度越小,方法識別速度越快。
利用所提方法以及三種對比方法(支持向量機識別方法、神經(jīng)網(wǎng)絡(luò)識別方法以及聚類分析識別方法)進行脆弱點識別。根據(jù)識別結(jié)果和識別過程計算識別質(zhì)量指數(shù)和統(tǒng)計時間復雜度,結(jié)果如圖2、3所示。
圖2 識別質(zhì)量指數(shù)對比圖
從圖2 和圖3 中可以看出,所提方法的識別質(zhì)量指數(shù)要大于、時間復雜度要小于支持向量機識別方法、神經(jīng)網(wǎng)絡(luò)識別方法以及聚類分析識別方法的應用結(jié)果,由此說明所提方法的識別準確性更高,速度更快。
圖3 時間復雜度對比圖
受物聯(lián)網(wǎng)終端本身以及通信環(huán)境的限制,很多終端節(jié)點是脆弱點,很容易被攻擊,成為入侵的切入口。在該背景下,提出物聯(lián)網(wǎng)終端信道連續(xù)數(shù)據(jù)流脆弱點快速識別方法。通過對數(shù)據(jù)流的分析提取其特征,利用綜合算法識別連續(xù)數(shù)據(jù)流脆弱點。對所提方法進行驗證,通過計算識別結(jié)果的識別質(zhì)量指數(shù)和時間復雜度驗證了方法的有效性,證明了所提方法具有較高的脆弱點識別性能。