几个月前我们曾研究过Android同源策略(SOP)的漏洞,然而最近出现了一款利用此漏洞对Facebook用户进行攻击的恶意应用,其利用代码基于已公开的Metasploit测试代码。
科普:同源策略绕过漏洞
同源策略(SOP)是指客户端脚本(尤其是Javascript)的重要的安全度量标准,是浏览器安全核心基础。它最早出自Nescape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。这里的同源指的是同域名、同协议和同端口。
而同源策略绕过发生在A网站(以sitea.com为例)以某种方式访问B网站(以siteb.com为例)的属性如cookie、位置、响应等的时候。由于这个问题的特殊性和可能潜在影响,浏览器对此都有非常严格的管理模式,在现在的浏览器中很少能发现同源策略(SOP)绕过。
攻击过程
攻击是通过向某个特定Facebook网页引用恶意网站的链接来实现的。
此网页包含恶意的Javascript代码:
它会试图在内嵌框架里加载一个Facebook网址:
由于该页面的html内容被div的css设置为不会显示任何内容(display:none),用户只会看到一片空白:
并且该内嵌框架还只有1像素(1px)的大小:
基于以上这些条件,同源策略被绕过。通过构造语句,攻击者从一个能外链的云存储空间加载了一个远程JS代码文件,该文件包含了本次攻击所需要的恶意代码。
该JS代码可以让黑客在Facebook上实现以下行动:
1.添加Facebook好友
2.关注Facebook文章
3.修改订阅项
4.授权Facebook应用访问用户的私密信息(类似于与qq号关联)
5.窃取用户的token并后台上传:http://{BLOCKED}martforchristmas.website/walmart/j/index.php?cid=544fba6ac6988&access_token= $token;
6.收集分析数据(如受害者的位置,HTTP referer等等),在https://whos.{BLOCKED}ung.us/pingjs/上使用合法的服务
除了网站中上述的代码外,我们在http://www.{BLOCKED}php.com/x/toplu.php里发现了相似的攻击痕迹。可以肯定的是,这些都是出自同一攻击者的手笔,因为他们有着同样的函数名,以及相同的Facebook应用client_id。
官方授权未必安全
该恶意软件的client_id为2254487659,这是一个由黑莓官方授权过的应用。我们与黑莓官方确认过,这款应用打着黑莓的认证牌子试图窃取Facebook用户的认证token。有了这个token可以让黑客从Facebook的API读取个人敏感信息,以及发布文章讯息等。
黑莓官方由此发布了以下声明:
“这款恶意软件的攻击对象为Facebook用户,其使用了Android同源策略绕过漏洞,且无视移动设备平台类型。其试图利用黑莓官方的认证的便利对Facebook WEB应用进行攻击。此次事件并不是黑莓硬件、软件产生了漏洞,与黑莓的网络通信也没有什么关系。”
Google目前已经修复了这个Android同源策略漏洞。然而不是所有的用户都会去升级浏览器或安卓系统版本。因此除非设备的供应商能发布相应补丁,不然用户仍会处于威胁之中。