擊破IPv6安全神話
在2012年6月6日全球IPv6啟動(dòng)日,很多公司都為其產(chǎn)品和服務(wù)啟用了IPv6協(xié)議,這也讓我們有機(jī)會(huì)驗(yàn)證IPv6安全性的誤解。人們普遍認(rèn)為,因?yàn)镮Pv6增加的地址空間,從攻擊者的角度來(lái)看,IPv6主機(jī)掃描攻擊將需要花很多時(shí)間和精力,使得攻擊幾乎不可能。然而,事實(shí)并不是這樣。通過(guò)分析IPv6地址在互聯(lián)網(wǎng)上進(jìn)行配置的方式,本文將介紹IPv6攻擊可行性的真實(shí)情況分析。
本文引用地址:http://2s4d.com/article/154602.htmIPv6不可戰(zhàn)勝的神話
IPv6比IPv4有更大的地址空間。標(biāo)準(zhǔn)IPv6子網(wǎng)(在理論上)可以容納大約1.844 * 1019 個(gè)主機(jī),因此其主機(jī)密度要比IPv4子網(wǎng)低得多(即,子網(wǎng)中主機(jī)數(shù)與可用IP地址數(shù)量的比率較低)。
因?yàn)镮Pv6地址空間數(shù)量如此巨大,很多人認(rèn)為IPv6將使?jié)撛诘墓粽吆茈y對(duì)IPv6網(wǎng)絡(luò)執(zhí)行主機(jī)掃描攻擊。有些人估計(jì)對(duì)單個(gè)IPv6子網(wǎng)的主機(jī)掃描攻擊可能需要5千萬(wàn)年!
在IPv4互聯(lián)網(wǎng)中的主機(jī)掃描攻擊
在深入分析IPv6主機(jī)掃描攻擊的細(xì)節(jié)之前,讓我們來(lái)看看在IPv4互聯(lián)網(wǎng)中,主機(jī)掃描攻擊是如何執(zhí)行的。IPv4的地址空間數(shù)量有限,整個(gè)IPv4地址空間(在理論上)由 232 個(gè)地址組成,IPv4子網(wǎng)通常有256個(gè)地址。因此,在典型的IPv4子網(wǎng)中,主機(jī)密度相對(duì)較高。IPv4主機(jī)掃描攻擊通常是按照以下方式執(zhí)行的:
• 選定一個(gè)目標(biāo)地址范圍
• 發(fā)送一個(gè)測(cè)試數(shù)據(jù)包到該范圍內(nèi)的每一個(gè)地址
• 每個(gè)響應(yīng)的地址都被認(rèn)為是“可用的”
由于典型的IPv4子網(wǎng)的搜索空間比較小(通常是256個(gè)地址),并且這種子網(wǎng)的主機(jī)密度很高,對(duì)于大多數(shù)攻擊者而言,在目標(biāo)網(wǎng)絡(luò)中按順序嘗試每個(gè)可能的地址已經(jīng)足以發(fā)動(dòng)攻擊。
在IPv6互聯(lián)網(wǎng)中的主機(jī)掃描攻擊
有兩個(gè)因素使IPv6的主機(jī)掃描攻擊比IPv4的攻擊更加困難:
• 典型的IPv6子網(wǎng)比IPv4子網(wǎng)更大(IPv6為264 個(gè)地址,而IPv4為256個(gè)地址) 。
• IPv6子網(wǎng)的主機(jī)密度比IPv4子網(wǎng)主機(jī)密度低得多
由于這兩個(gè)因素,在目標(biāo)IPv6子網(wǎng)中,按順序試探每一個(gè)地址是不可行的,無(wú)論是從數(shù)據(jù)包/帶寬的角度來(lái)看,還是從執(zhí)行攻擊需要的時(shí)間來(lái)看。
然而,IPv6主機(jī)掃描攻擊并非如此繁瑣和費(fèi)時(shí)。我們需要認(rèn)識(shí)到,IPv6主機(jī)地址并不是隨機(jī)分布在這相應(yīng)的256個(gè)子網(wǎng)地址空間中,這意味著攻擊者在試圖確定“可行”節(jié)點(diǎn)時(shí),實(shí)際上并不需要掃過(guò)整個(gè)子網(wǎng)地址空間。了解IPv6地址生成或者配置的方式,就明白了這種地址分配是非隨機(jī)的。
IPv6地址選擇
IPv6全球單播地址,顧名思義,是用于互聯(lián)網(wǎng)通訊的IPv6地址(而不是,比方說(shuō),僅用于本地子網(wǎng)內(nèi)通訊的本地地址)。它類似于IPv4:全球路由前綴通常由上游供應(yīng)商分配,本地網(wǎng)絡(luò)管理員將組織網(wǎng)絡(luò)分成多個(gè)邏輯子網(wǎng),而接口ID(IID)用來(lái)確定該子網(wǎng)中的特定網(wǎng)絡(luò)接口。
在選擇接口ID(IPv6地址的低階64位)時(shí)有很多選擇,包括:
• 嵌入MAC地址
• 采用低字節(jié)地址
• 嵌入IPv4地址
• 使用“繁復(fù)”的地址
• 使用隱私或臨時(shí)地址
• 依賴于過(guò)渡技術(shù)或共存技術(shù)
不幸的是,這些因素都減小了潛在的搜索空間,使IPv6主機(jī)掃描攻擊變得更容易實(shí)現(xiàn)。以下部分解釋了具體的原因:
嵌入式MAC地址
大多數(shù)IPv6主機(jī)是根據(jù)非營(yíng)利組織互聯(lián)網(wǎng)協(xié)會(huì)(Internet Society)開(kāi)發(fā)的無(wú)狀態(tài)地址自動(dòng)分配(SLAAC)來(lái)生成它們的地址。SLAAC獲取MAC地址,在中間插入一個(gè)16位數(shù)字,在以太網(wǎng)的中,這讓接口ID(還是地址的低階64位)使用下面的語(yǔ)法:
在這種情況下,接口ID至少有16位是都知道的。接口ID的其余位(從底層以太網(wǎng)地址借來(lái)的位)也是按照特定的模式。
因此,在規(guī)劃IPv6主機(jī)掃描攻擊時(shí),攻擊者可能已經(jīng)知道了目標(biāo)企業(yè)購(gòu)買(mǎi)網(wǎng)絡(luò)設(shè)備的供應(yīng)商的情況。攻擊者可以據(jù)此減少搜索空間到只有這些OUI(企業(yè)唯一標(biāo)識(shí)符),也就是分配到該供應(yīng)商的標(biāo)識(shí)符。然后他們可以進(jìn)一步縮小搜索空間,因?yàn)橐蕴W(wǎng)地址的低階24位通常是根據(jù)制造的網(wǎng)絡(luò)接口卡按順序分配的。例如,如果企業(yè)從相應(yīng)供應(yīng)商購(gòu)買(mǎi)了400個(gè)系統(tǒng),這些系統(tǒng)可能有連續(xù)的以太網(wǎng)地址(并且連續(xù)的IPv6地址)。只要攻擊者通過(guò)嘗試隨機(jī)地址發(fā)現(xiàn)目標(biāo)網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),就可以根據(jù)嘗試連續(xù)地址,得到其他節(jié)點(diǎn)。
這些情況都說(shuō)明了只需要知道或者發(fā)現(xiàn)一些地址,攻擊者就能夠縮小他的搜索范圍,使IPv6主機(jī)掃描攻擊成為可能。
低字節(jié)地址
低字節(jié)地址是接口ID全是0的IPv6地址,除了最后8或16位(例如2001:db8::1、2001:db8::2等)。這些地址通常是手動(dòng)配置的(通常用于基礎(chǔ)設(shè)施),但是也可能是使用了一些動(dòng)態(tài)主機(jī)配置協(xié)議版本6(DHCPv6)服務(wù)器,這些服務(wù)器會(huì)從特定地址范圍按順序分配IPv6地址。當(dāng)采用低字節(jié)地址時(shí),IPv6地址搜索空間被縮小到(最多)216個(gè)地址,這使IPv6主機(jī)掃描攻擊變得更為可行。
嵌入式IPv4地址
互聯(lián)網(wǎng)工程任務(wù)組(IETF)規(guī)范允許IPv6地址以“2001:db8::W.X.Y.Z”的形式來(lái)表達(dá),而IPv4地址的形式為“W.X.Y.Z”。這種生成地址的形式通常出現(xiàn)在基礎(chǔ)設(shè)施設(shè)備中,因?yàn)槿绻撛O(shè)備的IPv4地址是已知的,就更容易“記住”設(shè)備的IPv6地址。其余的地址都是已知的或者可猜測(cè)出,所以采用嵌入式IPv4地址的網(wǎng)絡(luò)將有助于攻擊者將IPv6地址搜索空間縮小到與IPv4網(wǎng)絡(luò)相同的搜索空間。
“繁復(fù)”的地址
IPv6地址采用十六進(jìn)制(而不是小數(shù))符號(hào),這在手動(dòng)配置地址時(shí),增加一些創(chuàng)意。例如,F(xiàn)acebook的域名映射到IPv6地址是“2a03:2880:2110:3f02:face:b00c::”。確定這些“繁復(fù)”的地址的搜索空間并不簡(jiǎn)單,當(dāng)然,與整個(gè)IPv6空間相比時(shí),搜索空間還是有所減少了。曾經(jīng)有針對(duì)“繁復(fù)”地址的基于字典的IPv6主機(jī)掃描攻擊。
隱私/臨時(shí)地址
為了響應(yīng)主機(jī)跟蹤問(wèn)題,IETF在RFC 4941中標(biāo)準(zhǔn)化了“無(wú)狀態(tài)地址自動(dòng)配置的隱私擴(kuò)展”。在本質(zhì)上,RFC 4941規(guī)定接口ID應(yīng)該是隨機(jī)的,會(huì)隨著時(shí)間的變化而變化,以創(chuàng)建一個(gè)不可預(yù)見(jiàn)的地址。
評(píng)論