跳至内容

如何创建 AWS WAF 规则以防止 SQL 注入和 XSS 攻击?

2 分钟阅读
0

我想创建 AWS WAF 规则以防止 SQL 注入和跨站脚本攻击 (XSS)。

简短描述

为帮助防止 SQL 注入和 XSS 攻击,请使用以下保护措施之一:

  • 内置 SQL 注入和 XSS 引擎
  • 针对 SQL 注入和 XSS 注入攻击的 AWS 托管规则

**注意:**AWS WAF 为请求正文、标头和 Cookie 设定了最大大小检查配额。有关详细信息,请参阅 AWS WAF 中的超大 Web 请求组件

解决方法

**注意:**最佳做法是将 Action(操作)设置为 Count(计数),在非生产环境中测试规则。使用您的 AWS WAF 日志上的 Amazon CloudWatch 指标来评估规则。测试规则后,将 Action(操作)更改为 Block(阻止)。

使用内置的 SQL 注入和 XSS 引擎

攻击可能发生在 HTTP 请求的不同部分,例如 HTTP 标头、查询字符串或 URI。要根据内置缓解引擎检查 HTTP 请求的不同部分,请配置 AWS WAF 规则。

创建 SQL 注入攻击规则语句以检查恶意 SQL 代码。创建 XSS 攻击规则语句以检查 Web 请求组件中是否存在恶意脚本。

创建 SQL 注入或 XSS 攻击规则语句

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
  5. 在右侧窗格中,选择 Add rules(添加规则)。
    选择 Custom rule(自定义规则),然后选择 Next(下一步)。
    再次选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  6. 将规则 Action(操作)设置为 BLOCK(阻止)。
  7. 输入您的 Rule name(规则名称)。
  8. 对于 If a request(如果请求),展开下拉列表并选择 Matches the statement(与语句相匹配)。
  9. Statement(语句)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件
  10. 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection attacks(包含 XSS 注入攻击)。
    (可选)选择文本转换
  11. 选择 Create Rule(创建规则)。

创建针对多个请求组件进行评估的 SQL 注入或 XSS 攻击规则语句

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
  5. 在右侧窗格中,选择 Add rules(添加规则)。
    选择 Custom rule(自定义规则),然后选择 Next(下一步)。
    再次选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  6. 将规则 Action(操作)设置为 BLOCK(阻止)。
  7. 输入您的 Rule name(规则名称)。
  8. 对于 If a request(如果请求),展开下拉列表并选择 matches at least one of the statements (OR)(匹配至少一个语句 (OR))。
  9. Statement 1(语句 1)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件
  10. 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection attacks(包含 XSS 注入攻击)。
    (可选)选择文本转换
  11. Statement 2(语句 2)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件
  12. 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection(包含 XSS 注入)。
    (可选)选择文本转换
  13. 选择 Create Rule(创建规则)。

**注意:**要使该规则起作用,必须应用正确的文本转换。例如,如果您想让 AWS WAF 检查 Cookie,请使用 URL 解码、HTML 实体解码和小写。

使用 AWS 托管规则进行 SQL 注入和 XSS 注入攻击

要防范应用程序漏洞或其他有害流量,但不要自行编写规则,请使用适用于 AWS WAF 的 AWS 托管规则。

注意:

  • 托管规则组提供商可能会更新规则组或让其到期。有关详细信息,请参阅在 AWS WAF 中使用版本控制的托管规则组
  • 在生产环境中使用托管规则组之前,请在非生产环境中对其进行测试以减少误报。

使用 SQL 数据库托管规则组防御 SQL 注入攻击。使用核心规则集 (CRS) 托管规则组防御 XSS 注入攻击。

将 AWS 托管规则组添加到 Web ACL

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
  5. 在右侧窗格中,选择 Add rule(添加规则)。
    选择 AWS-managed rule group(AWS 托管规则组),然后单击 Next(下一步)。
  6. 选择要添加的 SQL 数据库核心规则集规则组。
    **注意:**要使用当前的 AWS 托管规则组,请选择该托管规则组并进行编辑。有关编辑设置的更多信息,请参阅使用托管规则组
  7. 选择 Create rule(创建规则)。

相关信息

使用更新的控制台体验开始使用 AWS WAF

测试和调整您的 AWS WAF 保护措施

AWS 官方已更新 6 个月前