谷歌计划在Chrome网络浏览器中添加一项新的安全功能,旨在阻止潜在的攻击者通过滥用浏览器的HTTP缓存启动旁道攻击并跟踪用户的活动。
新功能将使用顶部帧原点(以及可能的子帧原点)对Chrome的HTTP缓存进行分区,以防止来自一个来源的文档知道来自跨源的资源是否被缓存。
这种方法可以防止攻击者利用他们控制的恶意站点发起侧通道攻击,以检测他们的目标访问过的另一个站点是否在他们的Web浏览器缓存中。
根据“分区HTTP缓存”安全功能的Chrome平台状态条目,缓存攻击可能会触发以下类型的信息泄漏:
• 检测用户是否访问过特定站点:如果缓存的资源特定于特定站点或特定群组的站点,则攻击者可以通过检查缓存是否具有该资源来检测用户的浏览历史记录。• 跨站点搜索攻击:存在一些概念的跨站点搜索攻击证据,这些概念利用了一些站点(gmail,google search,...)在搜索结果为空时加载特定图像的事实。通过打开选项卡并执行搜索,然后在缓存中检查该图像,攻击者可以检测搜索结果中是否存在任意字符串。
浏览器的缓存还可以用作用户指纹识别方法,方法是存储跨站点超级cookie,这些超级cookie要求目标完全清除浏览器的缓存以删除它们。
此示例基于HTTP缓存的攻击显示了不良演员如何通过滥用Google易受攻击的端点轻松收集有关Chrome用户的敏感信息。正如记录这一特定攻击的研究人员所解释的那样,“影响因检索私人图书集而不是通过char获取所有用户的联系人char而变化。”
可用于这些攻击的易受攻击的网站包括谷歌的邮件和搜索,谷歌图书和YouTube。在浏览这些Google网站后访问恶意设计的网站的用户可能会泄露其敏感信息。
用户可以在成功进行侧通道缓存攻击时获取数据攻击者的类型:
•搜索历史,•观看的视频•访问的确切URL •活动的时间范围•私人图书收藏•阅读/购买书籍/收藏/收藏/等等•私人电子邮件•代币/信用卡号码/电话号码/等•邮寄频率•人们用户的电子邮件•联系人(包括电子邮件地址,姓名,电话号码)•私人笔记•书签网站•等等
根据该功能的设计规范,“解决方案是通过页面顶部框架的原点(例如,多功能框中显示的内容)或顶层框架和子框架源的组合来划分磁盘缓存。这种方式为一个来源加载的资源无法被另一个来源读取,并且两个问题都得到了解决。“
用于缓存隔离和缓存攻击缓解的当前选项是:•(顶部框架原点,请求URL)作为双键•(框架原点,请求URL)作为双键•(顶部框架原点+框架原点,请求URL)作为三键
Chrome开发人员目前已提出“用于共享/服务工作者请求的子资源请求和文档发起者的顶级框架来源”作为首选缓解解决方案,但他们仍在收集更多数据以做出最终决策。
“由于担心缓存命中率会大幅降低,导致网络使用量大幅增加,页面加载时间过长,因此Chrome尚未解决此问题,”Google软件工程师Shivani Sharma表示,该功能的 HTTP缓存威胁模型文档。
“最近在金丝雀和开发渠道的实验表明,与我们之前的想法相反,损失是可以接受的。”
计划分区的HTTP缓存功能的最终目标是“防止来自一个来源的文档知道来自跨源文档加载的资源是否被缓存,”Sharma补充道。
在所有主流浏览器中,Safari是六年多以前唯一已经实现此功能版本的浏览器,而Mozilla已经证明它公开支持新的安全增强功能,而微软尚未发布任何公开信号。任何在Edge浏览器中实现缓存分区的计划。