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