如何检测由 AWS 托管规则引起的误报?

2 分钟阅读
0

对我的应用程序的合法请求被 AWS WAF 中的 AWS 托管规则组阻止。我想了解这些规则是如何引起误报的。另外,我想保留托管规则,允许合法流量通过。

解决方法

首先,找出由 AWS 托管规则引起的误报。然后,使用标签或范围缩小语句将这些误报添加到您的允许列表中。

检测由托管规则组引起的误报错误

完成以下步骤:

  1. 在您的 AWS WAF 日志中的 terminatingRuleId 下,找到阻止合法请求的托管规则组。以下是 AWS WAF 日志的示例:

    "timestamp": 1712236911743,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-west-2:***:regional/webacl/WAFtester/3c372***-***",
    "terminatingRuleId": "AWS-AWSManagedRulesCommonRuleSet",
    "terminatingRuleType": "MANAGED_RULE_GROUP",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [],
    "ruleGroupList": [{
    "ruleGroupId": "AWS#AWSManagedRulesCommonRuleSet",
    "terminatingRule": {
    "ruleId": "SizeRestrictions_BODY",
    "action": "BLOCK",
    "overriddenAction": "BLOCK",
    "ruleMatchDetails": null
    },
    "nonTerminatingMatchingRules": [],
    "excludedRules": null,
    "customerConfig": null
    }],
  2. terminatingRule 下,找到 ruleId 以确定阻止合法请求的规则。例如: "SizeRestrictions_Body"

  3. 确定引起误报的属性或条件。例如,如果某数据库管理员远程运行存储的过程,则他们的请求可能包含大量数据。由于 SizeRestrictions_Body 规则,ManagedRulesCommonRuleSet 规则组会阻止这些请求。

将误报添加到您的允许列表

配置 Web 访问控制列表(ACL),以允许合法请求通过引起误报的托管规则组。要修改托管规则组,请使用标签或使用范围缩小语句

**注意:**最佳做法是使用标签来制定精细的显式规则。范围缩小语句不检查超出规则组中所有规则范围的请求。

标签

使用 AWS 托管规则添加的标签来防止误报。当您创建与具有这些标签的请求匹配的自定义规则时,请更改托管规则组内规则的默认操作。

完成以下步骤:

  1. 打开 AWS WAF 控制台,然后选择您的 AWS 区域。
  2. 在导航窗格中,选择 IP 集
  3. 创建一个 IP 集,其中包含要排除在规则组检查范围之外的合法 IP 地址。
  4. 选择 Web ACL,然后选择您的 Web ACL。
  5. 规则下,选择引起误报错误的规则组,然后选择编辑
  6. 选择引起误报错误的规则,然后将其设置为计数
  7. 选择保存****规则
  8. 选择添加规则,然后选择添加我自己的规则和规则组
  9. 对于规则类型,选择规则生成器
  10. 输入规则名称。
  11. 对于类型,选择常规规则
  12. 如果请求下拉列表设置为**匹配所有语句 (AND) **。
  13. 为语句 1 选择以下参数:
    对于检查,选择有标签
    对于匹配范围,选择标签
    输入引起误报的规则的标签名称。
  14. 为语句 2 选择以下参数:
    开启否定语句结果
    对于检查,选择源自 IP 地址
    对于 IP 集,输入包含合法 IP 地址的 IP 集。
    对于作为来源地址的 IP 地址,请选择源 IP 地址
  15. 对于操作,选择阻止
  16. 设置规则优先级下,将规则的优先级设置为低于 AWS 托管规则组的优先级。
  17. 选择保存

范围缩小语句

使用范围缩小语句缩小规则或规则组评估的请求的范围。规则组中添加范围缩小语句后,就可以检查请求。该语句会跳过语句中包含的合法 IP 地址。

完成以下步骤:

  1. 打开 AWS WAF 控制台,然后选择您的区域。
  2. 选择 IP 集
  3. 创建一个 IP 集,其中包含要排除在规则组检查范围之外的合法 IP 地址。
  4. 选择 Web ACL,然后选择您的 Web ACL。
  5. 规则下,选择要向其添加范围缩小语句的 AWS 托管规则,然后选择编辑
  6. 创建排除您创建的 IP 集的范围缩小语句。例如:
    对于如果请求,选择与语句不匹配 (NOT)
    对于检查,选择源自 IP 地址
    对于 IP 集,输入 example-IP-set注意:example-IP-set 替换为要排除的 IP 地址
    对于
    作为来源地址的 IP 地址
    ,请选择源 IP 地址注意:源 IP 地址替换为您的 IP 地址。
  7. 选择保存规则
AWS 官方
AWS 官方已更新 1 年前