摘 要:為增強用戶IPv6地址的隱私性,蘋果生態(tài)操作系統(tǒng)(包括macOS、iOS和iPadOS)節(jié)點使用隨機接口標(biāo)識符和臨時IPv6地址。此外,因蘋果移動終端節(jié)點協(xié)議支持和防火墻配置的特殊性,導(dǎo)致現(xiàn)有本地鏈路IPv6地址掃描技術(shù)存在IPv6地址掃描結(jié)果完整度低、缺乏對移動終端節(jié)點支持的問題。為此,提出一種基于主機標(biāo)識符關(guān)聯(lián)的雙棧節(jié)點IPv6地址快速掃描技術(shù)(HScan6)。首先通過地址解析協(xié)議(ARP)掃描獲取本地鏈路中活躍的IPv4地址,然后通過DNS服務(wù)發(fā)現(xiàn)(DNS-SD)協(xié)議獲取與活躍IPv4地址相關(guān)聯(lián)的主機標(biāo)識符;接著使用組播DNS(mDNS)協(xié)議獲取與主機標(biāo)識符相關(guān)聯(lián)的IPv6地址;最后利用互聯(lián)網(wǎng)控制報文協(xié)議第六版(ICMPv6)差錯報告功能對同一主機的不同全球單播地址進行分類,以區(qū)分永久和臨時IPv6全球單播地址。構(gòu)建了一個由4個桌面版本(macOS)和6個移動版本(iOS和iPadOS)蘋果生態(tài)操作系統(tǒng)組成的典型IPv6本地鏈路環(huán)境,將HScan6同兩個基于雙棧關(guān)聯(lián)的IPv6地址掃描方法LLMNR6和LinkScan6及Nmap工具的4個IPv6地址掃描腳本進行比較。實驗結(jié)果表明,LLMNR6和LinkScan6無法有效掃描到這些節(jié)點的IPv6地址,而與Nmap的4個腳本相比,HScan6可額外掃描多達(dá)20個IPv6地址,有效提升了IPv6地址掃描結(jié)果的完整度。此外,具體到單個蘋果生態(tài)操作系統(tǒng),HScan6可額外多檢測1~2個IPv6全球單播地址。
關(guān)鍵詞:IPv6;地址掃描;蘋果生態(tài)操作系統(tǒng);DNS服務(wù)發(fā)現(xiàn);組播DNS;主機標(biāo)識符
中圖分類號:TP393.08"" 文獻標(biāo)志碼:A
文章編號:1001-3695(2024)12-033-3772-05
doi: 10.19734/j.issn.1001-3695.2024.04.0152
IPv6 address fast scanning technology for dual-stack nodes based on host identifier association
Fang Yakai1a, Zhang Liancheng2, Guo Yi2, Zhang Hongtao1b, Cheng Lanxin2
(1. a. School" of" Cyber Science amp; Engineering, b. Network Management Center, Zhengzhou University, Zhengzhou 450001, China; 2. College of Cyberspace Security, Information Engineering University, Zhengzhou 450002, China )
Abstract:To enhance the privacy of user IPv6 addresses, Apple ecosystem operating system (including macOS, iOS and iPadOS) nodes employ random interface identifiers and temporary IPv6 addresses. Moreover, the unique protocol support and firewall configurations of Apple’s mobile terminal nodes contribute to the existing deficiencies in local link IPv6 address scanning technologies, characterized by low completeness of scanning results and a lack of support for mobile terminal nodes. To address the aforementioned issues, this paper proposed a novel technology named HSacn6, which was based on host identifier-associated dual-stack node IPv6 address rapid scanning technology. Initially, HScan6 conducted an address resolution protocol (ARP) scan to identify active IPv4 addresses within the local network. Subsequently, it utilized the domain name system ser-vice discovery (DNS-SD) protocol to retrieve the host identifiers associated with these active IPv4 addresses. Then, it employed the multicast DNS (mDNS) protocol to obtain the IPv6 addresses associated with the host identifiers. Finally, using the error reporting function of Internet control message protocol version 6 (ICMPv6), different global unicast addresses of the same host were classified to distinguish between permanent and temporary IPv6 global unicast addresses. To validate the effectiveness and advancement of the HScan6 technology, this study constructed a typical" on-line IPv6 network environment comprising 4 desktop versions (macOS) and 6 mobile versions (iOS and iPadOS) of the Apple ecosystem operating system. In this network environment, HScan6 was compared with two dual-stack-associated IPv6 address scanning methods, LLMNR6 and LinkScan6, and 4 IPv6 address scanning scripts from the Nmap tool. The experimental results indicate that LLMNR6 and LinkScan6 are unable to effectively scan the IPv6 addresses of these nodes. In contrast, when compared with the 4 scripts from Nmap, HScan6 could additionally scan up to 20 IPv6 addresses, significantly enhancing the completeness of the IPv6 address scanning results. Moreover, concerning individual Apple ecosystem operating systems, HScan6 can detect an additional 1 to 2 global unicast IPv6 addresses.
Key words:IPv6; address scanning; Apple ecosystem operating system; DNS-SD; mDNS; host identifier
隨著IPv4地址的耗盡,現(xiàn)有緩解地址耗盡的NAT(network address translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)破壞了互聯(lián)網(wǎng)端到端模型,增加了網(wǎng)絡(luò)的復(fù)雜性[1]。因此,全球網(wǎng)絡(luò)向IPv6發(fā)展勢在必行。2023年,全球IPv6部署率達(dá)36.5%,全球各個主要國家的IPv6用戶數(shù)量大幅提升[2]。隨著IPv6網(wǎng)絡(luò)的廣泛部署,網(wǎng)絡(luò)產(chǎn)品的IPv6支持度呈快速增長趨勢,截至2023年10月,支持IPv6的設(shè)備達(dá)6 806款,較2020年增長30%。據(jù)全球IPv6測試中心調(diào)查顯示,在常見的34款操作系統(tǒng)中,已有81%默認(rèn)安裝IPv6協(xié)議棧[2]。IPv6部署規(guī)模的擴大以及IPv6網(wǎng)絡(luò)設(shè)備數(shù)量的提升,使得IPv6網(wǎng)絡(luò)面臨的安全風(fēng)險大大增加。因此,對IPv6網(wǎng)絡(luò)進行深入的安全評估,并據(jù)此制定相應(yīng)的安全策略,已成為一項至關(guān)重要的任務(wù)。在此背景下,IPv6地址掃描作為一項基礎(chǔ)性工作,是安全評估和策略制定的關(guān)鍵支撐。
在安全評估方面,IPv6地址掃描技術(shù)可為網(wǎng)絡(luò)管理員發(fā)現(xiàn)IPv6主機潛在漏洞與安全弱點提供存活主機列表。此外,在安全策略制定過程中,IPv6地址掃描所得到的結(jié)果,可為網(wǎng)絡(luò)安全策略的制定與調(diào)整提供關(guān)鍵的參考依據(jù)。根據(jù)IPv6地址掃描的結(jié)果,網(wǎng)絡(luò)管理員能夠精確定位潛在的安全風(fēng)險,進而采取有效的預(yù)防措施,以保障IPv6網(wǎng)絡(luò)的安全性和可靠性。然而,相較于僅有32位長度的IPv4地址,IPv6地址長度高達(dá)128位,其地址空間是IPv4地址空間的296倍。由于IPv6龐大的地址空間以及稀疏的地址分布,若直接將IPv4網(wǎng)絡(luò)環(huán)境中的遍歷式地址掃描技術(shù)(如ZMap[3]和Masscan[4])應(yīng)用在IPv6網(wǎng)絡(luò)中,即使以全速運行模式掃描IPv6本地鏈路常用64位前綴下的所有IPv6地址,仍需至少上百萬年時間才能完成,這顯然是不可接受的。為此,研究人員利用IPv6網(wǎng)絡(luò)協(xié)議,通過發(fā)送探測數(shù)據(jù)包,誘導(dǎo)主機將自身IPv6地址配置發(fā)送給掃描主機。但是隨著各大操作系統(tǒng)廠商對地址隱私的越發(fā)重視,上述簡單有效的本地鏈路IPv6地址掃描方法面臨受到防火墻攔截而失效的風(fēng)險。
根據(jù)Fioccola等人[5]的調(diào)查數(shù)據(jù)顯示,雙棧技術(shù)是有線和蜂窩網(wǎng)絡(luò)中采用最多的解決方案。相較于純IPv6環(huán)境,雙棧技術(shù)增加了新的威脅面,即IPv4協(xié)議棧。以現(xiàn)有技術(shù)可以相對簡便地獲取IPv4網(wǎng)絡(luò)中的相關(guān)信息。而在這些信息中存在一些在IPv4/IPv6協(xié)議棧中共享的信息(如主機標(biāo)識符、MAC地址等),即雙棧關(guān)聯(lián)信息。通過雙棧關(guān)聯(lián)信息即可在本地鏈路中唯一確定一臺主機并獲取其IPv6地址。綜上所述,對IPv6本地鏈路主機進行基于雙棧信息關(guān)聯(lián)的IPv6地址掃描可行且具有現(xiàn)實意義。然而,當(dāng)前大多數(shù)基于雙棧信息關(guān)聯(lián)的本地鏈路IPv6地址掃描技術(shù)主要針對Windows節(jié)點和部分Linux節(jié)點,而缺乏對蘋果生態(tài)操作系統(tǒng)節(jié)點(包括macOS、iOS和iPadOS)的關(guān)注。針對上述問題,本文使用IPv6雙棧主機關(guān)聯(lián)信息(主機標(biāo)識符)獲取IPv6地址,并設(shè)計實現(xiàn)了一個自動掃描IPv6本地鏈路蘋果生態(tài)操作系統(tǒng)節(jié)點IPv6地址的工具HScan6。
本文的主要貢獻如下:a)針對蘋果生態(tài)操作系統(tǒng)提出一種有效的基于雙棧關(guān)聯(lián)信息的IPv6地址掃描方法,相較于之前技術(shù),本文方法能夠掃描到完整度最高的IPv6存活地址;b)針對蘋果移動終端節(jié)點特點,使用DNS服務(wù)發(fā)現(xiàn)(DNS service discovery,DNS-SD)協(xié)議和組播DNS(multicast DNS,mDNS)協(xié)議完成本地鏈路IPv6地址掃描任務(wù),使本文方法支持獲取蘋果移動終端節(jié)點的IPv6地址;c)基于所提技術(shù),設(shè)計并實現(xiàn)了IPv6地址掃描工具HSacn6,通過對比實驗驗證其有效性和先進性。
1 相關(guān)工作
根據(jù)掃描節(jié)點與被掃描節(jié)點是否在同一鏈路,IPv6地址掃描技術(shù)可分為遠(yuǎn)程鏈路IPv6地址掃描技術(shù)和本地鏈路IPv6地址掃描技術(shù)兩類。
1.1 遠(yuǎn)程鏈路IPv6地址掃描技術(shù)
由于IPv6的地址空間遠(yuǎn)大于IPv4,且地址分布極為稀疏,故遠(yuǎn)程鏈路IPv6地址掃描技術(shù)主要關(guān)注如何減少地址掃描空間,從而增加掃描速度?,F(xiàn)有的遠(yuǎn)程鏈路IPv6地址掃描技術(shù)大致可分為基于地址統(tǒng)計信息的IPv6地址掃描技術(shù)和基于地址預(yù)測的IPv6地址掃描技術(shù)。
基于地址統(tǒng)計信息的IPv6地址掃描技術(shù)在已知IPv6網(wǎng)絡(luò)前綴的情況下,通過分析常見接口標(biāo)識符生成模式,如低字節(jié)嵌入[6]、服務(wù)端口嵌入[6]、IPv4地址嵌入[6]、單詞嵌入[6]、EUI-64(64-bit extended unique identifier,64位擴展唯一標(biāo)識符)[7]和改進的EUI-64[7]等,有效減少IPv6地址搜索空間。
基于地址預(yù)測的IPv6地址掃描技術(shù)通過多種方式(如啟發(fā)式算法[8~14]、機器學(xué)習(xí)算法[15~18])挖掘IPv6種子地址的密度或結(jié)構(gòu)信息,并據(jù)此生成可能存活的IPv6地址集合,有效減少了地址搜索空間,提升了地址掃描速度。
然而,為增強用戶的地址隱私,多數(shù)節(jié)點開始使用隨機IID(interface identifier,接口標(biāo)識符),使得基于地址統(tǒng)計信息的IPv6地址掃描技術(shù)難以根據(jù)已知IID生成模式發(fā)現(xiàn)活躍地址。同時,文獻[19]也指出啟發(fā)式算法難以發(fā)現(xiàn)隨機化IPv6地址中隱藏的地址模式,導(dǎo)致遠(yuǎn)程鏈路IPv6地址掃描技術(shù)存在預(yù)測準(zhǔn)確率低的問題。
1.2 本地鏈路IPv6地址掃描技術(shù)
現(xiàn)有的本地鏈路IPv6地址掃描技術(shù)可分為基于IPv6單棧信息的IPv6地址掃描技術(shù)和基于雙棧關(guān)聯(lián)信息的IPv6地址掃描技術(shù)。
1.2.1 基于IPv6單棧信息的IPv6地址掃描技術(shù)
該類技術(shù)通過發(fā)送各種類型的IPv6探測報文,誘導(dǎo)IPv6主機將自身的IPv6地址配置反饋給掃描主機,從而完成IPv6地址的探測。現(xiàn)有基于IPv6單棧信息的本地鏈路IPv6地址掃描技術(shù)主要有MP6(multicast Ping6,組播Ping6)掃描、IEH(invalid extension header,無效擴展報頭)掃描、SLAAC(stateless address autoconfiguration,無狀態(tài)地址自動配置)掃描和MLD(multicast listener discovery,組播偵聽者發(fā)現(xiàn))掃描。
其通過向鏈路本地范圍所有節(jié)點組播地址ff02∶∶1發(fā)送不同類型的ICMPv6[20]探測數(shù)據(jù)包,如ICMPv6回送請求、路由器公告(router advertisement,RA)報文、攜帶無效擴展報頭的ICMPv6報文或MLD報文等,捕獲IPv6本地鏈路內(nèi)活躍主機的響應(yīng)或差錯報文并從中解析出IPv6地址。然而,隨著地址安全意識的提升,上述簡單有效的本地鏈路IPv6地址掃描技術(shù)存在被防火墻或二層交換機屏蔽的風(fēng)險(如SLAAC掃描)。
1.2.2 基于雙棧關(guān)聯(lián)信息的IPv6地址掃描技術(shù)
該類技術(shù)創(chuàng)新性地利用IPv4/IPv6協(xié)議棧的公用信息,即雙棧關(guān)聯(lián)信息,完成IPv6地址掃描。首先在IPv4網(wǎng)絡(luò)中發(fā)現(xiàn)活躍主機并獲取其雙棧關(guān)聯(lián)信息,如主機名、MAC(media access control,媒體訪問)地址等,接著使用相關(guān)協(xié)議解析雙棧關(guān)聯(lián)信息獲取其對應(yīng)主機的IPv6地址。
現(xiàn)有基于雙棧關(guān)聯(lián)信息的IPv6地址掃描技術(shù)主要有基于主機名查詢的本地鏈路IPv6地址掃描技術(shù)LLMNR6[21]和LinkScan6[22]、基于DNS-SD的本地鏈路IPv6地址掃描技術(shù)[23]。
基于主機名查詢的本地鏈路Windows節(jié)點IPv6地址掃描技術(shù)通過NetBIOS名稱服務(wù)(NetBIOS name service,NBNS)在IPv4網(wǎng)絡(luò)環(huán)境中發(fā)現(xiàn)活躍主機的NetBIOS名稱,接著使用鏈路本地組播名稱解析(link-local multicast name resolution,LLMNR)協(xié)議或mDNS協(xié)議由NetBIOS名稱獲取IPv6地址。
基于DNS-SD的本地鏈路IPv6地址掃描技術(shù)在純IPv4環(huán)境下獲取本地鏈路活躍主機所有使用DNS-SD協(xié)議的服務(wù)記錄,并進一步獲取其在本地鏈路的主機名,最后根據(jù)主機名通過查詢其AAAA記錄以獲取雙棧主機的IPv6地址。
通過分析,現(xiàn)有本地鏈路IPv6地址掃描技術(shù)主要存在以下問題:a)IPv6地址掃描結(jié)果完整度不高。IPv6節(jié)點存在單點多址典型特性,即1個IPv6節(jié)點一般存在1個鏈路本地地址和2個全球單播地址,現(xiàn)有本地鏈路IPv6地址掃描技術(shù)只能掃描到少量IPv6地址,且大多數(shù)本地鏈路IPv6地址掃描技術(shù)在掃描蘋果生態(tài)操作系統(tǒng)節(jié)點時,最多只能掃描到其鏈路本地地址和1個臨時IPv6全球單播地址,存在地址掃描結(jié)果完整度不高的問題。b)基于雙棧關(guān)聯(lián)信息的IPv6地址掃描方法難以掃描到移動終端節(jié)點的IPv6地址?,F(xiàn)有基于雙棧關(guān)聯(lián)信息的IPv6地址掃描方法主要針對桌面和服務(wù)器版本操作系統(tǒng),而移動終端節(jié)點所搭載的操作系統(tǒng)通常具有不同的協(xié)議支持和防火墻配置,現(xiàn)有基于雙棧關(guān)聯(lián)信息的IPv6地址掃描方法難以應(yīng)用在移動終端節(jié)點中。
2 基于主機標(biāo)識符關(guān)聯(lián)的雙棧節(jié)點IPv6地址快速掃描技術(shù)
本章針對基于雙棧關(guān)聯(lián)信息的本地鏈路IPv6地址掃描技術(shù)IPv6地址掃描結(jié)果完整度低、缺乏對移動終端節(jié)點支持的問題,在分析蘋果生態(tài)操作系統(tǒng)IPv4/IPv6雙棧節(jié)點存在主機標(biāo)識符關(guān)聯(lián)特征的基礎(chǔ)上,提出一種基于主機標(biāo)識符關(guān)聯(lián)的雙棧節(jié)點IPv6地址快速掃描技術(shù)。
2.1 蘋果生態(tài)操作系統(tǒng)雙棧節(jié)點主機標(biāo)識符關(guān)聯(lián)特征分析
繼1.2節(jié)對本地鏈路IPv6地址掃描技術(shù)面臨問題的分析,本節(jié)進一步分析當(dāng)前主流桌面和移動版本的蘋果生態(tài)操作系統(tǒng)節(jié)點。可以發(fā)現(xiàn),上述蘋果生態(tài)操作系統(tǒng)節(jié)點已經(jīng)默認(rèn)啟用了IPv6協(xié)議棧,且大多處于IPv4和IPv6雙協(xié)議棧共存狀態(tài)。此外,本文發(fā)現(xiàn)這些雙協(xié)議棧節(jié)點共享同一個主機標(biāo)識符?;谶@一關(guān)聯(lián)特性,本文提出基于主機標(biāo)識符關(guān)聯(lián)的雙棧節(jié)點IPv6地址快速掃描技術(shù)。
a)蘋果生態(tài)操作系統(tǒng)節(jié)點上IPv4與IPv6雙協(xié)議棧共存。雙棧技術(shù)是實現(xiàn)IPv4協(xié)議向IPv6協(xié)議平滑過渡的關(guān)鍵技術(shù)之一,是有線和蜂窩網(wǎng)絡(luò)中采用最多的過渡技術(shù)[5]。該技術(shù)能夠識別和處理使用不同協(xié)議的數(shù)據(jù)報文,允許網(wǎng)絡(luò)節(jié)點根據(jù)目的地址選擇恰當(dāng)?shù)膮f(xié)議棧進行數(shù)據(jù)傳輸。雙棧技術(shù)實現(xiàn)了網(wǎng)絡(luò)在IPv4與IPv6之間的無縫切換,保證了網(wǎng)絡(luò)的連通性和數(shù)據(jù)傳輸?shù)目煽啃?。目前市面上主流蘋果生態(tài)操作系統(tǒng)均已默認(rèn)開啟IPv6協(xié)議棧,且大多處于IPv4和IPv6協(xié)議棧共存的狀態(tài)。
b)蘋果生態(tài)操作系統(tǒng)節(jié)點雙協(xié)議棧共用唯一主機標(biāo)識符。主機標(biāo)識符用于標(biāo)識網(wǎng)絡(luò)上的不同主機,若多個主機共用一個主機標(biāo)識符,將導(dǎo)致網(wǎng)絡(luò)通信錯誤及服務(wù)訪問出錯等問題,因此,在本地鏈路中每個主機的主機標(biāo)識符是唯一的?;谝陨戏治觯诒镜劓溌分?,蘋果生態(tài)操作系統(tǒng)節(jié)點IPv4/IPv6雙協(xié)議棧具有唯一的主機標(biāo)識符。
c)利用主機標(biāo)識符關(guān)聯(lián)可有效縮減本地鏈路IPv6地址掃描空間。主機標(biāo)識符關(guān)聯(lián)首先在IPv4網(wǎng)絡(luò)環(huán)境下獲取存活節(jié)點的主機標(biāo)識符,接著通過主機標(biāo)識符獲取其對應(yīng)的IPv6地址,巧妙地將IPv6本地鏈路環(huán)境下的大地址空間掃描任務(wù)轉(zhuǎn)換為IPv4局域網(wǎng)環(huán)境下的小地址空間掃描任務(wù)。有效將待掃描地址空間縮減了248~256倍,大大提升了本地鏈路IPv6地址掃描效率。
基于以上分析,同時為解決現(xiàn)有基于雙棧關(guān)聯(lián)信息的本地鏈路IPv6地址掃描技術(shù)難以獲取移動終端IPv6地址、掃描結(jié)果完整度不高的問題,研究分析IPv4/IPv6雙棧節(jié)點之間存在的關(guān)聯(lián)與共用信息,利用雙棧節(jié)點共享DNS-SD服務(wù)中主機標(biāo)識符的特點,提出可提高IPv6地址掃描結(jié)果完整度且支持移動終端地址掃描的新方法,其總體流程如圖1所示。
2.2 基于主機標(biāo)識符關(guān)聯(lián)的IPv6快速掃描技術(shù)主要步驟
DNS-SD協(xié)議是蘋果公司提供的零配置網(wǎng)絡(luò)協(xié)議Bonjour的一部分,允許設(shè)備作為服務(wù)的提供者或使用者發(fā)布或發(fā)現(xiàn)服務(wù)。當(dāng)設(shè)備作為服務(wù)的使用者時,DNS-SD協(xié)議允許其獲取本地鏈路中的服務(wù)詳細(xì)信息,其中存在能夠標(biāo)志提供服務(wù)主機的信息,即主機標(biāo)識符。從而可以進一步使用mDNS協(xié)議發(fā)現(xiàn)主機標(biāo)識符對應(yīng)蘋果生態(tài)操作系統(tǒng)節(jié)點的IPv6地址信息(包括鏈路本地地址和所有全球單播地址)。且市面上常見的蘋果生態(tài)操作系統(tǒng)中均支持DNS-SD協(xié)議和mDNS協(xié)議(macOS 10.14.5、iOS和iPadOS 11.4及以上的操作系統(tǒng)均支持上述協(xié)議)。故可以用DNS-SD協(xié)議發(fā)現(xiàn)存活主機的主機標(biāo)識符。
2.2.1 IPv4活躍地址探測模塊
該模塊的主要功能是完成IPv4局域網(wǎng)中活躍主機的探測?,F(xiàn)有能夠完成上述功能的協(xié)議主要有互聯(lián)網(wǎng)控制報文協(xié)議(Internet control message protocol,ICMP)[24]、傳輸控制協(xié)議(transmission control protocol,TCP)[25]和地址解析協(xié)議(address resolution protocol,ARP)[26]。ICMP和TCP掃描分別通過向目標(biāo)主機發(fā)送Ping請求和SYN連接請求,獲取目標(biāo)主機響應(yīng),以此判斷目標(biāo)主機的活躍性,但上述兩種協(xié)議易受到防火墻或入侵檢測系統(tǒng)(IDS)的屏蔽或攔截。而ARP協(xié)議是IPv4網(wǎng)絡(luò)的基礎(chǔ)協(xié)議之一,負(fù)責(zé)完成由IPv4地址到MAC地址的映射,所以ARP報文不易受到屏蔽或限制。由于所有操作系統(tǒng)均在其內(nèi)部實現(xiàn)了該協(xié)議,相較于使用DNS-SD協(xié)議通過組播方式獲取服務(wù)記錄間接獲取IPv4局域網(wǎng)內(nèi)活躍節(jié)點的方式,使用ARP掃描對IPv4局域網(wǎng)進行遍歷式活躍地址探測能夠獲得最完整的IPv4局域網(wǎng)內(nèi)活躍地址集,有效提高了HScan6工具的可擴展性。
基于上述事實,該模塊首先獲取IPv4網(wǎng)絡(luò)地址范圍,接著使用遍歷式方法向該地址范圍內(nèi)的所有主機發(fā)送ARP請求包,以獲得活躍主機的響應(yīng),最后解析該響應(yīng)包,從中獲得活躍主機的IPv4地址及其對應(yīng)的MAC地址。
2.2.2 主機標(biāo)識信息發(fā)現(xiàn)模塊
DNS-SD協(xié)議定義了主動查詢主機開放服務(wù)和查詢服務(wù)詳細(xì)信息的功能,其中前者通過向目標(biāo)主機發(fā)送查詢名為“_services._dns-sd._udp.local”,類型為PTR記錄的DNS查詢報文,誘導(dǎo)目標(biāo)主機返回自身開放的服務(wù)名稱,而后者則向目標(biāo)主機以服務(wù)名稱為查詢名的DNS查詢報文,使目標(biāo)主機返回該服務(wù)的詳細(xì)信息。根據(jù)上述原理,主機標(biāo)識信息發(fā)現(xiàn)模塊首先構(gòu)造查詢名為“_services._dns-sd._udp.local”的DNS-SD查詢報文,其目標(biāo)IPv4地址與目標(biāo)MAC地址分別為IPv4地址發(fā)現(xiàn)模塊發(fā)現(xiàn)的活躍主機對應(yīng)的IPv4地址和MAC地址。接著,監(jiān)聽5353端口以獲取對應(yīng)的響應(yīng)數(shù)據(jù)包,以獲取對應(yīng)節(jié)點開放的服務(wù),并解析出目標(biāo)主機開放的服務(wù)名稱。然后,根據(jù)目標(biāo)主機的開放服務(wù)名稱,構(gòu)造獲取服務(wù)詳細(xì)信息的DNS-SD查詢,接收響應(yīng)并從中解析出主機標(biāo)識符。
2.2.3 IPv6地址快速發(fā)現(xiàn)模塊
該模塊完成主機標(biāo)識符解析功能,即根據(jù)主機標(biāo)識符獲取目標(biāo)主機IPv6地址?,F(xiàn)有能夠完成該功能的協(xié)議主要有LLMNR和mDNS。
LLMNR協(xié)議能夠解析NetBIOS名稱獲取本地鏈路主機的IPv6地址。經(jīng)過對該協(xié)議的分析與測試,發(fā)現(xiàn)目前主流蘋果生態(tài)操作系統(tǒng)節(jié)點普遍不提供LLMNR服務(wù),使得上述技術(shù)針對IPv6本地鏈路的蘋果生態(tài)操作系統(tǒng)節(jié)點難以有效完成主機標(biāo)識符解析工作。而mDNS協(xié)議在主流蘋果生態(tài)操作系統(tǒng)中支持度高,并且定義了通過服務(wù)詳細(xì)信息中的主機標(biāo)識符查詢到對應(yīng)蘋果生態(tài)操作系統(tǒng)節(jié)點的IPv6地址的功能。因此,本文使用mDNS協(xié)議進行IPv6地址快速發(fā)現(xiàn)。據(jù)此,該模塊構(gòu)造并發(fā)送目的MAC地址為標(biāo)準(zhǔn)組播MAC地址01∶00∶5E∶00∶00∶FB、目的IPv6地址為mDNS特殊組播地址ff02∶∶fb、詢問內(nèi)容為IPv4主機標(biāo)識信息的mDNS IPv6地址探測包,蘋果生態(tài)操作系統(tǒng)節(jié)點收到該探測包之后會將自身的IP配置信息反饋給查詢主機,即可從中解析出其配置的IPv6地址信息。
2.2.4 IPv6地址分類與補充模塊
永久IPv6全球單播地址具有持久性和穩(wěn)定性。在IPv6地址集中找出其中的永久IPv6全球單播地址,有助于建立持久性數(shù)據(jù)集,以進行長期研究與分析。在上述獲取IPv6地址信息的過程中,由于IPv6地址以AAAA記錄的形式包含在數(shù)據(jù)包中,故解析出的IPv6地址集存在難以有效區(qū)分同一主機的永久與臨時IPv6全球單播地址的問題。因此,引入該模塊完成對同一主機的不同全球單播地址的分類。
同時,因現(xiàn)實網(wǎng)絡(luò)中各節(jié)點設(shè)置的差異性,導(dǎo)致少部分節(jié)點難以有效獲取到其臨時IPv6全球單播地址。故針對該部分主機,此模塊用于完成對IPv6臨時全球單播地址的補全。
根據(jù)互聯(lián)網(wǎng)控制報文協(xié)議第六版(Internet control message protocol version 6,ICMPv6)[20]定義的差錯報告功能,若主機接收到源地址為全球單播地址,目的地址為鏈路本地范圍內(nèi)所有節(jié)點組播地址ff02∶∶1,并帶有錯誤選項的ICMPv6數(shù)據(jù)包時,將以該主機的臨時IPv6全球單播地址作為源地址回應(yīng)一個差錯報文。據(jù)此,該模塊遵循上述機制向ff02∶∶1發(fā)送包含錯誤選項的ICMPv6報文,隨后接收響應(yīng)的差錯報文,并從中解析出臨時IPv6全球單播地址及源MAC地址。最后,將從差錯報告報文中得到的臨時IPv6全球單播地址與IPv6地址集中具有相同MAC地址的全球單播地址進行對比和檢查,從而完成對同一主機不同全球單播地址的有效分類和補充。
3 對比實驗及結(jié)果分析
為檢驗本文提出技術(shù)的有效性,設(shè)計實現(xiàn)了HScan6工具,并將其與主流IPv6地址掃描工具進行比較,選擇MP6(targets-ipv6-multicast-echo)、SLAAC(targets-ipv6- multicast-slaac)、MLD(targets-ipv6-multicast-mld)和IEH(targets-ipv6-multicast-invalid-dst)四個Nmap腳本[27],以及當(dāng)前最新的基于主機名查詢的兩個本地鏈路IPv6地址掃描工具LLMNR6[21]和LinkScan6[22]。
3.1 實驗環(huán)境
在如圖2所示包含4個桌面版本的蘋果生態(tài)操作系統(tǒng)節(jié)點(macOS 10、macOS 11、macOS 12和macOS 13)和6個移動版本的蘋果生態(tài)操作系統(tǒng)節(jié)點(iOS 15、iOS 16、iOS 17、iPadOS 15、iPadOS 16和iPadOS 17)的IPv6網(wǎng)絡(luò)環(huán)境中進行對比實驗。掃描主機的配置為IntelCore(TM) i7-9750H(6核,2.6 GHz)和16 GB RAM。所有節(jié)點的防火墻均采用默認(rèn)配置。
3.2 對比實驗結(jié)果與分析
所測試腳本與工具對于蘋果生態(tài)操作系統(tǒng)節(jié)點的掃描能力如表1、2和圖3所示。
由表1可以看到,HScan6工具至少比Nmap腳本多檢測10個IPv6地址,使用HScan6可以獲得相對最完整的蘋果生態(tài)操作系統(tǒng)節(jié)點IPv6地址,比MP6和IEH腳本多獲得10個IPv6地址,比MLD腳本多獲取20個IPv6地址,比SLAAC腳本、LLMNR6掃描工具和LinkScan6掃描工具多獲得30個IPv6地址。
如圖3所示,從掃描結(jié)果完整度方面來看,HScan6能夠掃描到桌面版本和移動版本蘋果生態(tài)操作系統(tǒng)最完整的IPv6地址。平均每個節(jié)點掃描到的IPv6地址數(shù)是MP6和IEH地址掃描腳本的1.5倍,是MLD腳本的3倍。同時,由圖3可發(fā)現(xiàn),LLMNR6和LinkScan6掃描工具難以有效獲取到蘋果生態(tài)操作系統(tǒng)節(jié)點的IPv6地址,其主要原因是:當(dāng)前主流蘋果生態(tài)操作系統(tǒng)節(jié)點均不支持通過NBNS協(xié)議獲取節(jié)點對應(yīng)的主機名,進而使得上述兩種IPv6地址掃描工具無法通過主機名關(guān)聯(lián)到蘋果生態(tài)操作系統(tǒng)節(jié)點的IPv6地址。
由表2可知,HScan6可發(fā)現(xiàn)4個桌面版本蘋果生態(tài)操作系統(tǒng)的所有IPv6地址(包括鏈路本地地址和所有全球單播地址),而且能夠發(fā)現(xiàn)6個移動版本蘋果生態(tài)操作系統(tǒng)的18個IPv6地址。具體到單個移動版本蘋果生態(tài)操作系統(tǒng),兩個基于主機名查詢的本地鏈路IPv6地址掃描工具LLMNR6和LinkScan6無法發(fā)現(xiàn)蘋果移動終端節(jié)點的IPv6地址,而HScan6能夠發(fā)現(xiàn)其鏈路本地地址和所有IPv6全球單播地址。相較于其他基于雙棧關(guān)聯(lián)信息的IPv6地址掃描工具,HScan6可有效獲取蘋果移動終端節(jié)點的IPv6地址。而對比Nmap的4個地址掃描腳本,HScan6可發(fā)現(xiàn)最完整的IPv6地址。
使用MP6和IEH腳本可以獲得蘋果生態(tài)操作系統(tǒng)節(jié)點的臨時IPv6全球單播地址和鏈路本地地址,其主要原因是上述兩種腳本會分別會以掃描主機的所有全球單播地址和鏈路本地地址為源地址,給目標(biāo)主機發(fā)送ICMPv6探測報文,當(dāng)目標(biāo)主機接收到以臨時IPv6全球單播地址為源地址的探測包時,會同樣以臨時IPv6全球單播地址為源地址響應(yīng)該探測包。同理,目標(biāo)主機會以鏈路本地地址為源地址響應(yīng)源地址為鏈路本地地址的探測包。為了保障主機的地址隱私,目標(biāo)主機通常不會以永久IPv6全球單播地址為源地址來響應(yīng)ICMPv6探測報文。
SLAAC地址掃描腳本無法掃描到任何有效的IPv6地址的主要原因是實驗設(shè)備置于一個二層交換機之后,該交換機中基于ICMPv6的訪問控制列表只會接收來自直接相連的路由器發(fā)出的ICMPv6 RA報文,過濾掉來自非信任端口的RA報文。
4 結(jié)束語
為快速且完整地獲取IPv6本地鏈路中蘋果生態(tài)操作系統(tǒng)節(jié)點的全球單播地址和鏈路本地地址,本文提出一種基于主機標(biāo)識符關(guān)聯(lián)的雙棧節(jié)點IPv6地址快速掃描技術(shù),利用IPv4/IPv6雙協(xié)議棧關(guān)聯(lián)信息來檢測IPv6存活地址,適用于IPv4和IPv6協(xié)議棧共存的網(wǎng)絡(luò)。所開發(fā)的HScan6工具能夠掃描10個主流版本(包括4個macOS版本、3個iOS版本和3個iPadOS版本)的蘋果生態(tài)操作系統(tǒng),迅速獲取所有IPv6全球單播地址和鏈路本地地址,并為后續(xù)掃描IPv6網(wǎng)絡(luò)資產(chǎn)、發(fā)現(xiàn)潛在安全漏洞并優(yōu)化網(wǎng)絡(luò)配置等提供存活主機列表支持。
接下來,計劃優(yōu)化收發(fā)包流程,進一步提升IPv6地址掃描效率。利用節(jié)點其他信息,使IPv6地址掃描技術(shù)支持IPv6單棧,降低IPv6地址掃描技術(shù)應(yīng)用門檻。依據(jù)IPv6地址掃描測試結(jié)果,綜合多種技術(shù)的特長與優(yōu)勢實現(xiàn)對IPv6本地鏈路節(jié)點操作系統(tǒng)覆蓋率的進一步提升。
參考文獻:
[1]Hain T. RFC 2993, Architectural implications of NAT [S]. 2000.
[2]Global IPv6 Testing Center. 2023全球IPv6支持度白皮書 [EB/OL]. (2023) [2024-04-08]. https://www. ipv6testingcenter. com/index/index/download.(Global IPv6 Testing Center. 2023 global IPv6 support white paper [EB/OL]. (2023) [2024-04-08]. https://www. ipv6testingcenter. com/index/index/download.)
[3]Durumeric Z, Wustrow E, Halderman J A. ZMap: fast Internet-wide scanning and its security applications [C]// Proc of the 22nd USENIX Security Symposium. Berkeley, CA: USENIX Association, 2013: 605-619.
[4]Graham R D. MASSCAN: mass IP port scanner [EB/OL]. (2014) [2024-04-08]. https://github. com/robertdavidgraham/masscan.
[5]Fioccola G, Volpato P, Palet M J, et al. RFC 9386, IPv6 deployment status [S]. 2023.
[6]Gont F, Chown T. RFC 7707, Network reconnaissance in IPv6 networks [S]. 2016.
[7]Hinden R, Deering S. RFC 4291, IP version 6 addressing architecture [S]. 2006.
[8]Murdock A, Li F, Bramsen P, et al. Target generation for Internet-wide IPv6 scanning [C]// Proc of Internet Measurement Conference. New York: ACM Press, 2017: 242-253.
[9]Liu Zhizhu, Xiong Yingqiao, Liu Xin, et al. 6Tree: efficient dynamic discovery of active addresses in the IPv6 address space [J]. Computer Networks, 2019, 155: 31-46.
[10]Yang Tao, Cai Zhiping, Hou Bingnan, et al. 6Forest: an ensemble learning-based approach to target generation for Internet-wide IPv6 scanning [C]//Proc of IEEE Conference on Computer Communications. Piscataway, NJ: IEEE Press, 2022: 1679-1688.
[11]Song Guanglei, Yang Jiahai, Wang Zhiliang, et al. DET: enabling efficient probing of IPv6 active addresses [J]. IEEE/ACM Trans on Networking, 2022, 30 (4): 1629-1643.
[12]Foremski P, Plonka D, Berger A. Entropy/IP: uncovering structure in IPv6 addresses [C]// Proc of Internet Measurement Conference. New York: ACM Press, 2016: 167-181.
[13]Yang Tao, Hou Bingnan, Cai Zhiping, et al. 6Graph: a graph-theoretic approach to address pattern mining for Internet-wide IPv6 scanning [J]. Computer Networks, 2022, 203: 1-12.
[14]李果, 何林, 宋光磊, 等. 基于多層級分類和空間建模的IPv6活躍地址發(fā)現(xiàn)算法 [J]. 清華大學(xué)學(xué)報:自然科學(xué)版, 2021, 61 (10): 1177-1185. (Li Guo, He Lin, Song Guanglei, et al. IPv6 active address discovery algorithm based on multi-level classification and space modeling [J]. Journal of Tsinghua University:Science and Technology, 2021, 61 (10): 1177-1185.)
[15]Cui Tianyu, Gou Gaopeng, Xiong Gang. 6GCVAE: gated convolutional variational autoencoder for IPv6 target generation [C]// Advances in Knowledge Discovery and Data Mining. Cham: Springer, 2020: 609-622.
[16]Cui Tianyu, Xiong Gang, Gou Gaopeng, et al. 6VecLM: language modeling in vector space for IPv6 target generation [M]// Dong Y, Mladeni O, Saunders C. Machine Learning and Knowledge Discovery in Databases: Applied Data Science Track. Cham: Springer, 2021: 192-207.
[17]Cui Tianyu, Gou Gaopeng, Xiong Gang, et al. 6GAN: IPv6 multi-pattern target generation via generative adversarial nets with reinforcement learning [C]// Proc of IEEE Conference on Computer Communications. Piscataway, NJ: IEEE Press, 2021: 1-10.
[18]Hou Bingnan, Cai Zhiping, Wu Kui, et al. 6Hit: a reinforcement learning-based approach to target generation for Internet-wide IPv6 scanning [C]// Proc of IEEE Conference on Computer Communications. Piscataway, NJ: IEEE Press, 2021: 1-10.
[19]鄧裕立, 王軼駿, 薛質(zhì). 高隨機化IPv6地址集合的地址模式過濾方法 [J]. 計算機應(yīng)用與軟件, 2022, 39 (11): 112-118. (Deng Yuli, Wang Yijun, Xue Zhi. Pattern filtering method for highly randomize IPv6 address collection [J]. Computer Application and Software, 2022, 39 (11): 112-118.)
[20]Conta A, Deering S, Gupta M. RFC 4443, Internet control message protocol (ICMPv6) for the Internet protocol version 6 (IPv6) specification [S]. 2006.
[21]Hu Ming, Zhang Liancheng, Zhang Hongtao, et al. LLMNR6: a hostname query based IPv6 address fast scanning technology for dual-stack Windows nodes [C]// Proc of the 15th International Conference on Computer Modeling and Simulation. New York: ACM Press, 2023: 241-246.
[22]Hu Ming, Zhang Liancheng, Guo Yi, et al. Hostname correlation based IPv6 address fast scanning technology of Windows nodes [C]// Proc of the 22nd IEEE International Conference on Communication Technology . Piscataway, NJ: IEEE Press, 2022: 1353-1357.
[23]施凡, 鐘瑤, 薛鵬飛, 等. 基于SSDP和DNS-SD協(xié)議的雙棧主機發(fā)現(xiàn)方法及其安全分析 [J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2023, 9 (1): 56-66. (Shi Fan, Zhong Yao, Xue Pengfei, et al. Dual-stack host discovery method based on SSDP and DNS-SD protocol [J]. Chinese Journal of Network and Information Security, 2023, 9 (1): 56-66.)
[24]Postel J. RFC 792, Internet control message protocol [S]. 1981.
[25]Postel J. RFC 793, Transmission control protocol [S]. 1981.
[26]Plummer D C. RFC 826, An Ethernet address resolution protocol [S]. 1982.
[27]Lyon G F. Nmap network scanning: the official Nmap project guide to network discovery and security scanning [M]. Sunnyvale, CA: Insecure, 2009.