0day 漏洞!至少 5000万Facebook 账户遭恶意控制!
作者:Lorenzo Franceschi-Bicchierai 和 Jason Koebler
编译:360代码卫士团队
Facebook 账户被自动登出?你可能并不孤单。上周五,Facebook 公司的产品管理副总裁 Guy Rosen 在一篇博客文章中指出,和“View As”功能相关的一个 0day 漏洞已遭利用,5000万用户的访问令牌被盗并导致账户遭控制。之后,该公司披露了黑客如何利用三个漏洞控制这些账户。
强制9000万名用户重新登录
Facebook 强制9000万名用户,包括已遭影响的5000万名用户和剩余可能受影响的4000万用户登出账户并重新登录。原因是黑客窃取了这些用户的“访问令牌”。该访问令牌是用户在登录时被创建的,使得用户能够在 Facebook 移动 app 在浏览器内打开Facebook 的其它部分(如点击某链接时)时继续保持登录状态。
举个例子,当 app 想要在某浏览器中打开 Facebook 的其它部分时,单点登录机制就会为该浏览器生成一个访问令牌,因此用户不必在打开的窗口中再次登录。访问令牌中并不包含用户密码,但由于它允许用户保持登录状态,因此相当于账户可遭完全控制。
账户如何遭控制
黑客结合使用三个漏洞窃取这些访问令牌。
这些漏洞至少存在于2017年7月,和 Facebook 的“View As”工具相关。该工具能让用户以他人身份查看自己的资料。
它是一个隐私功能,例如,它能让用户查看前任、奶奶或其他人是否能看到自己页面上对他们屏蔽的某些帖子内容。(译者注:这就相当于在微信朋友圈发了个帖子,设置了对某些人不可见,然后可通过“View As”功能以被屏蔽人的身份验证被屏蔽的人是否能看到这些内容。)
当然,用户不可能同时是“他人”(即被屏蔽的人),它只是一种模拟功能。但黑客能够利用这三个漏洞获得被屏蔽人的访问令牌,然后利用这个令牌访问被屏蔽人的账户,从而完全控制该账户。
Rosen 解释称,第一个 bug 可导致视频上传人出现在“View As”某些“鼓励用户发出生日祝福帖子”的页面中。正常而言,视频上传者不应该出现在该页面中。第二个 bug 能导致该视频上传者生成一个有权登录 Facebook 移动 app 上的访问令牌。而按照设计,”View As”功能本不该如此使用。最后一个漏洞是,当视频上传者出现在“View As”功能时,它不会为使用者生成新的访问令牌,而是为那些被假装的人(即“被屏蔽的人”)生成新的访问令牌,这就使得使用该功能的人能够访问被假装的人的账户,并且能够控制该账户。
攻击者先发制人
Rosen 解释称,三个 bug 的结合才造成一个漏洞问题。而这个漏洞问题是被攻击者发现的。为了执行攻击,攻击者不仅需要找到这个漏洞,还需要获得访问令牌并利用其它账户的访问呢令牌,之后查找其他人以获得更多的访问令牌。
Rosen 认为这是一种相对复杂的攻击,尤其是获得多达5000万账户的访问令牌。他表示该攻击已被大范围利用,之后他们才发现并启动调查,并指出目前无法确切了解到到底有多少账户被滥用。
Trail of Bits 公司的安全研究员 Ryan Stortz 表示,Facebook 本应该先于攻击者发现该漏洞问题。他指出,Facebook 拥有整套 API 过滤器能够知晓所有账户变化(写入)情况,他们本应该阻止这种情况的发生。
但 Facebook 的一名离职安全工程师 Zac Morris 表示这个漏洞并不容易发现。他认为“View As”功能已经上线多时,存在 bug 也不足为奇,但借此获得完整的访问权限的行为令人印象深刻。他指出,作为受影响的一员,他最想知道的是幕后黑手是谁,毕竟通过漏洞奖励计划可获得3万美元的奖励,这种行为有点恐怖。
未受影响用户不必修改密码
Rosen 表示黑客并未窃取密码,因此除非已被强制登出,否则用户应该不会受到影响,因此不必修改密码。Facebook 公司表示已暂时禁用“View As”功能。
推荐阅读
原文链接
https://motherboard.vice.com/en_us/article/bja7qq/how-50-million-facebook-users-were-hacked
本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。