研究论文:对 Web 用户帐户的预劫持攻击
字数 1824 2025-08-12 11:33:38
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
- 提醒用户检查账户关联的标识符
- 提供可疑活动告警
通过全面实施这些措施,组织可以有效防御账户预劫持攻击,保护用户账户安全。