孫 治 , 楊 慧 , 張 江 , 陳劍鋒 , 徐 銳
(1.網(wǎng)絡(luò)空間安全四川省重點實驗室,四川 成都 610041;2.中國電科網(wǎng)絡(luò)空間安全技術(shù)重點實驗室,四川 成都 610041;3.中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)
如今是一個信息技術(shù)高速發(fā)展的時代,網(wǎng)絡(luò)早已滲透于當(dāng)今社會各行各業(yè),隨著移動互聯(lián)網(wǎng)的快速普及,接入了海量的不同類型的網(wǎng)絡(luò)設(shè)備。隨著物聯(lián)網(wǎng)和5G技術(shù)的快速發(fā)展,更多種類的物聯(lián)網(wǎng)設(shè)備也將加入到網(wǎng)絡(luò)。這些設(shè)備可能是服務(wù)器、交換機(jī)、防火墻、手機(jī)、個人電腦,也可能是網(wǎng)絡(luò)攝像頭、智能家電等物聯(lián)網(wǎng)設(shè)備。然而數(shù)量龐大種類繁多的網(wǎng)絡(luò)設(shè)備也會暴露出更多的網(wǎng)絡(luò)安全問題,并給網(wǎng)管帶來嚴(yán)峻的挑戰(zhàn)。識別特定區(qū)域的網(wǎng)絡(luò)設(shè)備,可以更好地保護(hù)個人和組織的數(shù)據(jù),防范已經(jīng)存在和未知的風(fēng)險。而且確定設(shè)備類型對于網(wǎng)絡(luò)空間態(tài)勢感知也具有重要的意義。
目前識別網(wǎng)絡(luò)設(shè)備類型的主要方法是通過網(wǎng)絡(luò)探測來實現(xiàn)[1]。而網(wǎng)絡(luò)掃描是一種網(wǎng)絡(luò)探測方法,是指通過掃描特定的計算機(jī)網(wǎng)絡(luò)端口獲取目標(biāo)主機(jī)的相關(guān)信息的技術(shù)。常見的網(wǎng)絡(luò)掃描開源軟件有Nmap、Zmap等。以Nmap掃描工具為例,它使用自建的模板指紋庫,模板指紋庫是根據(jù)不同目標(biāo)設(shè)備對探測包的差別應(yīng)答來產(chǎn)生的。然而,這種網(wǎng)絡(luò)設(shè)備識別方法存在不足。由于目標(biāo)設(shè)備的復(fù)雜性,網(wǎng)絡(luò)設(shè)備可能有固件版本的更新,可能換用了不同的操作系統(tǒng),甚至是一種指紋庫沒有的未知設(shè)備,導(dǎo)致探測到的設(shè)備指紋無法匹配指紋庫。因此,只使用掃描工具不能有效地識別網(wǎng)絡(luò)設(shè)備的類型。
針對上述問題,本文將概念格方法引入到了網(wǎng)絡(luò)設(shè)備的識別,提出了一種基于概念格的網(wǎng)絡(luò)設(shè)備識別方法。該方法可以解決設(shè)備識別過程中差異性難以量化的問題,利用概念格計算網(wǎng)絡(luò)設(shè)備的屬性相似度,顯著簡化設(shè)備識別過程。針對未知的網(wǎng)絡(luò)設(shè)備,也能夠給出可能的設(shè)備類型。
網(wǎng)絡(luò)探測是獲取區(qū)域資產(chǎn)數(shù)據(jù)的重要手段。區(qū)域資產(chǎn)是對組織或個人有價值的信息資源,是安全策略重點關(guān)注的對象。網(wǎng)絡(luò)探測通常包含四個步驟,包括目標(biāo)發(fā)現(xiàn)、端口探測、服務(wù)發(fā)現(xiàn)、操作系統(tǒng)偵測,這四個步驟一般遵循著一定的順序執(zhí)行。該技術(shù)通常通過設(shè)備在通信過程中應(yīng)答的某種信息對其進(jìn)行辨識和判定,實現(xiàn)的方式主要包括被動和主動 2 種[2]。
被動方式不主動向目標(biāo)主機(jī)發(fā)送數(shù)據(jù)包,而是根據(jù)目標(biāo)向外發(fā)送請求時,從攜帶的信息來分析判別目標(biāo)的設(shè)備類型。被動識別對掃描網(wǎng)絡(luò)環(huán)境要求較低,對目標(biāo)網(wǎng)絡(luò)狀態(tài)影響不大,但是它能夠提供的信息量有限,而且可靠性也不如主動式,常用于高速的流量獲取、協(xié)議種類識別等場景。主動方式是從探測源將特定的信息發(fā)送給目標(biāo)主機(jī),通過觸發(fā)某些期望的設(shè)備回應(yīng)來分析出目標(biāo)主機(jī)的設(shè)備類型。主動方式獲取的信息量較多而且信息可靠性高,但是也容易被目標(biāo)發(fā)現(xiàn)和針對。主動式探測常用于主機(jī)存活性檢測、端口開放性檢測、系統(tǒng)和服務(wù)指紋發(fā)現(xiàn)以及漏洞掃描等場景。目前有很多開源掃描工具可供選擇,這些掃描工具各有所長,適用不同類型的應(yīng)用場景。因此進(jìn)行網(wǎng)絡(luò)掃描工作時,選擇合適的掃描工具可以達(dá)到事半功倍的效果。
形式概念分析(Formal Concept Analysis,F(xiàn)CA),由德國的Wille R.教授于1982年首次提出[3]。概念格是FCA理論的核心數(shù)據(jù)結(jié)構(gòu),該理論基于哲學(xué)范疇中的概念,每個“概念”分為內(nèi)涵和外延兩部分:內(nèi)涵是事物的某些屬性的集合,而外延就是具有這些屬性的事物對象的集合。概念格從本質(zhì)上來說,它描述的是對象與屬性之間的聯(lián)系,表明各概念之間的泛化、特化關(guān)系。作為一種切實有效的數(shù)據(jù)分析工具,概念格理論得到廣泛認(rèn)可,并成功應(yīng)用于多種領(lǐng)域,諸如數(shù)據(jù)挖掘、信息檢索,知識發(fā)現(xiàn),搜索引擎等領(lǐng)域[4-6]。利用概念格的層次分類模型,可以較好的量化網(wǎng)絡(luò)設(shè)備的差異程度[7]。
從數(shù)學(xué)的角度來看,概念間的包含關(guān)系是一種偏序關(guān)系,其產(chǎn)生的完全格,就是概念格。由概念格上的偏序關(guān)系生成的Hasse圖,能夠反映概念的層次結(jié)構(gòu)并直觀地體現(xiàn)概念之間的關(guān)系。現(xiàn)實世界的各種事物或信息大都可以比較容易的表示成一個對象或?qū)嵗哂心承傩曰蛱卣鞯年P(guān)系。
概念格中的每個節(jié)點都是一個形式概念,形式概念由外延和內(nèi)涵兩部分組成。概念格的結(jié)構(gòu)對知識表示具有直觀性和層次性等特點。在形式概念分析中,這種對象-屬性間的二元關(guān)系被稱為形式背景(Formal Context),它是一個由對象集、屬性集、二元關(guān)系所構(gòu)成的三元組。概念格的Hasse圖是以概念作為節(jié)點,以連接父子概念的線段作為邊,按照父概念在子概念上方的順序,把所有概念連接起來所構(gòu)成的圖。由形式背景生成概念格的過程被稱為概念格構(gòu)造。
以下介紹一些概念格的數(shù)學(xué)基本定義。
定義1.設(shè)(U,A,I)為一個形式化背景,其中U={x1,x2,…,xn}為對象集合,xi對應(yīng)本文研究的目標(biāo)網(wǎng)絡(luò)設(shè)備;A={a1,a2,…,am}為屬性集合,ai表示網(wǎng)絡(luò)設(shè)備的一個屬性;I為U和A之間的二元關(guān)系,對于一個對象x∈U,屬性a∈A,那么xIa表示對象x具有屬性a。
定義2.設(shè)(U,A,I)為網(wǎng)絡(luò)空間資源形式化背景,定義兩種運算X*,B*:

