如何避免雙協(xié)議棧網(wǎng)絡(luò)VPN流量泄露
RFC 6724規(guī)定了一種算法來從IPv6和IPv4地址列表中選擇目標(biāo)地址。RFC 6555(名為“快樂的眼球:雙協(xié)議棧主機的成功”)中討論了選擇最合適的目的地址面臨的挑戰(zhàn),并推薦了可行的部署方法。
意外的VPN流量泄露并不是這個問題的唯一關(guān)注點。通過假裝為本地IPv6路由器,本地攻擊者可以發(fā)送偽造的ICMPv6路由器通告消息來故意觸發(fā)受害主機上的IPv6連接。這些數(shù)據(jù)包可以使用標(biāo)準(zhǔn)軟件(例如rtadvd)或者數(shù)據(jù)包編寫工具(例如IPv6工具包)來發(fā)送。一旦啟用了IPv6連接,與雙協(xié)議棧系統(tǒng)的通信將可能導(dǎo)致VPN流量泄露,正如《VPN流量泄露問題是如何出現(xiàn)的》所說的。
由于支持IPv6的網(wǎng)站越來越多,這種攻擊是可行的,但只有當(dāng)目標(biāo)系統(tǒng)是雙協(xié)議棧,才會導(dǎo)致流量泄露。然而,給任何目標(biāo)系統(tǒng)帶來這樣的VPN泄露并不是難事。攻擊者可以簡單地發(fā)送偽造的路由器通告消息(包含相應(yīng)的RDNSS選項),就可以假裝成本地遞歸DNS服務(wù)器,然后執(zhí)行DNS欺騙攻擊變成中間人,并攔截流量。對于無意泄露的情況,數(shù)據(jù)包編寫工具(例如IPv6工具包)可以很容易地執(zhí)行這種攻擊。
VPN泄漏的緩解措施
我們可以通過很多緩解措施來避免雙協(xié)議棧網(wǎng)絡(luò)中的VPN泄露問題。最簡單的方法(雖然不一定是最可取的)是在采用VPN連接時,禁用所有網(wǎng)絡(luò)接口卡中的IPv6連接。運行VPN客戶端軟件的主機上的應(yīng)用將只能夠采用IPv4,對此,VPN軟件應(yīng)該做好準(zhǔn)備來保護(hù)其安全。
網(wǎng)絡(luò)可以通過部署第一跳安全模型,例如路由器通告防護(hù)(RA-Guard)和DHCPv6-Shield,來防止本地攻擊者成功地執(zhí)行針對其他本地主機的上述攻擊。然而很明顯,當(dāng)連接到開放網(wǎng)絡(luò)時,主機不能依靠這些緩解措施。請記住,即使RA-Guard大量部署,也很容易受到泄露攻擊。
有些人可能認(rèn)為最全面的緩解措施應(yīng)該是在VPN軟件中加入IPv6支持,并讓VPN服務(wù)器提供IPv6連接。雖然這種辦法在當(dāng)前很多情況下不可行,但這種辦法可能有一定意義,因為IPv6的自動配置為路由器(同時還為攻擊者)插入其他路由信息提供了多種方法。例如,攻擊者仍然能夠通過執(zhí)行一些“鄰居發(fā)現(xiàn)”攻擊來造成IPv6流量泄露,例如發(fā)送偽造ICMPv6重定向消息、偽造有路由信息選項(例如,“更具體的路由”)的路由廣播、偽造的宣傳“高優(yōu)先級”路由器的路由廣播等。即使VPN軟件支持IPv6,一些VPN部署將很有可能在短期內(nèi)仍然容易受到這種類型的攻擊。
結(jié)論
IPv6和IPv4協(xié)議的微妙互動,以及(不幸的)既定的說法:如果有人計劃部署IPv6,安全性將是一個問題,可能造成不良后果,例如無意的VPN流量泄露。由于大多數(shù)通用操作系統(tǒng)是雙協(xié)議棧的,大多數(shù)網(wǎng)絡(luò)至少部分是雙協(xié)議棧的,這意味著IPv6的安全影響不容忽視?;ヂ?lián)網(wǎng)對地址空間不斷增加的需求必然導(dǎo)致廣泛采用和部署IPv6協(xié)議。在采用和部署之前,企業(yè)應(yīng)該全面了解相應(yīng)的安全隱患。