我有一个带有几个预配置WAF规则的后端服务策略。还有一个速率限制规则。如果我将预先配置的WAF规则设置为更高的优先级,它将只评估这些规则,而不会评估速率限制规则,无论应用程序是否受到具有许多"合法"的洪水攻击。请求。另一方面,如果设置了优先级较高的限速规则,则会阻止flood攻击,但不会评估优先级较低的预配置WAF规则。
我一直在用围攻和GoTestWaf测试这个策略。结果如下:- 如果限速规则优先级更高,围攻发送的请求被阻止时,他们达到设置的阈值,但GoTestWaf停止错误">WAF未检测到. 请使用"——blockStatusCodes"或"——blockRegex"标志。使用"——help"获取更多信息。基线攻击状态码:200">
- 如果速率限制规则设置在较低优先级,则围攻发送的请求永远不会被阻塞,但GoTestWaf检测到防火墙,进行测试,恶意请求被阻止。
预配置的WAF规则是这些,速率限制规则设置如下:
gcloud compute security-policies rules create 10000
--project=<GCP project>
--security-policy=<Policy name>
--expression="true"
--action=rate-based-ban
--rate-limit-threshold-count=120
--rate-limit-threshold-interval-sec=60
--ban-duration-sec=300
--conform-action=allow
--exceed-action=deny-404
--enforce-on-key=IP
怎么回事?
是否有其他方法可以同时配置预配置的WAF规则和针对同一后端的速率限制规则?
在设置任何速率限制选项时,必须指定标志。如果您使用的是允许或拒绝IP的正常策略,那么它是可选的,但如果专门为云防护安全策略设置速率限制选项,那么这些需要设置速率限制选项。
规则求值顺序由规则优先级决定。当您的流量速率低于或等于rate_limit_threshold时,则请求遵循一致性操作,这始终是允许的操作。请求被安全策略授权并允许到达目的地。同时,流量超过指定的rate_limit_threshold, Google Cloud Armor应用超过阈值间隔的请求,可以拒绝或重定向。要了解更多信息,请参阅官方文档,或者您也可以使用Google Cloud Armor Managed Protection。