应用程序网关 Web 应用程序防火墙(WAF)中的 Azure 托管的默认规则集(DRS)会主动保护 Web 应用程序免受常见漏洞和攻击的攻击。 这些规则集由 Azure 管理,根据需要接收更新,以针对新的攻击特征进行安全防护。 默认规则集还包含 Microsoft 威胁情报收集规则。 Microsoft 情报团队协作编写这些规则,确保增强覆盖范围,针对特定漏洞进行修补,并改进误报率。
还可以选择使用基于 OWASP 核心规则集 3.2(CRS 3.2)定义的规则。
你可以单独禁用各个规则,也可以为每个规则设置特定操作。 本文包含当前可用的规则和规则集。 如果已发布的规则集需要更新,我们将在此处记录它。
注意
在 WAF 策略中更改规则集版本时,对规则集所做的任何现有自定义都将重置为新规则集的默认值。 请参阅:升级或更改规则集版本。
默认规则集 (DRS) 2.1 基于 Open Web Application Security Project (OWASP) 核心规则集 (CRS) 3.3.2 基线,并包括由Microsoft威胁情报团队开发的附加专有保护规则,以及签名更新以减少误报。 它还支持 URL 解码以外的转换。
DRS 2.1 提供新的引擎和新规则集,用于抵御 Java 注入、初始文件上传检查集,与 CRS 版本相比,误报更少。 还可以根据需求自定义规则。 详细了解新的 Azure WAF 引擎。
DRS 2.1 包括下表中所示的 17 个规则组。 每个组包含多个规则,你可以自定义各个规则、规则组或整个规则集的行为。
威胁类型 | 规则组名称 |
---|---|
常规 | 常规 |
锁定方法(PUT、PATCH) | METHOD-ENFORCEMENT |
协议和编码问题 | 协议执行 |
标头注入、请求走私和响应拆分 | 协议攻击 |
文件和路径攻击 | LFI |
远程文件包含 (RFI) 攻击 | RFI |
远程代码执行攻击 | RCE |
PHP 注入攻击 | PHP |
Node JS 攻击 | NodeJS |
跨站点脚本攻击 | XSS |
SQL 注入攻击 | SQLI |
会话固定攻击 | SESSION-FIXATION |
JAVA 攻击 | SESSION-JAVA |
网络黑客脚本攻击(微软) | MS-ThreatIntel-WebShells |
AppSec 攻击 (MS) | MS-ThreatIntel-AppSec |
SQL 注入攻击 (MS) | MS-ThreatIntel-SQLI |
CVE 攻击 (MS) | MS-ThreatIntel-CVEs |
在应用程序网关 WAF 上开始使用 DRS 2.1 时,请使用以下指南来优化 WAF:
规则 ID | 规则组 | 说明 | 建议 |
---|---|---|---|
942110 | SQLI | SQL 注入攻击:检测到常用注入测试 | 禁用规则 942110,替换为 MSTIC 规则99031001 |
942150 | SQLI | SQL 注入攻击 | 禁用规则 942150,替换为 MSTIC 规则99031003 |
942260 | SQLI | 检测到基本 SQL 身份验证绕过尝试 2/3 | 禁用规则 942260,替换为 MSTIC 规则99031004 |
942430 | SQLI | 受限 SQL 字符异常情况检测 (args):已超出特殊字符数 (12) | 禁用规则 942430,它会触发太多误报 |
942440 | SQLI | 检测到 SQL 注释序列 | 禁用规则 942440,替换为 MSTIC 规则99031002 |
99005006 | MS-ThreatIntel-WebShells | Spring4Shell 交互尝试 | 保持启用规则以防止 SpringShell 漏洞 |
99001014 | MS-ThreatIntel-CVEs | 尝试使用 Spring Cloud 路由表达式注入 CVE-2022-22963 | 保持启用规则以防止 SpringShell 漏洞 |
99001015 | MS-ThreatIntel-WebShells | 尝试利用 Spring Framework 不安全类对象 CVE-2022-22965 | 保持启用规则以防止 SpringShell 漏洞 |
99001016 | MS-ThreatIntel-WebShells | 尝试进行 Spring Cloud Gateway Actuator 执行器注入 CVE-2022-22947 | 保持启用规则以防止 SpringShell 漏洞 |
99001017 | MS-ThreatIntel-CVEs | 尝试利用 Apache Struts 文件上传 CVE-2023-50164 | 将操作设置为“阻止”可防止 Apache Struts 漏洞。 此规则不支持异常分数 |
建议的托管规则集是默认规则集 2.1,该规则集根据 Open Web Application Security Project (OWASP) 核心规则集 (CRS) 3.3.2 进行基线,并包括由Microsoft威胁智能团队开发的附加专有保护规则,并更新签名以减少误报。 作为 DRS 2.1 的替代方法,可以使用基于 OWASP CRS 3.2.0 版本的 CRS 3.2。
CRS 3.2 包括下表中所示的 14 个规则组。 每个组包含多个可以禁用的规则。
注意
CRS 3.2 仅在 WAF_v2 SKU 上可用。 由于 CRS 3.2 在新 Azure WAF 引擎上运行,因此无法降级到 CRS 3.1 或更早版本。 如果需要降级,请联系 Azure 支持部门。
规则组名称 | 威胁类型 |
---|---|
常规 | 常规 |
新的和已知的 CVE 漏洞 | KNOWN-CVES |
锁定方法(PUT、PATCH) | REQUEST-911-METHOD-ENFORCEMENT |
端口和环境扫描程序 | REQUEST-913-SCANNER-DETECTION |
协议和编码问题 | REQUEST-920-PROTOCOL-ENFORCEMENT |
标头注入、请求走私和响应拆分 | REQUEST-921-PROTOCOL-ATTACK |
文件和路径攻击 | REQUEST-930-APPLICATION-ATTACK-LFI |
远程文件包含 (RFI) 攻击 | REQUEST-931-APPLICATION-ATTACK-RFI |
远程代码执行攻击 | REQUEST-932-APPLICATION-ATTACK-RCE |
PHP 注入攻击 | REQUEST-933-APPLICATION-ATTACK-PHP |
跨站点脚本攻击 | REQUEST-941-APPLICATION-ATTACK-XSS |
SQL 注入攻击 | REQUEST-942-APPLICATION-ATTACK-SQLI |
会话固定攻击 | REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION |
JAVA 攻击 | REQUEST-944-APPLICATION-ATTACK-JAVA |
DRS 和 CRS 在 WAF 策略的检测模式下默认启用。 可以禁用或启用托管规则集内的各个规则,以满足应用程序要求。 还可以根据规则设置特定操作。 DRS/CRS 支持块、日志和异常分数操作。 Bot Manager 规则集支持允许、阻止和记录操作。
有时你可能需要忽略 WAF 评估中的某些请求属性。 一个常见的例子是用于身份验证的 Active Directory 插入令牌。 可以将排除项配置为在评估特定 WAF 规则时应用,或全局应用于所有 WAF 规则的评估。 排除规则适用于整个 Web 应用。 有关详细信息,请参阅包含应用程序网关排除列表的 Web 应用程序防火墙 (WAF)。
默认情况下,当请求与规则匹配时,DRS 版本 2.1 / CRS 版本 3.2 及更高版本会使用异常评分。 默认情况下,CRS 3.1 和更低版本会阻止匹配的请求。 此外,如果想要绕过核心规则集中的任何预配置规则,可以在同一 WAF 策略中配置自定义规则。
在评估核心规则集中的规则之前,总是先应用自定义规则。 如果请求与某个自定义规则相匹配,将应用相应的规则操作。 请求将被阻止,或通过后端传递。 不会处理任何其他自定义规则或核心规则集中的规则。
使用 CRS 或 DRS 2.1 及更高版本时,WAF 默认配置为使用异常评分。 即使 WAF 处于防护模式,符合任何规则的流量也不会被立即阻止。 OWASP 规则集为每个规则定义严重性:“严重”、“错误”、“警告”或“通知”。 这些严重性会影响请求的数值,该数值称为异常分数:
规则严重性 | 对异常分数的贡献值 |
---|---|
严重 | 5 |
错误 | 4 |
警告 | 3 |
通知 | 2 |
如果异常分数为 5 或更高,并且 WAF 处于预防模式,则会阻止请求。 如果异常分数为 5 或更高,并且 WAF 处于检测模式,则会记录请求,但不会阻止请求。
例如,在预防模式下,一个“严重”规则匹配就足以让 WAF 阻止请求,因为总体异常分数为 5。 然而,一个“警告”规则匹配仅会使异常得分增加3分,这本身还不足以阻止流量。 触发异常规则时,它会在日志中显示“匹配”操作。 如果异常分数达到 5 或更高,将根据 WAF 策略是处于“预防”模式还是“检测”模式,触发单独的规则,并执行“阻止”或“检测到”的操作。 有关详细信息,请参阅异常评分模式。
每个规则都被分配在特定的 Paranoia 级别 (PL)。 在 Paranoia 级别 1 (PL1) 中配置的规则不太激进,并且几乎从不会触发误报。 它们提供基础安全性,几乎不需要进行微调。 PL2 中的规则会检测到更多攻击,但预期会触发误报,需要进行微调。
默认情况下,DRS 2.1 和 CRS 3.2 规则版本在 Paranoia 级别 2 中预配置,包括 PL1 和 PL2 中分配的规则。 如果希望在 WAF 仅使用 PL1,可以禁用任何或所有 PL2 规则,或者将其操作更改为“log”。 AZURE WAF 目前不支持 PL3 和 PL4。
注意
CRS 3.2 规则集包括 PL3 和 PL4 中的规则,但这些规则始终处于非活动状态,无论其配置的状态或作如何,都无法启用。
如果要升级或分配新的规则集版本,并且想要保留现有规则替代和排除项,建议使用 PowerShell、CLI、REST API 或模板进行规则集版本更改。 规则集的新版本可以有更新的规则、附加规则组,并可能对现有签名进行更新,以强制实施更好的安全性并减少误报。 建议验证测试环境中的更改,根据需要微调,然后在生产环境中部署。
注意
如果使用 Azure 门户将新的托管规则集分配给 WAF 策略,则现有托管规则集(如规则状态、规则作和规则级别排除)的所有以前的自定义都将重置为新的托管规则集的默认值。 但是,在分配新规则集期间,任何自定义规则、策略设置和全局排除均不受影响。 在生产环境中部署之前,需要重新定义规则替代和验证更改。
CRS 3.1 包括下表中所示的 14 个规则组。 每个组包含多个可以禁用的规则。 规则集基于 OWASP CRS 3.1.1 版本。
注意
CRS 3.1 仅在 WAF_v2 SKU 上可用。
规则组名称 | 说明 |
---|---|
常规 | 常规组 |
KNOWN-CVES | 帮助检测新的和已知的 CVE |
REQUEST-911-METHOD-ENFORCEMENT | 锁定方法(PUT、PATCH) |
REQUEST-913-SCANNER-DETECTION | 防范端口和环境扫描程序 |
REQUEST-920-PROTOCOL-ENFORCEMENT | 防范协议和编码问题 |
REQUEST-921-PROTOCOL-ATTACK | 防范标头注入、请求走私和响应拆分 |
REQUEST-930-APPLICATION-ATTACK-LFI | 防范文件和路径攻击 |
REQUEST-931-APPLICATION-ATTACK-RFI | 防范远程文件包含 (RFI) 攻击 |
REQUEST-932-APPLICATION-ATTACK-RCE | 防范远程代码执行攻击 |
REQUEST-933-APPLICATION-ATTACK-PHP | 防范 PHP 注入攻击 |
REQUEST-941-APPLICATION-ATTACK-XSS | 防范跨站点脚本攻击 |
REQUEST-942-APPLICATION-ATTACK-SQLI | 防范 SQL 注入攻击 |
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION | 防范会话固定攻击 |
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA | 防范 JAVA 攻击 |
Bot Manager 1.0 规则集可防范恶意机器人并检测出善意机器人。 这些规则通过将机器人流量划分为“善意”、“恶意”或“未知”机器人,对 WAF 检测到的机器人进行精细控制。
规则组 | 说明 |
---|---|
BadBots | 防范恶意机器人 |
GoodBots | 识别善意机器人 |
未知的机器人 | 标识未知机器人 |
Bot Manager 1.1 规则集是 Bot Manager 1.0 规则集的增强版。 它增强了对恶意机器人的防范,并增加了善意机器人检测。
规则组 | 说明 |
---|---|
BadBots | 防范恶意机器人 |
GoodBots | 识别善意机器人 |
未知的机器人 | 标识未知机器人 |
在应用程序网关上使用 Web 应用程序防火墙时可以使用以下规则组和规则。
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
200002 | 严重 - 5 | PL1 | 无法解析请求正文 |
200003 | 严重 - 5 | PL1 | 多部分请求正文无法通过严格的验证 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
911100 | 严重 - 5 | PL1 | 方法不被政策允许 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
920100 | 通知 - 2 | PL1 | 无效的 HTTP 请求行 |
920120 | 严重 - 5 | PL1 | 尝试了多部分/表单数据绕过 |
920121 | 严重 - 5 | PL2 | 尝试了多部分/表单数据绕过 |
920160 | 严重 - 5 | PL1 | Content-Length HTTP 标头不是数值 |
920170 | 严重 - 5 | PL1 | 包含正文内容的 GET 或 HEAD 请求 |
920171 | 严重 - 5 | PL1 | 包含 Transfer-Encoding 的 GET 或 HEAD 请求 |
920180 | 通知 - 2 | PL1 | POST 请求缺少 Content-Length 标头 |
920181 | 警告 - 3 | PL1 | Content-Length 和 Transfer-Encoding 标头存在 99001003 |
920190 | 警告 - 3 | PL1 | 范围:最后一个字节值无效 |
920200 | 警告 - 3 | PL2 | 范围:字段太多(6 个或以上) |
920201 | 警告 - 3 | PL2 | 范围:pdf 请求的字段太多(35 个或以上) |
920210 | 严重 - 5 | PL1 | 找到了多个/有冲突的连接标头数据 |
920220 | 警告 - 3 | PL1 | URL 编码滥用攻击尝试 |
920230 | 警告 - 3 | PL2 | 检测到多个 URL 编码 |
920240 | 警告 - 3 | PL1 | URL 编码滥用攻击尝试 |
920260 | 警告 - 3 | PL1 | Unicode 全角/半角滥用攻击企图 |
920270 | 错误 - 4 | PL1 | 请求中的字符无效(null 字符) |
920271 | 严重 - 5 | PL2 | 请求中的字符无效(不可打印的字符) |
920280 | 警告 - 3 | PL1 | 请求缺少 Host 标头 |
920290 | 警告 - 3 | PL1 | Host 标头为空 |
920300 | 通知 - 2 | PL2 | 请求缺少 Accept 标头 |
920310 | 通知 - 2 | PL1 | 请求包含空的 Accept 标头 |
920311 | 通知 - 2 | PL1 | 请求包含空的 Accept 标头 |
920320 | 通知 - 2 | PL2 | 缺少用户代理标头 |
920330 | 通知 - 2 | PL1 | 用户代理标头为空 |
920340 | 通知 - 2 | PL1 | 请求中包含内容,但缺少 Content-Type 标头 |
920341 | 严重 - 5 | PL1 | 请求包含内容,但需要 Content-Type 标头 |
920350 | 警告 - 3 | PL1 | Host 标头是数字 IP 地址 |
920420 | 严重 - 5 | PL1 | 请求的内容类型被政策禁止 |
920430 | 严重 - 5 | PL1 | HTTP 协议版本不受策略允许 |
920440 | 严重 - 5 | PL1 | 策略限制了 URL 文件扩展名 |
920450 | 严重 - 5 | PL1 | 策略限制了 HTTP 标头 |
920470 | 严重 - 5 | PL1 | Content-Type 标头非法 |
920480 | 严重 - 5 | PL1 | 请求内容类型字符集不受策略允许 |
920500 | 严重 - 5 | PL1 | 尝试访问备份或正在工作的文件 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
921110 | 严重 - 5 | PL1 | HTTP 请求走私攻击 |
921120 | 严重 - 5 | PL1 | HTTP 响应拆分攻击 |
921130 | 严重 - 5 | PL1 | HTTP 响应拆分攻击 |
921140 | 严重 - 5 | PL1 | 通过标头展开的 HTTP 标头注入攻击 |
921150 | 严重 - 5 | PL1 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF) |
921151 | 严重 - 5 | PL2 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF) |
921160 | 严重 - 5 | PL1 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF 和标头名称) |
921190 | 严重 - 5 | PL1 | HTTP 拆分(检测到请求文件名中存在 CR/LF) |
921200 | 严重 - 5 | PL1 | LDAP 注入攻击 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
930100 | 严重 - 5 | PL1 | 路径遍历攻击 (/../) |
930110 | 严重 - 5 | PL1 | 路径遍历攻击 (/../) |
930120 | 严重 - 5 | PL1 | OS 文件访问尝试 |
930130 | 严重 - 5 | PL1 | 受限文件访问尝试 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
931100 | 严重 - 5 | PL1 | 可能的远程文件包含 (RFI) 攻击:使用 IP 地址的 URL 参数 |
931110 | 严重 - 5 | PL1 | 可能的远程文件包含 (RFI) 攻击:对 URL 有效负载使用常见 RFI 漏洞参数名 |
931120 | 严重 - 5 | PL1 | 可能的远程文件包含 (RFI) 攻击:在 URL 有效负载中使用尾随问号 (?) |
931130 | 严重 - 5 | PL1 | 可能的远程文件包含 (RFI) 攻击:域外引用/链接 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
932100 | 严重 - 5 | PL1 | 远程命令执行:Unix 命令注入 |
932105 | 严重 - 5 | PL1 | 远程命令执行:Unix 命令注入 |
932110 | 严重 - 5 | PL1 | 远程命令执行:Windows 命令注入 |
932115 | 严重 - 5 | PL1 | 远程命令执行:Windows 命令注入 |
932120 | 严重 - 5 | PL1 | 远程命令执行:找到 Windows PowerShell 命令 |
932130 | 严重 - 5 | PL1 | 远程命令执行:找到 Unix Shell 表达式或 Confluence 漏洞 (CVE-2022-26134) |
932140 | 严重 - 5 | PL1 | 远程命令执行:找到 Windows FOR/IF 命令 |
932150 | 严重 - 5 | PL1 | 远程命令执行:直接 Unix 命令执行 |
932160 | 严重 - 5 | PL1 | 远程命令执行:找到 Unix Shell 代码 |
932170 | 严重 - 5 | PL1 | 远程命令执行:Shellshock (CVE-2014-6271) |
932171 | 严重 - 5 | PL1 | 远程命令执行:Shellshock (CVE-2014-6271) |
932180 | 严重 - 5 | PL1 | 受限文件上传企图 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
933100 | 严重 - 5 | PL1 | PHP 注入攻击:找到开始/结束标记 |
933110 | 严重 - 5 | PL1 | PHP 注入攻击:找到 PHP 脚本文件上传 |
933120 | 严重 - 5 | PL1 | PHP 注入攻击:找到配置指令 |
933130 | 严重 - 5 | PL1 | PHP 注入攻击:找到变量 |
933140 | 严重 - 5 | PL1 | PHP 注入攻击:找到 I/O 流 |
933150 | 严重 - 5 | PL1 | PHP 注入攻击:找到高风险的 PHP 函数名称 |
933151 | 严重 - 5 | PL2 | PHP 注入攻击:找到中等风险的 PHP 函数名称 |
933160 | 严重 - 5 | PL1 | PHP 注入攻击:找到高风险的 PHP 函数调用 |
933170 | 严重 - 5 | PL1 | PHP 注入攻击:序列化对象注入 |
933180 | 严重 - 5 | PL1 | PHP 注入攻击:找到可变函数调用 |
933200 | 严重 - 5 | PL1 | PHP 注入攻击:检测到包装器方案 |
933210 | 严重 - 5 | PL1 | PHP 注入攻击:找到可变函数调用 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
934100 | 严重 - 5 | PL1 | Node.js 注入攻击 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
941100 | 严重 - 5 | PL1 | 通过 libinjection 检测到 XSS 攻击 |
941101 | 严重 - 5 | PL2 | 检测到通过 libinjection 展开的 XSS 攻击。 此规则检测带有 Referer 标头的请求 |
941110 | 严重 - 5 | PL1 | XSS 筛选器 - 类别 1:脚本标记向量 |
941120 | 严重 - 5 | PL1 | XSS 筛选器 - 类别 2:事件处理矢量 |
941130 | 严重 - 5 | PL1 | XSS 筛选器 - 类别 3:属性向量 |
941140 | 严重 - 5 | PL1 | XSS 筛选器 - 类别 4:Javascript URI 向量 |
941150 | 严重 - 5 | PL2 | XSS 筛选器 - 类别 5:不允许的 HTML 属性 |
941160 | 严重 - 5 | PL1 | NoScript XSS InjectionChecker:HTML 注入 |
941170 | 严重 - 5 | PL1 | NoScript XSS InjectionChecker:属性注入 |
941180 | 严重 - 5 | PL1 | 节点验证器阻止列表关键字 |
941190 | 严重 - 5 | PL1 | 使用样式表的 XSS |
941200 | 严重 - 5 | PL1 | 使用 VML 框架的 XSS |
941210 | 严重 - 5 | PL1 | 使用经过模糊处理的 Javascript 的 XSS |
941220 | 严重 - 5 | PL1 | 使用经过模糊处理的 VB Script 的 XSS |
941230 | 严重 - 5 | PL1 | 使用“embed”标记的 XSS |
941240 | 严重 - 5 | PL1 | 使用“import”或“implementation”属性的 XSS |
941250 | 严重 - 5 | PL1 | IE XSS 筛选器 - 检测到攻击 |
941260 | 严重 - 5 | PL1 | 使用“meta”标记的 XSS |
941270 | 严重 - 5 | PL1 | 使用“link”href 的 XSS |
941280 | 严重 - 5 | PL1 | 使用“base”标记的 XSS |
941290 | 严重 - 5 | PL1 | 使用“applet”标记的 XSS |
941300 | 严重 - 5 | PL1 | 使用“object”标记的 XSS |
941310 | 严重 - 5 | PL1 | US-ASCII 格式错误编码 XSS 筛选器 - 检测到攻击 |
941320 | 严重 - 5 | PL2 | 检测到可能的 XSS 攻击 - HTML 标记处理程序 |
941330 | 严重 - 5 | PL2 | IE XSS 筛选器 - 检测到攻击 |
941340 | 严重 - 5 | PL2 | IE XSS 筛选器 - 检测到攻击 |
941350 | 严重 - 5 | PL1 | UTF-7 编码 IE XSS - 检测到攻击 |
941360 | 严重 - 5 | PL1 | 检测到 JavaScript 混淆 |
941370 | 严重 - 5 | PL1 | 找到 JavaScript 全局变量 |
941380 | 严重 - 5 | PL2 | 检测到 AngularJS 客户端模板注入 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
942100 | 严重 - 5 | PL1 | 检测到通过 libinjection 展开的 SQL 注入攻击 |
942110 | 警告 - 3 | PL2 | SQL 注入攻击:检测到常用注入测试 |
942120 | 严重 - 5 | PL2 | SQL 注入攻击:检测到 SQL 运算符 |
942130 | 严重 - 5 | PL2 | SQL 注入攻击:检测到 SQL 同义反复 |
942140 | 严重 - 5 | PL1 | SQL 注入攻击:检测到常用 DB 名称 |
942150 | 严重 - 5 | PL2 | SQL 注入攻击 |
942160 | 严重 - 5 | PL1 | 检测到使用 sleep() 或 benchmark() 的盲注 sqli 测试 |
942170 | 严重 - 5 | PL1 | 检测到包含条件查询的 SQL 基准和休眠注入企图 |
942180 | 严重 - 5 | PL2 | 检测到基本 SQL 身份验证绕过尝试 1/3 |
942190 | 严重 - 5 | PL1 | 检测到 MSSQL 代码执行和信息收集尝试 |
942200 | 严重 - 5 | PL2 | 检测到 MySQL 注释/空间经过模糊处理的注入和反引号终止 |
942210 | 严重 - 5 | PL2 | 检测链式 SQL 注入尝试次数 1/2 |
942220 | 严重 - 5 | PL1 | 查找整数溢出攻击,这些攻击来自 skipfish,但 3.0.00738585072007e-308 是“幻数”故障 |
942230 | 严重 - 5 | PL1 | 检测条件式 SQL 注入企图 |
942240 | 严重 - 5 | PL1 | 检测 MySQL 字符集切换和 MSSQL 拒绝服务攻击尝试 |
942250 | 严重 - 5 | PL1 | 检测 MATCH AGAINST、MERGE 和 EXECUTE IMMEDIATE 注入 |
942260 | 严重 - 5 | PL2 | 检测到基本 SQL 身份验证绕过尝试 2/3 |
942270 | 严重 - 5 | PL1 | 正在查找基本 sql 注入。 mysql、oracle 和其他对象的常见攻击字符串 |
942280 | 严重 - 5 | PL1 | 检测 Postgres pg_sleep 注入、waitfor 延迟攻击和数据库关闭尝试 |
942290 | 严重 - 5 | PL1 | 查找基本 MongoDB SQL 注入企图 |
942300 | 严重 - 5 | PL2 | 检测到 MySQL 注释、条件和 ch(a)r 注入 |
942310 | 严重 - 5 | PL2 | 检测链式 SQL 注入尝试次数 2/2 |
942320 | 严重 - 5 | PL1 | 检测 MySQL 和 PostgreSQL 存储过程/函数注入 |
942330 | 严重 - 5 | PL2 | 检测到经典 SQL 注入探测 1/2 |
942340 | 严重 - 5 | PL2 | 检测到基本 SQL 身份验证绕过尝试 3/3 |
942350 | 严重 - 5 | PL1 | 检测 MySQL UDF 注入和其他数据/结构操作企图 |
942360 | 严重 - 5 | PL1 | 检测到连接的基本 SQL 注入和 SQLLFI 尝试 |
942361 | 严重 - 5 | PL2 | 检测基于关键字 alter 或 union 的基本 SQL 注入 |
942370 | 严重 - 5 | PL2 | 检测到经典 SQL 注入探测 2/2 |
942380 | 严重 - 5 | PL2 | SQL 注入攻击 |
942390 | 严重 - 5 | PL2 | SQL 注入攻击 |
942400 | 严重 - 5 | PL2 | SQL 注入攻击 |
942410 | 严重 - 5 | PL2 | SQL 注入攻击 |
942430 | 警告 - 3 | PL2 | 受限 SQL 字符异常情况检测 (args):已超出特殊字符数 (12) |
942440 | 严重 - 5 | PL2 | 检测到 SQL 注释序列 |
942450 | 严重 - 5 | PL2 | 识别到 SQL 十六进制编码 |
942470 | 严重 - 5 | PL2 | SQL 注入攻击 |
942480 | 严重 - 5 | PL2 | SQL 注入攻击 |
942500 | 严重 - 5 | PL1 | 检测到 MySQL 内联注释 |
942510 | 严重 - 5 | PL2 | 检测到引号或反引号尝试 SQLi 绕过 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
943100 | 严重 - 5 | PL1 | 可能的会话固定攻击:在 HTML 中设置 Cookie 值 |
943110 | 严重 - 5 | PL1 | 可能的会话固定攻击:包含域外引用方的 SessionID 参数名称 |
943120 | 严重 - 5 | PL1 | 可能的会话固定攻击:不包含引用方的 SessionID 参数名称 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
944100 | 严重 - 5 | PL1 | 远程命令执行:Apache Struts、Oracle WebLogic |
944110 | 严重 - 5 | PL1 | 检测潜在的有效负载执行 |
944120 | 严重 - 5 | PL1 | 可能的有效负载执行和远程命令执行 |
944130 | 严重 - 5 | PL1 | 可疑的 Java 类 |
944200 | 严重 - 5 | PL2 | 利用 Java 反序列化 Apache Commons |
944210 | 严重 - 5 | PL2 | 可能使用 Java 序列化 |
944240 | 严重 - 5 | PL2 | 远程命令执行:Java 序列化和 Log4j 漏洞(CVE-2021-44228、CVE-2021-45046) |
944250 | 严重 - 5 | PL2 | 远程命令执行:检测到可疑的 Java 方法 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
99005002 | 严重 - 5 | PL2 | Web Shell 交互尝试 (POST) |
99005003 | 严重 - 5 | PL2 | Web Shell 上传尝试 (POST) - CHOPPER PHP |
99005004 | 严重 - 5 | PL2 | Web Shell 上传尝试 (POST) - CHOPPER ASPX |
99005005 | 严重 - 5 | PL2 | Web Shell 交互尝试 |
99005006 | 严重 - 5 | PL2 | Spring4Shell 交互尝试 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
99030001 | 严重 - 5 | PL2 | 标头中的路径遍历规避 (/.././../) |
99030002 | 严重 - 5 | PL2 | 请求正文中的路径遍历规避 (/.././../) |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
99031001 | 警告 - 3 | PL2 | SQL 注入攻击:检测到常用注入测试 |
99031002 | 严重 - 5 | PL2 | 检测到 SQL 注释序列 |
99031003 | 严重 - 5 | PL2 | SQL 注入攻击 |
99031004 | 严重 - 5 | PL2 | 检测到基本 SQL 身份验证绕过尝试 2/3 |
规则 ID | 异常分数严重性 | 偏执狂级别 | 说明 |
---|---|---|---|
99001001 | 严重 - 5 | PL2 | 使用已知凭据尝试利用 F5 tmui (CVE-2020-5902) REST API |
99001002 | 严重 - 5 | PL2 | 试图遍历 Citrix NSC_USER 目录 CVE-2019-19781 |
99001003 | 严重 - 5 | PL2 | 尝试利用 Atlassian Confluence 小组件连接器 CVE-2019-3396 |
99001004 | 严重 - 5 | PL2 | 尝试利用 Pulse Secure 自定义模板 CVE-2020-8243 |
99001005 | 严重 - 5 | PL2 | 尝试利用 SharePoint 类型转换器 CVE-2020-0932 |
99001006 | 严重 - 5 | PL2 | 试图遍历 Pulse Connect 目录 CVE-2019-11510 |
99001007 | 严重 - 5 | PL2 | 尝试包含 Junos OS J-Web 本地文件 CVE-2020-1631 |
99001008 | 严重 - 5 | PL2 | 试图遍历 Fortinet 路径 CVE-2018-13379 |
99001009 | 严重 - 5 | PL2 | 尝试注入 Apache struts ognl CVE-2017-5638 |
99001010 | 严重 - 5 | PL2 | 尝试注入 Apache struts ognl CVE-2017-12611 |
99001011 | 严重 - 5 | PL2 | 试图遍历 Oracle WebLogic 路径 CVE-2020-14882 |
99001012 | 严重 - 5 | PL2 | 尝试利用 Telerik WebUI 不安全反序列化 CVE-2019-18935 |
99001013 | 严重 - 5 | PL2 | 尝试 SharePoint 不安全 XML 反序列化 CVE-2019-0604 |
99001014 | 严重 - 5 | PL2 | 尝试使用 Spring Cloud 路由表达式注入 CVE-2022-22963 |
99001015 | 严重 - 5 | PL2 | 尝试利用 Spring Framework 不安全类对象 CVE-2022-22965 |
99001016 | 严重 - 5 | PL2 | 尝试进行 Spring Cloud Gateway Actuator 执行器注入 CVE-2022-22947 |
99001017* | 无 | 无 | 尝试利用 Apache Struts 文件上传 CVE-2023-50164 |
*默认情况下,此规则的操作设置为记录。将操作设置为“阻止”可防止 Apache Struts 漏洞。此规则不支持异常分数。
应用程序网关上的 Web 应用程序防火墙不再支持以下规则组和规则。
注意
Azure WAF 不再支持 CRS 3.0 和 CRS 2.2.9。 建议升级到 DRS 2.1 / CRS 3.2
规则编号 | 说明 |
---|---|
200004 | 可能的多部分不匹配边界 |
规则编号 | 说明 |
---|---|
800100 | 有助于检测和缓解 log4j 漏洞 CVE-2021-44228、CVE-2021-45046 的规则 |
800110 | Spring4Shell 交互尝试 |
800111 | 尝试使用 Spring Cloud 路由表达式注入 - CVE-2022-22963 |
800112 | 尝试对 Spring Framework 不安全类对象进行利用 - CVE-2022-22965 |
800113 | 尝试 Spring Cloud Gateway 执行器注入 - CVE-2022-22947 |
规则编号 | 说明 |
---|---|
911100 | 方法不被政策允许 |
规则编号 | 说明 |
---|---|
913100 | 找到了与安全扫描程序关联的用户代理 |
913110 | 找到了与安全扫描程序关联的请求标头 |
913120 | 找到了与安全扫描程序关联的请求文件名/参数 |
913101 | 找到了与脚本/通用 HTTP 客户端关联的用户代理 |
913102 | 找到了与 Web 爬网程序/bot 关联的用户代理 |
规则编号 | 说明 |
---|---|
920100 | 无效的 HTTP 请求行 |
920130 | 无法解析请求正文 |
920140 | 多部分请求正文无法通过严格的验证 |
920160 | Content-Length HTTP 标头不是数值 |
920170 | 包含正文内容的 GET 或 HEAD 请求 |
920180 | POST 请求缺少 Content-Length 标头 |
920190 | 范围 = 最后一个字节值无效 |
920210 | 找到了多个/有冲突的连接标头数据 |
920220 | URL 编码滥用攻击尝试 |
920240 | URL 编码滥用攻击尝试 |
920250 | UTF8 编码滥用攻击企图 |
920260 | Unicode 全角/半角滥用攻击企图 |
920270 | 请求中的字符无效(null 字符) |
920280 | 请求缺少 Host 标头 |
920290 | Host 标头为空 |
920310 | 请求包含空的 Accept 标头 |
920311 | 请求包含空的 Accept 标头 |
920330 | 用户代理标头为空 |
920340 | 请求包含内容,但缺少 Content-Type 标头。 |
920350 | Host 标头是数字 IP 地址 |
920380 | 请求中的参数太多 |
920360 | 参数名称太长 |
920370 | 参数值太长 |
920390 | 参数总大小超出限制 |
920400 | 上传的文件太大 |
920410 | 上传的文件总大小太大 |
920420 | 请求的内容类型被政策禁止 |
920430 | HTTP 协议版本不受策略允许 |
920440 | 策略限制了 URL 文件扩展名 |
920450 | HTTP 标头已被策略限制 (%@{MATCHED_VAR}) |
920200 | 范围 = 字段太多(6 个或以上) |
920201 | 范围:Pdf请求的字段过多(35个以上) |
920230 | 检测到多个 URL 编码 |
920300 | 请求缺少 Accept 标头 |
920271 | 请求中的字符无效(不可打印的字符) |
920320 | 缺少用户代理标头 |
920272 | 请求中包含无效字符(不属于ASCII 127以下的可打印字符) |
920202 | 范围 = pdf 请求的字段过多(6 个或以上) |
920273 | 请求中的字符无效(不属于严格字符集) |
920274 | 请求标头中的字符无效(不属于极严格集) |
920460 | 转义字符异常 |
规则编号 | 说明 |
---|---|
921100 | HTTP 请求走私攻击 |
921110 | HTTP 请求走私攻击 |
921120 | HTTP 响应拆分攻击 |
921130 | HTTP 响应拆分攻击 |
921140 | 通过标头展开的 HTTP 标头注入攻击 |
921150 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF) |
921160 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF 和标头名称) |
921151 | 通过有效负载展开的 HTTP 标头注入攻击(检测到 CR/LF) |
921170 | HTTP 参数污染 |
921180 | HTTP 参数污染 (%@{TX.1}) |
规则编号 | 说明 |
---|---|
930100 | 路径遍历攻击 (/../) |
930110 | 路径遍历攻击 (/../) |
930120 | OS 文件访问尝试 |
930130 | 受限文件访问尝试 |
规则编号 | 说明 |
---|---|
931100 | 可能的远程文件包含 (RFI) 攻击 = 使用 IP 地址的 URL 参数 |
931110 | 可能的远程文件包含 (RFI) 攻击 = 对 URL 有效负载使用常见 RFI 漏洞参数名使用 |
931120 | 可能的远程文件包含 (RFI) 攻击 = 在 URL 有效负载中使用尾随问号 (?) |
931130 | 可能的远程文件包含 (RFI) 攻击 = 域外引用/链接 |
规则编号 | 说明 |
---|---|
932120 | 远程命令执行 = 找到 Windows PowerShell 命令 |
932130 | 应用程序网关 WAF v2:远程命令执行:找到 Unix Shell 表达式或 Confluence 漏洞 (CVE-2022-26134) 或 Text4Shell (CVE-2022-42889) 应用程序网关 WAF v1:远程命令执行:Unix Shell 表达式 |
932140 | 远程命令执行 = 找到 Windows FOR/IF 命令 |
932160 | 远程命令执行 = 找到 Unix Shell 代码 |
932170 | 远程命令执行 = Shellshock (CVE-2014-6271) |
932171 | 远程命令执行 = Shellshock (CVE-2014-6271) |
规则编号 | 说明 |
---|---|
933100 | PHP 注入攻击 = 找到开始/结束标记 |
933110 | PHP 注入攻击 = 找到 PHP 脚本文件上传 |
933120 | PHP 注入攻击 = 找到配置指令 |
933130 | PHP 注入攻击 = 找到变量 |
933150 | PHP 注入攻击 = 找到高风险的 PHP 函数名称 |
933160 | PHP 注入攻击 = 找到高风险的 PHP 函数调用 |
933180 | PHP 注入攻击 = 找到可变函数调用 |
933151 | PHP 注入攻击 = 找到中等风险的 PHP 函数名称 |
933131 | PHP 注入攻击 = 找到变量 |
933161 | PHP 注入攻击 = 找到低值 PHP 函数调用 |
933111 | PHP 注入攻击 = 找到 PHP 脚本文件上传 |
规则编号 | 说明 |
---|---|
941100 | 通过 libinjection 检测到 XSS 攻击 |
941110 | XSS 筛选器 - 类别 1 = 脚本标记向量 |
941130 | XSS 筛选器 - 类别 3 = 属性向量 |
941140 | XSS 筛选器 - 类别 4 = JavaScript URI 向量 |
941150 | XSS 筛选器 - 类别 5 = 不允许的 HTML 属性 |
941180 | 节点验证器阻止列表关键字 |
941190 | 使用样式表的 XSS |
941200 | 使用 VML 框架的 XSS |
941210 | 使用混淆 JavaScript 或 Text4Shell 的 XSS (CVE-2022-42889) |
941220 | 使用经过模糊处理的 VB Script 的 XSS |
941230 | 使用“embed”标记的 XSS |
941240 | 使用“import”或“implementation”属性的 XSS |
941260 | 使用“meta”标记的 XSS |
941270 | 使用“link”href 的 XSS |
941280 | 使用“base”标记的 XSS |
941290 | 使用“applet”标记的 XSS |
941300 | 使用“object”标记的 XSS |
941310 | US-ASCII 格式错误编码 XSS 筛选器 - 检测到攻击 |
941330 | IE XSS 筛选器 - 检测到攻击 |
941340 | IE XSS 筛选器 - 检测到攻击 |
941350 | UTF-7 编码 IE XSS - 检测到攻击 |
941320 | 检测到可能的 XSS 攻击 - HTML 标记处理程序 |
规则编号 | 说明 |
---|---|
942100 | 检测到通过 libinjection 展开的 SQL 注入攻击 |
942110 | SQL 注入攻击:检测到常用注入测试 |
942130 | SQL 注入攻击:检测到 SQL 同义反复 |
942140 | SQL 注入攻击 = 检测到常用 DB 名称 |
942160 | 检测到使用 sleep() 或 benchmark() 的盲注 sqli 测试 |
942170 | 检测到包含条件查询的 SQL 基准和休眠注入企图 |
942190 | 检测到 MSSQL 代码执行和信息收集尝试 |
942200 | 检测到 MySQL 注释/空间经过模糊处理的注入和反引号终止 |
942230 | 检测条件式 SQL 注入企图 |
942260 | 检测到基本 SQL 身份验证绕过尝试 2/3 |
942270 | 正在查找基本 sql 注入。 针对 mysql oracle 和其他系统的常见攻击字符串 |
942290 | 查找基本 MongoDB SQL 注入企图 |
942300 | 检测到 MySQL 注释、条件和 ch(a)r 注入 |
942310 | 检测链式 SQL 注入尝试次数 2/2 |
942320 | 检测 MySQL 和 PostgreSQL 存储过程/函数注入 |
942330 | 检测到经典 SQL 注入探测 1/2 |
942340 | 检测到基本 SQL 身份验证绕过尝试 3/3 |
942350 | 检测 MySQL UDF 注入和其他数据/结构操作企图 |
942360 | 检测到连接的基本 SQL 注入和 SQLLFI 尝试 |
942370 | 检测到经典 SQL 注入探测 2/2 |
942150 | SQL 注入攻击 |
942410 | SQL 注入攻击 |
942430 | 受限 SQL 字符异常情况检测 (args):已超出特殊字符数 (12) |
942440 | 检测到 SQL 注释序列 |
942450 | 识别到 SQL 十六进制编码 |
942251 | 检测 HAVING 注入 |
942460 | 元字符异常检测警报 - 重复的非单词字符 |
规则编号 | 说明 |
---|---|
943100 | 可能的会话固定攻击 = 在 HTML 中设置 Cookie 值 |
943110 | 可能的会话固定攻击 = 包含域外引用方的 SessionID 参数名称 |
943120 | 可能的会话固定攻击 = 不包含引用方的 SessionID 参数名称 |