本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建方法及其裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的飛速發(fā)展,人們的社會活動越來越傾向于網(wǎng)絡(luò)化,網(wǎng)絡(luò)成為了傳播、存儲和交互各種信息的新平臺。根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(cnnic)在2016年公布的中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告顯示,截止2016年6月,我國網(wǎng)民規(guī)模達(dá)到7.10億,上半年新增網(wǎng)民2132萬人,增長率達(dá)到51.7%,與2015年底相比提高1.3個百分點,超過全球平均水平3.1個百分點?;ヂ?lián)網(wǎng)的普及給人們的生活帶來了極大的方便,也在很大程度上改變了人們的生活方式。然而隨之而來的大量安全隱患也開始不斷出現(xiàn)。2015年3月,蘋果在線商店服務(wù)中斷長達(dá)11個小時,市值蒸發(fā)130億美元;2016年7月,twitter被黑客攻擊,超過3200萬twitter用戶的登錄信息遭泄露;2016年上半年,一名俄國黑客盜取了2.723億郵箱信息,其中包括4000萬個雅虎郵箱、3300萬微軟郵箱以及2400萬個谷歌郵箱。因此,主機(jī)識別成為了當(dāng)前研究的一個熱門問題。
主機(jī)識別對于計算機(jī)網(wǎng)絡(luò)犯罪取證、抵御匿名攻擊等具有重要意義。網(wǎng)絡(luò)攻擊者和竊密者往往會實施網(wǎng)絡(luò)偽裝以逃避追查,由于數(shù)據(jù)報報頭在網(wǎng)絡(luò)中傳輸時的透明性,上網(wǎng)主機(jī)可以修改自身的網(wǎng)絡(luò)標(biāo)識,因此依賴ip地址、mac地址等手段已不能確切標(biāo)識網(wǎng)絡(luò)主機(jī)。傳統(tǒng)的方法大多是通過獲取主機(jī)硬件指紋和主機(jī)軟件環(huán)境指紋對主機(jī)進(jìn)行識別,然而這些方法在工作模式上具有較大的局限性,容易受到網(wǎng)絡(luò)過濾設(shè)備、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等因素的影響,導(dǎo)致獲取特征信息不足,在探測準(zhǔn)確度上存在一定的問題。因此,需要對主機(jī)多個維度特征進(jìn)行提取、融合,構(gòu)建多個維度主機(jī)指紋庫,全面描述主機(jī),提高主機(jī)識別準(zhǔn)確率。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的不足,本發(fā)明提供一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建方法及其裝置,有效解決特征獲取不足導(dǎo)致識別主機(jī)準(zhǔn)確率降低和誤判問題,對主機(jī)多個維度特征進(jìn)行提取融合,構(gòu)建多維度主機(jī)指紋庫,全面描述主機(jī),提高主機(jī)識別準(zhǔn)確率。
按照本發(fā)明所提供的設(shè)計方案,一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建方法,包含如下內(nèi)容:
對網(wǎng)絡(luò)數(shù)據(jù)流量進(jìn)行初步篩選和過濾;
通過不同類型插件提取多維度主機(jī)特征信息,其中,不同類型插件對應(yīng)識別特征庫中相應(yīng)的識別特征;
基于map-score算法評估每個特征信息對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
上述的,對網(wǎng)絡(luò)數(shù)據(jù)流量進(jìn)行初步篩選和過濾:通過五元組策略對網(wǎng)絡(luò)原始流量進(jìn)行初步篩選和過濾,去除噪音,縮小數(shù)據(jù)量。
優(yōu)選的,在用戶態(tài)定義插件類型,通過不同類型插件提取多維度主機(jī)特征信息,包含如下內(nèi)容:在用戶態(tài)定義插件類型,通過識別特征樹依次對應(yīng)用協(xié)議進(jìn)行識別匹配,其中,插件類型至少包含:主機(jī)硬件特征解析、主機(jī)軟件環(huán)境特征解析及主機(jī)網(wǎng)絡(luò)行為特征解析,不同類型插件對應(yīng)相應(yīng)的主機(jī)特征信息的識別特征;識別特征樹中:父節(jié)點代表解析主機(jī)特征信息類型,中間節(jié)點代表在對應(yīng)維度主機(jī)特征信息下所包含的應(yīng)用程序,葉子節(jié)點代表解析對應(yīng)應(yīng)用協(xié)議下主機(jī)特征信息所使用的識別特征。
上述的,通過識別特征樹依次對應(yīng)用協(xié)議進(jìn)行識別匹配,包含如下內(nèi)容:通過插件定義的樹形結(jié)構(gòu)從根節(jié)點依次對應(yīng)用數(shù)據(jù)進(jìn)行匹配,通過葉子節(jié)點的識別特征解析主機(jī)特征信息。
上述的,基于map-score算法對多維度的主機(jī)特征信息,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫,包含如下內(nèi)容:
通過map方法構(gòu)建存儲特征信息的主機(jī)特征矩陣;
采用score方法通過主機(jī)特征矩陣評估每個特征對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
優(yōu)選的,所述的主機(jī)特征矩陣采用帶索引的十字鏈表進(jìn)行特征信息存儲。
優(yōu)選的,采用帶索引的十字鏈表進(jìn)行特征信息存儲,包含如下內(nèi)容:定義index數(shù)組,通過bkdr哈希算法對特征信息進(jìn)行哈希計算,哈希值作為index數(shù)組的下標(biāo),對應(yīng)的值為指向主機(jī)特征信息的指針,主機(jī)特征信息項存儲特征信息出現(xiàn)的總次數(shù)且使用雙指針分別指向特征信息出現(xiàn)的主機(jī)項和下一個主機(jī)特征信息項,主機(jī)項存儲特征信息在主機(jī)上出現(xiàn)的次數(shù)并指向下一臺出現(xiàn)該特征信息的主機(jī),直至網(wǎng)絡(luò)數(shù)據(jù)流量數(shù)據(jù)包處理完成沒有新加項。
上述的,采用score方法通過主機(jī)特征矩陣評估每個特征對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫,包含如下內(nèi)容:
假設(shè)sa代表主機(jī)集合,a是sa中的一臺主機(jī),δ(t,a)表示特征t是否在主機(jī)a出現(xiàn)過,出現(xiàn)為1,未出現(xiàn)則為0,∑a∈saδ(t,a)表示特征t在主機(jī)a下出現(xiàn)過的次數(shù),特征t對應(yīng)主機(jī)x的score值表示為:
一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建裝置,包含:
網(wǎng)絡(luò)流量截取篩選模型,用于通過五元組策略對網(wǎng)絡(luò)原始流量進(jìn)行初步篩選和過濾
主機(jī)特征信息識別提取模塊,用通過不同類型插件提取多維度的主機(jī)特征信息,插件類型至少包含:主機(jī)硬件特征解析、主機(jī)軟件環(huán)境特征解析及主機(jī)網(wǎng)絡(luò)行為特征解析,不同類型插件對應(yīng)相應(yīng)的主機(jī)特征信息的識別特征;
主機(jī)指紋庫構(gòu)建模塊,基于map-score算法構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
上述的裝置,所述的主機(jī)指紋庫構(gòu)建模塊包含:
主機(jī)特征矩陣構(gòu)建單元,用于通過map方法構(gòu)建存儲特征信息的主機(jī)特征矩陣;
關(guān)聯(lián)度評估單元,采用score方法通過主機(jī)特征矩陣評估每個特征對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
本發(fā)明的有益效果:
1、本發(fā)明方法簡單,易操作實現(xiàn),采用五元組策略對高速混雜的網(wǎng)絡(luò)原始流量進(jìn)行初步篩選和過濾,去除噪音,縮小數(shù)據(jù)流量,為了防止硬件截取速度過快導(dǎo)致主機(jī)特征識別解析模塊無法同步處理導(dǎo)致丟包的情形,通過采用零拷貝技術(shù)減少數(shù)據(jù)拷貝次數(shù)和系統(tǒng)調(diào)用,將網(wǎng)卡數(shù)據(jù)直接送達(dá)上層應(yīng)用,實現(xiàn)cpu的零參與,減少cpu負(fù)擔(dān),提高數(shù)據(jù)的處理能力;為了高效、準(zhǔn)確地提取主機(jī)特征信息在用戶態(tài)定義了插件,從而保證不同類型的網(wǎng)絡(luò)數(shù)據(jù)流量可以統(tǒng)一定義、并發(fā)處理,可以定制插件功能,定期更新維護(hù)插件,監(jiān)控插件運行狀態(tài),防止出現(xiàn)空轉(zhuǎn)或者崩潰,當(dāng)單個節(jié)點無法滿足數(shù)據(jù)處理需求時,可以進(jìn)行分布式部署,對原始數(shù)據(jù)流量進(jìn)行分流,統(tǒng)一調(diào)配調(diào)度插件;插件解析的內(nèi)容可以通過配置文件進(jìn)行靈活配置,對于同維度主機(jī)特征信息的解析需求只需要增加識別特征即可,對于增加識別特征不能滿足需求的,則可以通過新增插件實現(xiàn),便于維護(hù)和管理,只需定期對識別特征庫進(jìn)行更新,即可保證主機(jī)特征信息提取的準(zhǔn)確性,且支持分布式多點部署。
2、本發(fā)明中因主機(jī)特征信息具有多樣性,對于一臺主機(jī)來說,由于安裝軟件環(huán)境和網(wǎng)絡(luò)行為的不同均會導(dǎo)致出現(xiàn)不同格式重復(fù)的特征信息,而由于應(yīng)用協(xié)議的規(guī)定不同的主機(jī)下也會出現(xiàn)大量相同的標(biāo)識性較弱的特征信息,這都給主機(jī)指紋的選擇增加了難度,本發(fā)明通過基于map-score算法對不同維度主機(jī)特征信息進(jìn)行,最終完成主機(jī)指紋庫的構(gòu)建。方法簡單,易操作,能準(zhǔn)確高效地發(fā)現(xiàn)主機(jī)特征信息,為全面了解主機(jī)、準(zhǔn)確識別主機(jī)提供了技術(shù)基礎(chǔ),具有實際的應(yīng)用價值。
附圖說明:
圖1為本發(fā)明的裝置示意圖;
圖2為本發(fā)明的裝置中主機(jī)特征信息識別提取模塊示意圖;
圖3為本發(fā)明的方法流程示意圖;
圖4為主機(jī)特征信息提取流程圖。
圖5為map方法構(gòu)建的主機(jī)特征矩陣結(jié)構(gòu)。
圖6為map方法使用的數(shù)據(jù)結(jié)構(gòu)。
圖7為實施例中使用的實驗數(shù)據(jù)集。
圖8為構(gòu)建單維度主機(jī)指紋識別主機(jī)結(jié)果。
圖9為多維度主機(jī)指紋庫主機(jī)識別結(jié)果。
具體實施方式:
下面結(jié)合附圖和技術(shù)方案對本發(fā)明作進(jìn)一步詳細(xì)的說明,并通過優(yōu)選的實施例詳細(xì)說明本發(fā)明的實施方式,但本發(fā)明的實施方式并不限于此。
實施例一,參見圖1所示,一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建裝置,包含:
網(wǎng)絡(luò)流量截取篩選模型,用于通過五元組策略對網(wǎng)絡(luò)原始流量進(jìn)行初步篩選和過濾;
主機(jī)特征信息識別提取模塊,用于通過不同類型插件提取多維度的主機(jī)特征信息,插件類型至少包含:主機(jī)硬件特征解析、主機(jī)軟件環(huán)境特征解析及主機(jī)網(wǎng)絡(luò)行為特征解析,不同類型插件對應(yīng)相應(yīng)的主機(jī)特征信息的識別特征;
主機(jī)指紋庫構(gòu)建模塊,基于map-score算法構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
因主機(jī)特征信息具有多樣性,對于一臺主機(jī)來說,由于安裝軟件環(huán)境和網(wǎng)絡(luò)行為的不同均會導(dǎo)致出現(xiàn)不同格式重復(fù)的特征信息,而由于應(yīng)用協(xié)議的規(guī)定不同的主機(jī)下也會出現(xiàn)大量相同的標(biāo)識性較弱的特征信息,這都給主機(jī)指紋的選擇增加了難度,本發(fā)明通過在用戶態(tài)定義不同類型插件對主機(jī)特征信息進(jìn)行識別提取,并基于map-score算法評估每個特征信息對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫;方法簡單,易操作,能準(zhǔn)確高效地發(fā)現(xiàn)主機(jī)特征信息,有效提高主機(jī)識別的準(zhǔn)確率,為全面了解主機(jī)、準(zhǔn)確識別主機(jī)提供了技術(shù)基礎(chǔ),具有實際的應(yīng)用價值。
實施例二,如圖1~2所示,與實施例一基本相同,不同之處在于:所述的主機(jī)指紋庫構(gòu)建模塊包含:
主機(jī)特征矩陣構(gòu)建單元,用于通過map方法構(gòu)建存儲特征信息的主機(jī)特征矩陣;
主機(jī)指紋提取單元,采用score方法評估主機(jī)特征矩陣中每個特征對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
參見圖2所示,通過對主機(jī)特征信息的提取得到主機(jī)不同維度條目眾多的主機(jī)特征信息,但是由于應(yīng)用協(xié)議的規(guī)定,在主機(jī)與應(yīng)用程序交互的過程中不同行為攜帶的主機(jī)特征信息不盡相同,進(jìn)而導(dǎo)致主機(jī)特征信息標(biāo)識主機(jī)的強(qiáng)度也不同,標(biāo)識性弱的主機(jī)特征信息會大量頻繁地出現(xiàn)在多臺主機(jī)上,標(biāo)識性強(qiáng)的主機(jī)特征信息則集中出現(xiàn)在少數(shù)的主機(jī)上。而對于一臺主機(jī)來說,在一定時間段內(nèi)主機(jī)軟硬件環(huán)境較為穩(wěn)定,這也就為主機(jī)指紋信息的提取提供了條件,如果能夠找出頻繁出現(xiàn)在一臺主機(jī)上不同維度的主機(jī)特征信息,且該特征極少出現(xiàn)在其他主機(jī)上,則在一定程度上可以說明該主機(jī)特征信息具有較強(qiáng)的主機(jī)識別能力,當(dāng)從不同維度上提取出一臺主機(jī)大量符合上述條件的主機(jī)特征信息后,將其進(jìn)行融合則可以構(gòu)建出主機(jī)指紋庫,具有良好的健壯性和可靠性,有效解決現(xiàn)有技術(shù)中由于獲取特征不全而導(dǎo)致主機(jī)識別率低的問題,具有較強(qiáng)的實際應(yīng)用價值。系統(tǒng)管理從三個方面進(jìn)行管理:一、插件的管理,可以定制插件功能,定期更新維護(hù)插件;二、插件狀態(tài)管理,控制插件的運行和停止,監(jiān)控插件運行狀態(tài)防止出現(xiàn)空轉(zhuǎn)或者崩潰;三、統(tǒng)一管理和調(diào)度,當(dāng)單個節(jié)點無法滿足數(shù)據(jù)處理需求時,可以進(jìn)行分布式部署,對原始數(shù)據(jù)流量進(jìn)行分流,系統(tǒng)統(tǒng)一調(diào)配調(diào)度插件。插件解析的內(nèi)容可以通過配置文件進(jìn)行靈活配置,對于同維度主機(jī)特征信息的解析需求只需要增加識別特征即可,而對于增加識別特征不能滿足需求的則可以新增插件?;谀K化的思想方便系統(tǒng)管理和維護(hù),只需定期對識別特征庫進(jìn)行更新就可以保證主機(jī)特征信息提取的準(zhǔn)確性,且系統(tǒng)支持分布式多點部署。
實施例三,參見圖1~3所示,一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建方法,包含如下內(nèi)容:
對網(wǎng)絡(luò)數(shù)據(jù)流量進(jìn)行初步篩選和過濾;
通過不同類型插件提取多維度主機(jī)特征信息,其中,不同類型插件對應(yīng)識別特征庫中相應(yīng)的識別特征;
基于map-score算法評估每個特征信息對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫。
方法簡單,易于實現(xiàn),能夠準(zhǔn)確高效地發(fā)現(xiàn)主機(jī)特征信息,為全面了解主機(jī)、準(zhǔn)確識別主機(jī)提供技術(shù)基礎(chǔ),具有很強(qiáng)的實際應(yīng)用價值。
實施例四,參見圖1~9所示,一種網(wǎng)絡(luò)環(huán)境下被動式多維度主機(jī)指紋模型構(gòu)建方法,包含如下內(nèi)容:
一)通過五元組策略對網(wǎng)絡(luò)原始流量進(jìn)行初步篩選和過濾,去除噪音,縮小數(shù)據(jù)量,為了防止硬件截取速度過快導(dǎo)致主機(jī)特征識別解析模塊無法同步處理導(dǎo)致丟包的情形,通過采用零拷貝技術(shù)減少數(shù)據(jù)拷貝次數(shù)和系統(tǒng)調(diào)用,將網(wǎng)卡數(shù)據(jù)直接送達(dá)上層應(yīng)用,實現(xiàn)cpu的零參與,減少cpu負(fù)擔(dān),提高數(shù)據(jù)的處理能力。預(yù)先設(shè)置內(nèi)核,指定預(yù)留起始位置參數(shù)和預(yù)留物理內(nèi)存大?。患虞d內(nèi)核程序,將預(yù)留起始位置參數(shù)和預(yù)留物理內(nèi)存大小傳遞至內(nèi)核,初始化內(nèi)核緩沖區(qū)及直接內(nèi)存存取模塊,同時指定用于零拷貝網(wǎng)卡使用的網(wǎng)絡(luò)接口,并生成用于用戶程序和內(nèi)核交互的設(shè)備交互文件;用戶態(tài)讀取設(shè)備交互文件,獲取緩沖區(qū)總長度,并將其映射到用戶態(tài)程序,同時初始化用戶態(tài)模塊程序,初始化用戶態(tài)緩沖區(qū)及數(shù)據(jù)包調(diào)度器,通過零拷貝技術(shù)抓取網(wǎng)絡(luò)數(shù)據(jù)流量數(shù)據(jù)包。
二)在用戶態(tài)定義插件類型,通過識別特征樹依次對應(yīng)用協(xié)議進(jìn)行識別匹配,通過插件定義的樹形結(jié)構(gòu)從根節(jié)點依次對應(yīng)用數(shù)據(jù)進(jìn)行匹配,通過葉子節(jié)點的識別特征解析主機(jī)特征信息,其中,插件類型至少包含:主機(jī)硬件特征解析、主機(jī)軟件環(huán)境特征解析及主機(jī)網(wǎng)絡(luò)行為特征解析,不同類型插件對應(yīng)相應(yīng)的主機(jī)特征信息的識別特征;識別特征樹中:父節(jié)點代表解析主機(jī)特征信息類型,中間節(jié)點代表在對應(yīng)維度主機(jī)特征信息下所包含的應(yīng)用程序,葉子節(jié)點代表解析對應(yīng)應(yīng)用協(xié)議下主機(jī)特征信息所使用的識別特征。
在用戶態(tài)定義插件類型,參見圖2所示,不同類型插件對應(yīng)識別特征庫中相應(yīng)類型的識別特征;數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)接口,過濾掉非配置協(xié)議報文,保留配置處理的協(xié)議報文,并將其存儲在系統(tǒng)內(nèi)核指定的預(yù)留物理內(nèi)存中;讀取配置文件,加載相應(yīng)類型的插件,通過插件中相應(yīng)的識別特征對主機(jī)流量進(jìn)行匹配,提取出多維度的主機(jī)特征信息。
三)通過map方法構(gòu)建存儲特征信息的主機(jī)特征矩陣,所述的主機(jī)特征矩陣采用帶索引的十字鏈表進(jìn)行特征信息存儲;采用score方法評估每個特征對應(yīng)不同主機(jī)的關(guān)聯(lián)度,構(gòu)建用于主機(jī)識別的多維度主機(jī)指紋庫,具體內(nèi)容如下:
1)采用帶索引的十字鏈表進(jìn)行特征信息存儲,包含如下內(nèi)容:定義index數(shù)組,通過bkdr哈希算法對特征信息進(jìn)行哈希計算,哈希值作為index數(shù)組的下標(biāo),對應(yīng)的值為指向主機(jī)特征信息的指針,主機(jī)特征信息項存儲特征信息出現(xiàn)的總次數(shù)且使用雙指針分別指向特征信息出現(xiàn)的主機(jī)項和下一個主機(jī)特征信息項,主機(jī)項存儲特征信息在主機(jī)上出現(xiàn)的次數(shù)并指向下一臺出現(xiàn)該特征信息的主機(jī),直至網(wǎng)絡(luò)數(shù)據(jù)流量數(shù)據(jù)包處理完成沒有新加項。
2)假設(shè)sa代表主機(jī)集合,a是sa中的一臺主機(jī),δ(t,a)表示特征t是否在主機(jī)a出現(xiàn)過,出現(xiàn)為1,未出現(xiàn)則為0,∑a∈saδ(t,a)表示特征t在主機(jī)a下出現(xiàn)過的次數(shù),特征t對應(yīng)主機(jī)x的score值表示為:
對主機(jī)特征矩陣中每一條特征ti分別計算對應(yīng)不同主機(jī)x的score值,當(dāng)score(ti,x)>μ時,則認(rèn)為特征x是主機(jī)的指紋,完成多維度主機(jī)指紋庫的構(gòu)建,其中,μ為預(yù)先設(shè)定閾值。
為驗證本發(fā)明的有效性,下面結(jié)合附圖及具體實例對本發(fā)明做進(jìn)一步解釋說明:
1)高速混雜流量下主機(jī)特征信息提取
該過程的實現(xiàn)如圖4所示,使用零拷貝技術(shù)的數(shù)據(jù)處理主要分為用戶態(tài)和內(nèi)核態(tài)。系統(tǒng)開始執(zhí)行后,首先預(yù)先設(shè)置內(nèi)核,預(yù)留出一部分從指定的起始位置(baseaddress)開始指定大小(memorysize)的物理內(nèi)存,加載內(nèi)核模塊程序,并將參數(shù)baseaddress和memorysize傳遞給內(nèi)核模塊,并完成內(nèi)核緩沖區(qū)管理的初始化,dma模塊初始化,同時指定網(wǎng)絡(luò)接口interface為零拷貝程序使用的網(wǎng)卡,并生成一個設(shè)備文件供用戶程序與內(nèi)核模塊交互信息;用戶態(tài)程序通過讀取上述的設(shè)備文件獲取緩沖區(qū)的總長度,并將之映射到用戶態(tài)程序,同時初始化緩沖區(qū)、數(shù)據(jù)包調(diào)度器等相關(guān)的模塊程序,然后零拷貝開始工作捕獲數(shù)據(jù)包。
為了高效并行地對不同類型的特征信息進(jìn)行提取,采用插件的方式在用戶態(tài)對數(shù)據(jù)進(jìn)行處理。不同插件定義了不同類型特征的識別特征,程序讀取配置文件后即加載相應(yīng)的插件。原始數(shù)據(jù)包到達(dá)指定的網(wǎng)卡interface后,首先過濾掉非配置協(xié)議報文,僅保留配置處理的協(xié)議報文,并將其存儲在系統(tǒng)內(nèi)核預(yù)先分配好的地址空間中,由于該地址空間已經(jīng)與用戶態(tài)程序的存儲空間進(jìn)行了映射,故上層程序調(diào)取數(shù)據(jù)時通過用戶態(tài)緩存區(qū)數(shù)據(jù)管理程序就可以直接調(diào)用數(shù)據(jù)了。然后通過插件里的識別特征對主機(jī)流量進(jìn)行匹配,提取出相應(yīng)類型的主機(jī)特征信息。
2)基于map-score算法的多維度主機(jī)指紋庫構(gòu)建
通過對主機(jī)特征信息的提取得到主機(jī)不同維度條目眾多的主機(jī)特征信息,但是由于應(yīng)用協(xié)議的規(guī)定,在主機(jī)與應(yīng)用程序交互的過程中不同行為攜帶的主機(jī)特征信息不盡相同,進(jìn)而導(dǎo)致主機(jī)特征信息標(biāo)識主機(jī)的強(qiáng)度也不同,標(biāo)識性弱的主機(jī)特征信息會大量頻繁地出現(xiàn)在多臺主機(jī)上,標(biāo)識性強(qiáng)的主機(jī)特征信息則集中出現(xiàn)在少數(shù)的主機(jī)上。而對于一臺主機(jī)來說,在一定時間段內(nèi)主機(jī)軟硬件環(huán)境較為穩(wěn)定,這也就為主機(jī)指紋信息的提取提供了條件,如果能夠找出頻繁出現(xiàn)在一臺主機(jī)上不同維度的主機(jī)特征信息,且該特征極少出現(xiàn)在其他主機(jī)上,則在一定程度上可以說明該主機(jī)特征信息具有較強(qiáng)的主機(jī)識別能力,當(dāng)從不同維度上提取出一臺主機(jī)大量符合上述條件的主機(jī)特征信息后,將其進(jìn)行融合則可以構(gòu)建出主機(jī)指紋庫。
本發(fā)明提出了基于map-score的主機(jī)指紋選擇算法,其作用是對提取到的不同維度主機(jī)特征信息進(jìn)行評估,找出符合多維度主機(jī)指紋模型定義條件的主機(jī)特征信息集合。該算法主要有兩個方法:(1)map方法,用來構(gòu)建機(jī)器能夠計算的主機(jī)特征矩陣。(2)score方法,基于map算法構(gòu)建出的主機(jī)特征矩陣評估每一個特征信息對應(yīng)不同主機(jī)的關(guān)聯(lián)度。
在以太網(wǎng)環(huán)境下,假設(shè)在一定的時間段內(nèi),每一個ip對應(yīng)一臺主機(jī)。對提取到的每一條主機(jī)特征信息通過map算法構(gòu)建如圖5所示主機(jī)特征矩陣,特征矩陣中每一行表示一條特征ti,每一列表示出現(xiàn)過的主機(jī)xi,特征矩陣中map(ti,xi)的值則表示特征ti出現(xiàn)在主機(jī)xi下的次數(shù)。
完整的主機(jī)特征矩陣是一個高維稀疏矩陣,隨著主機(jī)特征信息數(shù)量的增加,數(shù)據(jù)的檢索和匹配會占用大量系統(tǒng)資源,同時如果使用傳統(tǒng)的方式對其存儲會導(dǎo)致大量資源的浪費,而當(dāng)矩陣維度越來越多,數(shù)據(jù)的存儲和提取也將受到影響,為了便于score算法的計算,提高數(shù)據(jù)存取效率,提出通過采用帶索引的十字鏈表進(jìn)行map矩陣的存儲,如圖6所示。首先定義一個index數(shù)組,通過bkdr哈希算法對特征信息進(jìn)行哈希計算,哈希值作為數(shù)組的下標(biāo),而該項的值是一個指針,指向該主機(jī)特征信息,主機(jī)特征信息項存儲著該特征出現(xiàn)的總次數(shù)且使用雙指針分別指向該特征出現(xiàn)的主機(jī)項和下一個特征項,主機(jī)項存儲該特征在該主機(jī)上出現(xiàn)的次數(shù)并指向下一臺出現(xiàn)該特征的主機(jī),以此類推,直到數(shù)據(jù)包處理完成沒有新加項。這種數(shù)據(jù)結(jié)構(gòu)對于稀疏矩陣來說可以極大壓縮其占用的系統(tǒng)空間,同時通過哈希值提高特征檢索的速度,沖突率極低。
從圖5中可以看到,特征“p_info=m1@163.com”全部出現(xiàn)在hosta下,則該特征很有可能成為主機(jī)指紋信息,而特征“mozilla/5.0”雖然出現(xiàn)的次數(shù)很多,但是覆蓋主機(jī)的范圍也很廣,因此該特征成為主機(jī)指紋信息的可能性較低。由此提出score算法的主要思想:a)對于某一臺主機(jī)而言,特征出現(xiàn)在一個主機(jī)流量中的頻率越高且在其他主機(jī)流量中頻率越低則更能代表這臺主機(jī);b)對于一個主機(jī)特征信息而言,出現(xiàn)在不同主機(jī)的數(shù)量越多越不能代表一臺主機(jī)。
因此,假設(shè)sa代表主機(jī)集合,a是sa中的一臺主機(jī),δ(t,a)表示特征t是否在主機(jī)a出現(xiàn)過,出現(xiàn)為1,未出現(xiàn)則為0,∑a∈saδ(t,a)表示特征t在多少臺主機(jī)下出現(xiàn)過的次數(shù),特征t對應(yīng)主機(jī)x的score值表示為:
對主機(jī)特征矩陣中每一條特征ti分別計算對應(yīng)不同主機(jī)x的score值,當(dāng)score(ti,x)>μ時,則認(rèn)為特征x是主機(jī)的指紋,完成多維度主機(jī)指紋庫的構(gòu)建,其中,μ為預(yù)先設(shè)定閾值。
實驗數(shù)據(jù)通過校園網(wǎng)采集了35臺主機(jī)不同時間段的通信數(shù)據(jù)。其中采集30臺主機(jī)1個小時的正常通信流量作為構(gòu)建主機(jī)指紋庫的樣本數(shù)據(jù),對主機(jī)的正常上網(wǎng)行為不做要求。然后在不同的時間段通過校園網(wǎng)再次采集35臺(含樣本集中的30臺主機(jī))主機(jī)30分鐘的正常通信流量作為測試數(shù)據(jù)。樣本集外的5臺主機(jī)數(shù)據(jù)作為噪音數(shù)據(jù)。由于校園網(wǎng)采用dhcp服務(wù)為主機(jī)分配ip地址,因此在測試集中有10臺主機(jī)的ip與樣本集中的ip不同。具體使用數(shù)據(jù)集如圖7所示。
通過多維主機(jī)指紋模型對樣本集中30臺主機(jī)流量進(jìn)行多維度主機(jī)指紋庫構(gòu)建,設(shè)置μ=1,即通過map-score提取的每一條主機(jī)特征信息都是主機(jī)指紋信息,構(gòu)建得到2個單維度主機(jī)指紋庫和一個多維度主機(jī)指紋庫,然后分別采用單維度主機(jī)軟件環(huán)境指紋、單維度主機(jī)網(wǎng)絡(luò)行為指紋和多維度主機(jī)指紋進(jìn)行實驗,計算識別主機(jī)的準(zhǔn)確率和召回率。假設(shè)p表示主機(jī)識別率,r表示主機(jī)召回率,計算公式如下:
實驗結(jié)果如圖8、9所示,圖8中:a為單維度主機(jī)軟件環(huán)境指紋主機(jī)識別結(jié)果,b為單維度主機(jī)網(wǎng)絡(luò)行為指紋主機(jī)識別結(jié)果。從實驗結(jié)果可以看出多維主機(jī)指紋庫在識別主機(jī)準(zhǔn)確率和召回率上相比單維度主機(jī)指紋識別都有近9%的提升,主機(jī)軟件環(huán)境指紋和主機(jī)網(wǎng)絡(luò)行為指紋在識別主機(jī)的過程中可以相互補充,彌補由于單維度指紋獲取不到導(dǎo)致的無法識別主機(jī)的情況。同時在測試集中有10臺主機(jī)的ip與樣本集中使用的ip不同,測試結(jié)果均正確識別,說明多維主機(jī)指紋庫在對主機(jī)識別時可以容忍主機(jī)ip地址發(fā)生變化。在保證采集的主機(jī)通信流量完整的情況下,主機(jī)指紋模型具有良好的健壯性和可靠性。實際上可以效解決現(xiàn)有技術(shù)中由于獲取特征不全導(dǎo)致主機(jī)識別率低的問題。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。