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