在2012年6月6日全球IPv6啟動日,很多公司都為其產品和服務啟用了IPv6協議,這也讓我們有機會驗證IPv6安全性的誤解。人們普遍認為,因為IPv6增加的地址空間,從攻擊者的角度來看,IPv6主機掃描攻擊將需要花很多時間和精力,使得攻擊幾乎不可能。然而,事實并不是這樣。通過分析IPv6地址在互聯網上進行配置的方式,本文將介紹IPv6攻擊可行性的真實情況分析。
IPv6不可戰勝的神話
IPv6比IPv4有更大的地址空間。標準IPv6子網(在理論上)可以容納大約1.844 * 1019 個主機,因此其主機密度要比IPv4子網低得多(即,子網中主機數與可用IP地址數量的比率較低)。
因為IPv6地址空間數量如此巨大,很多人認為IPv6將使潛在的攻擊者很難對IPv6網絡執行主機掃描攻擊。有些人估計對單個IPv6子網的主機掃描攻擊可能需要5千萬年!
在IPv4互聯網中的主機掃描攻擊
在深入分析IPv6主機掃描攻擊的細節之前,讓我們來看看在IPv4互聯網中,主機掃描攻擊是如何執行的。IPv4的地址空間數量有限,整個IPv4地址空間(在理論上)由 232 個地址組成,IPv4子網通常有256個地址。因此,在典型的IPv4子網中,主機密度相對較高。IPv4主機掃描攻擊通常是按照以下方式執行的:
• 選定一個目標地址范圍
• 發送一個測試數據包到該范圍內的每一個地址
• 每個響應的地址都被認為是“可用的”
由于典型的IPv4子網的搜索空間比較小(通常是256個地址),并且這種子網的主機密度很高,對于大多數攻擊者而言,在目標網絡中按順序嘗試每個可能的地址已經足以發動攻擊。
在IPv6互聯網中的主機掃描攻擊
有兩個因素使IPv6的主機掃描攻擊比IPv4的攻擊更加困難:
• 典型的IPv6子網比IPv4子網更大(IPv6為264 個地址,而IPv4為256個地址) 。
• IPv6子網的主機密度比IPv4子網主機密度低得多
由于這兩個因素,在目標IPv6子網中,按順序試探每一個地址是不可行的,無論是從數據包/帶寬的角度來看,還是從執行攻擊需要的時間來看。
擊破IPv6安全神話
然而,IPv6主機掃描攻擊并非如此繁瑣和費時。我們需要認識到,IPv6主機地址并不是隨機分布在這相應的256個子網地址空間中,這意味著攻擊者在試圖確定“可行”節點時,實際上并不需要掃過整個子網地址空間。了解IPv6地址生成或者配置的方式,就明白了這種地址分配是非隨機的。
IPv6地址選擇
下圖顯示了IPv6全球單播地址。
IPv6全球單播地址,顧名思義,是用于互聯網通訊的IPv6地址(而不是,比方說,僅用于本地子網內通訊的本地地址)。它類似于IPv4:全球路由前綴通常由上游供應商分配,本地網絡管理員將組織網絡分成多個邏輯子網,而接口ID(IID)用來確定該子網中的特定網絡接口。
在選擇接口ID(IPv6地址的低階64位)時有很多選擇,包括:
• 嵌入MAC地址
• 采用低字節地址
• 嵌入IPv4地址
• 使用“繁復”的地址
• 使用隱私或臨時地址
• 依賴于過渡技術或共存技術
不幸的是,這些因素都減小了潛在的搜索空間,使IPv6主機掃描攻擊變得更容易實現。以下部分解釋了具體的原因:
嵌入式MAC地址
大多數IPv6主機是根據非營利組織互聯網協會(Internet Society)開發的無狀態地址自動分配(SLAAC)來生成它們的地址。SLAAC獲取MAC地址,在中間插入一個16位數字,在以太網的中,這讓接口ID(還是地址的低階64位)使用下面的語法:
在這種情況下,接口ID至少有16位是都知道的。接口ID的其余位(從底層以太網地址借來的位)也是按照特定的模式。
因此,在規劃IPv6主機掃描攻擊時,攻擊者可能已經知道了目標企業購買網絡設備的供應商的情況。攻擊者可以據此減少搜索空間到只有這些OUI(企業唯一標識符),也就是分配到該供應商的標識符。然后他們可以進一步縮小搜索空間,因為以太網地址的低階24位通常是根據制造的網絡接口卡按順序分配的。例如,如果企業從相應供應商購買了400個系統,這些系統可能有連續的以太網地址(并且連續的IPv6地址)。只要攻擊者通過嘗試隨機地址發現目標網絡中的一個節點,就可以根據嘗試連續地址,得到其他節點。