利用邻近验证技术挫败中间人攻击

本文详细介绍了Duo Security推出的邻近验证技术,该技术通过蓝牙低能耗通信和来源绑定,有效防御了针对已验证推送的高级钓鱼攻击和验证者冒充攻击,提升了基于推送认证的安全性。

利用邻近验证挫败对手中间人攻击

大约四年前,我们推出了“已验证Duo推送”——这是对原有Duo推送功能的一次升级。通过要求用户在批准Duo推送请求时输入Duo提示框中显示的数字代码,已验证Duo推送提高了安全性。

在认证时要求输入数字代码可以防止两种类型的推送钓鱼攻击:

  • 推送骚扰 —— 攻击者连续发送多个推送通知,骚扰用户批准用于欺诈性登录尝试的推送。
  • 推送疲劳 —— 持续的多因素认证使用户对每次登录的细节关注度降低,导致用户不假思索地接受推送登录。

虽然已验证Duo推送比单纯的Duo推送更安全,但它仍然容易受到某些攻击。让我们研究一个现实世界中的已验证Duo推送攻击向量:

案例分析:已验证Duo推送攻击(网络钓鱼邮件 + 代理钓鱼网站)

这种验证者冒充攻击涉及一封极具迷惑性的钓鱼邮件和一个反向代理的钓鱼网站: 攻击者向用户发送一封伪装成IT支持的钓鱼邮件。用户点击恶意链接,进入一个代理登录页面。用户以为这个恶意的登录提示是真实的,于是输入了他们的主凭据。攻击者则收到这些凭据,并将其输入到合法的登录页面,该页面随即向用户的手机发送一个已验证Duo推送。当Duo提示要求在Duo Mobile中输入已验证推送代码时,攻击者的代理将代码从真实网站中继回虚假网站,诱使用户输入代码,从而授予攻击者完全访问权限。

攻击步骤分解

  1. 攻击者发送伪装成IT支持的钓鱼邮件
  2. 用户点击恶意链接并访问代理登录页面
  3. 用户将其第一因素凭据输入到代理中
  4. 攻击者将凭据转发到合法登录页面并开始认证
  5. 攻击者(通过其合法的Duo提示)向用户的手机发送推送,要求输入已验证推送代码
  6. 攻击者合法的Duo提示显示已验证推送代码,该代码被转发并显示在攻击者的代理网站上
  7. 用户在他们的Duo Mobile中输入攻击者的已验证推送代码,授予攻击者对其账户的完全访问权限

在Duo,我们不断创新并适应不断变化的威胁形势。接下来,让我们看看我们为使基于推送的认证更加安全所采取的步骤。

Duo邻近验证

我们最近向Duo Essentials及以上版本发布了Duo邻近验证,且无需额外费用!邻近验证有助于防止验证者冒充攻击和主动钓鱼活动。

这种新的认证方法要求Duo Mobile与最终用户正在认证的笔记本电脑或台式机执行一次BLE(蓝牙低能耗)通信握手,才能成功批准登录请求。计算机必须运行一个配套应用程序——Duo Desktop,该程序与Duo Mobile和Duo提示框进行通信。

邻近验证通过双重方法阻止此类攻击:

  1. 来源(验证者名称)绑定 —— Duo Desktop必须能够验证认证请求来自合法的Duo提示框实例。
  2. BLE邻近验证 —— Duo Desktop(通过蓝牙低能耗)必须能够验证与发起认证请求的用户相关联的Duo Mobile应用程序在物理邻近范围内。

这些要求阻止了验证者冒充攻击,并提供了与FIDO2/WebAuthn相当的安全性,而无需昂贵且难以配置的硬件。让我们深入了解一下Duo邻近验证是如何阻止前述攻击的。

Duo邻近验证挫败已验证推送攻击(网络钓鱼邮件 + 验证者冒充)

让我们先研究一个常见的攻击场景,攻击者试图利用用户的Duo Desktop进行邻近验证:由于需要用户的Duo Desktop在物理上邻近用户的Duo Mobile,攻击者允许其代理网站通过本地主机与用户的Duo Desktop通信。

步骤分解

  1. 攻击者发送钓鱼邮件
  2. 用户点击链接并访问代理登录页面
  3. 用户输入凭据
  4. 攻击者将凭据转发到合法登录页面
  5. 攻击者向最终用户发送推送
  6. 虚假的Duo提示框尝试通过本地主机与Duo Desktop通信
  7. 来源检查失败
  8. 攻击被挫败

在这里,“来源绑定”是解决问题的机制。即使攻击者采用与Duo Desktop(位于用户机器上)通信的方法,来源验证请求也总会失败,因为请求源自“evil-acmecorp.com”。

现在,让我们考虑一种更复杂的攻击,攻击者试图通过在他们自己的机器上安装Duo Desktop来绕过来源检查:

当需要Duo邻近验证时

登录流程中不会显示已验证推送代码。相反,Duo Mobile和Duo Desktop之间会使用BLE交换一个用户不可见的加密一次性有效载荷。 Duo Desktop验证认证请求的来源,确保其来自合法的Duo提示框。 使用BLE通信来证明在Duo Mobile中批准Duo推送请求的用户与他们正在登录的计算机距离很近。 攻击者无法满足这些条件,因此攻击失败。

步骤分解

  1. 攻击者发送钓鱼邮件
  2. 用户点击链接并访问代理登录页面
  3. 用户输入他们的凭据
  4. 攻击者将凭据转发到合法登录页面
  5. 攻击者向最终用户发送推送
  6. Duo提示框(在攻击者的机器上)通过本地主机ping Duo Desktop(同样在攻击者的机器上)以提供加密有效载荷
  7. Duo提示框验证来自Duo提示框的请求来源。一切正常!
  8. Duo Desktop尝试与Duo Mobile进行BLE通信,但由于Duo Mobile不在邻近范围,此检查失败
  9. 攻击被挫败!

Duo的邻近验证提供了一个超越已验证推送的新安全层,无需额外硬件即可化解复杂的验证者冒充攻击。

了解更多关于邻近验证的信息

如果您想更详细地了解邻近验证,请查看相关文档,观看演示,或者立即在您的环境中开始测试!如果您还不是Duo客户但对试用此功能感兴趣,可以开始Duo的试用

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计