如何检测 AWS 托管规则导致的误报并将其添加到安全列表中?

2 分钟阅读
0

AWS WAF 中的 AWS 托管规则阻止了对我的应用程序的合法请求。如何检测这些规则导致的误报并将其添加到安全列表中?

解决方法

检测由 AWS 托管规则导致的误报

1.    在托管规则组中找到阻止合法请求的规则。您可以在 AWS WAF 日志的“terminatingRuleId”(阻止规则 ID)字段下找到阻止请求的规则。有关更多详细信息,请检查该日志的“terminatingRuleMatchDetails”(阻止规则匹配详情)部分。

2.    使用以下方法之一来验证请求参数中导致误报的部分:

curl:在您的端点上执行 curl,然后确认在发送误报错误时是否会收到“403 Forbidden”(403 禁止访问)错误。例如:

$ curl -ikv http://<your-domain>.com/<false positive>

注意:在此示例中,请将 <your-domain> 替换为您的域,将 <false positive> 替换为您的误报向量。

Web 浏览器:在您的 Web 浏览器中输入您的域和误报向量,以确认您是否会收到“403 Forbidden”(403 禁止访问)错误。例如:

http://<your-domain>/<false positive>

在前面的示例中,请将 <your-domain> 替换为您的域,将 <false positive> 替换为您的误报向量。

Postman:使用 Postman 工具以及给出误报错误的规则和参数,向该端点发送请求。

3.    确定导致误报的向量。创建可用于传递合法请求的自定义条件规则。

例如,某一内部团队正在更改网页。这些请求包含用于更改的脚本,而这些脚本会导致请求被规则 ManagedRulesCommonRuleSet 阻止。您可以使用唯一标识内部请求的参数,以防止托管规则检查这些请求。例如,如果合法请求源自特定 IP,您可以创建 IP 设置条件,以将 IP 排除在检查范围之外。

将 AWS 托管规则导致的误报添加到您的安全列表中

检测到误报后,将 Web ACL 配置为不检查针对导致误报的“AWS 托管规则”之规则组的合法请求。然后,您可以绕过阻止该请求的规则。您可以通过两种方式修改 AWS 托管规则:

标签

您可以使用 AWS 托管规则添加的标签来防止误报。标签是元数据,无论与规则相关的操作为何,该规则都可以将标签添加到匹配的 Web 请求中。最新版本的 AWS 托管规则支持标签。通过创建与带有标签的请求相匹配的自定义规则,您可以更改托管规则组内规则的默认操作。

1.    打开 AWS WAF 控制台,选择正确的 Region(区域),然后选择 IP sets(IP 集)。

2.    创建一个 IP 集,其中包含您想排除在规则组检查范围之外的合法 IP。

3.    从 AWS WAF 控制台的导航窗格中选择 Web ACLs,然后选择您的 Web ACL

4.    选择 Rules(规则)选项卡。

5.    选择包含导致误报错误规则的规则组,然后选择 Edit(编辑)。

6.    选择导致误报错误的规则,然后将其设置为 Count(计数)。

7.    选择 Save rule(保存规则)。

8.    选择 Add rule(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。

9.    对于规则类型,选择 Rule Builder(规则生成器)。

10.    输入规则名称,然后选择 Regular rule(常规规则)作为类型。

11.    将 If a request drop-down(如果请求下拉列表)设置为 matches all the statements (AND)(与所有语句匹配(和))。

12.    为语句 1 选择以下参数:
Inspect(检查)设置为 Has a label(带有标签)
Match scope(匹配范围)设置为 Label(标签)
输入字符串,其中包含导致误报错误的规则标签名称

13.    为语句 2 选择以下参数:
打开 Negate statement results(对语句结果求反)选项
Inspect(检查)设置为 Originates from an IP address in(源自以下位置中的 IP 地址)
IP set(IP 集)设置为您创建的包含合法 IP 的 IP 集
IP address to use as the originating address(要用作源地址的 IP 地址)设置为 Source IP address(源 IP 地址)

14.    将 Action(操作)设置为 Block(阻止)。

15.    在 Set rule priority(设置规则优先级)下,将规则的优先级设置为低于导致误报错误的 AWS 托管规则的优先级。

16.    选择 Save(保存)。

范围缩小语句

您可以使用范围缩小语句,来缩小规则或规则组评估的请求范围。将范围缩小语句添加到规则组中,以允许对请求进行检查。该语句将跳过该语句中包含的任何合法 IP。

1.    打开 AWS WAF 控制台,选择正确的 Region(区域),然后选择 IP sets(IP 集)。

2.    创建一个 IP 集,其中包含您想排除在规则组检查范围之外的合法 IP。

3.    在 AWS WAF 控制台中的导航窗格上选择 Web ACLs,然后选择您的 Web ACL

4.    选择 Rules(规则)选项卡。

5.    选择要向其添加范围缩小语句的 AWS 托管规则条目,然后选择 Edit(编辑)。

6.    创建范围缩小语句,排除您创建的 IP 集。该语句的情况如下面的示例所示:
If a request: doesn't match the statements (NOT)(如果请求:与语句不匹配(非))
Inspect: originates from an IP address in(检查:源自以下位置中的 IP 地址)
IP set: <your-IP-set>(IP 集:<your-IP-set>
IP addresses to use as the originating address: Source IP address(要用作源地址的 IP 地址:源 IP 地址)

7.    选择 Save rule(保存规则)。

注意:范围缩小语句不会根据规则组中的所有规则检查超出范围的请求。要获得精细的显式规则,最佳做法是使用标签。


AWS 官方
AWS 官方已更新 4 年前
没有评论