签名规则模式

您可以向签名规则添加新的模式,或者修改签名规则的现有模式,以指定用于表征签名匹配的攻击方面的字符串或表达式。要确定攻击显示的模式,您可以检查 Web 服务器上的日志,使用工具实时观察连接数据,或者从有关攻击的第三方报告中获取字符串或表达式。

小心:

添加到签名规则的任何新模式都与现有模式保持与关系。如果您不希望潜在的攻击必须匹配所有模式才能匹配签名,请勿将新模式添加到现有的签名规则中。

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

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

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

配置签名规则模式

  1. 导航到 安全 > 应用程序防火墙 > 签名

  2. 在详细信息窗格中,选择要配置的签名对象,然后单击 打开

  3. 在“修改签名对象”对 话框的“筛选结果”窗口下方的屏幕中间,单击“添加”以创建签名规则,或者选择现有签名规则,然后单击“打开”。

    注意:

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

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

  4. 在对话框的“板 片”窗口 下,单击“添加”添加 新板片,或者从“ 加”按钮下方的列表中选择现有板片,然后单击“打开”。根据您的操作,将显示“创建新签名规则模式”或“编辑签名规则模式”对话框。两个对话框具有相同的内容。

  5. 板片类型 下拉列表中,选择板片要匹配的连接类型。

    • 如果模式旨在匹配请求元素或功能(例如注入的 SQL 代码、对 Web 表单的攻击、跨站点脚本或不适当的 URL), 请选择“请求”。
    • 如果模式旨在匹配响应元素或功能(如信用卡号或安全对象),请选择“响应”。
  6. 在位置区域中,定义要使用此模式检查的元素。

    位置区域描述要检查此模式的 HTTP 请求或响应的哪些元素。“位置”区域中显示的选项取决于所选的板片类型。如果您选择“请求”作为模式类型,则会显示与 HTTP 请求相关的项目;如果您选择“响应”,则会显示与 HTTP 响应相关的项目。

    此外,当您从“区域”下拉列表中选择一个值时,“位置”区域的其余部分会以交互方式更改。以下是本部分中可能出现的所有配置项目。

    • 区域

      描述 HTTP 连接特定部分的元素的下拉列表。选择如下:

      • HTTP_ANY。HTTP 连接的所有部分。
      • HTTP_COOKIE。执行任何 cookie 转换后 HTTP 请求标头中的所有 Cookie。 注意:不搜索 HTTP 响应“设置 cookie:”标题。
      • HTTP_FORM_FIELD。表单字段及其内容,在 URL 解码、百分比解码和删除多余空白之后。您可以使用<Location> 标签进一步限制要搜索的表单字段名称列表。
      • HTTP_HEADER。任何跨站点脚本或 URL 解码转换后 HTTP 标头的值部分。
      • HTTP_METHOD。HTTP 请求方法。
      • 地址链接。Web 表单的源 URL。
      • HTTP_POST_BODY。HTTP 帖子正文和它包含的 Web 表单数据。
      • 甜点饼干。所有 HTTP 请求 cookie,包括“Cookie:”名称部分。 注意:不搜索 HTTP 响应“设置 cookie:”标题。
      • HTTP_RAW_HEADER。整个 HTTP 标头,单个标头由换行字符 (n) 或回车/换行字符串 (rn) 分隔。
      • HTTP_RAW_RESP_HEADER。整个响应标头,包括 URL 转换完成后响应标头的名称和值部分,以及完整的响应状态。与 HTTP_RAW_HITER 一样,单个标题由换行字符 (n) 或回车/换行字符串 (rn) 分隔。
      • 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 响应标头中的所有“设置 cookie”标头。
      • HTTP_STATUS_CODE。HTTP 状态代码。
      • HTTP_STATUS_MESSAGE。HTTP 状态消息。
      • HTTP_URL。在转换为 UTF-* 字符集、URL 解码、剥离空格以及将相对 URL 转换为绝对 URL 之后,HTTP 标头中 URL 的值部分(不包括任何查询或片段端口)。不包括 HTML 实体解码。
    • URL

      检查在“ 区域”设置指定的元素中找到的任何 URL。选择以下设置之一。

      • 任何。检查所有 URL。
      • 字面。检查包含文字字符串的 URL。选择“文字”后,将显示一个文本框。在文本框中键入所需的文字字符串。
      • PCRE。检查与 PCRE 格式正则表达式匹配的 URL。选择此选项后,将显示正则表达式窗口。在窗口中键入正则表达式。您可以使用 Regex 令牌 在光标处插入常见的正则表达式元素,也可以单击正则表达式编辑器显示“Regex 编辑器”对话框,该对话框为构建所需的正则表达式提供了更多帮助。
      • 表达式。检查与 Citrix ADC 默认表达式匹配的 URL。
    • 字段名

      检查在“ 区域”选择指定的元素中找到的任何表单字段名称。

      • 任何。检查所有 URL。
      • 字面。检查包含文字字符串的 URL。选择“文字”后,将显示一个文本框。在文本框中键入所需的文字字符串。
      • PCRE。检查与 PCRE 格式正则表达式匹配的 URL。选择此选项后,将显示正则表达式窗口。在窗口中键入正则表达式。您可以使用 Regex 令牌 在光标处插入常见的正则表达式元素,也可以单击正则表达式编辑器显示“Regex 编辑器”对话框,该对话框为构建所需的正则表达式提供了更多帮助。
      • 表达式。检查与 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 表达式编辑器将显示在板片窗口下方。有关表达式编辑器的详细信息以及有关如何使用它的说明,请参阅使用“添加表达式”对话框添加防火墙规则(表达式)

响应匹配类型

  • 字面。字符串

  • PCRE。PCRE 格式的正则表达式。

注意:

选择 PCRE 时,将启用板片窗口下的正则表达式工具。这些工具不适用于大多数其他类型的模式。

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

注意

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

  • 图案窗口(未标签)

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

    • 字面。在文本区域中键入要搜索的字符串。
    • CRE。在文本区域中键入正则表达式。使用 Regex 编辑器获得更多帮助,以便构建所需的正则表达式,或者使用 Regex 令牌在光标处插入常见的正则表达式元素。若要启用 UTF-8 字符,请单击 UTF-8。
    • 表达式。在文本区域中键入 Citrix ADC 高级表达式。使用前缀选择表达式中的第一个术语,或者使用操作符在光标处插入常用运算符。单击“添加”打开“添加表达式”对话框,获得构建所需正则表达式的更多帮助。单击“评估”以打开“高级表达式赋值器”,以帮助确定表达式具有的效果。
    • 抵消。开始匹配此模式之前要跳过的字符数。您可以使用此字段在第一个字符以外的某个点开始检查字符串。
    • 深度。从起点检查匹配的字符数。您可以使用此字段将大字符串的搜索限制为特定数量的字符。
    • 最小的长度。要搜索的字符串必须至少为指定的字节数。较短的字符串不匹配。
    • 最大长度。要搜索的字符串的长度不得超过指定的字节数。较长的字符串不匹配。
    • 搜索方法。标记为快速匹配的复选框。您可以仅为文字模式启用快速匹配,以提高性能。

8. 点击 确定

  1. 重复前面的四个步骤以添加或修改其他模式。
  2. 完成添加或修改模式后,单 “确定”保存更改并返回“签名”窗格。

小心:

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

签名规则模式