Credential Stuffing

credential stuffing 是一种自动化攻击,利用从泄露中窃取的凭据 尝试访问多个服务,利用用户重用密码的行为。

什么是 Credential Stuffing

credential stuffing 是指攻击者使用从数据泄露(breaches)中获得的用户名和密码列表 来尝试访问其他服务。与 brute force 不同,credential stuffing 使用的是先前已被泄露的真实凭据。

该攻击利用了用户在 多个网站和服务中重用相同凭据的常见行为。由于 breach databases 中有数十亿条可用凭据, 攻击者的成功率很高。

工作原理

1. 获取凭据:攻击者从 公开泄露或 underground markets 获取凭据转储。

2. 准备列表:对凭据进行格式化并准备用于 自动化攻击。

3. 使用 bot:自动化工具每分钟针对目标服务测试 数千条凭据。

4. 规避检测:使用轮换 proxy、各种 user-agent 以及 CAPTCHA 规避技术。

5. Account Takeover:有效凭据被用于未经 授权的访问、欺诈或转售。

Credential Stuffing 的影响

Account Takeover:合法用户账户遭到入侵。

金融欺诈:访问银行账户、信用卡、数字 钱包。

数据窃取:访问个人、企业或机密信息。

声誉损害:攻击成功后客户信任的丧失。

运营成本:用于检测、响应、通知以及 为受影响用户提供支持的资源。

基础设施过载:大规模攻击可能影响 服务性能。

攻击中使用的工具

Sentry MBA:用于 credential stuffing 的流行工具,支持 多个网站。

STORM:具有针对不同服务模块的攻击 framework。

SNIPR:专门针对 API 进行攻击的工具。

OpenBullet:用于攻击自动化的开源 framework。

Botnets:由被入侵机器组成的网络分发大规模攻击。

防御技术

Multi-Factor Authentication (MFA):在用户名和密码之外 增加额外的验证层。

Rate Limiting:限制每个 IP、用户或 session 的登录尝试次数。

CAPTCHA:要求用户证明自己是人类,而非 bot。

Device Fingerprinting:识别并跟踪唯一设备以 检测异常行为。

Anomaly Detection:machine learning 识别异常登录模式。

Credential Monitoring:检查用户凭据是否出现在 breach databases 中。

Passwordless Authentication:通过生物识别、magic links 或 passkeys 消除密码。

攻击检测

正在进行的 credential stuffing 的指标:

  • 失败登录尝试激增
  • 来自不同 IP 的多次尝试
  • 可疑的 user-agent 模式
  • 异常的请求速度
  • 在异常时间的尝试
  • 来自异常地理位置的登录
  • 使用 proxy 或 VPN

主动防护

强密码策略:要求使用复杂且唯一的密码。

用户教育:提高对重用密码风险的认识。

密码管理器:鼓励使用 password manager。

泄露监控:诸如 Have I Been Pwned 之类的服务,用于提醒 用户其凭据已暴露。

强制重置密码:在已知的凭据泄露之后。

商业解决方案

Cloudflare Bot Management:防护 bot 和 credential stuffing。

Akamai Bot Manager:检测和缓解自动化攻击。

DataDome:针对 bot 和欺诈的实时防护。

PerimeterX:针对 bot 的应用程序安全。

Arkose Labs:针对自动化的自适应挑战。

事件响应

当检测到 credential stuffing 时:

  • IP 封锁:封锁已识别的攻击源
  • 重置密码:对受入侵账户强制重置
  • 用户通知:就访问尝试发出提醒
  • 取证分析:调查攻击的范围和来源
  • Hardening:实施额外的控制措施

最终建议

credential stuffing 是一种日益增长的威胁,它利用了人类重用密码的弱点。 有效的防御将技术控制措施(MFA、rate limiting、bot detection)与用户 教育和主动监控相结合。组织应假定用户凭据 存在于 breach databases 中,并实施纵深防御策略。