Snort 3 网络分析策略入门

本章深入介绍了网络分析策略基础知识、前提条件和管理网络分析策略。它也提供有关创建自定义网络分析策略和网络分析策略设置的信息。

网络分析策略概览

网络分析策略管理许多流量预处理选项,并供访问控制策略中的高级设置调用。网络分析相关预处理发生在安全智能匹配和 SSL 解密之后进行,但在入侵或文件检查开始之前进行。

默认情况下,系统使用平衡的安全性和连接性网络分析策略预处理由访问控制策略处理的所有流量。但是,您可以选择不同的默认网络分析策略执行此预处理。为方便您使用,系统提供多种无法修改的网络分析策略供选择,这些策略由思科 Talos 智能小组 (Talos) 针对安全性和连接的特定平衡专门进行过调整。您也可以用自定义预处理设置创建自定义网络分析策略。


提示


系统提供的入侵和网络分析策略具有类似的名称,但包含不同的配置。例如,“平衡安全性和连接”(Balanced Security and Connectivity) 网络分析策略和“平衡安全性和连接”(Balanced Security and Connectivity) 入侵策略共同发挥作用,均可在入侵规则更新中更新。但是,网络分析策略管理的主要是预处理选项,而入侵策略管理的主要是入侵规则。网络分析和入侵策略相互配合,检查您的流量。


您也可以通过以下方式根据特定安全区域、网络和 VLAN 定制流量预处理选项:创建多个自定义网络分析策略,然后分配它们预处理不同流量。(请注意,ASA FirePOWER无法通过 VLAN 限制预处理。)

管理网络分析策略

在工具栏中的用户名下,系统会显示可用域的树。要切换域,请选择要访问的域。

过程


步骤 1

选择以下路径之一来访问网络分析策略。

  • 策略 > 访问控制标题 > 访问控制,然后点击网络分析策略

  • 策略 > 访问控制标题 > 入侵,然后点击网络分析策略

  • 策略 > 入侵 > 网络分析策略

 

如果自定义用户角色限制对此处列出的第一个路径的访问,请使用第二个路径访问该策略。

步骤 2

管理网络分析策略:

  • 创建 - 如果要创建新的网络分析策略,请点击 创建策略

    系统将创建两个版本的网络分析策略: Snort 2 版本Snort 3 版本

  • 删除 - 如果要删除网络分析策略,请点击 删除 图标,然后确认是否要删除策略。如果网络分析策略被访问控制策略引用,则无法删除该网络分析策略。

    如果控件呈灰色显示,则表明配置属于祖先域,或者您没有修改配置的权限。

  • 编辑 - 如果要编辑现有网络分析策略,请点击 编辑 图标。

    如果显示视图 (视图按钮),则表明配置属于祖先域,或者您没有修改配置的权限。

  • 报告 - 请点击 报告 图标;请参阅 Cisco Secure Firewall Management Center 配置指南中的 生成当前策略报告


网络分析策略的 Snort 3 定义和术语

下表列出了网络分析策略中使用的 Snort 3 概念和术语。

表 1. 网络分析策略的 Snort 3 定义和术语

术语

说明

检查器

检查器是处理数据包的插件(类似于 Snort 2 预处理器)。

绑定检查器

绑定检查器定义必须访问和考虑特定检查器时的流程。

当流量与绑定程序检查器中定义的条件匹配时,该检查器的值/配置才会生效。

有关详细信息,请参阅为 Snort 3 自定义网络分析策略的创建中的绑定检查器

单例检查器

单例检查器包含一个实例。这些检查器不支持添加更多实例,例如多例检查器。单例检查器的设置应用于匹配该检查器的整个流量,而不是特定的流量段。

有关详细信息,请参阅为 Snort 3 自定义网络分析策略的创建中的单例检查器

多例检查器

多例检查器包含多个实例,您可以根据需要进行配置。这些检查器支持根据特定条件(例如网络、端口和 VLAN)配置设置。一组受支持的设置称为实例。

有关详细信息,请参阅为 Snort 3 自定义网络分析策略的创建中的多例检查器

架构 (Schema)

架构文件基于 OpenAPI JSON 规范,用于验证您上传或下载的内容。您可以下载架构文件并使用任何第三方 JSON 编辑器(例如 Swagger 编辑器)将其打开。架构文件可帮助您确定可以为检查器配置的参数及其相应的允许值、范围和要使用的接受模式。

有关详细信息,请参阅自定义网络分析策略

示例文件

它是一个预先存在的模板,其中包含可帮助您配置检查器的示例配置。

您可以参考示例文件中包含的示例配置,并进行您可能需要的任何更改。

有关详细信息,请参阅自定义网络分析策略

完整配置

您可以在一个文件中下载整个检查器配置。

此文件中提供有关检查器配置的所有信息。

完整配置是默认配置(由思科 Talos 作为 LSP 更新的一部分推出)和自定义 NAP 检查器配置的合并配置。

有关详细信息,请参阅自定义网络分析策略

覆盖的配置

在网络分析策略页面的 Snort 3 版本中:

  • 操作 (Actions) > 上传 (Actions) 下,您可以点击覆盖配置 (Overridden Configuration) 以上传包含覆盖配置的 JSON 文件。

  • 操作 (Actions) > 下载 (Download) 下,您可以点击覆盖配置 (Overridden Configuration) 以下载已覆盖的检查器配置。

    如果尚未覆盖任何检查器配置,则此选项处于禁用状态。当您覆盖检查器配置时,此选项会自动启用,以允许您下载。

有关详细信息,请参阅自定义网络分析策略

网络分析和入侵策略的必备条件

