谷歌正在测试一项新功能,以防止恶意公共网站通过用户浏览器攻击内部专用网络上的设备和服务。
更简单地说,谷歌计划防止互联网上的不良网站攻击访问者家中或计算机上的设备(如打印机或路由器)。人们通常认为这些设备是安全的,因为它们不直接连接到互联网并受到路由器的保护。
“为了防止恶意网站通过用户代理的网络位置来攻击设备和服务,这些设备和服务合理地假设它们驻留在用户的本地内联网或用户计算机上,无法从整个互联网访问,”谷歌在支持文件。
阻止对内部网络的不安全请求
拟议的“专用网络访问保护”功能将在 Chrome 123 中处于“仅警告”模式,在公共网站(称为“站点 A”)引导浏览器访问另一个站点(称为“站点 A”)之前进行检查。作为“站点 B”)位于用户的专用网络内。
检查包括验证请求是否来自安全上下文,以及发送初步请求以查看站点 B(例如,在环回地址或路由器的 Web 面板上运行的 HTTP 服务器)是否允许通过称为 CORS预检请求的特定请求从公共网站进行访问。
与现有的子资源和工作人员保护不同,此功能特别关注导航请求。其主要目的是保护用户的专用网络免受潜在威胁。
在 Google 提供的示例中,开发人员展示了公共网站上的 HTML iframe,该框架执行 CSRF 攻击,从而更改访问者本地网络上路由器的 DNS 配置。
根据这项新提案,当浏览器检测到公共站点尝试连接到内部设备时,浏览器将首先向该设备发送预检请求。
如果没有响应,连接将被阻止。但是,如果内部设备响应,它可以使用“
Access-Control-Request-Private-Network ”标头告诉浏览器是否应允许该请求。
这允许自动阻止对内部网络上的设备的请求,除非设备明确允许来自公共网站的连接。
在警告阶段,即使检查失败,该功能也不会阻止请求。相反,开发人员将在 DevTools 控制台中看到警告,让他们有时间在更严格的执行开始之前进行调整。
然而,谷歌警告说,即使请求被阻止,浏览器自动重新加载也将允许请求通过,因为它将被视为内部 => 内部连接。
谷歌警告说:“在这种情况下,专用网络访问保护将不适用,因为该功能旨在保护用户的专用网络免受更多公共网页的影响。 ”
为了防止这种情况发生,如果专用网络访问功能之前阻止了页面的自动重新加载,Google 建议阻止该页面的自动重新加载。
发生这种情况时,Web 浏览器将显示一条错误消息,指出您可以通过手动重新加载页面来允许请求通过,如下所示。
此页面将包含一条新的 Google Chrome 错误消息“
BLOCKED_BY_PRIVATE_NETWORK_ACCESS_CHECKS”,该消息会在页面因未通过专用网络访问安全检查而无法加载时通知您。
安全升级背后的想法
这一开发背后的动机是防止互联网上的恶意网站利用用户内部网络中的设备和服务器上的缺陷,而这些缺陷被认为是安全的,不会受到基于互联网的威胁。
这包括防止对用户路由器和本地设备上运行的软件接口进行未经授权的访问——随着越来越多的应用程序在假设不存在保护的情况下部署 Web 界面,这一问题日益受到关注。
根据一份支持文件,谷歌于 2021 年开始探索这一想法,以防止外部网站对专用网络(本地主机或专用 IP 地址)内的资源发出有害请求。
虽然直接目标是减轻“SOHO Pharming”攻击和 CSRF(跨站请求伪造)漏洞等风险,但该规范并不旨在保护本地服务的 HTTPS 连接——这是集成公共和非公共服务的必要步骤资源安全但超出了规范的当前范围。