聚焦源代码安全,网罗国内外最新资讯!
翻译:360代码卫士团队
CSS(级联样式表)网络标准的某些新增功能非常强大,研究人员能通过滥用这些内容将演示网站的访客身份去匿名化,暴露其真实的Facebook用户名、头像以及他们是否喜欢Facebook的某个页面。
这种攻击泄露的信息能够帮助某些广告商将 IP 地址或广告资料关联到用户的真实身份,为用户的网络隐私安全带来严重威胁。
这种信息泄露并不仅针对 Facebook,而是影响所有允许通过内联框架将内容嵌入其它网页中的网站。
漏洞存在于浏览器而非网站
这个漏洞存在于浏览器对 CSS 功能“混合模式 (mix-blend-mode)”的实现中,该功能于2016年被添加到 CSS3 web 标准中。该功能允许网络开发人员将 web 组件叠加在一起并添加控制其交互方式的效果。
如该功能的名称所示,这些效果是由照片编辑软件如 Photoshop、Gimp、Paint.net 等混合模式触发的。混合模式的例子包括叠加、变暗、变量、颜色变淡、叠加、反转等。
该 CSS 混合模式功能支持16种混合模式而且受 Chrome v49 及以后版本、火狐 v59及以后版本的完整支持,尤其也受 Safari(macOSv11 和 iOS v10.3及以后版本)的支持。
利用 DIV 叠加重构内联框架内容
谷歌(瑞士)公司的安全工程师 Ruslan Habalov 联合另外一名研究员Dario Weißer在发布的研究论文中指出,攻击者可利用 CSS3 的混合模式泄露其它站点的信息。
这种攻击技术依靠的是将用户诱骗至被攻击者嵌入内联框架的恶意网站。在示例中,这两个嵌入式内联框架存在于 Facebook 的其中一个社交小工具中,不过其它站点也疑遭该问题攻击。
该攻击涉及在内联框架之上覆盖具有不同混合模式的巨大堆栈 DIV 图层。这些图层的像素大小是1x1,说明它们只覆盖内联框架的一个像素。
Habalov 和Weißer 表示,根据呈现整个 DIV 堆栈所需要的时间,攻击者可以确定用户屏幕上显示的像素颜色。
研究人员表示,通过逐渐在内联框架中移动这种 DIV“扫描”堆栈,攻击者可以确定内联框架的内容。
在正常情况下,由于允许经由内联框架嵌入内容的浏览器和远程站点中部署了反点击劫持和其它安全措施,因此攻击者无法访问这些内联框架的数据。
两个演示版本已发布
研究人员在发布的两个演示中能够检索到用户的 Facebook 名称、低分辨率版本的用户头像以及用户喜欢的网站。
真实的攻击仅需约20秒就能泄露用户名、只需500毫秒检查所有点赞/不点赞页面的状况。
这类攻击易于掩盖,因为内嵌框架能轻易被移出屏幕或者隐藏在其它因素下面(如将攻击隐藏在一张猫的照片下)。让用户在网站上待数分钟的时间也可能实现,只要让用户忙着参加网络测试或者发布更长的文章即可。
Chrome 和火狐已发布修复方案
研究员将问题告知谷歌和 Mozilla 公司的工程师们,他们已在 Chrome 63 和火狐60中修复了该问题。
研究人员表示,通过将混合模式计算矢量化而解决了这个 bug 问题。Safari 对 CSS3混合模式的实现并未受影响,因为混合模式操作已经被矢量化。
除了这两名研究人员外,另外一名研究员 Max May 也独立发现并于2017年3月将问题告知谷歌公司。
https://www.bleepingcomputer.com/news/security/css-is-so-overpowered-it-can-deanonymize-facebook-users/
领取专属 10元无门槛券
私享最新 技术干货