凭证填充(Credential Stuffing)vs. 密码填充(Password Stuffing):理解差异
凭证填充攻击(有时也称为密码填充攻击)已成为网络安全领域的重要担忧。这类攻击相对容易被网络犯罪分子实施,但对安全团队来说却很难检测。在开始之前,让我们先分解一下凭证填充和密码填充之间的区别:
- Credential Stuffing:当攻击者使用被窃取的用户名和密码组合(通常来自先前的数据泄露)来获取对多个用户账户的未授权访问时,就会发生这种攻击。这里的关键在于对被重复使用的凭证的利用。
- Password Stuffing:相比之下,“密码填充”的含义通常侧重于使用常见或先前泄露过的密码列表,去尝试不同的用户名,而不一定依赖于来自泄露事件的完整“用户名-密码”组合。
Credential Stuffing 的工作原理
凭证填充攻击利用被重复使用的用户名和密码,使攻击者能够在多个网站上自动化登录尝试,从而获取未授权访问。
- 数据收集(获取被盗凭据)
- 凭据来源: 攻击者通常会从各类网站和服务先前发生的数据泄露事件中获取被盗的用户名和密码的大型数据集。这些数据集往往可以在暗网或其他非法平台上找到。
- 自动化攻击配置
- 僵尸网络或脚本: 攻击者使用机器人、脚本或自动化软件工具(例如 Sentry MBA 或 Snipr)来实施攻击。这些工具可以通过快速将被盗凭据输入到登录表单中,从而处理大规模的登录尝试。
- 代理网络: 为了避免被发现,攻击者往往会使用代理服务器或 VPN 来隐藏真实 IP 地址。这有助于绕过限速机制,并防止在失败的登录尝试过多之后账号被封禁。
- 攻击执行
- 大规模登录尝试: 攻击者的机器人会使用窃取到的用户名和密码组合,逐一向网站发送登录请求。由于许多用户会在不同平台上重复使用密码,攻击者希望某个有效的组合能够在不同服务中同样生效。
- 凭据变体: 攻击者可能会对凭据做出轻微修改(例如添加数字或特殊字符),以提高其在多个网站上成功的机会。
- 规模与速度: 这些攻击旨在实现高效率,能够在短时间内快速尝试成千上万,甚至数百万次登录。
- 攻击后的活动
- 收集信息: 一旦攻击者获得对某个账户的访问权限,就可以提取诸如信用卡号、地址以及其他个人详细信息等有价值的数据。
- 将访问权限变现:被盗或遭到泄露的凭据/账户可在暗网出售,用于直接盗取资金,或被进一步用于发动其他攻击。
凭据填充(Credential Stuffing)与暴力破解(Brute Force)攻击的区别
凭据填充(credential stuffing)与暴力破解(brute force)攻击的主要区别在于攻击方式、所使用数据的类型,以及用于获取账户未授权访问的目标。
Category | Credential Stuffing | Brute Force |
|---|---|---|
|
Input |
Stolen Credentials: Uses lists of previously stolen or leaked username and password combinations. |
Guessing Passwords: Systematically tries all possible combinations of characters for a given account. Do not rely on stolen credentials. |
|
Attack Method |
Automated Login Attempts: Uses scripts or bots to test large sets of stolen credentials across multiple websites rapidly. |
Exhaustive Search: Attempts to guess passwords by trying every possible combination, starting with common ones. |
|
Attack Target |
Targeting Multiple Accounts: This strategy focuses on multiple accounts or websites using the same set of credentials, relying on password reuse. |
Single Account or Service: Focuses on a specific account or service, attempting to guess the correct password. |
真实案例与案例研究
Yahoo(2014-2016)
概览:Yahoo 的数据泄露于 2016 年披露。该次 2013 年的攻击导致 30 亿个账户被攻破,使其成为历史上规模最大的泄露事件。另一次 2014 年的泄露事件影响了 5 亿个账户,而这两起事件均与国家支持的行为体有关。
影响: 攻击者通过利用先前数据泄露中被重复使用的凭据来访问用户账户。由于用户往往会在多个网站上重复使用相同的凭据,其中许多账户被利用凭据填充(credential stuffing)技术进行定向攻击。
结果: 这次泄露事件至今仍是历史上规模最大的事件之一,并凸显了重复使用密码的风险。它严重损害了 Yahoo 的声誉,最终也促成了 Verizon 以折扣价格收购 Yahoo 的决定。
Amazon(2018)
概览: 2018 年,据报道 Amazon 成为凭据填充(credential-stuffing)攻击的目标。在这类攻击中,网络犯罪分子试图通过使用先前泄露事件中被盗的登录凭据,获取对客户账户的未经授权访问。
影响: 攻击者瞄准了 Amazon 的客户账户,试图进行未经授权的购买,或使用已存储的支付信息。由于暗网中存在大量凭据泄露事件,凭据填充攻击尤其有效。
结果: Amazon 通过实施额外的安全措施作出回应,包括更强大的欺诈检测系统以及增强的身份验证机制。
Shopify(2020)
概览: 2020 年,Shopify 遭遇了一次凭据填充(credential stuffing)攻击,攻击目标是其用户的店铺账户。攻击者结合了被盗凭据和数量庞大的用户账户范围,并利用了来自先前泄露事件的数据。
影响: 攻击者获得了对商户账户的访问权限,但 Shopify 很快就检测到了未授权的活动。在某些情况下,攻击者还访问了诸如交易详情或客户信息等私人数据。
结果: Shopify 通过立即暂停受影响的账户,并实施增强的欺诈检测协议来防止进一步的攻击。
为什么凭据填充攻击(Credential Stuffing)正在上升
近年来,“凭据填充”(Credential stuffing)已成为日益令人担忧的问题,组织和个人正面临此类攻击的激增。了解推动这种增长的因素,有助于突出其中的风险,并强调采用更强安全实践的重要性。下面是 credential stuffing 成为日益令人担忧的若干主要原因。
大规模数据泄露
- 泄露数据呈指数级增长:多年来,数据泄露的频率和规模都显著增加。网络犯罪分子可以从企业、网站和社交媒体平台的泄露事件中获取大量被盗的用户名和密码。这会扩大未来凭证填充(credential-stuffing)攻击可用的凭证集合。
密码漏洞
- 人类行为:许多用户仍会在多个网站之间重复使用同一密码。这意味着,如果攻击者从一次泄露事件中获取到一组登录凭证,他们就可以在不同的服务上(例如电子邮件、银行业务、购物平台)尝试这些凭证,从而获得较高的成功几率。
- 糟糕的密码习惯:人们仍经常选择弱密码,例如简单的组合或默认密码,这些都很容易被猜到。这使得账户更容易受到凭证填充(credential stuffing)攻击的威胁。
自动化工具
- 执行难度低:凭据填充(Credential stuffing)攻击高度自动化。网络犯罪分子使用机器人和脚本,快速测试在不同平台上窃取的成千上万或数百万条登录凭据。这些工具使此类攻击更容易进行规模化。
- 高效率:自动化使攻击者无需人工干预即可迅速发起这些攻击,从而提升他们能够入侵账户的规模与速度。
- 机器人开发:网络犯罪分子开发越来越先进的机器人,能够模拟人类行为以规避检测。这些机器人可以解决 CAPTCHA 挑战、轮换使用用户代理,甚至在某些情况下绕过多因素认证(MFA)。
在线服务和远程办公的使用增加
- 被瞄准的账户更多:随着越来越多的服务上线,人们拥有更多可能被攻击的账户,覆盖从社交媒体到银行业务以及电子商务。这会扩大凭据填充(Credential stuffing)攻击的适用范围。
- 互联网连接性增强:随着连接到互联网的设备数量不断增加(物联网、智能设备),攻击者现在能够获得更多的入侵入口,并可使用凭据填充来针对这些设备上的账号。
凭据填充的后果
凭据填充可能带来深远的后果,影响个人和组织。分析这些攻击的影响,有助于了解为何它们对安全与信任构成如此重大的威胁。
经济损失
- 直接的经济影响:I如果攻击者获得对金融账户的访问权限,他们就可以进行欺诈性购买、转移资金或实施其他形式的欺诈。对于电子商务网站而言,这可能导致拒付(chargebacks)或收入损失。
- 补救成本: 企业可能需要承担巨大的成本,用于调查此次泄露、向受影响用户进行补偿,并从攻击中恢复。这可能包括法律费用、客户支持以及网络安全措施。
IBM《2023 年数据泄露成本报告》指出,数据泄露的平均成本(可能包括凭据填充攻击)约为 445 万美元。凭据填充攻击的规模不同,但在整体泄露成本中可能会带来显著影响。
身份盗用与隐私侵犯
- 被盗的个人信息: 如果攻击者成功访问个人账户(电子邮件、社交媒体等),就可能窃取诸如姓名、地址、电话号码和支付信息等敏感数据,从而导致身份盗用或欺诈。
- 敏感数据暴露: 对于企业而言,被入侵的账户可能包含客户的个人身份信息(PII),这可能导致数据泄露、监管罚款以及公众舆论反弹。
声誉损害
- 信任丧失: 如果发生凭证填充攻击,客户可能会对该公司失去信任;尤其当敏感数据遭到泄露,或公司被认为未能保护用户信息时,这种情况会显著加剧。最终可能导致客户流失以及品牌忠诚度下降。
- 对合作伙伴的负面影响: 依赖合作伙伴的企业,若其安全性遭到入侵,可能会看到合作关系变得紧张,甚至在合作伙伴处失去可信度。公司获得的信任也会影响业务谈判以及未来的合作。
用于进一步攻击的利用
- 网络钓鱼与社会工程学: 在获得对用户账户的访问权限后,攻击者可能会将其作为发起网络钓鱼活动的跳板。他们可以冒充用户,诱骗其联系人透露个人或财务信息。
- 跨服务攻击:如果攻击者获得某个账户的访问权限,他们可能会使用相同的凭据尝试登录其他服务。若用户重复使用了密码,攻击者就可能访问其他账户,从而进一步扩大攻击的影响。
- 凭据贩卖:被盗的凭据可以在暗网出售,从而推动更庞大的网络犯罪市场形成。攻击者可能利用这一市场发起进一步的行动,或向其他恶意主体提供凭据。
预防与防御机制
以下是一些用于缓解凭据填充(credential stuffing)攻击的最佳实践和方法。
多因素认证(MFA)
- 额外验证: MFA 要求用户验证其用户名和密码。此第二因素可能是用户知道的内容(例如 PIN)、用户拥有的物品(例如智能手机或硬件令牌),或用户本身的特征(例如指纹等生物识别数据)。
- 缓解密码重复使用: 由于凭据填充(credential stuffing)攻击往往利用用户在多个网站重复使用密码这一事实,MFA 会显著增加攻击者获取访问权限的难度,即使他们拥有正确的用户名和密码。
密码管理器
- 为每个账户设置单独的密码: 由于重复使用密码往往是在线服务要求的密码复杂性导致的,用户通常会依赖一个或少数几个复杂但记住的密码。密码管理器通过将复杂密码和口令保存在安全容器中来支持用户。
- 自动检查是否重复使用或已泄露: 现代密码管理器会检查用户存储的密码是否被重复使用,并将账户和密码与已知的泄露账号凭据进行验证。
CAPTCHA
要求用户完成一项简单的人类任务,但自动化机器人很难复制这一过程。
基于文本的 CAPTCHA
- 扭曲文本:这是传统形式的 CAPTCHA,要求用户从图片中输入被扭曲的字母或数字。扭曲会让依赖算法的机器人难以识别简单模式并正确解读字符。
基于图像的 CAPTCHA
- 物体识别: CAPTCHA 的一种现代变体会要求用户选择包含特定物体的图片(例如:“点击所有包含交通信号灯的图片”或“选择包含自行车的图片”)。人类可以轻松识别物体,但这项任务对机器人来说仍然很难,尤其是在图片种类多样或存在背景噪声的情况下。
隐形 CAPTCHA(reCAPTCHA v3)
- 行为信号: 隐形 CAPTCHA 使用机器学习模型来分析模式,例如用户如何滚动或点击。这些模式是人类行为所特有的,并且对机器人来说很难模仿。
机器人检测
机器人检测或机器人管理涉及监控各种行为、网络和技术信号,以判断用户是人类还是机器人。通常会采用多种方法来捕捉机器人活动,并且往往与 CAPTCHA 系统结合使用。
- 行为分析. 人类用户与网页的交互方式通常是机器人难以复制的,包括鼠标移动、输入/打字模式以及页面交互模式。机器人也往往会以超出人类速度的方式填写表单或执行操作,因此分析输入延迟有助于识别机器人。
- IP 地址与地理位置分析。机器人检测系统会跟踪 IP 地址及其信誉。已知的代理服务器或 VPN(机器人常用来掩盖其真实位置)可能会引发怀疑。如果在短时间内来自同一 IP 地址的请求数量很多,可能会被标记为机器人攻击。机器人还会尝试从它们没有账号或地理位置异常的国家访问服务或资源。例如,来自某一国家的用户登录到另一国家的账号,可能会被标记为可疑。
- 浏览器和操作系统异常。 机器人可能会使用不常见或自动化的浏览器版本,或者出现操作系统不匹配的情况,这些都可以用来识别可疑活动。
设备指纹识别
通过跟踪用户设备的独特属性(例如浏览器类型、操作系统、屏幕分辨率以及已安装的插件),它有助于识别可疑或异常的登录尝试。由于机器人通常不会在自然环境中运行,且无法提供逼真的设备指纹,这种方法能够快速区分合法用户与自动化攻击尝试。通过检测并阻止这些可疑登录,设备指纹识别为防范凭据填充(credential stuffing)增加了一层额外的保护。
IP 黑名单
在凭证填充(credential stuffing)攻击中,攻击者会使用自动化机器人尝试大量被盗的用户名和密码,以获取未授权访问。由于此类攻击往往源自有限的一组 IP 地址,将这些地址列入黑名单可能是一种有效的防御机制。通过阻止与恶意活动相关的 IP,组织可以显著降低凭证填充攻击成功的概率,从而在未授权访问发生之前加以阻止。
速率限制
通过限制在特定时间范围内 IP 地址或用户能够发出的请求数量,速率限制有助于阻止自动化机器人。自动化机器人往往会进行快速且反复的登录尝试。由于机器人通常会超出请求限制,这一技术可以显著减缓甚至阻止凭证填充攻击。为在不干扰合法用户活动的情况下增强安全性,建议对住宅 IP 地址应用速率限制,为这些恶意攻击再提供一层额外的保护。
无密码认证
无密码认证(Passwordless authentication)是一种安全机制,允许用户在无需输入传统密码的情况下完成身份认证。相反,它会利用其他替代方式,例如生物特征(指纹、面部识别)、硬件令牌(例如安全密钥)、一次性口令(OTP)或推送通知来验证用户身份。该方法显著提升安全性,并有助于防护多种网络攻击,包括凭据填充(credential stuffing)、网络钓鱼(phishing)以及基于密码的攻击。
防范凭据填充(credential stuffing)的高级策略
随着凭据填充(credential-stuffing)攻击变得更加复杂,组织必须采用先进策略以保持领先。利用 AI、机器学习以及混淆(obfuscation)技术等手段,可以提供更深入的防护,从而使攻击者更难取得成功。
使用 AI 和机器学习
现代 AI 工具通过运用先进的机器学习和行为分析技术,在识别并阻止凭据填充(credential stuffing)尝试方面至关重要。这些工具能够分析海量数据,并在实时条件下识别可疑模式,从而发现并拦截传统安全系统可能会漏掉的恶意自动化登录尝试。
- 行为画像:由 AI 驱动的系统会分析正常用户行为,以构建“合法登录尝试”的基线。随后,这些系统可以检测与该基线的偏离,例如:同一 IP 地址上的登录尝试次数异常偏高,或登录时间/地点出现异常模式。
- 动态 IP 监控:AI 系统可以根据 IP 地址的历史活动来追踪并评估其声誉。如果某个 IP 地址与恶意行为或已知的机器人活动相关(来自威胁情报源或历史数据),AI 就可以阻止或对来自该地址的请求发起挑战。
- 地理围栏: AI 还可以根据地理位置模式识别可疑的登录尝试。假设某个账户在不常见或出乎意料的位置被访问(尤其是远离用户通常所在的位置)。在这种情况下,系统可能会通过额外验证来对该登录尝试发起“挑战”,例如使用 MFA 或 CAPTCHA,以阻止来自境外 IP 地址的凭据填充(credential stuffing)。
混淆技术
- 加密:它会将明文(可读数据)转换为编码后的版本(密文),只有使用正确的密钥才能将其解密回原始数据。加密可以在传输或存储过程中保护密码。当用户将密码发送到服务器时,加密可确保即使数据被拦截,攻击者也无法读取其中内容。
- 哈希(Hashing): 这项技术是一种单向加密函数:它接收一个输入(例如密码),并生成一个固定长度的字符串,通常以十六进制形式表示。该输出称为哈希(hash),并且与输入是唯一对应的。与加密不同,哈希是单向的,也就是说你无法从哈希中找回原始密码。这一点至关重要,因为即使攻击者获得了对哈希密码的访问权限,也无法反向推导、恢复出原始密码。
- 加盐(Salting): 该方法是在对每个密码进行哈希之前,先为每个密码添加一个独特的随机值(salt,盐)。即使两个用户使用相同的密码,由于盐值不同,它们的哈希结果也会不同。盐值与哈希一起存储在数据库中,从而防护基于“彩虹表”(rainbow table)的攻击。彩虹表攻击会为常见密码使用预先计算好的哈希。通过引入随机盐,即使是常见密码也会生成唯一的哈希值,使攻击者更难以利用这些信息进行破解。
持续身份验证
这种先进的安全方法会在用户整个会话期间持续验证其身份,而不是仅在登录时进行验证。它是防止凭证填充(credential stuffing)的强大工具:即使攻击者已经成功使用被盗或泄露的凭证,也能帮助发现并阻止未经授权的访问。
事件响应计划
预防、缓解并有效恢复网络攻击,要求组织必须制定完善的缓解与响应计划。结构清晰的事件响应计划会明确规定应对安全事件的流程与职责,帮助组织高效地检测、遏制并从攻击中恢复。
用户最佳实践
用户在保护其账户、从而避免遭受凭证填充(credential stuffing)攻击方面发挥着至关重要的作用。通过遵循关键最佳实践,个人可以显著降低被泄露凭证被滥用的风险。
- 避免并劝阻在多个网站或身份之间重复使用密码。 这是避免凭证填充(credential stuffing)攻击的最有效做法之一,因为它会使泄露的凭证数据库几乎毫无用处。
- 使用密码管理器。密码管理器会安全地存储你所有账户的密码,并帮助生成独特且强壮的密码。这样,你无需记住每一个密码,也能确保密码既独特又足够复杂。建议在可能的情况下启用 MFA。
- 警惕网络钓鱼(Phishing)尝试。 许多攻击都始于网络钓鱼(Phishing)尝试。用户应当谨慎对待未经请求的电子邮件或链接——它们可能会要求你登录账号或更新密码。
Netwrix 如何提供帮助
Netwrix 提供多种产品,旨在帮助组织防御凭证填充(credential stuffing)攻击:
Netwrix Threat Manager. 这款先进的威胁检测软件利用机器学习和用户行为分析,实时识别并响应可疑活动,从而实现对潜在威胁的快速遏制。
Netwrix Threat Prevention. 该工具利用包含超过 50 万个已知泄露(被攻破)密码的全面词典,帮助防止使用弱密码或被盗密码,从而降低基于凭证的攻击风险。
Netwrix Password Policy Enforcer. 该解决方案使组织能够在 Active Directory 中实施强大且可自定义的密码策略,从而降低凭据填充(credential stuffing)、字典攻击以及其他暴力破解方法的风险。
Netwrix Password Secure。通过提供实时告警和全面报告,该工具使组织能够主动识别并修复密码漏洞,从而提升整体密码安全性。
Netwrix Directory Manager Password Management. 使用户能够在 Microsoft Entra ID(原 Azure AD)和 Active Directory 中自行重置密码,从而让他们能够立即投入工作,而 IT 团队则可专注于更具战略意义的任务。为进一步提升安全性,在允许进行密码重置之前可无缝地要求 MFA 或管理者审批。
Netwrix Access Analyzer for AD/EntraID. 准确定位并修复关键安全威胁,例如弱密码;或识别可能发生的可疑登录事件。
分享到
滥用 Entra ID 应用权限——工作原理与防御策略
AdminSDHolder 修改——工作原理与防御策略
AS-REP Roasting 攻击:工作原理与防御策略
Hafnium 攻击——工作原理与防御策略
DCSync 攻击解析:对 Active Directory 安全的威胁
ChatGPT 提示注入(prompt injection):了解风险、示例与防范
NTDS.dit 提取攻击详解
Kerberoasting 攻击——工作原理与防御策略
Pass-the-Ticket(传票)攻击解析:风险、示例与防御策略
理解密码喷洒(password spraying)攻击
明文密码提取(Plaintext Password Extraction)解析:风险、示例与防范
Zerologon 漏洞详解:风险、利用方式与缓解措施
勒索软件攻击完整指南
Skeleton Key 攻击:工作原理与检测方法
横向移动(Lateral Movement):它是什么、如何运作及防护措施
中间人(MITM)攻击:它们是什么,以及如何防范
Silver Ticket 攻击
4 种服务账号攻击及防护方法
为什么 PowerShell 对攻击者来说如此受欢迎?
如何防止恶意软件攻击影响您的业务
使用 PowerUpSQL 破坏 SQL Server
什么是 Mousejacking(鼠标劫持)攻击,以及如何防御
使用 Security Support Provider(SSP)窃取凭据
彩虹表攻击:工作原理与防御方法
深入了解密码攻击及其防止方法
通过 Pass-the-Cookie 攻击绕过 MFA
Golden SAML 攻击终极指南