邵 磊,余 曉,吳劍章
(1.東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210096;2.東南大學(xué) 繼續(xù)教育學(xué)院,江蘇 南京 210096)
網(wǎng)絡(luò)資產(chǎn)探測(cè)的目的是探測(cè)目標(biāo)范圍內(nèi)在線的主機(jī)及其開(kāi)放的端口、服務(wù)、操作系統(tǒng)等信息。掌握資產(chǎn)信息是進(jìn)行網(wǎng)絡(luò)資產(chǎn)全生命周期管理的前提,結(jié)合資產(chǎn)標(biāo)識(shí)技術(shù)可以追蹤任何一個(gè)網(wǎng)絡(luò)資產(chǎn)的在線情況、版本信息,為更新版本、下線不再使用的資產(chǎn)等管理工作提供信息基礎(chǔ)。還可以結(jié)合最新的漏洞信息,更好地保護(hù)面臨威脅的網(wǎng)絡(luò)資產(chǎn),避免被不法分子利用而造成財(cái)產(chǎn)損失。
網(wǎng)絡(luò)資產(chǎn)可以定義為具有網(wǎng)絡(luò)連接的任何對(duì)于企業(yè)、高校等組織具有價(jià)值的資源。網(wǎng)絡(luò)資產(chǎn)主要可以分類為硬件和軟件,硬件包含各種通信、計(jì)算、存儲(chǔ)類等設(shè)備;軟件主要是指運(yùn)行在硬件上的各類服務(wù),例如Web服務(wù)、數(shù)據(jù)庫(kù)、操作系統(tǒng)等。
網(wǎng)絡(luò)資產(chǎn)探測(cè)方法可以分類為:主動(dòng)探測(cè)、被動(dòng)探測(cè)和基于安全搜索引擎探測(cè)[1]。本文根據(jù)各類方法所需要使用的相關(guān)技術(shù),從技術(shù)角度分類為掃描識(shí)別技術(shù)、性能優(yōu)化技術(shù)、隱蔽掃描技術(shù)和機(jī)器學(xué)習(xí)技術(shù)。掃描識(shí)別指的是直接進(jìn)行資產(chǎn)探測(cè)的相關(guān)技術(shù),如通過(guò)主動(dòng)發(fā)送數(shù)據(jù)包進(jìn)行掃描。性能優(yōu)化是指對(duì)于掃描技術(shù)在效率上的優(yōu)化技術(shù)。由于資產(chǎn)探測(cè)往往伴隨著被防火墻、入侵檢測(cè)系統(tǒng)等發(fā)現(xiàn)的風(fēng)險(xiǎn),如對(duì)一段互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址進(jìn)行順序掃描很容易被網(wǎng)管察覺(jué)并警告,這就需要使用到隱蔽掃描?,F(xiàn)如今,機(jī)器學(xué)習(xí)的應(yīng)用范圍不斷擴(kuò)大,而在網(wǎng)絡(luò)資產(chǎn)方面,它可以應(yīng)用于根據(jù)常見(jiàn)協(xié)議的指紋特征進(jìn)行操作系統(tǒng)識(shí)別。
2.1.1 網(wǎng)絡(luò)協(xié)議
常見(jiàn)可用于網(wǎng)絡(luò)探測(cè)的協(xié)議有:地址解析協(xié)議(Address Resolution Protocol,ARP)、網(wǎng)際控制報(bào)文協(xié)議(Internet Control Message Protocol,ICMP)、傳輸控制協(xié)議(Transmission Control Protocol,TCP)、用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)、簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)等。
ARP作為網(wǎng)絡(luò)層的協(xié)議,其功能是將網(wǎng)絡(luò)層使用的IP地址解析為數(shù)據(jù)鏈路層使用的介質(zhì)訪問(wèn)控制(Media Access Control,MAC)地 址。給 目 標(biāo) 主 機(jī) 發(fā)送ARP請(qǐng)求,如果目標(biāo)主機(jī)響應(yīng)請(qǐng)求返回了MAC地址,說(shuō)明目標(biāo)主機(jī)是在線的,否則說(shuō)明目標(biāo)主機(jī)不在線,所以ARP協(xié)議可以用于主機(jī)掃描,Arping命令就是通過(guò)該協(xié)議實(shí)現(xiàn)的。它的優(yōu)點(diǎn)在于局域網(wǎng)內(nèi)精度很高,且可以突破防火墻[2],然而應(yīng)用范圍較窄,只能在局域網(wǎng)內(nèi)使用。
ICMP屬于網(wǎng)絡(luò)層的協(xié)議,差錯(cuò)報(bào)告報(bào)文和詢問(wèn)報(bào)文是該協(xié)議的兩個(gè)不同種類。ICMP的差錯(cuò)報(bào)告報(bào)文和詢問(wèn)報(bào)文都可以用來(lái)進(jìn)行主機(jī)掃描,只要目標(biāo)主機(jī)有響應(yīng)就說(shuō)明該主機(jī)在線。Jiang Weihua[3]等人就使用ICMP報(bào)文進(jìn)行了主機(jī)掃描,甚至通過(guò)分析ICMP數(shù)據(jù)包的IP首部特點(diǎn)來(lái)辨別不同的操作系統(tǒng)[3-4]。Ping和Traceroute也是該協(xié)議的應(yīng)用,但是由于Ping工具使用率很高,許多注重安全的主機(jī)防火墻都不允許通過(guò)ICMP報(bào)文。
TCP是傳輸層的協(xié)議,它提供了可靠的面向連接的服務(wù)。通過(guò)發(fā)送TCP報(bào)文到目標(biāo)主機(jī)的目標(biāo)端口,既可以確定該主機(jī)是否在線,也可以確定目標(biāo)端口是否打開(kāi)。TCP掃描主要有:Connect掃描、SYN掃描、ACK掃 描、FIN掃 描、NULL掃 描、XMAS掃 描 等。
TCP Connect掃描又叫全連接掃描,顧名思義,就是源主機(jī)和目標(biāo)主機(jī)進(jìn)行三次握手建立完整的連接,根據(jù)目標(biāo)主機(jī)的不同反應(yīng),結(jié)果可能分為三種情況:(1)建立了完整連接,既確定了主機(jī)在線,也確定了目標(biāo)端口是開(kāi)放的;(2)源主機(jī)發(fā)出SYN請(qǐng)求后,目標(biāo)主機(jī)返回了帶RST標(biāo)記的響應(yīng)報(bào)文,雖然表明了目標(biāo)端口是關(guān)閉的,但是可以確認(rèn)目標(biāo)主機(jī)在線;(3)源主機(jī)發(fā)出SYN請(qǐng)求后,目標(biāo)主機(jī)沒(méi)有回應(yīng),可能該主機(jī)不在線,也可能目標(biāo)端口受到了防火墻保護(hù)。TCP Connect掃描實(shí)現(xiàn)簡(jiǎn)單,但是容易在目標(biāo)主機(jī)中留下大量TCP建立連接的日志,易被發(fā)現(xiàn)。
TCP SYN掃描,又稱為半連接掃描,源主機(jī)和目標(biāo)主機(jī)并不會(huì)建立一個(gè)完整的TCP連接。源主機(jī)向目標(biāo)主機(jī)發(fā)送SYN請(qǐng)求后,如果目標(biāo)主機(jī)返回SYN/ACK響應(yīng),表明目標(biāo)端口處于打開(kāi)狀態(tài),之后源主機(jī)發(fā)送RST報(bào)文斷開(kāi)連接。如果目標(biāo)主機(jī)響應(yīng)的是RST報(bào)文,說(shuō)明目標(biāo)端口處于關(guān)閉狀態(tài),如果沒(méi)有響應(yīng),說(shuō)明目標(biāo)主機(jī)不在線或被防火墻保護(hù)。SYN掃描的優(yōu)點(diǎn)在于不會(huì)在目標(biāo)主機(jī)留下相關(guān)日志,相比全連接掃描更加隱蔽。
TCP ACK掃描是源主機(jī)發(fā)送一個(gè)只設(shè)置ACK標(biāo)志位的請(qǐng)求,不管目標(biāo)主機(jī)的端口是否打開(kāi),該主機(jī)都會(huì)響應(yīng)一個(gè)RST數(shù)據(jù)包,而如果沒(méi)有收到響應(yīng),說(shuō)明目標(biāo)主機(jī)可能不在線或者受到防火墻保護(hù),如果收到ICMP終點(diǎn)不可達(dá)的差錯(cuò)報(bào)文,說(shuō)明目標(biāo)主機(jī)受到了防火墻保護(hù)??紤]到目標(biāo)主機(jī)如果響應(yīng)了RST報(bào)文,則說(shuō)明該主機(jī)一定在線,所以ACK掃描可以用于主機(jī)掃描。
TCP FIN掃描是源主機(jī)發(fā)送一個(gè)帶有FIN標(biāo)記的數(shù)據(jù)包到目標(biāo)主機(jī)端口,通常情況下,如果目標(biāo)端口是關(guān)閉的,那么目標(biāo)主機(jī)會(huì)發(fā)送一個(gè)RST響應(yīng)包。如果主機(jī)沒(méi)有任何反應(yīng),說(shuō)明端口打開(kāi)或者受防火墻保護(hù)。如果收到ICMP終點(diǎn)不可達(dá)的差錯(cuò)報(bào)文,說(shuō)明目標(biāo)受到防火墻保護(hù)。TCP FIN掃描的優(yōu)點(diǎn)是更加隱蔽,不會(huì)留下痕跡,但是容易受到誤導(dǎo),因?yàn)樵谑詹坏巾憫?yīng)時(shí)無(wú)法區(qū)分目標(biāo)端口是打開(kāi)的還是受到了防火墻保護(hù),而且有的操作系統(tǒng)在端口打開(kāi)的時(shí)候也會(huì)發(fā)送RST響應(yīng)。SYN掃描如果和FIN掃描結(jié)合起來(lái)使用可以簡(jiǎn)單地做一些操作系統(tǒng)識(shí)別,但是識(shí)別能力有限。
TCP NULL掃描是將發(fā)送的TCP數(shù)據(jù)包首部標(biāo)記都置為0,TCP XMAS掃描則是將FIN、URG、PSH標(biāo)記都置為1,它們與FIN掃描類似,不同操作系統(tǒng)可能有不同的實(shí)現(xiàn)。通常情況下,如果目標(biāo)主機(jī)端口處于關(guān)閉狀態(tài),會(huì)發(fā)送一個(gè)RST響應(yīng)包,如果沒(méi)有響應(yīng)說(shuō)明端口打開(kāi)或者受到防火墻保護(hù),如果收到了ICMP終點(diǎn)不可達(dá)的差錯(cuò)報(bào)文,說(shuō)明端口受到防火墻保護(hù)。
一些常見(jiàn)的掃描工具如Nmap[5]、Zmap[6]、Masscan[7]都使用了TCP協(xié)議進(jìn)行主機(jī)、端口掃描。Nmap功能強(qiáng)大,它支持以上所有類型的掃描,優(yōu)點(diǎn)是搜索結(jié)果較為全面,缺點(diǎn)是速度較慢。DNmap[8]使用分布式架構(gòu),對(duì)Nmap的探測(cè)速度進(jìn)行了改進(jìn)。Yuan[9]等人使用Go語(yǔ)言結(jié)合TCP全連接掃描開(kāi)發(fā)了名為HIRFL的掃描器,其掃描速度比Nmap快。Beverly[10]基于TCP SYN和ACK掃描開(kāi)發(fā)了Yarrp,能夠以100 kpps的速度在30 min內(nèi)發(fā)現(xiàn)超過(guò)40萬(wàn)個(gè)路由器接口。Li[11-12]在TCP掃描的基礎(chǔ)上,使用了可編程的交換機(jī)開(kāi)發(fā)了快速可擴(kuò)展的IMap掃描器。Zhang等通過(guò)將Zmap和Nmap相結(jié)合[13],開(kāi)發(fā)了掃描VxWorks主機(jī)信息的軟件,并提供人性化的管理界面和掃描報(bào)告。Sivanathan[14]等通過(guò)TCP全連接的方式將TCP掃描用于物聯(lián)網(wǎng)設(shè)備的識(shí)別和分類。
UDP是無(wú)連接、盡最大努力交付的傳輸層協(xié)議。UDP掃描一般是利用ICMP協(xié)議進(jìn)行的,源主機(jī)向目標(biāo)主機(jī)端口發(fā)送一個(gè)長(zhǎng)度為0的UDP數(shù)據(jù)包,如果收到了ICMP終點(diǎn)不可達(dá)的差錯(cuò)報(bào)告報(bào)文,說(shuō)明目標(biāo)端口是關(guān)閉的。如果收到了UDP響應(yīng)報(bào)文,說(shuō)明目標(biāo)端口是打開(kāi)的。如果沒(méi)有響應(yīng),那么目標(biāo)端口可能打開(kāi)著,也可能受到了防火墻保護(hù)。Nmap也具備UDP掃描功能,使用“-sU”參數(shù)便可以進(jìn)行UDP掃描。Jung[15]等基于UDP協(xié)議提出了一種新的技術(shù)用于掃描物聯(lián)網(wǎng)設(shè)備,它包含了主掃描和輔助掃描兩個(gè)部分,主掃描使用簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議(Simple Service Discovery Protocol,SSDP),輔助掃描使用名稱服務(wù)器協(xié)議(Network Basic Input/Output System Name Service,NBNS)和多播域名解析協(xié)議(Multicast Domain Name System,MNDS),平均速度比Nmap快1 524倍。Kumar[16]等基于UDP協(xié)議設(shè)計(jì)了使用多個(gè)IP地址掃描目標(biāo)端口的掃描器,比傳統(tǒng)掃描方法快約190倍。
SNMP是基于UDP協(xié)議設(shè)計(jì)的用于管理網(wǎng)絡(luò)節(jié)點(diǎn)的應(yīng)用層協(xié)議,可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中的資源進(jìn)行監(jiān)控?,F(xiàn) 在 已 經(jīng) 有 了 三 個(gè) 版 本:SNMPv1、SNMPv2c、SNMPv3。SNMP三個(gè)主要組件分別是:管理信息結(jié)構(gòu)(Structure of Management Information,SMI)、管理信息庫(kù)(Management Information Base,MIB)和管理協(xié)議,其中管理信息結(jié)構(gòu)和管理信息庫(kù)是ASN.1語(yǔ)法定義的模塊。SNMP用對(duì)象標(biāo)識(shí)符(Object Identifier,OID)唯一標(biāo)識(shí)一個(gè)被管理對(duì)象,所有被管理對(duì)象的集合就是管理信息庫(kù),它是一個(gè)樹(shù)型結(jié)構(gòu),所以又稱MIB樹(shù)。管理信息結(jié)構(gòu)的工作是為管理信息庫(kù)定義被管理對(duì)象的標(biāo)準(zhǔn)、規(guī)定數(shù)據(jù)類型以及分配OID。網(wǎng)絡(luò)管理者、代理者、被管理設(shè)備共同組成了SNMP所管理的網(wǎng)絡(luò),代理者和管理者通過(guò)協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)進(jìn) 行 通 信。在 進(jìn) 行 網(wǎng) 絡(luò) 探測(cè) 時(shí),MIB庫(kù) 中 的ipAddrTable、ipRouteTable、ipNetTo-MediaTable是需要關(guān)注的三個(gè)對(duì)象,ipAddrTable對(duì)象中包含了每個(gè)接口對(duì)應(yīng)的IP地址,ipRouteTable對(duì)象可以獲取到直接與該設(shè)備連接的子網(wǎng)和路由器信息,ipNetToMediaTable記錄了該設(shè)備路由表中的ARP映射。Handoko[17]等通過(guò)使用SNMP創(chuàng)建實(shí)時(shí)網(wǎng)絡(luò)拓樸,設(shè)計(jì)并開(kāi)發(fā)了可以監(jiān)控網(wǎng)絡(luò)節(jié)點(diǎn)信息的應(yīng)用程序。Saheb[18]等通過(guò)結(jié)合ICMP和SNMP協(xié)議實(shí)現(xiàn)了網(wǎng)絡(luò)資源的自動(dòng)發(fā)現(xiàn)和監(jiān)控。Roquero[19]等提出了一種具有靈活的多線程體系結(jié)構(gòu)的SNMP管理器體系結(jié)構(gòu),并使用自適應(yīng)輪詢算法有效減少了輪詢不斷增加的SNMP AGENT帶來(lái)的資源消耗。使用SNMP可獲得足夠多的主機(jī)信息用于資產(chǎn)管理,但是現(xiàn)有路由器大多默認(rèn)不打開(kāi)SNMP協(xié)議,且需要知道Community的值才能訪問(wèn)MIB。
2.1.2 流量分析
流量分析往往用于被動(dòng)探測(cè),通過(guò)在網(wǎng)絡(luò)節(jié)點(diǎn)部署探針來(lái)捕獲數(shù)據(jù),分析這些網(wǎng)絡(luò)流量的特征可以確定流量來(lái)源主機(jī)的某些特征[20]。不同操作系統(tǒng)對(duì)于TCP/IP協(xié)議棧的實(shí)現(xiàn)有所不同,可以根據(jù)TCP/IP數(shù)據(jù)報(bào)的指紋特征來(lái)區(qū)分操作系統(tǒng)的類別,常用的指紋特征有窗口大小、是否分片、數(shù)據(jù)包生存時(shí)間、最大報(bào)文長(zhǎng)度、可選字段等。
應(yīng)用層服務(wù)一般會(huì)使用較為固定的端口,可以通過(guò)TCP/IP數(shù)據(jù)包中的端口號(hào)來(lái)進(jìn)行服務(wù)識(shí)別,其結(jié)果一般是較為準(zhǔn)確的,服務(wù)及其對(duì)應(yīng)的端口號(hào)見(jiàn)表1。
表1 常見(jiàn)服務(wù)對(duì)應(yīng)的端口號(hào)
2.1.3 搜索引擎
搜索引擎,如百度、谷歌等是互聯(lián)網(wǎng)上最常見(jiàn)的工具,不同于這類普通搜索引擎,網(wǎng)絡(luò)安全搜索引擎如Shodan,可以搜索到主機(jī)及其打開(kāi)的端口、服務(wù)等,除此之外,還能搜索到暴露公網(wǎng)的硬件設(shè)備,如路由器、打印機(jī)、網(wǎng)絡(luò)攝像頭等。Shodan支持關(guān)鍵詞搜索,如country:“CN”,可以搜索到位于中國(guó)的網(wǎng)絡(luò)資產(chǎn)。除了使用Shodan網(wǎng)頁(yè)進(jìn)行搜索,還可以注冊(cè)并生成一個(gè)API key在編程開(kāi)發(fā)時(shí)直接調(diào)用Shodan的搜索接口。Zolotykh[27-28]對(duì)Shodan的掃描行為進(jìn)行了分析,發(fā)現(xiàn)其使用TCP和UDP協(xié)議進(jìn)行掃描,且使用了許多強(qiáng)度不同的爬蟲(chóng)進(jìn)行端口探測(cè)和Banner信息抓取。除了Shodan之外,常見(jiàn)的網(wǎng)絡(luò)安全搜索引擎還有結(jié)合了Zmap的Censys、結(jié)合了Nmap的ZoomEye等。搜索引擎對(duì)于暴露于公網(wǎng)的網(wǎng)絡(luò)資產(chǎn)有著強(qiáng)大的搜索能力,且隱蔽性強(qiáng),缺點(diǎn)在于還無(wú)法對(duì)內(nèi)網(wǎng)資產(chǎn)進(jìn)行有效探測(cè)。
2.2.1 無(wú)狀態(tài)技術(shù)
通常的TCP SYN掃描需要建立一個(gè)完整的會(huì)話,源主機(jī)向目標(biāo)主機(jī)發(fā)送SYN請(qǐng)求后,如果目標(biāo)主機(jī)返回SYN/ACK響應(yīng),表明目標(biāo)端口處于打開(kāi)狀態(tài),之后源主機(jī)發(fā)送RST報(bào)文斷開(kāi)連接。Zmap和Masscan使用了TCP SYN無(wú)狀態(tài)掃描,無(wú)狀態(tài)指的是它們使用獨(dú)立的發(fā)送和接收線程,在發(fā)送SYN數(shù)據(jù)包時(shí),對(duì)探測(cè)地址進(jìn)行哈希編碼,而后發(fā)送RST取消連接,數(shù)據(jù)包發(fā)出后并不記錄目標(biāo)主機(jī)的回執(zhí)狀態(tài),而是在目標(biāo)響應(yīng)SYN/ACK數(shù)據(jù)包時(shí)對(duì)其中的源IP、源端口等信息進(jìn)行校驗(yàn),這樣避免了存儲(chǔ)連接狀態(tài)的開(kāi)銷(xiāo),缺點(diǎn)是會(huì)丟失大約2%的數(shù)據(jù)[6]。
2.2.2 并行化技術(shù)
為了進(jìn)一步提高掃描速度,研究人員引入了并行化技術(shù),如針對(duì)傳統(tǒng)掃描工具Nmap速度不夠快的問(wèn)題,開(kāi)發(fā)了使用分布式架構(gòu)的DNmap[8]工具,提高了網(wǎng)絡(luò)掃描效率。Zmap的開(kāi)發(fā)者在文獻(xiàn)[29]中對(duì)隨機(jī)IP生成操作進(jìn)行分片,每組都能生成與其他組互不相交的隨機(jī)IP子集,使得該工具可以應(yīng)用到多線程中。胡棟梁[30]等使用了三層模型的分布式架構(gòu),利用消息中間件改進(jìn)了傳統(tǒng)單點(diǎn)主動(dòng)掃描技術(shù),降低了CPU使用率和掃描響應(yīng)時(shí)間。
2.2.3 零拷貝技術(shù)
常用的探測(cè)工具使用Libpcap進(jìn)行數(shù)據(jù)包的捕獲與發(fā)送,但數(shù)據(jù)采集性能不佳。PF_RING[31]被提出來(lái)提高數(shù)據(jù)采集性能,它是一種新型的套接字,其對(duì)性能的提高主要靠輪詢(Polling)、內(nèi)存映射(Mmap)和環(huán)形緩沖區(qū)(Ring buffer)來(lái)實(shí)現(xiàn)。PF_RING的結(jié)構(gòu)如圖1所示,在創(chuàng)建套接字時(shí)環(huán)形緩沖區(qū)也被創(chuàng)建出來(lái),數(shù)據(jù)包在到達(dá)網(wǎng)卡后,處理器以輪詢的方式將數(shù)據(jù)寫(xiě)入緩存區(qū),使用輪詢方式的優(yōu)點(diǎn)是可以減少處理器響應(yīng)中斷的時(shí)間。內(nèi)存映射使得應(yīng)用程序可以直接讀取內(nèi)核態(tài)環(huán)形緩沖區(qū)的數(shù)據(jù),避免了將數(shù)據(jù)包從內(nèi)核態(tài)到用戶態(tài)的一次拷貝。為了進(jìn)一步減少開(kāi)銷(xiāo),PF_RING ZC(Zero Copy)實(shí)現(xiàn)了直接網(wǎng)卡訪問(wèn)(Direct NIC Access,DNA)[32-33],將網(wǎng)卡內(nèi)存和寄存器直接映射到用戶空間,支持了零拷貝技術(shù),Zmap和Masscan都支持PF_RING ZC模式。面對(duì)網(wǎng)絡(luò)流量突發(fā)而出現(xiàn)隨機(jī)丟包的情況,Ye[34]等人在PF_RING的基礎(chǔ)上設(shè)計(jì)了可以自動(dòng)調(diào)節(jié)內(nèi)核緩沖區(qū)空間大小的PF_RING-TA。
對(duì)83例胃癌患者的性別,腫瘤的位置、直徑、Borrmann分型、分化程度、浸潤(rùn)深度、淋巴結(jié)轉(zhuǎn)移和遠(yuǎn)處轉(zhuǎn)移,以及新輔助化療和 CTC陽(yáng)性等指標(biāo),進(jìn)行COX單因素和多因素回歸分析。結(jié)果發(fā)現(xiàn),胃癌患者術(shù)后生存的獨(dú)立影響因素為腫瘤分化程度、新輔助化療和 CTC陽(yáng)性這3項(xiàng)指標(biāo)(P值分別為0.035、0.011和<0.001,表2和表3)。
圖1 PF_RING結(jié)構(gòu)
2.3.1 隨機(jī)IP地址生成
考慮到如果對(duì)一個(gè)IP地址空間的所有IP進(jìn)行順序掃描很容易被入侵檢測(cè)系統(tǒng)或防火墻發(fā)現(xiàn),所以有必要對(duì)所有IP打亂順序,生成隨機(jī)IP地址的方法主要有Zmap使用的基于素?cái)?shù)原根的方法和Masscan使用的加密算法。Zmap的開(kāi)發(fā)者在文獻(xiàn)[29]中又進(jìn)一步對(duì)該操作進(jìn)行分片,每組都能生成與其他組互不相交的隨機(jī)IP子集,使得該方法可以應(yīng)用到多線程中。Beverly[10]開(kāi)發(fā)的工具則通過(guò)加密算法生成隨機(jī)的IP地址和生存時(shí)間(Time To Live,TTL),使源主機(jī)能夠以隨機(jī)的TTL值和打亂的IP地址掃描目標(biāo)地址空間。
2.3.2 多 源IP掃 描
為隱蔽掃描行為,可以使用多個(gè)源IP進(jìn)行掃描,稀釋單個(gè)IP被發(fā)現(xiàn)的風(fēng)險(xiǎn),使得各IP看起來(lái)像在進(jìn)行正常通信。據(jù)研究,安全搜索引擎Shodan使用了超過(guò)40個(gè)IP地址進(jìn)行掃描,而這些IP地址分布在超過(guò)10個(gè)國(guó)家和地區(qū)[27-28]。
對(duì)于操作系統(tǒng)的識(shí)別,除了使用常規(guī)的TCP/IP指紋庫(kù)進(jìn)行匹配之外,將機(jī)器學(xué)習(xí)應(yīng)用于操作系統(tǒng)識(shí)別的研究也越來(lái)越多。Lastovicka[35]等人選取TTL、TCP窗口大小、初始SYN包大小作為特征,對(duì)比了樸素貝葉斯、決策樹(shù)、K最近鄰算法、支持向量機(jī)四種機(jī)器學(xué)習(xí)算法,得出了決策樹(shù)最適合進(jìn)行操作系統(tǒng)識(shí)別的結(jié)論。Fan[36]等人通過(guò)提取IP協(xié)議、TCP協(xié)議和TLS協(xié)議數(shù)據(jù)包的指紋特征,使用LightGBM算法(主要思想是利用弱分類器進(jìn)行迭代以獲得最優(yōu)模型),通過(guò)實(shí)驗(yàn)證明該算法的操作系統(tǒng)類型識(shí)別率達(dá)96.35%,操作系統(tǒng)版本識(shí)別率達(dá)84.72%,優(yōu)于Lastovicka在文獻(xiàn)[35]中得出的最優(yōu)算法。Song[37]等人基于端口號(hào)、TTL、是否分片、窗口大小等特征,對(duì)比了傳統(tǒng)的指紋匹配、K最近鄰算法、決策樹(shù)和神經(jīng)網(wǎng)絡(luò)算法對(duì)操作系統(tǒng)的識(shí)別率,發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法的精確度達(dá)94%,高于其他識(shí)別方法。Kumar[38]等基于SYN包大小、TTL、窗口大小、HTTP USERAGENT等特征,對(duì)比了K最鄰近算法、人工神經(jīng)網(wǎng)絡(luò)、決策樹(shù)、樸素貝葉斯、隨機(jī)森林5種算法,其中K最鄰近算法以96.22%的準(zhǔn)確率成為操作系統(tǒng)識(shí)別最好的算法,并得出對(duì)分類結(jié)果影響最大的參數(shù)是TTL??梢钥闯觯x取TCP/IP數(shù)據(jù)報(bào)首部的不同字段或者結(jié)合其他協(xié)議的某些字段都會(huì)影響機(jī)器學(xué)習(xí)在操作系統(tǒng)的識(shí)別率,如何選擇合適的指紋特征和機(jī)器學(xué)習(xí)算法是今后的重要課題。
網(wǎng)絡(luò)資產(chǎn)探測(cè)相關(guān)的三類技術(shù)總結(jié)如下:
掃描識(shí)別相關(guān)的技術(shù)主要有網(wǎng)絡(luò)協(xié)議、流量分析、搜索引擎,主要目標(biāo)是掃描在線的主機(jī)、端口以及對(duì)運(yùn)行的服務(wù)、操作系統(tǒng)進(jìn)行識(shí)別。網(wǎng)絡(luò)協(xié)議主要指的是通過(guò)ARP、ICMP、TCP等協(xié)議進(jìn)行網(wǎng)絡(luò)資產(chǎn)探測(cè),優(yōu)點(diǎn)是速度快、應(yīng)用范圍廣、可用于不自己產(chǎn)生流量的資產(chǎn),缺點(diǎn)在于可能被防火墻阻擋、被入侵檢測(cè)系統(tǒng)發(fā)現(xiàn)、難以探測(cè)受到保護(hù)的資產(chǎn)。流量分析指的是通過(guò)收集網(wǎng)絡(luò)流量,分析其源頭的資產(chǎn)信息,優(yōu)點(diǎn)是不容易被發(fā)覺(jué)、受保護(hù)的資產(chǎn)也有一定發(fā)現(xiàn)能力,缺點(diǎn)是主要用于內(nèi)網(wǎng)、速度取決于探針的位置、發(fā)現(xiàn)不了不產(chǎn)生流量的資產(chǎn)。搜索引擎指的是使用Shodan等網(wǎng)絡(luò)安全搜索引擎探測(cè)網(wǎng)絡(luò)資產(chǎn),優(yōu)點(diǎn)是速度快、對(duì)于公網(wǎng)設(shè)備具有探測(cè)能力,缺點(diǎn)是不能用于內(nèi)網(wǎng)、探測(cè)結(jié)果取決于搜索引擎。對(duì)比三種方法,從應(yīng)用范圍角度,網(wǎng)絡(luò)協(xié)議眾多,既可用于公網(wǎng),也可用于內(nèi)網(wǎng),流量分析主要應(yīng)用于內(nèi)網(wǎng),搜索引擎主要應(yīng)用于公網(wǎng);從速度角度,網(wǎng)絡(luò)協(xié)議和搜索引擎速度較快,流量分析速度取決于探針位置;從隱蔽性角度,流量分析和搜索引擎不直接訪問(wèn)目標(biāo),隱蔽性高于主動(dòng)發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)協(xié)議。
性能優(yōu)化技術(shù)包括無(wú)狀態(tài)技術(shù)、并行化技術(shù)、零拷貝技術(shù),主要目標(biāo)是優(yōu)化主機(jī)、端口掃描的速度。無(wú)狀態(tài)技術(shù)是指不保存TCP SYN連接狀態(tài),使用獨(dú)立的發(fā)送和接收線程,優(yōu)點(diǎn)是避免了存儲(chǔ)連接狀態(tài)的開(kāi)銷(xiāo),缺點(diǎn)是會(huì)丟失一些數(shù)據(jù)包。并行化技術(shù)是指將并行化引入網(wǎng)絡(luò)資產(chǎn)探測(cè),優(yōu)點(diǎn)是可以提高探測(cè)速度,缺點(diǎn)是增加了成本。零拷貝技術(shù)是指避免網(wǎng)卡到用戶態(tài)的數(shù)據(jù)拷貝,優(yōu)點(diǎn)是減少了數(shù)據(jù)包拷貝帶來(lái)的開(kāi)銷(xiāo),缺點(diǎn)是依然可能產(chǎn)生丟包。對(duì)比三種方法,從數(shù)據(jù)完整性角度,無(wú)狀態(tài)和零拷貝技術(shù)都會(huì)產(chǎn)生丟包問(wèn)題,并行化技術(shù)不會(huì);從開(kāi)銷(xiāo)角度,無(wú)狀態(tài)和零拷貝技術(shù)都減少了開(kāi)銷(xiāo),而并行化技術(shù)增加了開(kāi)銷(xiāo)。
隱蔽掃描技術(shù)包括隨機(jī)IP地址生成和多源IP掃描,主要目標(biāo)在于隱蔽掃描主機(jī)、端口的行為。隨機(jī)IP地址生成指的是對(duì)于要掃描的目標(biāo)IP地址空間,生成一個(gè)完整隨機(jī)不重復(fù)的序列,避免對(duì)目標(biāo)進(jìn)行順序掃描,優(yōu)點(diǎn)是增加了探測(cè)的隱蔽性,缺點(diǎn)是增加了計(jì)算隨機(jī)IP地址序列的開(kāi)銷(xiāo)。多源IP掃描指的是使用多個(gè)源IP對(duì)目標(biāo)進(jìn)行掃描,優(yōu)點(diǎn)是能夠稀釋單個(gè)IP探測(cè)被發(fā)現(xiàn)的風(fēng)險(xiǎn),缺點(diǎn)是增加了探測(cè)成本。對(duì)比兩種方法,從開(kāi)銷(xiāo)角度,隨機(jī)IP地址生成增加了計(jì)算開(kāi)銷(xiāo),多源IP增加了成本開(kāi)銷(xiāo);從速度角度,隨機(jī)IP地址生成增加了探測(cè)時(shí)間,多源IP掃描可以結(jié)合并行技術(shù),速度更快。
機(jī)器學(xué)習(xí)技術(shù)主要通過(guò)使用相關(guān)算法對(duì)TCP/IP協(xié)議指紋數(shù)據(jù)進(jìn)行訓(xùn)練以識(shí)別操作系統(tǒng)。其優(yōu)點(diǎn)是帶來(lái)了多種指紋特征識(shí)別的方法,準(zhǔn)確率比傳統(tǒng)指紋匹配高。其缺點(diǎn)是增加了運(yùn)算開(kāi)銷(xiāo),且不同研究選取的指紋不同,暫時(shí)還沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。
盡管網(wǎng)絡(luò)資產(chǎn)探測(cè)技術(shù)已經(jīng)有了眾多科研成果,但要用于網(wǎng)絡(luò)資產(chǎn)全生命管理還需要在以下三個(gè)方向進(jìn)一步研究:
(1)探測(cè)結(jié)果的全面性
進(jìn)行網(wǎng)絡(luò)資產(chǎn)管理的前提就是要對(duì)被管理資產(chǎn)應(yīng)知盡知,單個(gè)探測(cè)方法顯然不足以達(dá)到全面探測(cè)的效果,一方面可以針對(duì)被忽略的網(wǎng)絡(luò)資產(chǎn)研究新的探測(cè)方法,另一方面可以根據(jù)具體的場(chǎng)景結(jié)合多維探測(cè)技術(shù)以提高結(jié)果的全面性。
(2)探測(cè)結(jié)果的準(zhǔn)確性
考慮到錯(cuò)誤的探測(cè)結(jié)果可能不利于網(wǎng)絡(luò)資產(chǎn)全生命周期管理的漏洞管理流程,需要知道正確的服務(wù)、操作系統(tǒng)版本才能根據(jù)該版本存在的漏洞進(jìn)行預(yù)防、彌補(bǔ)工作。傳統(tǒng)探測(cè)工具Nmap、新型的機(jī)器學(xué)習(xí)方法在操作系統(tǒng)識(shí)別準(zhǔn)確率方面依然存在不足,還需進(jìn)一步研究。
(3)探測(cè)速度
對(duì)于提高探測(cè)速度的研究很多,但是在提高探測(cè)速度的同時(shí),又會(huì)產(chǎn)生數(shù)據(jù)包的丟失問(wèn)題,進(jìn)而導(dǎo)致探測(cè)結(jié)果的全面性和準(zhǔn)確性下降,如何在保證全面性和準(zhǔn)確性的情況下盡可能提高探測(cè)速度也需要深入研究。
網(wǎng)絡(luò)資產(chǎn)探測(cè)在網(wǎng)絡(luò)安全和網(wǎng)絡(luò)資產(chǎn)管理方面是必不可少的部分,面對(duì)發(fā)展越來(lái)越快的網(wǎng)絡(luò)技術(shù)和數(shù)量越來(lái)越多的網(wǎng)絡(luò)資產(chǎn),如何快速、全面、準(zhǔn)確地進(jìn)行網(wǎng)絡(luò)資產(chǎn)探測(cè)也需要進(jìn)一步研究。本文介紹了網(wǎng)絡(luò)資產(chǎn)探測(cè)一些相關(guān)的技術(shù),希望可以基于這些技術(shù)開(kāi)發(fā)更優(yōu)秀的網(wǎng)絡(luò)探測(cè)工具,為學(xué)校、企業(yè)等組織的網(wǎng)絡(luò)資產(chǎn)全生命周期管理提供便利。