要允许 Snort 检测引擎处理流量以进行入侵和恶意软件分析,必须为 威胁防御 设备启用 IPS 许可证。

您必须是管理员用户,才能管理网络分析、入侵策略和执行迁移任务。

为 Snort 3 自定义网络分析策略的创建

默认网络分析策略针对典型的网络要求和最佳性能进行了调整。通常,默认网络分析策略足以满足大多数网络要求,您可能不需要自定义策略。但是,当您有特定的网络要求或遇到性能问题时,可以自定义默认网络分析策略。请注意,自定义网络分析策略是一种高级配置,应仅由高级用户或 Cisco 支持人员执行。

Snort 3 的网络分析策略配置是基于 JSON 和 JSO的数据驱动模型。架构基于 OpenAPI 规范,可帮助您了解支持的检查器、设置、设置类型和有效值。Snort 3 检查器是处理数据包的插件(类似于 Snort 2 预处理器)。网络分析策略配置可以 JSON 格式下载。

在 Snort 3 中,检查器和设置列表与 Snort 2 预处理器和设置列表不存在一对一映射。此外, 管理中心 中可用的检查器和设置的数量是 Snort 3 支持的检查器和设置的子集。有关 Snort 3 的详细信息,请参阅https://snort.org/snort3。有关 管理中心 中的可用检查器的详细信息,请参阅https://www.cisco.com/go/snort3-inspectors



  • 管理中心 升级到 7.0 版本时,在升级后,在 Snort 2 版本的网络分析策略中所做的更改不会迁移到 Snort 3。

  • 与入侵策略不同,没有将 Snort 2 网络分析策略设置同步到 Snort 3 的选项。


默认检查器更新

轻量级安全包 (LSP) 更新可能包含新的检查器或对现有检查器配置的整数范围的修改。安装 LSP 后,新的检查器和/或更新的范围将在网络分析策略的 Snort 3 版本中的检查器下供使用。

绑定检查器

绑定检查器定义必须访问和考虑特定检查器时的流程。当流量与绑定程序检查器中定义的条件匹配时,只有该检查器的值/配置才会生效。例如:

对于 imap 检查器,当必须访问时,活页夹定义以下条件。即:

  • 服务等于 imap。

  • 角色均一致。

如果满足这些条件,则使用类型 imap。

单例检查器

单例检查器包含一个实例。这些检查器不支持添加更多实例,例如多例检查器。单例检查器的设置应用于整个流量,而不是特定的流量段。

例如:

{
   "normalizer":{
      "enabled":true,
      "type":"singleton",
      "data":{
         "ip4":{
            "df":true
         }
      }
   }
}

多例检查器

多例检查器包含多个实例,您可以根据需要进行配置。这些检查器支持根据特定条件(例如网络、端口和 VLAN)配置设置。一组受支持的设置称为实例。有一个默认实例,您还可以根据特定条件添加其他实例。如果流量与该条件匹配,则应用该实例中的设置。否则,将应用默认实例中的设置。此外,默认实例的名称与检查器的名称相同。

对于多例检查器,当您上传覆盖的检查器配置时,您还需要为 JSON 文件中的每个实例包含/定义匹配的绑定程序条件(必须访问或使用检查器时的条件),否则上传将导致错误。您还可以创建新实例,但请确保为您创建的每个新实例包含绑定程序条件,以避免错误。

例如:

  • 修改了默认实例的多例检查器。

    {
       "http_inspect":{
          "enabled":true,
          "type":"multiton",
          "instances":[
             {
                "name":"http_inspect",
                "data":{
                   "response_depth":5000
                }
             }
          ]
       }
    }
  • 修改默认实例和默认绑定程序的多例检查器。

    {
       "http_inspect":{
          "enabled":true,
          "type":"multiton",
          "instances":[
             {
                "name":"http_inspect",
                "data":{
                   "response_depth":5000
                }
             }
          ]
       },
       "binder":{
          "type":"binder",
          "enabled":true,
          "rules":[
             {
                "use":{
                   "type":"http_inspect"
                },
                "when":{
                   "role":"any",
                   "ports":"8080",
                   "proto":"tcp",
                   "service":"http"
                }
             }
          ]
       }
    }
  • 多例检查器,其中添加了自定义实例和自定义绑定程序。

    {
       "http_inspect":{
          "enabled":true,
          "type":"multiton",
          "instances":[
             {
                "name":"http_inspect1",
                "data":{
                   "response_depth":5000
                }
             }
          ]
       },
       "binder":{
          "type":"binder",
          "enabled":true,
          "rules":[
             {
                "use":{
                   "type":"http_inspect",
                   "name":"http_inspect1"
                },
                "when":{
                   "role":"any",
                   "ports":"8080",
                   "proto":"tcp",
                   "service":"http"
                }
             }
          ]
       }
    }

通用工业协议安全

通用工业协议 (CIP) 安全是 CIP 的一组扩展,可确保设备的安全运行。它还提供 CIP 网络上不同节点之间的故障安全通信。

CIP 安全协议包括两个主要组成部分:

  • CIP 安全网段 - 用于转发打开消息,为后续安全会话交换安全参数。

  • CIP 安全消息 - 用于交换实际安全信息。

CIP 检测器检测并识别:

  • CIP 即服务和客户端

  • 负载,例如 CIP Read、CIP Admin、CIP Infrastructure 和 CIP Write

    CIP 检查器可以解析 CIP 数据段并检测 Forward Open 请求中的 CIP 安全数据段。

要测试 CIP 安全功能,必须启用 CIP 检测器。请参阅检测和阻止 CIP 数据包中的安全分段

