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 中,并实施纵深防御策略。
