Citrix ADC

签名规则模式

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

小心:

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

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

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

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

注意:

该支持仅适用于 HTTP 请求。

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

  • “掌握正则表达式”第三版。Copyright (c) 2006 by Jeffrey Friedl. O’Reilly Media, ISBN: 9780596528126.
  • “Regular Expressions Cookbook”. Copyright (c) 2009 by Jan Goyvaerts and Steven Levithan. O’Reilly Media, ISBN: 9780596520687
  • PCRE Man page/Specification (text/official): "<http://www.pcre.org/pcre.txt>"
  • PCRE Man Page/Specification (html/gammon.edu.au): "<http://www.gammon.com.au/pcre/index.html>"
  • Wikipedia PCRE entry: “[http://en.wikipedia.org/wiki/PCRE](http://en.wikipedia.org/wiki/pcre)”
  • PCRE Mailing List (run by exim.org): <http://lists.exim.org/mailman/listinfo/pcre-dev>"

如果您需要在 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 请求方法。
      • HTTP_ORIGIN_URL. Web 表单的源 URL。
      • HTTP_POST_BODY。HTTP 帖子正文和它包含的 Web 表单数据。
      • HTTP_RAW_COOKIE。所有 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。选择此选项后,将显示正则表达式窗口。在窗口中键入正则表达式。您可以使用正则表 达式令牌 插入常见的正则表达式元素,也可以使用正则表达式编辑器来帮助构建所需的正则表达式。
      • 表达式。检查与 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。字符串
    -  PCRE。PCRE 格式的正则表达式。
    

    注意

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

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

    注意:

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

    • 图案窗口(未标签)

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

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

小心:

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

签名规则模式