检测和阻止 CIP 数据包中的安全分段

使用案例:要检测和阻止 CIP 安全分段,同时允许其他 CIP 数据包,请执行以下操作:

  • 创建名为 cip_safety的自定义网络分析策略。

  • 在访问控制策略中创建访问控制规则,以阻止 CIP 安全并允许所有其他数据包。

要测试 CIP 安全功能,请在管理中心启用 CIP 检查器并将其分配给访问控制策略。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

点击您创建的网络分析策略 cip_safetySnort 3 版本

步骤 3

检查器下,点击 cip 将其展开。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

步骤 4

在右侧列的 覆盖配置 下,点击 编辑检查器 图标,并将 cip 中的“已启用”字段从 false(默认)更改为 true。

步骤 5

点击确定 (OK)

步骤 6

点击保存 (Save)

步骤 7

要将 cip 检查器分配给访问控制策略,请依次选择 策略 > 访问控制 > 编辑 ,然后从数据包流行末尾的 更多 下拉箭头中选择 高级设置 选项。

步骤 8

点击 网络分析和入侵策略 旁边的 编辑 (编辑图标)

步骤 9

网络分析和入侵策略 窗口中,从 默认网络分析策略 下拉列表中选择您创建的访问控制策略 cip_safety

CIP 检查器现已在管理中心启用,您可以创建自定义访问控制规则来阻止 CIP 安全并允许所有其他 CIP 数据包。

步骤 10

发送包含 CIP 安全数据包流的实时流量后,请转至 连接事件 以验证负载是否为包含此程序中所述检测和阻止使用案例的 CIP 安全数据包日志的预期负载。CIP 被检测为应用协议和客户端(请参阅 应用协议客户端 字段),并且 CIP 安全 显示在 Web 应用 字段下。


网络分析策略映射

对于网络分析策略,Cisco Talos 提供了映射信息,用于为 Snort 3 版本找到对应的 Snort 2 版本的策略。

此映射可确保 Snort 3 版本的策略具有对应的 Snort 2 版本。

查看网络分析策略映射

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

点击NAP 映射 (NAP Mapping)

步骤 3

展开查看映射 (View Mappings) 的箭头。

系统将显示自动映射到 Snort 2 等效策略的 Snort 3 网络分析策略。

步骤 4

点击确定 (OK)


创建网络分析策略

所有 管理中心 现有的网络分析策略均可用于相应的 Snort 2 和 Snort 3 版本。当您创建新的网络分析策略时,会同时创建 Snort 2 版本和 Snort 3 版本。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

点击创建策略 (Create Policy)

步骤 3

输入名称 (Name) 描述 (Description)

步骤 4

选择基本策略 (Base Policy) ,然后点击保存 (Save)


新的网络分析策略使用其对应的 Snort 2 版本Snort 3 版本创建。

修改网络分析策略

您可以修改网络分析策略以更改其名称、说明或基本策略。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

点击编辑 (Edit) 以更改名称、说明、检测模式或基本策略。

注意

 

检测模式弃用: 从管理中心 7.4.0 开始,对于网络分析策略 (NAP), 检测 检查模式已弃用,并将在即将推出的版本中删除。

检测 模式旨在用作测试模式,以便您可以启用检测并查看它们在网络中的行为,然后再将其设置为丢弃流量,即显示将被丢弃的流量。

此行为已得到改进,其中所有检查器丢弃都由规则状态控制,并且您可以设置每个丢弃以生成事件。这样做是为了在配置规则状态以丢弃流量之前对其进行测试。由于我们现在可以对 Snort 3 中的流量丢弃进行精细控制,因此 检测 模式只会增加产品的复杂性,不需要,因此检测模式已弃用。

如果将检测模式下的 NAP 更改为预防,则处理入侵事件流量并具有结果 “会被丢弃”的 NAP 现在将为“已丢弃”,相应的流量将丢弃来自这些事件的流量。这适用于 GID 不是 1 或 3 的规则。GID 1 和 3 是文本/编译规则(通常由 Talos 提供或从您的自定义/导入规则中提供),所有其他 GID 都是异常检测。这些是在网络中触发的比较少见的规则。更改为 预防 模式不太可能对流量产生任何影响。您只需禁用适用于已丢弃流量的入侵规则,并将其设置为仅生成或禁用。

我们建议您选择 预防 作为检测模式,但如果您选择 预防,则无法恢复到 检测 模式。

 

如果编辑网络分析策略名称、说明、基本策略和检测模式,编辑内容将同时应用于 Snort 2 和 Snort 3 版本。如果要更改特定版本的检测模式,可以在相应版本的网络分析策略页面中执行此操作。

步骤 3

点击保存 (Save)


在网络分析策略页面上搜索检查器

在 Snort 3 版本的网络分析策略页面上,您可能需要通过在搜索栏中输入任何相关文本来搜索检查器。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

搜索 (Search) 栏中输入要搜索的检查器名称或任何相关文本。

系统将显示与您搜索的文本匹配的所有检查器。

例如,如果输入 pop,则弹出检查器和活页夹检查器在屏幕上显示为匹配结果。


复制检查器配置

您可以根据自己的要求复制网络分析策略的 Snort 3 版本的检查器配置。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

检查器 下,展开要复制其配置的所需检查器。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

步骤 4

点击复制到剪贴板 (Copy to clipboard) 图标,将检查器配置复制到以下一项或两项的剪贴板。

  • 左列的默认配置

  • 右列的覆盖的配置

步骤 5

将复制的检查器配置粘贴到 JSON 编辑器,以进行您可能需要的任何编辑。


自定义网络分析策略

