写点什么

Sign in with Apple 被曝零日漏洞,可远程劫持任意用户帐号

  • 2020-06-01
  • 本文字数:1249 字

    阅读完需:约 4 分钟

Sign in with Apple被曝零日漏洞,可远程劫持任意用户帐号


5 月 30 日,印度漏洞安全研究专家 Bhavuk Jain 在官方博客中披露:Sign in with Apple(通过 Apple 登录)中存在一个零日漏洞,影响非常严重,因为它允许攻击者远程劫持任意用户账户。


Bhavuk Jain 在博客中写道,“今年 4 月,我在 Sign in with Apple 中发现一个零日漏洞(zero-day)。如果第三方应用使用了 Sign in with Apple(通过 Apple 登录),并且未部署额外的安全措施,那么它们均会受到该零日漏洞的影响。“


最关键的是,该漏洞允许远程攻击者绕过身份验证,接管目标用户在第三方服务和应用中使用 Sign in with Apple 创建的账号。



据了解,在去年的 WWDC 上,苹果正式推出属于自己的第三方登录服务——Sign in with Apple(通过 Apple 登录)。


说起第三方登录,就不得不提 OAuth。简单说,OAuth 是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。

现在,大多数第三方登录都是基于 OIDC 或者利用 OAuth 2.0 修改实现的。


根据苹果官方解释:


"Sign in with Apple(通过 Apple 登录)"让用户能用自己的 Apple ID 轻松登录您的 app 和网站。用户不必填写表单、验证电子邮件地址和选择新密码,就可以使用“通过 Apple 登录”设置账户并立即开始使用您的 app。所有账户都通过双重认证受到保护,具有极高的安全性,Apple 亦不会跟踪用户在您的 app 或网站中的活动。


截至目前,有许多开发者已经将 Sign in with Apple 整合到应用程序中,比如国外的 Dropbox、Spotify、Airbnb、Giphy ,国内的喜马拉雅、懒饭、厨房故事等。这些应用程序未经测试,如果在验证用户时未采取其他任何安全措施,则可能被攻击者利用漏洞实现完全的账户接管。


据 Bhavuk Jain 的博客文章介绍,Sign in with Apple 的工作原理与 OAuth 2.0 类似,对用户身份的认证有两种办法:一种是利用 JWT(JSON Web Token),另一种是利用由 Apple 服务器生成的 code。


下面的示意图表示 JWT 创建和验证的工作方式。



通过“Sign in with Apple”验证用户时,服务器会包含秘密信息的 JWT,第三方应用会使用 JWT 来确认登录用户的身份。


Bhavuk Jain 发现,虽然苹果公司在发起请求前要求用户先登录到自己的苹果账户,但在下一步的验证服务器上,它并没有验证是否是同一个人在请求 JWT。


因此,该部分机制中缺失的验证可能允许攻击者提供一个属于受害者的单独的苹果 ID,欺骗苹果服务器生成 JWT 有效的有效载荷,以受害者的身份登录到第三方服务中。


Bhavuk Jain 说:“我发现我可以向苹果公司的任何 Email ID 请求 JWT,当这些令牌的签名用苹果公司的公钥进行验证时,显示为有效。这意味着,攻击者可以通过链接任何 Email ID 来伪造 JWT,并获得对受害者账户的访问权限。”


据悉,一个月前,他向苹果安全团队报告了这个问题,为此苹果向其支付了 10 万美元的巨额赏金。目前,苹果已经对该漏洞进行了修复,并且还对服务器日志进行了调查,发现该漏洞没有被用来危害任何用户账户。


参考资料:


Zero-day in Sign in with Apple


2020-06-01 15:095200
用户头像
万佳 InfoQ编辑

发布了 677 篇内容, 共 302.5 次阅读, 收获喜欢 1766 次。

关注

评论

发布
暂无评论
发现更多内容

第一章学习总结

Kalman

产品经理 产品经理训练营

产品经理训练营 第一周作业

DB

产品经理训练营

28天瞎写的第二百二十三天:哎哟,我这爆脾气!

树上

28天写作

第一章作业:认识产品经理

隋泽

产品经理训练营

Dubbo源码解析-开始篇

冰三郎

Java 分布式 dubbo RPC

第一章作业

Kalman

产品经理 产品经理训练营

对产品岗位的研究和一些看法

Dylan Zhu

产品训练营-作业1

简小一

产品经理岗位需求总结

Geek_a32093

产品经理岗位对比分析

DwToretto

产品经理第一周第二课总结(第一课手贱删除了,回头再补)

克比

HDFS杂谈:数据读写原理

罗小龙

hadoop hdfs 28天写作

作业1

YING꯭YING

网络安全产品经理任职要求

让时间说真话

产品经理 网络安全产品经理

如果公司要招⼀个⾼级版你

向日葵

产品经理训练营

极客大学产品训练营作业(第1周)

朱航

产品 0 期 第一次作业

小C同学

产品经理 极客大学认识产品经理

产品经理定位

让我思考一会儿

产品经理训练营--第一章作业

Lucas zhou

产品经理训练营

重学JS | 跨域的原因和解决方案

梁龙先森

大前端 编程语言 28天写作

「产品经理训练营」作业 01

🌟

产品经理训练营

可恶的爬虫直接把生产机器全部爬挂了!

java金融

Java 爬虫 布隆过滤器 反爬

HTML(三)——在网页中使用图像img

程序员的时光

程序员 28天写作

产品经理训练营_Chapter1

芃芃

产品经理训练营

产品经理训练营 第一周作业记录

玲玲

产品经理训练营 岗位要求

在线教育产品经理 & 物流行业的产品经理

哈撒啦岛

产品经理 产品经理训练营

甲方日常 87

句子

工作 随笔杂谈 日常

产品训练营作业1-李沂秾

克比

行业产品经理岗位分析

Shine

产品

如何给产品团队更好地提出设计反馈

Justin

心理学 产品设计 团队协作 28天写作

0互联网工作经验的我,面对字节跳动产品岗1723个招聘岗位慌了起来….

Geek_fe4aa7

产品经理训练营 极客大学产品经理训练营

Sign in with Apple被曝零日漏洞,可远程劫持任意用户帐号_安全_万佳_InfoQ精选文章