Facebook又被黑客耍了,这次有近1亿客户受影响
来源:Java填坑之路     阅读:697
九狐源码
发布于 2018-09-30 23:18
查看主页

2018年9月28日上午9点41分,Facebook在其新闻官网(https://newsroom.fb.com )上发文表示:该公司发现了一个安全漏洞,黑客可利用这个漏洞来获取信息,可能导致近5000万客户信息的泄露。

在这篇新闻稿中,FB产品管理副总裁盖·罗森 (Guy Rosen) 撰文表示:

1、技术团队在9月25日下午发现了这个漏洞。

2、此安全漏洞是2017年7月份出现的,在2018年9月25日被识别、并于9月27日被侦测到。

3、目前 FB 基本确定,已经有黑客利用这个漏洞发动攻击。

4、9月27日早间,大约有5000万个Facebook账户受到攻击。

5、在问题发现后,FB对受影响的5000万客户的访问信息进行了重置。

6、除了受影响的5000万客户外,FB还对另外4000万客户同样做了同样的重置操作。总计影响客户9000万。

7、Facebook在9.26晚上称其已经修复了这个漏洞,并已通知美国联邦调查局(FBI)和爱尔兰数据保护委员会(Irish Data Protection Commission)等执法机关。

在披露这一消息之前,Facebook股价已经下跌了1.5%左右,消息传出后进一步走低,到收盘时下跌2.59%报164.46美元,盘中一度触及162.56美元的低点。

漏洞介绍

这个安全漏洞存在于 Facebook 的“View As”功能的代码中。

因为 FB 的隐私设置极为繁琐,客户经常不知道别人看得见、看不见自己发布的某些信息。

View As 这个功能可以让客户以第三人称观看自己的账户,确认隐私设置能否符合自己要求。

FB 透露,利用这个漏洞黑客窃取了客户的“访问令牌”(access token)。

访问令牌的作用是为客户保存密码,这样客户就不用每次登陆都输一次密码验证身份。

获得令牌后,黑客可以黑进别人的账户,看到设置为不对外公开的帖文和信息。

作为应对,FB 对受到漏洞影响的5000万客户以及可能成为进一步攻击目标的另外4000万客户,进行了访问令牌重设。

什么是access token

通过官方给出的资料,我们无法确认黑客利用的漏洞中的access token究竟是如何使用和泄露的。

不过我们可以拿OAuth2来详情一下access token的作用和如何保证安全。

OAuth 2 是一种受权框架,允许第三方应用通过客户受权的形式访问服务中的客户信息,最常见的场景是受权登录;再复杂一点的比方第三方应用通过 Github 给开发者提供的接口访问权限内的客户信息或者仓库信息。OAuth2 广泛应用于 web 、桌面应用、移动 APP 的第三方服务提供了受权验证机制,以此实现不同应用间的数据访问权限。

OAuth2中最典型的Authorization Code 受权模式,其大致流程如下:

我们把OAuth2的整个认证过程大致分为三个阶段。

第一阶段主要是向客户获得受权许可,对应图中的第1、2步;

第二阶段主要是申请访问令牌(access_token),对应图中的第3、4步;

第三阶段就是使用access_token获取客户数据,对应图中的第5、6步。这一过程中涉及了不少敏感参数和数据,access_token某种程度上来讲就是客户的session id。

也就是说,整个认证过程中,一旦黑客获取到了access_token,即便他不知道你的客户名和密码,也可以访问到你的客户数据。

OAuth2究竟安不安全

可以这么说,OAuth2协议本身是相对安全的,至少比纯客户名、密码形式的登录要安全的多。

假如发生像FB那样的access token泄露问题的话,至少密码是没有泄露的,只需网站重置客户的access token,那么之前的旧的access token就会失效。这种情况,要比客户名和密码泄露影响会小少量。

但是,因为OAuth引入的漏洞也很多,大多是由于使用不当导致的。乌云曾披露过很多很多因为OAuth实施不正确导致的网站漏洞:

CSRF劫持第三方账号

WooYun:大麦网存在账号被劫持风险

WooYun:美丽说oauth漏洞可劫持账号

对参数没有进行验证泄露code

WooYun:腾讯微博开放平台openid、openkey截取

WooYun:搜狐微博OAuth2.0获取Authorization Code过程隐患

重放攻击

Inwatch-InHealth用户端接口若干安全bug打包

应用冒充,获取token控制客户账户

@囧虎张建伟,新浪微博Android用户端SSO受权认证缺陷

WooYun:腾讯开放平台单点登录SSO方案设计缺陷导致钓鱼风险

直接用平台方客户名和密码获取access token

WooYun:开心网android用户端暴力破解漏洞,测试2000帐号,成功132个

315晚会:安卓系统手机应用软件严重窃取客户资料

关于OAuth2的具体安全防范这里就不开展了。感兴趣的朋友可以自行Google。或者者我后面单独出一篇文章深入分析一下。

欢迎工作一到五年的Java工程师朋友们加入Java架构开发:744677563

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)正当利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
Java单例模式的七种写法
[原创] 如何开发一个博客(升级中)
iOS利用RunTime来实现万能跳转
机器学习面试题
老司机用python脚本刷微信读书的时长
首页
搜索
订单
购物车
我的