黑客展示Facebook API保护存在的缺陷

根据两名黑客表示,Facebook在其限制应用程序开发人员访问Facebook用户的信息方面存在严重缺陷。

问题存在于Facebook的API中,甚至有可能导致未经授权的密码更改,根据黑客组织Blackhat Academy的两名成员hatter和ErrProne表示。

Facebook应用程序使用一种特殊的查询语言—— FQL(Facebook Query Language)来提取和修改存储在该社交网络数据库的用户信息。这种专有语言具有良好口碑,并且信息是公开的,任何人都可以学习这种语言。

通过FQL查询敏感的用户信息(例如电子邮箱地址)需要一个API密钥,是Facebook分配给每个应用程序的独特的标识符,但是很多其他私人信息可以在没有这种限制的情况下从数据库提取出来,这两名黑客甚至还提供了有效的概念证明代码。

根据hatter表示,API密钥从发出的那一刻起,就被赋予了太大的权力,并且获取API密钥也不是难事。一名恶意程序员可以获取和滥用API密钥,即使当相关应用程序仍然处于开发中。应用程序在开发过程中(在发布之前)能够获取更多数据,当Facebook审核应用程序后,该社交网络就会限制应用程序的权限,只允许其访问相关数据。

然而,攻击者甚至不需要他们自己的API密钥来提取数据。他们可以利用某个合法应用程序的密钥,以他们的个人资料来安装该程序,然后使用更改的用户ID向程序提交信息请求。基于应用程序的权限的不同,这种技术可以用来从安装了该程序的其他用户来收集信息,即使这些用户只与他们的朋友共享信息。

这种滥用可能很快就会被Facebook的安全团队发现,但是在此之前,攻击者仍然有足够的时间来获取他们需要的信息。

Blackhat Academy在两个月前就通知了Facebook这个缺陷的存在,Hatter表示,而该黑客组织决定公开这个问题,是因为该社交网络巨头并不关心这个问题,

一名Facebook发言人否定了这个说法,他表示:“这些人所谓的‘FQL注入攻击’只是说明我们的Facebook平台API达到了预期的效果。”

“我们有专门的团队对访问我们API的应用程序进行全面的审查,这个团队采用了基于风险的方法,检查应用程序的速度(基于用户数量或者共享数据的数量),”发言人表示,“当一个潜在不良应用程序被我们系统检测,在其获取对数据的访问权限前,我们会迅速采取行动来移除或者制裁该应用程序。”

黑客们并不同意,他们表示,Facebook可能不明白这种攻击的范围。“FQL注入已经出现在应用程序中,或者你可以直接查询API,”Hatter表示。

黑客并不相信Facebook防御力量的效率。“基于速度来分析应用程序可能可以有效对付迅速传播的蠕虫病毒和恶意软件。然而,如果某个用户成为攻击者目标的话,这种防御就没有任何作用。攻击者可以很容易地诱骗用户来运行恶意应用程序,”他说道。

Facebook的应用程序平台一直是隐私和安全风险的源头。今年早些时候,人们发现很多应用程序(即使那些顶级应用程序)都在与广告商共享或者在某些情况下,向广告商兜售用户ID信息。

近日趋势科技报道了一个事件,攻击者试图通过合法应用程序中显示的恶意广告来部署路过式下载。这些都很明显地表明,Facebook不能保证其网络中每个应用程序都是安全可靠的,而过度曝光的API只不过给攻击者提供了另一个途径。