Google Chrome有一項(xiàng)名為DNS預(yù)取的功能(https://www.chromium.org/developers/design-documents/dns-prefetching),它試圖在用戶嘗試關(guān)注鏈接之前解析域名。
這是一種解決方案,通過(guò)預(yù)先解析這些網(wǎng)站的域名,預(yù)測(cè)用戶最可能訪問(wèn)的網(wǎng)站,從而減少DNS解析時(shí)間延遲。
當(dāng)使用VPN瀏覽器擴(kuò)展時(shí),Chrome提供了兩種模式來(lái)配置代理連接,fixed_servers和pac_script。
在fixed_servers模式下,擴(kuò)展名指定HTTPS / SOCKS代理服務(wù)器的主機(jī),隨后所有連接都將通過(guò)代理服務(wù)器。
另一方面,在pac_script模式下,擴(kuò)展提供了PAC腳本,該腳本允許通過(guò)各種條件動(dòng)態(tài)更改HTTPS / SOCKS代理服務(wù)器的主機(jī)。例如,VPN擴(kuò)展可以使用PAC腳本來(lái)確定用戶是否通過(guò)比較URL并分配針對(duì)流式傳輸優(yōu)化的代理服務(wù)器的規(guī)則來(lái)訪問(wèn)Netflix。 PAC腳本的高度動(dòng)態(tài)性意味著大多數(shù)VPN擴(kuò)展使用模式pac_script over fixed_servers。
“現(xiàn)在,問(wèn)題在于,當(dāng)使用pac_script模式時(shí),DNS預(yù)取功能將繼續(xù)運(yùn)行。由于HTTPS代理不支持代理DNS請(qǐng)求,并且Chrome不支持基于SOCKS協(xié)議的DNS,所有預(yù)取的DNS請(qǐng)求都將通過(guò)系統(tǒng)DNS。這基本上引入了DNS泄漏。“
有3種情況會(huì)觸發(fā)DNS預(yù)取:
手動(dòng)預(yù)取
DNS預(yù)取控制
網(wǎng)址列
前兩個(gè)允許惡意攻擊者使用特制的網(wǎng)頁(yè)來(lái)強(qiáng)制訪問(wèn)者泄露DNS請(qǐng)求。最后一個(gè)意思是當(dāng)用戶在URL地址欄(即多功能框)中輸入內(nèi)容時(shí),Chrome建議的URL將被DNS預(yù)取。這使ISP可以使用稱為“透明DNS代理”的技術(shù)來(lái)收集用戶經(jīng)常訪問(wèn)的網(wǎng)站,即使使用瀏覽器VPN擴(kuò)展。
測(cè)試您的VPN的DNS泄漏
要測(cè)試您的VPN是否存在漏洞,請(qǐng)執(zhí)行以下測(cè)試:
激活您的VPN的Chrome插件
轉(zhuǎn)到chrome:// net-internals /#dns
點(diǎn)擊“清除主機(jī)緩存”
去任何網(wǎng)站來(lái)確認(rèn)這個(gè)漏洞
如果您發(fā)現(xiàn)一個(gè)未列出但泄露的VPN,請(qǐng)發(fā)送給我們截圖(john@thebestvpn.com),我們將更新列表。
我們測(cè)試過(guò)的受影響的VPN(4月2日):
PureVPN泄漏示例
不泄漏的VPN
例如:NordVPN不泄漏
解決方案/修復(fù)
想要保護(hù)自己的用戶應(yīng)遵循以下補(bǔ)救措施:
1.導(dǎo)航到地址欄中的chrome:// settings /
2.在“搜索設(shè)置”中鍵入“預(yù)測(cè)”
3.禁用選項(xiàng)“使用預(yù)測(cè)服務(wù)幫助完成在地址欄中鍵入的搜索和URL”和“使用預(yù)測(cè)服務(wù)更快地加載頁(yè)面”
這項(xiàng)研究是在Cure53的文件描述符 – 道德黑客的幫助下完成的。
附:請(qǐng)注意,在線DNS泄漏測(cè)試服務(wù)(如dnsleaktest.com)無(wú)法檢測(cè)到此類DNS泄漏,因?yàn)镈NS請(qǐng)求只在特定情況下發(fā)出。
原文可在這里找到https://thebestvpn.com/chrome-extension-vpn-dns-leaks/
來(lái)源:https://securityaffairs.co/wordpress/70979/hacking/vpn-chrome-extensions-dataleak.html