R.K*_*ima 5 google-cloud-platform google-cloud-armor
我已经参考https://cloud.google.com/armor/docs/rules-language-reference设置了 Google Cloud Armor 安全策略。效果很好。我在办公室进行的模拟 SQL 注入攻击被检测到,后续访问被阻止。Stackdriver 日志条目显示“拒绝”的相应 enforcedSecurityPolicy 结果,并且应用的表达式 ID 为“owasp-crs-v030001-id942421-sqli”。WAF关键规则如下:
valuPreconfiguredExpr('xss-stable') &&valuPreconfiguredExpr('sqli-stable')
有一点是我无法控制的。在我的模拟攻击之后,我办公室的所有访问都被一路封锁。当我从 LB 中分离并重新附加 Cloud Armor 安全策略后,我办公室的访问仍然被阻止。删除该安全策略并重新创建它并没有帮助。这意味着存在一个看不见的 SQLi 和 XSS 攻击者持久数据库,并且我的办公室 IP 可能已在其中注册,从而导致“始终”拒绝。
问题是:如何从看不见的“SQLi 和 XSS 黑名单”数据库中删除我的 IP,以在不修改规则的情况下重新获得后端访问权限?在我们的Cloud Armor生产操作中,曾经被禁止的IP可能希望在攻击源被移除后重新获得对目标后端服务的访问。
当然,如果我添加比WAF规则更高优先级的权限规则,我可以重新获得对目标后端的访问权限,但WAF检查将被绕过,这不是我想要的。
预先感谢您抽出时间。
栗岛R
小智 4
我也遇到过类似的情况,并且几乎得出了与您相同的结论——存在某种隐藏的黑名单。但经过更多尝试后,我发现我的请求中的一些其他非恶意 cookie 正在触发owasp-crs-v030001-id942421-sqli(“受限 SQL 字符异常检测 (cookies):特殊字符数超出 (3)”——以及后来的owasp-crs-v030001-id942420-sqli( “受限 SQL 字符异常检测 (cookie):超过特殊字符数 (8)”)。不是隐藏的黑名单。
据我所知,这两个规则使用 Cookie 标头中“特殊”字符的数量,而不是每个 cookie 中特殊字符的数量。此外,用于每个 cookie 的等号也被视为特殊字符。与分号相同。令人恼火。
所以这个请求会触发942420:
curl 'https://example.com/' -H 'cookie: a=a; b=b; c=c; d=d; e=e;'
Run Code Online (Sandbox Code Playgroud)
这将触发 942421:
curl 'https://example.com/' -H 'cookie: a=a; b=b;'
Run Code Online (Sandbox Code Playgroud)
所以最好禁用这两个规则,比如
evaluatePreconfiguredExpr('sqli-canary', [
'owasp-crs-v030001-id942420-sqli',
'owasp-crs-v030001-id942421-sqli'
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2340 次 |
| 最近记录: |