邵 磊,余 曉,吳劍章
(1.東南大學 網絡空間安全學院,江蘇 南京 210096;2.東南大學 繼續(xù)教育學院,江蘇 南京 210096)
網絡資產探測的目的是探測目標范圍內在線的主機及其開放的端口、服務、操作系統(tǒng)等信息。掌握資產信息是進行網絡資產全生命周期管理的前提,結合資產標識技術可以追蹤任何一個網絡資產的在線情況、版本信息,為更新版本、下線不再使用的資產等管理工作提供信息基礎。還可以結合最新的漏洞信息,更好地保護面臨威脅的網絡資產,避免被不法分子利用而造成財產損失。
網絡資產可以定義為具有網絡連接的任何對于企業(yè)、高校等組織具有價值的資源。網絡資產主要可以分類為硬件和軟件,硬件包含各種通信、計算、存儲類等設備;軟件主要是指運行在硬件上的各類服務,例如Web服務、數據庫、操作系統(tǒng)等。
網絡資產探測方法可以分類為:主動探測、被動探測和基于安全搜索引擎探測[1]。本文根據各類方法所需要使用的相關技術,從技術角度分類為掃描識別技術、性能優(yōu)化技術、隱蔽掃描技術和機器學習技術。掃描識別指的是直接進行資產探測的相關技術,如通過主動發(fā)送數據包進行掃描。性能優(yōu)化是指對于掃描技術在效率上的優(yōu)化技術。由于資產探測往往伴隨著被防火墻、入侵檢測系統(tǒng)等發(fā)現的風險,如對一段互聯(lián)網協(xié)議(Internet Protocol,IP)地址進行順序掃描很容易被網管察覺并警告,這就需要使用到隱蔽掃描。現如今,機器學習的應用范圍不斷擴大,而在網絡資產方面,它可以應用于根據常見協(xié)議的指紋特征進行操作系統(tǒng)識別。
2.1.1 網絡協(xié)議
常見可用于網絡探測的協(xié)議有:地址解析協(xié)議(Address Resolution Protocol,ARP)、網際控制報文協(xié)議(Internet Control Message Protocol,ICMP)、傳輸控制協(xié)議(Transmission Control Protocol,TCP)、用戶數據報協(xié)議(User Datagram Protocol,UDP)、簡單網絡管理協(xié)議(Simple Network Management Protocol,SNMP)等。
ARP作為網絡層的協(xié)議,其功能是將網絡層使用的IP地址解析為數據鏈路層使用的介質訪問控制(Media Access Control,MAC)地 址。給 目 標 主 機 發(fā)送ARP請求,如果目標主機響應請求返回了MAC地址,說明目標主機是在線的,否則說明目標主機不在線,所以ARP協(xié)議可以用于主機掃描,Arping命令就是通過該協(xié)議實現的。它的優(yōu)點在于局域網內精度很高,且可以突破防火墻[2],然而應用范圍較窄,只能在局域網內使用。
ICMP屬于網絡層的協(xié)議,差錯報告報文和詢問報文是該協(xié)議的兩個不同種類。ICMP的差錯報告報文和詢問報文都可以用來進行主機掃描,只要目標主機有響應就說明該主機在線。Jiang Weihua[3]等人就使用ICMP報文進行了主機掃描,甚至通過分析ICMP數據包的IP首部特點來辨別不同的操作系統(tǒng)[3-4]。Ping和Traceroute也是該協(xié)議的應用,但是由于Ping工具使用率很高,許多注重安全的主機防火墻都不允許通過ICMP報文。
TCP是傳輸層的協(xié)議,它提供了可靠的面向連接的服務。通過發(fā)送TCP報文到目標主機的目標端口,既可以確定該主機是否在線,也可以確定目標端口是否打開。TCP掃描主要有:Connect掃描、SYN掃描、ACK掃 描、FIN掃 描、NULL掃 描、XMAS掃 描 等。
TCP Connect掃描又叫全連接掃描,顧名思義,就是源主機和目標主機進行三次握手建立完整的連接,根據目標主機的不同反應,結果可能分為三種情況:(1)建立了完整連接,既確定了主機在線,也確定了目標端口是開放的;(2)源主機發(fā)出SYN請求后,目標主機返回了帶RST標記的響應報文,雖然表明了目標端口是關閉的,但是可以確認目標主機在線;(3)源主機發(fā)出SYN請求后,目標主機沒有回應,可能該主機不在線,也可能目標端口受到了防火墻保護。TCP Connect掃描實現簡單,但是容易在目標主機中留下大量TCP建立連接的日志,易被發(fā)現。
TCP SYN掃描,又稱為半連接掃描,源主機和目標主機并不會建立一個完整的TCP連接。源主機向目標主機發(fā)送SYN請求后,如果目標主機返回SYN/ACK響應,表明目標端口處于打開狀態(tài),之后源主機發(fā)送RST報文斷開連接。如果目標主機響應的是RST報文,說明目標端口處于關閉狀態(tài),如果沒有響應,說明目標主機不在線或被防火墻保護。SYN掃描的優(yōu)點在于不會在目標主機留下相關日志,相比全連接掃描更加隱蔽。
TCP ACK掃描是源主機發(fā)送一個只設置ACK標志位的請求,不管目標主機的端口是否打開,該主機都會響應一個RST數據包,而如果沒有收到響應,說明目標主機可能不在線或者受到防火墻保護,如果收到ICMP終點不可達的差錯報文,說明目標主機受到了防火墻保護。考慮到目標主機如果響應了RST報文,則說明該主機一定在線,所以ACK掃描可以用于主機掃描。
TCP FIN掃描是源主機發(fā)送一個帶有FIN標記的數據包到目標主機端口,通常情況下,如果目標端口是關閉的,那么目標主機會發(fā)送一個RST響應包。如果主機沒有任何反應,說明端口打開或者受防火墻保護。如果收到ICMP終點不可達的差錯報文,說明目標受到防火墻保護。TCP FIN掃描的優(yōu)點是更加隱蔽,不會留下痕跡,但是容易受到誤導,因為在收不到響應時無法區(qū)分目標端口是打開的還是受到了防火墻保護,而且有的操作系統(tǒng)在端口打開的時候也會發(fā)送RST響應。SYN掃描如果和FIN掃描結合起來使用可以簡單地做一些操作系統(tǒng)識別,但是識別能力有限。
TCP NULL掃描是將發(fā)送的TCP數據包首部標記都置為0,TCP XMAS掃描則是將FIN、URG、PSH標記都置為1,它們與FIN掃描類似,不同操作系統(tǒng)可能有不同的實現。通常情況下,如果目標主機端口處于關閉狀態(tài),會發(fā)送一個RST響應包,如果沒有響應說明端口打開或者受到防火墻保護,如果收到了ICMP終點不可達的差錯報文,說明端口受到防火墻保護。
一些常見的掃描工具如Nmap[5]、Zmap[6]、Masscan[7]都使用了TCP協(xié)議進行主機、端口掃描。Nmap功能強大,它支持以上所有類型的掃描,優(yōu)點是搜索結果較為全面,缺點是速度較慢。DNmap[8]使用分布式架構,對Nmap的探測速度進行了改進。Yuan[9]等人使用Go語言結合TCP全連接掃描開發(fā)了名為HIRFL的掃描器,其掃描速度比Nmap快。Beverly[10]基于TCP SYN和ACK掃描開發(fā)了Yarrp,能夠以100 kpps的速度在30 min內發(fā)現超過40萬個路由器接口。Li[11-12]在TCP掃描的基礎上,使用了可編程的交換機開發(fā)了快速可擴展的IMap掃描器。Zhang等通過將Zmap和Nmap相結合[13],開發(fā)了掃描VxWorks主機信息的軟件,并提供人性化的管理界面和掃描報告。Sivanathan[14]等通過TCP全連接的方式將TCP掃描用于物聯(lián)網設備的識別和分類。
UDP是無連接、盡最大努力交付的傳輸層協(xié)議。UDP掃描一般是利用ICMP協(xié)議進行的,源主機向目標主機端口發(fā)送一個長度為0的UDP數據包,如果收到了ICMP終點不可達的差錯報告報文,說明目標端口是關閉的。如果收到了UDP響應報文,說明目標端口是打開的。如果沒有響應,那么目標端口可能打開著,也可能受到了防火墻保護。Nmap也具備UDP掃描功能,使用“-sU”參數便可以進行UDP掃描。Jung[15]等基于UDP協(xié)議提出了一種新的技術用于掃描物聯(lián)網設備,它包含了主掃描和輔助掃描兩個部分,主掃描使用簡單服務發(fā)現協(xié)議(Simple Service Discovery Protocol,SSDP),輔助掃描使用名稱服務器協(xié)議(Network Basic Input/Output System Name Service,NBNS)和多播域名解析協(xié)議(Multicast Domain Name System,MNDS),平均速度比Nmap快1 524倍。Kumar[16]等基于UDP協(xié)議設計了使用多個IP地址掃描目標端口的掃描器,比傳統(tǒng)掃描方法快約190倍。
SNMP是基于UDP協(xié)議設計的用于管理網絡節(jié)點的應用層協(xié)議,可以實現對網絡中的資源進行監(jiān)控。現 在 已 經 有 了 三 個 版 本:SNMPv1、SNMPv2c、SNMPv3。SNMP三個主要組件分別是:管理信息結構(Structure of Management Information,SMI)、管理信息庫(Management Information Base,MIB)和管理協(xié)議,其中管理信息結構和管理信息庫是ASN.1語法定義的模塊。SNMP用對象標識符(Object Identifier,OID)唯一標識一個被管理對象,所有被管理對象的集合就是管理信息庫,它是一個樹型結構,所以又稱MIB樹。管理信息結構的工作是為管理信息庫定義被管理對象的標準、規(guī)定數據類型以及分配OID。網絡管理者、代理者、被管理設備共同組成了SNMP所管理的網絡,代理者和管理者通過協(xié)議數據單元(Protocol Data Unit,PDU)進 行 通 信。在 進 行 網 絡 探測 時,MIB庫 中 的ipAddrTable、ipRouteTable、ipNetTo-MediaTable是需要關注的三個對象,ipAddrTable對象中包含了每個接口對應的IP地址,ipRouteTable對象可以獲取到直接與該設備連接的子網和路由器信息,ipNetToMediaTable記錄了該設備路由表中的ARP映射。Handoko[17]等通過使用SNMP創(chuàng)建實時網絡拓樸,設計并開發(fā)了可以監(jiān)控網絡節(jié)點信息的應用程序。Saheb[18]等通過結合ICMP和SNMP協(xié)議實現了網絡資源的自動發(fā)現和監(jiān)控。Roquero[19]等提出了一種具有靈活的多線程體系結構的SNMP管理器體系結構,并使用自適應輪詢算法有效減少了輪詢不斷增加的SNMP AGENT帶來的資源消耗。使用SNMP可獲得足夠多的主機信息用于資產管理,但是現有路由器大多默認不打開SNMP協(xié)議,且需要知道Community的值才能訪問MIB。
2.1.2 流量分析
流量分析往往用于被動探測,通過在網絡節(jié)點部署探針來捕獲數據,分析這些網絡流量的特征可以確定流量來源主機的某些特征[20]。不同操作系統(tǒng)對于TCP/IP協(xié)議棧的實現有所不同,可以根據TCP/IP數據報的指紋特征來區(qū)分操作系統(tǒng)的類別,常用的指紋特征有窗口大小、是否分片、數據包生存時間、最大報文長度、可選字段等。
應用層服務一般會使用較為固定的端口,可以通過TCP/IP數據包中的端口號來進行服務識別,其結果一般是較為準確的,服務及其對應的端口號見表1。

