Asp.net core 保护ASP.NET内核不受凭据填充的影响

Asp.net core 保护ASP.NET内核不受凭据填充的影响,asp.net-core,security,passwords,rate-limiting,Asp.net Core,Security,Passwords,Rate Limiting,ASP.NETCore通过在固定次数的登录尝试后锁定帐户,可以防止暴力猜测密码 但是,是否有一些针对凭据填充的保护措施,即攻击者尝试大量登录,但总是使用不同的用户名?锁定帐户不会有帮助,因为每次尝试时帐户都会更改。 但是,也许有一种方法可以锁定一个IP,防止多次登录尝试,或者有其他好主意来防止凭据填充?我建议使用redis的速度检查,这基本上只是限制某些IP。此外,一些欺诈者也会轮换IP,您还可以检测何时登录更频繁(比如10倍于正常值),并开始阻止该短窗口的所有登录。我写了一篇博客文章,详细介绍

ASP.NETCore通过在固定次数的登录尝试后锁定帐户,可以防止暴力猜测密码

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

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


IP节流是一个很好的第一步,但不幸的是,它无法阻止大量现代凭证填充攻击。在过去的几年里,精明的凭证填充者的策略已经演变成越来越复杂

要真正有效地阻止凭据填充,您需要关注的不仅仅是IP。攻击者将轮换IP和用户代理,并伪造用户代理值。有效的防御策略基于对异常IP和用户代理活动的实时分析,以及增强特定性的附加组件(如基于浏览器或基于移动应用程序的指纹)来识别和阻止攻击

我写了一篇博客文章,研究了2020年的两次凭证填充攻击,我称之为攻击a(低复杂性)和攻击B(高复杂性)

攻击A(低复杂性示例)具有以下特征:

  • 约150000次登录尝试
  • 1个独特的用户代理(广泛使用的Chrome版本)
  • 约1500个不同的IP地址(85%来自大多数应用程序用户居住的美国)
高复杂性示例攻击B具有以下特征:

  • 约60000次登录尝试
  • 约20000个不同的用户代理
  • 约5000个不同的IP地址(95%以上来自美国,99%以上来自美国和加拿大)
您可以看到,对于攻击A,每个IP地址大约有100次登录尝试。IP速率限制在此可能有效,具体取决于限制

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

以下是我的帖子,提供了更深入的数据:

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