MFA 疲劳攻击的实态 - 迫使用户批准通知的新手法

本文约需 13 分钟阅读

MFA 疲劳攻击 - 也称为 MFA 轰炸或推送疲劳 - 已成为绕过多因素认证最有效的技术之一。 攻击者已经拥有受害者的凭据 (通过网络钓鱼凭据填充或 暗网购买获得),反复触发MFA 推送通知,直到受害者因疲惫或困惑而批准其中一个。Mandiant 的 2023 年威胁报告记录显示, MFA 绕过攻击同比增长超过两倍,推送疲劳是主要攻击向量。2022 年 Uber 泄露事件展示了 毁灭性的现实影响:一次被批准的通知就让 Lapsus$ 组织获得了内部系统的访问权限, 包括 Slack、Google Workspace 和源代码仓库。本文分析技术机制、心理利用、 标志性泄露案例,以及从数字匹配到 FIDO2 的具体防御措施。

攻击的技术机制

MFA 疲劳攻击利用了基于推送通知的 MFA 的根本设计弱点。传统的推送型 MFA 中,用户只需在智能手机上点击「批准」或「拒绝」即可完成认证。这种设计虽然便利性出色,但用户无法判断认证请求的合法性。攻击者利用每次使用被盗凭据尝试登录都会触发推送通知这一特点,在包括深夜和凌晨在内的时间段持续发送数十到数百次通知。

典型的攻击流程如下。第一阶段,攻击者通过网络钓鱼、购买泄露数据库凭据或社会工程学获取目标的用户名和密码。第二阶段,使用自动化脚本反复尝试登录目标服务。每次尝试都会生成推送通知,受害者的智能手机会不断收到通知。第三阶段,受害者批准通知,或者攻击者通过 WhatsApp 或 SMS 冒充 IT 支持联系受害者,说「请批准以解决安全问题」。在 Uber 案例中,攻击者发送了一个多小时的推送通知后,通过 WhatsApp 冒充 IT 部门促使受害者批准。

2022 年 Uber 泄露事件详细分析

2022 年 9 月,一名与 Lapsus$ 组织有关的 18 岁攻击者入侵了 Uber 的内部系统。攻击起点是在暗网购买的 Uber 外部承包商的 VPN 凭据。攻击者使用这些凭据尝试登录 Uber 的 VPN,但由于启用了 MFA,推送通知被发送到承包商员工的智能手机上。攻击者在一个多小时内反复尝试登录,持续发送大量推送通知。

最终,攻击者通过 WhatsApp 冒充 Uber IT 支持联系受害者,声称「不批准通知就无法解决登录问题」。疲惫的受害者批准了通知,攻击者获得了 VPN 访问权限。连接 VPN 后,攻击者扫描内部网络,在网络共享文件夹中发现了一个 PowerShell 脚本。该脚本包含 Thycotic (特权访问管理工具) 的硬编码管理员凭据。利用这些凭据,攻击者访问了 Uber 的 Slack、Google Workspace、AWS 控制台、HackerOne 漏洞赏金报告和源代码仓库。损害的全部范围非常严重,Uber 面临 SEC 报告义务和严重的品牌声誉损害。

2022 年 Cisco 泄露事件与攻击模式的共同点

2022 年 5 月,Cisco 也遭受了 MFA 疲劳攻击。在这个案例中,攻击者首先入侵了员工的个人 Google 账户。通过 Chrome 浏览器的密码同步功能,存储在个人账户中的 Cisco VPN 凭据落入攻击者手中。随后,攻击者像 Uber 案例一样反复发送 MFA 推送通知,并结合冒充 Cisco IT 支持的语音钓鱼 (vishing),让受害者批准了通知。Cisco 检测到入侵并成功遏制,但部分内部数据被泄露。

Uber 和 Cisco 案例的共同点是,MFA 疲劳攻击不是单独使用的,而是与社会工程学相结合。通过同时利用技术攻击向量和人类心理弱点,成功率大幅提高。关于这种复合攻击方法,我们关于社会工程学防御的文章提供了更多背景知识。

为什么人们会批准通知 - 心理因素分析

MFA 疲劳攻击的成功更多依赖于人类的心理弱点而非技术漏洞。第一个因素是「通知疲劳」。智能手机用户每天平均收到 80 多条通知,养成了不仔细查看通知内容就处理的习惯。MFA 通知也被淹没在大量通知中。第二个因素是「可能是我自己触发的」这种想法。许多用户收到 MFA 通知时会想「也许是我在某处尝试登录」,不深入质疑就批准了。

