调整 Google Cloud Armor WAF 规则

预配置的规则

Google Cloud Armor 预配置的规则是具有数十个签名的复杂 Web 应用防火墙 (WAF) 规则,这些规则是根据开源业界标准编译而成的。Google 按原样提供这些规则。通过这些规则,Google Cloud Armor 可以通过引用方便命名的规则评估数十种不同的流量签名,而无需您手动定义每个签名。

下表包含可在 Google Cloud Armor 安全政策中使用的预配置 WAF 规则的完整列表。规则来源为 ModSecurity 核心规则集 3.0.2 (CRS)。

Google Cloud Armor 规则名称 ModSecurity 规则名称 当前状态
sqli-stable SQL 注入 sqli-canary 同步
sqli-canary SQL 注入 最新
xss-stable 跨站点脚本攻击 xss-canary 同步
xss-canary 跨站点脚本攻击 最新
lfi-stable 本地文件包含 lfi-canary 同步
lfi-canary 本地文件包含 最新
rfi-stable 远程文件包含 rfi-canary 同步
rfi-canary 远程文件包含 最新
rce-stable 远程代码执行 rce-canary 同步
rce-canary 远程代码执行 最新
methodenforcement-stable 方法强制执行(公开预览版) methodenforcement-canary 同步
methodenforcement-canary 方法强制执行(公开预览版) 最新
scannerdetection-stable 扫描程序检测(公开预览版) scannerdetection-canary 同步
scannerdetection-canary 扫描程序检测(公开预览版) 最新
protocolattack-stable 协议攻击(公开预览版) protocolattack-canary 同步
protocolattack-canary 协议攻击(公开预览版) 最新
php-stable PHP 注入攻击(公开预览版) php-canary 同步
php-canary PHP 注入攻击(公开预览版) 最新
sessionfixation-stable 会话固定攻击(公开预览版) sessionfixation-canary 同步
sessionfixation-canary 会话固定攻击(公开预览版) 最新

每条预配置的规则都包含多个签名。根据预配置的规则评估传入请求。如果请求与与预配置规则相关联的任何签名匹配,则该请求与预配置规则匹配。当 evaluatePreconfiguredExpr() 命令返回值 true 时,将进行匹配。

如果您确定预配置规则匹配的流量超过必要流量,或者如果该规则正阻止需要允许的流量,则可以调整该规则以停用嘈杂或不必要的签名。如需在特定的预配置规则中停用签名,您可向 evaluatePreconfiguredExpr() 命令提供不需要的签名的 ID 列表。

以下示例会从预配置的 xss-stable WAF 规则中排除两个 CRS 规则 ID:

evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v020901-id981136-xss', 'owasp-crs-v020901-id981138-xss'])

上面的示例是采用自定义规则语言的表达式。常规语法如下:

evaluatePreconfiguredExpr(RULE, ['SIGNATURE1', 'SIGNATURE2', 'SIGNATURE3'])

预配置的 ModSecurity 规则

SQL 注入 (SQLi)

