ADC

签名规则模式

如果签名匹配,您可以添加模式或修改现有模式,以指定用于描述攻击特征的字符串或表达式。要检测攻击表现出的模式,可以检查 Web 服务器上的日志。您可以使用工具实时观察连接数据,也可以从有关攻击的第三方报告中获取字符串或表达式。

小心:

您添加到签名规则的任何新模式都与现有模式具有 AND 关系。如果您不希望潜在攻击必须匹配所有模式才能匹配签名,则不要向现有签名规则添加模式。

每种模式可以由简单的字符串、PCRE 格式的正则表达式或内置的 SQL 注入或跨站点脚本模式组成。在尝试添加基于正则表达式的模式之前,必须确保了解 PCRE 格式的正则表达式。PCRE 表达式复杂而强大。如果您不了解它们是如何工作的,您可能会无意中创建一种与您不想要的东西( 误报)或不匹配您想要的东西( 假阴性)的模式。

非默认内容类型的自定义签名模式

Citrix ADC Web App Firewall (WAF) 现在支持使用新位置来检查规范化内容。默认情况下,WAF 不会屏蔽非默认内容类型的编码有效负载。当这些内容类型被列入白名单且未应用任何配置的操作时,SQL 和跨站点脚本保护检查不会过滤编码负载中的 SQL 或跨站点脚本攻击。为了解决这个问题,用户可以使用这个新位置 (HTTP_CANON_POST_BODY) 创建自定义签名规则,用于检查非默认内容类型的编码有效负载,如果存在任何 SQL 或跨站脚本攻击,它会在帖子正文规范化后阻止流量。

注意:

该支持仅适用于 HTTP 请求。

如果您还不熟悉 PCRE 格式的正则表达式,您可以使用以下资源来学习基础知识,或者寻求一些特定问题的帮助:

如果您需要在 PCRE 格式正则表达式中编码非 ASCII 字符,Citrix ADC 平台支持编码十六进制 UTF-8 代码。有关更多信息,请参阅 PCRE 字符编码格式

