Apple Touch ID漏洞被用于劫持iCloud账号
2020-08-15 11:30:00 Author: www.4hou.com(查看原文) 阅读量:368 收藏

今年初,苹果公司修复了一个iOS和macOS中的一个安全漏洞,攻击者利用该漏洞可以获取用户iCloud账号的未授权访问权限。该漏洞是2月份由Computest的安全研究人员Thijs Alkemade发现,漏洞位于苹果公司的TouchID (FaceID)生物特征实现中,经过认证的用户可以用TouchID 来登入Safari上的站点,尤其是那些使用Apple ID登陆的站点。研究人员将该漏洞负责任地报告给了苹果公司,随后苹果公司通过服务器端更新修复了该漏洞。

认证漏洞

当用户想要登入需要Apple ID的站点时,就会弹出一个使用Touch ID登入的认证弹窗。这样做会跳过双因子认证,因为它使用了多重因子用于身份识别,比如设备和生物特征信息。

在登入Apple域名时(如icloud.com),一般需要输入ID和密码,而网站中嵌入了一个指向苹果登入验证服务器("https://idmsa.apple.com"),负责处理认证过程。

Apple Touch ID Flaw

PoC视频地址:https://vimeo.com/401297543

如PoC视频所示,iframe URL中还含有2个其他的参数:"client_id"和"redirect_uri"。"client_id"用来识别服务(如iCloud),而"redirect_uri"负责在验证成功后重定向URL。

但在本例中,当用户使用TouchID 验证时,iframe的处理与AuthKit daemon (akd)通信来处理生物特征认证是不同的,之后提取icloud.com页面使用的token来继续登陆。

为此,daemon会与"gsa.apple.com" API来通信来发送请求的细节并获取token。

Computest中的安全漏洞就位于前述的gsa.apple.com API中,因此理论上可以滥用这些域名在没有认证的情况下来验证client ID。

即使client_id 和 redirect_uri都包含在akd提交的数据中,也不会检查重定向URI与client ID是否匹配。其中只有一个AKAppSSOExtension应用在这些域名上的白名单,所有以apple.com、icloud.com 和 icloud.com.cn结尾的域名都是允许的。

Apple Touch ID Flaw

也就是说攻击者可以在任意Apple的子域名上利用跨站脚本漏洞来运行恶意JS代码段,其中JS代码段可以用iCloud client ID来触发登入并使用token来获取icloud.com上的会话。

搭建假的热点来接管iCloud账号

在一个单独的场景中,攻击可以通过在首次连接到WiFi网络时展示的web页面中嵌入JS来执行,这样攻击者就可以通过接收来自该页面的TouchID弹窗来访问用户账户。

恶意WiFi网络会用含有JS的页面来响应请求,JS会模拟Oauth作为iCloud。用户在接收TouchID 弹窗时,还不清楚这意味着什么。如果用户对弹窗进行了认证,session token就会发送给恶意站点,给攻击者一个iCloud上账号的session。

通过搭建一个假的热点,用户会接收一个强制门户认证(captive Portal),因此会接收到多个iCloud账号的认证。

这并非苹果认证基础设施中首次发现安全问题。5月的时候,苹果就修复了一个影响Sign in with Apple 系统的漏洞,远程攻击者利用该漏洞可以绕过认证和接管第三方服务的用户账号。

本文翻译自:https://thehackernews.com/2020/08/apple-touchid-sign-in.html如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/9OyZ
如有侵权请联系:admin#unsafe.sh