本發(fā)明涉及物聯(lián)網(wǎng)流量安全,特別涉及一種iot設備行為簽名構建方法。
背景技術:
1、近年來,智能家居物聯(lián)網(wǎng)(iot)設備的數(shù)目快速增長,各種各樣的物聯(lián)網(wǎng)設備通過有線或無線通信的方式接入網(wǎng)絡,由于其便捷性與連通性,不同種類的設備為用戶提供的智能化功能也愈加豐富。然而由于其龐大的數(shù)目和脆弱的安全性,物聯(lián)網(wǎng)設備容易受到攻擊,近年來出現(xiàn)了多種物聯(lián)網(wǎng)設備攻擊事件:隱私泄露、非法入侵、局部網(wǎng)絡破壞等,造成了嚴重經(jīng)濟損失,因此,對iot設備網(wǎng)絡行為的監(jiān)控顯得非常重要。
2、目前針對設備類型和行為識別的方法主要通過對流量中包含的信息進行分析,為設備及其行為生成指紋或者構建特征向量進行訓練,實現(xiàn)對于設備類型或行為的識別。然而,大部分的現(xiàn)有研究是基于特定場景采集的標注流量來構建設備指紋,由于iot設備通信普遍采用了流量加密的方式,因此設備指紋中多采用了流量平均大小,平均間隔等統(tǒng)計特征,而這些特征與網(wǎng)絡環(huán)境存在一定的關系,可能導致同一設備在不同網(wǎng)絡環(huán)境中出現(xiàn)指紋偏差,需要人工重新輔助訓練模型,從而導致指紋對于跨場景的不適用。另一方面,由于iot設備種類繁多且流量混雜,需要預先采集大量設備的標注數(shù)據(jù),集中式構建指紋庫,導致工作量與指紋庫規(guī)模龐大,對部署的網(wǎng)關等邊緣檢測設備存儲要求較高。
3、網(wǎng)關作為iot設備流量的進出口,直接在網(wǎng)關處部署流量捕獲與處理系統(tǒng),自動構建對應于不同設備行為的流量指紋,這就可以減少人工處理的復雜度,將集中式構建指紋的工作分散化。同時,由于是工作場景采集與構建,可以防止指紋偏移,而網(wǎng)關只需要存儲其工作環(huán)境的iot設備行為流量指紋,這將大大降低其指紋存儲量。
技術實現(xiàn)思路
1、為了解決目前對于iot設備的指紋設置識別存在通用性不佳,指紋庫龐大導致對于檢測設備硬件要求過高的技術問題,本發(fā)明提供一種通過自動處理網(wǎng)關混合流量構建行為簽名,從而能夠減少資源開銷以及實現(xiàn)快速部署的iot設備行為簽名構建方法。
2、為了實現(xiàn)上述技術目的,本發(fā)明的技術方案是,
3、一種iot設備行為簽名構建方法,用于從混合未知流量中自動構建設備行為的簽名信息,包括以下步驟:
4、步驟1,按照mac地址將不同iot設備的流量進行區(qū)分,再從同一設備的流量中提取出各個會話,并從各會話中提取數(shù)據(jù)包的時間戳信息,進而根據(jù)時間間隔將會話進行切分;
5、步驟2,對會話進行過濾以剔除與行為無關的會話,然后將過濾后的各會話按照會話開始時間進行排序,再根據(jù)預設的時間間隔閾值判斷各會話是否屬于同一行為,并根據(jù)判斷結果來合并屬于同一行為的會話,最后將各會話內(nèi)部的數(shù)據(jù)包按照時間戳進行排序;
6、步驟3,以數(shù)據(jù)包大小作為統(tǒng)計要素,統(tǒng)計相同大小的數(shù)據(jù)包在行為中的出現(xiàn)頻次,并提取出現(xiàn)頻次排名靠前的數(shù)據(jù)包信息來構建行為的特征向量;
7、步驟4,計算各個特征向量之間的距離,并基于距離來對所有的行為的特征向量進行聚類,從而獲得每一種行為的聚類集群;
8、步驟5:從每種行為的聚類集群中,以包括數(shù)據(jù)包的大小在內(nèi)的數(shù)據(jù)包信息作為標識,并基于標識構建起設備行為的簽名信息。
9、所述的方法,所述的步驟1包括:
10、步驟1.1,對于網(wǎng)關捕獲的不同iot設備混合流量,以每臺設備的mac地址作為唯一標識,將各設備的流量進行區(qū)分并獨立保存;
11、步驟1.2,對于每臺設備的流量,根據(jù)流量中各數(shù)據(jù)包的五元組信息,來提取對應的雙向通信數(shù)據(jù)包,從而提取出由雙向通信的流構成的各個會話;
12、步驟1.3,從會話中提取每一個數(shù)據(jù)包的時間戳信息,依次遍歷每個數(shù)據(jù)包,并根據(jù)時間戳信息計算與前一個數(shù)據(jù)包的時間間隔,再基于根據(jù)實際工作環(huán)境來設定的閾值,將會話切分成多個子會話。
13、所述的方法,所述的步驟1.2中,數(shù)據(jù)包的五元組信息包括源ip地址、源端口、目的ip地址、目的端口和傳輸層協(xié)議。
14、所述的方法,所述的步驟2包括:
15、步驟2.1,檢查會話的協(xié)議類型與會話持續(xù)時間,將特定協(xié)議類型的會話和超過預設時間閾值的會話視為背景流量進行刪除,從而實現(xiàn)只保留與行為密切相關的會話,再對保留的會話按照會話開始時間進行排序;
16、步驟2.2,提取排序后的所有會話的開始與結束時間,判斷前后兩個會話間的時間間隔,如果前后相鄰的前一會話結束時間與后一會話開始時間的間隔小于閾值,或者前后相鄰的兩個會話的數(shù)據(jù)包存在時間上的交叉,則將會話視為屬于同一行為并進行合并,否則視為屬于不同行為的會話;
17、步驟2.3,將執(zhí)行完步驟2.2的所有會話內(nèi)部的數(shù)據(jù)包按照時間戳進行排序,從而獲得切分處理完畢的行為流量。
18、所述的方法,所述的步驟2.1中,是將協(xié)議類型為dns、ssdp、dhcp、mdns和ntp的會話,以及持續(xù)時間大于2分鐘的會話進行刪除。
19、所述的方法,所述的步驟3中,是提取在行為中出現(xiàn)頻次排名前5的相同大小數(shù)據(jù)包的數(shù)據(jù)包信息,其中數(shù)據(jù)包信息是包括數(shù)據(jù)包的大小、出現(xiàn)次數(shù)、平均時間間隔和協(xié)議類型共4種類型,從而為行為中的5個數(shù)據(jù)包構建出20維的無標簽特征向量。
20、所述的方法,所述的步驟4包括:
21、步驟4.1,以jaccard距離作為各個特征向量之間的距離計算對象,將特征向量中每個數(shù)據(jù)包的4維特征看作1個集合,從而得到5個集合,然后比較兩個特征向量的集合的交集與并集的比例,從而得到集合之間的距離;
22、步驟4.2,對特征向量進行聚類,采用dbscan算法,以步驟4.1獲得的距離作為聚類過程中距離度量算法的依據(jù),得到所有行為樣本的聚類集群;
23、步驟4.3,根據(jù)聚類集群結果來為每個聚類集群打上標簽,從而對行為作出標識。
24、所述的方法,所述的步驟4.1中,jaccard距離的計算公式為:
25、
26、其中,表示對于一個特征向量中的每個集合所包含的4種特征,表示行為,表示數(shù)據(jù)包,表示數(shù)據(jù)包的大小,表示數(shù)據(jù)包的出現(xiàn)次數(shù),表示平均時間間隔,表示協(xié)議類型,表示交集符號,∪表示并集符號。
27、所述的方法,所述的步驟5包括:
28、步驟5.1,對于每一個行為的聚類集群,統(tǒng)計所有不同數(shù)據(jù)包大小的出現(xiàn)次數(shù),記錄出現(xiàn)次數(shù)排名前5的數(shù)據(jù)包大小,并記錄排名前5的數(shù)據(jù)包大小所對應的每個數(shù)據(jù)包的包間時間間隔;
29、步驟5.2,計算排名前5的數(shù)據(jù)包大小所對應的數(shù)據(jù)包的平均出現(xiàn)次數(shù)和平均包間時間間隔,作為簽名的組成部分;
30、步驟5.3,獲取排名前5的數(shù)據(jù)包大小所對應的數(shù)據(jù)包在聚類集群的所有行為流量中第一次出現(xiàn)的順序,以出現(xiàn)次數(shù)較多的數(shù)據(jù)包出現(xiàn)順序作為簽名中的排列順序,從而構建起設備行為的簽名信息。
31、所述的方法,最終構建的設備行為的簽名信息表示形式如下:
32、<size1-fre1-time1,?size2-fre2-time2,?size3-fre3-time3,?size4-fre4-time4,?size5-fre5-time5>-protocol。其中size1到size5是按照數(shù)據(jù)包發(fā)生時間順序排列的。
33、本發(fā)明的技術效果在于,本發(fā)明設計行為流量切分算法,將設備不同行為對應的流量片段從網(wǎng)關混合流量中切分出來;然后提取了數(shù)據(jù)包的有效特征信息,構建多為特征向量,并且設計了距離度量算法用于對行為流量聚類,最后從聚類集群結果中提取出了設備行為的簽名信息。本發(fā)明能夠實現(xiàn)快速自動地部署與處理,適用于各種網(wǎng)絡場景,能夠從混合且未知的流量中準確地劃分出各種行為流量,并構建有效的簽名,且相比現(xiàn)有的分析方法,能夠減少空間與時間開銷,具有較強的擴展性。
34、為使本發(fā)明的目的、技術方案和效果更加清楚、明確,下面將結合附圖和具體實例對本發(fā)明做進一步詳細說明。