如何對抗傳統(tǒng)SLAAC地址的主動(dòng)主機(jī)跟蹤?
為應(yīng)對傳統(tǒng)SLAAC地址的保密性問題,IETF提出了RFC 4941“IPv6自動(dòng)配置無狀態(tài)地址的保密性擴(kuò)展”;它通常稱為“臨時(shí)地址”。RFC 4941標(biāo)準(zhǔn)化的方案主要通過以下方式實(shí)現(xiàn):
• 臨時(shí)地址是使用隨機(jī)IID不斷重復(fù)生成的IPv6地址。
• 這些臨時(shí)地址包含傳統(tǒng)的SLAAC地址。也就是說,實(shí)現(xiàn)RFC 4941的節(jié)點(diǎn)不僅包含臨時(shí)地址,也包含傳統(tǒng)(固定的)SLAAC地址。
• 臨時(shí)地址將用于外出連接,而傳統(tǒng)的SLAAC地址用于進(jìn)入連接。也就是說,只有當(dāng)需要地址不會(huì)時(shí),才能使用傳統(tǒng)的SLAAC地址。
但是,臨時(shí)地址也有許多缺點(diǎn)。它們也無法避免地址掃描攻擊,它們并不能完全對抗主機(jī)跟蹤,而且通常會(huì)增加網(wǎng)絡(luò)操作復(fù)雜性。而且,在使用傳統(tǒng)SLAAS地址的時(shí)候會(huì)同時(shí)使用臨時(shí)地址(而不是替換),所以臨時(shí)地址幾乎無法抵抗地址掃描攻擊。
對于主機(jī)跟蹤,臨時(shí)地址不能徹底解決這些問題。例如,假設(shè)有一個(gè)攻擊者知道受攻擊節(jié)點(diǎn)的傳統(tǒng)SLAAC地址所使用IID,那么這個(gè)攻擊者也就知道了所攻擊節(jié)點(diǎn)可能連接的目標(biāo)網(wǎng)絡(luò)。在這種情況下,攻擊者就可以利用網(wǎng)絡(luò)前綴和所攻擊節(jié)點(diǎn)使用的不變IID,主動(dòng)讓受攻擊的節(jié)點(diǎn)連接各個(gè)目標(biāo)網(wǎng)絡(luò)。
這里的關(guān)鍵概念是,只要IID在網(wǎng)絡(luò)保持不變,攻擊者就可能利用它發(fā)起主機(jī)跟蹤攻擊。啟用臨時(shí)地址只能對抗被動(dòng)主機(jī)跟蹤攻擊(例如,通過連接攻擊者所操控服務(wù)器的受攻擊節(jié)點(diǎn)發(fā)起的攻擊)。然而,主動(dòng)主機(jī)跟蹤攻擊(攻擊者向目標(biāo)發(fā)送偵測數(shù)據(jù)包)仍然無法避免。
對抗主動(dòng)主機(jī)跟蹤
SI6 Networks的IPv6工具套件scan6工具是一個(gè)專門用于發(fā)起主動(dòng)IPv6主機(jī)跟蹤的IPv6地址掃描工具。它提供了許多選項(xiàng),可以指定攻擊節(jié)點(diǎn)可能連接的網(wǎng)絡(luò)和所使用的固定接口ID。
例如,假設(shè)有一個(gè)攻擊者知道一個(gè)傳統(tǒng)SLAAC地址為a00:27ff:fe89:7878的節(jié)點(diǎn)IID,那么這個(gè)節(jié)點(diǎn)可能只能連接網(wǎng)絡(luò)2001:db8:1::/64和2001:db8:2::/64。這時(shí),攻擊者就可以用scan6執(zhí)行以下命令:
# sudo scan6 -i eth0 -d 2001:db8:1::/64 -d 2001:db8:2::/64 -W a00:27ff:fe89:7878 -l -z 60 -t -v
這樣scan6就可以每隔60秒鐘攻擊IPv6地址2001:db8:1::a00:27ff:fe89:7878和 2001:db8:2::a00:27ff:fe89:7878。正如之前所提到的,即使目標(biāo)節(jié)點(diǎn)使用臨時(shí)地址,這種攻擊也可能生效,因?yàn)榕R時(shí)地址也包含傳統(tǒng)SLAAC地址。
scan6工具還可以從各個(gè)文件獲取目標(biāo)IID和目標(biāo)網(wǎng)絡(luò)前綴。例如,這個(gè)工具可以執(zhí)行以下命令:
# sudo scan6 -i eth0 -m PREFIXES-TXT -w IIDS.TXT -l -z 60 -t -v
在這種情況中,scan6工具將從文件PREFIXES.TXT獲取目標(biāo)IPv6前綴,從文件IIDS.TXT獲取目標(biāo)節(jié)點(diǎn)的IID。
可能的解決方法
顯然,臨時(shí)地址可以對抗關(guān)聯(lián)一個(gè)網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)活動(dòng),因?yàn)樗鼈儠?huì)讓遠(yuǎn)程攻擊者很難將許多通信實(shí)例關(guān)聯(lián)到同一個(gè)節(jié)點(diǎn)。
完全消除主機(jī)跟蹤攻擊則要求禁止節(jié)點(diǎn)使用在多個(gè)網(wǎng)絡(luò)中保持不變的IID。有一篇IETF提案“一種通過IPv6無狀態(tài)自動(dòng)配置(SLAAC)生成固定加強(qiáng)保密地址的方法”專門處理這個(gè)問題。它包括:
• 產(chǎn)生的IPv6地址將在網(wǎng)絡(luò)中保持不變(例如,在連接同一個(gè)網(wǎng)絡(luò)時(shí),主機(jī)總能獲得相同的地址),所以網(wǎng)絡(luò)操作不會(huì)受到負(fù)面影響。
• 當(dāng)主機(jī)從一個(gè)網(wǎng)絡(luò)切換到另一個(gè)網(wǎng)絡(luò)時(shí),它的IPv6地址會(huì)發(fā)生變化(從而對抗主機(jī)跟蹤攻擊)。
這個(gè)標(biāo)準(zhǔn)預(yù)計(jì)將在今年年底完成。雖然有許多供應(yīng)商表示有意支持這種方法,但是這種方法仍然需要一定時(shí)間才能廣泛部署,解決IPv6尋址安全和保密問題。