文/肖子彤
隨著信息技術(shù)的不斷發(fā)展,越來(lái)越多的聯(lián)網(wǎng)設(shè)備接入互聯(lián)網(wǎng),為用戶提供更快捷的訪問(wèn)。然而,在這海量連接入網(wǎng)設(shè)備所構(gòu)成的全球互聯(lián)網(wǎng)中,越來(lái)越多的安全問(wèn)題被暴露出來(lái)。由于制造商安全觀念缺乏、管理者安全意識(shí)不足,大量聯(lián)網(wǎng)設(shè)備都存在或多或少的安全漏洞,威脅著整個(gè)互聯(lián)網(wǎng)的安全。IPv6協(xié)議所帶來(lái)的巨大地址空間將使下一代互聯(lián)網(wǎng)的規(guī)模更大,接入網(wǎng)絡(luò)的終端種類(lèi)和數(shù)量更多,網(wǎng)絡(luò)應(yīng)用更廣泛。而原本發(fā)展已經(jīng)非常迅速的物聯(lián)網(wǎng),在下一代互聯(lián)網(wǎng)的推動(dòng)下,也會(huì)迎來(lái)更加迅猛的發(fā)展。與之相伴的則是海量聯(lián)網(wǎng)設(shè)備的特征數(shù)據(jù),其中必然包含了大量遠(yuǎn)程訪問(wèn)信息,尚待挖掘。
本文提出一套同時(shí)支持IPv4和IPv6的下一代互聯(lián)網(wǎng)聯(lián)網(wǎng)設(shè)備基礎(chǔ)數(shù)據(jù)服務(wù)平臺(tái)的設(shè)計(jì)方案,可做到通過(guò)對(duì)所有接入互聯(lián)網(wǎng)的設(shè)備進(jìn)行深度掃描,大規(guī)模收集網(wǎng)絡(luò)基準(zhǔn)數(shù)據(jù),包括多種網(wǎng)絡(luò)應(yīng)用相關(guān)信息、網(wǎng)站內(nèi)容等,并進(jìn)行深度分析和挖掘,感知整個(gè)互聯(lián)網(wǎng)的網(wǎng)絡(luò)安全態(tài)勢(shì),提供從宏觀到微觀的全方位數(shù)據(jù)支持。
IPv6( 全 稱(chēng) 為“Internet Protocol version 6”)是最新版IP協(xié)議,作用于網(wǎng)絡(luò)層。其目的是取代IPv4以解決IPv4存在的地址匱乏問(wèn)題,并對(duì)IPv4其他方面存在的不足進(jìn)行改進(jìn)。
具體而言,和IPv4相比,IPv6的改進(jìn)包括報(bào)頭處理更加簡(jiǎn)化、擴(kuò)展更加靈活、地址結(jié)構(gòu)更加層次化、支持無(wú)狀態(tài)自動(dòng)配置、支持綜合Qos服務(wù)、安全性更佳以及實(shí)現(xiàn)IP的移動(dòng)性等等。
隨著IPv6在全球范圍內(nèi)不斷推廣,對(duì)IPv6網(wǎng)絡(luò)中安全問(wèn)題的發(fā)現(xiàn)和安全技術(shù)的研究也越來(lái)越受到重視。如面向IPv6的網(wǎng)絡(luò)安全評(píng)估技術(shù)和面向IPv6的入侵檢測(cè)技術(shù)等方面,都已有一系列研究。此外在IPv6網(wǎng)絡(luò)中,快速掃描和探測(cè)海量網(wǎng)絡(luò)節(jié)點(diǎn)的基本信息以及可能存在的安全問(wèn)題,也同樣是一個(gè)需要研究的重要課題。
端口掃描技術(shù)是一種利用互聯(lián)網(wǎng)協(xié)議的特性,探測(cè)主機(jī)的特定端口是否開(kāi)放和運(yùn)行網(wǎng)絡(luò)服務(wù)的技術(shù),通常是檢測(cè)系統(tǒng)漏洞時(shí)必須進(jìn)行的第一步工作。而根據(jù)掃描方法的不同,該技術(shù)可分為全開(kāi)式掃描、半開(kāi)式掃描、隱密掃描等類(lèi)別。
其中半開(kāi)式掃描是目前最常用的掃描方法,主流的端口掃描工具如Nmap、Zmap等默認(rèn)的掃描方式都是半開(kāi)式掃描。這里“半開(kāi)式”是指客戶端在TCP三次握手還未完成時(shí)就發(fā)送RST包中止連接。這種掃描往往不會(huì)被服務(wù)器記錄,隱蔽性較好,而且無(wú)需保存服務(wù)器狀態(tài),掃描速度較快。但是該掃描方式可能被特意針對(duì)本方法進(jìn)行防御的入侵檢測(cè)系統(tǒng)所攔截。
對(duì)于端口掃描,目前已有的開(kāi)源工具zmap通過(guò)半開(kāi)式TCP端口掃描可快速完成全網(wǎng)特定端口的開(kāi)放性掃描。由于zmap對(duì)一個(gè)IP只發(fā)送一個(gè)包進(jìn)行探測(cè),能夠以超過(guò)nmap 近千倍的速度掃描全網(wǎng)絡(luò)IPv4地址。它在千兆網(wǎng)卡狀態(tài)下完成全網(wǎng)IPv4地址掃描僅需45分鐘。因此對(duì)IPv4地址的端口掃描通過(guò)引入zmap并對(duì)其進(jìn)行封裝和輸出的自動(dòng)化解析而完成。zmap對(duì)IPv6的端口掃描需參考相關(guān)掃描原理手動(dòng)實(shí)現(xiàn),通過(guò)嘗試連接IPv6節(jié)點(diǎn)的指定端口判斷其是否開(kāi)放。
在確認(rèn)一個(gè)端口處于開(kāi)放狀態(tài)后,還需要確認(rèn)該端口關(guān)聯(lián)的網(wǎng)絡(luò)服務(wù)類(lèi)別,zmap關(guān)注的是掃描速度,并不具備識(shí)別復(fù)雜服務(wù)類(lèi)型的功能。而這可由開(kāi)源工具nmap完成。nmap經(jīng)多年發(fā)展維護(hù),擁有成熟且豐富的服務(wù)識(shí)別指紋庫(kù),可對(duì)多種網(wǎng)絡(luò)服務(wù)進(jìn)行較為準(zhǔn)確的版本識(shí)別,功能極為強(qiáng)大。并且nmap支持IPv6,故初步服務(wù)識(shí)別可完全由nmap完成。
端口掃描與初步服務(wù)識(shí)別作為后續(xù)所有工作的基礎(chǔ),必須做到高效完成。而為提升開(kāi)發(fā)效率和避免重復(fù)工作,可根據(jù)zmap和nmap二者各自的特點(diǎn)各盡其長(zhǎng),結(jié)合使用,完成掃描任務(wù)。
由于各類(lèi)網(wǎng)絡(luò)服務(wù)根據(jù)其功能的差異,皆具備不同的指紋特征,因此為了能夠充分滿足對(duì)各類(lèi)服務(wù)特定特征的探測(cè)需求,并考慮功能的可擴(kuò)展性,我們對(duì)所要掃描的各類(lèi)服務(wù)逐一編寫(xiě)定制化探測(cè)腳本,根據(jù)需求確定需掃描的特征。探測(cè)腳本需結(jié)合已知協(xié)議細(xì)節(jié)、技術(shù)知識(shí)和交互流量數(shù)據(jù)對(duì)所針對(duì)的網(wǎng)絡(luò)服務(wù)的應(yīng)用指紋特征進(jìn)行分析,以獲得具有豐富價(jià)值的數(shù)據(jù)。
在各類(lèi)服務(wù)中,HTTP服務(wù)尤其需要重點(diǎn)分析,如利用爬蟲(chóng)抓取網(wǎng)頁(yè)內(nèi)容,運(yùn)用正則表達(dá)式匹配等手段尋找標(biāo)志性關(guān)鍵詞,從而分析其所用到的Web組件和網(wǎng)站運(yùn)營(yíng)信息等等。因?yàn)閃eb服務(wù)在互聯(lián)網(wǎng)各類(lèi)服務(wù)中所占比例極大,且使用極為頻繁,也最容易因存在漏洞而遭受攻擊;所以收集其特征意義重大,如識(shí)別各網(wǎng)站所使用的Web組件類(lèi)型和版本有利于了解其是否存在漏洞,進(jìn)而更好地把握整個(gè)互聯(lián)網(wǎng)的安全形勢(shì)。此外,從網(wǎng)站主頁(yè)內(nèi)容等數(shù)據(jù)中也可挖掘出與互聯(lián)網(wǎng)發(fā)展動(dòng)態(tài)和趨勢(shì)等相關(guān)的有價(jià)值的信息,故需通過(guò)較為完備的Web組件指紋庫(kù)對(duì)Web服務(wù)進(jìn)行分析,盡可能多地獲取其特征信息。
由于數(shù)據(jù)搜集和處理量大,掃描和探測(cè)過(guò)程采用分布式架構(gòu)完成。對(duì)于十億量級(jí)IP節(jié)點(diǎn)的掃描和探測(cè)等任務(wù),若采用傳統(tǒng)集中式系統(tǒng),那么中心主機(jī)資源緊張和響應(yīng)瓶頸的缺陷將會(huì)顯著降低工作效率;而利用分布式使得數(shù)據(jù)和程序不位于一臺(tái)服務(wù)器上,而是分散到多個(gè)節(jié)點(diǎn)服務(wù)器上來(lái)完成任務(wù),把不同的進(jìn)程放在最適合的服務(wù)器上完成。具體而言,這里的分布式架構(gòu)包括一個(gè)master服務(wù)器和多個(gè)worker服務(wù)器。master服務(wù)器根據(jù)探測(cè)對(duì)象IP和端口的不同,快速生成端口掃描、初步應(yīng)用識(shí)別、深度指紋探測(cè)等多個(gè)任務(wù)并放入數(shù)據(jù)庫(kù)中,等待worker領(lǐng)取和完成。worker服務(wù)器通過(guò)與master通信從數(shù)據(jù)庫(kù)中獲取任務(wù),并在本地完成任務(wù)后將收集到的數(shù)據(jù)返回給master,存入其數(shù)據(jù)庫(kù)中。由于每個(gè)掃描任務(wù)需要的時(shí)間皆較長(zhǎng),因此單個(gè)master服務(wù)器不會(huì)成為系統(tǒng)瓶頸。
通過(guò)分布式計(jì)算在多臺(tái)服務(wù)器上平衡負(fù)載,有利于任務(wù)的分配和優(yōu)化,提高工作效率。通過(guò)合理的架構(gòu)設(shè)置和調(diào)度邏輯,在時(shí)間和空間上保證對(duì)各計(jì)算節(jié)點(diǎn)的充分利用,高效完成任務(wù);且為便于管理分布式架構(gòu)的工作狀況,還實(shí)現(xiàn)了Web界面用于查看各工作節(jié)點(diǎn)的掃描日志。
在掃描和探測(cè)的過(guò)程中,由于不同IP節(jié)點(diǎn)所提供的網(wǎng)絡(luò)服務(wù)類(lèi)型差異,所得到的數(shù)據(jù)類(lèi)型也會(huì)存在較大差異。而常用的關(guān)系型數(shù)據(jù)庫(kù)是在表中存儲(chǔ)相關(guān)聯(lián)的數(shù)據(jù),因此擴(kuò)展性也較差,對(duì)于處理非結(jié)構(gòu)化數(shù)據(jù)顯得力不從心。測(cè)試在利用分表分庫(kù)緩解讀寫(xiě)壓力和數(shù)據(jù)增長(zhǎng)的擴(kuò)展問(wèn)題上,也表現(xiàn)得不盡人意,故不適用于本應(yīng)用場(chǎng)景。
非關(guān)系型數(shù)據(jù)庫(kù)將相關(guān)聯(lián)的數(shù)據(jù)以類(lèi)似JSON格式的“key-value”格式存儲(chǔ)。數(shù)據(jù)之間無(wú)關(guān)系使它易于擴(kuò)展,簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)使它即使在大數(shù)據(jù)量下讀寫(xiě)性能依然很高,并且靈活的數(shù)據(jù)模型使得對(duì)海量數(shù)據(jù)的維護(hù)變得簡(jiǎn)單易行。而服務(wù)平臺(tái)中所要處理的海量數(shù)據(jù)來(lái)源極為廣泛,對(duì)于不同類(lèi)型的服務(wù)其基本信息千差萬(wàn)別,一個(gè)網(wǎng)站可以提供從Web組件到運(yùn)營(yíng)信息等豐富的數(shù)據(jù),而從一個(gè)SSH服務(wù)上可獲得的信息則極為有限,它們難以統(tǒng)一整理為結(jié)構(gòu)化數(shù)據(jù)。因此本平臺(tái)選擇使用更適合處理大量非結(jié)構(gòu)化數(shù)據(jù)的非關(guān)系型數(shù)據(jù)庫(kù)。
測(cè)試中平臺(tái)運(yùn)行所需的Web服務(wù)器、掃描服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器均運(yùn)行于Ubuntu 16.04系統(tǒng)中,依賴的應(yīng)用軟件包括zmap、nmap、python、MongoDB和rabbitmq-server等。硬件環(huán)境包括四核Intel處理器、8GB內(nèi)存等。
如前所述,本平臺(tái)中數(shù)據(jù)均以非關(guān)系型數(shù)據(jù)格式存儲(chǔ),如圖1所示,為數(shù)據(jù)庫(kù)中SSH服務(wù)深度探測(cè)所得的部分結(jié)果。

