【问题标题】:Secure ASP.NET Core against credential stuffing保护 ASP.NET Core 免受凭据填充
【发布时间】:2019-02-18 10:15:08
【问题描述】:

ASP.Net Core 通过在固定登录尝试次数后锁定帐户来防止暴力猜测密码。

但是是否有一些针对凭证填充的保护措施,攻击者尝试大量登录,但总是使用不同的用户名?锁定帐户无济于事,因为每次尝试都会更改帐户。 但也许有一种方法可以锁定 IP 以防止多次登录尝试或其他一些防止凭证填充的好主意?

【问题讨论】:

    标签: asp.net-core security passwords rate-limiting


    【解决方案1】:

    我建议对 redis 使用速度检查,这基本上只是限制某些 IP。此外,一些欺诈者还会轮换 IP,您还可以检测到登录发生的频率何时更频繁(例如 10 倍标准)并开始阻止该短窗口的所有登录。我写了一篇博客文章,详细介绍了上述一些内容。代码都在节点中,但我确实给出了一些高级示例,说明我们如何在 Precognitive(我目前的演出)中阻止欺诈。随着我在帐户接管系列中发布更多内容,我将在接下来的几个月中继续构建代码。

    https://medium.com/precognitive/a-naive-demo-on-how-to-stop-credential-stuffing-attacks-2c8b8111286a

    【讨论】:

      【解决方案2】:

      IP 限制是很好的第一步,但遗憾的是它无法阻止大量现代撞库攻击。在过去的几年里,精明的凭证填充者的策略已经发展到变得越来越复杂。

      要真正有效地阻止凭证填充,您需要关注的不仅仅是 IP。攻击者会轮换 IP 和 User-Agent,他们还会欺骗 User-Agent 值。有效的防御策略基于对异常 IP 和 User-Agent 活动的实时分析,以及增强特异性的附加组件(例如基于浏览器或基于移动应用程序的指纹识别)来识别和阻止攻击。

      我写了一篇博客文章,探讨了 2020 年的两次撞库攻击,我称之为攻击 A(低复杂性)和攻击 B(高复杂性)。

      低复杂度示例攻击 A 具有以下特点:

      • ~150,000 次登录尝试
      • 1 个不同的 User-Agent(广泛使用的 Chrome 版本)
      • ~1,500 个不同的 IP 地址(85% 来自大多数应用用户所在的美国)

      高复杂度示例攻击 B 具有以下特点:

      • ~60,000 次登录尝试
      • ~20,000 个不同的用户代理
      • ~5,000 个不同的 IP 地址(>95% 来自美国,>99% 来自美国和加拿大)

      您可以看到,使用攻击 A,每个 IP 地址大约有 100 次登录尝试。 IP 速率限制可能在这里有效,具体取决于限制。

      但是,对于攻击 B,每个 IP 地址只有 12 次登录尝试。很难说 IP 速率限制在这种情况下是否有效。

      这是我的帖子,其中包含更深入的数据:https://blog.castle.io/how-effective-is-castle-against-credential-stuffing/

      全面披露:我在 Castle 工作,我们提供基于 API 的产品来防止凭证填充。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 2023-03-31
        • 2011-04-16
        • 2019-12-31
        • 2019-05-29
        • 1970-01-01
        相关资源
        最近更新 更多