您可以根据自己的要求自定义 Snort 3 版本的网络分析策略。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

点击 操作 下拉菜单。

系统将显示以下选项:

  • 查看架构

  • 下载方案 / 下载示例文件 / 模板

  • 下载完整配置

  • 下载覆盖配置文件

  • 上传覆盖配置文件

步骤 4

点击查看方案 (View Schema) 可直接在浏览器中打开方案文件。

步骤 5

您可以根据需要来下载方案文件、示例文件 / 模板、完整配置或覆盖配置。

通过这些选项,您可以了解允许的值、范围和模式、现有和默认检查器配置以及覆盖的检查器配置。

  1. 点击 下载方案 以下载架构文件。

    架构文件基于 OpenAPI JSON 规范,用于验证您上传或下载的内容。您可以下载架构文件并使用任何第三方 JSON 编辑器将其打开。架构文件可帮助您确定可以为检查器配置的参数及其相应的允许值、范围和要使用的接受模式。

    例如,对于 arp_spoof_snort 检查器,您可以配置主机。主机包括 macip 地址值。架构文件显示这些值的以下可接受模式。

    • mac模式: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

    • ip模式:^([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}() /[0-9]{1,2}){0,1})$

    您必须根据架构文件中接受的值、范围和模式,才能成功覆盖检查器配置,否则会收到错误消息。

  2. 点击 下载示例文件/模板 以使用包含示例配置的预先存在的模板来帮助您配置检查器。

    您可以参考示例文件中包含的示例配置,并进行您可能需要的任何更改。

  3. 点击 下载完整配置 以将整个检查器配置下载到一个 JSON 文件中。

    您可以下载完整配置来查找所需的信息,而不是单独展开检查器。此文件中提供有关检查器配置的所有信息。

  4. 点击 下载覆盖的配置 以下载已覆盖的检查器配置。

步骤 6

要覆盖现有配置,请按照以下步骤操作。

您可以选择使用以下方式覆盖检查器配置。

  • 直接在 管理中心上对检查器进行内联编辑。请参阅 Cisco Secure Firewall Management Center Snort 3 配置指南网络分析策略入门 一章中的 对检查器进行内联编辑以覆盖配置 主题。
  • 继续按照当前程序使用操作 (Actions) 下拉菜单上传覆盖的配置文件。

如果您选择直接在 管理中心上进行内联编辑,则无需进一步执行当前程序。否则,您必须完全遵循此程序。

  1. 检查器 (Inspectors) 下,展开要覆盖其默认配置的所需检查器。

    默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

    您可能需要通过在搜索栏中输入任何相关文本来搜索检查器。

  2. 点击复制到剪贴板 (Copy to clipboard) 图标,将默认检查器配置复制到剪贴板。

  3. 创建一个 JSON 文件并将默认配置粘贴到其中。

  4. 保留要覆盖的检查器配置,并从 JSON 文件中删除所有其他配置和实例。

    您还可以使用示例文件/模板 (Sample File / Template) 来了解如何覆盖默认配置。此示例文件包含 JSON 片段,用于说明如何为 Snort 3 自定义网络分析策略。

  5. 根据需要对检查器配置进行更改。

    验证更改并确保它们符合架构文件。对于多例检查器,请确保所有实例的绑定器条件都包含在 JSON 文件中。有关详细信息,请参阅 Cisco Secure Firewall Management Center Snort 3 配置指南Snort 3 的自定义网络分析策略创建 主题中的 多例检查器

  6. 如果要复制任何其他默认检查器配置,请将该检查器配置附加到包含覆盖配置的现有文件。

     

    复制的检查器配置必须符合 JSON 标准。

  7. 将覆盖的配置文件保存到您的系统。

步骤 7

操作 下拉餐单,选择上传覆盖配置 以上传包含覆盖配置的 JSON 文件。

小心

 

仅上传您需要的更改。不应上传整个配置,因为它会使覆盖本质上具有粘性,因此,将不会应用对默认配置的任何后续更改作为 LSP 更新的一部分。

您可以拖放文件,也可以点击浏览到系统中保存的包含覆盖检查器配置的 JSON 文件。

  • 合并检查器覆盖 (Merge inspector overrides) - 如果没有通用检查器,上传文件中的内容会与现有配置合并。如果有通用检查器,则上传文件(用于通用检查器)中的内容优先于之前的内容,并将替换这些检查器的先前配置。
  • 替换检查器覆盖 (Replace inspector overrides) - 删除所有之前的覆盖并替换为上传文件中的新内容。

    注意

     

    选择此选项将删除所有以前的覆盖。请在使用此选项覆盖配置之前做出明智的决定。

如果在上传覆盖的检查器时发生任何错误,您会在 上传覆盖的配置文件 弹出窗口中看到错误。您还可以下载存在错误的文件,修复错误并重新上传文件。

步骤 8

上传覆盖的配置文件 弹出窗口中,点击 导入 以上传覆盖的检查器配置。

上传覆盖的检查器配置后,您会在检查器旁边看到一个橙色图标,表示它是一个覆盖的检查器。

此外,检查器下的覆盖配置 (Overridden Configuration) 列会显示覆盖的值。

您还可以使用搜索栏旁边的仅显示覆盖 (Show Overrides Only) 复选框查看所有已覆盖的检查器。

 

确保始终下载覆盖配置,然后打开 JSON 文件并将对检查器配置的任何新更改/覆盖附加到此文件。需要执行此操作,以免丢失旧的覆盖配置。

步骤 9

(可选)在进行任何新的检查器配置更改之前,备份系统上的覆盖配置文件。

提示

 

