研究论文:对 Web 用户帐户的预劫持攻击
字数 1824 2025-08-12 11:33:38

Web用户账户预劫持攻击研究与防御指南

1. 账户预劫持攻击概述

账户预劫持(Account Pre-hijacking)是一种新型网络攻击,攻击者在受害者创建账户之前就预先控制该账户。与传统账户劫持不同,攻击者不需要直接获取受害者的凭证,而是利用账户创建过程中的安全漏洞预先建立控制。

1.1 攻击特征

  • 攻击者在受害者注册前执行操作
  • 受害者随后正常使用账户
  • 攻击者后期重新获取账户访问权
  • 可能导致个人信息、支付信息等敏感数据泄露

2. 五种预劫持攻击类型

2.1 经典-联合合并攻击(Classic-Federated Merge Attack)

攻击流程

  1. 攻击者使用受害者邮箱通过经典认证(用户名+密码)创建账户
  2. 受害者随后使用相同邮箱通过联合认证(如GitHub登录)创建账户
  3. 服务不安全地合并这两个账户
  4. 攻击者和受害者都能访问同一账户

2.2 未过期会话标识符攻击(Unexpired Session Identifier Attack)

攻击流程

  1. 攻击者使用受害者邮箱创建账户
  2. 保持长时间活动会话
  3. 受害者重置密码恢复账户
  4. 服务未使攻击者会话失效
  5. 攻击者仍保持访问权限

2.3 木马标识符攻击(Trojan Identifier Attack)

攻击流程

  1. 攻击者使用受害者邮箱创建账户
  2. 将攻击者控制的标识符(如联合身份、备用邮箱或电话)链接到账户
  3. 受害者重置密码后
  4. 攻击者使用木马标识符(如通过密码重置或一次性登录链接)重新获取访问

2.4 未过期邮箱更改攻击(Unexpired Email Change Attack)

攻击流程

  1. 攻击者使用受害者邮箱创建账户
  2. 开始将账户邮箱更改为攻击者邮箱(但未完成验证)
  3. 受害者恢复账户并开始使用
  4. 攻击者完成邮箱更改流程
  5. 控制账户

2.5 非验证身份提供者攻击(Non-Verifying IdP Attack)

攻击流程

  1. 攻击者利用不验证邮箱所有权的IdP
  2. 使用受害者邮箱通过联合认证创建账户
  3. 受害者随后通过经典认证创建账户
  4. 服务错误合并这两个账户
  5. 攻击者获得访问权限

3. 攻击实施条件

攻击者需要识别受害者可能注册但尚未注册的服务,可通过以下方式:

  • 针对特定个人:了解其常用服务模式
  • 针对组织:如大学院系计划采用的新服务
  • 广泛攻击:针对突然流行的服务(如疫情期间的视频会议工具),使用公开或泄露的邮箱列表

4. 实证研究结果

对75个热门网站和服务的分析显示:

  • 至少35个(46.7%)易受一种或多种预劫持攻击
  • 受影响服务包括云存储、社交网络、专业网络、博客和视频会议等

5. 防御措施

5.1 根本解决方案

  • 严格标识符验证:在允许使用账户前必须验证邮箱/电话所有权
  • 同步验证:禁止在验证完成前使用任何账户功能

5.2 纵深防御策略

密码重置安全措施

  1. 注销所有其他会话并使所有认证令牌失效
  2. 取消所有待处理的邮箱更改操作
  3. 通知用户所有关联的联合身份、邮箱和电话
    • 要求用户确认不认识的标识符(默认保留)
    • 或优选让用户选择保留哪些标识符(默认取消链接)

账户合并安全

  • 合并经典和联合账户时,必须验证用户对两个账户的控制权
  • 当检测到相同邮箱的经典和联合账户时,应要求用户提供或重置经典账户密码

邮箱更改确认

  • 缩短确认链接/代码的有效期
  • 限制未验证标识符的验证请求次数

未验证账户管理

  • 定期删除未验证账户(但对非验证IdP攻击无效)
  • 监控并限制同一未验证标识符的账户创建次数
  • 使用机器人检测框架限制自动化账户创建

多因素认证(MFA)

  • 鼓励用户尽快启用MFA
  • 启用MFA时使之前的所有会话失效

6. 漏洞根本原因

预劫持漏洞的核心原因是服务未能:

  1. 严格验证标识符(邮箱/电话)所有权
  2. 允许在验证前使用部分账户功能
  3. 不安全地处理账户合并
  4. 不完善的会话管理
  5. 不充分的账户生命周期管理

7. 行业现状

  • 微软在2020年资助了两项相关研究
  • 其他研究者也发现了类似攻击("账户前接管"攻击)
  • 攻击方式包括逆向工程不安全的确认URL参数和不安全的账户合并

