揭秘Web账户预劫持攻击:新型安全威胁与防御策略

微软安全响应中心发布研究论文,详细分析五种Web账户预劫持攻击技术,涉及经典-联邦合并攻击、未过期会话攻击等,覆盖75个流行网站漏洞评估,并提供多层次防御方案。

新研究论文:Web用户账户的预劫持攻击

2020年,MSRC授予两项身份项目研究资助金,以支持外部研究人员加强身份协议和系统的安全性。今天我们很高兴发布首个项目的成果。这项由独立安全研究员Avinash Sudhodanan领导的研究,调查了账户预劫持——一种影响网站和其他在线服务的新型攻击类别。

与经典账户劫持攻击类似,攻击者的目标是获取受害者账户的访问权限。然而,如果攻击者能在受害者创建账户之前,使用受害者的电子邮件地址在目标服务上创建账户,攻击者就可以使用各种技术将账户置于预劫持状态。在受害者恢复访问并开始使用账户后,攻击者可以重新获得访问权限并接管账户。

这项工作的完整细节可在我们的研究论文中找到,该论文将于8月在第31届USENIX安全研讨会上发表。在论文中,我们描述了五种类型的账户预劫持攻击,并表明大量网站和在线服务可能容易受到这些攻击。我们发布这项研究的主要动机是提高对这些攻击的认识,并帮助组织防御它们。

用户账户创建的挑战

用户账户是网站和其他在线服务的普遍功能,因此已成为攻击者的有价值目标。账户劫持是一种众所周知的威胁,攻击者试图未经授权访问受害者的用户账户。

组织正当地投入大量资源来防御账户劫持。然而,一个较少受到关注的方面是用户账户创建过程及其相应的安全影响。随着向联邦身份和单点登录(SSO)的转变,许多服务现在支持(至少)两种不同的用户创建账户途径:提供用户名和密码的经典途径,以及使用身份提供者(IdP)的联邦途径,例如使用Microsoft登录。创建账户后,一些服务还提供链接IdP账户的可能性,以便用户可以直接登录或通过IdP进行身份验证。

先前的学术研究讨论了一种“先发制人账户劫持攻击”,其中攻击者控制受害者的IdP账户,并使用它在受害者尚未注册的服务上创建用户账户。受此攻击启发,我们证明存在一整类此类攻击,我们称之为账户预劫持攻击。与先前的工作不同,我们的攻击都不需要攻击者破坏受害者的IdP账户。

账户预劫持攻击

账户预劫持攻击的显著特征是攻击者在受害者在目标服务创建账户之前执行某些操作。毫无戒备的受害者随后可能会恢复对此账户的访问并开始使用它,可能添加个人信息、支付详情或任何其他类型的私人信息。一段时间后,攻击者通过获取受害者账户的访问权限来完成攻击—— essentially实现与账户劫持攻击相同的目标。

在研究论文中,我们描述了五种类型的预劫持攻击:

  1. 经典-联邦合并攻击:利用经典和联邦账户创建途径之间交互的潜在弱点。攻击者使用受害者的电子邮件地址通过经典途径创建账户,受害者随后使用相同的电子邮件地址通过联邦途径创建账户。如果服务不安全地合并这两个账户,可能导致受害者和攻击者都能访问同一账户。

  2. 未过期会话标识符攻击:利用一个漏洞,其中认证用户在重置密码时未从账户注销。攻击者使用受害者的电子邮件地址创建账户,然后维护一个长期活动的会话。当受害者恢复账户时,如果密码重置未使攻击者的会话失效,攻击者可能仍然具有访问权限。

  3. 木马标识符攻击:利用攻击者将额外标识符链接到使用经典用户名和密码途径创建的账户的可能性。攻击者使用受害者的电子邮件地址创建账户,然后向账户添加木马标识符(例如攻击者的联邦身份或其他攻击者控制的电子邮件地址或电话号码)。当受害者重置密码时,攻击者可以使用木马标识符获取账户访问权限(例如通过重置密码或请求一次性登录链接)。

  4. 未过期电子邮件更改攻击:利用一个潜在漏洞,其中服务在用户重置密码时未能使电子邮件更改能力URL失效。攻击者使用受害者的电子邮件地址创建账户,并开始将账户的电子邮件地址更改为攻击者自己的电子邮件地址的过程。作为此过程的一部分,服务通常会向攻击者的电子邮件地址发送验证URL,但攻击者尚未确认更改。在受害者恢复账户并开始使用后,攻击者完成电子邮件更改过程以控制账户。

  5. 非验证IdP攻击:此攻击是经典-联邦合并攻击的镜像。攻击者利用在创建联邦身份时不验证电子邮件地址所有权的IdP。使用此非验证IdP,攻击者创建目标服务的账户,并等待受害者使用经典途径创建账户。如果服务基于电子邮件地址错误地合并这两个账户,攻击者将能够访问受害者的账户。

