張帥帥,黃杰
〔1.東南大學網(wǎng)絡空間安全學院,江蘇南京 211189;2.網(wǎng)絡通信與安全紫金山實驗室,江蘇南京 211111;3.江蘇省計算機網(wǎng)絡技術重點實驗室,江蘇南京 211189;4.網(wǎng)絡空間國際治理研究基地(東南大學),江蘇南京 211189〕
1 引言
近10年物聯(lián)網(wǎng)技術迅速發(fā)展,物聯(lián)網(wǎng)設備數(shù)量也急劇增加。根據(jù)國際知名調研機構Gartner[1]的報告,到2020年物聯(lián)網(wǎng)設備的數(shù)量將增加到200多億。日益發(fā)展的物聯(lián)網(wǎng)也存在巨大的安全隱患[2~3]。Liu等[4]人全面分析了物聯(lián)網(wǎng)設備在設計研發(fā)生產(chǎn)使用全過程的安全風險。
但是,物聯(lián)網(wǎng)設備具有海量和多樣的特點,很難進行統(tǒng)一的安全管理。所以,對物聯(lián)網(wǎng)設備進行識別和分類是進行安全管理的第一步。
2 物聯(lián)網(wǎng)設備識別方法
物聯(lián)網(wǎng)設備識別就是通過主動或被動的方式,采集有效信息生成設備指紋,分為基于流量特征的指紋生成和基于標語的指紋生成。
2.1 基于流量特征的指紋生成
主動探測是向目標設備發(fā)送探測包,對響應數(shù)據(jù)包進行分析提取特征。Nmap在探測目標設備的操作系統(tǒng)時,設定了16種畸形的TCP和UDP探測包,根據(jù)響應數(shù)據(jù)分析協(xié)議序號(ISN)的生成規(guī)則、系統(tǒng)的時鐘情況等信息,可以有效地識別出目標設備的操作系統(tǒng)[5,6]。
被動監(jiān)測是在網(wǎng)關處監(jiān)控設備的通信時長和頻率、數(shù)據(jù)大小等,來識別設備的不同行為模式。DEFT[7]分析DNS/HTTP/MQTT等多個協(xié)議的數(shù)字特征(均值、最大值和最小值),生成對應的數(shù)字指紋。對于具有無線功能的設備,可以將無線電的物理特征作為設備指紋[8,9]。
得到指紋后利用不同的學習算法進行設備分類。一般采用監(jiān)督學習和非監(jiān)督學習。Li等人[10]采用決策樹、SVM和BP神經(jīng)網(wǎng)絡等監(jiān)督學習方法,對攝像頭設備的正負樣本進行訓練來識別聯(lián)網(wǎng)攝像頭。無監(jiān)督學習則被用來解決無訓練數(shù)據(jù)時識別新出現(xiàn)的設備。
2.2 基于標語的指紋生成
標語信息常出現(xiàn)在Telnet/HTTP等協(xié)議中,含有設備的品牌型號信息。如圖1所示,是HTTP文本的頭部關鍵標語信息。標語信息能夠直接顯示設備的品牌型號。但各個廠家的標語信息格式、位置、寫法都不相同,對有效標語信息的提取造成了很大的阻礙。Feng等人[11]提出了基于規(guī)則匹配和NLP的物聯(lián)網(wǎng)設備搜索引擎,標語提取后利用Google對標語信息進行拓展并建立設備的指紋庫。

