针对唯一IP的Nginx速率限制



我们一直在处理对我们的身份验证url的不断攻击,我们每天都在谈论数百万个请求,我猜他们试图强行使用密码。

每当我们用服务器防火墙阻止IP时,几秒钟后,攻击就会从另一个IP再次启动。

我们最终实现了通过机架攻击进行节流和自定义代码的组合,以动态阻止防火墙中的IP。但随着我们提高了软件的安全性,攻击者也提高了,现在我们看到他们发出的每一个请求都是从不同的IP发出的,每个IP一个调用,仍然是每秒几次,没有那么多,但仍然是一个问题。

现在我正试图弄清楚我还能做些什么来防止这种情况发生,我们尝试了重述,但很快就用完了每月的配额,然后没有人可以登录。

我正在研究Nginx速率限制器,但从我所看到的情况来看,它也使用IP,考虑到他们现在为每个请求轮换IP,有办法做到这一点吗?

关于如何处理这件事,还有其他建议吗?也许你们中的一个人也经历了同样的事情?

堆栈:Nginx和Rails 4,Ubuntu 16。

对于您的情况,防止此攻击的最有效方法是使用captcha。你提到你已经使用了captcha,这可能很快就会用完,但如果你自己开发captcha的话,你就会有无限的captcha图像。

至于另一种防止方法,比如锁定IP,当攻击者使用IP池时,这总是没有用的,因为IP太多(包括一些物联网设备的IP(,即使你使用商业威胁情报池,你也无法识别/锁定所有IP。所以像这样的建议

  1. 自己开发captcha,并在您的api上实现它
  2. 识别并锁定您认为恶意的IP
  3. 设置一些规则来识别http请求的UA和Cookie(通常正常请求与攻击不同(
  4. 使用WAF(如果您有足够的预算(

最新更新