圖1:IPv6頭信息鏈示例

分片頭是其中一種特殊類型的擴展頭,它包含了實現(xiàn)IPv6分片所需要的機制。與IPv4頭不同,IPv6不是將所有分片相關(guān)信息保存在固定的IPv6頭中,而是將這些信息保存在一個可選的分片頭中。因此,執(zhí)行分片的主機只需要在IPv6頭信息鏈中插入一個分片頭信息,再添加需要分片的原始數(shù)據(jù)包。

IPv6防火墻對安全的影響

上述IPv6頭信息鏈結(jié)構(gòu)的靈活性優(yōu)于IPv4,因為它不限制數(shù)據(jù)包可以包含的數(shù)量。然而,這種靈活性也是有代價的。

任何需要獲取上層信息(如TCP端口號)的系統(tǒng),都需要處理整個IPv6頭信息鏈。而且,由于當前的協(xié)議標準支持任意數(shù)量的擴展頭,包括同一種擴展頭的多個實例,因此它會對防火墻等設(shè)備造成多種影響:

– 防火墻需要解析多個擴展頭,才能夠執(zhí)行深度數(shù)據(jù)包檢測(DPI),它可能會降低WAN性能,引發(fā)拒絕服務(wù)(DoS)攻擊,或者防火墻被繞過。

– 組合擴展頭和分片可能妨礙數(shù)據(jù)包檢測。

正如前面介紹的,由于當前的協(xié)議規(guī)范支持任意數(shù)量的擴展頭,包括同一種擴展頭類型的多個實例,因此防火墻必須能夠細致地處理包括異常的多IPv6擴展頭信息的數(shù)據(jù)包。而這可能被一些攻擊者利用,他們可能故意在數(shù)據(jù)包中加入大量的擴展頭,使防火墻在處理上述數(shù)據(jù)包時浪費過多資源。最終,這可能會引起防火墻性能下降,或者造成防火墻本身出現(xiàn)DoS問題。此外,有一些性能不佳的防火墻在應(yīng)用過濾策略時,可能無法處理整個IPv6頭信息鏈,從而可能讓一些攻擊者利用擴展頭威脅相應(yīng)的防火墻。

IPv6分片也可能被惡意利用,方法與IPv4的類似。例如,為了破壞防火墻的過濾策略,攻擊者可能會發(fā)送一些重疊的分片,從而影響目標主機的分片重組過程。在IPv6中,這個問題更為嚴重,因為多個IPv6擴展頭和分片的組合可能產(chǎn)生一些錯誤分片,盡管它們的數(shù)據(jù)包大小是“正常的”,但是它們丟失了一些實施過濾策略通常需要的基本信息,如TCP端口號。即,數(shù)據(jù)包的第一個分片可能包含很多IPv6選項,以致上層協(xié)議頭可能屬于另一個分片,而不是第一個分片。

IPv6轉(zhuǎn)換/共存技術(shù)

IPv6轉(zhuǎn)換/共存技術(shù)還給IPv6防火墻帶來另一個問題。大多數(shù)轉(zhuǎn)換技術(shù)都使用某種通道機制,它在一種網(wǎng)絡(luò)協(xié)議(通常是IPv4)中封裝另一種網(wǎng)絡(luò)層協(xié)議(通常是IPv6)。這會對防火墻的安全性造成很多影響。

首先,防火墻可能無法識別特定的轉(zhuǎn)換技術(shù),也可能無法應(yīng)用一些原生IPv6流量支持的過濾策略。例如,在使用原生IPv4或原生IPv6時,一個網(wǎng)站可以阻擋通向TCP端口25的數(shù)據(jù)包,但是在部署了Teredo 等轉(zhuǎn)換機制后,它可能無法阻擋這些數(shù)據(jù)包。

其次,轉(zhuǎn)換技術(shù)可能會加劇上述問題,因為不僅封裝的流量可能使用組合的IPv6擴展頭和分片,其他向外發(fā)送的數(shù)據(jù)包(通常是IPv4)也可能是分片的,因此這都會大大增加最終流量的復(fù)雜性。這種復(fù)雜性不僅會降低網(wǎng)絡(luò)流量傳輸速度,更嚴重的是,它還可能影響防火墻的過濾策略。例如,防火墻可能無法處理整個頭信息鏈,從而無法找到TCP分片(參見下圖)。下圖的示例顯示的是使用Teredo的TCP/IPv6數(shù)據(jù)包的語法,說明了最終流量的復(fù)雜程度。


圖2:一個使用Teredo的TCP/IPv6數(shù)據(jù)包示例

這個數(shù)據(jù)包的結(jié)構(gòu)可能會變得更復(fù)雜,例如,如果內(nèi)外數(shù)據(jù)包都分片了。

可能的IPv6安全問題

顯然,為了應(yīng)用IPv6數(shù)據(jù)包過濾策略,防火墻至少必須支持整個IPv6頭信息鏈的處理。理想情況下,這些防火墻還應(yīng)該支持IPv6轉(zhuǎn)換技術(shù),這樣應(yīng)用于原生IPv6流量的過濾策略可以同樣應(yīng)用到轉(zhuǎn)換流量上。也就是說,防火墻應(yīng)該有一個“默認拒絕”策略,這樣防火墻就能夠阻擋您不需要的流量,如轉(zhuǎn)換流量。

對于可能利用多擴展頭的資源耗盡攻擊,在防火墻上限制一個IPv6數(shù)據(jù)包支持的最大擴展頭數(shù)量可以解決這個問題。合理的限制是允許每一個當前定義的擴展頭只出現(xiàn)一個實例。然而,也可以使用“16”等其他限制值——例如,OpenBSD就采用這個限制值。這種限制允許合法流量,但不允許異常多數(shù)量的擴展頭。超過限制的數(shù)據(jù)包必須丟棄。雖然這可能會影響性能,但是能夠防止DoS。

最后,規(guī)定在IPv6報文的第一個分片中包含應(yīng)用數(shù)據(jù)包過濾策略所需要的完整數(shù)據(jù)包頭信息,能夠應(yīng)付使用分片的防火墻繞行技術(shù)。也就是說,在防火墻接收到的報文第一個分片中,如果不包含完整的上層協(xié)議頭信息,如TCP頭,那么這個數(shù)據(jù)包就會被丟棄。防火墻繞行技術(shù)還可以在應(yīng)用過濾策略之前,通過在防火墻中重新組合分片的報文來解決。然而,對于基于網(wǎng)絡(luò)的防火墻而言,至少這并不是一種推薦的方法,因為它可能會留下DoS漏洞。

解決IPv6防火墻問題

正如本文所介紹的,IPv6防火墻面臨許多問題,但是它們可以通過合理的防火墻設(shè)計和操作解決。在購買防火墻設(shè)備時,必須對IPv6防火墻支持仔細評估,因為不同產(chǎn)品的支持差別很大,支持不佳的防火墻可能會對企業(yè)網(wǎng)絡(luò)安全造成負面影響。

分享到

huanghui

相關(guān)推薦