圖1 HTTP頭部標語信息
3 基于登錄界面的指紋生成
3.1 交互界面指紋特點
不同品牌設備的頁面具有差異性。同時,界面代碼是被寫進硬件存儲中的,具有持久性。這兩點確保了本文方法的有效性。
Ren等[12]人利用信息增益模型從Web頁面提取關鍵詞信息,利用正反饋增強的PU學習方法進行分類器訓練。但這種基于特征字提取的方法,在遇到交互界面中缺少關鍵字,或者品牌型號信息都以圖片的形式顯示時,難以提取有效的特征信息。針對這個問題,本文提出了基于交互界面代碼結構的特征提取方法,該方法的優(yōu)勢是適用性廣、正確率高。
3.2 指紋生成方法
HTML是一種標簽語言,可以轉化成DOM樹。本文的設備指紋包含兩部分:標簽使用情況和DOM樹的層次結構信息。這些信息可以很好的代表一種品牌設備的頁面特征。
本文通過對其關鍵標簽的使用情況以及DOM樹結構的分析,提取了表1中的19種特征值。一個合法的HTML文本都包括了兩大部分,標簽
和標簽。標簽定義了HTML文檔的頭部,是各種頭部標簽元素的容器。標簽中的內(nèi)容定義了HTML文檔的各類屬性,腳本的調用等等配置信息。經(jīng)常在頭部出現(xiàn)的標簽有
、、等。特征1和特征2統(tǒng)計了標簽下子標簽的使用情況,以及不同標簽個數(shù)。標簽定義了該頁面的標題。這里統(tǒng)計后文本的長度,如果為0則是沒有設置標題。其他標簽依次統(tǒng)計被使用的次數(shù)。
和常出現(xiàn)在標簽下,同樣統(tǒng)計使用次數(shù)。標簽是HTML文本的主體部分。頁面顯示的結構和內(nèi)容都是由這部分決定的。利用python的pyquery庫,將HTML轉化成DOM樹,如圖2所示。該樹的根是標簽,每個節(jié)點是一個標簽,對應的子節(jié)點是HTML文本中處在該標簽下的子標簽。整個樹狀結構就是HTML文本的層次結構。但記錄整個結構信息會導致特征過于冗長。本文采用BFS算法,統(tǒng)計10層代碼結構信息。記為當前節(jié)點,初始時是標簽,然后可以搜索它的所有子節(jié)點,記為。那么當前節(jié)點的特征值就是子節(jié)點的數(shù)量。對于任意一個子節(jié)點,統(tǒng)計下子節(jié)點的數(shù)量,將中具有最多子節(jié)點數(shù)的節(jié)點設為,并將其子節(jié)點數(shù)記錄為下一個特征值。這樣共搜索10層結構信息,特征值10~19就是連續(xù)10個節(jié)點的子節(jié)點數(shù)目。
表1 設備交互界面HTML文本結構特征表

圖2 HTML文本的DOM樹結構圖
4 物聯(lián)網(wǎng)設備識別流程
如圖3所示,是物聯(lián)網(wǎng)設備識別的基本流程。首先準備帶標簽數(shù)據(jù)集進行模型訓練。在本文中,比較了隨機森林、SVM、邏輯回歸三種機器學習模型的分類效果,并選擇效果最優(yōu)的隨機森林作為最終分類器。
采用并行式的網(wǎng)絡探測來發(fā)現(xiàn)在線設備。然后向HTTP端口發(fā)送HTTP GET請求,將返回的HTML文檔保存成xml格式的文件。這些HTML文檔通過特征提取模塊提取特征向量,再利用訓練好的分類器識別設備品牌。但模型訓練不可能覆蓋所有可能出現(xiàn)的品牌,為了發(fā)現(xiàn)新品牌設備,設定一個分類器結果的可信閾值,如果大于可信閾值,就以IP地址為主鍵,將其具體的品牌信息存入數(shù)據(jù)庫,否則就是未識別設備,存儲并作為新的訓練數(shù)據(jù)。

圖3 物聯(lián)網(wǎng)設備識別流程
5 實驗與分析
5.1 實驗數(shù)據(jù)集
實驗數(shù)據(jù)通過對IPv4網(wǎng)絡隨機掃描采集,然后進行人工識別標定。探測目標是暴露在公網(wǎng)中的開放HTTP服務的物聯(lián)網(wǎng)設備。首先對隨機的IP地址發(fā)送SYN探測包。如果目標返回ACK,則表明該目標存活。如果沒有響應或返回RSET,表明目標關機或存在防火墻。然后與存活主機的HTTP服務端口(80,443,8081等)建立連接并采集HTML文檔數(shù)據(jù)。采集到的并不都是物聯(lián)網(wǎng)設備數(shù)據(jù)。通過檢測HTML頭部server字段來去除非物聯(lián)網(wǎng)設備。因為物聯(lián)網(wǎng)設備計算能力有限,一般采用輕型的網(wǎng)頁軟件,如Lighthttp、Boa等,而網(wǎng)站服務器都采用Apache、Ngnix等軟件。
數(shù)據(jù)采集過程發(fā)現(xiàn)100萬的存活設備,過濾后的有效數(shù)據(jù)為42萬條左右。通過隨機選取并人工標記了幾千條設備數(shù)據(jù),如表2所示。

