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