表1 常見服務對應的端口號
2.1.3 搜索引擎
搜索引擎,如百度、谷歌等是互聯(lián)網上最常見的工具,不同于這類普通搜索引擎,網絡安全搜索引擎如Shodan,可以搜索到主機及其打開的端口、服務等,除此之外,還能搜索到暴露公網的硬件設備,如路由器、打印機、網絡攝像頭等。Shodan支持關鍵詞搜索,如country:“CN”,可以搜索到位于中國的網絡資產。除了使用Shodan網頁進行搜索,還可以注冊并生成一個API key在編程開發(fā)時直接調用Shodan的搜索接口。Zolotykh[27-28]對Shodan的掃描行為進行了分析,發(fā)現其使用TCP和UDP協(xié)議進行掃描,且使用了許多強度不同的爬蟲進行端口探測和Banner信息抓取。除了Shodan之外,常見的網絡安全搜索引擎還有結合了Zmap的Censys、結合了Nmap的ZoomEye等。搜索引擎對于暴露于公網的網絡資產有著強大的搜索能力,且隱蔽性強,缺點在于還無法對內網資產進行有效探測。
2.2.1 無狀態(tài)技術
通常的TCP SYN掃描需要建立一個完整的會話,源主機向目標主機發(fā)送SYN請求后,如果目標主機返回SYN/ACK響應,表明目標端口處于打開狀態(tài),之后源主機發(fā)送RST報文斷開連接。Zmap和Masscan使用了TCP SYN無狀態(tài)掃描,無狀態(tài)指的是它們使用獨立的發(fā)送和接收線程,在發(fā)送SYN數據包時,對探測地址進行哈希編碼,而后發(fā)送RST取消連接,數據包發(fā)出后并不記錄目標主機的回執(zhí)狀態(tài),而是在目標響應SYN/ACK數據包時對其中的源IP、源端口等信息進行校驗,這樣避免了存儲連接狀態(tài)的開銷,缺點是會丟失大約2%的數據[6]。
2.2.2 并行化技術
為了進一步提高掃描速度,研究人員引入了并行化技術,如針對傳統(tǒng)掃描工具Nmap速度不夠快的問題,開發(fā)了使用分布式架構的DNmap[8]工具,提高了網絡掃描效率。Zmap的開發(fā)者在文獻[29]中對隨機IP生成操作進行分片,每組都能生成與其他組互不相交的隨機IP子集,使得該工具可以應用到多線程中。胡棟梁[30]等使用了三層模型的分布式架構,利用消息中間件改進了傳統(tǒng)單點主動掃描技術,降低了CPU使用率和掃描響應時間。
2.2.3 零拷貝技術
常用的探測工具使用Libpcap進行數據包的捕獲與發(fā)送,但數據采集性能不佳。PF_RING[31]被提出來提高數據采集性能,它是一種新型的套接字,其對性能的提高主要靠輪詢(Polling)、內存映射(Mmap)和環(huán)形緩沖區(qū)(Ring buffer)來實現。PF_RING的結構如圖1所示,在創(chuàng)建套接字時環(huán)形緩沖區(qū)也被創(chuàng)建出來,數據包在到達網卡后,處理器以輪詢的方式將數據寫入緩存區(qū),使用輪詢方式的優(yōu)點是可以減少處理器響應中斷的時間。內存映射使得應用程序可以直接讀取內核態(tài)環(huán)形緩沖區(qū)的數據,避免了將數據包從內核態(tài)到用戶態(tài)的一次拷貝。為了進一步減少開銷,PF_RING ZC(Zero Copy)實現了直接網卡訪問(Direct NIC Access,DNA)[32-33],將網卡內存和寄存器直接映射到用戶空間,支持了零拷貝技術,Zmap和Masscan都支持PF_RING ZC模式。面對網絡流量突發(fā)而出現隨機丟包的情況,Ye[34]等人在PF_RING的基礎上設計了可以自動調節(jié)內核緩沖區(qū)空間大小的PF_RING-TA。
對83例胃癌患者的性別,腫瘤的位置、直徑、Borrmann分型、分化程度、浸潤深度、淋巴結轉移和遠處轉移,以及新輔助化療和 CTC陽性等指標,進行COX單因素和多因素回歸分析。結果發(fā)現,胃癌患者術后生存的獨立影響因素為腫瘤分化程度、新輔助化療和 CTC陽性這3項指標(P值分別為0.035、0.011和<0.001,表2和表3)。

