VPN的主要功能是將互聯(lián)網(wǎng)流量封裝在一個(gè)加密隧道中,并隱藏用戶的IP地址。但是近日,研究人員發(fā)現(xiàn)一種名為TunnelVision的攻擊方法,可以竊取幾乎所有VPN應(yīng)用的流量。
研究人員表示除了安卓系統(tǒng)之外,幾乎所有其他操作系統(tǒng)中的VPN應(yīng)用目前都沒(méi)有辦法防御此類攻擊。
研究人員還指出,這種攻擊技術(shù)可能從2002年就已存在,并且可能已經(jīng)被發(fā)現(xiàn)并用于實(shí)戰(zhàn)。
攻擊方法詳解
研究者發(fā)布的攻擊演示視頻(鏈接在文末)解釋了TunnelVision的技術(shù)細(xì)節(jié),“受害者的流量將被解密并直接路由到攻擊者那里。攻擊者可以讀取、丟棄或修改泄漏的流量,而受害者仍然保持與VPN和互聯(lián)網(wǎng)的連接。”
該攻擊通過(guò)操縱分配IP地址給本地網(wǎng)絡(luò)連接設(shè)備的DHCP服務(wù)器來(lái)實(shí)現(xiàn)。DHCP服務(wù)器中有一個(gè)名為“選項(xiàng)121”的設(shè)置,它允許服務(wù)器覆蓋默認(rèn)路由規(guī)則,這些規(guī)則會(huì)將VPN流量通過(guò)啟動(dòng)加密隧道的本地IP地址發(fā)送出去。通過(guò)使用選項(xiàng)121將VPN流量路由到DHCP服務(wù)器,攻擊會(huì)將數(shù)據(jù)轉(zhuǎn)移到DHCP服務(wù)器本身。來(lái)自Leviathan Security Group的研究人員解釋道:
“攻擊者在與目標(biāo)VPN用戶相同網(wǎng)絡(luò)上運(yùn)行一個(gè)DHCP服務(wù)器,并將攻擊端配置為網(wǎng)關(guān)。當(dāng)流量到達(dá)攻擊者的網(wǎng)關(guān)時(shí),攻擊者可使用DHCP服務(wù)器上的流量轉(zhuǎn)發(fā)規(guī)則將流量傳遞到合法網(wǎng)關(guān),同時(shí)進(jìn)行窺探。”
“攻擊者使用DHCP選項(xiàng)121在VPN用戶的路由表中設(shè)置路由,可以根據(jù)需要設(shè)置任意路由,也可以設(shè)置多個(gè)路由。通過(guò)推送比大多數(shù)VPN使用的/0CIDR范圍更具體的路由,攻擊者可以創(chuàng)建優(yōu)先級(jí)高于VPN創(chuàng)建的虛擬接口路由的路由規(guī)則。攻擊者可以設(shè)置多個(gè)/1路由來(lái)重建大多數(shù)VPN設(shè)置的0.0.0.0/0全部流量規(guī)則。”
“推送路由還意味著網(wǎng)絡(luò)流量將通過(guò)與DHCP服務(wù)器相同的接口發(fā)送,而不是虛擬網(wǎng)絡(luò)接口。這是一個(gè)未在RFC中清楚說(shuō)明的預(yù)期功能。因此,攻擊者推送的路由永遠(yuǎn)不會(huì)被VPN的虛擬接口加密,而是由與DHCP服務(wù)器通信的網(wǎng)絡(luò)接口傳輸。攻擊者可以選擇哪些IP地址通過(guò)隧道傳輸,哪些地址通過(guò)與DHCP服務(wù)器通信的網(wǎng)絡(luò)接口傳輸。”
圖片:惡意DHCP121路由選項(xiàng),導(dǎo)致流量永遠(yuǎn)不會(huì)被VPN進(jìn)程加密
研究者表示,這種技術(shù)也可以用于已經(jīng)建立的VPN連接(當(dāng)VPN用戶的主機(jī)需要從攻擊者的DHCP服務(wù)器續(xù)訂租約時(shí))。攻擊者可以通過(guò)在DHCP租約中設(shè)置較短的租約時(shí)間來(lái)人為地創(chuàng)建這種場(chǎng)景,這樣用戶會(huì)更頻繁地更新其路由表。此外,VPN控制通道仍然完好,因?yàn)樗呀?jīng)使用物理接口進(jìn)行通信。在研究者的測(cè)試中,VPN一直顯示已連接,從未斷開(kāi)。
研究者指出,這種攻擊最有效的方式是由控制目標(biāo)用戶所連網(wǎng)絡(luò)的人實(shí)施。在這種情況下,攻擊者可將DHCP服務(wù)器配置為使用選項(xiàng)121。網(wǎng)絡(luò)上的非特權(quán)用戶也可以通過(guò)設(shè)置他們自己的惡意DHCP服務(wù)器來(lái)發(fā)動(dòng)此類攻擊。
攻擊后果與緩解方法
攻擊可以讓部分或全部流量通過(guò)未加密的隧道路由。在這種情況下,VPN應(yīng)用程序仍會(huì)報(bào)告所有數(shù)據(jù)都通過(guò)受保護(hù)的連接發(fā)送。任何偏離隧道的流量都將不會(huì)被VPN加密,并且遠(yuǎn)程用戶可看到VPN用戶的真實(shí)IP,而不是VPN應(yīng)用指定的IP。
值得注意的是,由于未實(shí)現(xiàn)選項(xiàng)121,安卓是唯一可以完全保護(hù)VPN應(yīng)用免受攻擊的操作系統(tǒng)。對(duì)于所有其他操作系統(tǒng),目前沒(méi)有徹底的修復(fù)方法。當(dāng)應(yīng)用程序運(yùn)行在Linux上時(shí),有一個(gè)設(shè)置可以最小化影響,但即使這樣,TunnelVision也可以用于利用側(cè)信道來(lái)取消對(duì)目標(biāo)流量的匿名化并執(zhí)行拒絕服務(wù)攻擊。網(wǎng)絡(luò)防火墻也可以配置為拒絕進(jìn)出物理接口的入站和出站流量。這種補(bǔ)救措施存在兩個(gè)問(wèn)題:
(1)連接到不受信任網(wǎng)絡(luò)的VPN用戶無(wú)法控制防火墻
(2)它會(huì)打開(kāi)與Linux緩解措施相同的側(cè)信道
目前最有效的緩解方法是在網(wǎng)絡(luò)適配器未設(shè)置為橋接模式的虛擬機(jī)內(nèi)運(yùn)行VPN,或者通過(guò)手機(jī)的Wi-Fi網(wǎng)絡(luò)將VPN連接到互聯(lián)網(wǎng)。
參考鏈接:
https://youtu.be/ajsLmZia6UU
https://www.leviathansecurity.com/blog/tunnelvision
來(lái)源:GoUpSec