什么是凭证填充?| 凭证填充与暴力攻击

凭证填充攻击是指收集从一项服务盗取的登录凭证,用来尝试入侵其他各项服务的相关帐户。

Share facebook icon linkedin icon twitter icon email icon

凭证填充

学习目标

阅读本文后,您将能够:

  • 明确凭证填充的概念
  • 区分凭证填充与暴力攻击
  • 了解凭证填充防护策略

什么是凭证填充?

凭证填充是一种网络攻击,攻击者尝试使用从某一服务数据泄露事件中所获得的凭证登录其他不相关的服务。

Credential Stuffing Example

例如,在入侵某一大型百货公司后,攻击者可能从中获取用户名和密码清单,而后使用相同的登录凭证尝试登录国家银行的站点。攻击者寄希望于其中部分百货公司客户在该银行也有帐户,并希望这些客户重复使用相同的用户名和密码登录这两项服务。

截至 2019 年,由于有大量遭泄露的凭证清单在黑市上交易和出售,凭证填充攻击呈现上升态势。这些清单的扩散,再加上使用机器人绕过传统登录保护机制的凭证填充工具的发展,已使得凭证填充成为一种盛行的攻击途径。

促使凭证填充发挥作用的因素有哪些?

从统计学角度而言,凭证填充攻击成功的几率极低。很多人预计成功几率约为 0.1%,这意味着攻击者尝试破解的每 1,000 个帐户中,成功破解的帐户数量约为 1 个。虽然成功率低,但攻击者可以交易大量凭证集,这也使得凭证填充找到了存在的价值。

这些集合内含成千上万甚至数以亿计的登录凭证。如果攻击者持有一百万组凭证,则能够获取约 1,000 个成功破解的帐户。即使只有一小部分破解帐户带来可盈利的数据(通常形式是信用卡卡号或是钓鱼攻击中所使用的敏感数据),也值得发动这种攻击。除此之外,攻击者能够对各种不同的服务使用相同的凭证组合,进而反复进行这一过程。

机器人技术的进步也使得凭证填充成为一种可行性攻击。Web 应用程序登录表单内置的安全功能往往包括蓄意时延机制,并且在用户多次尝试登录失败时会将其 IP 地址禁用。现代凭证填充软件会利用机器人同时尝试多方登录,而表面看起来登录是在各种设备类型上进行,且来自多个 IP 地址,借此绕开这些保护机制。恶意机器人的目的在于让攻击者的登录尝试有别于典型的登录流量,且这种方法十分奏效。

通常受害企业遭受攻击的唯一迹象就是登录尝试总次数的增加。即便如此,受害企业也难以在不影响合法用户登录该服务的情况下对这些登录尝试加以阻止。

凭证填充攻击奏效的主要原因是人们会重复使用密码。研究表明,大多数用户(据估计这一比例高达 85%)会就多项服务重复使用相同的登录凭证。只要这一做法继续存在,凭证填充就仍富有成效。

凭证填充与暴力攻击二者有何区别?

OWASP 将凭证填充归为暴力攻击的一个子集。但严格来讲,凭证填充与传统的暴力攻击有很大不同。暴力攻击尝试在情境背景或线索的情况下猜测密码,有时按照常规密码设置建议随机套用字符。凭证填充利用的是泄露数据,可能正确的答案在数量上得到了精简。

有效防御暴力攻击的方法是设置由多个字符组成的高强度密码,密码中包含大写字母、数字和特殊字符。但密码强度在凭证填充防御方面无效。无论密码强度多高,只要不同帐户共有该密码,凭证填充就能将其破解。

如何防止凭证填充

用户要如何防止凭证填充

从用户角度而言,防御凭证填充的方法十分简单。用户应一律为各项不同的服务设置唯一密码(要实现这一目标,一个简单的方法就是使用密码管理器)。如果用户一律设置唯一密码,凭证填充则不会危及其帐户。另有一种安全措施,支持用户只要情况允许,一律启用双因素身份验证。

企业要如何防止凭证填充

对运行验证服务的企业而言,如何阻止凭证填充是一个更加复杂的难题。凭证填充是其他企业发生数据泄露事件所致。凭证填充受害企业的安全性不一定会受损。

企业可建议自己的用户设置唯一密码,但无法将其当做规则有效实施。有些应用程序会在接受所提交的密码之前将其与已知遭到破解的密码数据库比对,以此防范凭证填充,但该措施也非万无一失,因为用户可能会重复使用为尚未遭入侵的服务设置的密码。

增加登录安全功能有助于进行凭证填充防护。启用双因素身份验证等功能,并在登录时要求用户填写 CAPTCHA(验证码),这两种机制也有助于阻止恶意机器人。虽然这两项机制会给用户带来诸多不便,但多数人承认,这能最大限度地减少安全威胁,即使不便也值得。

防范凭证填充的最强保护机制是机器人管理服务。机器人管理机制采用速率限制和 IP 信誉数据库相结合的方式,在不影响合法登录的情况下,阻止恶意机器人尝试登录。Cloudflare 机器人管理每天从通过 Cloudflare 网络路由的 4,250 亿个请求中收集数据,能够高度准确地识别和阻止凭证填充机器人。