第三个因素是「睡眠干扰导致的判断力下降」。当攻击者在凌晨 2 点或 3 点持续发送通知时,被打扰睡眠的受害者会出于「只想让它停下来」的冲动而批准。研究表明,睡眠不足时的决策能力会降低到与醉酒相当的水平,攻击者有意针对这一生理弱点。第四个因素是「对权威的服从」。如 Uber 案例所示,当攻击者冒充 IT 支持联系受害者时,许多员工会因为「这是 IT 部门的指示」而毫不怀疑地服从。这与斯坦利·米尔格拉姆的服从实验所证明的心理机制相同。

推送通知 vs 数字匹配 vs FIDO2 - 抗性比较

根据 MFA 的实现方式不同,对疲劳攻击的抗性差异很大。传统的推送通知型 MFA 对疲劳攻击最为脆弱,因为只需点击「批准」即可完成认证。只要攻击者拥有凭据,就可以无限发送推送通知。数字匹配 (Number Matching) 要求用户将登录屏幕上显示的 2 位数字输入到智能手机的认证应用中。即使攻击者发送推送通知,受害者如果不知道登录屏幕上显示的数字就无法完成认证。这可以防止通过简单的「批准」点击造成的误认证。

基于 FIDO2/WebAuthn 的认证 (硬件安全密钥和通行密钥) 对 MFA 疲劳攻击具有完全的抗性。在 FIDO2 认证中不存在推送通知,认证仅在用户物理触摸安全密钥或在设备上进行生物认证时才启动。此外,认证请求与服务的来源 (域名) 进行加密绑定,使通过钓鱼网站的认证变得不可能。Microsoft 于 2023 年 2 月在 Authenticator 应用中默认启用了数字匹配,并报告推送疲劳攻击报告大幅减少。

要深入了解防钓鱼认证,我们的双因素认证指南硬件安全密钥指南涵盖了技术基础。TOTP 术语表条目也解释了为什么基于时间的代码比推送通知更具抗性。

企业和个人的对策

企业应采取的最优先对策是从推送通知型 MFA 迁移到数字匹配或基于 FIDO2 的认证。Microsoft Authenticator、Duo Security 和 Okta Verify 都提供数字匹配功能,管理员可以作为策略强制执行。此外,应配置异常认证尝试模式的警报 (短时间内对同一账户的大量 MFA 请求),建立安全团队即时响应的体制。通过引入 MFA 请求的速率限制 (例如 5 分钟内最多 3 次),可以使攻击者难以发送大量通知。

对于个人用户,首先应检查所使用服务的 MFA 设置,如果可以使用数字匹配则启用。包括 Microsoft 账户和 Google 账户在内的主要服务已经支持数字匹配。如果需要更强的保护,请考虑迁移到通行密钥或硬件安全密钥。此外,如果收到自己没有发起的 MFA 通知,绝对不要批准,并立即更改密码。即使有人自称 IT 支持联系你,养成自己联系官方支持渠道进行确认的习惯,是对社会工程学最强的防御。

关于过渡到防钓鱼认证的全面指导,多因素认证相关资源 (Amazon)涵盖了技术实施和组织变革管理。

未来展望 - MFA 进化与攻击的军备竞赛

MFA 疲劳攻击的兴起正在加速认证安全的进化。Microsoft、Google 和 Apple 三家公司于 2022 年联合宣布推广通行密钥,不依赖推送通知的认证转型正在全行业推进。然而,攻击者也在不断进化。实时钓鱼代理 (EvilProxy、Evilginx 等) 实时中继包括数字匹配在内的 MFA 来突破,结合会话令牌窃取可以完全绕过 MFA。对于这种攻击,FIDO2 的来源验证是唯一的技术对策。零信任架构的引入、持续认证 (Continuous Authentication)、设备健康检查等防止认证「单点突破」的多层防御将变得越来越重要。

常见问题

如何判断自己是否正在遭受 MFA 疲劳攻击?
如果在没有尝试登录的情况下反复收到 MFA 推送通知,很可能正在遭受 MFA 疲劳攻击。特别是短时间内收到多次通知是攻击的征兆。这种情况下,绝对不要批准通知,立即更改密码,并向 IT 部门 (企业的情况) 或服务的支持团队报告。
启用数字匹配就能完全防止 MFA 疲劳攻击吗?
数字匹配大幅降低了 MFA 疲劳攻击的成功率,但不是完全的防御。如果攻击者使用实时钓鱼代理,受害者可能会在钓鱼网站上输入数字。完全的防御需要基于 FIDO2 的认证 (硬件安全密钥或通行密钥)。FIDO2 对服务的来源进行加密验证,使通过钓鱼网站的认证在数学上变得不可能。
MFA 疲劳攻击也会发生在 TOTP (基于时间的一次性密码) 上吗?
不会,MFA 疲劳攻击不适用于 TOTP。TOTP 不使用推送通知,用户手动输入认证应用中显示的 6 位代码。即使攻击者尝试登录,受害者的智能手机也不会收到通知。但是,TOTP 存在通过实时钓鱼窃取代码的风险。最安全的选择是基于 FIDO2 的认证。

相关术语