凭据填充攻击
1. 定义
凭据填充 (Credential Stuffing) 是暴力破解攻击的一个子集。攻击者将从第三方泄露数据库中获得的用户名和密码对,自动注入到目标应用的登录表单中。
与传统的暴力破解(如猜测 “password123”)不同,这种攻击基于一个统计学事实:用户通常会在多个服务中重复使用相同的密码。如果用户的 LinkedIn 密码泄露了,攻击者就会将该凭据“填充”到银行、医疗或零售网站中。
2. 技术原理
这属于一种 自动化威胁 (Automated Threat) (OAT-008)。
- 来源: 攻击者从暗网获取“库(Combolists)”(即 电子邮件:密码 的泄露名单)。
- 引擎: 使用 Sentry MBA 等工具或自定义脚本,通过住宅 IP 代理网络发送请求,以绕过简单的 IP 封锁。
- 执行: 机器人程序针对目标网站测试凭据。
- 结果: 有效的登录被分类为“Hits”,随后被转卖或直接用于欺诈。
3. 攻击流程
flowchart TD
Breach[网站 A 发生泄露] -->|泄露数据| DB[(账号密码数据库)]
DB --> Bot[自动化攻击机器人]
Bot --"尝试 user@email.com / P@ss123"--> Target[目标网站 B]
Target --"200 OK (登录成功)"--> Bot
Bot --> Hits[(有效账号列表)]
Hits --> Takeover[账号接管 / 欺诈]
Note right of Target: 用户是真实的,<br/>密码也是正确的。<br/>系统无法识别这是机器人。4. 真实案例:23andMe (2023)
目标: 23andMe (基因检测服务)。 漏洞类别: 缺乏凭据填充保护(双因素认证 MFA 仅为可选)。
事件经过: 2023 年底,攻击者访问了 690 万用户的账号。值得注意的是,23andMe 的系统本身并未被入侵。 攻击者利用从其他平台泄露的有效凭据,登录了那些重复使用密码的 23andMe 账号。 进入账号后,他们抓取了“DNA 亲属”数据。这意味着即使许多用户本身并未被直接撞库,但因为其亲属的账号被盗,其基因隐私也遭到了泄露。
影响: 引发了大规模的隐私诉讼。这证明了**“用户错误”(重复使用密码)也是系统问题**,如果平台不强制执行 MFA 或检测撞库行为,就必须承担责任。
5. 深度防御策略
A. 多因素认证 (MFA)
这是防御撞库的“银弹”。即使攻击者拥有从其他泄露中获得的正确密码,他们也无法通过短信、TOTP 挑战或硬件密钥。
- 最佳实践: 对所有用户强制执行 MFA,或至少使用“自适应 MFA”(仅针对可疑登录发起挑战)。
B. 已泄露密码检查 (Breached Password Protection)
在登录或注册时,检查用户密码是否已存在于已知的泄露数据库中。
- 工具: 使用 Have I Been Pwned (HIBP) API 或类似服务。
- 机制: 如果用户尝试使用(或正在使用)已知的受损密码,则强制其重置密码。
- NIST 指南: NIST 800-63B 明确建议对照泄露库检查用户密码。
C. 设备指纹与行为分析
识别登录请求是否来自脚本机器人。
- 信号:
- 无头浏览器 (Headless Browser) 的 User-Agent 特征。
- 不一致的 IP 地理位置(如 5 分钟前在美国登录,现在在俄罗斯登录)。
- 鼠标移动遥测(机器人通常以直线移动,或根本没有移动轨迹)。
