数百万iOS用户可能容易受到中间人攻击,这些攻击可以追溯到流行的iPhone应用程序中使用的有缺陷的Twitter代码。
研究人员警告说,流行的ios移动应用程序仍在使用一个老的twitter api,它可能会被滥用,成为中间人攻击的一部分。它可能被用来劫持twitter帐户,并危害其他链接到同一“用twitter登录”功能的第三方应用程序。
德国fraunhofer sit的研究人员称,罪魁祸首是一个有缺陷的twitterkit库,大约一年前被twitter取代。然而,一项对2000款最受欢迎的德国iOS移动应用程序的回顾显示,坏代码目前仍在45款应用程序中使用,影响了数百万德国用户。
研究人员说,在全球范围内,运行BuggyTwitter工具包框架的应用程序数量可能接近数万个。
该漏洞被跟踪为CVE-2019-16263,被描述为“Twitter Kit framework through 3.4.2 for IOS未正确验证api.twitter.com SSL证书”中的一个错误。尽管证书链必须包含一组固定证书中的一个,但存在某些实现错误,例如缺少主机名验证。”
twitter在2018年10月否决了twitter工具包库代码。当时,它要求开发人员切换到其他库。不过,fraunhofer sit移动安全主管jens heider表示,该公司在github存储库中留下了旧代码,但没有向用户表明这些代码可能用于攻击。
“Twitter Github库仍然包含恶意代码,”Heider告诉ThreatPost。“我们担心,由于使用代码的应用程序运行良好,开发人员将忽略将其应用程序更新到安全的Twitter库。”
海德说,虽然没有按名称单独列出具体的应用程序,但受影响的应用程序包括新闻阅读器和许多其他服务或应用程序,这些服务或应用程序允许用户通过其Twitter访问令牌登录:“如果攻击者能够访问(Twitter)OAuth令牌,他们就能够使用它向目标Twitter帐户发送消息,阅读过去的私人信息,喜欢并转发其他用户的推文。”
这个问题源于twitterkit for ios检查接收证书的方式,以确保它们具有相应的公钥。据twitter介绍,twitter kit是一个开源软件开发工具包(sdk),移动应用程序使用它来显示tweets、授权twitter用户并链接到twitter api。
“他们希望通过实现受信任的根证书颁发机构(ca)的公钥固定来提高安全性,如verisign、digicert和geotrust。因此他们为cas创建了一个包含21个公钥散列的数组,”研究人员在他们的研究摘要中写道。
他们解释说,leaf证书的域名不是由ios验证的。由于未经验证,任何带有公钥哈希的有效证书(属于21个)都会被易受攻击的应用程序接受。
研究人员写道:“一个拥有自己域的有效证书(由这些CA之一颁发)的攻击者可以使用该证书对中间人攻击应用程序,这些应用程序通过Twitter Kit for iOS与api.twitter.com通信。”
Heider说攻击者可以利用这个bug使用TwitterOAuth令牌登录到支持TwitterOAuth令牌框架的第三方服务。OAuth是一个开放的标准,用于授予网站或应用程序访问其他网站上的数据的权限,而不必给它们密码。
研究人员说,他们在2019年5月联系了Twitter,告知他们易受攻击的API。“Twitter承认这一发现,但由于图书馆已经被弃用,他们没有提供修复方案,”海德说。相反,twitter已经用更新版本替换了twitter api代码。
他说:“我们本想看到一些关于这个库中的缺陷的交流,这些缺陷被很多应用程序使用。”
twitter没有回应对这篇报道发表评论的请求。
研究人员说,为了利用这个漏洞,对手首先需要控制Wi-Fi接入点。接下来,受害者将登录到恶意无线网络,然后攻击者可以捕获用户会话的twitter oauth令牌。
攻击场景包括使用twitter oauth令牌访问主twitter帐户以及支持“使用twitter登录”功能的其他第三方帐户和服务的重放攻击。
“这样的问题是……常见的,这说明需要检查易受攻击或过时的第三方代码,”fraunhofer sit写道。