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