8. 实施建议

  1. 开发阶段

    • 设计严格的标识符验证流程
    • 实现安全的账户合并逻辑
    • 建立完善的会话管理机制
  2. 运维阶段

    • 定期审计账户创建流程
    • 实施未验证账户清理策略
    • 部署机器人检测系统
  3. 用户教育

    • 鼓励使用MFA
    • 提醒用户检查账户关联的标识符
    • 提供可疑活动告警

通过全面实施这些措施,组织可以有效防御账户预劫持攻击,保护用户账户安全。

Web用户账户预劫持攻击研究与防御指南 1. 账户预劫持攻击概述 账户预劫持(Account Pre-hijacking)是一种新型网络攻击,攻击者在受害者创建账户之前就预先控制该账户。与传统账户劫持不同,攻击者不需要直接获取受害者的凭证,而是利用账户创建过程中的安全漏洞预先建立控制。 1.1 攻击特征 攻击者在受害者注册前执行操作 受害者随后正常使用账户 攻击者后期重新获取账户访问权 可能导致个人信息、支付信息等敏感数据泄露 2. 五种预劫持攻击类型 2.1 经典-联合合并攻击(Classic-Federated Merge Attack) 攻击流程 : 攻击者使用受害者邮箱通过经典认证(用户名+密码)创建账户 受害者随后使用相同邮箱通过联合认证(如GitHub登录)创建账户 服务不安全地合并这两个账户 攻击者和受害者都能访问同一账户 2.2 未过期会话标识符攻击(Unexpired Session Identifier Attack) 攻击流程 : 攻击者使用受害者邮箱创建账户 保持长时间活动会话 受害者重置密码恢复账户 服务未使攻击者会话失效 攻击者仍保持访问权限 2.3 木马标识符攻击(Trojan Identifier Attack) 攻击流程 : 攻击者使用受害者邮箱创建账户 将攻击者控制的标识符(如联合身份、备用邮箱或电话)链接到账户 受害者重置密码后 攻击者使用木马标识符(如通过密码重置或一次性登录链接)重新获取访问 2.4 未过期邮箱更改攻击(Unexpired Email Change Attack) 攻击流程 : 攻击者使用受害者邮箱创建账户 开始将账户邮箱更改为攻击者邮箱(但未完成验证) 受害者恢复账户并开始使用 攻击者完成邮箱更改流程 控制账户 2.5 非验证身份提供者攻击(Non-Verifying IdP Attack) 攻击流程 : 攻击者利用不验证邮箱所有权的IdP 使用受害者邮箱通过联合认证创建账户 受害者随后通过经典认证创建账户 服务错误合并这两个账户 攻击者获得访问权限 3. 攻击实施条件 攻击者需要识别受害者可能注册但尚未注册的服务,可通过以下方式: 针对特定个人:了解其常用服务模式 针对组织:如大学院系计划采用的新服务 广泛攻击:针对突然流行的服务(如疫情期间的视频会议工具),使用公开或泄露的邮箱列表 4. 实证研究结果 对75个热门网站和服务的分析显示: 至少35个(46.7%)易受一种或多种预劫持攻击 受影响服务包括云存储、社交网络、专业网络、博客和视频会议等 5. 防御措施 5.1 根本解决方案 严格标识符验证 :在允许使用账户前必须验证邮箱/电话所有权 同步验证 :禁止在验证完成前使用任何账户功能 5.2 纵深防御策略 密码重置安全措施 注销所有其他会话并使所有认证令牌失效 取消所有待处理的邮箱更改操作 通知用户所有关联的联合身份、邮箱和电话 要求用户确认不认识的标识符(默认保留) 或优选让用户选择保留哪些标识符(默认取消链接) 账户合并安全 合并经典和联合账户时,必须验证用户对两个账户的控制权 当检测到相同邮箱的经典和联合账户时,应要求用户提供或重置经典账户密码 邮箱更改确认 缩短确认链接/代码的有效期 限制未验证标识符的验证请求次数 未验证账户管理 定期删除未验证账户(但对非验证IdP攻击无效) 监控并限制同一未验证标识符的账户创建次数 使用机器人检测框架限制自动化账户创建 多因素认证(MFA) 鼓励用户尽快启用MFA 启用MFA时使之前的所有会话失效 6. 漏洞根本原因 预劫持漏洞的核心原因是服务未能: 严格验证标识符(邮箱/电话)所有权 允许在验证前使用部分账户功能 不安全地处理账户合并 不完善的会话管理 不充分的账户生命周期管理 7. 行业现状 微软在2020年资助了两项相关研究 其他研究者也发现了类似攻击("账户前接管"攻击) 攻击方式包括逆向工程不安全的确认URL参数和不安全的账户合并 8. 实施建议 开发阶段 : 设计严格的标识符验证流程 实现安全的账户合并逻辑 建立完善的会话管理机制 运维阶段 : 定期审计账户创建流程 实施未验证账户清理策略 部署机器人检测系统 用户教育 : 鼓励使用MFA 提醒用户检查账户关联的标识符 提供可疑活动告警 通过全面实施这些措施,组织可以有效防御账户预劫持攻击,保护用户账户安全。