張帥帥 黃 杰,3 祁春陽 汪瀟文
(1東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 南京 211189)(2東南大學(xué)江蘇省計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室, 南京 211189)(3網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室, 南京 211111)
隨著5G與AI技術(shù)的應(yīng)用和推廣,物聯(lián)網(wǎng)技術(shù)得到飛速發(fā)展,大量的物聯(lián)網(wǎng)設(shè)備在智慧城市、醫(yī)療、工業(yè)等領(lǐng)域[1-2]得到廣泛應(yīng)用.根據(jù)Statista公司的預(yù)測(cè),2025年物聯(lián)網(wǎng)設(shè)備的數(shù)量將達(dá)到386億臺(tái),而2030年將增加到500億臺(tái)[3].然而物聯(lián)網(wǎng)設(shè)備由于結(jié)構(gòu)簡(jiǎn)單、防御機(jī)制不足,成為黑客的主要攻擊目標(biāo),往往一個(gè)設(shè)備漏洞便會(huì)導(dǎo)致同品牌設(shè)備都被攻擊.同時(shí)由于物聯(lián)網(wǎng)設(shè)備數(shù)量龐大,這種攻擊的危害可以被成倍放大.2016年,黑客利用Mirai病毒[4]劫持了150萬臺(tái)物聯(lián)網(wǎng)設(shè)備并組成僵尸網(wǎng)絡(luò)(botnet)發(fā)動(dòng)DDOS攻擊,造成美國(guó)大規(guī)模的網(wǎng)絡(luò)癱瘓.2017年,LG智能家居設(shè)備的漏洞導(dǎo)致大量用戶隱私泄露.因此,物聯(lián)網(wǎng)安全已經(jīng)成為未來網(wǎng)絡(luò)發(fā)展中亟需解決的關(guān)鍵問題之一.
但是,物聯(lián)網(wǎng)設(shè)備數(shù)量龐大,種類繁多,不同類型的設(shè)備存在不同的安全漏洞,難以進(jìn)行統(tǒng)一的安全管理.因此,利用物聯(lián)網(wǎng)信息搜索技術(shù)[5]發(fā)現(xiàn)和識(shí)別物聯(lián)網(wǎng)設(shè)備是進(jìn)行安全管理的第一步.Shodan和Censys是業(yè)界成熟的物聯(lián)網(wǎng)搜索引擎,可以提供大量暴露在公網(wǎng)中的物聯(lián)網(wǎng)設(shè)備信息.目前的物聯(lián)網(wǎng)設(shè)備識(shí)別方法大致可以分為2類:基于流量特征的識(shí)別方法[6-10]和基于標(biāo)語的識(shí)別方法[11-14].
物聯(lián)網(wǎng)設(shè)備的流量特征主要包含2方面:① HTTP、Telnet、RTSP、Modbus等協(xié)議的使用情況和協(xié)議頭部特征值;② 通信流量的行為特征,如通信數(shù)據(jù)大小、通信對(duì)象和通信頻率等.Comer等[6]通過分析TCP協(xié)議實(shí)現(xiàn)方法的差異生成指紋來識(shí)別設(shè)備.知名掃描工具Nmap、Xprobe2就采用了這項(xiàng)技術(shù).Thangavelu等[7]則通過統(tǒng)計(jì)分析DNS、TLS、HTTP等協(xié)議的均值方差,生成設(shè)備的數(shù)字化特征.Miettinen等[8]聚焦小型網(wǎng)絡(luò)中的設(shè)備識(shí)別并減少了識(shí)別的計(jì)算開銷.文獻(xiàn)[9-10]從設(shè)備通信的行為中提取特征,結(jié)合機(jī)器學(xué)習(xí)方法識(shí)別設(shè)備.基于流量特征訓(xùn)練的分類模型識(shí)別快、準(zhǔn)確率高,但是存在以下缺陷:① 物聯(lián)網(wǎng)設(shè)備品類復(fù)雜,采集和標(biāo)定數(shù)據(jù)的成本高,無法獲得充足的訓(xùn)練數(shù)據(jù);② 已訓(xùn)練好的分類模型缺少動(dòng)態(tài)更新能力,無法應(yīng)對(duì)快速變化的物聯(lián)網(wǎng)環(huán)境.
基于標(biāo)語的識(shí)別方法則利用正則匹配和自然語言處理等技術(shù),從采集到的文本數(shù)據(jù)中直接提取類型、品牌、型號(hào)等字段.Li等[11]利用自然語言處理技術(shù)提取網(wǎng)頁中的文本信息,結(jié)合機(jī)器學(xué)習(xí)方法建立分類模型,可以自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)空間中的監(jiān)控設(shè)備.文獻(xiàn)[12-13]利用標(biāo)語信息成功識(shí)別了多種工業(yè)控制系統(tǒng).ARE(acquisitional rule-based engine)利用谷歌搜索引擎拓展文本信息,自動(dòng)生成文本規(guī)則來標(biāo)注和識(shí)別物聯(lián)網(wǎng)設(shè)備[14].IoTTracker則綜合考慮了設(shè)備登陸頁面的DOM樹結(jié)構(gòu)特征和FTP端口的非結(jié)構(gòu)化的文本特征,通過匹配文本特征庫(kù)實(shí)現(xiàn)了不同類型的設(shè)備識(shí)別[15].基于標(biāo)語的識(shí)別方法可以直接給出明確的設(shè)備品牌和型號(hào)結(jié)果,但是存在以下缺點(diǎn):① 識(shí)別過程依賴于明確的品牌型號(hào)字段,當(dāng)設(shè)備信息中不存在關(guān)鍵字信息或難以提取時(shí)就無法識(shí)別設(shè)備;② 相比于數(shù)字向量特征,標(biāo)語信息構(gòu)成的文本特征會(huì)造成更大的存儲(chǔ)開銷;③ 每次都需要遍歷完整的文本特征庫(kù),識(shí)別時(shí)間長(zhǎng).
為了解決上述問題,本文將增量學(xué)習(xí)方法與監(jiān)督學(xué)習(xí)方法相結(jié)合,提出了基于自組織增量學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)(self-organizing incremental neural network,SOINN)的在線物聯(lián)網(wǎng)設(shè)備識(shí)別方法.該方法分2步依次識(shí)別設(shè)備的品牌和型號(hào)信息.首先,設(shè)計(jì)了基于交互頁面DOM樹的設(shè)備品牌特征,將特征轉(zhuǎn)化為數(shù)字向量并且特征長(zhǎng)度只有26.然后,結(jié)合SVM和SOINN[16]構(gòu)建SOINN-SVM,實(shí)現(xiàn)設(shè)備品牌分類器的增量學(xué)習(xí).借助SOINN網(wǎng)絡(luò)的壓縮數(shù)據(jù)和增量學(xué)習(xí)特性,使用少量的數(shù)據(jù)完成分類模型的快速動(dòng)態(tài)更新,使得品牌分類器可以在識(shí)別過程中不斷提高識(shí)別準(zhǔn)確率.接著,使用TF-IDF技術(shù)優(yōu)化正則匹配結(jié)果,使得正確的型號(hào)字段具有更高的權(quán)重值,降低干擾詞的影響.最后,結(jié)合TF-IDF權(quán)重值和Jaro距離計(jì)算文本匹配度,實(shí)現(xiàn)設(shè)備型號(hào)的識(shí)別.
圖1為本文提出的在線物聯(lián)網(wǎng)設(shè)備識(shí)別方法的整體框架圖,主要由3部分組成:訓(xùn)練數(shù)據(jù)生成模塊、品牌識(shí)別模塊和型號(hào)識(shí)別模塊.在訓(xùn)練數(shù)據(jù)生成模塊中,利用ARE[14]方法從網(wǎng)絡(luò)中采集數(shù)據(jù)并打上標(biāo)簽作為品牌識(shí)別和型號(hào)識(shí)別的訓(xùn)練數(shù)據(jù).圖1中的數(shù)據(jù)預(yù)處理模塊會(huì)根據(jù)品牌識(shí)別和型號(hào)識(shí)別所需的不同特征采取不同的數(shù)據(jù)處理方法.品牌識(shí)別模塊需要使用基于頁面DOM樹結(jié)構(gòu)的特征訓(xùn)練SVM分類器.型號(hào)識(shí)別模塊需要利用正則匹配提取文本中的關(guān)鍵字,并計(jì)算TF-IDF權(quán)重生成型號(hào)特征庫(kù).原始數(shù)據(jù)經(jīng)過數(shù)據(jù)預(yù)處理后得到帶標(biāo)簽數(shù)據(jù),接著2個(gè)識(shí)別模塊利用帶標(biāo)簽數(shù)據(jù)進(jìn)行離線訓(xùn)練,初始化品牌分類器和型號(hào)特征庫(kù).
圖1 在線物聯(lián)網(wǎng)設(shè)備識(shí)別框架
在品牌識(shí)別模塊中,帶有品牌標(biāo)簽的訓(xùn)練數(shù)據(jù)先經(jīng)過SOINN網(wǎng)絡(luò)進(jìn)行壓縮,壓縮后的數(shù)據(jù)稱為原型數(shù)據(jù),它們可以代表完整數(shù)據(jù)的拓?fù)浞植?接著利用原型數(shù)據(jù)訓(xùn)練SVM品牌分類器,相比于使用完整的原始數(shù)據(jù)訓(xùn)練,該方法可以大大減少模型訓(xùn)練的時(shí)間.訓(xùn)練好的SVM品牌分類器可以在線識(shí)別新的設(shè)備.已識(shí)別數(shù)據(jù)會(huì)再次作為訓(xùn)練數(shù)據(jù)進(jìn)入SOINN網(wǎng)絡(luò)進(jìn)行增量訓(xùn)練.原型數(shù)據(jù)將獲得更新調(diào)整,并重新訓(xùn)練SVM品牌分類器,使得分類器性能在識(shí)別過程中不斷提高.因此本文方法中的品牌分類器具有在線學(xué)習(xí)的能力.
在型號(hào)識(shí)別模塊中,型號(hào)匹配器會(huì)根據(jù)品牌識(shí)別的結(jié)果,加載對(duì)應(yīng)品牌的型號(hào)特征庫(kù)并計(jì)算文本相似度,與待識(shí)別設(shè)備具有最高相似度的型號(hào)將作為型號(hào)識(shí)別的結(jié)果.與其他方法的區(qū)別是,該方法只需要遍歷一種品牌的型號(hào)特征庫(kù),而不是完整的型號(hào)特征庫(kù),因此減少了識(shí)別的時(shí)間.總體來看,本文提出的物聯(lián)網(wǎng)設(shè)備識(shí)別框架具有以下3個(gè)優(yōu)點(diǎn):① DOM樹結(jié)構(gòu)特征和關(guān)鍵字特征結(jié)合使用,可以識(shí)別更多設(shè)備;② 利用SOINN-SVM使得品牌分類器具有在線學(xué)習(xí)能力;③ 更低的計(jì)算和存儲(chǔ)開銷.
為了提供便捷的遠(yuǎn)程控制功能,大部分物聯(lián)網(wǎng)設(shè)備都會(huì)運(yùn)行HTTP協(xié)議,通過交互頁面向用戶提供設(shè)備狀態(tài)信息和控制接口.不僅不同廠家頁面的特征差異性大,而且頁面代碼被寫入設(shè)備固件中,在設(shè)備使用周期內(nèi)基本不會(huì)改變,這確保了DOM樹結(jié)構(gòu)特征的獨(dú)特性和穩(wěn)定性.DOM樹結(jié)構(gòu)特征提取自頁面代碼的結(jié)構(gòu),與文本信息無關(guān),即使頁面中的部分重要字段缺失或者被更改,利用結(jié)構(gòu)特征依然可以識(shí)別設(shè)備品牌.
交互頁面都是由HTML代碼生成的,原始代碼都可以被轉(zhuǎn)換成DOM樹結(jié)構(gòu),如圖2所示.圖中,左側(cè)為源代碼,右側(cè)為轉(zhuǎn)換后的DOM樹結(jié)構(gòu),每個(gè)節(jié)點(diǎn)都是一個(gè)HTML的標(biāo)簽元素.頁面代碼的書寫方式不同,在DOM樹中每個(gè)節(jié)點(diǎn)的分叉情況也會(huì)不同.
IoTTracker中DOM樹結(jié)構(gòu)特征的提取方法是記錄所有節(jié)點(diǎn),這導(dǎo)致每條特征十分冗長(zhǎng),存儲(chǔ)和計(jì)算開銷很大.本文通過分析不同標(biāo)簽的作用,精簡(jiǎn)和統(tǒng)一了特征長(zhǎng)度,設(shè)計(jì)了如表1所示的26個(gè)特征值.
圖2 交互頁面代碼轉(zhuǎn)換為DOM樹結(jié)構(gòu)
表1 交互頁面DOM樹結(jié)構(gòu)特征
1) 特征Ⅰ(特征1~7)是對(duì)〈head〉標(biāo)簽下代碼的分析.在HTML文檔中,〈head〉標(biāo)簽用來定義文檔的頭部,描述了文檔的各種屬性和信息,包括文檔的標(biāo)題、全局屬性設(shè)置以及腳本調(diào)用等.在頭部使用的標(biāo)簽元素有:〈link〉、〈meta〉、〈script〉、〈title〉等.對(duì)于這些標(biāo)簽,將它們的使用次數(shù)作為特征值.
2) 特征Ⅱ(特征8~16)是對(duì)〈body〉標(biāo)簽下代碼的分析.標(biāo)簽〈body〉定義了網(wǎng)頁的主體,包含網(wǎng)頁的所有內(nèi)容(如文本、超鏈接、圖像、表格、列表等).在這些標(biāo)簽中,〈div〉標(biāo)簽用于將文檔分割成獨(dú)立、不同的塊結(jié)構(gòu).同時(shí)它們又可以繼續(xù)通過〈div〉標(biāo)簽被細(xì)分為更小的塊.塊結(jié)構(gòu)的不同分布是不同品牌交互頁面之間的主要區(qū)別.因此,可以統(tǒng)計(jì)標(biāo)簽〈div〉的數(shù)量以及子標(biāo)簽的深度并作為特征值.標(biāo)簽〈table〉也有劃分頁面結(jié)構(gòu)的作用,同樣統(tǒng)計(jì)〈table〉標(biāo)簽的個(gè)數(shù)以及最大行數(shù)列數(shù)并作為特征值.
3) 特征Ⅲ(特征17~26)是DOM樹的層次結(jié)構(gòu)信息.利用寬度優(yōu)先搜索算法搜索〈body〉部分的樹結(jié)構(gòu),將每層的子節(jié)點(diǎn)個(gè)數(shù)作為特征值.記Scur為當(dāng)前節(jié)點(diǎn),|Scur|為當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)的個(gè)數(shù),取|Scur|作為一個(gè)特征值,然后在Scur的所有子節(jié)點(diǎn)中找到具有最多子節(jié)點(diǎn)數(shù)的節(jié)點(diǎn),令其為Scur,再將新的|Scur|記為下一個(gè)特征值.如此搜索10層DOM樹結(jié)構(gòu)并記錄每層的最大子節(jié)點(diǎn)數(shù),最后得到特征17~26.
2.2.1 簡(jiǎn)化的SOINN算法
自組織增量學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)(SOINN)是一種基于競(jìng)爭(zhēng)學(xué)習(xí)的雙層神經(jīng)網(wǎng)絡(luò),通過神經(jīng)元的調(diào)整來保存已經(jīng)學(xué)習(xí)過的知識(shí),實(shí)現(xiàn)增量學(xué)習(xí).本文將簡(jiǎn)化后的SOINN與SVM算法相結(jié)合,提出了增量式監(jiān)督學(xué)習(xí)算法SOINN-SVM.
經(jīng)典的SOINN算法采用雙層網(wǎng)絡(luò),不僅計(jì)算復(fù)雜,而且在訓(xùn)練過程中難以判斷何時(shí)停止第1層學(xué)習(xí)進(jìn)入第2層學(xué)習(xí).為了降低SOINN的計(jì)算復(fù)雜度,本文采用單層SOINN結(jié)構(gòu)[17],而Furao等[18]已經(jīng)證明單層結(jié)構(gòu)的SOINN學(xué)習(xí)能力和雙層結(jié)構(gòu)一樣.簡(jiǎn)化后的SOINN算法流程如下.
輸入:數(shù)據(jù)集F,最大邊年齡amax,去噪周期λ.
輸出:神經(jīng)元集合N,邊集合C.
① 初始化神經(jīng)元集合N={c1,c2},c1、c2的權(quán)重Xc1、Xc2∈F,是數(shù)據(jù)集合F中的2個(gè)隨機(jī)樣本,初始化邊集合C?N×N為空集.
② 輸入一個(gè)新的數(shù)據(jù)樣本ξ.
③ 基于歐式距離查找N中與樣本最近的2個(gè)神經(jīng)元s1和s2,s1稱為獲勝神經(jīng)元.
s1=argminξ-Xττ∈N
s2=argminξ-Xττ∈N{s1}
(1)
④ 計(jì)算神經(jīng)元s1和s2的相似度閾值Ts1和Ts2.
(2)
式中,Nτ為神經(jīng)元τ的所有鄰居集合.若Nτ不為空集,則將與鄰居神經(jīng)元的最大距離作為閾值;否則,尋找與τ最近的神經(jīng)元,并將兩者的距離作為閾值.如果ξ-Xs1>Ts1或者ξ-Xs2>Ts2,那么為樣本ξ生成新的神經(jīng)元r,令N=N∪{r},Xr=ξ,然后返回步驟②.
⑤ 若s1和s2不存在連接關(guān)系,則為兩者建立邊連接關(guān)系,C=C∪{(s1,s2)}.
⑥ 更新獲勝節(jié)點(diǎn)s1與鄰居神經(jīng)元節(jié)點(diǎn)連接的邊年齡a(s1,k),即
a(s1,k)=a(s1,k)+1k∈Ns1
(3)
⑦ 更新獲勝神經(jīng)元s1權(quán)重,即
(4)
式中,m為神經(jīng)元成為獲勝神經(jīng)元的次數(shù).
⑧ 每學(xué)習(xí)λ個(gè)樣本數(shù)據(jù),進(jìn)行一次去噪過程.檢查C中所有邊,若a(i,j)>amax,則移除該邊,C=C{(i,j)}.同時(shí),將孤立的神經(jīng)元?jiǎng)h除.如果神經(jīng)元i的Ni=?,則N=N{i}.返回步驟②.
最后得到神經(jīng)元集合N和連接關(guān)系C.神經(jīng)元的權(quán)重集合{Xk,k∈N}就是原型數(shù)據(jù),是原始數(shù)據(jù)的壓縮,代表了原始數(shù)據(jù)的拓?fù)浞植记闆r.原型數(shù)據(jù)將被用來訓(xùn)練SVM分類器.
2.2.2 增量式監(jiān)督學(xué)習(xí)流程
增量式監(jiān)督學(xué)習(xí)算法SOINN-SVM的具體流程如下.
① 將ARE采集到的帶標(biāo)簽數(shù)據(jù)按品牌分類.
② 每一類品牌數(shù)據(jù)各自經(jīng)過一個(gè)SOINN網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)壓縮,每個(gè)網(wǎng)絡(luò)都保留和更新對(duì)應(yīng)類的原型數(shù)據(jù).
③ 利用原型數(shù)據(jù)訓(xùn)練SVM分類器.
④ 利用SVM分類器進(jìn)行識(shí)別.如果SVM分類器給出的概率結(jié)果大于閾值θ1,判為結(jié)果有效并輸出結(jié)果;否則,判為可信度太低,無法識(shí)別.每有效識(shí)別δ條數(shù)據(jù),就將它們作為帶標(biāo)簽數(shù)據(jù)輸入到SOINN網(wǎng)絡(luò)中更新模型,進(jìn)入步驟②.
在步驟③中,原型數(shù)據(jù)的數(shù)量遠(yuǎn)遠(yuǎn)小于輸入的帶標(biāo)簽數(shù)據(jù).與直接使用完整的帶標(biāo)簽數(shù)據(jù)訓(xùn)練SVM分類器相比,利用原型數(shù)據(jù)訓(xùn)練SVM分類器大大降低了訓(xùn)練的時(shí)間復(fù)雜度.
物聯(lián)網(wǎng)設(shè)備種類繁多,更新快速,難以收集到完整的訓(xùn)練數(shù)據(jù)集.所以步驟④中將SVM識(shí)別后的數(shù)據(jù)繼續(xù)輸入到SOINN網(wǎng)絡(luò)中,通過更新原型數(shù)據(jù)和重新訓(xùn)練分類器,不斷提升品牌識(shí)別的準(zhǔn)確率.
考慮到在真實(shí)網(wǎng)絡(luò)環(huán)境中總會(huì)遇到未經(jīng)過訓(xùn)練的新品牌設(shè)備,在步驟④中設(shè)定了可信度閾值θ1.步驟④中的δ如果取值較小可以提高模型更新速度,但會(huì)增加計(jì)算量;如果取值較大則會(huì)減少計(jì)算量,但同時(shí)也會(huì)降低模型更新速度.因此,根據(jù)不同的需求可以取δ值為100、500或者1 000.
Jaro距離用來表示2個(gè)字符串之間的相似度.對(duì)于2個(gè)字符串u1和u2,它們之間的Jaro距離計(jì)算公式為
(5)
式中,J為Jaro距離;l為2個(gè)字符串中相互匹配的字符數(shù)量;|u1|和|u2|分別表示2個(gè)字符串的長(zhǎng)度;t為匹配字符中需要換位的個(gè)數(shù).定義匹配閾值φ為
(6)
當(dāng)u1和u2中的2個(gè)字符相同,并且它們的相對(duì)位置小于φ時(shí),就認(rèn)為這2個(gè)字符是匹配的.
本文利用Jaro距離計(jì)算型號(hào)關(guān)鍵字之間的相似度.Jaro距離取值在0~1之間,越接近1,表示2個(gè)字符串越相似.比如“WR740ND”比標(biāo)準(zhǔn)的型號(hào)字段“WR740”多了2個(gè)字符,它們之間的Jaro距離為0.905,而“WR740ND”和 “WR841”的Jaro距離只有0.676.可見Jaro距離具有較強(qiáng)的模糊匹配能力,少量無關(guān)的字符變動(dòng)不會(huì)影響正確的匹配結(jié)果.
TF-IDF是常見的用于挖掘文本關(guān)鍵詞的方法,包含2個(gè)部分:詞頻TF(term frequency)和逆文本頻率IDF(inverse document frequency).記文本集合為D,其中的單個(gè)文本為d,Dij為第i個(gè)文本的第j個(gè)詞,那么定義詞Dij的詞頻為
(7)
式中,nij為第i個(gè)文本的第j個(gè)詞在該文本中出現(xiàn)的次數(shù);ni為第i個(gè)文本中的單詞總數(shù).定義逆文本頻率為
(8)
式中,|D|表示文檔總數(shù);|k:Dij∈dk|表示含有該詞的文檔數(shù)目.最后,定義該詞的TF-IDF權(quán)重為
ωij=fijgij
(9)
可見,文本中的一個(gè)詞出現(xiàn)的次數(shù)越多,而在其他文本中出現(xiàn)的越少,那么該詞對(duì)這個(gè)文本就越重要.
引入TF-IDF可以增加正確的型號(hào)字段在匹配過程中的權(quán)重.型號(hào)字段通常都是字母加數(shù)字的組合,可以利用正則表達(dá)式([A-Z][A-Za-z]*-*[0-9]+-*[A-Za-z0-9]*)從文本數(shù)據(jù)中抓取型號(hào)關(guān)鍵詞.但是在實(shí)際過程中正則匹配的結(jié)果會(huì)包含許多干擾詞.比如詞“′Win32NT”、“Ver-1”、“Oct2015WebViewer”,都是字母數(shù)字的組合形式,但都不屬于型號(hào)字段.通過觀察較多設(shè)備的文本數(shù)據(jù)發(fā)現(xiàn),正確的型號(hào)詞只會(huì)出現(xiàn)在該型號(hào)設(shè)備的文本數(shù)據(jù)中,而干擾詞會(huì)在多個(gè)型號(hào)的文本數(shù)據(jù)中出現(xiàn).因此,正確型號(hào)詞的TF-IDF權(quán)重值會(huì)高于其他的干擾詞.如表2所示,利用正則匹配從D-LINK路由器DIR868的文本數(shù)據(jù)中提取型號(hào)詞,匹配結(jié)果包含了一些干擾詞.然后結(jié)合D-LINK所有型號(hào)的詞庫(kù)進(jìn)行TF-IDF計(jì)算,得到各個(gè)詞的權(quán)重.從表2中發(fā)現(xiàn),正確的型號(hào)詞“Dir868”的權(quán)重為0.67,明顯高于其他干擾詞.將這種權(quán)重值引入匹配度計(jì)算中可以提高正確型號(hào)詞對(duì)匹配的作用,從而提高匹配的準(zhǔn)確率.
表2 DIR868文本中各詞權(quán)重值
令待識(shí)別設(shè)備的品牌識(shí)別結(jié)果為b,那么在型號(hào)識(shí)別時(shí)就加載品牌b的型號(hào)特征庫(kù).型號(hào)特征庫(kù)包含了利用正則匹配得到的詞集合Wb(含有干擾詞和正確的型號(hào)詞)和所有詞的TF-IDF權(quán)重值集合Mb,待識(shí)別設(shè)備的正則匹配結(jié)果為詞集合Q.那么,待識(shí)別設(shè)備和特征庫(kù)中型號(hào)p的相似度定義如下:
(10)
式中,Wb,p,i為b品牌p型號(hào)的第i個(gè)詞;Mb,p,i為該詞的TF-IDF權(quán)重值;Qj為待識(shí)別設(shè)備詞集合的第j個(gè)詞;J(Wb,p,i,Qj)為2個(gè)詞的Jaro距離.計(jì)算特征庫(kù)中的每個(gè)詞與集合Q中詞的Jaro距離,取最大值,并乘上該詞的權(quán)重Mb,p,i.式(10)中,正確的型號(hào)詞具有更大的權(quán)重值,對(duì)Υp的作用更大.但是每個(gè)型號(hào)的詞庫(kù)Wb,p的詞數(shù)量不一定相同,需要對(duì)累加的相似度Υp進(jìn)行歸一化處理,得到歸一化的相似度值,即
(11)
首先介紹實(shí)驗(yàn)環(huán)境,操作系統(tǒng)為Windows10,編程語言為Python3.6,編程工具為PyCharm,CPU為Intel i5-7500 3.4 GHz,內(nèi)存為8 GB.使用Python腳本從IPv4網(wǎng)絡(luò)中采集設(shè)備的80、443等端口數(shù)據(jù),并打上品牌和型號(hào)標(biāo)簽.最終得到實(shí)驗(yàn)數(shù)據(jù)9 688條,包含30種不同的品牌和441種不同的型號(hào).采用精確率P(precison)、召回率R(recall)和綜合評(píng)分F1值來評(píng)估分類器的性能.定義如下:
(12)
式中,LTP表示預(yù)測(cè)為正的正樣本數(shù);LFP表示預(yù)測(cè)為正的負(fù)樣本數(shù);LFN表示預(yù)測(cè)為負(fù)的正樣本數(shù).精確率P反映了分類器預(yù)測(cè)結(jié)果的準(zhǔn)確性,P值越高,預(yù)測(cè)為正的樣本中實(shí)際為正的樣本比例越高.召回率R反映了分類器的靈敏度,R值越高,所有正樣本中預(yù)測(cè)為正的樣本比例越高.
本節(jié)將依次分析本文算法的時(shí)間復(fù)雜度和存儲(chǔ)開銷.
品牌識(shí)別模塊中的算法是SOINN-SVM.在訓(xùn)練階段,所有訓(xùn)練樣本數(shù)據(jù)需要輸入SOINN網(wǎng)絡(luò).SOINN每學(xué)習(xí)一個(gè)樣本數(shù)據(jù)都要遍歷所有的原型數(shù)據(jù),因此SOINN的時(shí)間復(fù)雜度為O(nhv),其中n為輸入樣本數(shù),h為原型數(shù)據(jù)的數(shù)目,v為特征長(zhǎng)度.然后利用得到的原型數(shù)據(jù)訓(xùn)練SVM分類器,由于原型數(shù)據(jù)和SVM訓(xùn)練后得到的支持向量數(shù)屬于同一個(gè)數(shù)量級(jí),訓(xùn)練SVM分類器的時(shí)間復(fù)雜度為O(h2v)[19].因此,品牌識(shí)別模塊在訓(xùn)練階段的總時(shí)間復(fù)雜度為O(h2v+nhv).在識(shí)別階段,測(cè)試數(shù)據(jù)經(jīng)過SVM分類器識(shí)別設(shè)備品牌,時(shí)間復(fù)雜度為O(hv).
型號(hào)識(shí)別模塊中通過計(jì)算匹配度識(shí)別型號(hào).在訓(xùn)練階段,需要計(jì)算各型號(hào)文檔中詞語的TF-IDF權(quán)重值來生成型號(hào)特征庫(kù).時(shí)間復(fù)雜度為O(nb(npx)2),其中nb為品牌數(shù)目,np為每個(gè)品牌的平均型號(hào)數(shù)目,x為每個(gè)型號(hào)通過正則匹配得到的平均詞數(shù)目.在識(shí)別階段,需要計(jì)算待識(shí)別設(shè)備與各型號(hào)的匹配度,時(shí)間復(fù)雜度為O(npx2).
算法的存儲(chǔ)開銷方面,品牌識(shí)別部分存儲(chǔ)的是支持向量和原型數(shù)據(jù),故該部分的存儲(chǔ)開銷為O(hv).型號(hào)識(shí)別部分的特征庫(kù)包含了關(guān)鍵字段和對(duì)應(yīng)的權(quán)重值,故該部分的存儲(chǔ)開銷為O(nbnpx).
本文通過精簡(jiǎn)特征長(zhǎng)度和壓縮訓(xùn)練數(shù)據(jù),降低了特征長(zhǎng)度v和原型數(shù)據(jù)數(shù)量h的值,從而減少了品牌識(shí)別模塊中訓(xùn)練SVM分類器的時(shí)間復(fù)雜度.同時(shí),h值和v值的變小,也減少了存儲(chǔ)開銷.在型號(hào)識(shí)別模塊中,匹配度的計(jì)算只需遍歷單品牌的型號(hào)特征庫(kù),將計(jì)算匹配度的復(fù)雜度從O(nbnpx2)降低至O(npx2).
實(shí)驗(yàn)中比較了4種方法的存儲(chǔ)開銷、識(shí)別時(shí)間和準(zhǔn)確率,實(shí)驗(yàn)結(jié)果如表3所示.實(shí)驗(yàn)中忽略了閾值θ1和θ2對(duì)實(shí)驗(yàn)結(jié)果的影響,即所有的識(shí)別結(jié)果都是可信的.第1種方法是IoTTracker,其他3種方法是在本文的品牌識(shí)別模塊中分別采用SVM[20]、ISVM[21]和SOINN-SVM,其中ISVM是一種具有增量學(xué)習(xí)能力的SVM算法.從9 688條數(shù)據(jù)中選取70%的數(shù)據(jù)用于訓(xùn)練品牌分類模型,30%的數(shù)據(jù)用于測(cè)試,選取完整的型號(hào)文本數(shù)據(jù)生成型號(hào)特征庫(kù).表3中的存儲(chǔ)開銷包含了分類模型和型號(hào)特征庫(kù).
表3 四種設(shè)備識(shí)別方法實(shí)驗(yàn)結(jié)果比較
存儲(chǔ)開銷方面,IoTTracker的特征記錄了DOM樹中每一個(gè)節(jié)點(diǎn)的信息,所以該方法的特征庫(kù)存儲(chǔ)開銷最大,為603 KB.SOINN-SVM利用數(shù)據(jù)壓縮減小了分類模型的大小,存儲(chǔ)開銷為40 KB.基于SVM的3種方法的模型大小主要由學(xué)習(xí)到的支持向量數(shù)目決定,支持向量越少,存儲(chǔ)開銷越小.圖3展示了3種SVM方法的支持向量數(shù)目隨學(xué)習(xí)次數(shù)變化的曲線.這里將完整訓(xùn)練數(shù)據(jù)平均分為10份,依次輸入學(xué)習(xí).SVM每次使用已學(xué)習(xí)過的所有數(shù)據(jù),ISVM和SOINN-SVM每次使用單份的數(shù)據(jù)進(jìn)行增量學(xué)習(xí).隨著學(xué)習(xí)次數(shù)的增加,三者的支持向量數(shù)據(jù)都是增加的.其中ISVM和SVM的結(jié)果相似,學(xué)習(xí)所有數(shù)據(jù)后SVM的支持向量有407個(gè),ISVM的有409個(gè).而SOINN-SVM的支持向量最少,只有198個(gè).這表明SOINN-SVM可以通過數(shù)據(jù)壓縮減少模型的存儲(chǔ)開銷.
圖3 支持向量數(shù)目變化曲線
在識(shí)別時(shí)間上IoTTracker耗時(shí)最多,達(dá)到了43.28 s,而其他3種方法都在0.37 s左右.因?yàn)镮oTTracker每次識(shí)別都需要遍歷完整特征庫(kù)計(jì)算相似度,造成了大量的時(shí)間消耗.隨著特征庫(kù)的擴(kuò)大,IoTTracker的識(shí)別時(shí)間會(huì)持續(xù)增加,而本文的分類器識(shí)別時(shí)間是穩(wěn)定的.識(shí)別準(zhǔn)確率上SVM方法最高,因?yàn)樗挠?xùn)練采用了完整的數(shù)據(jù)集.本文方法的準(zhǔn)確率為95.9%,雖然略低于SVM方法,但具有更小的時(shí)間存儲(chǔ)開銷以及增量學(xué)習(xí)能力.
在實(shí)際的掃描過程中,會(huì)存在未發(fā)現(xiàn)過的新設(shè)備,本文分別設(shè)置閾值θ1和θ2來檢測(cè)出未訓(xùn)練過的新品牌和新型號(hào).當(dāng)分類結(jié)果的可信度大于閾值時(shí),結(jié)果被認(rèn)可;否則,判為未發(fā)現(xiàn)的設(shè)備.品牌識(shí)別模塊中以SOINN-SVM分類器的概率結(jié)果作為可信度,型號(hào)識(shí)別部分以文本相似度作為可信度.
完整的實(shí)驗(yàn)數(shù)據(jù)含有30種不同品牌的設(shè)備數(shù)據(jù),該實(shí)驗(yàn)中選擇20個(gè)品牌的數(shù)據(jù)進(jìn)行模型訓(xùn)練,測(cè)試數(shù)據(jù)中加入未訓(xùn)練的10種品牌數(shù)據(jù).閾值對(duì)分類性能的影響如圖4所示.圖4(a)是品牌分類性能與閾值關(guān)系曲線,圖4(b)是型號(hào)分類性能與閾值關(guān)系曲線.隨著閾值逐漸接近1,召回率R逐漸下降,準(zhǔn)確率P逐漸上升.高閾值使得識(shí)別結(jié)果的可信度更高,但是會(huì)導(dǎo)致召回率降低,因此需要綜合考慮準(zhǔn)確率和召回率來選取閾值.圖4(a)中,品牌識(shí)別的準(zhǔn)確率最高可以達(dá)到98.7%,此時(shí)召回率只有92.1%.為了平衡2種性能指標(biāo),閾值選取在曲線交叉點(diǎn)處,此時(shí)θ1為0.95,準(zhǔn)確率和召回率都達(dá)到了94.7%,綜合分類性能達(dá)到最優(yōu).圖4(b)中,隨著閾值從0.9增加到1.0,型號(hào)識(shí)別的準(zhǔn)確率逐漸上升,召回率逐漸下降.當(dāng)閾值大于0.98時(shí),準(zhǔn)確率和召回率基本維持穩(wěn)定,故選取θ2為0.98,此時(shí)型號(hào)識(shí)別的準(zhǔn)確率為91.8%,召回率為95.6%.
(a) 品牌
(b) 型號(hào)
本文提出的方法具有在線學(xué)習(xí)的能力,可以在識(shí)別設(shè)備的過程中不斷提升分類器的分類性能.將9 688條數(shù)據(jù)平均分成10份.第1份數(shù)據(jù)作為帶標(biāo)簽數(shù)據(jù)集訓(xùn)練SOINN-SVM分類器,剩余9份數(shù)據(jù)模擬數(shù)據(jù)流的形式依次輸入SOINN-SVM分類器進(jìn)行分類.每一份數(shù)據(jù)在識(shí)別后按照品牌類別輸入SOINN網(wǎng)絡(luò).
圖5是SOINN-SVM在多次學(xué)習(xí)中準(zhǔn)確率P、召回率R以及F1值的變化情況.從圖中可以看出,在僅用一份數(shù)據(jù)訓(xùn)練時(shí),識(shí)別準(zhǔn)確率只有88.0%,召回率只有84.1%.隨著在線學(xué)習(xí)的次數(shù)增加,3項(xiàng)評(píng)價(jià)指標(biāo)整體趨勢(shì)都是上升的.在第4次學(xué)習(xí)后,分類性能略有下降,這是由于SOINN網(wǎng)絡(luò)在更新和調(diào)整神經(jīng)元節(jié)點(diǎn)時(shí)可能刪除了部分學(xué)習(xí)結(jié)果,但繼續(xù)保持學(xué)習(xí)分類性能逐漸上升.當(dāng)學(xué)習(xí)到第10次時(shí),各項(xiàng)性能指標(biāo)達(dá)到最優(yōu),準(zhǔn)確率達(dá)到94.8%,召回率達(dá)到96.3%,F(xiàn)1值達(dá)到95.4%.
圖5 SOINN-SVM增量學(xué)習(xí)能力
與基于文本特征匹配的識(shí)別方法相比,本文方法可以識(shí)別出更多設(shè)備.本節(jié)中利用真實(shí)網(wǎng)絡(luò)的設(shè)備數(shù)據(jù)進(jìn)行識(shí)別實(shí)驗(yàn).考慮到IPv4空間太大,無法在短時(shí)間內(nèi)完成全部探測(cè),所以實(shí)驗(yàn)中縮小了搜索的網(wǎng)絡(luò)空間規(guī)模.首先對(duì)69.x.x.x—71.x.x.x、131.x.x.x和132.x.x.x這幾個(gè)大網(wǎng)段進(jìn)行探測(cè)采集,網(wǎng)絡(luò)空間地址共8 388萬個(gè),最終發(fā)現(xiàn)的在線并且可以采集到完整數(shù)據(jù)(包括各端口標(biāo)語信息和交互頁面代碼信息)的設(shè)備終端為435 326個(gè).分別利用ARE和本文方法識(shí)別數(shù)據(jù),識(shí)別結(jié)果如表4所示,表中展示了數(shù)量最多的前5種設(shè)備品牌.
表4 識(shí)別出的不同品牌設(shè)備數(shù)量對(duì)比
從表4中發(fā)現(xiàn),本文提出的方法可以識(shí)別出更多的設(shè)備,經(jīng)計(jì)算總體上比ARE方法多識(shí)別出37.05%的設(shè)備.這表明基于交互頁面DOM樹結(jié)構(gòu)的特征覆蓋設(shè)備范圍廣,識(shí)別能力強(qiáng).而傳統(tǒng)基于文本特征的方法在標(biāo)語信息缺失或者變化時(shí)就無法正確識(shí)別設(shè)備.
1) 為了提升物聯(lián)網(wǎng)設(shè)備識(shí)別方法的靈活性和準(zhǔn)確性,本文將增量學(xué)習(xí)與監(jiān)督學(xué)習(xí)相結(jié)合,提出了一種具有增量學(xué)習(xí)能力的在線物聯(lián)網(wǎng)設(shè)備識(shí)別方法.利用SOINN-SVM方法訓(xùn)練品牌分類器,可以動(dòng)態(tài)更新分類模型,同時(shí)又降低了運(yùn)算存儲(chǔ)開銷.
2) 利用TF-IDF優(yōu)化型號(hào)字段的正則匹配結(jié)果,結(jié)合權(quán)重值和Jaro距離計(jì)算與型號(hào)特征庫(kù)的匹配度,降低了干擾詞的影響.型號(hào)識(shí)別是在品牌識(shí)別結(jié)果上的二次分類,對(duì)單品牌型號(hào)特征庫(kù)的遍歷縮短了識(shí)別時(shí)間.
3) 實(shí)驗(yàn)結(jié)果表明,本文方法的識(shí)別準(zhǔn)確率達(dá)到了95.9%.相比其他方法,可以多識(shí)別37.05%的設(shè)備,并且識(shí)別時(shí)間和存儲(chǔ)開銷更小.