導(dǎo)讀:本文整理并總結(jié)了IPv6可能存在的安全威脅,從IPv4安全威脅延續(xù)、IPv6相關(guān)附屬協(xié)議和相關(guān)機(jī)制可能帶來的安全威脅、IPv6對安全硬件的影響及過渡技術(shù)的安全威脅四個方面進(jìn)行了分析與梳理。
本文整理并總結(jié)了IPv6可能存在的安全威脅,從IPv4安全威脅延續(xù)、IPv6相關(guān)附屬協(xié)議和相關(guān)機(jī)制可能帶來的安全威脅、IPv6對安全硬件的影響及過渡技術(shù)的安全威脅四個方面進(jìn)行了分析與梳理。
圖片來自“東方IC”
本文整理并總結(jié)了IPv6可能存在的安全威脅,從IPv4安全威脅延續(xù)、IPv6相關(guān)附屬協(xié)議和相關(guān)機(jī)制可能帶來的安全威脅、IPv6對安全硬件的影響及過渡技術(shù)的安全威脅四個方面進(jìn)行了分析與梳理。
一、 IPv4 安全威脅延續(xù)
(1) 報文監(jiān)聽
IPv6中可使用IPSec對其網(wǎng)絡(luò)層的數(shù)據(jù)傳輸進(jìn)行加密保護(hù),但RFC6434中不再強(qiáng)制要求實施IPSec,因此在未啟用IPSec的情況下,對數(shù)據(jù)包進(jìn)行監(jiān)聽依舊是可行的。
(2) 應(yīng)用層攻擊
IPv4網(wǎng)絡(luò)中應(yīng)用層可實施的攻擊在IPv6網(wǎng)絡(luò)下依然可行,比如SQL注入、緩沖溢出等,IPS、反病毒、URL過濾等應(yīng)用層的防御不受網(wǎng)絡(luò)層協(xié)議變化的影響。
(3) 中間人攻擊
啟用IPSec對數(shù)據(jù)進(jìn)行認(rèn)證與加密操作前需要建立SA,通常情況下動態(tài)SA的建立通過密鑰交換協(xié)議IKE、IKEv2實現(xiàn),由DH(Diffie-Hellman)算法對IKE密鑰載荷交換進(jìn)行安全保障[1],然而DH密鑰交換并未對通信雙方的身份進(jìn)行驗證,因此可能遭受中間人攻擊。
(4) 泛洪攻擊
在IPv4與IPv6中,向目標(biāo)主機(jī)發(fā)送大量網(wǎng)絡(luò)流量依舊是有效的攻擊方式,泛洪攻擊可能會造成嚴(yán)重的資源消耗或?qū)е履繕?biāo)崩潰。
(5) 分片攻擊
在IPv6中,中間節(jié)點不可以對分段數(shù)據(jù)包進(jìn)行處理,只有端系統(tǒng)可以對IP數(shù)據(jù)包進(jìn)行分分段與重組,因此攻擊者可能借助該性質(zhì)構(gòu)造惡意數(shù)據(jù)包。
在RFC8200中聲明禁止重組重疊的IPv6分片,且其限制最小MTU為1280字節(jié)[2],因此處理時將丟棄除最后分片外小于1280字節(jié)的分片,在一定程序上也緩解了分片攻擊。
(6) 路由攻擊
在IPv6下,由于部分路由協(xié)議并未發(fā)生變化,因此路由攻擊依舊可行。
(7) 地址欺騙
IPv6使用NDP協(xié)議替代了IPv4中的ARP協(xié)議,但由于實現(xiàn)原理基本一致,因此針對ARP協(xié)議的ARP欺騙、ARP泛洪等類似攻擊方式在IPv6中依舊可行。
二、 IPv6 引入的安全隱患
2.1 IPv6擴(kuò)展首部威脅
2.1.1 逐跳選項報頭
安全威脅
可利用逐跳選項報頭發(fā)送大量包含路由提示選項的IPv6數(shù)據(jù)包,包含有路由提示選項的數(shù)據(jù)包要求所有路由器對該數(shù)據(jù)包進(jìn)行處理并仔細(xì)查看該數(shù)據(jù)包的報頭信息[3],當(dāng)攻擊者發(fā)送大量此類IPv6數(shù)據(jù)包時,將消耗鏈路上路由器大量資源,嚴(yán)重可造成DoS攻擊。
應(yīng)對方式
應(yīng)當(dāng)限制路由器對包含路由提示選項的數(shù)據(jù)包的處理數(shù)量。
2.1.2 目的選項報頭
安全威脅
移動IPv6協(xié)議的數(shù)據(jù)通信以明文進(jìn)行傳輸,因此其本身便是不安全的,攻擊者可對MIPv6數(shù)據(jù)包進(jìn)行嗅探進(jìn)而識別其通信節(jié)點、轉(zhuǎn)交地址、家鄉(xiāng)地址、家鄉(xiāng)代理等信息,并利用這些信息偽造數(shù)據(jù)包。攻擊者可通過攔截類型為消息綁定更新的數(shù)據(jù)包,修改綁定關(guān)系中的轉(zhuǎn)交地址。此外,移動節(jié)點標(biāo)識符選項揭示了用戶的家鄉(xiāng)從屬關(guān)系,攻擊者可利用該選項確定用戶身份,鎖定特定的攻擊對象[4]。
應(yīng)對方式
可嘗試開啟IPSec保證數(shù)據(jù)包不會被竊聽[4]。
2.1.3 路由報頭
安全威脅
在RH0路由類型(即type 0)下,攻擊者可利用路由報頭選項偽裝成合法用戶接收返回的數(shù)據(jù)包。同時,RH0提供了一種流量放大機(jī)制,攻擊者可利用該類型進(jìn)行拒絕服務(wù)攻擊[5]。
雖然RH0已被正式棄用并啟用RH2[2],但舊的或未升級設(shè)備依然可能遭受RH0攻擊。
應(yīng)對方式
應(yīng)當(dāng)盡快更新安全設(shè)備并升級至最新的IPv6協(xié)議版本,同時對所有的RH0數(shù)據(jù)包進(jìn)行丟棄。
2.1.4 分段報頭
安全威脅
如若將關(guān)鍵的報頭信息切分在多個片段中,安全防護(hù)設(shè)備對關(guān)鍵信息進(jìn)行提取與檢測處理會耗費大量資源,構(gòu)造大量該類數(shù)據(jù)包可能對目標(biāo)主機(jī)造成DoS攻擊。
攻擊者可向節(jié)點發(fā)送大量不完整的分段集合,強(qiáng)迫節(jié)點等待片段集合的最后片段,節(jié)點在超時時間內(nèi)由于只接收到部分IPv6片段進(jìn)而無法完成重組,最終只能將數(shù)據(jù)包丟棄,在超時等待期間,會造成存儲資源的消耗。
應(yīng)對方式
防火墻應(yīng)該丟棄除最后分段外所有小于1280字節(jié)的所有分段。
Cisco ASA防火墻的FragGuard功能可以將所有的分片組裝并進(jìn)行整個數(shù)據(jù)包檢查用以確定是否存在丟失的分段或重疊分段。
根據(jù)RFC8200,IPv6節(jié)點已不能創(chuàng)建重疊分段,且在對IPv6報文進(jìn)行重組時,如若確定一個或多個片段為重疊片段,則必須對整個報文進(jìn)行丟棄[2]。
2.2 協(xié)議威脅
2.2.1 ICMPv6協(xié)議
安全威脅
可通過向組播地址FF02::1發(fā)送Echo Request報文,通過接收Echo Reply報文實現(xiàn)本地鏈路掃描,或以目標(biāo)節(jié)點作為源地址向組播地址FF02 :: 1發(fā)送ICMPv6 EchoRequest消息實現(xiàn)Smurf攻擊。
可通過向目標(biāo)節(jié)點發(fā)送ICMPv6 Packet too big報文,減小接收節(jié)點的MTU,降低傳輸速率。
可通過向目標(biāo)節(jié)點發(fā)送過多的ICMPv6包以及發(fā)送錯誤消息,導(dǎo)致會話被丟棄,從而破壞已建立的通信,實現(xiàn)DoS攻擊[6]。
可通過向主機(jī)發(fā)送格式不正確的消息刺激主機(jī)對ICMPv6的響應(yīng),從而通發(fā)現(xiàn)潛在的攻擊目標(biāo)[6]。
應(yīng)對方式
可在交換機(jī)的每個物理端口設(shè)置流量限制,將超出流量限制的數(shù)據(jù)包丟棄?;蛟诜阑饓蜻吔缏酚善魃蠁覫CMPv6數(shù)據(jù)包過濾機(jī)制,也可配置路由器拒絕轉(zhuǎn)發(fā)帶有組播地址的ICMPv6 EchoRequest報文。
可嘗試關(guān)閉PMTU發(fā)現(xiàn)機(jī)制,但其會影響到網(wǎng)絡(luò)數(shù)據(jù)的傳輸速率。
2.2.2 鄰居發(fā)現(xiàn)協(xié)議(NDP)
安全威脅
(1)中間人攻擊
由于NDP協(xié)議基于可信網(wǎng)絡(luò)因此并不具備認(rèn)證功能,因此可通過偽造ICMPv6 NA/RA報文實現(xiàn)中間人攻擊。攻擊者可以偽造NA報文,將自己的鏈路層地址并啟用覆蓋標(biāo)志(O)作為鏈路上其他主機(jī)的地址進(jìn)行廣播。攻擊者可偽造RA報文發(fā)送至目標(biāo)節(jié)點修改其默認(rèn)網(wǎng)關(guān)。
(2) 重復(fù)地址檢測攻擊
當(dāng)目標(biāo)節(jié)點向FF02 :: 16所有節(jié)點發(fā)送NS數(shù)據(jù)包進(jìn)行重復(fù)地址檢測時,攻擊者可向該節(jié)點發(fā)送NA報文進(jìn)行響應(yīng),并表明該地址已被自己使用。當(dāng)節(jié)點接收到該地址已被占用消息后重新生成新的IPv6地址并再一次進(jìn)行重復(fù)地址檢測時,攻擊者可繼續(xù)進(jìn)行NA響應(yīng)實現(xiàn)DoS攻擊。
(3) 泛洪攻擊
攻擊者可偽造不同網(wǎng)絡(luò)前綴RA消息對FF02 :: 1進(jìn)行進(jìn)行泛洪攻擊,接收節(jié)點將會根據(jù)不同的網(wǎng)絡(luò)前綴進(jìn)行更新,從而消耗大量的CPU資源。
應(yīng)對方式
安全鄰居發(fā)現(xiàn)(SEND)[7]協(xié)議是鄰居發(fā)現(xiàn)協(xié)議中的一個安全擴(kuò)展,其工作原理為使網(wǎng)絡(luò)中每個IPv6節(jié)點都有一對公私鑰以及多個鄰居擴(kuò)展選項。采用SEND協(xié)議后,各個節(jié)點的接口標(biāo)識符(IPv6地址低64比特)將基于當(dāng)前的IPv6網(wǎng)絡(luò)前綴與公鑰進(jìn)行計算產(chǎn)生,而不能由各個節(jié)點自行選擇。安全鄰居發(fā)現(xiàn)協(xié)議通過時間戳和Nonce選項抵御重放攻擊,并引入了CGA(密碼生成地址)與RSA簽名對數(shù)據(jù)源進(jìn)行驗證以解決鄰居請求/鄰居通告欺騙的問題。SEND雖然可以解決一定的安全問題,但目前系統(tǒng)與設(shè)備對SEND的支持十分有限。
RFC7113提出了IPv6安全RA方案RA-Guard[8],其通過阻斷非信任端口RA報文轉(zhuǎn)發(fā)來避免惡意RA可能帶來的威脅,在攻擊包實際到達(dá)目標(biāo)節(jié)點之前阻塞二層設(shè)備上的攻擊數(shù)據(jù)包。
使用訪問控制列表或空路由過濾對地址空間中未分配的部分的訪問,用以防止攻擊者迫使路由解析未使用的地址。
2.2.3 DHCPv6
安全威脅
(1)地址池耗盡攻擊
攻擊者可以偽裝為大量的DHCPv6客戶端,向DHCPv6服務(wù)器請求大量的IPv6地址,耗光IPv6地址池。
(2) 拒絕服務(wù)攻擊
攻擊者可向DHCPv6服務(wù)器發(fā)送大量的SOLICIT消息,強(qiáng)制服務(wù)器在一定時間內(nèi)維持一個狀態(tài),致使服務(wù)器CPU與文件系統(tǒng)產(chǎn)生巨大負(fù)擔(dān),直至無法正常工作。
(3) 偽造DHCPv6服務(wù)器
攻擊者可偽造成DHCPv6服務(wù)器向目標(biāo)客戶端發(fā)送偽造的ADVERTISE與REPLY報文,在偽造報文中攜帶虛假的默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器等信息,以此實現(xiàn)重定向攻擊。
應(yīng)對方式
對客戶端所有發(fā)送到FF02::1:2(所有DHCPv6中繼代理與服務(wù)器)和FF05::1:3(所有DHCPv6服務(wù)器)的消息數(shù)量進(jìn)行速率限制。
DHCPv6中內(nèi)置了認(rèn)證機(jī)制,認(rèn)證機(jī)制中的RKAP協(xié)議[9]可以對偽造DHCPv6服務(wù)器的攻擊行為提供防范。
三、 IPv6 對安全硬件的影響
3.1 防火墻
(1)IPv6報頭的影響
針對IPv6報文,防火墻必須對IPv6基本報頭與所有的擴(kuò)展首部進(jìn)行解析,才能獲取傳輸層與應(yīng)用層的信息,從而確定當(dāng)前數(shù)據(jù)報是否應(yīng)該被允許通過或是被丟棄。由于過濾策略相比IPv4更加復(fù)雜,在一定程度上將加劇防火墻的負(fù)擔(dān),影響防火墻的性能。
(2) IPSec的影響
如若在IPv6數(shù)據(jù)包中啟用加密選項,負(fù)載數(shù)據(jù)將進(jìn)行加密處理,由于包過濾型防火墻無法對負(fù)載數(shù)據(jù)進(jìn)行解密,無法獲取TCP與UDP端口號,因此包過濾型防火墻無法判斷是否可以將當(dāng)前數(shù)據(jù)包放行。
由于地址轉(zhuǎn)換技術(shù)(NAT)和IPSec在功能上不匹配,因此很難穿越地址轉(zhuǎn)換型防火墻利用IPSec進(jìn)行通信。
3.2 IDS&IPS
面對IPv6數(shù)據(jù)包,倘若啟用了加密選項,IDS與IPS則無法對加密數(shù)據(jù)進(jìn)行提取與分析,無法通過報文分析獲取TCP、UDP信息,進(jìn)而無法對網(wǎng)絡(luò)層進(jìn)行全面的安全防護(hù)。即便只允許流量啟用AH認(rèn)證報頭,但認(rèn)證報頭內(nèi)部具有可變長度字段ICV,因此檢測引擎并不能準(zhǔn)確地定位開始內(nèi)容檢查的位置。
四、過渡技術(shù)的安全性
4.1 雙棧技術(shù)
倘若雙棧主機(jī)不具備IPv6網(wǎng)絡(luò)下的安全防護(hù),而攻擊者與雙棧主機(jī)存在鄰接關(guān)系時,則可以通過包含IPv6前綴的路由通告應(yīng)答的方式激活雙棧主機(jī)的IPv6地址的初始化,進(jìn)而實施攻擊。
4.2 隧道技術(shù)
(1)隧道注入
攻擊者可通過偽造外部IPv4與內(nèi)部IPv6地址偽裝成合法用戶向隧道中注入流量。
(2) 隧道嗅探
位于隧道IPv4路徑上的攻擊者可以嗅探IPv6隧道數(shù)據(jù)包,并讀取數(shù)據(jù)包內(nèi)容。
4.3 翻譯技術(shù)
利用翻譯技術(shù)實現(xiàn)IPv4-IPv6網(wǎng)絡(luò)互聯(lián)互通時,需要對報文的IP層及傳輸層的相關(guān)信息進(jìn)行改動,因此可能會對端到端的安全產(chǎn)生影響,導(dǎo)致IPSec的三層安全隧道在翻譯設(shè)備處出現(xiàn)斷點。
翻譯設(shè)備作為網(wǎng)絡(luò)互通的關(guān)鍵節(jié)點,是DDoS攻擊的主要攻擊目標(biāo)。同時,翻譯設(shè)備還可能遭遇地址池耗盡攻擊,若IPv6攻擊者向IPv4服務(wù)器發(fā)送互通請求,但每條請求都具有不同的IPv6地址,則每條請求都將消耗一個地址池中的IPv4地址,當(dāng)出現(xiàn)大量該類請求時,便會將地址池耗盡,使得翻譯設(shè)備不再接受進(jìn)一步的請求。