保护特定资源免遭枚举攻击

保护特定资源免遭枚举攻击

我正在使用 Apache 2.2 作为我的应用服务器的代理。

RewriteCond %{REQUEST_URI} ^/A [OR]
RewriteCond %{REQUEST_URI} ^/B
RewriteRule (.+) http://appserver$1 [P]

在正常使用中,/A 的合法请求数量比 /B 高出几个数量级

/B 容易受到字典攻击,我想通过严格限制在某个时间窗口内得到服务的 /B 请求的数量来降低风险。

我怎样才能限制对 /B 的请求而不干扰对 /A 的请求?

答案1

看起来合理的答案是

    SecAction“阶段:1,id:'981214',t:none,nolog,pass,\
    设置变量:'tx.brute_force_protected_urls=/B',\
    设置变量:'tx.brute_force_burst_time_slice=60',\
    设置变量:'tx.brute_force_counter_threshold=10',\
    设置变量:'tx.brute_force_block_timeout=300'"
  • 更新 httpd.conf
<IfModule 安全2_模块>
    包括 conf/modsecurity_crs/*.conf
    包括 conf/modsecurity_crs/experimental_rules/modsecurity_crs_11_brute_force.conf
</IfModule>
  • 最后,打开它
    SecRuleEngine 开启

这让你在记录阶段;如果发生两次或两次以上突发,则违规 IP 地址将被发送到角落进行超时,并且来自该 IP 的所有后续请求将被禁止,直到超时到期。

测试时,请记住:(a) 超过 brute_force_counter_threshold 个请求构成一次突发,2 次突发导致一次阻塞,并且该阻塞在触发第二次突发的请求之后开始。(如果 brute_force_counter_threshold = 3,则在阻塞开始之前,您将看到 8 次未阻塞的尝试)。

brute_force_protected_urls 允许你指定多个漏洞点

'tx.brute_force_protected_urls=/B /C'

但是如果您想要多个策略,您将需要 modsecurity_crs_11_brute_Force.conf 的第二份副本,其中包含搜索和替换的变量名称。

相关内容