我们建议您在覆盖检查器配置时不时进行备份。


对检查器进行内联编辑以覆盖配置

对于 Snort 3 版本的网络分析策略,您可以对检查器配置进行内联编辑,以根据您的要求覆盖配置。

或者,您也可以使用操作 (Actions) 下拉菜单上传覆盖的配置文件。有关详细信息,请参阅自定义网络分析策略

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

检查器下,展开要覆盖其默认设置的所需检查器。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

步骤 4

在右侧列的 覆盖配置 下,点击 编辑检查器 (铅笔)图标以更改检查器配置。

系统将显示覆盖配置弹出窗口,您可以在其中进行所需的编辑。

 
  • 确保仅保留要覆盖的设置。如果保留的某个设置具有相同值,该字段将变为粘滞状态,这意味着如果将来 Talos 团队更改该设置,系统将保留当前值。

  • 如果要添加或删除任何自定义实例,请确保同时在绑定程序检查器中为该实例添加或删除绑定程序规则。

步骤 5

点击确定 (OK)

如果根据 JSON 标准存在任何错误,则会显示错误消息。

步骤 6

点击 Save 保存所做的更改。

如果更改符合 OpenAPI 架构规范,则 管理中心 允许您保存配置,否则,系统将显示保存覆盖配置时出错 (Error saving overridden configuration) 的弹出窗口。您还可以下载包含错误的文件。


在内联编辑期间恢复未保存的更改

进行内联编辑以覆盖检查器 ,您可以恢复任何未保存的更改。请注意,此操作会将所有未保存的更改恢复为最近保存的值,但不会将配置恢复为检查器的默认配置。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

检查器下,展开要恢复其未保存更改的所需检查器。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

步骤 4

在右侧列的覆盖配置 (Overridden Configuration) 下,点击叉号 恢复图标 图标可恢复检查器的任何未保存的更改。

或者,点击取消 (Cancel) 放弃更改。

如果您对检查器配置没有任何未保存的更改,则此选项不可见。


查看具有覆盖的检查器列表

您可以查看所有覆盖的检查器的列表。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

选中搜索栏旁的 仅显示覆盖 复选框以查看已覆盖检查器的列表。

所有被覆盖的检查器都在其名称旁边显示一个橙色图标,以帮助您识别它们。


将覆盖的配置恢复为默认配置

您可以恢复为覆盖检查器的默认配置所做的任何更改。此操作会将覆盖的配置恢复为检查器的默认配置。

过程


步骤 1

转至策略 (Policies) > 入侵 (Intrusion) > 网络分析策略 (Network Analysis Policies)

步骤 2

转至网络分析策略的 Snort 3 版本

步骤 3

检查器 下,展开要恢复覆盖配置所需的检查器。

被覆盖的检查器在其名称旁边显示为橙色图标。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。在右侧列的覆盖配置 (Overridden Configuration) 下,点击恢复默认配置 (Revert to default configuration) (后退箭头)图标,将检查器的覆盖配置恢复为默认配置。

如果未对检查器的默认配置进行任何更改,则此选项处于禁用状态。

步骤 4

点击恢复 (Revert) 以确认决策。

步骤 5

点击 Save 保存所做的更改。

如果您不想保存更改,可以点击取消 (Cancel)叉号 恢复图标 图标。


验证 Snort 3 策略

要验证 Snort 3 策略,以下是用户可以记录的基本信息列表:
  • 当前 管理中心 的版本可以管理多个 威胁防御 版本。

  • 当前版本的 管理中心 支持不适用于以前版本的 威胁防御 设备的 NAP 配置。

  • 当前 NAP 策略和验证将基于当前版本支持工作。

  • 更改可能包括对以前版本的 威胁防御无效的内容。

  • 如果策略配置更改是当前版本的有效配置,并且使用当前 Snort 3 二进制文件和 NAP 方案执行,则接受策略配置更改。

  • 对于以前的版本 威胁防御,在部署期间使用该特定版本的 NAP 架构和 Snort 3 二进制文件执行验证。如果有任何配置不适用于给定版本,系统会向用户提供信息或警告,告知我们不会部署给定版本不支持的配置,并将部署其余配置。

在此程序中,当我们将 NAP 策略关联到访问控制策略并将其部署在设备上时,例如速率过滤器配置等任何检查器都将应用于验证 Snort 3 策略。

过程


步骤 1

覆盖 NAP 策略配置的步骤: 在网络分析策略的 Snort 3 版本 中的 检查器 下,展开要覆盖其默认设置的所需检查器。

默认配置显示在左侧列中,被覆盖的配置显示在检查器下的右侧列中。

步骤 2

在右侧列的 覆盖配置 下,点击 编辑检查器 (铅笔)图标以更改任何检查器,例如 rate_filter。

系统将显示覆盖配置弹出窗口,您可以在其中对 rate_filter 检查器进行所需的编辑。

步骤 3

点击确定 (OK)

步骤 4

点击 Save 保存所做的更改。

或者,您也可以使用操作 (Actions) 下拉菜单上传覆盖的配置文件。

步骤 5

点击网络分析策略的 Snort 3 版本 中的 操作 下拉菜单。

步骤 6

上传 下,您可以点击 覆盖配置 以上传包含已覆盖配置的 JSON 文件。

小心

 

仅上传您需要的更改。不应上传整个配置,因为它会使覆盖本质上具有粘性,因此,将不会应用对默认配置的任何后续更改作为 LSP 更新的一部分。