圖1 PF_RING結構
2.3.1 隨機IP地址生成
考慮到如果對一個IP地址空間的所有IP進行順序掃描很容易被入侵檢測系統(tǒng)或防火墻發(fā)現,所以有必要對所有IP打亂順序,生成隨機IP地址的方法主要有Zmap使用的基于素數原根的方法和Masscan使用的加密算法。Zmap的開發(fā)者在文獻[29]中又進一步對該操作進行分片,每組都能生成與其他組互不相交的隨機IP子集,使得該方法可以應用到多線程中。Beverly[10]開發(fā)的工具則通過加密算法生成隨機的IP地址和生存時間(Time To Live,TTL),使源主機能夠以隨機的TTL值和打亂的IP地址掃描目標地址空間。
2.3.2 多 源IP掃 描
為隱蔽掃描行為,可以使用多個源IP進行掃描,稀釋單個IP被發(fā)現的風險,使得各IP看起來像在進行正常通信。據研究,安全搜索引擎Shodan使用了超過40個IP地址進行掃描,而這些IP地址分布在超過10個國家和地區(qū)[27-28]。
對于操作系統(tǒng)的識別,除了使用常規(guī)的TCP/IP指紋庫進行匹配之外,將機器學習應用于操作系統(tǒng)識別的研究也越來越多。Lastovicka[35]等人選取TTL、TCP窗口大小、初始SYN包大小作為特征,對比了樸素貝葉斯、決策樹、K最近鄰算法、支持向量機四種機器學習算法,得出了決策樹最適合進行操作系統(tǒng)識別的結論。Fan[36]等人通過提取IP協(xié)議、TCP協(xié)議和TLS協(xié)議數據包的指紋特征,使用LightGBM算法(主要思想是利用弱分類器進行迭代以獲得最優(yōu)模型),通過實驗證明該算法的操作系統(tǒng)類型識別率達96.35%,操作系統(tǒng)版本識別率達84.72%,優(yōu)于Lastovicka在文獻[35]中得出的最優(yōu)算法。Song[37]等人基于端口號、TTL、是否分片、窗口大小等特征,對比了傳統(tǒng)的指紋匹配、K最近鄰算法、決策樹和神經網絡算法對操作系統(tǒng)的識別率,發(fā)現神經網絡算法的精確度達94%,高于其他識別方法。Kumar[38]等基于SYN包大小、TTL、窗口大小、HTTP USERAGENT等特征,對比了K最鄰近算法、人工神經網絡、決策樹、樸素貝葉斯、隨機森林5種算法,其中K最鄰近算法以96.22%的準確率成為操作系統(tǒng)識別最好的算法,并得出對分類結果影響最大的參數是TTL。可以看出,選取TCP/IP數據報首部的不同字段或者結合其他協(xié)議的某些字段都會影響機器學習在操作系統(tǒng)的識別率,如何選擇合適的指紋特征和機器學習算法是今后的重要課題。
網絡資產探測相關的三類技術總結如下:
掃描識別相關的技術主要有網絡協(xié)議、流量分析、搜索引擎,主要目標是掃描在線的主機、端口以及對運行的服務、操作系統(tǒng)進行識別。網絡協(xié)議主要指的是通過ARP、ICMP、TCP等協(xié)議進行網絡資產探測,優(yōu)點是速度快、應用范圍廣、可用于不自己產生流量的資產,缺點在于可能被防火墻阻擋、被入侵檢測系統(tǒng)發(fā)現、難以探測受到保護的資產。流量分析指的是通過收集網絡流量,分析其源頭的資產信息,優(yōu)點是不容易被發(fā)覺、受保護的資產也有一定發(fā)現能力,缺點是主要用于內網、速度取決于探針的位置、發(fā)現不了不產生流量的資產。搜索引擎指的是使用Shodan等網絡安全搜索引擎探測網絡資產,優(yōu)點是速度快、對于公網設備具有探測能力,缺點是不能用于內網、探測結果取決于搜索引擎。對比三種方法,從應用范圍角度,網絡協(xié)議眾多,既可用于公網,也可用于內網,流量分析主要應用于內網,搜索引擎主要應用于公網;從速度角度,網絡協(xié)議和搜索引擎速度較快,流量分析速度取決于探針位置;從隱蔽性角度,流量分析和搜索引擎不直接訪問目標,隱蔽性高于主動發(fā)送數據包的網絡協(xié)議。
性能優(yōu)化技術包括無狀態(tài)技術、并行化技術、零拷貝技術,主要目標是優(yōu)化主機、端口掃描的速度。無狀態(tài)技術是指不保存TCP SYN連接狀態(tài),使用獨立的發(fā)送和接收線程,優(yōu)點是避免了存儲連接狀態(tài)的開銷,缺點是會丟失一些數據包。并行化技術是指將并行化引入網絡資產探測,優(yōu)點是可以提高探測速度,缺點是增加了成本。零拷貝技術是指避免網卡到用戶態(tài)的數據拷貝,優(yōu)點是減少了數據包拷貝帶來的開銷,缺點是依然可能產生丟包。對比三種方法,從數據完整性角度,無狀態(tài)和零拷貝技術都會產生丟包問題,并行化技術不會;從開銷角度,無狀態(tài)和零拷貝技術都減少了開銷,而并行化技術增加了開銷。
隱蔽掃描技術包括隨機IP地址生成和多源IP掃描,主要目標在于隱蔽掃描主機、端口的行為。隨機IP地址生成指的是對于要掃描的目標IP地址空間,生成一個完整隨機不重復的序列,避免對目標進行順序掃描,優(yōu)點是增加了探測的隱蔽性,缺點是增加了計算隨機IP地址序列的開銷。多源IP掃描指的是使用多個源IP對目標進行掃描,優(yōu)點是能夠稀釋單個IP探測被發(fā)現的風險,缺點是增加了探測成本。對比兩種方法,從開銷角度,隨機IP地址生成增加了計算開銷,多源IP增加了成本開銷;從速度角度,隨機IP地址生成增加了探測時間,多源IP掃描可以結合并行技術,速度更快。
機器學習技術主要通過使用相關算法對TCP/IP協(xié)議指紋數據進行訓練以識別操作系統(tǒng)。其優(yōu)點是帶來了多種指紋特征識別的方法,準確率比傳統(tǒng)指紋匹配高。其缺點是增加了運算開銷,且不同研究選取的指紋不同,暫時還沒有統(tǒng)一的標準。
盡管網絡資產探測技術已經有了眾多科研成果,但要用于網絡資產全生命管理還需要在以下三個方向進一步研究:
(1)探測結果的全面性
進行網絡資產管理的前提就是要對被管理資產應知盡知,單個探測方法顯然不足以達到全面探測的效果,一方面可以針對被忽略的網絡資產研究新的探測方法,另一方面可以根據具體的場景結合多維探測技術以提高結果的全面性。
(2)探測結果的準確性
考慮到錯誤的探測結果可能不利于網絡資產全生命周期管理的漏洞管理流程,需要知道正確的服務、操作系統(tǒng)版本才能根據該版本存在的漏洞進行預防、彌補工作。傳統(tǒng)探測工具Nmap、新型的機器學習方法在操作系統(tǒng)識別準確率方面依然存在不足,還需進一步研究。
(3)探測速度
對于提高探測速度的研究很多,但是在提高探測速度的同時,又會產生數據包的丟失問題,進而導致探測結果的全面性和準確性下降,如何在保證全面性和準確性的情況下盡可能提高探測速度也需要深入研究。
網絡資產探測在網絡安全和網絡資產管理方面是必不可少的部分,面對發(fā)展越來越快的網絡技術和數量越來越多的網絡資產,如何快速、全面、準確地進行網絡資產探測也需要進一步研究。本文介紹了網絡資產探測一些相關的技術,希望可以基于這些技術開發(fā)更優(yōu)秀的網絡探測工具,為學校、企業(yè)等組織的網絡資產全生命周期管理提供便利。