认证与密码

凭证填充

约 4 分钟阅读

什么是凭证填充

凭证填充是一种利用过去数据泄露中流出的 ID 和密码组合 (凭证) 自动尝试登录其他服务的攻击手法。其最大特征是利用密码重复使用,攻击者通过僵尸网络大规模尝试从暗网获取的数百万条认证信息列表。

这种攻击之所以成功,是因为许多用户在多个服务中使用相同的密码。安全研究表明,约 65% 的互联网用户在两个以上的服务中使用相同密码,攻击成功率约为 0.1% - 2%。看似很低,但尝试数百万条凭证就能突破数千到数万个账户。

与暴力破解攻击的区别

暴力破解攻击尝试所有可能的密码组合,而凭证填充的根本区别在于使用实际存在过的认证信息。

  • 尝试模式:暴力破解对单个账户尝试大量密码。凭证填充对大量账户各尝试一个密码
  • 检测难度:暴力破解因同一账户连续失败而容易检测。凭证填充每个账户仅需 1-2 次尝试,难以与正常登录失败区分
  • 成功率:暴力破解除短密码外成功率极低。凭证填充使用真实凭证,成功率相对较高

攻击流程与实态

凭证填充攻击按以下步骤执行。

  1. 获取认证信息:在暗网市场购买泄露数据库。数百万条邮箱地址和密码的组合仅需数十美元即可交易
  2. 工具准备:使用 Sentry MBA、OpenBullet 等自动化工具,针对目标服务的登录表单进行配置
  3. 分布式执行:通过数千个代理和住宅 IP 地址绕过基于 IP 的速率限制,大规模执行登录尝试
  4. 利用被攻破的账户:成功登录的账户被用于积分盗用、个人信息窃取以及作为进一步钓鱼攻击的跳板

电商网站、视频流媒体服务和游戏平台尤其容易成为目标,账户关联的积分和信用卡信息是攻击者的主要目标。

有效的防御策略

从用户端和服务提供商端两方面采取对策非常重要。

用户端对策

  • 使用密码管理器:为每个服务生成和管理唯一的复杂密码。这是最根本的对策
  • 启用双因素认证:即使密码泄露,没有第二认证因素也无法登录
  • 泄露检查:定期使用 Have I Been Pwned 等服务检查自己的邮箱地址是否包含在泄露数据中

服务提供商端对策

  • 速率限制和异常检测:检测短时间内的大量登录尝试,按 IP 或会话进行阻止
  • 引入 CAPTCHA:抑制机器人的自动尝试。但高级机器人可能会突破 CAPTCHA
  • 密码泄露检查 API:在注册时验证用户设置的密码是否包含在已知泄露列表中
  • 设备指纹:检测来自异常设备或浏览器的登录并要求额外认证

常见误解

我的密码没有泄露所以很安全
过去十年中数百亿条认证信息已被泄露,如果使用主流服务,被包含在泄露列表中的可能性很高。在 Have I Been Pwned 上检查,大多数人至少涉及一次泄露。
稍微修改密码就可以重复使用
将 "password123" 改为 "password124" 这样的轻微修改是无效的,因为攻击工具会自动尝试变体。需要为每个服务使用完全不同的随机密码。

凭证填充与暴力破解攻击的比较

凭证填充

使用泄露的真实认证信息。对大量账户各尝试一次。难以检测,成功率相对较高。根本原因是密码重复使用。

暴力破解攻击

尝试所有密码组合。对单个账户大量尝试。通过账户锁定容易防御。根本原因是密码过短或过于简单。

分享

相关术语