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