签名 ID(CRS 规则 ID) 敏感度级层 说明
owasp-crs-v030001-id942140-sqli 1 SQL 注入攻击:检测到通用 DB 名称
owasp-crs-v030001-id942160-sqli 1 使用 sleep() 或 benchmark() 检测 blind SQLi 测试。
owasp-crs-v030001-id942170-sqli 1 检测 SQL 基准测试和睡眠注入尝试,包括条件查询
owasp-crs-v030001-id942190-sqli 1 检测 MSSQL 代码执行和信息收集尝试
owasp-crs-v030001-id942220-sqli 1 查找整数溢出攻击
owasp-crs-v030001-id942230-sqli 1 检测条件 SQL 注入尝试
owasp-crs-v030001-id942240-sqli 1 检测 MySQL 字符集切换和 MSSQL DoS 尝试
owasp-crs-v030001-id942250-sqli 1 检测 MATCH AGAINST
owasp-crs-v030001-id942270-sqli 1 查找基本的 SQL 注入;MySql 的通用攻击字符串
owasp-crs-v030001-id942280-sqli 1 检测 Postgres pg_sleep 注入
owasp-crs-v030001-id942290-sqli 1 查找基本 MongoDB SQL 注入尝试
owasp-crs-v030001-id942320-sqli 1 检测 MySQL 和 PostgreSQL 已存储过程/函数注入
owasp-crs-v030001-id942350-sqli 1 检测 MySQL UDF 注入和其他数据/结构操纵尝试
owasp-crs-v030001-id942360-sqli 1 检测串联的基本 SQL 注入和 SQLLFI 尝试
owasp-crs-v030001-id942110-sqli 2 SQL 注入攻击:检测到常见注入测试
owasp-crs-v030001-id942120-sqli 2 SQL 注入攻击:检测到 SQL 运算符
owasp-crs-v030001-id942150-sqli 2 SQL 注入攻击
owasp-crs-v030001-id942180-sqli 2 检测基本 SQL 身份验证绕过尝试 1/3
owasp-crs-v030001-id942200-sqli 2 检测 MySQL 备注/空间混淆注入和英文反引号终止
owasp-crs-v030001-id942210-sqli 2 检测链式 SQL 注入尝试 1/2
owasp-crs-v030001-id942260-sqli 2 检测基本 SQL 身份验证绕过尝试 2/3
owasp-crs-v030001-id942300-sqli 2 检测 MySQL 备注
owasp-crs-v030001-id942310-sqli 2 检测链式 SQL 注入尝试 2/2
owasp-crs-v030001-id942330-sqli 2 检测传统 SQL 注入探测 1/2
owasp-crs-v030001-id942340-sqli 2 检测基本 SQL 身份验证绕过尝试 3/3
owasp-crs-v030001-id942380-sqli 2 SQL 注入攻击
owasp-crs-v030001-id942390-sqli 2 SQL 注入攻击
owasp-crs-v030001-id942400-sqli 2 SQL 注入攻击
owasp-crs-v030001-id942410-sqli 2 SQL 注入攻击
owasp-crs-v030001-id942430-sqli 2 限制的 SQL 字符异常值检测(参数):# 具有超过 (12) 的特殊字符数
owasp-crs-v030001-id942440-sqli 2 检测到 SQL 备注序列
owasp-crs-v030001-id942450-sqli 2 已识别的 SQL 十六进制编码
owasp-crs-v030001-id942251-sqli 3 检测 HAVING 注入
owasp-crs-v030001-id942420-sqli 3 限制的 SQL 字符异常值检测 (Cookie):# 具有超过 (8) 的特殊字符数
owasp-crs-v030001-id942431-sqli 3 限制的 SQL 字符异常值检测(参数):# 具有超过 (6) 的特殊字符数
owasp-crs-v030001-id942460-sqli 3 元字符异常值检测警报 - 重复的非单词字符
owasp-crs-v030001-id942421-sqli 4 限制的 SQL 字符异常值检测 (Cookie):# 具有超过 (3) 的特殊字符数
owasp-crs-v030001-id942432-sqli 4 限制的 SQL 字符异常值检测(参数):# 具有超过 (2) 的特殊字符数


如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名:

SQLi 敏感度级层 1


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942110-sqli',
  'owasp-crs-v030001-id942120-sqli',
  'owasp-crs-v030001-id942150-sqli',
  'owasp-crs-v030001-id942180-sqli',
  'owasp-crs-v030001-id942200-sqli',
  'owasp-crs-v030001-id942210-sqli',
  'owasp-crs-v030001-id942260-sqli',
  'owasp-crs-v030001-id942300-sqli',
  'owasp-crs-v030001-id942310-sqli',
  'owasp-crs-v030001-id942330-sqli',
  'owasp-crs-v030001-id942340-sqli',
  'owasp-crs-v030001-id942380-sqli',
  'owasp-crs-v030001-id942390-sqli',
  'owasp-crs-v030001-id942400-sqli',
  'owasp-crs-v030001-id942410-sqli',
  'owasp-crs-v030001-id942430-sqli',
  'owasp-crs-v030001-id942440-sqli',
  'owasp-crs-v030001-id942450-sqli',
  'owasp-crs-v030001-id942251-sqli',
  'owasp-crs-v030001-id942420-sqli',
  'owasp-crs-v030001-id942431-sqli',
  'owasp-crs-v030001-id942460-sqli',
  'owasp-crs-v030001-id942421-sqli',
  'owasp-crs-v030001-id942432-sqli']
)
          
SQLi 敏感度级层 2


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
SQLi 敏感度级层 3


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942421-sqli',
         'owasp-crs-v030001-id942432-sqli']
         )
SQLi 敏感度级层 4


evaluatePreconfiguredExpr('sqli-stable')