式中,X*為X中所有對象的屬性集合,B*為B中所有對象的屬性集合。
定 義 3.若 一 個 二 元 組 (X,B)滿 足 X*=B 且B*=X,則稱(X,B)是一個形式概念,其中X稱為概念的外延,B稱為概念的內(nèi)涵。
大數(shù)據(jù)蘊含有豐富的知識,而概念格是一種知識提取的形式化描述工具。概念結(jié)點的外延是概念所覆蓋的對象(實例)集合,概念結(jié)點的內(nèi)涵是對象所共有的屬性(特征)集合。運用概念格具有知識表達(dá)的直觀性和完備性[8],有利于網(wǎng)絡(luò)設(shè)備的類型判別。
本文提出了一種基于概念格的網(wǎng)絡(luò)設(shè)備識別方法。首先根據(jù)已知網(wǎng)絡(luò)設(shè)備類型的屬性,結(jié)合領(lǐng)域?qū)<抑R構(gòu)建網(wǎng)絡(luò)空間實體資源的形式背景,然后采用快速正則化逼近算法構(gòu)建網(wǎng)絡(luò)設(shè)備屬性概念格;接下來利用多種開源工具探測目標(biāo)設(shè)備,將探測到的信息轉(zhuǎn)換為目標(biāo)設(shè)備的屬性值;最后使用網(wǎng)絡(luò)設(shè)備屬性概念格計算目標(biāo)設(shè)備與已知設(shè)備類型的概念相似度。
網(wǎng)絡(luò)設(shè)備具有型號、連接方式、對外服務(wù)、IP地址、MAC地址、操作系統(tǒng)、所在城市、所屬的機(jī)構(gòu)等信息,這些信息稱為網(wǎng)絡(luò)設(shè)備的屬性信息。將網(wǎng)絡(luò)設(shè)備的所有特征屬性集成到一個樹型結(jié)構(gòu)中,稱為網(wǎng)絡(luò)設(shè)備屬性特征樹。特征樹中每一個葉子節(jié)點就是一個屬性,表示網(wǎng)絡(luò)中至少有一個設(shè)備具有這樣的特征屬性。通過特征樹,可以把設(shè)備的屬性特征表示為一個二值特征向量,向量的個數(shù)為特征樹中葉子節(jié)點的數(shù)目,如(1,0,0,1,0,1,1),網(wǎng)絡(luò)設(shè)備具有的特征在向量中標(biāo)為1,不具有的特征在向量中標(biāo)為0。
構(gòu)建網(wǎng)絡(luò)設(shè)備屬性概念格首先需要建立網(wǎng)絡(luò)設(shè)備的形式背景(見表1)。根據(jù)已知網(wǎng)絡(luò)設(shè)備類型的屬性,結(jié)合領(lǐng)域?qū)<抑R構(gòu)建一張網(wǎng)絡(luò)設(shè)備形式背景表格,表格行表示已知的網(wǎng)絡(luò)設(shè)備類型,列表示網(wǎng)絡(luò)設(shè)備的屬性值。例如,表1中屬性列打上“×”標(biāo)記的表示該類設(shè)備具有這個屬性。