表2 帶標簽數(shù)據(jù)集設備品牌及數(shù)目信息
數(shù)據(jù)來自多種類別的設備,包括聯(lián)網(wǎng)攝像頭、網(wǎng)絡存儲設備、路由器等。這表明本文的方法具有廣泛的適用性。為了衡各類設備的訓練樣本數(shù)量,每個品牌隨機采樣600條數(shù)據(jù)。

圖4 特征向量分布(PCA 2D)
5.2 實驗結果
首先利用Sklearn庫對所有訓練數(shù)據(jù)進行特征標準化,。然后利用主成分分析PCA(Principal Component Analysis)提取特征的前兩個特征值顯示其分布前兩個特征分量并顯示分布,如圖4所示。圖中展示了5種品牌的特征分布情況,基本每一同類品牌的數(shù)據(jù)都能各自形成一個簇。
然后,采用三種基本的機器學習模型進行分類器的訓練,包括邏輯斯蒂回歸(LG)、隨機森林(RF)、支持向量機(SVM)。如圖5所示,展示了這三種機器學習模型訓練后的F1值情況。三種方法在各個品牌的分類上效果都很不錯,F(xiàn)1值均在0.9以上。其中隨機森林效果優(yōu)于其他兩種。所以最終選擇采用隨機森林訓練的分類器。為了達到最好的分類效果,對隨機森林分類器進行了參數(shù)調優(yōu)。當子樹達到65時,分類準確率最高,達到了98.9%。表3中展示了基于隨機森林分類器不同品牌設備的詳細分類效果??梢姳疚牡姆椒ㄔ谠O備品牌識別上具有很高的準確率,大部分設備準確率接近100%,準確率最低的是Cisco,但也能達到96%。

表3 隨機森林模型下各品牌設備分類效果

圖5 三種分類器F1值比較
隨機森林的結果是以子樹投票判定的,結果類的投票數(shù)占總子樹數(shù)量的比值就是結果的可信度。如圖6所示,實驗選取了14種品牌設備,其中4種是未標記的新品牌,在取不同可信度閾值時低可信度設備占比。選取可信度閾值的原則是未標記設備應盡可能多的被發(fā)現(xiàn),已標記設備應盡可能少的被判定為低可信度設備。所以,從圖6中發(fā)現(xiàn),將閾值設定為0.8左右時比較合適。此時,幾乎所有未標記設備都被發(fā)現(xiàn),而已標記設備被錯判的概率接近0。

圖6 不同可信閾值下低可信度設備占比
6 結束語
本文提出了一種基于登錄界面HTML文本結構特征的設備指紋生成方法。該方法避免了關鍵文本信息難以提取的問題。實驗結果表明該方法在設備品牌分類上具有很高的準確率和召回率。未來將結合更多特征提高分類細粒度。
承德县|
洪洞县|
呼图壁县|
怀化市|
高清|
凤山市|
元阳县|
建水县|
彩票|
肥城市|
肥乡县|
剑川县|
宁国市|
扶余县|
西平县|
封丘县|
麻栗坡县|
平潭县|
广东省|
泾阳县|
马边|
雷山县|
永济市|
连城县|
宣城市|
平邑县|
湘潭市|
衡南县|
定陶县|
临澧县|
高安市|
柘荣县|
中西区|
南京市|
井陉县|
延川县|
新泰市|
霍州市|
耒阳市|
年辖:市辖区|
泾川县|