您可以拖放文件,也可以点击浏览到系统中保存的包含覆盖检查器配置的 JSON 文件。

  • 合并检查器覆盖 (Merge inspector overrides) - 如果没有通用检查器,上传文件中的内容会与现有配置合并。如果有通用检查器,则上传文件(用于通用检查器)中的内容优先于之前的内容,并将替换这些检查器的先前配置。
  • 替换检查器覆盖 (Replace inspector overrides) - 删除所有之前的覆盖并替换为上传文件中的新内容。

    注意

     

    由于选择此选项会删除之前的所有覆盖,因此请在使用此选项覆盖配置之前做出明智的决定。

如果在上传覆盖的检查器时发生任何错误,您会在上传覆盖的配置文件 (Upload Overridden Configuration File) 弹出窗口中看到错误。您还可以下载存在错误的文件,然后修复错误并重新上传文件。

步骤 7

将 NAP 策略关联到访问控制策略的步骤: 在访问控制策略编辑器中,点击 高级,然后点击网络分析和入侵策略旁边的 编辑

步骤 8

Default Network Analysis Policy 下拉列表中,选择一条默认网络分析策略。

如果选择用户创建的策略,则可以点击 编辑 在新窗口中编辑该策略。无法编辑系统提供的策略。

步骤 9

点击确定 (OK)

步骤 10

点击保存 (Save) 保存策略。

步骤 11

或者,在访问控制策略编辑器中,点击 高级,然后点击网络分析和入侵策略旁边的 编辑

步骤 12

点击添加规则 (Add Rule)

步骤 13

通过点击与要添加的条件来配置规则条件。

步骤 14

点击 网络分析 ,并选择要用于预处理匹配此规则的流量的 网络分析策略

步骤 15

点击添加 (Add)

步骤 16

部署:管理中心 菜单栏中,点击 部署 并选择 部署

步骤 17

识别并选择要部署配置更改的设备。

  • 搜索 - 在搜索框中搜索设备名称、类型、域、组或状态。
  • 展开-点击 展开箭头 以查看要部署的设备特定的配置更改。

    选中设备复选框后,该设备下列出的设备的所有更改都会推送到部署中。但是,您可以使用 策略选择 来选择部署个别策略或配置,而保留其余的更改不予部署。

    (可选)使用 显示或隐藏策略 可选择性地查看或隐藏关联的未修改策略。

步骤 18

点击部署 (Deploy)

步骤 19

如果系统在要部署的更改中发现错误或警告,则会在验证消息窗口中显示它们。要查看完整详细信息,请点击警告或错误前的箭头图标。

 

显示警告,Snort 3 网络分析策略包含对于此 威胁防御 版本无效的检查器或属性,部署时将跳过以下无效设置:无效检查器: [“rate_filter”] 仅针对 7.1 版本或更低版本。


自定义网络分析策略配置示例

此示例文件包含 JSON 片段,用于说明如何为 Snort 3 自定义网络分析策略。您可以选择使用以下方式覆盖检查器配置:

在选择任何这些选项之前,请查看以下所有详细信息和示例,这些详细信息和示例将帮助您成功定义网络分析策略覆盖。您必须阅读并理解此处介绍的各种场景的示例,以避免任何风险和错误。

如果您选择从操作 (Actions) 下拉菜单覆盖检查器配置,则需要为网络分析策略覆盖构建一个 JSON 文件并上传该文件。

要覆盖网络分析策略中的检查器配置,您应只上传您需要的更改。不应上传整个配置,因为它会使覆盖本质上具有粘性,因此,将不会应用对默认值或配置的任何后续更改作为 LSP 更新的一部分。

以下是各种场景的示例:

当基本策略中的默认状态为“禁用”时启用单例检查器

{
  "rate_filter": {
    "enabled": true,
    "type": "singleton",
    "data": []
  }
}

当基本策略中的默认状态为“已启用”时禁用单例检查器

{
  "rate_filter": {
    "enabled": false,
    "type": "singleton",
    "data": []
  }
}

当基本策略中的默认状态为“禁用”时启用多例检查器

{
  "ssh": {
    "enabled": true,
    "type": "multiton",
    "instances": []
  }  
}

基本策略中的“默认状态”为“已启用”时禁用多例检查器

{
  "ssh": {
    "enabled": false,
    "type": "multiton",
    "instances": []
  },
  "iec104": {
    "type": "multiton",
    "enabled": false,
    "instances": []
  }
}

覆盖单例检查器特定设置的默认值

{
  "normalizer": {
    "enabled": true,
    "type": "singleton",
    "data": {
      "tcp": {
        "block": true
      },
      "ip6": true
    }
  }
}

覆盖多例检查器中默认实例的特定设置(其中实例名称与检查器类型匹配)

{
  "http_inspect": {
    "enabled": true,
    "type": "multiton",
    "instances": [
      {
        "data": {
          "unzip": false
        },
        "name": "http_inspect"
      }
    ]
  }
}

为具有所需更改的默认实例添加绑定程序规则



无法编辑默认绑定程序规则,它们始终附加在末尾。


{
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "use": {
          "type": "http_inspect"
        },
        "when": {
          "role": "server",
          "service": "http",
          "dst_nets": "10.1.1.0/24"
        }
      }
    ]
  }
}

添加新的自定义实例



必须在绑定程序检查器中定义相应的绑定程序规则条目。


{
  "telnet": {
    "enabled": true,
    "type": "multiton",
    "instances": [
      {
        "name": "telnet_my_instance",
        "data": {
          "encrypted_traffic": true
        }
      }
    ]
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_my_instance"
        }
      }
    ]
  }
}

在单个 JSON 覆盖中覆盖单个实例、多例默认实例和创建新的多例实例