表1 網(wǎng)絡(luò)設(shè)備形式背景表格示意
目前概念格的構(gòu)造算法主要分為兩類:批處理算法和增量算法。批處理算法又可以分三種:自頂向下算法、自底向上算法和枚舉算法。
本文采用快速正則化逼近算法(Fast Close-by-One,F(xiàn)CBO)建立網(wǎng)絡(luò)資產(chǎn)屬性概念格[9],該算法通過減少重復(fù)計算的概念格的總數(shù)來獲取更高的效率,可以解決其它常見的建格算法時間開銷大的問題。以下簡要描述FCBO算法構(gòu)建網(wǎng)絡(luò)設(shè)備屬性概念格 L(U,A,I)的流程。
步驟一:輸入算法參數(shù),首個待處理的概念<A,B>、待處理的屬性y∈Y,以及屬性集合Y的子集{ Ny? Y | y ∈ Y }用于存儲處理過的屬性;
步驟二:判斷快速正則化逼近是否達(dá)到停止條件,是中止算法并輸出建格結(jié)果,否則繼續(xù);
步驟三:設(shè)定概念信息指針Mj指向Nj,Nj表示待處理屬性集合,計算概念<C,D>;
步驟四:判斷概念<C,D>是否為新概念,是則將(<C,D>, j)加入新概念隊列中,否則更新概念信息指針Mj指向D。
步驟五:判斷隊列是否為空,是則輸出建格結(jié)果,否則保存概念;
重復(fù)上述步驟,直到算法中止退出。
目標(biāo)設(shè)備掃描是獲取目標(biāo)設(shè)備信息的有效方式。通過向目標(biāo)主機(jī)發(fā)送的特定的探測包,目的是通過觸發(fā)某些期望的設(shè)備回應(yīng)來分析出目標(biāo)主機(jī)的有關(guān)信息。為了快速提取目標(biāo)設(shè)備的屬性值,本方法將探測過程分為了兩個步驟:端口存活性探測、解析端口的banner信息。
本方法首先是對目標(biāo)設(shè)備的端口存活性進(jìn)行探測。使用開源掃描工具zmap探測目標(biāo)設(shè)備的最常用的1 000個端口的存活性。因為zmap采取的是無狀態(tài)的掃描,沒有進(jìn)行完整的TCP協(xié)議的三次握手,因此大規(guī)模掃描速度極大提升。
接下來是解析端口的banner信息。使用掃描工具nmap,向目標(biāo)設(shè)備的存活端口發(fā)送探測報文。然后將得到的回復(fù)包與數(shù)據(jù)庫中的簽名進(jìn)行對比,如果反復(fù)探測都無法得出具體應(yīng)用,記錄應(yīng)用返回報文,以便進(jìn)行進(jìn)一步人工判斷。
最后,探測存活端口記錄獲取的設(shè)備屬性關(guān)鍵字,例如:網(wǎng)絡(luò)設(shè)備的歸屬城市、ISP、所屬機(jī)構(gòu)、連接方式、對外服務(wù)等屬性是能夠被探測到的屬性,這些屬性構(gòu)成網(wǎng)絡(luò)設(shè)備特征屬性關(guān)鍵字,對照上一小節(jié)中形式背景,將目標(biāo)設(shè)備屬性特征表示為二值特征向量。
將目標(biāo)設(shè)備屬性作為一個新概念添加到上一小節(jié)的新建的網(wǎng)絡(luò)設(shè)備屬性概念格L(U,A,I)。
由定義3,將目標(biāo)設(shè)備屬性概念記作(X1,B1),那么兩個概念 (X1,B1)和 (X2,B2)的相似度為:

其中α,β表示對象與屬性的權(quán)重參數(shù),滿足α+β=1。根據(jù)概念格的對偶性質(zhì)通常設(shè)置α=β=0.5。
在網(wǎng)絡(luò)設(shè)備屬性概念格L(U,A,I)中,若目標(biāo)網(wǎng)絡(luò)設(shè)備x1涉及的概念集合定義為M;已知設(shè)備x2涉及的概念集合定義為N,則目標(biāo)設(shè)備和已知設(shè)備類型的屬性概念相似度為:

其中概念集合M中的每個概念的外延都包含網(wǎng)絡(luò)設(shè)備x1,概念集合N中的每個概念的外延都包含已知設(shè)備類型x2。|M|為概念集合M中概念的個數(shù),|N|為概念集合N中概念的個數(shù)。本文采用網(wǎng)絡(luò)設(shè)備的屬性概念相似度,評估網(wǎng)絡(luò)設(shè)備的相似程度。
重復(fù)上述步驟,直至完成目標(biāo)設(shè)備與已知設(shè)備類型的概念相似度計算,最后判斷目標(biāo)設(shè)備為概念相似度最大的類型 arg max simL<L,x1,xi)>。
本文研究了概念格的屬性關(guān)聯(lián)規(guī)則挖掘,提出了一種基于概念格的網(wǎng)絡(luò)設(shè)備識別方法。利用概念格計算網(wǎng)絡(luò)設(shè)備的屬性相似度,顯著簡化設(shè)備類型的識別過程。針對未知網(wǎng)絡(luò)設(shè)備,也能夠給出可能的設(shè)備類型。該方法可以解決設(shè)備識別過程中差異性難以量化的問題,不足之處是算法使用的網(wǎng)絡(luò)設(shè)備形式背景需要領(lǐng)域?qū)<胰斯そ?,這部分的工作量很大而且容易出錯,同樣探測目標(biāo)設(shè)備信息轉(zhuǎn)為設(shè)備屬性也需要人工參與,未來將結(jié)合自然語言處理技術(shù)實現(xiàn)屬性的自動提取。