李銳光,段鵬宇,沈蒙,祝烈煌,*
(1.北京理工大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100081; 2.國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100029)
物聯(lián)網(wǎng)技術(shù)將各種帶有傳感器的終端設(shè)備接入互聯(lián)網(wǎng),組成網(wǎng)絡(luò)并實(shí)現(xiàn)人和物的互聯(lián)互通。目前,物聯(lián)網(wǎng)技術(shù)在家庭、校園、企業(yè)、城市等應(yīng)用場(chǎng)景已得到廣泛應(yīng)用[1],海量的網(wǎng)絡(luò)攝像頭、身體傳感器、智能家電等物聯(lián)網(wǎng)設(shè)備接入互聯(lián)網(wǎng),給人類生活帶來(lái)了重大變革。
然而,在物聯(lián)網(wǎng)廣泛普及的同時(shí),政府監(jiān)管機(jī)構(gòu)、網(wǎng)絡(luò)運(yùn)營(yíng)者對(duì)網(wǎng)絡(luò)空間中的物聯(lián)網(wǎng)設(shè)備缺少統(tǒng)計(jì)和管理。一方面,各種類型的物聯(lián)網(wǎng)設(shè)備通常由不同運(yùn)營(yíng)者、不同廠商、不同人員安裝,對(duì)全量設(shè)備的登記和統(tǒng)計(jì)非常困難;另一方面,物聯(lián)網(wǎng)廣泛采用了NAT技術(shù)和IP地址動(dòng)態(tài)分配,缺少唯一化的標(biāo)記手段,使得掌握網(wǎng)絡(luò)中物聯(lián)網(wǎng)設(shè)備總體情況變得困難。
由于物聯(lián)網(wǎng)設(shè)備普遍資源受限導(dǎo)致的安全防護(hù)不足,使得很多物聯(lián)網(wǎng)設(shè)備成為網(wǎng)絡(luò)攻擊的工具或跳板,對(duì)全球網(wǎng)絡(luò)空間安全帶來(lái)嚴(yán)峻挑戰(zhàn)。因此,對(duì)網(wǎng)絡(luò)空間中的海量物聯(lián)網(wǎng)設(shè)備的識(shí)別和分類,成為當(dāng)前工業(yè)界和學(xué)術(shù)界關(guān)注的熱點(diǎn)研究問(wèn)題。
現(xiàn)有的物聯(lián)網(wǎng)設(shè)備流量分類算法主要有基于協(xié)議特征識(shí)別和基于流量統(tǒng)計(jì)兩大類?;趨f(xié)議特征識(shí)別需要找到流量強(qiáng)特征,在目前普遍加密的網(wǎng)絡(luò)中已越來(lái)越難,因此基于流量統(tǒng)計(jì)的識(shí)別方法逐步成為研究熱點(diǎn)。本文主要對(duì)當(dāng)前流量識(shí)別領(lǐng)域廣泛應(yīng)用的隨機(jī)森林算法進(jìn)行了改進(jìn),并取得了不錯(cuò)的實(shí)驗(yàn)效果。
現(xiàn)有的物聯(lián)網(wǎng)設(shè)備識(shí)別方法主要包括主動(dòng)資源探測(cè)和被動(dòng)流量分析兩大類。
1)主動(dòng)資源探測(cè)是按照物聯(lián)網(wǎng)設(shè)備通信協(xié)議格式,向遠(yuǎn)端設(shè)備發(fā)送探測(cè)包,采集和分析響應(yīng)數(shù)據(jù),從而得到遠(yuǎn)端設(shè)備重要信息的識(shí)別方法。通過(guò)主動(dòng)探測(cè),可以得到操作系統(tǒng)、開放端口、漏洞分布、設(shè)備類型、廠商型號(hào)、所屬組織等重要信息,從而掌握網(wǎng)絡(luò)中全量物聯(lián)網(wǎng)設(shè)備情況。Feng等[2]使用Modbus和S7協(xié)議標(biāo)語(yǔ)的格式和信息識(shí)別工控設(shè)備的廠商和設(shè)備版本。Li等[3-4]使用設(shè)備的登錄頁(yè)面提取關(guān)鍵字從而識(shí)別設(shè)備,并測(cè)量頁(yè)面中單詞的集中度,將搜索引擎返回的結(jié)果作為設(shè)備指紋。Leonard和Loguinov[5]使用TCP ACK探測(cè)主機(jī)是否存活,使用DNS、HTTP、SMTP等協(xié)議的響應(yīng)識(shí)別主機(jī)的設(shè)備類型和操作系統(tǒng)。
2)被動(dòng)流量分析是指從某一網(wǎng)絡(luò)關(guān)口采集流量數(shù)據(jù),分析和提取不同類型物聯(lián)網(wǎng)設(shè)備的協(xié)議指紋或流量特征,從而實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)設(shè)備類型的識(shí)別。Kohno等[6]使用多種協(xié)議的時(shí)鐘偏移,即時(shí)鐘時(shí)間與實(shí)際時(shí)間的差進(jìn)行設(shè)備識(shí)別。Aneja等[7]使用到達(dá)間隔時(shí)間(IAT)圖作為特征使用CNN算法進(jìn)行分類。Husák等[8]使用HTTPS協(xié)議中的SSL/TLS握手信息作為設(shè)備指紋對(duì)用戶代理進(jìn)行分類。
主動(dòng)資源探測(cè)方法通常用于對(duì)某一網(wǎng)域以外設(shè)備的探測(cè)識(shí)別,而被動(dòng)流量分析通常用于對(duì)某一網(wǎng)域內(nèi)設(shè)備的識(shí)別分類。本文重點(diǎn)研究被動(dòng)流量分析方法,提出并實(shí)現(xiàn)了一種基于隨機(jī)森林的物聯(lián)網(wǎng)設(shè)備流量分類算法。
物聯(lián)網(wǎng)設(shè)備流量分類技術(shù)分為2類:①協(xié)議特征識(shí)別,即依靠協(xié)議中存在的強(qiáng)特征對(duì)不同設(shè)備流量進(jìn)行匹配分類,如文獻(xiàn)[2,8];②統(tǒng)計(jì)識(shí)別,即尋找流量數(shù)據(jù)中的包數(shù)、包長(zhǎng)、時(shí)間間隔、請(qǐng)求數(shù)量等弱特征,采用統(tǒng)計(jì)的方法對(duì)不同設(shè)備流量進(jìn)行分類識(shí)別,如文獻(xiàn)[6-7]。
協(xié)議特征識(shí)別方法的優(yōu)點(diǎn)是識(shí)別準(zhǔn)確率高,但需要提前知道設(shè)備類型及其通信協(xié)議,對(duì)于未知的物聯(lián)網(wǎng)設(shè)備無(wú)法識(shí)別,而且隨著加密技術(shù)在網(wǎng)絡(luò)協(xié)議傳輸中的廣泛采用,協(xié)議特征變得越來(lái)越模糊,因此,基于協(xié)議強(qiáng)特征的識(shí)別方法越來(lái)越表現(xiàn)出局限性?;诮y(tǒng)計(jì)的識(shí)別方法有可能識(shí)別出未知的物聯(lián)網(wǎng)設(shè)備,因?yàn)橥粡S家產(chǎn)品在流量上具有相似性,另外可以有效地識(shí)別和分類加密流量。
學(xué)術(shù)界對(duì)基于統(tǒng)計(jì)的設(shè)備流量分類算法開展了大量研究。Arunan等[9]使用流的信息和DNS、NTP的請(qǐng)求數(shù)量、請(qǐng)求間隔等進(jìn)行分類。Msadek等[10]將端口號(hào)分為公認(rèn)端口、注冊(cè)端口、動(dòng)態(tài)端口,結(jié)合協(xié)議類型和流統(tǒng)計(jì)信息對(duì)設(shè)備流量進(jìn)行分類。Yao等[11]提出一種可以自動(dòng)選擇流量特征、基于深度學(xué)習(xí)的物聯(lián)網(wǎng)設(shè)備分類算法,主要應(yīng)用于智慧城市場(chǎng)景。Desai等[12]僅使用流的統(tǒng)計(jì)信息,包括均值、中位數(shù)、方差、分布相似度進(jìn)行分類。Meidan等[13]除了使用流信息,還使用其他數(shù)據(jù),包括Alexa排名和GeoIP信息進(jìn)行分類。Shahid等[14]使用發(fā)送和接收到的前N個(gè)包的大小、IAT進(jìn)行分類。
在基于統(tǒng)計(jì)的流量分類技術(shù)中,特征向量(統(tǒng)計(jì)參數(shù))的選擇至關(guān)重要,直接影響分類準(zhǔn)確率及算法性能。大多數(shù)研究中采用了完整的TCP/UDP流的信息,有的輔助采用了DNS、NTP的請(qǐng)求數(shù)量、請(qǐng)求間隔[9],有的輔助采用了域名、地理位置[13]等參數(shù)信息。本文在現(xiàn)有工作基礎(chǔ)上,重點(diǎn)研究了TCP/UDP流的數(shù)據(jù)包信息,在特征向量中加入包長(zhǎng)、包數(shù)、包TLL等參數(shù),實(shí)驗(yàn)表明提升了分類準(zhǔn)確性。
本文在研究中采用了Sivanathan等[15]公開的數(shù)據(jù)集。該數(shù)據(jù)集來(lái)自一所學(xué)校網(wǎng)關(guān)處捕獲的真實(shí)流量,持續(xù)時(shí)間為2016年9月23日至10月6日。實(shí)驗(yàn)者在網(wǎng)關(guān)處部署了tcpdump軟件捕獲流量,使用kmod-usb-core和kmod-usb-storage軟件存儲(chǔ)流量數(shù)據(jù)。
數(shù)據(jù)集中包括了21種物聯(lián)網(wǎng)設(shè)備和9種非物聯(lián)網(wǎng)設(shè)備的混合流量,以PCAP包格式按天保存,總大小為9 GB。由于數(shù)據(jù)集中包含了各設(shè)備的MAC地址,這為從混合數(shù)據(jù)中提取各設(shè)備流量、建立訓(xùn)練數(shù)據(jù)集提供了很大便利。所有設(shè)備名稱及類型如表1所示。
表1 物聯(lián)網(wǎng)設(shè)備Table 1 IoT device list
數(shù)據(jù)集中的物聯(lián)網(wǎng)設(shè)備類型包括網(wǎng)絡(luò)攝像頭、智能開關(guān)、空氣質(zhì)量傳感器、智能音箱、智能燈泡、智能相框及醫(yī)療保健設(shè)備等。非物聯(lián)網(wǎng)設(shè)備包括打印機(jī)、筆記本電腦、智能手機(jī)、平板電腦等。設(shè)備廠商涵蓋了亞馬遜、TP-Link、三星、貝爾金、Netatmo、蘋果、惠普、NEST、谷歌等主流設(shè)備廠商。因此,基于該數(shù)據(jù)集開展的研究工作具有很好的普適性。
本文改進(jìn)了文獻(xiàn)[15]提出的基于隨機(jī)森林的物聯(lián)網(wǎng)設(shè)備流量分類算法,在特征選擇上除了流信息外也將每條流數(shù)據(jù)包信息作為統(tǒng)計(jì)參數(shù),算法過(guò)程如下。
文獻(xiàn)[15]公開的數(shù)據(jù)集中保存了從網(wǎng)關(guān)捕獲的全部設(shè)備的混合流量,為了對(duì)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練和測(cè)試,先需要對(duì)流量做預(yù)處理,獲取訓(xùn)練集DT和測(cè)試集DM。
原始流量數(shù)據(jù)是按天保存的,文獻(xiàn)[15]直接使用設(shè)備一天的流量作為樣本數(shù)據(jù)。由于設(shè)備一天的流量數(shù)據(jù)較多,在訓(xùn)練模型時(shí)耗費(fèi)的時(shí)間較長(zhǎng)。采用設(shè)備連接后幾分鐘內(nèi)的流量數(shù)據(jù)作為樣本,減少了機(jī)器學(xué)習(xí)模型訓(xùn)練時(shí)間,實(shí)驗(yàn)表明分類效果未受影響。
首先,對(duì)全部流量按MAC地址進(jìn)行分割,然后,按算法1篩選出每類設(shè)備建立連接后幾分鐘內(nèi)的流量,作為樣本數(shù)據(jù)保存,最終,獲取到80萬(wàn)條樣本數(shù)據(jù)。對(duì)全部樣本數(shù)據(jù)按設(shè)備類型進(jìn)行了分類標(biāo)注。
算法1 流量分割算法。
步驟1 輸入時(shí)間閾值tT。
步驟2 讀取未保存的第一個(gè)流,ts1為流開始時(shí)間,te1為流結(jié)束時(shí)間。
步驟3 讀取下一個(gè)流,ts2為流開始時(shí)間,如果ts2-te1>tT,將從ts1~ts1+tT之間的所有數(shù)據(jù)包保存為一條數(shù)據(jù),返回步驟1;如果ts2-te1<tT,流結(jié)束時(shí)間大于te1,將te1保存為新的流的結(jié)束時(shí)間,重復(fù)步驟3。
在這80萬(wàn)條數(shù)據(jù)中包含了表1中每類設(shè)備的樣本數(shù)據(jù),平均每類設(shè)備有2萬(wàn)~3萬(wàn)條樣本。從各類設(shè)備樣本中選取90%作為訓(xùn)練集DT,剩余樣本混合后作為測(cè)試集DM。
在處理后的樣本數(shù)據(jù)中,編制腳本程序從中自動(dòng)提取出流信息和數(shù)據(jù)包信息。流信息包括流數(shù)量、協(xié)議種類、最常用協(xié)議、端口數(shù)量、最常用端口等。數(shù)據(jù)包信息包括發(fā)送和接收到的總字節(jié)數(shù)和總包數(shù)信息、發(fā)送和接收數(shù)據(jù)包的TTL、發(fā)出和接收數(shù)據(jù)包的首個(gè)時(shí)間窗口等。
從樣本中自動(dòng)提取特征的算法如算法2所示。
算法2 特征提取算法。
步驟1 選取下一條流。
步驟2 記錄流的個(gè)數(shù)、采用的協(xié)議、連接的端口。
步驟3 選取流中的下一個(gè)包。
步驟4 如果包是流中第一個(gè)包,記錄接收窗口。
步驟5 記錄包的長(zhǎng)度、包的個(gè)數(shù)、數(shù)據(jù)包TTL。
步驟6 如果包是流中最后一個(gè)包,返回步驟1,否則返回步驟3。
步驟7 統(tǒng)計(jì)這條樣本中流的數(shù)量、協(xié)議種類、最常用的協(xié)議、連接端口數(shù)量、最常用的端口、發(fā)送和接收的總字節(jié)數(shù)和總包數(shù)。
本文算法的特征向量包括流信息和包信息,如表2所示。
表2 特征向量Table 2 Feature vectors
在分類算法設(shè)計(jì)上,近年來(lái)機(jī)器學(xué)習(xí)算法得到了廣泛應(yīng)用并取得良好效果,如樸素貝葉斯(naive Bayes)、支持向量機(jī)(supporting vector machine)、K近鄰(KNN)、決策樹(decision trees)、隨機(jī)森 林(random forest)、神 經(jīng) 網(wǎng) 絡(luò)(neural network)等。通常,流量分類場(chǎng)景中特征向量復(fù)雜度遠(yuǎn)少于圖像處理、自然語(yǔ)言處理等場(chǎng)景,因此一般不必采用太復(fù)雜的機(jī)器學(xué)習(xí)算法(如深度學(xué)習(xí))即可取得良好效果。
隨機(jī)森林是一種使用多棵決策樹進(jìn)行訓(xùn)練和預(yù)測(cè)的分類器,從原始的訓(xùn)練數(shù)據(jù)中有放回地抽取k個(gè)樣本構(gòu)成m個(gè)訓(xùn)練集,在每個(gè)訓(xùn)練集上構(gòu)造一棵決策樹。構(gòu)造決策樹時(shí),在節(jié)點(diǎn)尋找特征進(jìn)行分裂時(shí),隨機(jī)選取一些特征,在抽取到的特征中選擇最優(yōu)解進(jìn)行分裂,最終根據(jù)多數(shù)投票原則產(chǎn)生分類結(jié)果。該算法已在流量分類等應(yīng)用場(chǎng)景中得到了廣泛應(yīng)用。
根據(jù)表2中的特征向量,在Python集成開發(fā)環(huán)境中利用Scikit-Learn工具包實(shí)現(xiàn)了隨機(jī)森林算法。設(shè)置時(shí)間閾值tT為10 min,設(shè)置隨機(jī)森林算法中樹的數(shù)量為10。利用每類設(shè)備的訓(xùn)練集DT對(duì)模型進(jìn)行訓(xùn)練,在測(cè)試集DM上進(jìn)行了測(cè)試,并統(tǒng)計(jì)了分類準(zhǔn)確率、召回率、F1得分等情況。
基于公開數(shù)據(jù)集,對(duì)文獻(xiàn)[15]算法和本文算法進(jìn)行了對(duì)比測(cè)試,并比較了分類準(zhǔn)確率、召回率、F1得分、混淆矩陣等指標(biāo)。
對(duì)機(jī)器學(xué)習(xí)算法的評(píng)價(jià)標(biāo)準(zhǔn)有分類準(zhǔn)確率、召回率和F1得分,也包括混淆矩陣。例如,預(yù)測(cè)為正的樣本中,實(shí)際為正的樣本數(shù)為TP,實(shí)際為負(fù)的樣本數(shù)為FP;預(yù)測(cè)為負(fù)的樣本中,實(shí)際為正的樣本數(shù)為FN,實(shí)際為負(fù)的樣本數(shù)為TN。
分類準(zhǔn)確率定義為
召回率定義為
F1得分定義為
混淆矩陣也是衡量分類算法性能的一種方式,如圖1所示。矩陣中第i行第k列表示將第i種設(shè)備錯(cuò)誤識(shí)別成第k種設(shè)備的樣本數(shù)量,顏色越深表示樣本數(shù)越多。這樣,如果對(duì)角線位置的方塊顏色越深而其他位置顏色越淺,則表示分類器分類的準(zhǔn)確性越高。
圖1 文獻(xiàn)[15]中算法的混淆矩陣Fig.1 Confusion matrix of algorithm in Ref.[15]
在公開數(shù)據(jù)集上復(fù)現(xiàn)了文獻(xiàn)[15]中提出的算法,并進(jìn)行了測(cè)試。該算法以某設(shè)備一天內(nèi)的流量數(shù)據(jù)作為樣本集,在特征選擇上只采用樣本集中流信息作為統(tǒng)計(jì)參數(shù)。該算法分類效果如表3所示。
表3 文獻(xiàn)[15]中算法的分類效果Table 3 Classification results of algorithm in Ref.[15]
文獻(xiàn)[15]中算法形成的混淆矩陣如圖1所示,圖中橫豎坐標(biāo)數(shù)字對(duì)應(yīng)表1中的設(shè)備序號(hào)??梢?jiàn),除對(duì)角線外,還零散分布著一些樣本點(diǎn)。
本文對(duì)文獻(xiàn)[15]中算法進(jìn)行了改進(jìn),一方面是將某設(shè)備連接建立后幾分鐘內(nèi)的數(shù)據(jù)作為樣本,而不是全天數(shù)據(jù),另一方面是除了流信息外加入了數(shù)據(jù)包信息作為統(tǒng)計(jì)參數(shù)。本文算法的分類效果如表4所示。
表4 本文算法的分類效果Table 4 Classification results of proposed algorithm
本文算法的混淆矩陣如圖2所示,圖中橫豎坐標(biāo)數(shù)字對(duì)應(yīng)表1中的設(shè)備序號(hào)。與圖1比較,樣本點(diǎn)基本集中在對(duì)角線處,除對(duì)角線外零散分布的樣本點(diǎn)很少,因此分類效果優(yōu)于圖1。
圖2 本文算法的混淆矩陣Fig.2 Confusion matrix of proposed algorithm
通過(guò)5.2節(jié)和5.3節(jié)的實(shí)驗(yàn)結(jié)果表明:
1)本文算法對(duì)真實(shí)流量分類的平均分類準(zhǔn)確率達(dá)82%,平均召回率達(dá)67%,平均F1得分為0.74,具有較好的實(shí)用性。
2)文獻(xiàn)[15]中算法的平均分類準(zhǔn)確率為56%,平均召回率為47%,平均F1得分為0.43,可見(jiàn)本文算法比文獻(xiàn)[15]中算法分類性能有明顯提升。
3)在設(shè)備流量分類技術(shù)的特征選擇上,單純選擇流信息的分類效果并不很好,而加入數(shù)據(jù)包信息后的分類效果提升明顯。
4)表3中Android Phone、Laptop、LiFX Smart Bulb等設(shè)備和表4中的 NEST Protect smoke alarm、Netatmo Welcome等設(shè)備未測(cè)到分類準(zhǔn)確率、召回率和F1得分?jǐn)?shù)據(jù),原因是測(cè)試集DM中數(shù)據(jù)是從80萬(wàn)條樣本中隨機(jī)選擇的,未包括這些設(shè)備流量。
5)本文算法對(duì)Belkin Wemo switch和Belkin wemo motion sensor兩個(gè)設(shè)備分類效果較差,可能是由于同一廠商的設(shè)備行為比較相似,在流量上難以分辨。
6)2種算法的運(yùn)算時(shí)間和內(nèi)存占用情況如表5所示。由于本文算法特征向量維度大于文獻(xiàn)[15]算法,故運(yùn)算時(shí)間及內(nèi)存占用均略高,但仍處于可接受范圍之內(nèi)。
表5 算法性能對(duì)比Table 5 Algorithm performance compar ison
本文算法與文獻(xiàn)[15]算法相比,在統(tǒng)計(jì)參數(shù)的選擇上更加精確,因此具有更好的分類效果。但由于特征向量維度的增加,本文算法實(shí)際消耗的計(jì)算和存儲(chǔ)資源略有增長(zhǎng),因此更適用于對(duì)物聯(lián)網(wǎng)設(shè)備的精確識(shí)別場(chǎng)景。
本文提出一種基于隨機(jī)森林的物聯(lián)網(wǎng)設(shè)備流量分類算法。在文獻(xiàn)[15]公開數(shù)據(jù)集和提出算法的基礎(chǔ)上,本文對(duì)文獻(xiàn)[15]算法做了改進(jìn),主要如下:
1)將設(shè)備連接建立后幾分鐘內(nèi)的數(shù)據(jù)作為樣本,而沒(méi)有采用全天數(shù)據(jù),從而縮短了模型訓(xùn)練時(shí)間。
2)在特征選擇中除了流信息外加入了完整流的數(shù)據(jù)包信息。
實(shí)驗(yàn)結(jié)果表明,本文提出算法的平均分類準(zhǔn)確性由56%提高到82%,平均召回率由47%提高到67%,平均F1得分由0.43提高到0.74,混淆矩陣對(duì)比也有明顯提升,具備更好的分類效果。
由于數(shù)據(jù)集中設(shè)備數(shù)量限制,本文只對(duì)部分物聯(lián)網(wǎng)設(shè)備進(jìn)行了研究,分類識(shí)別也僅限于已知設(shè)備。未來(lái)應(yīng)研究更多類型的物聯(lián)網(wǎng)設(shè)備,并分析歸納同廠家或同類設(shè)備的流量特點(diǎn),探索對(duì)未知類型物聯(lián)網(wǎng)設(shè)備的識(shí)別發(fā)現(xiàn)技術(shù),更好地服務(wù)于網(wǎng)絡(luò)空間安全管理。