在单个 JSON 覆盖中显示以下内容的示例:

  • 覆盖单例实例(normalizer 检查器)

  • 覆盖多例默认实例 (http_inspect 检查器)

  • 创建新的多例实例(Telnet 检查器)

{
  "normalizer": {
    "enabled": true,
    "type": "singleton",
    "data": {
      "tcp": {
        "block": true
      },
      "ip6": true
    }
  },
  "http_inspect": {
    "enabled": true,
    "type": "multiton",
    "instances": [
      {
        "data": {
          "unzip": false,
          "xff_headers": "x-forwarded-for true-client-ip x-another-forwarding-header"
        },
        "name": "http_inspect"
      }
    ]
  },
  "telnet": {
    "enabled": true,
    "type": "multiton",
    "instances": [
      {
        "name": "telnet_my_instance",
        "data": {
          "encrypted_traffic": true
        }
      }
    ]
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_my_instance"
        }
      },
      {
        "use": {
          "type": "http_inspect"
        },
        "when": {
          "role": "server",
          "service": "http",
          "dst_nets": "10.1.1.0/24"
        }
      }
    ]
  }
}


您不需要为绑定程序规则中的默认实例提供 name 属性。


配置 arp_spoof

配置 arp_spoof 的示例:

arp_spoof 检查器没有任何属性的任何默认配置。这演示了可以提供覆盖的情况。

{
  "arp_spoof": {
    "type": "singleton",
    "data": {
      "hosts": [
        {
          "ip": "1.1.1.1",
          "mac": "ff:0f:f1:0f:0f:ff"
        },
        {
          "ip": "2.2.2.2",
          "mac": "ff:0f:f2:0f:0f:ff"
        }
      ]
    },
    "enabled": true
  }
}

配置 rate_filter

{
  "rate_filter": {
    "data": [
      {
        "apply_to": "[10.1.2.100, 10.1.2.101]",
        "count": 5,
        "gid": 135,
        "new_action": "alert",
        "seconds": 1,
        "sid": 1,
        "timeout": 5,
        "track": "by_src"
      }
    ],
    "enabled": true,
    "type": "singleton"
  }
}

使用多层次结构网络分析策略时配置绑定器规则

此示例说明在子策略中添加新的自定义实例以及应如何编写绑定程序规则。绑定器规则定义为一个列表,因此,必须选择父策略中定义的规则并在此基础上构建新规则,因为规则不会自动合并。子策略中可用的绑定程序规则是整体真实性的来源。

威胁防御上,默认 Cisco Talos 策略规则将附加到这些用户定义的覆盖上。

父策略:

我们已通过名称 telnet_parent_instance 和相应的绑定程序规则定义了一个自定义实例。

{
  "telnet": {
    "type": "multiton",
    "instances": [
      {
        "data": {
          "normalize": true,
          "encrypted_traffic": true
        },
        "name": "telnet_parent_instance"
      }
    ],
    "enabled": true
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_parent_instance"
        }
      }
    ]
  }
}
子策略:

此网络分析策略将上述策略作为其基本策略。我们定义了一个名为 telnet_child_instance 的自定义实例,并为此实例定义了绑定程序规则。需要在此处复制来自父策略的绑定程序规则,然后可以根据规则的性质将子策略绑定程序规则附加或附加在其之上。

{
  "telnet": {
    "type": "multiton",
    "instances": [
      {
        "data": {
          "normalize": true,
          "encrypted_traffic": false
        },
        "name": "telnet_child_instance"
      }
    ],
    "enabled": true
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet",
          "nets": "10.2.2.0/24"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_child_instance"
        }
      },
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_parent_instance"
        }
      }
    ]
  }
}

常规配置列表检查器属性

更改列表类型的任何属性的覆盖时,必须传递完整内容而不是部分覆盖。这意味着,如果基本策略属性定义为:

{
  "list-attribute": [
    {
      "entry1": {
        "key1": "value1"
      }
    },
    {
      "entry2": {
        "key2": "value2"
      }
    }
  ]
}

如果要将 value1 修改为 value1-new,则覆盖负载必须如下所示:

正确方法

{
  "list-attribute": [
    {
      "entry1": {
        "key1": "value1-new"
      }
    },
    {
      "entry2": {
        "key2": "value2"
      }
    }
  ]
}

不正确方法

{
  "list-attribute": [
    {
      "entry1": {
        "key1": "value1-new"
      }
    }
  ]
}

您可以通过获取 smtp 检查器中 alt_max_command_line_len 属性的修整值来了解此配置。假设 smtp 检查器的默认(基本)策略配置如下:

