绑定检查器

绑定程序检查器概述

类型

检查器 (被动)

使用方式

检测

实例类型

单例对象

所需其他检查器

取决于已建立的绑定

已启用

true

每个网络分析策略 (NAP) 都有一个 绑定程序 检查器。绑定程序 确定何时需要使用特定服务检查器来检查流量。绑定程序 检查器中的配置包括端口、主机、CIDR 以及定义相同网络分析策略中的另一个检查器何时需要检查流量的服务。当 绑定 程序规则与新流匹配时,目标检查器将绑定到该流。

绑定程序 检查器可以与自动检测 向导 配合使用,执行与端口无关的服务配置以及恶意软件命令和控制信道的检测。有关详细信息,请参阅Snort 3 中的协议和服务标识

在会话开始时评估绑定,如果在会话中识别到适当的服务,则会再次评估绑定。绑定是按从上到下的顺序评估的使用时间规则列表。Snort 会使用第一个匹配的网络和服务配置来检查流量。

示例

例如,如果要配置 NAP 以检查 CIP 流量:

  • 在 NAP 的 绑定程序 检查器中,使用要检查的流量的正确端口、角色和协议信息更新 "type":"cip" 部分。

  • cip 检查器中查看同一 NAP 的默认值,并进行检查所需的任何调整以检查 CIP 流量。

以下是 cip 配置和绑定的示例。此示例使用 绑定程序检查器参数中所述的选项。

     {
        "use": {
          "type":"cip"
        },
        "when": {
          "proto":"udp",
          "ports":"22222 33333",
          "role":"server"
        }
      },
      {
        "use": {
          "type":"cip"
        },
        "when": {
          "role":"server",
          "ports":"44818",
          "proto":"tcp"
        }
      },

自动检测无端口配置的服务

自动检测 向导 支持与端口无关的服务配置以及恶意软件命令和控制信道的检测。当流量到达时, 绑定程序 检查器会首先将自动检测 向导 附加到流,然后检查初始负载以确定流量正在使用的服务。例如, GET 将表示 HTTP, HELO 将表示 SMTP。确定服务后,Snort 会将相应的服务检查器绑定到流,并从流中分离自动检测 向导



您不能通过 Cisco Secure Firewall Management Center Web 接口配置自动检测 向导


如果规则引擎和自动检测 向导 无法理解和识别流量,则在 绑定程序 检查器中配置端口不会强制执行检测。

自动检测和绑定程序配置

绑定程序 检查器按从上到下的顺序匹配入侵规则,并应用第一条规则来匹配流量。如果尚未为流中检测到的服务配置 绑定程序 检查器,则自动检测向导仍可以将流绑定到相关检查器。例如:

  • 如果负载是 GET ,并且自动检测向导将流量类型识别为 HTTP,则 绑定程序 检查器会将 HTTP 检查器绑定到该流。

  • 如果无法识别流量类型,规则引擎将执行非特定于协议的检测。

如果端口配置不正确, 绑定程序 检查器无法自动检测该流的服务,也无法向其绑定检查器。例如,如果将端口 88 配置为绑定程序中的 HTTP 端口,则 绑定程序 检查器会将 HTTP 检查器绑定到该端口上的任意数据流。但是,如果流不是 HTTP,则规则引擎不会将其作为 HTTP 进行检查。相反,侦查和检测将超时。

自动检测以及网络分析策略中检查器的启用或禁用

自动检测的行为会发生变化,具体取决于在网络分析策略中启用还是禁用目标检查器。如果在网络分析策略中启用了目标检查器,则自动检测将按预期工作。

如果在网络分析策略中禁用目标检查器,通常情况下,自动检测仍会将流检查器(例如流 TCP 或流 UDP)绑定到流。但是,规则引擎不执行服务检测或检测。对于 TCP 流,流 TCP 检查器会执行重组。

配置绑定程序检查器的最佳实践

配置绑定程序检查器时,请考虑以下最佳实践:

  • 除非检查器需要,否则不要在绑定程序检查器中配置端口。如果规则引擎可以自动检测流量,则端口配置不会提高效率。但是,端口配置不正确可能会导致无法检测规避。

  • 仅为一个检查器配置一个端口。如果同一个端口在绑定器中为不同的协议和检查器配置两次,它将自动触发第一个检查器。

  • 如果在默认 绑定程序 检查器配置中看不到某个服务检查器的配置,请将其添加到 绑定程序 检查器。例如,如果要使用 cip 检查器,请将 cip 检查器的 usewhen 选项添加到绑定程序。

  • 对于流 TCP 检查器,将网络配置为自定义绑定操作系统配置。网络配置适用于所有端口。

  • 对于服务检查器,如果绑定程序可以自动检测流中的协议,请避免硬端口绑定。如果协议不可检测,则硬端口绑定不能确保进行检测和检查。

需要端口配置的检查器

由于自动检测不适用于相关协议,因此在绑定程序检查器中为以下检查器配置端口:

  • cip

  • gtp_inspect

  • iec104

  • modbus

  • s7commplus

不需要端口配置的检查器

请勿在绑定程序检查器中为以下检查器配置端口,因为自动检测对相关协议有效:

  • arp_spoof

  • dce_smb

  • dce_tcp

  • dnp3

  • ftp_client

  • ftp_server

  • http_inspect

  • imap

  • normalizer

  • 弹出

  • port_scan

  • sip

  • smtp

  • ssh

  • stream_icmp

  • stream_ip

  • stream_tcp

  • stream_udp

  • telnet

绑定程序检查器参数

绑定程序

绑定程序包括一组定义为 whenuse 对象对的规则。

类型: 数组

示例:

{
    binder: {
        rules: [
            {
                "when": {
                    ...
                },
                "use": {
                    ...
                 }
            },
            {
                "when": {
                    ...
                },
                "use": {
                    ...
                }
            }
        ]
    }
}

binder[].use.type

指定当 when 参数中的条件匹配时要绑定到数据流的检查器。例如,要检测 CIP 流量,请添加 use.type 值为 cip

类型: 字符串

有效值: 本文档中描述的任何 Snort 3 检查器的名称。

默认值:绑定程序 检查器为每个支持的检查器包含一个 use.type 参数。

binder[].when.proto

指定流量必须匹配的协议,以便将数据流绑定到 use.type中指定的检查器。例如,如果网络分析策略配置为检查 TCP 流量,则 绑定程序 检查器必须将此参数设置为 tcp

类型: enum

有效值: anyipicmptcpudpuserfile

默认值:绑定程序 检查器为每个协议包含一个 when.proto 参数。

binder[].when.ports

指定流量必须匹配的端口,以便将数据流绑定到 use.type中指定的检查器。例如,要检测 TCP 端口 80 上的流量,请将 when.proto 设置为 tcp ,将 when.ports 设置为 80

指定一个或多个以十进制或十六进制整数表示的端口列表。使用空格分隔多个端口并用双引号将列表括起来。

类型: 字符串

有效范围: -165535

默认值: 65535 (此值可能因 when.proto的值而异。)

binder[].when.role

指定流量必须匹配的角色,以便将流绑定到 use.type中指定的检查器。

类型: enum

有效值: clientserverany

默认值: any

指定流量必须匹配的服务,才能将流绑定到 use.type中指定的检查器。

类型: 字符串

有效值: 可能封装传入数据的服务的名称,例如: netbios-ssndcerpc

默认值: None

绑定程序检查器规则

绑定程序 检查器没有任何关联的规则。

绑定程序检查器入侵规则选项

绑定程序 检查器没有任何入侵规则选项。