Cloud Armor 从哪里开始保护自己免受既定规则的影响?(在本例中为 SQLi)

Where does Cloud Armor start protecting from the set rules? (in this case SQLi)

提问人:funtkungus 提问时间:3/10/2023 更新时间:3/13/2023 访问量:1006

问:

我目前使用 Cloud Armor 设置了负载均衡。 这是我的规则集(基本上来自文档):

evaluatePreconfiguredExpr('xss-v33-stable',
['owasp-crs-v030301-id941101-xss',
  'owasp-crs-v030301-id941150-xss',
  'owasp-crs-v030301-id941320-xss',
  'owasp-crs-v030301-id941330-xss',
  'owasp-crs-v030301-id941340-xss',
  'owasp-crs-v030301-id941380-xss'
]) || evaluatePreconfiguredExpr('sqli-v33-stable',
['owasp-crs-v030301-id942110-sqli',
  'owasp-crs-v030301-id942120-sqli',
  'owasp-crs-v030301-id942130-sqli',
  'owasp-crs-v030301-id942150-sqli',
  'owasp-crs-v030301-id942180-sqli',
  'owasp-crs-v030301-id942200-sqli',
  'owasp-crs-v030301-id942210-sqli',
  'owasp-crs-v030301-id942260-sqli',
  'owasp-crs-v030301-id942300-sqli',
  'owasp-crs-v030301-id942310-sqli',
  'owasp-crs-v030301-id942330-sqli',
  'owasp-crs-v030301-id942340-sqli',
  'owasp-crs-v030301-id942361-sqli',
  'owasp-crs-v030301-id942370-sqli',
  'owasp-crs-v030301-id942380-sqli',
  'owasp-crs-v030301-id942390-sqli',
  'owasp-crs-v030301-id942400-sqli',
  'owasp-crs-v030301-id942410-sqli',
  'owasp-crs-v030301-id942470-sqli',
  'owasp-crs-v030301-id942480-sqli',
  'owasp-crs-v030301-id942430-sqli',
  'owasp-crs-v030301-id942440-sqli',
  'owasp-crs-v030301-id942450-sqli',
  'owasp-crs-v030301-id942510-sqli',
  'owasp-crs-v030301-id942251-sqli',
  'owasp-crs-v030301-id942490-sqli',
  'owasp-crs-v030301-id942420-sqli',
  'owasp-crs-v030301-id942431-sqli',
  'owasp-crs-v030301-id942460-sqli',
  'owasp-crs-v030301-id942101-sqli',
  'owasp-crs-v030301-id942511-sqli',
  'owasp-crs-v030301-id942421-sqli',
  'owasp-crs-v030301-id942432-sqli',
  'owasp-crs-v030001-id942260-sqli'
  ]
)

我正在尝试通过故意发送 sql 注入查询来做一些测试。目标是从 Cloud Armor 中捕获一些有关设置的 sqli 规则的日志。 我的日志记录资源管理器查询设置为:resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(MY_POLICY_NAME)

但是,我找不到与我的 sqli 查询相关的任何日志(实际上它只是注册到数据库中,而没有实际运行注入的 sql)。

我很好奇: Cloud Armor 从哪里开始关注 SQL 注入?我以为它会在收到一些流量后立即出现。

python sql 注入 google-cloud-run google-cloud-armor

评论

1赞 John Hanley 3/18/2023
请在此处查看我的答案以查看日志。

答:

2赞 Dave 3/13/2023 #1

如果您运行一个简单的 SQLi 注入尝试,例如:

https://www.example.com/?category=Gifts%27+OR+1=1--”

这应该会触发“owasp-crs-v030001-id942180-sqli”规则。

关于为什么它不适合您的几个想法:

  1. 是否未针对负载均衡器上的后端服务启用后端安全策略?
  2. 是否在负载均衡器后端服务上启用了日志?
  3. WAF 规则是否处于预览模式(因此不会在 jsonPayload.enforcedSecurityPolicy.name:(MY_POLICY_NAME) 查询中看到结果)?

Cloud Armor 规则在部署后约 2 分钟开始生效 (p90)。完全部署可能需要 10m 以上 (p99)。

评论

0赞 funtkungus 3/14/2023
输入 url 参数有效,我现在可以看到日志,谢谢。我很好奇为什么我不能使用来自客户端的输入来做同样的事情?