近日苹果向印度漏洞安全研究专家 Bhavuk Jain 支付了高达 10 万美元的巨额赏金,原因就是他报告了存在于 Sign in with Apple 中的严重高危漏洞。Sign in with Apple(通过 Apple 登录),能让你利用现有的 Apple ID 快速、轻松地登录 App 和网站,目前按该漏洞已经修复。

Sign in with Apple被爆高危漏洞:可远程劫持任意用户帐号-编程之家

  该漏洞允许远程攻击者绕过身份验证,接管目标用户在第三方服务和应用中使用 Sign in with Apple 创建的帐号。在接受外媒 The Hacker News 采访的时候,Bhavuk Jain 表示在向苹果的身份验证服务器发出请求之前,苹果客户端验证用户方式上存在漏洞。

  通过“Sign in with Apple”验证用户的时候,服务器会包含秘密信息的 JSON Web Token(JWT),第三方应用会使用 JWT 来确认登录用户的身份。Bhavuk 发现,虽然苹果公司在发起请求之前要求用户先登录到自己的苹果账户,但在下一步的验证服务器上,它并没有验证是否是同一个人在请求 JSON Web Token (JWT)。

Sign in with Apple被爆高危漏洞:可远程劫持任意用户帐号-编程之家

  因此,该部分机制中缺失的验证可能允许攻击者提供一个属于受害者的单独的苹果 ID,欺骗苹果服务器生成 JWT 有效的有效载荷,以受害者的身份登录到第三方服务中。Bhavuk 表示:“我发现我可以向苹果公司的任何 Email ID 请求 JWT,当这些令牌的签名用苹果公司的公钥进行验证时,显示为有效。这意味着,攻击者可以通过链接任何 Email ID 来伪造 JWT,并获得对受害者账户的访问权限。”

  Bhavuk 表示即使你选择隐藏你的电子邮件 ID,这个漏洞同样能够生效。即使你选择向第三方服务隐藏你的电子邮件 ID,也可以利用该漏洞用受害者的 Apple ID 注册一个新账户。

  Bhavuk 补充道:“这个漏洞的影响是相当关键的,因为它可以让人完全接管账户。许多开发者已经将 Sign in with Apple 整合到应用程序中,目前 Dropbox、Spotify、Airbnb、Giphy(现在被 Facebook 收购)都支持这种登录方式。”

  Bhavuk 在上个月负责任地向苹果安全团队报告了这个问题,目前该公司已经对该漏洞进行了补丁。除了向研究人员支付了 bug 赏金外,该公司在回应中还确认,它对他们的服务器日志进行了调查,发现该漏洞没有被利用来危害任何账户。