本页内容
IDP 策略的攻击对象和对象组
本主题介绍有关 IDP 攻击对象和组的详细信息。它解释了如何创建、修改和使用攻击对象和组来保护网络免受各种威胁和漏洞的侵害。这确保了强大的安全措施到位。
攻击对象、应用签名对象和服务对象用于定义 IDP 策略规则。作为对新漏洞的响应,瞻博网络会定期在瞻博网络网站上提供包含攻击数据库更新的文件。您可以下载此文件来保护您的网络免受新威胁的侵害。这些攻击对象和组旨在检测网络流量中的已知攻击模式和协议异常。您可以在 IDP 策略规则中将攻击对象和组配置为匹配条件。
有关更多信息,请参阅以下主题:
了解我们解决已知和未知漏洞的方法
本主题包含以下部分:
已知漏洞
已知漏洞是指互联网安全社区中记录的漏洞。互联网安全社区由多个安全组织、安全分析师和安全论坛组成。安全社区不断发现和分析新的攻击,并通过互联网交换这些信息。通过这种方式,他们可以快速定位、识别并真正了解攻击。
一些安全公告包含实际的攻击代码。您可以使用攻击信息和攻击代码来捕获数据包信息和服务上下文。您可以使用此信息创建自定义签名攻击对象。
遗憾的是,大多数公告不会在攻击描述中发布攻击代码。如果您无法获取攻击代码,请仔细阅读公告并尝试重建攻击数据包的基础知识。
请记住隔离从未知来源获取的代码。
以下组织活跃于安全社区中,是查找攻击信息的良好资源:
NVD - 国家漏洞数据库 (http://nvd.nist.gov)。使用安全内容自动化协议 (SCAP) 表示的美国政府漏洞管理数据存储库。
SANS - 系统管理员、审计、网络、安全机构 (www.sans.org)。提供安全警报的信息安全研究、认证和教育组织。还主持 http://www.incidents.org 的互联网风暴中心 (ISC)。
CVE - 通用漏洞披露 (http://cve.mitre.org)。漏洞和其他信息安全暴露的标准化列表。
BugTraq (http://securityfocus.com/archive/1)。由 Security Focus 托管的主持邮件列表,用于讨论和宣布计算机安全漏洞。
CERT 协调中心 (http://www.cert.org)。联邦政府资助的安全警报组织,负责提供安全建议。
数据包风暴安全 (http://packetstormsecurity.nl)。一个由安全专业人员组成的非营利组织,通过安全新闻、公告、论坛和攻击代码提供安全信息。
Metasploit (http://www.metasploit.com)。Metasploit 为执行渗透测试、IDS 签名开发和漏洞利用研究提供了有用的信息。
FrSIRT - 法国安全事件响应团队 (http://www.frsirt.com)。FrSIRT是一家独立的安全研究机构,提供安全咨询以及实时漏洞警报和通知服务。
ISS - 互联网安全系统 (http://www.iss.net)。一家提供警报和互联网威胁级别的互联网安全公司。
未知漏洞
未知漏洞是指互联网安全社区公告中尚未记录的漏洞。在这些情况下,在生产环境中生成的 IDP 系列探查器、防火墙或 IDP 安全事件日志会提醒您注意可疑活动和异常流量。在生产环境中,您将使用数据包日志记录工具捕获数据包和服务上下文信息,以便以后在实验室中进行分析和试验。
测试自定义攻击对象
我们建议使用以下工作流来测试自定义攻击对象。请注意,以下过程包含常规步骤,适用于熟悉这些任务的专家用户。
要测试自定义攻击对象,请执行以下作:
- 创建新的安全策略和新的 IDP 规则库规则,其中仅包含要测试的自定义攻击对象。启用日志记录和数据包日志记录。
- 将策略推送到 IDP 系列实验室设备。
- 从攻击者计算机,重现针对受害者计算机的攻击。
- 使用 Security Director 日志查看器查看流量是否按预期生成日志。
如果测试失败,请查看攻击公告、协议 RFC 以及攻击代码或数据包捕获,以确定可帮助您微调设置的其他信息。需要调整的最常见问题是 DFA 表达式的语法。
创建签名攻击对象
签名攻击对象是一种您希望系统检测到的模式。使用 DFA 表达式来表示模式。提供了可以设置的所有其他签名属性(例如服务或协议上下文、方向和其他约束),以便优化系统在检测模式和消除误报方面的性能。通常,您希望调整签名攻击对象的设置,以便系统在可能发生的每个上下文中查找它,而不是在其他上下文中查找它。
要配置签名攻击对象,请执行以下作:
了解预定义的 IDP 攻击对象和对象组
入侵检测和防御 (IDP) 安全包包含预定义的 IDP 攻击对象和 IDP 攻击对象组的数据库,您可以在 IDP 策略中使用这些数据库将流量与已知和未知攻击进行匹配。瞻博网络会定期更新预定义的攻击对象和组,其中包含新发现的攻击模式。
对攻击对象数据库的更新可能包括:
针对现有攻击对象的新描述或严重性
新的攻击对象
删除过时的攻击对象
本主题包含以下部分:
预定义的攻击对象
预定义的攻击对象按字母顺序列出。这些攻击对象具有唯一的名称,可帮助您识别攻击。名称的第一部分表示攻击对象所属的组。例如:
FTP:USER:ROOT
- 属于FTP:USER
组。它会检测使用该root
帐户登录 FTP 服务器的尝试。HTTP:HOTMAIL:FILE-UPLOAD
- 属于HTTP:HOTMAIL
组。它检测附加到通过基于 Web 的电子邮件服务Hotmail
发送的电子邮件的文件。
预定义的攻击对象组
预定义的攻击组列表显示下述类别中的攻击对象。此列表中还提供了一组瞻博网络认为是严重威胁的推荐攻击对象。推荐的攻击对象分为以下几类:
攻击对象组 |
描述 |
---|---|
攻击类型 |
按类型(异常或签名)对攻击对象进行分组。在每种类型中,攻击对象按严重性分组。 |
类别 |
按预定义的类别对攻击对象进行分组。在每个类别中,攻击对象按严重性分组。 |
操作系统 |
按其适用的作系统对攻击对象进行组:BSD、Linux、Solaris 或 Windows。在每个作系统中,攻击对象按服务和严重程度分组。 |
严厉 |
按分配给攻击的严重性对攻击对象进行分组。IDP 有五个严重级别:严重、主要、次要、警告、信息。在每个严重性中,攻击对象按类别分组。 |
Web 服务 |
通过常见的 Web 服务对攻击对象进行组。这些服务按严重性级别分组:警告、严重、主要、次要、信息。 |
杂项 |
按性能级别对攻击对象进行分组。在一定程度上影响 IDP 性能的攻击对象归入此类别。 |
响应 |
在从服务器流向客户端方向的流量中对对象进行分组攻击。 |
了解自定义攻击对象
您可以创建自定义攻击对象来检测新的攻击,也可以自定义预定义的攻击对象来满足您网络的独特需求。
要配置自定义攻击对象,请为其指定唯一名称,然后指定其他信息(如一般描述和关键字),以便您更轻松地查找和维护攻击对象。
攻击对象定义中的某些属性对于所有类型的攻击都是通用的,例如攻击名称、描述、严重性级别、服务或应用程序绑定、时间绑定、建议作以及协议或端口绑定。某些字段特定于攻击类型,并且仅可用于该特定攻击定义。
IDP 功能默认处于启用状态,无需许可证。即使设备上未安装有效的许可证和签名数据库,也可以配置和安装 IDP 策略中的自定义攻击和自定义攻击组。
本主题包含以下部分:
攻击名称
指定对象的字母数字名称。您可能希望在攻击名称中包含攻击使用的协议。
从 Junos OS 15.1X49-D140 版开始,自定义攻击对象名称允许的最大字符数为 60。您可以使用 set security idp custom-attack
命令验证语句。
严厉
指定对您的网络进行攻击的残酷程度。严重性类别,按残酷程度增加的顺序,是信息、警告、次要、主要、严重。关键攻击是最危险的,通常这些攻击会试图使您的服务器崩溃或获得对网络的控制权。信息攻击的危险性最低,通常由网络管理员用来发现其自身安全系统中的漏洞。
服务和应用程序绑定
“服务或应用程序绑定”字段指定攻击用来进入网络的服务。
在自定义攻击中指定服务或协议绑定。如果同时指定两者,则服务绑定优先。
any
- 如果不确定服务是否正确,并希望匹配所有服务中的签名,请指定any
。由于某些攻击使用多个服务来攻击您的网络,因此无论攻击选择哪种服务进行连接,您都可能需要选择Any
服务绑定来检测攻击。service
- 大多数攻击使用特定服务来攻击您的网络。可以选择用于实施攻击的特定服务作为服务绑定。有关服务、服务绑定和上下文的列表,请参阅 了解 IDP 自定义攻击对象服务上下文
协议和端口绑定
协议或端口绑定允许您指定攻击用来进入您的网络的协议。您可以指定网络协议的名称,也可以指定协议号。
在自定义攻击中指定服务或协议绑定。如果同时指定两者,则服务绑定优先。
IP — 您可以使用协议号指定任何受支持的网络层协议。 表 11 列出了不同协议的协议号。
表 11:支持的协议和协议编号 协议名称
协议编号
IGMP
2
IP-IP
4
EGP
8
狗
12
卫生纸
29
IPV6
41
路由
43
片段
44
回复
46
GRE
47
ESP
50
啊
51
ICMPV6型
58
没有
59
DSTOPTS公司
60
MTP
92
ENCAP
98
PIM
103
补偿
108
生
255
ICMP、TCP 和 UDP — 不使用特定服务的攻击可能会使用特定端口攻击您的网络。某些 TCP 和 UDP 攻击使用标准端口进入您的网络并建立连接。
RPC - 分布式处理应用程序使用远程过程调用 (RPC) 协议来远程处理进程之间的交互。当客户端对 RPC 服务器进行远程过程调用时,服务器会使用远程程序进行回复;每个远程程序使用不同的程序号。若要检测使用 RPC 的攻击,请将服务绑定配置为 RPC 并指定 RPC 程序 ID。
表 12 显示了密钥协议的示例格式。
协议名称 |
协议编号 |
描述 |
---|---|---|
ICMP |
|
指定协议名称。 |
IP |
|
指定网络层协议编号。 |
RPC |
|
指定 RPC 程序号。 |
TCP 或 UDP |
|
对于 TCP 和 UDP 协议,指定端口是可选的。例如,您可以指定以下任何一项:
|
时间绑定
使用时间绑定为时间绑定自定义攻击对象配置时间属性。Time 属性控制攻击对象如何识别重复一定次数的攻击。通过配置攻击的范围和计数,您可以在一段时间内跨会话检测出一系列相同的攻击。
从 Junos OS 18.4R1 版开始,您可以配置时间绑定自定义攻击的任意两个实例之间的最大时间间隔,最大时间间隔范围为 0 分 0 秒到 60 分 0 秒。在 18.4R1 之前的 Junos OS 版本中,时间绑定攻击的任意两个实例之间的最大时间间隔为 60 秒,攻击触发计数才能达到时间绑定中配置的计数。 interval interval-value
在层次结构中 [edit security idp custom-attack attack-name time-binding]
引入语句以配置自定义时间绑定。
范围
指定攻击计数发生的范围:
源 - 指定此选项以检测来自源地址的攻击指定次数,而不考虑目标地址。这意味着对于给定的攻击,来自源地址的每次攻击都会保留一个阈值。目标地址将被忽略。例如,从源地址
ip-a
相同但目标地址ip-c
ip-b
不同的两对 (ip-a
,ip-b
) 和 (ip-a
,ip-c
) 中检测到异常。则将增量的匹配ip-a
项数为2
。假设阈值 or count 也设置为 2,则签名将触发攻击事件。目标 - 指定此选项以检测发送到目标地址的指定次数的攻击,而不考虑源地址。这意味着对于给定的攻击,对于来自目标地址的每次攻击,都会保留一个阈值。源地址将被忽略。例如,如果从目标地址
ip-b
相同但源地址ip-a
不同的两个不同的对 (ip-a
,ip-b
) 和 (ip-c
,ip-b
) 中检测到异常,则ip-c
。则将增量的匹配ip-b
项数为2
。假设阈值 or count 也设置为2
,则签名将触发攻击事件。对等方 - 指定此选项以检测指定次数的会话的源和目标 IP 地址之间的攻击。这意味着阈值适用于一对源地址和目标地址。假设从两个不同的源和目标对 (
ip-a
、ip-b
) 和 (ip-a
,ip-c
) 检测到异常。然后,将每对的匹配数设置为1
,即使两对都有共同的源地址。
计数
计数或阈值 指定攻击对象必须在指定范围内检测到攻击的次数,然后设备才会认为攻击对象与攻击匹配。如果将攻击对象绑定到多个端口,并且攻击对象在不同端口上检测到该攻击,则每个端口上的每次攻击都计为一次单独事件。例如,当攻击对象检测到 先对 TCP/80
,然后对 TCP/8080
进行攻击时,计数为 2。
一旦达到匹配项 count
,每次符合条件的攻击都会使攻击次数增加 1。此计数周期将持续用户定义的持续时间(使用 interval
选项配置),之后循环重复。
间隔
Interval 指定具有时间约束力的自定义攻击的任意两个实例之间的最大时间间隔。时间间隔的范围为 0 秒到 1 小时,默认值为 60 秒。
攻击属性(签名攻击)
签名攻击对象使用状态攻击签名(一种始终存在于攻击的特定部分中的模式)来检测已知攻击。它们还包括用于实施攻击的协议或服务以及发生攻击的上下文。以下属性特定于签名攻击,您可以在配置签名攻击时配置这些属性:
攻击上下文、流量类型和方向是签名攻击定义的必填字段。
攻击背景
攻击上下文定义签名的位置。如果您了解该服务和特定的服务上下文,请指定该服务,然后指定相应的服务上下文。如果您知道该服务,但不确定特定的服务上下文,请指定以下常规上下文之一:
first-data-packet
- 指定此上下文以仅在第一个数据包中检测攻击。first-packet
—指定此上下文以仅在流的第一个数据包中检测攻击。当攻击对象的流向设置为any
时,设备将检查服务器到客户端和客户端到服务器流的第一个数据包。如果您知道攻击签名出现在会话的第一个数据包中,则选择而不是packet
可以first packet
减少设备需要监控的流量,从而提高性能。packet
- 指定此上下文以匹配数据包中的攻击模式。选择此选项时,还必须指定服务绑定以定义服务标头选项。尽管不是必需的,但指定这些附加参数可以提高攻击对象的准确性,从而提高性能。line
- 指定此上下文以检测网络流量中特定行内的模式匹配。normalized-stream
- 指定此上下文以检测整个规范化流中的攻击。规范化流是发送信息的多种方式之一。在此流中,数据包中的信息在执行匹配之前会被规范化。假设www.yahoo.com/sports
与www.yahoo.com/s%70orts
相同。表示这两个 URL 的规范化形式可能是www.yahoo.com/sports
。选择而不是normalized stream
stream
,除非您想要检测某些模式的确切形式。例如,如果要检测确切的模式www.yahoo.com/s%70orts
,请选择stream
。normalized-stream256
- 指定此上下文以仅在规范化流的前 256 个字节中检测攻击。normalized-stream1k
- 指定此上下文以仅在规范化流的前 1024 个字节中检测攻击。normalized-stream-8k
- 指定此上下文以仅在规范化流的前 8192 个字节中检测攻击。stream
—指定此上下文以重新组合数据包并提取数据以搜索模式匹配。但是,设备无法识别流上下文的数据包边界,因此会合并多个数据包的数据。仅当没有其他上下文选项包含攻击时,才指定此选项。stream256
- 指定此上下文以重新组合数据包并在流量流的前 256 个字节中搜索模式匹配。当流向设置为any
时,设备将检查服务器到客户端和客户端到服务器流的前 256 个字节。如果您知道攻击签名将出现在会话的前 256 个字节中,则选择stream256
而不是stream
可以减少设备必须监控和缓存的流量,从而提高性能。stream1k
- 指定此上下文以重新组合数据包并在流量流的前 1024 个字节中搜索模式匹配。当流向设置为any
时,设备将检查服务器到客户端和客户端到服务器流的前 1024 个字节。如果您知道攻击签名将出现在会话的前 1024 个字节中,则选择stream1024
insteadstream
可以减少设备必须监控和缓存的流量,从而提高性能。stream8k
—指定此上下文以重新组合数据包并在流量流的前 8192 个字节中搜索模式匹配。当流向设置为any
时,设备将检查服务器到客户端和客户端到服务器流的前 8192 个字节。如果您知道攻击签名将出现在会话的前 8192 个字节中,则选择stream8192
而不是stream
可以减少设备必须监控和缓存的流量,从而提高性能。
攻击方向
您可以指定攻击的连接方向。使用单个方向(而不是 Any
)可提高性能,减少误报并提高检测准确性。
客户端到服务器(仅在客户端到服务器流量中检测攻击)
服务器到客户端(仅在服务器到客户端流量中检测攻击)
任何(检测任一方向的攻击)
攻击模式
攻击模式是您要检测的攻击的特征。签名是攻击中始终存在的一种模式;如果存在攻击,则签名也存在。要创建攻击模式,必须首先分析攻击以检测模式(例如代码段、URL 或数据包标头中的值),然后创建表示该模式的语法表达式。您也可以否定模式。否定模式意味着,如果攻击中定义的模式与 not 指定的模式匹配,则认为攻击匹配。
模式否定仅适用于基于数据包、线路和应用的上下文,而不支持流和规范化流上下文。
协议特定参数
指定数据包标头中存在的某些值和选项。对于不同的协议,这些参数是不同的。在自定义攻击定义中,您只能为以下协议之一(TCP、UDP 或 ICMP)指定字段。虽然,您可以在自定义攻击定义中使用 TCP 或 UDP 定义 IP 协议字段。
只能为使用数据包或第一个数据包上下文的攻击对象定义标头参数。如果指定了线路、流、流 256 或服务上下文,则无法指定标头参数。
如果您不确定恶意数据包的选项或标记设置,请将所有字段留空,并且入侵检测和防御 (IDP) 会尝试匹配所有标头内容的签名。
表 13 显示了可以为使用 IP 协议的攻击设置的字段和标志。
田 |
描述 |
---|---|
服务类型 |
指定服务类型的值。常见的服务类型包括:
|
总长度 |
指定数据包中的字节数值,包括所有报头字段和数据有效负载。 |
编号 |
指定目标系统用于重组分段数据包的唯一值。 |
活动时间 |
为数据包的生存时间 (TTL) 值指定一个 0–255 范围内的整数值。此值表示数据包可以遍历的设备数量。每个处理数据包的路由器都会将 TTL 递减幅 |
协议 |
指定所用协议的值。 |
源 |
输入攻击设备的源地址。 |
目的地 |
输入攻击目标的目标地址。 |
保留位 |
未使用此位。 |
更多片段 |
设置 ( |
不分段 |
设置 ( |
表 14 显示了数据包标头字段和标志,您可以为使用 TCP 协议的攻击设置这些字段和标志。
田 |
描述 |
---|---|
源端口 |
指定攻击设备上的端口号值。 |
目标端口 |
指定攻击目标的端口号值。 |
序列号 |
指定数据包序列号的值。此数字标识数据相对于整个数据序列的位置。 |
ACK 编号 |
指定数据包的 ACK 编号值。此编号标识下一个序列号;必须设置 ACK 标志才能激活此字段。 |
标头长度 |
指定 TCP 报头中的字节数值。 |
数据长度 |
指定数据有效负载中的字节数值。对于 SYN、ACK 和 FIN 数据包,此字段应为空。 |
窗口大小 |
指定 TCP 窗口大小中的字节数值。 |
紧急指针 |
指定紧急指针的值。该值表示数据包中的数据是紧急的;必须设置 URG 标志才能激活此字段。 |
URG |
设置后,紧急标志表示数据包数据紧急。 |
ACK系列 |
设置后,确认标志确认收到数据包。 |
PSH的 |
设置后,推送标志表示接收方应将当前序列中的所有数据推送到目标应用程序(由端口号标识),而不等待序列中的剩余数据包。 |
RST |
设置后,重置标志将重置 TCP 连接,丢弃现有序列中的所有数据包。 |
SYN |
设置后,SYN 标志表示对新会话的请求。 |
鳍 |
设置后,final 标志表示数据包传输已完成,可以关闭连接。 |
R1 |
未使用此保留位(第 1 位,共 2 位)。 |
R2 |
未使用此保留位(第 2 位,共 2 位)。 |
表 15 显示了数据包标头字段和标志,您可以为使用 UDP 协议的攻击设置这些字段和标志。
田 |
描述 |
---|---|
源端口 |
指定攻击设备上的端口号值。 |
目标端口 |
指定攻击目标的端口号值。 |
数据长度 |
指定数据有效负载中的字节数值。 |
表 16 显示了数据包标头字段和标志,您可以为使用 ICMP 协议的攻击设置这些字段和标志。
田 |
描述 |
---|---|
ICMP 类型 |
指定用于标识请求或应答数据包功能的主代码值。 |
ICMP 代码 |
指定辅助代码的值,用于标识给定类型中请求或应答数据包的功能。 |
序列号 |
指定数据包序列号的值。此编号标识请求或应答数据包相对于整个序列的位置。 |
ICMP ID |
指定标识号的值。标识号是目标系统用来关联请求和应答数据包的唯一值。 |
数据长度 |
指定数据有效负载中的字节数值。 |
示例签名攻击定义
以下是签名攻击定义示例:
<Entry> <Name>sample-sig</Name> <Severity>Major</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>dst</Scope></TimeBinding> <Application>FTP</Application> <Type>signature</Type> <Context>packet</Context> <Negate>true</Negate> <Flow>Control</Flow> <Direction>any</Direction> <Headers><Protocol><Name>ip</Name> <Field><Name>ttl</Name> <Match>==</Match><Value>128</Value></Field> </Protocol><Name>tcp</Name> <Field><Name><Match><</Match> <value>1500</Value> </Field></Protocol></Headers> </Attack></Attacks> </Entry>
攻击属性(协议异常攻击)
协议异常攻击对象检测违反协议规范(RFC 和常见 RFC 扩展)的未知或复杂攻击。您无法创建新的协议异常,但可以配置新的攻击对象,以控制设备在检测到预定义协议异常时如何处理。
服务或应用绑定是协议异常攻击的必填字段。
以下属性特定于协议异常攻击。攻击方向和测试条件都是配置异常攻击定义的必填字段。
攻击方向
攻击方向允许您指定攻击的连接方向。使用单个方向(而不是 Any
)可提高性能、减少误报并提高检测准确性:
客户端到服务器(仅在客户端到服务器流量中检测攻击)
服务器到客户端(仅在服务器到客户端流量中检测攻击)
任何(检测任一方向的攻击)
测试条件
测试条件是要与异常攻击匹配的条件。瞻博网络支持某些预定义的测试条件。在以下示例中,条件是消息过长。如果消息的大小超过此测试条件的预配置值,则攻击匹配。
<Attacks> <Attack> <Type>anomaly</Type> ... <Test>MESSAGE_TOO_LONG</Test> <Value>yes</Value> ... </Attack> </Attacks>
示例协议异常攻击定义
以下是协议异常攻击定义示例:
<Entry> <Name>sample-anomaly</Name> <Severity>Info</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>peer</Scope></TimeBinding> <Application>TCP</Application> <Type>anomaly</Type> <Test>OPTIONS_UNSUPPORTED</Test> <Direction>any</Direction> </Attack></Attacks> </Entry>
攻击属性(复合或连锁攻击)
复合攻击或链式攻击对象检测使用多种方法利用漏洞的攻击。此对象将多个签名和/或协议异常组合到一个攻击对象中,在将流量识别为攻击之前,强制流量与复合攻击对象内的组合签名和异常模式相匹配。通过组合甚至指定签名或异常必须匹配的顺序,您可以非常具体地了解在设备将流量识别为攻击之前需要发生的事件。
在复合攻击中,必须至少指定 2 个成员(攻击)。在复合攻击中,您最多可以指定 32 个成员。成员可以是签名攻击,也可以是异常攻击。
以下属性特定于复合攻击:
范围
范围允许您指定攻击是在会话内匹配还是在会话中的事务之间匹配。如果指定的服务在单个会话中支持多个事务,则还可以指定匹配是在单个会话上进行,还是可以在会话内的多个事务中进行:
指定 session 以允许同一会话中对象的多个匹配项。
指定 transaction 以在同一会话中发生的多个事务中匹配对象。
次序
使用有序匹配创建一个复合攻击对象,该对象必须按您指定的顺序匹配每个成员签名或协议异常。如果未指定有序匹配,则复合攻击对象仍必须匹配所有成员,但攻击模式或协议异常可能会以随机顺序出现在攻击中。
重置
指定每次在同一会话中检测到攻击时,都会生成新日志。如果此字段设置为, no
则在一个会话中仅记录一次攻击。
表达式(布尔表达式)
使用布尔表达式字段可禁用有序匹配功能。Boolean 表达式字段使用成员名称或成员索引属性。支持以下三个布尔运算符以及括号,这有助于确定优先级:
or
- 如果任一成员名称模式匹配,则表达式匹配。and
- 如果两个成员名称模式都匹配,则表达式匹配。成员以哪个顺序出现并不重要。oand (ordered and)
- 如果两个成员名称模式都匹配,并且它们的出现顺序与布尔表达式中指定的顺序相同,则表达式匹配。
假设您创建了五个签名成员,标记为 s1
-s5
。假设您知道攻击总是包含模式 s1
,后跟 或 s2
s3
。您也知道攻击总是包含 s4
和 s5
,但它们在攻击中的位置可能会有所不同。在这种情况下,您可以创建以下布尔表达式:
((s1 oand s2) or (s1 oand s3)) and (s4 and s5)
您可以在自定义攻击定义中定义有序匹配或表达式(不能同时定义两者)。
会员索引
成员索引在链式攻击中指定,以唯一标识成员(攻击)。在以下示例中,成员索引用于标识成员 m01
和 m02
定义的表达式:
<Expression>m02 AND m01</Expression> <Order>no</Order> <Reset>no</Reset> <ScopeOption/> <Members> <Attack> <Member>m01</Member> <Type>Signature</Type> ... <Pattern><!CDATA[.*/getlatestversion]]></Pattern> <Regex/> </Attack> <Attack><Member>m02</Member> <Type>Signature</Type> ... <Pattern><!CDATA[\[Skype\'.*]]></Pattern> <Regex/> </Attack> <Attack>
定义表达式时,必须为所有成员指定成员索引。
示例复合攻击定义
以下是复合攻击定义示例:
<Entry> <Name>sample-chain</Name> <Severity>Critical</Severity> <Attacks><Attack> <Application>HTTP</Application> <Type>Chain</Type> <Order>yes</Order> <Reset>yes</Reset> <Members><Attack> <Type>Signature</Type> <Context>packet</Context> <Pattern><![CDATA[Unknown[]></Pattern> <Flow>Control</Flow> <Direction>cts</Direction> </Attack><Attack> <Type>anomaly</Type> <Test>CHUNK_LENGTH_OVERFLOW</Test> <Direction>any</Direction> </Attack></Members> </Attack></Attacks> </Entry>
创建复合攻击对象
在以下情况下使用复合攻击对象:
攻击使用多种方法来利用漏洞,独立检查后,各个上下文看起来是良性的。
匹配多个上下文可减少误报。
将签名与协议异常相结合可减少误报。
选择签名攻击对象或预定义异常作为复合对象的“成员”,并使用布尔表达式指定匹配逻辑。
要配置复合攻击对象,请执行以下作:
另见
由于签名更新中引入的更改而修改自定义攻击对象
本主题介绍对 HTTP 协议解码器生成的某些服务上下文的更改。从 签名更新 #1972 开始,HTTP 协议解码器不再生成某些上下文。如果您的 IDP 安全策略包含使用已移除上下文的自定义签名,则必须如下所述修改攻击对象定义,以避免策略编译错误。本主题包含以下信息:
参考:已删除的上下文
为了提高性能,HTTP 协议解码器不再生成 表 19 第一列中列出的上下文。查看此表,了解有关替换自定义攻击对象中的上下文的准则。
删除 |
替换为 |
指引 |
---|---|---|
http-文本-html-正文 |
http-文本-html |
将使用上下文 http-text-html-body 的签名更改为 http-text-html。无需更改签名图案或其他属性。 |
|
结合使用以下上下文:
|
使用复合签名和 Boolean AND 将签名模式分解为多个片段。确保“范围”字段设置为“事务”。 使用 http-request-method 上下文是可选的。可以使用 http-request-method 上下文将检测绑定到 http GET 或 POST 或 HEAD 事务。对于 GET 方法,我们使用模式 \[GET\](不区分大小写 GET)。仅当之前在 Request Method 上记录的匹配结果值得保留时,才使用 http-request-method。如果没有,请省略它以提高性能。如果使用 http-request-method,请首先在复合链中对其进行排序。 使用 http-url 解析的上下文来匹配 URL 中可识别的攻击签名。使用此上下文可以匹配 URL 中显示在变量参数之前的模式,即 URL 中问号 (?) 之前的部分。 使用一个或多个 http-variable 解析的上下文来匹配 URL 变量参数 - 问号 (?) 后面的 URL 部分,通常用与号 (&) 分隔。 |
示例:替换 HTML 文本中出现的模式的上下文
HTTP 检测引擎生成的每个上下文都会产生性能成本。上下文 http-text-html 和 http-text-html-body 具有相同的目的。减少上下文数量可提高性能。
表 20 显示了 更新 #1972 之前和之后的签名属性。这是一个简单的更改。您只需更改上下文。无需更改图案或其他属性。
更新前 |
更新后 |
|
---|---|---|
上下文 |
http-文本-html-正文 |
http-文本-html |
模式 |
.*<span></span>.* |
.*<span></span>.* |
示例:替换 URL 中出现的模式的上下文
本节由两部分组成:
与请求方法匹配的签名
修改以前与请求方法 GET、POST 或 HEAD 匹配的自定义攻击对象时,请考虑针对这些请求方法模式的匹配是否对您有效。请记住,生成的每个上下文都会产生性能成本。如果请求方法对您的结果不是必不可少的,请借此机会在没有它的情况下重铸您的签名。
表 21 和 表 22 显示了 更新 #1972 之前的签名和之后的复合签名的属性。此示例保留了对 request 方法的兴趣。
更新前的签名 |
|
---|---|
范围 |
– |
上下文 |
http-get-url-parsed-param |
模式 |
\[/viper/vegaspalms/\].* |
更新后的复合签名 |
||
---|---|---|
|
M01 |
M02 |
范围 |
交易 |
|
上下文 |
http-request-method |
http-url-parsed |
模式 |
|
\[/viper/vegaspalms/\].* |
匹配 URL 字符串和 URL 变量的签名
通常,将单个模式分解为多个上下文可能会对性能产生积极或消极的影响。在生产网络中部署攻击对象之前,您需要测试更改以了解性能影响。 表 23 和 表 24 中显示的示例将 URL 匹配中断为多个上下文。我们的安全团队已经根据此处描述的建议测试了性能。
更新前的签名 |
|
---|---|
范围 |
– |
上下文 |
http-get-url-param-parsed-param |
模式 |
|
更新后的复合签名 |
||||
---|---|---|---|---|
M01 |
M02 |
M03型 |
M04系列 |
|
范围 |
交易 |
|||
上下文 |
http-url-parsed |
http-variable-parsed |
http-variable-parsed |
http-variable-parsed |
模式 |
|
|
|
|
另见
示例:配置复合攻击或链式攻击
此示例说明如何针对特定匹配标准配置复合攻击或链式攻击。可以将复合攻击或链式攻击对象配置为检测使用多种方法利用漏洞的攻击。
要求
开始之前,必须在设备上支持并启用 IDP。
概述
复合攻击对象或链式攻击对象可以将特征和异常组合在一起,形成单个攻击对象。单个攻击对象可以包含:
两个或多个签名
两个或更多异常
签名和异常的组合
复合或连锁攻击对象将多个签名和/或协议异常组合到一个攻击对象中,在将流量识别为攻击之前,强制流量与复合攻击对象内的组合签名和异常模式相匹配。这些对象还用于减少误报并提高检测准确性。它使您能够具体了解在 IDP 将流量识别为攻击之前需要发生的事件。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中,然后从配置模式进入 commit
。
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attacks ftpchain set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack ftpchain severity info set security idp custom-attack ftpchain attack-type chain protocol-binding application ftp set security idp custom-attack ftpchain attack-type chain scope session set security idp custom-attack ftpchain attack-type chain order set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature context ftp-banner set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature pattern .*vsFTPd.* set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature direction server-to-client set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature context ftp-username set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature pattern .*root.* set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature direction client-to-server set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly test LOGIN_FAILED set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly direction any set security idp traceoptions file idpd set security idp traceoptions flag all
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要针对特定匹配标准配置复合攻击或链式攻击,请执行以下作:
创建 IDP 策略。
[edit] user@host# set security idp idp-policy idpengine
将规则库与策略相关联。
[edit security idp idp-policy idpengine] user@host# edit rulebase-ips
将规则添加到规则库。
[edit security idp idp-policy idpengine rulebase-ips] user@host# edit rule 1
定义规则的匹配标准。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
指定应用程序集名称以匹配规则条件。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
指定攻击对象的匹配攻击对象和攻击对象的名称。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attacks ftpchain
为规则指定作。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
指定规则的通知或日志记录选项。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
激活 IDP 策略。
[edit] user@host# set security idp active-policy idpengine
指定自定义攻击的名称。
[edit security idp] user@host# set custom-attack ftpchain
设置自定义攻击的严重性。
[edit security idp custom-attack ftpchain] user@host# set severity info
设置自定义攻击的攻击类型和应用名称。
[edit security idp custom-attack ftpchain] user@host# set attack-type chain protocol-binding application ftp
设置定义攻击的范围和顺序。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set scope session user@host# set order
为链攻击对象的第一个成员指定名称。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m1
设置链攻击对象的第一个成员的上下文、模式和方向。
[edit security idp custom-attack ftpchain attack-type chain member m1] user@host# set attack-type signature context ftp-banner user@host# set attack-type signature pattern .*vsFTPd.* user@host# set attack-type signature direction server-to-client
为链式攻击对象的第二个成员指定名称。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m2
设置链攻击对象的第二个成员的上下文、模式和方向。
[edit security idp custom-attack ftpchain attack-type chain member m2] user@host# set attack-type signature context ftp-username user@host# set attack-type signature pattern .*root.* user@host# set attack-type signature direction client-to-server
为链攻击对象的第三个成员指定名称。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m3
为链式攻击对象的第三个成员指定攻击类型和方向。
[edit security idp custom-attack ftpchain attack-type chain member m3] user@host# set attack-type anomaly direction any
指定 IDP 服务的追踪选项和追踪文件信息。
[edit] user@host# set security idp traceoptions file idpd
指定需要包含在跟踪输出中的事件和其他信息。
[edit] user@host# set security idp traceoptions flag all
结果
在配置模式下,输入 show security idp
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attacks ftpchain; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack ftpchain { severity info; attack-type { chain { protocol-binding { application ftp; } scope session; order; member m1 { attack-type { signature { context ftp-banner; pattern .*vsFTPd.*; direction server-to-client; } } } member m2 { attack-type { signature { context ftp-username; pattern .*root.*; direction client-to-server; } } } member m3 { attack-type { anomaly { test LOGIN_FAILED; direction any; } } } } } } traceoptions { file idpd; flag all; }
如果完成设备配置,请从配置模式输入 commit
。
进入 commit
配置模式时,配置会在内部进行验证,然后提交。如果有任何错误,提交将失败并报告错误。
验证
要确认链攻击配置工作正常,请执行以下任务:
验证配置
目的
验证链攻击配置是否正确。
行动
在作模式下,输入 show security idp policy-commit-status
命令以检查策略编译或加载状态。
命令的 show security idp policy-commit-status
输出是动态的,因此此命令没有单个输出。
验证是否按照配置检测到攻击,将流量传递通过设备以触发攻击匹配。例如,输入 show security idp status
命令以检查策略是否已加载。
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
输入 show security idp attack table
命令以传递攻击流量,然后验证是否检测到攻击。
仅当检测到攻击时,命令才会显示输出。
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
示例:使用动态攻击组和自定义攻击组配置攻击组
此示例说明如何在 IDP 策略中使用动态攻击组和自定义攻击组配置攻击组,以保护 FTP 或 Telnet 服务器。
要求
开始之前,仅当满足以下语句之一为真时,才在设备上安装安全包:
配置动态攻击组。
自定义攻击组包含预定义的攻击或攻击组。
如果自定义攻击组仅包含自定义攻击,则不需要安全包许可证,也无需在设备上安装安全包。要安装安全包,您需要 IDP 安全包许可证。
概述
IDP 包含大量预定义的攻击对象。要管理和组织 IDP 策略,可以对攻击对象进行分组。一个攻击对象组可以包含两种或多种类型的攻击对象。攻击组分类如下:
动态攻击组 - 包含基于特定匹配条件的攻击对象。在签名更新期间,动态组成员身份将根据该组的匹配条件自动更新。例如,您可以使用动态攻击组过滤器对与特定应用相关的攻击进行动态分组。
自定义攻击组 — 包含在攻击定义中指定的攻击列表。自定义攻击组还可以包含特定的预定义攻击、自定义攻击、预定义攻击组或动态攻击组。自定义攻击组本质上是静态的,因为攻击是在组中指定的。因此,当安全数据库更新时,攻击组不会更改。成员可以是来自签名数据库的预定义攻击或预定义攻击组,也可以是其他自定义攻击和动态攻击组。
在此示例中,我们在 IDP 策略中配置了一个攻击组,以保护 FTP 或 Telnet 服务器免受自定义和动态攻击。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中,然后从配置模式进入 commit
。
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attack-groups cust-group set security idp idp-policy idpengine rulebase-ips rule 1 match attacks dynamic-attack-groups dyn2 set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack customftp severity info set security idp custom-attack customftp attack-type signature context ftp-username set security idp custom-attack customftp attack-type signature pattern .*guest.* set security idp custom-attack customftp attack-type signature direction client-to-server set security idp custom-attack-group cust-group group-members customftp set security idp custom-attack-group cust-group group-members ICMP:INFO:TIMESTAMP set security idp custom-attack-group cust-group group-members "TELNET - Major" set security idp custom-attack-group cust-group group-members dyn1 set security idp dynamic-attack-group dyn1 filters category values TROJAN set security idp dynamic-attack-group dyn2 filters direction expression and set security idp dynamic-attack-group dyn2 filters direction values server-to-client set security idp dynamic-attack-group dyn2 filters direction values client-to-server set security idp dynamic-attack-group dyn2 filters age-of-attack less-than value 7 set security idp dynamic-attack-group dyn2 filters vulnerability-type values Injection set security idp dynamic-attack-group dyn2 filters vendor Microsoft set security idp dynamic-attack-group dyn2 filters cvss-score less-than value 7 set security idp traceoptions file idpd set security idp traceoptions flag all
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用动态攻击组和自定义攻击组配置攻击组:
创建 IDP 策略。
[edit] user@host# set security idp idp-policy idpengine
将规则库与策略相关联。
[edit security idp idp-policy idpengine] user@host# set rulebase-ips
将规则添加到规则库。
[edit security idp idp-policy idpengine rulebase-ips] user@host# set rule 1
定义规则的匹配标准。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
指定应用程序集名称以匹配规则条件。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
指定自定义攻击组的匹配项。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attack-groups cust-group
指定动态攻击组的匹配项。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks dynamic-attack-groups dyn2
为规则指定作。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
指定规则的通知或日志记录选项。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
激活 IDP 策略。
[edit] user@host# set security idp active-policy idpengine
指定自定义攻击的名称。
[edit security idp] user@host# set custom-attack customftp
设置自定义攻击的严重性。
[edit security idp custom-attack customftp] user@host# set severity info
设置攻击类型和攻击上下文。
[edit security idp custom-attack customftp] user@host# set attack-type signature context ftp-username
指定攻击模式。
[edit security idp custom-attack customftp] user@host# set attack-type signature pattern .*guest.*
指定攻击方向。
[edit security idp custom-attack customftp] user@host# set attack-type signature direction client-to-server
指定自定义攻击组的名称。
[edit security idp] user@host# set custom-attack-group cust-group
指定属于自定义攻击组的攻击或攻击组列表。
[edit security idp custom-attack-group cust-group] user@host# set group-members customftp user@host# set group-members ICMP:INFO:TIMESTAMP user@host# set group-members "TELNET - Major" user@host# set group-members dyn1
指定第一个动态攻击组的名称。
[edit security idp] user@host# set dynamic-attack-group dyn1
配置筛选器并为筛选器设置类别值。
[edit security idp dynamic-attack-group dyn1 ] user@host# set filters category values TROJAN
指定第二个动态攻击组的名称。
[edit security idp] user@host# set dynamic-attack-group dyn2
为第二个动态攻击组配置过滤器,并设置此字段的方向及其值。
[edit security idp dynamic-attack-group dyn2 ] user@host# set filters direction expression and user@host# set filters direction values server-to-client user@host# set filters direction values client-to-server user@host# set filters age-of-attack less-than value 7 user@host# set filters cvss-score less-than value 7 user@host# set filters file-type MPEG user@host# set filters vendor Microsoft user@host# set filters vulnerability-type values Injection
指定 IDP 服务的追踪选项和追踪文件信息。
[edit] user@host# set security idp traceoptions file idpd
指定需要包含在跟踪输出中的事件和其他信息。
[edit] user@host# set security idp traceoptions flag all
结果
在配置模式下,输入 show security idp
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attack-groups cust-group; dynamic-attack-groups dyn2; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack customftp { severity info; attack-type { signature { context ftp-username; pattern .*guest.*; direction client-to-server; } } } custom-attack-group cust-group { group-members [ customftp ICMP:INFO:TIMESTAMP "TELNET - Major" dyn1 ]; } dynamic-attack-group dyn1 { filters { category { values TROJAN; } } } dynamic-attack-group dyn2 { filters { direction { expression and; values [ server-to-client client-to-server ]; } age-of-attack less-than { value 7; } vulnerability-type { values Injection; } vendor Microsoft; cvss-score less-than { value 7; } } } traceoptions { file idpd; flag all; }
如果完成设备配置,请从配置模式输入 commit
。
进入 commit
配置模式时,配置会在内部进行验证,然后提交。如果有任何错误,提交将失败并报告错误。
验证
验证配置
目的
验证配置是否正确。
行动
在作模式下,输入 show security idp policy-commit-status
命令以检查策略编译或加载状态。
命令的 show security idp policy-commit-status
输出是动态的,因此此命令没有单一输出。
验证是否按照配置检测到攻击,将流量传递通过设备,这将触发攻击匹配。例如,输入 show security idp status
命令以检查策略是否已加载。
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
输入 show security idp attack table
命令以传递攻击流量,然后验证是否检测到攻击。
仅当检测到攻击时,命令才会显示输出。
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
自定义攻击对象 DFA 表达式
表 25 提供了匹配攻击模式的语法示例。
语法示例 |
描述 |
示例匹配 |
---|---|---|
你好。。\B.0.1..00\B...世界 |
匹配有两个方面: 必须与位掩码模式匹配:\B.0.0.1.。00\B 必须与位掩码模式前后的字节数(由 .)匹配。 |
比赛: 你好。。\B.0.11100\B...世界你好..\B.0.10000\B...世界 不匹配: 您好。\B.0.1..00\B.world你好..\B.0.1..11\B...世界 |
\X01 86 A5 00 00\X |
逐字显示五个指定字节的模式。 |
01 86 答5 00 00 |
(hello|世界) |
hello 或 world 出现一次的模式。 |
你好 世界 |
(hello|world)+ |
hello 或 world 出现一次或多次的模式。 |
helloworld 世界你好 hellohello |
\[你好\] |
模式你好,不区分大小写。 |
你好 你好 你好 |
\u你好\u |
模式你好,Unicode 不敏感。 |
你好 68656c6c6f |
hello\sworld |
模式hello world,两个单词之间用空格隔开。 |
世界您好 |
[c-e]a(d|t) |
带有 c、d 或 e 首字母的图案;中间的字母 a;并以 d 或 t 结尾。 |
猫 爸爸 吃 |
[^c-d]a(d|t) |
以 c、d 或 e 以外的字母开头的模式;有第二个字母 a;并以 D 或 T 结尾。 |
时尚 扎德 |
a*b+c |
具有任意数量的字符(包括零)的图案;后跟一个或多个 B 字符;后跟一个 C 字符。 |
公元前 ABC公司 aaaabbbbc |
T[Kk] |
以大写字母 T 开头,后跟不区分大小写的 k 的模式。 |
传统知识 传统知识 |
([Tt])k |
以不区分大小写的 t 开头,后跟小写 k 的模式。 |
传统知识 传统知识 |
海[在] |
以 Sea 开头,后跟小写 l、m 或 n 的模式。 |
密封 煤层 肖恩 |
([B-D])在 |
以大写字母 B、C 或 D 开头,后跟小写字母 at 的模式。 |
蝙蝠 猫 达特 |
\0133\[你好\]\0135 |
以左括号开头,后跟不区分大小写的 hello,以右括号结尾的模式。此表达式使用 \0 表达式表示以下表达式是八进制代码,然后是左括号 (133) 或右括号 (135) 的八进制代码。 |
[你好] [HeLLo] |
示例:使用模式否定
您可以使用模式否定来排除已知安全的模式,并与所有其他模式匹配。
例如,假设您正在设计一个攻击对象来检查流向 FTP 服务器的流量。您知道,帐户用户名和密码得到妥善维护,以确保只有授权用户才能访问内部资源。但是,随着网络的发展和新组件的添加,用户帐户可能会激增,从而增加网络对特定组件的访问。在此示例中,您的内部网络上有一台启用了多个用户帐户的 FTP 服务器。为了提高安全性,您需要限制对 FTP 管理员的访问。
为 FTP 服务、ftp-username 上下文和模式 admin创建攻击对象;并选中 Negate 复选框。其结果是一个攻击对象,该对象可以标记除 admin以外的用户的登录尝试。您可以在记录或丢弃匹配流量的规则中使用此攻击对象。
另见
示例:匹配文件扩展名
在此示例中,您希望检测Microsoft Windows 图元文件,这些图元文件使用扩展名 .emf(Windows 增强型图元文件)和 .wmf(Microsoft Windows 图元文件)。
若要匹配以下任一文件类型,请使用简单的 DFA 表达式:
.*\.\[w|emf\]
在此表达式中:
句点与星号 (.*) 组合表示必须显示一个或多个字符(通配符匹配)。
反斜杠与句点字符 (\.) 组合表示句点字符已转义(句点出现在模式中)。
表达式 ( ) 开头和结尾的括号表示组。e 和 w 之间的管道字符 (e|w) 表示字符之间的 OR 关系。对于此表达式,e 或 w 必须出现在模式中以匹配此表达式;只有一个人必须在场。
右括号 (\[) 表示所有字符的不区分大小写的匹配的开始,直到右括号 (\]) 出现。
右括号 (\]) 表示不区分大小写的匹配的结束。
另见
示例:Apache Tomcat 拒绝服务攻击
在此示例中,我们假设您有一个运行 Apache Tomcat 的 Web 服务器。您的安全管理员通知您刚刚宣布了 Apache Tomcat 的漏洞,您决定创建一个自定义攻击对象来保护您的网络,直到您可以安排停机时间来修补服务器。
针对漏洞 (http://nvd.nist.gov/nvd.cfm?cvename=CAN-2002-0682) 的 CVE 公告包含以下引文:
A cross-site scripting vulnerability in Apache Tomcat 4.0.3 allows remote attackers to execute script as other web users via script in a URL with the /servlet/ mapping, which does not filter the script when an exception is thrown by the servlet.
从这些信息中,您知道攻击使用 HTTP。现在您必须找到攻击代码。该通报还包括一些链接到有关攻击的更多信息的参考资料。遗憾的是,引用的网页均不包含漏洞利用代码。使用从 CVE 公告中了解到的信息在 Web 上搜索后,您可以在 http://packetstormsecurity.nl/0210-exploits/neuter.c 找到一些漏洞利用代码。复制脚本并将其移动到测试实验室中的攻击者计算机。
要开发此攻击对象,请执行以下作:
另见
列出特定协议的 IDP 测试条件
配置 IDP 自定义攻击时,可以指定特定协议的列表测试条件。要列出 ICMP 的测试条件,请执行以下作:
列出 ICMP 支持的测试条件,然后选择要配置的条件。支持的测试条件在 CLI 的
[edit security idp custom-attack test1 attack-type anomaly]
层次结构级别上可用。user@host#set test icmp? Possible completions: <test> Protocol anomaly condition to be checked ADDRESSMASK_REQUEST DIFF_CHECKSUM_IN_RESEND DIFF_CHECKSUM_IN_RESPONSE DIFF_LENGTH_IN_RESEND
配置要为其配置测试条件的服务。
user@host# set service ICMP
配置测试条件(不需要指定协议名称)。
user@host# set test ADDRESSMASK_REQUEST
如果完成设备配置,请从配置模式输入
commit
。
了解 IDP 协议解码器
入侵检测和防御 (IDP) 使用协议解码器通过查找异常并确保满足 RFC 标准来检查协议完整性和协议上下文信息。异常可以是协议的任何部分,例如标头、消息正文或偏离该协议的 RFC 标准的其他单个字段。例如,在 SMTP 的情况下,如果 SMTP 邮件收件人先于 SMTP HELO,则 SMTP 协议中存在异常。
当有协议上下文信息可用时,协议解码器会检查这些上下文中的攻击。例如,对于 SMTP,如果向 user@company.com 发送电子邮件,则 user@company.com 是上下文信息,而 SMTP 邮件是上下文。通过使用协议上下文数据(而不是整个数据包)进行攻击检测,协议解码器提高了整体性能和准确性。
如果配置了与 SMTP 协议解码器检查匹配的规则的策略,则将触发该规则并执行相应的作。
IDP 模块随附一组预配置的协议解码器。这些协议解码器具有默认设置,用于执行各种特定于协议的上下文检查。您可以使用这些默认值,也可以对其进行调整以满足您站点的特定需求。要显示可用协议解码器的列表,请输入以下命令:
user@host # show security idp sensor-configuration detector protocol-name ?
有关当前协议解码器集及其默认上下文值的更详细视图,可以查看设备上 /ar/db/idpd/sec-download 文件夹中的detector-capabilities.xml文件。当您下载新的安全包时,您还会收到此文件,其中列出了当前协议和默认解码器上下文值。
示例:UNIX CDE/dtlogin 漏洞
在此示例中,您的网络包括多个运行 UNIX 的用户工作站和服务器。许多 UNIX作系统使用通用桌面环境 (CDE) 作为图形用户界面。您的安全管理员通知您 CDE 的 dtlogin 进程中存在一个新漏洞(dtlogin 进程处理 CDE 的 GUI 登录进程)。
漏洞 (http://www.kb.cert.org/vuls/id/179804) 的 CERT 公告包含以下信息:
...The dtlogin program contains a "double-free" vulnerability that can be triggered by a specially crafted X Display Manager Control Protocol (XDMCP) packet... Block XDMCP traffic (177/udp) from untrusted networks such as the Internet...
从这些信息中,您知道该攻击使用 XDMCP 协议数据包,并在 UDP/177 上运行。现在您必须找到攻击代码。该通报还包括一些链接到有关攻击的更多信息的参考资料。http://lists.immunitysec.com/pipermail/dailydave/2004-March/000402.html,一个引用表明,首先报告攻击的人也编写了一个复制攻击的脚本。获取脚本并将其移动到测试实验室中的攻击者计算机。
要开发此攻击对象,请执行以下作:
另见
示例:检测蠕虫
蠕虫和木马经常绕过防火墙和其他传统安全措施进入网络。在此示例中,您将创建一个自定义攻击对象来检测网络上的 Blaster 蠕虫。
针对 Blaster 蠕虫的 CERT 公告 (http://www.cert.org/advisories/CA-2003-20.html) 提供以下信息:
The W32/Blaster worm exploits a vulnerability in Microsoft's DCOM RPC interface...”
从这些信息中,您知道该攻击使用了 DCOM 漏洞,这是一个先前发现的安全漏洞。现在您必须找到攻击代码。该通报还包括一些链接到有关攻击的更多信息的参考资料。遗憾的是,引用的网页均不包含漏洞利用代码。使用从 CERT 公告中获悉的信息在 Web 上搜索后,即可在 PacketStorm (http://packetstormsecurity.com/0307-exploits/dcom.c) 上找到漏洞利用代码。
要开发此攻击对象,请执行以下作:
另见
示例:用于检测利用 HTTP 漏洞的复合签名
某些攻击经过精心设计,在逐个数据包级别上查看时看起来是良性的。对于这些攻击,您可以创建一个复合签名,用于检测多个上下文(服务、非服务或两者)中的多个签名模式。
在此示例中,您有一个使用 Microsoft FrontPage Server 扩展的 Web 服务器。您的安全管理员通知您 FrontPage Server 扩展中存在一个新的缓冲区溢出漏洞。
漏洞 (http://www.securityfocus.com/bid/9007/discussion/) 的 BugTraq 公告包含以下信息:
Microsoft FrontPage Server Extensions are prone to a remotely exploitable buffer overrun vulnerability ... It is possible to trigger this condition with a chunked-encoded HTTP POST request...
同时还提供了以下概念验证示例:
POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1 Transfer-Encoding: chunked PostLength PostData 0
此外,还包括指向已编译漏洞的链接。
从这些信息中,您知道攻击使用了 HTTP 协议,并且至少部分攻击使用了 POST 方法。使用指向已编译漏洞的链接获取脚本,并将其移动到测试实验室中的攻击者计算机。
要开发此攻击对象,请执行以下作:
另见
示例:使用时间绑定参数检测暴力攻击
时间绑定约束要求模式在一分钟内出现一定次数,才能将流量视为匹配。
您可以使用时间绑定参数和签名来检测暴力攻击的迹象。用户更改密码是无害事件,通常偶尔在网络上看到。但是,一分钟内数千次密码更改是可疑的。
在暴力攻击中,攻击者试图使用纯粹的武力突破系统防御,通常是通过压倒目标服务器容量或通过重复的试错尝试来匹配身份验证凭据。在暴力登录攻击中,攻击者首先收集用户名列表和密码字典。接下来,攻击者使用一个工具,该工具在字典中为列表中的第一个用户输入第一个密码,然后尝试每个用户的每个密码,直到匹配为止。如果攻击者尝试用户名和密码的每种组合,他们总是会成功。但是,暴力攻击通常会失败,因为密码字典通常受到限制(不包含所有可能的密码),并且攻击工具不会对密码执行排列(例如反转字母或更改大小写)。
在此示例中,您将创建一个签名攻击对象,用于检测通过 HTTP(基于 Web 的应用程序)进行身份验证的用户的密码更改次数过多。
首先,配置攻击模式:
.*/\[changepassword\.cgi\]
在此表达式中:
点星组合 (.*) 表示通配符匹配。
字符前的反斜杠表示该字符表示正则表达式,必须转义。在本例中,字符为左括号。在此表达式中,反斜杠也用于文件扩展名标记(点)之前和右括号之前。
包括用于更改用户密码的 cgi 脚本的名称以及 cgi 扩展名。
对于上下文,请从列表中选择 HTTP-URL-PARSED, 因为您正在尝试检测对基于 Web 的应用程序发生的密码更改。changepassword.cgi脚本在使用时显示为 URL 的一部分,但您需要告诉 IDP 系列设备分析 URL 才能找到名称。
接下来,配置时间绑定。
在这些设置中:
“范围”设置为 “对等 方”,因此无论来源或目标如何,攻击模式都可以与事件匹配。
Count 设置为高数字(到 1000)以避免误报。此值表示,在匹配攻击对象之前,changepassword.cgi脚本必须在 URL 中出现 1000 次。
另见
参考:自定义攻击对象协议编号
表 26 IDP 系统中使用的协议编号。
协议名称 |
协议编号 |
---|---|
HOPOPT |
0 |
ICMP |
1 |
IGMP |
2 |
GGP系列 |
3 |
IPIP |
4 |
圣 |
5 |
TCP |
6 |
认知行为疗法 |
7 |
EGP |
8 |
IGP |
9 |
BBN-RCC-MON(英语:BBN-RCC-MON) |
10 |
NVP-II型 |
11 |
狗 |
12 |
阿古斯 |
13 |
EMCON |
14 |
XNET |
15 |
混沌 |
16 |
UDP |
17 |
多路复用器 |
18 |
DCN-MEAS |
19 |
HMP |
20 |
PRM |
21 |
XND-IDP |
22 |
中继-1 |
23 |
中继-2 |
24 |
叶-1 |
25 |
叶-2 |
26 |
RDP |
27 |
IRTP |
28 |
ISO-TP4型 |
29 |
NETBLT |
30 |
MFE-NSP |
31 |
MERIT-INP |
32 |
九月 |
33 |
3个PC系统 |
34 |
IDPR |
35 |
XTP |
36 |
DDP |
37 |
TP_PLUS_PLUS |
39 |
伊利诺伊州 |
40 |
IPV6 |
41 |
SDRP |
42 |
IPV6 路由 |
43 |
IDV6-片段 |
44 |
IDRP |
45 |
回复 |
46 |
GRE |
47 |
MHRP公司 |
48 |
BNA公司 |
49 |
ESP |
50 |
啊 |
51 |
I-NLSP |
52 |
刷卡 |
53 |
纳普 |
54 |
移动 |
55 |
TLSP |
56 |
跳 |
57 |
IPV6-ICMP |
58 |
IPV6-NONXT |
59 |
IPV6-OPTS |
60 |
AHIP公司 |
61 |
CFTP |
62 |
ALNP |
63 |
SAT-EXPAK |
64 |
氪托兰 |
65 |
差饷差饷 |
66 |
国际植物保护公约 |
67 |
ADFSP |
68 |
周六至周一 |
69 |
签证 |
70 |
IPCV |
71 |
CPNX |
72 |
CPHB |
73 |
WSN |
74 |
PVP系列 |
75 |
BR-周六-周一 |
76 |
SUN-ND |
77 |
WB-周一 |
78 |
WB-EXPAK |
79 |
ISO-IP |
80 |
VMTP |
81 |
保护-VMTP |
82 |
藤 蔓 |
83 |
TTP |
84 |
NSFNET-IBP |
85 |
DGP |
86 |
TCF |
87 |
EIGRP |
88 |
OSPFIGP |
89 |
精灵-RPC |
90 |
LARP |
91 |
MTP |
92 |
AX_25 |
93 |
IPIP |
94 |
MICP |
95 |
SCC-SP |
96 |
以太网 |
97 |
ENCAP |
98 |
猿 |
99 |
格林威治标准时间 |
100 |
IFMP |
101 |
PNNI公司 |
102 |
PIM |
103 |
阿里斯 |
104 |
SCPS的 |
105 |
QNX |
106 |
A/N |
107 |
IPCOMP |
108 |
SNP |
109 |
COMPAT-PEER |
110 |
IPZ-IN-IP |
111 |
VRRP |
112 |
铂族金属 |
113 |
HOP-O |
114 |
L2TP |
115 |
DDX |
116 |
IATP |
117 |
STP |
118 |
SRP |
119 |
尿路感染 |
120 |
SMP |
121 |
SSM |
122 |
PTP |
123 |
伊希斯 |
124 |
火灾 |
125 |
CRTP |
126 |
CRUDP |
127 |
SSCOPMCE |
128 |
IPLT的 |
129 |
SPS |
130 |
管 |
131 |
SCTP |
132 |
FC |
133 |
RSVP-E2E-忽略 |
134 |
不适用 |
|
不适用 |
|
不适用 |
|
保留 |
255 |
参考:不可打印和可打印 ASCII 字符
下表详细介绍了不可打印字符和可打印字符的 ASCII 表示形式。
12 月 |
十六进制 |
10月 |
煳 |
评论 |
---|---|---|---|---|
0 |
0 |
000 |
NUL |
零 |
1 |
1 |
001 |
SOH |
标题开始 |
2 |
2 |
002 |
STX系列 |
文本开头 |
3 |
3 |
003 |
ETX公司 |
正文末 |
4 |
4 |
004 |
EOT |
传输结束 |
5 |
5 |
005 |
ENQ |
询问 |
6 |
6 |
006 |
ACK系列 |
承认 |
7 |
7 |
007 |
贝尔 |
钟 |
8 |
8 |
010 |
学士 |
退格键 |
9 |
9 |
011 |
标签 |
水平选项卡 |
10 |
一个 |
012 |
如果 |
线路馈送 |
11 |
B |
013 |
VT |
垂直选项卡 |
12 |
C |
014 |
FF公司 |
表单源 |
13 |
D |
015 |
铬 |
回车 |
14 |
E |
016 |
所以 |
移出 |
15 |
F |
017 |
四 |
换档 |
16 |
10 |
020 |
DLE |
数据链路逃逸 |
17 |
11 |
021 |
DC1 |
设备控制 1 |
18 |
12 |
022 |
DC2 |
设备控制 2 |
19 |
13 |
023 |
直流3 |
设备控制 3 |
20 |
14 |
024 |
直流4 |
设备控制 4 |
21 |
15 |
025 |
娜 |
否定确认 |
22 |
16 |
026 |
SYN |
同步空闲 |
23 |
17 |
027 |
ETB |
传输块结束 |
24 |
18 |
030 |
能 |
取消 |
25 |
19 |
031 |
电磁 |
培养基结束 |
26 |
1安 |
032 |
子 |
替代 |
27 |
1B |
033 |
电调 |
逃 |
28 |
1摄氏度 |
034 |
司 司长 |
文件分隔符 |
29 |
1D |
035 |
GS |
组分隔符 |
30 |
1E |
036 |
RS |
记录分隔符 |
31 |
1F |
037 |
我们 |
单元分隔符 |
12 月 |
十六进制 |
10月 |
煳 |
---|---|---|---|
32 |
20 |
040 |
空间 |
33 |
21 |
041 |
! |
34 |
22 |
042 |
|
35 |
23 |
043 |
# |
36 |
24 |
044 |
$ |
37 |
25 |
045 |
% |
38 |
26 |
046 |
& |
39 |
27 |
047 |
|
40 |
28 |
050 |
( |
41 |
29 |
051 |
) |
42 |
2 安培 |
052 |
* |
43 |
2B |
053 |
+ |
44 |
2C |
054 |
, |
45 |
二 维和 |
055 |
- |
46 |
2E |
056 |
. |
47 |
2F |
057 |
/ |
48 |
30 |
060 |
0 |
49 |
31 |
061 |
1 |
50 |
32 |
062 |
2 |
51 |
33 |
063 |
3 |
52 |
34 |
064 |
4 |
53 |
35 |
065 |
5 |
54 |
36 |
066 |
6 |
55 |
37 |
067 |
7 |
56 |
38 |
070 |
8 |
57 |
39 |
071 |
9 |
58 |
3安培 |
072 |
: |
59 |
3B |
073 |
; |
60 |
3C(英语:3C) |
074 |
< |
61 |
三维 |
075 |
= |
62 |
3E |
076 |
> |
63 |
3F |
077 |
? |
64 |
40 |
100 |
@ |
65 |
41 |
101 |
一个 |
66 |
42 |
102 |
B |
67 |
43 |
103 |
C |
68 |
44 |
104 |
D |
69 |
45 |
105 |
E |
70 |
46 |
106 |
F |
71 |
47 |
107 |
G |
72 |
48 |
110 |
H |
73 |
49 |
111 |
我 |
74 |
4 安培 |
112 |
J |
75 |
4B |
113 |
K |
76 |
4C |
114 |
L |
77 |
4D |
115 |
M |
78 |
4E |
116 |
N |
79 |
4F |
117 |
O |
80 |
50 |
120 |
P |
81 |
51 |
121 |
Q |
82 |
52 |
122 |
R |
83 |
53 |
123 |
S |
'84 年 |
54 |
124 |
T |
85 |
55 |
125 |
U |
86 |
56 |
126 |
V |
87 |
57 |
127 |
W |
88 |
58 |
130 |
X |
89 |
59 |
131 |
Y |
90 |
5安培 |
132 |
Z |
91 |
5B |
133 |
[ |
92 |
5C |
134 |
\ |
93 |
5D |
135 |
] |
94 |
5E |
136 |
^ |
95 |
5F |
137 |
_ |
96 |
60 |
140 |
` |
97 |
61 |
141 |
一个 |
98 |
62 |
142 |
b |
99 |
63 |
143 |
c |
100 |
64 |
144 |
d |
101 |
65 |
145 |
e |
102 |
66 |
146 |
f |
103 |
67 |
147 |
g |
104 |
68 |
150 |
h |
105 |
69 |
151 |
我 |
106 |
6 安培 |
152 |
j |
107 |
6乙 |
153 |
k |
108 |
6C |
154 |
l |
109 |
6D |
155 |
m |
110 |
6E |
156 |
n |
111 |
6F |
157 |
o |
112 |
70 |
160 |
p |
113 |
71 |
161 |
q |
114 |
72 |
162 |
r |
115 |
73 |
163 |
s |
116 |
74 |
164 |
t |
117 |
75 |
165 |
u |
118 |
76 |
166 |
v |
119 |
77 |
167 |
w |
120 |
78 |
170 |
x |
121 |
79 |
171 |
y |
122 |
7 安培 |
172 |
z |
123 |
7乙 |
173 |
{ |
124 |
7摄氏度 |
174 |
| |
125 |
7D |
175 |
} |
126 |
7E |
176 |
~ |
127 |
7F |
177 |
戴尔 |
128 |
80 |
200 |
Ç |
129 |
81 |
201 |
ü |
130 |
82 |
202 |
é |
131 |
83 |
203 |
â |
132 |
84 |
204 |
ä |
133 |
85 |
205 |
à |
134 |
86 |
206 |
å |
135 |
87 |
207 |
ç |
136 |
88 |
210 |
ê |
137 |
89 |
211 |
ë |
138 |
8安培 |
212 |
è |
139 |
8乙 |
213 |
ï |
140 |
8C(英语:8C) |
214 |
î |
141 |
8D |
215 |
ì |
142 |
8E |
216 |
Ä |
143 |
8F |
217 |
Å |
144 |
90 |
220 |
É |
145 |
91 |
221 |
æ |
146 |
92 |
222 |
æ |
147 |
93 |
223 |
ô |
148 |
94 |
224 |
ö |
149 |
95 |
225 |
ò |
150 |
96 |
226 |
û |
151 |
97 |
227 |
ù |
152 |
98 |
230 |
ÿ |
153 |
99 |
231 |
Ö |
154 |
9安培 |
232 |
Ü |
155 |
9乙 |
233 |
¢ |
156 |
9C |
234 |
£ |
157 |
9D |
235 |
¥ |
158 |
9E |
236 |
P |
159 |
9F |
237 |
ƒ |
160 |
答0 |
240 |
á |
161 |
答1 |
241 |
í |
162 |
答2 |
242 |
ó |
163 |
答3 |
243 |
ú |
164 |
答4 |
244 |
ñ |
165 |
答5 |
245 |
Ñ |
166 |
答6 |
246 |
ª |
167 |
答7 |
247 |
º |
168 |
答8 |
250 |
¿ |
169 |
答9 |
251 |
¬ |
170 |
机 管 局 |
252 |
|
171 |
血型 |
253 |
1/2 |
172 |
交流 |
254 |
1/4 |
173 |
广告 |
255 |
¡ |
174 |
AE |
256 |
" |
175 |
自动对焦 |
257 |
" |
176 |
B0 |
260 |
¦ |
177 |
B1 |
262 |
¦ |
178 |
B2层 |
262 |
¦ |
179 |
B3层 |
263 |
¦ |
180 |
B4层 |
264 |
¦ |
181 |
B5层 |
265 |
¦ |
182 |
B6型 |
266 |
¦ |
183 |
B7层 |
267 |
+ |
184 |
B8层 |
270 |
+ |
185 |
B9型 |
271 |
¦ |
186 |
八 |
272 |
¦ |
187 |
BB型 |
273 |
+ |
188 |
公元前 |
274 |
+ |
189 |
屋宇 署 |
275 |
+ |
190 |
是 |
276 |
+ |
191 |
高炉 |
277 |
+ |
192 |
C0 |
300 |
+ |
193 |
C1级 |
301 |
- |
194 |
C2级 |
302 |
- |
195 |
C3级 |
303 |
+ |
196 |
C4级 |
304 |
- |
197 |
C5级 |
305 |
+ |
198 |
C6级 |
306 |
¦ |
199 |
C7型 |
307 |
¦ |
200 |
C8型 |
310 |
+ |
201 |
C9型 |
311 |
+ |
202 |
CA |
312 |
- |
203 |
CB |
313 |
- |
204 |
抄送 |
314 |
¦ |
205 |
光盘 |
315 |
- |
206 |
CE |
316 |
+ |
207 |
CF型 |
317 |
- |
208 |
D0 |
320 |
- |
209 |
第1天 |
321 |
- |
210 |
D2 |
322 |
- |
211 |
第3天 |
323 |
+ |
212 |
D4 |
324 |
+ |
213 |
D5系列 |
325 |
+ |
214 |
D6系列 |
326 |
+ |
215 |
D7系列 |
327 |
+ |
216 |
D8系列 |
330 |
+ |
217 |
D9系列 |
331 |
+ |
218 |
大 |
332 |
+ |
219 |
分贝 |
333 |
¦ |
220 |
直流 |
334 |
_ |
221 |
DD |
335 |
¦ |
222 |
德 |
336 |
¦ |
223 |
测向 |
337 |
¯ |
224 |
E0 |
340 |
一个 |
225 |
E1 |
341 |
ß |
226 |
E2 |
342 |
G |
227 |
E3 |
343 |
p |
228 |
E4 |
344 |
S |
229 |
E5 |
345 |
s |
230 |
E6 |
346 |
μ |
231 |
E7 |
347 |
t |
232 |
E8型 |
350 |
F |
233 |
E9 |
351 |
T |
234 |
EA |
352 |
O |
235 |
EB |
353 |
d |
236 |
电子商务 |
354 |
8 |
237 |
急诊科 |
355 |
f |
238 |
EE系列 |
356 |
e |
239 |
英 孚 |
357 |
n |
240 |
F0 |
360 |
= |
241 |
F1级 |
361 |
+/- |
242 |
F2 键 |
362 |
= |
243 |
F3 |
363 |
= |
244 |
F4 |
364 |
( |
245 |
F5 |
365 |
) |
246 |
F6 |
366 |
÷ |
247 |
F7 |
367 |
˜ |
248 |
F8 |
370 |
° |
249 |
F9 |
371 |
﹒ |
250 |
发 |
372 |
﹒ |
251 |
FB的 |
373 |
v |
252 |
FC |
374 |
n |
253 |
FD型 |
375 |
² |
254 |
铁 |
376 |
¦ |
255 |
FF公司 |
377 |
|
示例:配置 IDP 协议解码器
此示例说明如何配置 IDP 协议解码器可调参数。
要求
开始之前,请查看 IDP 协议解码器功能。请参阅 了解 IDP 协议解码器。
概述
Junos IDP 模块随附一组预配置的协议解码器。这些协议解码器具有默认设置,用于它们执行的各种特定于协议的上下文检查。您可以使用默认设置,也可以根据网站的特定需求进行调整。此示例说明如何针对 FTP 调整协议解码器。
配置
程序
分步过程
要配置 IDP 协议解码器可调参数,请执行以下作:
查看具有可调参数的协议列表。
[edit] user@host# edit security idp sensor-configuration detector protocol-name FTP
配置FTP协议的可调参数。
[edit security idp sensor-configuration-detector protocol-name FTP] user@host# set tunable-name sc_ftp_failed_logins tunable-value 4 user@host# set tunable-name sc_ftp_failed_flags tunable value 1 user@host# set tunable-name sc_ftp_line_length tunable-value 1024 user@host# set tunable-name sc_ftp_password_length tunable-value 64 user@host# set tunable-name sc_ftp_sitestring_length tunable-value 512 user@host# set tunable-name sc_ftp_username_length tunable-value 32
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security idp status
命令。
了解多 IDP 检测器支持
接收到新的安全包时,其中包含攻击定义和检测器。在任何给定版本的安全包中,攻击定义都与所包含检测器的功能相对应。在设备上禁用策略老化时(请参阅策略老化命令,请参阅策略时重置语句),在任何给定时间只有一个策略生效。但是,如果启用了策略老化,并且存在策略更新,则在加载新策略时不会卸载现有策略。因此,这两种策略都可以在设备上生效。在这种情况下,所有现有会话将继续由现有策略进行检查,而新会话将由新策略进行检查。一旦使用旧策略的所有现有会话都终止或过期,旧策略就会卸载。
加载策略时,它还与检测器相关联。如果正在加载的新策略具有与现有策略已在使用的检测器匹配的关联检测器,则不会加载新检测器,并且两个策略都使用一个关联的检测器。但是,如果新检测器与当前检测器不匹配,则新检测器将与新策略一起加载。在这种情况下,每个加载的策略将使用其自己的关联检测器进行攻击检测。
请注意,在任何给定时间最多可以加载两个检测器。如果已经加载了两个检测器(通过两个或多个策略),并且加载新策略需要同时加载新的检测器,则在加载新检测器之前,必须卸载至少一个加载的检测器。在卸载检测器之前,也会卸载使用相应检测器的所有策略。
输入以下命令,可以查看当前策略和对应的检测器版本:
user@host> show security idp status
从 Junos OS 18.4R1 版开始,加载新的 IDP 策略时,将使用新加载的策略检查现有会话,并且不会忽略现有会话以进行 IDP 处理。加载新 IDP 策略后,针对检测器创建的基于上下文的攻击,IDP 检查将继续进行,但加载了新检测器的新策略除外。
了解内容解压缩
在HTTP等应用协议中,内容可以被压缩,然后通过网络传输。模式不会与压缩内容匹配,因为写入签名模式是为了匹配未编码的流量数据。在这种情况下,IDP 检测将被规避。为了避免对 HTTP 压缩内容进行 IDP 检测规避,添加了一个 IDP 子模块来解压缩协议内容。对解压缩内容进行签名模式匹配。
要显示所有 IPS 计数器值的状态,请输入以下命令:
user@host> show security idp counters ips
一些攻击是通过压缩内容引入的。当内容被解压缩时,它可能会膨胀到非常大的大小,占用宝贵的系统资源,从而导致拒绝服务。这种类型的攻击可以通过解压缩数据大小与压缩数据大小的比率来识别。content-decompress-ratio-over-limit 计数器标识已超过此比率的事件数。默认比率被视为与典型环境一致。但是,在某些情况下,可能需要通过重置 content-decompress-ratio-over-limit
值来调整此比率。但是请记住,较高的比率会降低检测到此类攻击的机会。
content-decompress-memory-over-limit 计数器标识解压缩数据量超过分配内存的事件数。默认内存分配为每个会话提供 33 KB,用于需要同时解压缩的平均会话数。若要确定此值是否与您的环境一致,请分析与解压缩相关的计数器中的值和遍历设备的 IDP 会话总数,并估计同时需要解压缩的会话数。假设每个会话都需要 33 KB 的内存进行解压缩,请将估计需求与默认值进行比较。如有必要,可以通过重置 content-decompression-max-memory-kb
值来调整内存分配。请注意,由于内容解压缩需要大量内存分配,因此增加用于解压缩的最大内存分配将影响系统性能。
示例:配置 IDP 内容解压缩
此示例说明如何配置 IDP 内容解压缩。
要求
开始之前,请查看 IDP 内容解压缩功能。请参阅 了解内容解压缩
概述
默认情况下,解压缩功能处于禁用状态。在此示例中,您将启用检测器,将最大内存配置为 50,000 KB,并将最大解压缩比配置为 16:1。
启用解压缩将导致设备性能下降。
配置
程序
分步过程
要配置 IDP 内容解压缩,请执行以下作:
启用检测器。
[edit] user@host# set security idp sensor‑configuration detector protocol‑name HTTP tunable‑name sc_http_compress_inflating tunable‑value 1
注意:要禁用检测器,请
tunable‑value
将 设置为 0。如有必要,请修改最大内存(以千字节为单位)。
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-memory-kb 50000
如有必要,请配置最大减压比。
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-ratio 16
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security idp status ips
命令。内容解压缩计数器提供有关解压缩处理的统计信息。
了解 IDP 基于签名的攻击
要配置自定义攻击对象,请为其指定唯一名称,然后指定其他信息,以便更轻松地查找和维护攻击对象。
攻击对象定义中的某些属性对于所有类型的攻击都是通用的,例如攻击名称、严重性级别、服务或应用程序绑定、时间绑定以及协议或端口绑定。某些字段特定于攻击类型,并且仅可用于该特定攻击定义。
签名攻击对象使用状态攻击签名(一种始终存在于攻击的特定部分中的模式)来检测已知攻击。它们还包括用于实施攻击的协议或服务以及发生攻击的上下文。以下属性特定于签名攻击,您可以在配置签名攻击时配置这些属性:攻击上下文、攻击方向、攻击模式和协议特定参数(TCP、UDP、ICMP 或 IP 报头字段)。
配置基于签名的攻击时,请记住以下几点:
攻击上下文和方向是签名攻击定义的必填字段。
模式否定仅适用于数据包、线路和基于应用的上下文,而不支持流和规范化流上下文。
配置特定于协议的参数时,您只能为以下协议之一指定字段:IP、TCP、UDP 或 ICMP。
配置协议绑定时,只能指定以下选项之一:IP、ICMP、TCP、UDP、RPC 或应用程序。
IP — 协议编号为必填字段。
TCP 和 UDP — 您可以指定单个端口 (
minimum-port
) 或端口范围 (minimum-port
和maximum-port
)。如果未指定端口,则采用默认值 (0-65535
)。RPC - 程序编号为必填字段。
从 Junos OS 19.1R1 版开始,您可以使用 Hyperscan 扩展参数配置基于签名的攻击。通过为 Hyperscan 扩展参数设置最佳值,可以显著增强攻击模式匹配过程。
要配置扩展参数,请在[edit security idp custom-attack attack-name attack-type signature]
层次结构级别包括optional-parameters
选项。您可以在选项optional-parameters
下配置以下参数:
min-offset
max-offset
min-length
Hyperscan API 的简要工作原理 – Hyperscan 是一种软件正则表达式匹配引擎,旨在提供高性能和灵活性。当将带有模式的签名配置为 IDP 策略的一部分时,该模式将被标识为正则表达式。在路由引擎上,Hyperscan 将此正则表达式作为输入,并将其编译成一个数据库,该数据库被推送到数据包转发引擎。当数据包进入数据包转发引擎时,会检查数据包中的数据,以确定它是否与使用数据库的正则表达式匹配。
如果 IDP 策略配置了一组签名,则会形成确定性有限自动机 (DFA) 组。DFA 组中所有签名的模式被传递给 Hyperscan,形成一个单一的数据库,该数据库可用于一次检查数据包中的所有攻击。由于每次攻击都使用单个数据库而不是单独的数据库,因此模式匹配过程非常有效。
当使用扩展参数配置签名时,Hyperscan API 会考虑配置的参数来形成数据库。模式匹配过程发生在使用此新数据库的数据数据包转发引擎上。这些参数允许在编译时约束模式生成的匹配项集,而不是依赖应用程序在运行时处理不需要的匹配项。
另见
示例:配置 IDP 基于签名的攻击
此示例说明如何创建基于签名的攻击对象。
要求
开始之前,请配置网络接口。
概述
在此示例中,您将创建名为 sig1 的签名攻击,并为其分配以下属性:
建议作(丢弃数据包) — 在匹配数据包到达其目标之前丢弃该数据包,但不会关闭连接。
时间绑定 - 将范围指定为
source
,将计数指定为10
。当 scope 为source
时,将计算来自同一源的所有攻击,当攻击次数达到指定的计数 (10
) 时,将记录攻击。在此示例中,记录来自同一来源的每十次攻击。攻击上下文(数据包) — 匹配数据包内的攻击模式。
攻击方向(任意) — 检测两个方向的攻击:客户端到服务器和服务器到客户端流量。
协议 (TCP) — 指定 TTL 值 128。
Shellcode (Intel) — 设置用于检测 Intel 平台的 shellcode 的标志。
协议绑定 — 指定 TCP 协议和端口 50 到 100。
配置基于签名的攻击对象后,您可以在 IDP 策略规则中将攻击指定为匹配条件。请参阅 示例:定义 IDP IPS 规则库的规则。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中,然后从配置模式进入 commit
。
set security idp custom-attack sig1 severity major set security idp custom-attack sig1 recommended-action drop-packet set security idp custom-attack sig1 time-binding scope source count 10 set security idp custom-attack sig1 attack-type signature context packet set security idp custom-attack sig1 attack-type signature shellcode intel set security idp custom-attack sig1 attack-type signature protocol ip ttl value 128 match equal set security idp custom-attack sig1 attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100 set security idp custom-attack sig1 attack-type signature direction any
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要创建基于签名的攻击对象,请执行以下作:
指定攻击的名称。
[edit] user@host# edit security idp custom-attack sig1
指定攻击的通用属性。
[edit security idp custom-attack sig1] user@host# set severity major user@host# set recommended-action drop-packet user@host# set time-binding scope source count 10
指定攻击类型和上下文。
[edit security idp custom-attack sig1] user@host# set attack-type signature context packet
指定攻击方向和 shellcode 标志。
[edit security idp custom-attack sig1] user@host# set attack-type signature shellcode intel
设置协议及其字段。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol ip ttl value 128 match equal
指定协议绑定和端口。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100
指定方向。
[edit security idp custom-attack sig1] user@host# set attack-type signature direction any
结果
在配置模式下,输入 show security idp
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show security idp custom-attack sig1 { recommended-action drop-packet; severity major; time-binding { count 10; scope source; } attack-type { signature { protocol-binding { tcp { minimum-port 50 maximum-port 100; } } context packet; direction any; shellcode intel; protocol { ip { ttl { match equal; value 128; } } } } } }
如果完成设备配置,请从配置模式输入 commit
。
了解 IDP 协议基于异常的攻击
协议异常攻击对象检测违反协议规范(RFC 和常见 RFC 扩展)的未知或复杂攻击。您无法创建新的协议异常,但可以配置新的攻击对象,以控制设备在检测到预定义协议异常时如何处理。
以下属性特定于协议异常攻击:
攻击方向
测试条件
配置基于协议异常的攻击时,请记住以下几点:
服务或应用绑定是协议异常攻击的必填字段。除了支持的应用程序外,服务还包括 IP、TCP、UDP、ICMP 和 RPC。
攻击方向和测试条件属性是配置异常攻击定义的必填字段。
示例:配置 IDP 协议基于异常的攻击
此示例说明如何创建基于协议异常的攻击对象。
要求
开始之前,请配置网络接口。
概述
在此示例中,您将创建名为 anomaly1 的协议异常攻击,并为其分配以下属性:
时间绑定 — 指定范围 AS
peer
2
和计数 AS,以检测指定次数的会话的源 IP 地址和目标 IP 地址之间的异常。严重性(信息)— 提供有关与条件匹配的任何攻击的信息。
攻击方向(任意) — 检测两个方向的攻击:客户端到服务器和服务器到客户端流量。
服务 (TCP) — 使用 TCP 服务匹配攻击。
测试条件 (OPTIONS_UNSUPPORTED) - 匹配某些预定义的测试条件。在此示例中,条件是匹配攻击是否包含不受支持的选项。
Shellcode (sparc) — 设置用于检测 Sparc 平台的 shellcode 的标志。
配置基于协议异常的攻击对象后,可以在 IDP 策略规则中将攻击指定为匹配标准。请参阅 示例:定义 IDP IPS 规则库的规则。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中,然后从配置模式进入 commit
。
set security idp custom-attack anomaly1 severity info set security idp custom-attack anomaly1 time-binding scope peer count 2 set security idp custom-attack anomaly1 attack-type anomaly test OPTIONS_UNSUPPORTED set security idp custom-attack sa set security idp custom-attack sa attack-type anomaly service TCP set security idp custom-attack sa attack-type anomaly direction any set security idp custom-attack sa attack-type anomaly shellcode sparc
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要创建基于协议异常的攻击对象,请执行以下作:
指定攻击的名称。
[edit] user@host# edit security idp custom-attack anomaly1
指定攻击的通用属性。
[edit security idp custom-attack anomaly1] user@host# set severity info user@host# set time-binding scope peer count 2
指定攻击类型和测试条件。
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly test OPTIONS_UNSUPPORTED
指定异常攻击的其他属性。
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly service TCP user@host# set attack-type anomaly direction any user@host# attack-type anomaly shellcode sparc
结果
在配置模式下,输入 show security idp
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show security idp custom-attack anomaly1 { severity info; time-binding { count 2; scope peer; } attack-type { anomaly { test OPTIONS_UNSUPPORTED; service TCP; direction any; shellcode sparc; } } }
如果完成设备配置,请从配置模式输入 commit
。
IDP 策略配置概述
借助 Junos OS 入侵检测和防御 (IDP) 策略,您可以选择性地对通过启用 IDP 的设备传输的网络流量实施各种攻击检测和防御技术。您可以通过该解决方案定义策略规则,以根据区域、网络和应用匹配某一部分流量,然后针对该流量采取主动或被动防御措施。
IDP 策略定义设备处理网络流量的方式。它允许您对遍历网络的流量实施各种攻击检测和防御技术。
策略由规则库组成,每个规则库包含一组规则。您可以定义规则参数,例如流量匹配条件、作和日志记录要求,然后将规则添加到规则库中。通过在一个或多个规则库中添加规则来创建 IDP 策略后,您可以选择该策略作为设备上的活动策略。
要配置 IDP 策略,请执行以下步骤:
在安全策略中启用 IDP。
配置 IDP 策略规则、IDP 规则库和 IDP 规则作。请参阅 示例:在 IDP 规则库中插入规则 、 示例:定义 IDP IPS 规则库的规则和 示例:在安全设备上配置和应用重写规则 主题。
配置 IDP 自定义签名。请参阅 了解 IDP 基于签名的攻击 和 示例:配置 IDP 基于签名的攻击 主题。
更新 IDP 签名数据库。请参阅 更新 IDP 签名数据库概述。
IPv6 隐蔽通道概述
隐蔽通道是一种攻击技术,它允许通过未经授权或非法的方式通过现有信息通道传输对象来通信信息。借助隐蔽通道,攻击者可以在网络中进行恶意活动。
从 Junos OS 19.1R1 版开始,入侵检测和防御 (IDP) 支持 IPv6 扩展标头的隐蔽通道识别和缓解。信息传输违反了现有的安全系统。IDP 安全包包含一个数据库,其中包含用于隐蔽通道的预定义 IDP 攻击对象数据库,您可以在 IDP 策略中使用该数据库将流量与攻击进行匹配。
作为此支持的一部分,您可以检测和标记 IPv6 扩展报头异常,从而可以建立隐蔽通道并采取策略中指定的作。隐蔽通道攻击与其他攻击一起显示。Show security idp attack table
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。
interval interval-value
在层次结构中
[edit security idp custom-attack attack-name time-binding]
引入语句以配置自定义时间绑定。
set security idp custom-attack
命令验证语句。