跨站脚本攻击 (XSS)

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id941110-xss 1 XSS 过滤器 - 类别 1:脚本标记向量
owasp-crs-v030001-id941120-xss 1 XSS 过滤器 - 类别 2:事件处理脚本向量
owasp-crs-v030001-id941130-xss 1 XSS 过滤器 - 类别 3:属性向量
owasp-crs-v030001-id941140-xss 1 XSS 过滤器 - 类别 4:JavaScript URI 向量
owasp-crs-v030001-id941160-xss 1 NoScript XSS InjectionChecker:HTML 注入
owasp-crs-v030001-id941170-xss 1 NoScript XSS InjectionChecker:属性注入
owasp-crs-v030001-id941180-xss 1 节点验证器黑名单关键字
owasp-crs-v030001-id941190-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941200-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941210-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941220-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941230-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941240-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941250-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941260-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941270-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941280-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941290-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941300-xss 1 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941310-xss 1 US-ASCII 格式错误的编码 XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941350-xss 1 UTF-7 编码 IE XSS - 检测到攻击
owasp-crs-v030001-id941150-xss 2 XSS 过滤器 - 类别 5:不允许的 HTML 属性
owasp-crs-v030001-id941320-xss 2 检测到可能的 XSS 攻击 - HTML 标记处理程序
owasp-crs-v030001-id941330-xss 2 IE XSS 过滤器 - 检测到攻击
owasp-crs-v030001-id941340-xss 2 IE XSS 过滤器 - 检测到攻击


如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名:

XSS 敏感度级层 1


evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v030001-id941150-xss',
  'owasp-crs-v030001-id941320-xss',
  'owasp-crs-v030001-id941330-xss',
  'owasp-crs-v030001-id941340-xss'])
          


XSS 的所有签名均低于敏感度级层 2。以下配置适用于其他敏感度级层:

XSS 敏感度级别 2/3/4


evaluatePreconfiguredExpr('xss-stable')

本地文件包含 (LFI)

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id930100-lfi 1 路径遍历攻击 (/../)
owasp-crs-v030001-id930110-lfi 1 路径遍历攻击 (/../)
owasp-crs-v030001-id930120-lfi 1 尝试访问操作系统文件
owasp-crs-v030001-id930130-lfi 1 尝试访问受限文件


LFI 的所有签名均位于敏感度级层 1。以下配置适用于所有敏感度级层:

LFI 敏感度级层 1/2/3/4


evaluatePreconfiguredExpr('lfi-canary')

远程代码执行 (RCE)

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id932100-rce 1 UNIX 命令注入
owasp-crs-v030001-id932105-rce 1 UNIX 命令注入
owasp-crs-v030001-id932110-rce 1 Windows 命令注入
owasp-crs-v030001-id932115-rce 1 Windows 命令注入
owasp-crs-v030001-id932120-rce 1 找到 Windows PowerShell 命令
owasp-crs-v030001-id932130-rce 1 找到 Unix Shell 表达式
owasp-crs-v030001-id932140-rce 1 找到 Windows FOR/IF 命令
owasp-crs-v030001-id932150-rce 1 直接执行 Unix 命令
owasp-crs-v030001-id932160-rce 1 找到 UNIX Shell 代码
owasp-crs-v030001-id932170-rce 1 Shellshock (CVE-2014-6271)
owasp-crs-v030001-id932171-rce 1 Shellshock (CVE-2014-6271)


RCE 的所有签名均位于敏感度级层 1。以下配置适用于所有敏感度级层:

RCE 敏感度级层 1/2/3/4


evaluatePreconfiguredExpr('rce-canary')

远程文件包含 (RFI)

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id931100-rfi 1 使用 IP 地址的网址参数
owasp-crs-v030001-id931110-rfi 1 常用 RFI 易受攻击的参数名称与网址载荷一起使用
owasp-crs-v030001-id931120-rfi 1 网址载荷与尾随英文问号字符 (?) 一起使用
owasp-crs-v030001-id931130-rfi 2 网域外引用/链接


如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名:

RFI 敏感度级层 1


evaluatePreconfiguredExpr('rfi-canary', ['owasp-crs-v030001-id931130-rfi'])

RFI 的所有签名均低于敏感度级层 2。以下配置适用于其他敏感度级层:

RFI 敏感度级层 2/3/4


evaluatePreconfiguredExpr('rfi-canary')

方法强制执行

此规则处于公开预览版状态。

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id911100-methodenforcement 1 政策不允许使用方法

方法强制执行的所有签名均低于敏感度级层 2。以下配置适用于其他敏感度级层:

方法强制执行灵敏度级别 2/3/4


evaluatePreconfiguredExpr('methodenforcement-canary')

扫描程序检测