圖1 ssh服務(wù)深度探測(cè)結(jié)果
在開(kāi)發(fā)的Web頁(yè)面中可便捷查詢到探測(cè)結(jié)果,如圖2和圖3所示。

圖2 搜索界面

圖3 數(shù)據(jù)展示界面
本文提出了一個(gè)對(duì)聯(lián)網(wǎng)設(shè)備基礎(chǔ)數(shù)據(jù)進(jìn)行掃描探測(cè)與整合管理,且支持IPv6地址掃描的數(shù)據(jù)服務(wù)平臺(tái)的設(shè)計(jì)方案。該數(shù)據(jù)服務(wù)平臺(tái)基于擴(kuò)展性良好的分布式框架,具備對(duì)十億量級(jí)地址空間進(jìn)行快速探索的能力;可深度探測(cè)不低于十種常見(jiàn)網(wǎng)絡(luò)服務(wù)的指紋特征;具備探測(cè)百萬(wàn)量級(jí)網(wǎng)站的能力,且具有可擴(kuò)展性;提供XML和json格式的數(shù)據(jù)接口供第三方調(diào)用。
本平臺(tái)有待改進(jìn)的地方主要在于支持深度探測(cè)的網(wǎng)絡(luò)服務(wù)種類(lèi)還不夠全面,分布式架構(gòu)的運(yùn)行效率有待提升,可供用戶檢索的Web界面的可視化方面有待完善。未來(lái)可展開(kāi)的下一步工作包括可增加深度指紋探測(cè)腳本以求覆蓋更多的常見(jiàn)網(wǎng)絡(luò)服務(wù);根據(jù)各項(xiàng)掃描任務(wù)相互間依賴關(guān)系對(duì)分布式架構(gòu)中的任務(wù)調(diào)度進(jìn)行隊(duì)列優(yōu)化,以提升其效率;在Web界面中,當(dāng)用戶一次性檢索大量數(shù)據(jù)時(shí),用圖表等可視化形式更加直觀地展現(xiàn)檢索結(jié)果,以期有助于對(duì)入網(wǎng)設(shè)備基礎(chǔ)數(shù)據(jù)進(jìn)行分析和挖掘等等。