查看原文
其他

Apple Touch ID漏洞被用于劫持iCloud账号

文章来源:安全圈

今年初,苹果公司修复了一个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"),负责处理认证过程。

如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的子域名上利用跨站脚本漏洞来运行恶意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 系统的漏洞,远程攻击者利用该漏洞可以绕过认证和接管第三方服务的用户账号。




推荐阅读




*交行、招行分别被罚100万:对客户个人信息未尽安全保护义务

*英特尔遭黑客攻击!20GB绝密芯片工程数据遭窃

*利用“抓包软件” 抓走14万 七名年轻人被判盗窃罪

                                                                                         

                                                                        


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存