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