此规则处于公开预览版状态。

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id913100-scannerdetection 1 找到与安全扫描程序关联的用户代理
owasp-crs-v030001-id913110-scannerdetection 1 找到与安全扫描程序关联的请求标头
owasp-crs-v030001-id913120-scannerdetection 1 找到与安全扫描程序关联的请求文件名/参数
owasp-crs-v030001-id913101-scannerdetection 2 找到与脚本/通用 HTTP 客户端关联的用户代理
owasp-crs-v030001-id913102-scannerdetection 2 找到与网页抓取工具/聊天机器人关联的用户代理

如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名。

扫描程序检测的敏感度级层 1


evaluatePreconfiguredExpr('scannerdetection-stable',
  ['owasp-crs-v030001-id913101-scannerdetection',
  'owasp-crs-v030001-id913102-scannerdetection']
)
          
Scanner Detection 的敏感度级别 2


evaluatePreconfiguredExpr('scannerdetection-stable')
          

协议攻击

此规则处于公开预览版状态。

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id921100-protocolattack 1 HTTP 请求清除攻击
owasp-crs-v030001-id921110-protocolattack 1 HTTP 请求清除攻击
owasp-crs-v030001-id921120-protocolattack 1 HTTP 响应拆分攻击
owasp-crs-v030001-id921130-protocolattack 1 HTTP 响应拆分攻击
owasp-crs-v030001-id921140-protocolattack 1 通过标头进行的 HTTP 标头注入攻击
owasp-crs-v030001-id921150-protocolattack 1 通过载荷进行的 HTTP 标头注入攻击(检测到 CR/LF)
owasp-crs-v030001-id921160-protocolattack 1 通过载荷进行的 HTTP 标头注入攻击(检测到 CR/LF 和标头名称)
owasp-crs-v030001-id921151-protocolattack 2 通过载荷进行的 HTTP 标头注入攻击(检测到 CR/LF)
owasp-crs-v030001-id921170-protocolattack 3 HTTP 参数污染

如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名。

协议攻击敏感度级别 1


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921151-protocolattack',
  'owasp-crs-v030001-id921170-protocolattack']
)
          
协议攻击敏感度级层 1


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921170-protocolattack']
)
          
协议攻击敏感度级层 1


evaluatePreconfiguredExpr('protocolattack-stable')
          

PHP

此规则处于公开预览版状态。

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id933100-php 1 PHP 注入攻击:找到 PHP 打开标记
owasp-crs-v030001-id933110-php 1 PHP 注入攻击:找到 PHP 脚本文件上传
owasp-crs-v030001-id933120-php 1 PHP 注入攻击:找到配置指令
owasp-crs-v030001-id933130-php 1 PHP 注入攻击:找到变量
owasp-crs-v030001-id933140-php 1 PHP 注入攻击:找到 I/O 流
owasp-crs-v030001-id933150-php 1 PHP 注入攻击:找到高风险的 PHP 函数名称
owasp-crs-v030001-id933160-php 1 PHP 注入攻击:找到高风险的 PHP 函数调用
owasp-crs-v030001-id933170-php 1 PHP 注入攻击:序列化对象注入
owasp-crs-v030001-id933180-php 1 PHP 注入攻击:找到变量函数调用
owasp-crs-v030001-id933151-php 2 PHP 注入攻击:找到中等风险的 PHP 函数名称
owasp-crs-v030001-id933131-php 3 PHP 注入攻击:找到变量
owasp-crs-v030001-id933161-php 3 PHP 注入攻击:找到低价值的 PHP 函数调用
owasp-crs-v030001-id933111-php 3 PHP 注入攻击:找到 PHP 脚本文件上传

如需在特定敏感度级层配置规则,请在较高的敏感度级层停用签名。

PHP 注入攻击敏感度级别 1


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933151-php',
  'owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP 注入攻击敏感度级别 2


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP 注入攻击敏感度级别 3


evaluatePreconfiguredExpr('php-stable')
          

会话固定

此规则处于公开预览版状态。

签名 ID(规则 ID) 敏感度级层 说明
owasp-crs-v030001-id943100-sessionfixation 1 可能的会话固定攻击:在 HTML 中设置 Cookie 值
owasp-crs-v030001-id943110-sessionfixation 1 可能的会话固定攻击:带有网域间引用器的会话 ID 参数名称
owasp-crs-v030001-id943120-sessionfixation 1 可能的会话固定攻击:不含引用器的会话 ID 参数名称

会话固定的所有签名都低于敏感程度 2 级。以下配置适用于其他敏感度级层:

会话固定敏感度级别 2/4


evaluatePreconfiguredExpr('sessionfixation-canary')

后续步骤