阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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:095368
用户头像
万佳 前InfoQ编辑

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

关注

评论

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

群晖 NAS 安装的 Docker MySQL 数据库没有办法通过局域网连接

HoneyMoose

推荐 10 本 Go 经典书籍,从入门到进阶(含下载方式)

AlwaysBeta

Go golang 编程语言 书单推荐 Go 语言

Curve 加入 PolarDB 开源数据库社区,强化分布式共享存储

网易数帆

数据库 postgresql 云原生 分布式存储 polarDB

在数字化与绿色的双轮之间,华为为全球企业搭建一道“车轴”

脑极体

深入分析沙箱逃逸漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞

推荐学java——SpringMVC第一课

逆锋起笔

springmvc java框架 Spring Java 3月月更

java培训:多个线程同时访问一个类是否有问题方法

@零度

JAVA开发

CPU占用率爆满,服务器遭遇挖矿如何排查

山河已无恙

Linux 3月月更

注入语句详解(get注入,cookie注入,搜索型注入等)

喀拉峻

网络安全

烂书!《气候经济与人类未来》

懒时小窝

烂书

Docker原理——数据包怎么发出去

kof11321

容器 原理 容器网络方案

OceanBase 推出全新品牌 slogan

OceanBase 数据库

数据库 oceanbase 品牌slogan

别再用 Redis List 实现消息队列了,Stream 专为队列而生

CRMEB

VuePress 博客如何开启本地 HTTPS 访问

冴羽

JavaScript Vue 前端 vuepress 博客搭建

Android编译优化系列-kapt篇

字节跳动终端技术

android 字节跳动 编译优化 火山引擎 火山引擎MARS

编程和英语,数学到底什么关系

北极的大企鹅

思维转换 编程思想

运维接受新挑战!网易云原生运维体系建设之路

网易数帆

Kubernetes 云原生 运维自动化

你真的会 i++吗

爱笑的小雨

编程术语的类比(一)

北极的大企鹅

思维转换 编程思想

ICLR 2022|唯快不破!北航、NTU、百度飞桨提出面向极限压缩的全二值化BiBERT

百度大脑

Web 键盘输入法应用开发指南 (5) —— 实战技巧

天择

JavaScript 键盘 实战 输入法 3月月更

千万级学生管理系统的考试试卷存储方案

阿卷

架构实战营

ZStack 与龙蜥操作系统完成兼容性认证,共同打造安全可信的云+OS技术生态

OpenAnolis小助手

云计算 开源 操作系统 云平台

详解Swin Transformer核心实现,经典模型也能快速调优

百度大脑

OCR产业应用实战,多类别电表读数识别方案详解

百度大脑

不联网的情况下,使用 electron-builder 快速打包全平台应用

编程三昧

Electron 3月月更 electron-builder

编程术语的类比(二)

北极的大企鹅

学习 思维转换 编程思想

如何避免黑客攻击?国内首个云端加密代码库来帮忙

阿里云云效

阿里云 云原生 云效 代码安全 代码加密

性能测试中过滤异常的响应时间

FunTester

性能测试 HTTP 接口测试 响应时间 FunTester

教你3种Kafka的指定副本作为Leader的实现方式

华为云开发者联盟

Leader Kafk 副本 AR顺序

TCP协议:如何保证页面文件能被完整送达浏览器?

Tristan

前端 网络层 TCP协议

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