今年早些时候,苹果修复了iOS和macOS中的一个安全漏洞。该漏洞可允许攻击者未经授权访问用户的iCloud帐户。
2月,IT安全公司Computest的安全专家Thijs Alkemade发现了这个漏洞。其存在于Apple实施的TouchID(或FaceID)生物识别功能上。 该问题被披露后,Apple在服务器端更新中将其解决。
认证漏洞
一般来说,当用户登录需要Apple ID的网站时,会有界面提示使用Touch ID进行登陆身份验证。因为Touch ID已经利用了设备和生物特征信息等因素进行标识,所以可以帮助用户直接跳过两项身份验证步骤。
在登Apple域名(如“ icloud.com”)时,通常会使用ID和密码进行对比。这些网站嵌入了指向Apple登录验证服务器(“ https://idmsa.apple.com”)的iframe,以处理身份验证过程。iframe URL还包含其他两个参数:标识服务(例如iCloud)的“ client_id”,及成功验证后要重定向URL的“ redirect_uri”。
但在使用TouchID验证用户时,iframe的处理方式有所不同。它通过与AuthKit守护程序(akd)通信来处理生物识别身份验证,并检索icloud.com使用的令牌(“ grant_code”)页面以继续登录过程。守护程序与“ gsa.apple.com”上的API互通,向其发送请求的详细信息,并从该API接收令牌。
Computest发现的安全漏洞存在于上述gsa.apple.com API中。从理论上讲,攻击者可以在不进行身份验证的情况下,滥用这些域名来验证客户端ID。
Alkemade指出,即使akd提交的数据中包含client_id和redirect_uri,但它并不会检查重定向URI是否与客户端ID相匹配。这意味着攻击者可以利用Apple任意一个子域上的跨站点脚本漏洞,来运行恶意JavaScript代码段。这些代码段可以使用iCloud客户端ID触发登录提示,并使用授权令牌在icloud.com上获取时域。
设置伪热点来侵入iCloud帐户
此外,还可以通过在首次连接Wi-Fi网络(通过“ captive.apple.com”)时显示的网页上嵌入JavaScript来进行攻击活动。攻击者只需接受该页面上的TouchID提示,即可访问该用户的帐户。
恶意的Wi-Fi网络可能会响应带有JavaScript的页面,该页面会将OAuth初始化为iCloud。这种情况下,用户会收到一个不清晰的TouchID提示,如果在该提示下进行身份验证,则其令牌将被发送到恶意站点,从而使攻击者可以在iCloud上为其帐户提供时域。
攻击者在用户希望接收强制门户的地方(如:在机场,酒店或火车站)设置一个伪热点,就可能获得访问大量iCloud帐户的权限, 如:允许访问图片的备份,手机的位置,文件等等。
这并不是首次在Apple的身份验证基础结构中发现安全问题。5月,Apple修复了一个影响其“使用Apple登录”系统的漏洞,该漏洞可让远程攻击者在避开身份验证的情况下,使用用户在Apple上登录注册的第三方服务及应用程序帐户 。
参考来源
Apple Touch ID Flaw Could Have Let Attackers Hijack iCloud Accounts