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