配置签名规则模式

  1. 导航到安全 > Citrix Web App Firewall > 签名
  2. 在详细信息窗格中,选择要配置的签名对象,然后单击“打开”。
  3. 在“修改签名对象”对话框中,在“筛选结果”窗口下方的屏幕中间,单击“添加”以创建签名规则,或者选择现有签名规则并单击“打开”。

    注意:

    您只能修改已添加的签名规则。您无法修改默认签名规则。

    根据您的操作,将出现“添加本地签名规则”或“修改本地签名规则”对话框。两个对话框的内容相同。

  4. 在对话框的“模式”窗口 下,单击“添加”以添加新模式,或者从“添加”按钮下方的列表中选择现有模式并单击“打开”。根据您的操作,将出现“创建新签名规则模式”或“编辑签名规则模式”对话框。两个对话框的内容相同。
  5. 模式类型 下拉列表中,选择模式要匹配的连接类型。

    • 如果模式旨在匹配请求元素或功能,例如注入的 SQL 代码、对 Web 表单的攻击、跨站点脚本或不当的 URL, 选择 Request。
    • 如果该模式旨在匹配响应元素或功能,例如信用卡号或安全对象,请选择响应
  6. 在“位置”区域中,使用此模式定义要检查的元素。 位置区域描述了要检查此模式的 HTTP 请求或响应的哪些元素。位置区域中显示的选项取决于所选的图案类型。如果您选择“请求”作为模式类型,则会显示与 HTTP 请求相关的项目。如果您选择响应,则会显示与 HTTP 响应相关的项目。 此外,当您从“区域”下拉列表中选择一个值时,“位置”区域的其余部分会交互式变化。以下是本节中可能出现的所有配置项目。

    • 区域。描述 HTTP 连接特定部分的元素的下拉列表。选项如下:
      • HTTP_ANY。HTTP 连接的所有部分。
      • HTTP_COOKIE 执行任何 cookie 转换后,HTTP 请求标头中的所有 cookie 都已完成。 注意:不搜索 HTTP 响应“Set-Cookie:”标头。
      • HTTP_FORM_FIELD。在 URL 解码、百分比解码和删除多余的空格之后,表单字段及其内容。您可以使用 <Location> 标签进一步限制要搜索的表单字段名称列表。
      • HTTP_HEADER。任何跨站脚本或 URL 解码转换后的 HTTP 标头的值部分。
      • HTTP_METHOD。HTTP 请求方法。
      • HTTP_ORIGIN_URL。网络表单的来源 URL。
      • HTTP_POST_BODY。HTTP 帖子正文及其包含的 Web 表单数据。
      • HTTP_RAW_COOKIE。所有 HTTP 请求 cookie,包括“Cookie:”名称部分。 注意:不搜索 HTTP 响应“Set-Cookie:”标头。
      • HTTP_RAW_HEADER。整个 HTTP 标头,各个标头由换行符 (\ n) 或回车符/换行字符串 (\ r\ n) 分隔。
      • HTTP_RAW_RESP_HEADER。整个响应标头,包括 URL 转换完成后响应标头的名称和值部分以及完整的响应状态。与 HTTP_RAW_HEADER 一样,各个标题由换行符 (\ n) 或回车符/换行字符串 (\ r\ n) 分隔。
      • HTTP_RAW_SET_COOKIE。执行任何 URL 转换后的整个 Set-Cookie 标头 注意:URL 转换可以更改 Set-Cookie 标头的域和路径部分。
      • HTTP_RAW_URL。执行任何 URL 转换之前的完整请求 URL,包括任何查询或片段部分。
      • HTTP_RESP_HEADER。执行任何 URL 转换后的完整响应标头的值部分。
      • HTTP_RESP_BODY。HTTP 响应正文
      • HTTP_SET_COOKIE。HTTP 响应标头中的所有“Set-Cookie”标头。
      • HTTP_STATUS_CODE。HTTP 状态码。
      • HTTP_STATUS_MESSAGE。HTTP 状态消息。
      • HTTP_URL。转换为 UTF-* 字符集、URL 解码、去除空格并将相对 URL 转换为绝对值后,HTTP 标头中 URL 的值部分,不包括任何查询或片段端口。不包括 HTML 实体解码。
      • URL。检查在 区域设置指定的元素中找到的所有 URL。选择以下设置之一。
      • 任何。检查所有 URL。
      • 字面意思。检查包含文字字符串的 URL。选择“文字”后,将显示一个文本框。在文本框中键入所需的文字字符串。
      • PCRE。检查与 PCRE 格式正则表达式匹配的 URL。选择此选项后,将显示正则表达式窗口。在窗口中键入正则表达式。您可以使用正则 表达式标记 在光标处插入常用的正则表达式元素,也可以单击 Regex 编辑器以显示“正则表达式编辑器”对话框,该对话框为构造所需的正则表达式提供了更多帮助。
      • 表达式。检查与 Citrix ADC 默认表达式匹配的 URL。
      • 字段名称。检查在 区域选择所指定的元素中找到的所有表单字段名称。任何。检查所有 URL。
      • 字面意思。检查包含文字字符串的 URL。选择“文字”后,将显示一个文本框。在文本框中键入所需的文字字符串。
      • PCRE。检查与 PCRE 格式正则表达式匹配的 URL。选择此选项后,将显示正则表达式窗口。在窗口中键入正则表达式。您可以使用正则 表达式标记 插入常用的正则表达式元素,也可以使用正则表达式编辑器来帮助构建所需的正则表达式。
      • 表达式。检查与 Citrix ADC 默认表达式匹配的 URL。
  7. 在图案区域中,定义图案。模式是定义要匹配的模式的文字字符串或 PCRE 格式的正则表达式。图案区域包含以下元素: - 匹配。可用于签名的搜索方法的下拉列表。此列表因模式类型是请求还是响应而有所不同。

    请求匹配类型 PCRE. PCRE 格式的正则表达式。

    注意:

    选择 PCRE 时,模式窗口下方的正则表达式工具将启用。这些工具对大多数其他类型的模式没有用。

    • 注射。指示 Web App Firewall 在指定位置查找注入的 SQL。模式窗口会消失,因为 Web App Firewall 已经有 SQL 注入模式。

    • CrossSiteScripting。指示 Web App Firewall 在指定位置查找跨站点脚本。“模式”窗口会消失,因为 Web App Firewall 已经有跨站脚本的模式。

    • 表达式。Citrix ADC 默认表达式语言中的表达式与在 Citrix ADC 设备上创建 Web App Firewall 策略的表达式语言相同。尽管 Citrix ADC 表达式语言最初是为策略规则开发的,但它是一种高度灵活的通用语言,也可以用于定义签名模式。

    选择表达式后,Citrix ADC 表达式编辑器将显示在板片窗口下方。有关表达式编辑器的详细信息以及有关如何使用它的说明,请参阅使用添加表达式对话框添加防火墙规则(表达式)

    响应匹配类型

    -  Literal. A literal string
    -  PCRE. A PCRE-format regular expression.
    

    注意

    选择 PCRE 时,模式窗口下方的正则表达式工具将启用。这些工具对大多数其他类型的模式没有用。

    • 信用卡。与支持的六种信用卡号类型之一相匹配的内置模式。

    注意:

    表达式匹配类型不适用于响应端签名。

    • 图案窗口(无标签)

    在此窗口中,键入要匹配的模式,然后填写任何其他数据。

    • 字面意思。在文本区域中键入要搜索的字符串。
    • CRE。在文本区域键入正则表达式。使用正则表达式编辑器在构造所需的正则表达式时获得更多帮助,或者使用正则表达式标记在光标处插入常见的正则表达式元素。要启用 UTF-8 字符,请单击 UTF-8。
    • 表达式。在文本区域输入 Citrix ADC 高级表达式。使用前缀选择表达式中的第一个术语,或使用运算符在光标处插入常用运算符。单击“添加”打开“添加表达式”对话框,以便在构造所需的正则表达式时获得更多帮助。单击“评估”打开“高级表达式评估器”,以帮助确定表达式的效果。
    • 抵消。在此模式上开始匹配之前要跳过的字符数。您可以使用此字段在第一个字符以外的某个时刻开始检查字符串。
    • 深度。从起点开始要检查多少个字符是否匹配。您可以使用此字段将大型字符串的搜索限制为特定数量的字符。
    • 最小长度。要搜索的字符串长度必须至少为指定的字节数。较短的字符串不匹配。
    • 最大长度。要搜索的字符串长度不得超过指定的字节数。较长的字符串不匹配。
    • 搜索方法。标有“快速匹配”的复选框。为了提高性能,只能对文字模式启用快速匹配。
  8. 单击“确定”
  9. 重复前四个步骤以添加或修改更多模式。
  10. 完成添加或修改模式后,单击“确定”保存更改并返回“签名”窗格。

小心:

在“添加本地签名规则”或“修改本地签名规则”对话框中单击“确定”之前,您的更改不会被保存。除非要放弃所做的更改,否则请勿在未单 “确定”的情况下关闭其中任何一个对话框。

签名规则模式