一、摘要
測繪最早來源于地理空間地圖的繪制,主要研究測定和推算地面幾何位置,、地球形狀及地球重力場,據(jù)此測量地球表面自然物體和人工設(shè)施的幾何分布,,編制各種比例尺地圖的理論和技術(shù)的學(xué)科(維基百科)。
網(wǎng)絡(luò)空間測繪和地理信息測繪的技術(shù)路線類似,,“測”是對網(wǎng)絡(luò)空間內(nèi)一切可獲得數(shù)據(jù)的測量機(jī)制的建立,,偏向于實現(xiàn)掃描和探測的工程問題,;“繪”則是根據(jù)對網(wǎng)絡(luò)空間測量數(shù)據(jù)關(guān)聯(lián)到地理空間繪制成圖,更傾向于對數(shù)據(jù)的分析和研究,。這兩部分工作重要程度不分伯仲,,但目前從行業(yè)整體情況來看,更多的是在網(wǎng)絡(luò)空間掃描,,也就是“測”的部分做主要投入,,而對掃描測繪數(shù)據(jù)的分析和研究相對較少。數(shù)據(jù)放在那就只是數(shù)據(jù),,只有將生米煮成熟飯,,才能發(fā)揮其真正的價值。
所以我們會持續(xù)更新一個研究專題,,主要介紹一些在網(wǎng)絡(luò)空間測繪數(shù)據(jù)分析方面的研究關(guān)注點和方法,,旨在還原真實網(wǎng)絡(luò)空間全貌,繪制出更有效的地圖指導(dǎo)作戰(zhàn),。接下來將介紹該系列的第一篇文章,,網(wǎng)絡(luò)空間數(shù)據(jù)繪制專題——資產(chǎn)地址動態(tài)變化研究。
二,、網(wǎng)絡(luò)資產(chǎn)測繪
必須掌握動態(tài)變化
相比于地理信息測繪,,網(wǎng)絡(luò)空間測繪存在一些特殊之處。首先從數(shù)據(jù)維度來講,,地理空間的測繪數(shù)據(jù)是三維的(經(jīng)度,、緯度、海拔)且連續(xù),,而網(wǎng)絡(luò)空間中將IP地址轉(zhuǎn)化為長整形后,地址數(shù)據(jù)是一維的,,并且每個點都是獨(dú)立存在并不連續(xù),。此外,二者還有一個最大的不同之處就是變化頻率,,地理信息測繪數(shù)據(jù)一般變化較慢,,而且因為是連續(xù)的,所以變化趨勢相對好預(yù)測,,比如珠穆朗瑪峰的每年都會以一定的高度在增長,,但正常情況下一般不會突然升高或下降幾十米。
而網(wǎng)絡(luò)空間測繪數(shù)據(jù)則不同,,絕大多數(shù)的IP地址處于變化是常態(tài),。比如存活情況、開放服務(wù),、ASN,、地理信息,、地址所有者等等維度都是處在動態(tài)變化中,并且因為網(wǎng)絡(luò)地址都是離散分布的個體,,變化趨勢也就更難預(yù)測,。但想要描繪出網(wǎng)絡(luò)空間真實面貌,就必須對網(wǎng)絡(luò)地址的變化情況進(jìn)行深入研究,。
互聯(lián)網(wǎng)資產(chǎn)發(fā)現(xiàn)與識別是資產(chǎn)畫像繪制和風(fēng)險分析的必要前提,,面對多變的網(wǎng)絡(luò)環(huán)境,如何進(jìn)行資產(chǎn)動態(tài)追蹤是目前亟待解決的問題之一?,F(xiàn)有方法在執(zhí)行互聯(lián)網(wǎng)資產(chǎn)變化監(jiān)控時,,大多僅基于端口、組件,、服務(wù)等要素關(guān)注資產(chǎn)數(shù)量上的統(tǒng)計情況,,忽視了對于具體網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)的變化標(biāo)記。為填補(bǔ)上述空白,,我們提出了一種用于資產(chǎn)變化識別的新方法,,使用該方法,我們可以動態(tài)地識別出固定網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)是否發(fā)生了改變,,有助于掃描策略優(yōu)化,、威脅跟蹤等多種安全場景。此外,,本文還基于對變化資產(chǎn)的監(jiān)控與分析,,提出了一種加速新出現(xiàn)資產(chǎn)指紋標(biāo)記的策略。
通過對互聯(lián)網(wǎng)上暴露資產(chǎn)的長期跟蹤,,我們發(fā)現(xiàn)每輪資產(chǎn)掃描得到的網(wǎng)絡(luò)地址池始終處于動態(tài)變化當(dāng)中,,這意味著當(dāng)新一輪掃描結(jié)果到來時,過去的資產(chǎn)標(biāo)簽可能已經(jīng)失效,。在這種情況下,,現(xiàn)有暴露的資產(chǎn)數(shù)量將不能體現(xiàn)真實的暴露資產(chǎn)規(guī)模,而且過時的資產(chǎn)標(biāo)簽會混淆威脅狩獵的溯源,。
進(jìn)一步,,正是由于網(wǎng)絡(luò)資產(chǎn)和地址對應(yīng)的不確定性,每一輪掃描中可能會存在初次被發(fā)現(xiàn)的資產(chǎn)設(shè)備類型,,如果能及時篩選出這部分資產(chǎn),,就能及時對其進(jìn)行指紋標(biāo)記,有助于后續(xù)威脅發(fā)現(xiàn)與分析工作的展開,。
因此,,為解決上述問題,我們提出了一種監(jiān)控網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)變化的新方法,,該方法能夠?qū)W(wǎng)絡(luò)地址動態(tài)變化的資產(chǎn)進(jìn)行標(biāo)定,,在用戶搜索某網(wǎng)絡(luò)地址信息時,,就能告知其在當(dāng)前時間節(jié)點,該網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)標(biāo)簽相較過去時間是否已經(jīng)發(fā)生了變化,,從而降低試錯成本,,提高威脅分析的精準(zhǔn)度;此外,,我們還在每一輪掃描中篩選出全部可能的新出現(xiàn)資產(chǎn),,使用聚類算法將這些資產(chǎn)劃分為不同的簇,方便后續(xù)利用專家知識從每個類簇中提取資產(chǎn)指紋信息,。
三,、識別變化的新方法
綜合考慮目前現(xiàn)有的資產(chǎn)識別方法,我們設(shè)計出多種監(jiān)控網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)變化情況的方案,,這些方案的目的是盡可能可靠的判斷出多輪掃描后,,相同的網(wǎng)絡(luò)地址是否還對應(yīng)同一個資產(chǎn)。本節(jié)將對這些方法進(jìn)行簡要說明,,并通過實驗,,對比各方法在不同使用場景下的優(yōu)劣。
3.1Banner字符串匹配方法
方案一采用資產(chǎn)banner信息進(jìn)行比對,。Banner是目標(biāo)設(shè)備給訪問者的響應(yīng)通告信息,,在掃描過程中,與設(shè)備建立完整的網(wǎng)絡(luò)連接后,,我們可以獲取到目標(biāo)系統(tǒng)的banner信息,,其中可能會包含一些標(biāo)識身份的敏感內(nèi)容,包括軟件開發(fā)商,、軟件名稱,、服務(wù)類型、版本號等等,。因此,,我們考慮能否將最新一輪資產(chǎn)的banner信息與之前最近一輪該地址對應(yīng)資產(chǎn)的banner進(jìn)行字符串匹配,計算兩段banner字符串的編輯距離,,進(jìn)而通過距離大小來判斷相似度,,一旦兩者文本相似性小于閾值,,則認(rèn)為該網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)未發(fā)生變化,。
實驗發(fā)現(xiàn)該方法在banner較長的情況下比較效率低,banner長度的統(tǒng)計結(jié)果如圖1所示,,按空白符分詞后,,大于100個詞的banner主要屬于http/https協(xié)議。我們發(fā)現(xiàn),,以443端口為例,,該端口下資產(chǎn)banner長度為均值300時比較耗時約為32s,,資產(chǎn)總數(shù)約為396萬,比較總時間遠(yuǎn)大于掃描周期(5天),,無法做到針對每一輪數(shù)據(jù)動態(tài)更新資產(chǎn)狀態(tài),。
圖1.各端口掃描資產(chǎn)banner長度均值
3.2基于Simhash的部分banner匹配方法
由方案一,我們進(jìn)一步改進(jìn)得到方案二,,采用Simhash算法對高維特征向量先進(jìn)行降維,,再比較得到的哈希值的距離。傳統(tǒng)hash算法通??梢杂糜趯σ欢挝谋旧芍讣y,,但如果輸入信息一旦發(fā)生輕微的變化,對應(yīng)的hash值就會有很大的改變,。在資產(chǎn)變化識別場景下,,相同資產(chǎn)的banner信息在多輪掃描中很有可能局部發(fā)生改變,比如其中的時間項,、動態(tài)序列號等,。因此,我們需要hash值的相似程度能直接反映輸入內(nèi)容的相似程度,。Simhash是Google提出用于海量網(wǎng)頁去重的一種敏感hash算法,,該算法將單個文本轉(zhuǎn)換成一個定長的特征字,通過判斷兩特征字間的距離是不是小于指定閾值從而判斷兩個文本是否相似,。這里,,我們將該算法用于判定資產(chǎn)變化情況,能夠降低比較的時間復(fù)雜度,,同樣選取300詞長度的banner字符串進(jìn)行比較,,計算其simhash后求歐氏距離的時間花費(fèi)下降為0.0053s。
圖2.基于simhash的資產(chǎn)變化識別
該方案整體流程如圖2所示,。首先,,基于先前對于banner長度的統(tǒng)計,我們可知HTTP/HTTPs協(xié)議的banner整體長度過長,,影響比對效率,。因此,我們根據(jù)html語法,,僅截取這些協(xié)議響應(yīng)包中的部分信息,,經(jīng)綜合考慮,最終選定包中“<body>”前的內(nèi)容,,這部分內(nèi)容既包含了響應(yīng)頭又留有標(biāo)題,、元數(shù)據(jù)和url等重要資產(chǎn)信息,能很大程度上區(qū)分不同資產(chǎn),;同時該段內(nèi)容長度適中,,如圖3所示,,約有95%的資產(chǎn)該部分特征詞個數(shù)小于100,基本能滿足系統(tǒng)對于分析效率的要求,。
圖3.“<body>”前banner特征詞個數(shù)分布
下一步對抽取的banner信息進(jìn)行缺失值處理和清洗操作,,去除banner中所有的html標(biāo)簽和空白字符,同時將所有日期等已知影響判斷的文本片段刪除,。之后,,使用Simhash算法將該段banner信息映射為定長的64位二進(jìn)制編碼,采用隨機(jī)超平面的離散化方法完成了文本的低維度表示,;最后,,選用了歐式距離用于度量兩資產(chǎn)hash碼的相似程度,一旦距離小于給定閾值,,則認(rèn)為兩輪掃描的網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)未發(fā)生變化,,我們在已有具有相同資產(chǎn)標(biāo)記的數(shù)據(jù)集上進(jìn)行閾值選取。除了用于判斷網(wǎng)絡(luò)地址對應(yīng)資產(chǎn)變化情況外,,計算得到的資產(chǎn)hash碼還可用于后續(xù)反向追蹤資產(chǎn)對應(yīng)網(wǎng)絡(luò)地址的變化路徑,。
四、做標(biāo)記
本節(jié)利用上一節(jié)提出的相同資產(chǎn)判別方案,,為每一輪掃描得到的暴露資產(chǎn)添加變化情況標(biāo)記,,該標(biāo)記有利于掃描策略優(yōu)化、威脅跟蹤等多種安全應(yīng)用,。
4.1標(biāo)記流程
我們將網(wǎng)絡(luò)地址資產(chǎn)變化情況分為四種,,分別為:new、changed,、unchanged和stable,,每輪掃描中,每個網(wǎng)絡(luò)地址的資產(chǎn)變化情況都會屬于四者之一,。
new:代表該網(wǎng)絡(luò)地址從未在歷史的掃描中出現(xiàn),,暫將其代表的資產(chǎn)視為新增資產(chǎn)。
changed:代表該網(wǎng)絡(luò)地址曾在歷史的掃描中出現(xiàn),,并且利用上一節(jié)中方法判斷,,其對應(yīng)的資產(chǎn)和前一次發(fā)現(xiàn)時相比發(fā)生了變化。
unchanged:代表該網(wǎng)絡(luò)地址曾在歷史的掃描中出現(xiàn),,并且利用基于Simhash的部分banner匹配方法,,能判定其對應(yīng)的資產(chǎn)和前一次發(fā)現(xiàn)時相比未發(fā)生改變。
stable:一旦某個網(wǎng)絡(luò)地址資產(chǎn)變化標(biāo)記為changed的次數(shù)大于設(shè)定的閾值,,就將其標(biāo)記為stable,,表示比較長的一段時間內(nèi)網(wǎng)絡(luò)地址從未發(fā)生過變化的資產(chǎn),。同時對于每種協(xié)議,,維護(hù)一個stable庫,。各狀態(tài)間的轉(zhuǎn)換關(guān)系如圖4所示。
圖4.資產(chǎn)狀態(tài)轉(zhuǎn)換圖
4.2具體應(yīng)用
資產(chǎn)變化標(biāo)記有助于提高威脅溯源準(zhǔn)確性,,一旦有分析人員溯源追蹤到某個網(wǎng)絡(luò)地址,,我們的標(biāo)記可以幫助其判斷該網(wǎng)絡(luò)地址對應(yīng)的資產(chǎn)在指定時間區(qū)間內(nèi)是否發(fā)生過變化,若發(fā)生過變化,,我們會提供目標(biāo)資產(chǎn)網(wǎng)絡(luò)地址變化的可能集合,,幫助分析人員重新溯源目標(biāo),提升溯源的效率和準(zhǔn)確率,。此外,,每輪的資產(chǎn)變化統(tǒng)計還可幫助地址掃描策略的優(yōu)化。某網(wǎng)絡(luò)地址一旦被標(biāo)記為stable,,那么在之后的多輪(可自定義輪數(shù))中,,我們將不對該地址進(jìn)行掃描,從而節(jié)約掃描帶寬和掃描節(jié)點投入,,減少掃描節(jié)點被識別為惡意應(yīng)用的可能,,維護(hù)一個持續(xù)穩(wěn)定的掃描地址池。
五,、發(fā)現(xiàn)新出現(xiàn)資產(chǎn)
在收集到的大量的banner響應(yīng)信息中,,我們發(fā)現(xiàn)相同設(shè)備類別的資產(chǎn)往往在響應(yīng)報文的結(jié)構(gòu)和內(nèi)容上具備很高的語義相似性,不同設(shè)別類別的資產(chǎn)則差別較大,,如圖5所示,,上方兩個被標(biāo)識為dahua camera的資產(chǎn)banner信息和下方Axis Camera有明顯區(qū)別。
圖5.不同資產(chǎn)類別的banner響應(yīng)信息
由上一節(jié)的資產(chǎn)變化判定邏輯可知,,每輪掃描中變化情況為new和changed的資產(chǎn)很有可能屬于之前從未出現(xiàn)過的資產(chǎn)類別,,即新增資產(chǎn)。如果能將這些banner信息進(jìn)行相似整合,, 有助于對新出現(xiàn)的資產(chǎn)類型進(jìn)行標(biāo)注,,從而描繪出網(wǎng)絡(luò)空間新增資產(chǎn)態(tài)勢。
根據(jù)協(xié)議我們將所有待標(biāo)記的新增資產(chǎn)分為MQTT,、UPnP,、onvif、Dahua-DVR,、FTP,、SSH、Telnet,、SIP,、RTSP、HTTP十類,分別對每種協(xié)議的新增資產(chǎn)進(jìn)行無監(jiān)督聚類,,就能得到協(xié)議內(nèi)部的新增資產(chǎn)分布情況,。具體來說,首先提取出新增資產(chǎn)對應(yīng)的banner后,,將其中不包含資產(chǎn)設(shè)備信息的條目過濾掉,,比如非定制化的普通404、503等錯誤響應(yīng),。由于多種資產(chǎn)設(shè)備在這些情況下banner響應(yīng)信息可能相同,,這就會影響資產(chǎn)聚類的準(zhǔn)確性。下一步需要對過濾后剩余banner信息進(jìn)行向量化處理,,這里采用了目前常用的文本向量化加權(quán)技術(shù)TF-IDF,;最后通過用于數(shù)據(jù)降維的PCA算法,提取數(shù)據(jù)的主要特征分量,,降維后的向量就用來作為資產(chǎn)聚類的輸入,。
目前常用的聚類算法包括基于距離的K-Means算法,基于層次劃分的Hierarchical算法,,基于密度的DBSCAN等多種,。由于每種協(xié)議都需要進(jìn)行參數(shù)的動態(tài)調(diào)整,綜合考慮新增資產(chǎn)的數(shù)量級以及時間開銷,,我們選用KMeans算法進(jìn)行資產(chǎn)聚類,。
KMeans算法的基本思想是以空間中k個點為中心進(jìn)行聚類,對最靠近它們的對象歸類,,通過迭代的方法,,逐次更新各聚類中心的值,直至收斂或到達(dá)中止條件,。
聚類后使用輪廓系數(shù)(Silhouette coefficient)對無監(jiān)督聚類效果進(jìn)行評價,,以針對http協(xié)議下8000端口的新增資產(chǎn)聚類結(jié)果為例,圖6所示是輪廓系數(shù)最接近1時(≈0.87)的聚類效果,,明顯看出,,經(jīng)過聚類之后,我們確實能夠得到新增資產(chǎn)中各個可能資產(chǎn)類別的聚類簇,,該聚類結(jié)果能夠用于后續(xù)指紋提取以及人工標(biāo)記,,加速了新出現(xiàn)的設(shè)備的發(fā)現(xiàn)進(jìn)程。
六,、總結(jié)
本文基于對暴露資產(chǎn)的網(wǎng)絡(luò)地址變化的分析,,提出了一種基于banner信息比對的資產(chǎn)變化識別方法。使用該方法,,我們在搜索引擎中增加了地址對應(yīng)資產(chǎn)變化情況這一標(biāo)記維度,,能夠幫助分析人員提升溯源準(zhǔn)確度,同時也能用于優(yōu)化引擎的地址掃描策略。此外,,我們將聚類算法應(yīng)用于識別每輪掃描中新出現(xiàn)的資產(chǎn)設(shè)備,,提升后續(xù)指紋的提取效率。