{
  "smtp": {
    "type": "multiton",
    "instances": [
      {
        "name": "smtp",
        "data": {
          "decompress_zip": false,
          "normalize_cmds": "ATRN AUTH BDAT CHUNKING DATA DEBUG EHLO 
           EMAL ESAM ESND ESOM ETRN EVFY EXPN HELO HELP IDENT MAIL 
           NOOP ONEX QUEU QUIT RCPT RSET SAML SEND SOML STARTTLS TICK 
           TIME TURN TURNME VERB VRFY X-ADAT XADR XAUTH XCIR X-DRCP X-
           ERCP XEXCH50 X-EXCH50 X-EXPS XGEN XLICENSE X-LINK2STATE XQUE 
           XSTA XTRN XUSR",
          "ignore_data": false,
          "max_command_line_len": 512,
          "max_header_line_len": 1000,
          "log_rcptto": false,
          "decompress_swf": false,
          "max_response_line_len": 512,
          "b64_decode_depth": -1,
          "max_auth_command_line_len": 1000,
          "log_email_hdrs": false,
          "xlink2state": "alert",
          "binary_data_cmds": "BDAT XEXCH50",
          "auth_cmds": "AUTH XAUTH X-EXPS",
          "log_filename": false,
          "uu_decode_depth": -1,
          "ignore_tls_data": false,
          "data_cmds": "DATA",
          "bitenc_decode_depth": -1,
          "alt_max_command_line_len": [
            {
              "length": 255,
              "command": "ATRN"
            },
            {
              "command": "AUTH",
              "length": 246
            },
            {
              "length": 255,
              "command": "BDAT"
            },
            {
              "length": 246,
              "command": "DATA"
            }
          ],
          "log_mailfrom": false,
          "decompress_pdf": false,
          "normalize": "none",
          "email_hdrs_log_depth": 1464,
          "valid_cmds": "ATRN AUTH BDAT CHUNKING DATA DEBUG EHLO 
           EMAL ESAM ESND ESOM ETRN EVFY EXPN HELO HELP IDENT MAIL 
           NOOP ONEX QUEU QUIT RCPT RSET SAML SEND SOML STARTTLS TICK 
           TIME TURN TURNME VERB VRFY X-ADAT XADR XAUTH XCIR X-DRCP X-
           ERCP XEXCH50 X-EXCH50 X-EXPS XGEN XLICENSE X-LINK2STATE XQUE 
           XSTA XTRN XUSR",
          "qp_decode_depth": -1
        }
      }
    ],
    "enabled": true
  }
}
现在,如果要向 alt_max_command_line_len 列表添加另外两个对象:
{
    "length": 246,
    "command": "XEXCH50"
},
{
    "length": 246,
    "command": "X-EXPS"
}
然后,自定义网络分析策略覆盖 JSON 如下所示:
{
  "smtp": {
    "type": "multiton",
    "instances": [
      {
        "name": "smtp",
        "data": {
          "alt_max_command_line_len": [
            {
              "length": 255,
              "command": "ATRN"
            },
            {
              "command": "AUTH",
              "length": 246
            },
            {
              "length": 255,
              "command": "BDAT"
            },
            {
              "length": 246,
              "command": "DATA"
            },
            {
              "length": 246,
              "command": "XEXCH50"
            },
            {
              "length": 246,
              "command": "X-EXPS"
            }
          ]
        }
      }
    ],
    "enabled": true
  }
}

在多例检查器中使用多层次结构网络分析策略时配置覆盖

此示例说明如何覆盖子策略中的属性,以及如何在任何实例的子策略中使用合并的配置。子策略中定义的任何覆盖都将与父策略合并。因此,如果属性 1 和属性 2 在父策略中被覆盖,而属性 2 和属性 3 在子策略中被覆盖,则合并的配置适用于子策略。这意味着将在设备上配置属性 1(在父策略中定义)、属性 2(在子策略中定义)和属性 3(在子策略中定义)。

父策略:

在这里,我们通过名称 telnet_parent_instance 定义了一个自定义实例,并覆盖了自定义实例中的 2 个属性,即 normalizeencrypted_traffic

{
  "telnet": {
    "type": "multiton",
    "instances": [
      {
        "data": {
          "normalize": true,
          "encrypted_traffic": false
        },
        "name": "telnet_parent_instance"
      }
    ],
    "enabled": true
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_parent_instance"
        }
      }
    ]
  }
}
子策略:

此网络分析策略将上述策略作为其基本策略。我们覆盖了父策略中的 encrypted_traffic 属性,还覆盖了新属性 ayt_attack_thresh

{
  "telnet": {
    "type": "multiton",
    "instances": [
      {
        "data": {
          "encrypted_traffic": true,
          "ayt_attack_thresh": 1
        },
        "name": "telnet_parent_instance"
      }
    ],
    "enabled": true
  }
}

使用上述策略 JSON 时,当您部署网络分析策略时,将在设备上配置以下合并 JSON。

{
  "telnet": {
    "type": "multiton",
    "instances": [
      {
        "data": {
          "normalize": true,
          "encrypted_traffic": true,
          "ayt_attack_thresh": 1
        },
        "name": "telnet_parent_instance"
      }
    ],
    "enabled": true
  },
  "binder": {
    "enabled": true,
    "type": "binder",
    "rules": [
      {
        "when": {
          "role": "any",
          "service": "telnet"
        },
        "use": {
          "type": "telnet",
          "name": "telnet_parent_instance"
        }
      }
    ]
  }
}

此示例说明自定义网络分析策略的详细信息。默认实例中也会出现相同的行为。此外,还将对单例检查器执行类似的合并。

删除网络分析策略的所有检查器覆盖:

每当要删除特定网络分析策略的所有覆盖时,都可以上传空 JSON。上传覆盖时,请选择替换检查器覆盖 (Replace inspector overrides)选项。

{ 
}

网络分析策略设置和缓存的更改

当您创建新的网络分析策略时,它具有与其基本策略相同的设置。

当您定制网络分析策略时,特别是在禁用检查器时,请记住某些检查器和入侵规则要求首先以某种方式对流量进行解码或预处理。如果您禁用一个必需的检查其,虽然该检查器在网络分析策略网络界面中保持禁用,但系统仍自动通过其当前设置使用它。



由于预处理和入侵检查密切相关,因此用于检查单个数据包的网络分析和入侵策略必须相互补充。定制预处理(特别是使用多个自定义网络分析策略)是一个高级任务。


系统为每个用户缓存一条网络分析策略。在编辑网络分析策略时,如果您选择任何菜单或指向另一页的其他路径,即使您离开此页,更改也会保留在系统缓存中。