由于远程办公的激增以及对云服务和基础设施的日益依赖导致了新的企业访问安全挑战。对于许多组织而言,多因素身份验证(MFA)成为“必备”安全控制手段,以帮助防止凭据盗窃,同时对关键资产进行分段以使攻击者更难实现目标。
据报道,微软追踪的99.9%的受感染账户不使用MFA。谷歌发现即使是基本的双因素身份验证方法(例如通过蜂窝网络生成一次性密码的短信),也可以阻止100%的自动攻击、96%的批量网络钓鱼攻击和四分之三的针对性攻击。
MFA应被视为基础安全控制,是分层和整体零信任策略的一部分。如果设计或实施不正确,MFA基础设施可能会受到损害并用于攻击链。随着攻击者不断创新,他们正在寻找新的、创造性的方法来瞄准MFA并绕过这些关键的安全控制。
自2020年以来,来自世界的MFA绕过对抗性模拟请求激增。威胁行为者用来规避MFA控制的四种主要攻击媒介:架构和设计缺陷、不安全的通道、侧通道攻击和攻击面覆盖不足。
1、操纵架构和设计缺陷
许多组织使用MFA部署单点登录(SSO)以降低与凭证盗窃相关的风险。
在最近的一次安全事件中,一家大型全球组织使用第三方MFA提供商来保护其VPN访问。一旦连接到VPN,远程用户将使用SSO访问各种云服务。然而,在我们的测试过程中,我们发现当用户从VPN范围内的受信任IP登录时,他们只会在获得访问任何云服务之前被提示输入他们的域凭据。
这揭示了一个基本的架构缺陷:MFA仅适用于基于基础设施的访问,而不适用于访问关键资产的个人用户身份。这使得MFA控制变得无用,使组织容易受到单因素攻击。通过简单地破坏用户的工作站并获得对该机器上安装的软令牌应用程序的访问权限,就可以登录VPN,使用任何其他单一用户密码轻松切换用户,并访问从管理者电子邮件到全能云的所有内容控制台。
多因素身份验证(MFA)绕过技术揭示
通过入侵“Bob”的工作站并获得对他的软令牌应用程序(安装在他的机器上)的访问权限,我们可以使用Bob的令牌代表他访问VPN。登录后,我们将使用“Alice的”密码来切换用户。
2、利用不安全的令牌载入流程
在某次攻防活动中,活动的目标是进入受MFA代币保护的组织的敏感工业网络。在获得了对IT网络的初始访问权限,并开始查看用户电子邮件,很快就注意到初始入职流程的一些奇怪之处。新用户将收到一封电子邮件,其中包含他们需要单击的URL,以便将手机的MFA软令牌与公司MFA服务器中的用户身份配对。
不幸的是,该链接还包含用户MFA令牌的加密种子,换句话说,用于生成令牌的主要加密密钥信息。好消息是种子受到PIN码的保护。
有了电子邮件,就可以访问这些加密种子,并且只需要PIN码和时间戳来创建重复的MFA令牌并代表用户生成需要的OTP代码。通过简单测试发现,每一粒种子都受到一个简单的四位数代码的保护,可以在几秒钟内破解。这样就能够对组织中的任何MFA代币进行暴力破解,并随意复制任何用户的MFA代币,完全访问和控制工业网络。
通过暴力破解组织中任何MFA令牌的加密种子并根据需要复制任何用户的MFA令牌,可获得对工业网络的访问权限。
3、身份验证后攻击浏览器Cookie
针对浏览器cookie的后MFA身份验证攻击正在成为攻击者的模拟攻击方法,因为它们可以在满足某些条件后远程执行。
对于这种攻击,主要目标是滥用或窃取客户端会话cookie,这些cookie在最终用户的浏览器上进行身份验证后设置。例如,一旦您使用您的凭据和MFA令牌登录到Mail,您就会收到以加密方式存储在浏览器中的会话cookie。这些cookie会随对Mail子域的每个请求一起发送,因此您不必在每次关闭浏览器时都重新登录Mail。
在Windows系统上,这些cookie使用称为数据保护应用程序编程接口(简称DPAPI)的加密接口进行加密。本质上,DPAPI允许用户进行单个API调用来加密或解密数据块,而无需本地管理员权限。在任何加入域的环境中,都存在一个域范围的备份密钥,可以解密整个域中的任何DPAPI加密的blob。更重要的是,一旦创建了这个备份密钥,它就永远不会轮换。
由于DPAPI是为用户上下文中的应用程序而设计的,因此通过调用一个简单的Windows API,可以很容易地使用他们自己的凭据来解密用户的浏览器cookie和密码。通过获得域密钥的访问权限,就可以在域中的每个用户和机器上远程扩展攻击。
多因素身份验证(MFA)绕过技术揭示
图3
所上图3所示,使用数据保护应用程序编程接口(DPAPI),我们可以使用用户自己的凭据解密用户的浏览器cookie和密码。
4、通过辅助渠道瞄准关键资产
当可以通过多个渠道访问资源时,组织通常会错过保护辅助渠道。在一些攻防实践期间经常会发现这些问题。
在这种特殊情况下,组织为管理员设置了MFA,以通过远程桌面协议(RDP)访问某些关键服务器。当特权用户使用RDP登录到服务器时,Windows操作系统将调用作为单独模块安装的MFA提供程序。用户将在他们的手机上收到推送通知,并且需要验证登录尝试。一旦他们批准了请求,用户将被授予通过RDP对服务器的交互式访问权限。
这意味着,如果攻击者要获取服务器的管理员用户名和密码,他们仍将无法通过RDP访问服务器,这是个好消息。但是RDP只是服务器上的一个入站接口。其他渠道呢?在Active Directory(AD)环境中,默认启用远程管理端口;服务器消息块(SMB)和远程过程调用(RPC)等其他协议可以使用PsExec、Powershell和其他直接COM对象等工具进行访问。这些协议不受第二个因素的影响,因为大多数MFA模块不涵盖非交互式通信。攻击者只需使用用户名和密码即可登录并访问服务器。
总结
毫无疑问,MFA是关键安全机制。需要在多层身份安全控制的上下文中考虑MFA,包括强大的特权访问控制,如会话隔离和凭据管理。就像安全的任何方面一样,设计也很重要。执行很重要。最重要的是,运营安全很重要。您的安全取决于您最薄弱的环节