对于所有这些攻击,攻击者需要识别受害者尚未拥有账户但未来可能创建账户的服务。尽管成功不能保证,但攻击者可能有几种方式实现这一点。例如,在个人层面,攻击者可能已经知道特定受害者使用的服务,并机会主义地预劫持其他类似或相关服务的账户。更广泛地,攻击者可能了解到整个组织(例如大学部门)计划使用特定服务,并可以预劫持该组织中任何公开已知电子邮件地址的账户。或者,攻击者可能观察到服务普遍受欢迎程度的增加(例如当人们需要在家工作时视频会议服务),并使用通过网站抓取或凭据转储找到的电子邮件地址预劫持该服务的账户。如果受害者已经在服务上创建了账户,攻击者通常没有风险。

实证评估

为了确定易受攻击服务的普遍性,我们分析了75个最流行的网站和在线服务,发现其中至少35个容易受到一种或多种预劫持攻击,包括广泛使用的云存储、社交和专业网络、博客和视频会议服务。遵循协调漏洞披露(CVD)原则,我们在2021年3月至9月期间向受影响组织报告了这些漏洞。然而,很可能其他网站和在线服务,超出我们分析的75个,也容易受到这些攻击。因此,我们发布这项研究以揭示此类漏洞,以便任何运营网站或其他服务的组织可以采取行动保护其用户账户。

与我们的工作同时,其他研究人员展示了类似的攻击(有时称为“预账户接管”攻击)。一些例子包括:逆向工程不安全的电子邮件确认URL参数[例如 craighayes]或发现服务不安全地合并通过经典和联邦途径创建的账户,如果它们使用相同的(可能未验证的)电子邮件地址[例如 hackerone, hbothra22]。这些例子说明了这些漏洞可能有多么广泛。

根本原因和缓解措施

根本上,账户预劫持漏洞的根本原因是服务在允许使用账户之前未能验证用户实际拥有提供的标识符(例如电子邮件地址或电话号码)。尽管许多服务需要标识符验证,但它们通常异步进行,允许用户(或攻击者)在标识符验证之前使用账户的某些功能。虽然这可能提高可用性,但它为预劫持攻击创建了一个漏洞窗口。

如果服务向用户提供的电子邮件地址发送验证电子邮件,并要求在允许账户上的任何进一步操作之前完成验证,所有上述攻击都可以得到缓解。类似的方法可用于验证其他类型标识符的所有权,例如使用短信或自动语音呼叫确认电话号码的所有权。如果服务使用IdP,它应检查IdP是否执行此验证或执行自己的额外验证。

深度防御

认识到在所有服务中实施严格标识符验证可能需要时间,我们还确定了一组用于账户创建的深度防御安全措施,这些措施也将缓解上述攻击。

密码重置:当账户密码重置时,服务必须执行以下操作:

  • 注销所有其他会话并使该账户的所有其他认证令牌失效,以缓解未过期会话攻击。
  • 取消该账户所有待处理的电子邮件更改操作,以缓解未过期电子邮件更改攻击。
  • 通知用户哪些联邦身份、电子邮件地址和电话号码链接到账户,并要求用户选择任何他们不认识的标识符(即默认保留),或更优选地,选择要保留哪些(即默认取消链接)。

合并账户:当服务合并通过经典途径创建的账户与通过联邦途径创建的账户(或反之亦然)时,服务必须确保用户当前控制两个账户。例如,当用户尝试通过联邦途径创建账户但经典账户已存在相同电子邮件地址时,应要求用户提供或重置经典账户的密码。这将缓解经典-联邦合并和非验证IdP攻击。

电子邮件更改确认:当服务发送确认电子邮件更改的能力(例如代码或嵌入认证令牌的URL)时,此能力的有效期应在可用性约束内尽可能低,以最小化未过期电子邮件更改攻击的漏洞窗口。然而,这不会阻止攻击者持续请求新能力,因此服务应限制可以为未验证标识符请求新能力的次数。

未验证账户清理:定期删除未验证账户将减少大多数预劫持攻击的漏洞窗口(除了非验证IdP攻击)。然而,这不会阻止攻击者使用相同标识符创建新账户。因此,服务应监控并可能限制可以为相同未验证标识符创建新账户的次数。然而,这可用于通过耗尽合法用户标识符的账户创建配额来发起拒绝服务(DoS)攻击。因此,服务可以降低未验证账户的清理阈值,并利用机器人检测框架限制攻击者自动创建新账户的速率。

多因素认证(MFA):用户可以通过尽快在账户上激活MFA来保护自己免受预劫持攻击。正确实施的MFA将阻止攻击者在受害者开始使用此账户后认证到预劫持账户。服务还必须使在MFA激活之前创建的任何会话失效,以防止未过期会话攻击。

结论

总之,我们希望这项研究有助于揭示这种可能广泛的漏洞类别,并协助组织实施有效的缓解策略。

  • Avinash Sudhodanan(独立研究员)和 Andrew Paverd(MSRC)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计