MS-MPC 和 MS-MIC 上的网络攻击防护
了解 MS-MPC 上的 IDS
入侵检测服务
MS-MPC 上的入侵检测服务 (IDS) 规则为您提供了一种识别和丢弃属于网络攻击部分的流量的方法。
与防火墙过滤器和监管器相比,IDS 规则提供更精细的过滤级别,可以阻止非法 TCP 标志和其他不良标志组合,并可以实施常规速率限制(请参阅 路由策略、防火墙过滤器和流量监管器用户指南)。您可以将防火墙过滤器和监管器与 IDS 一起使用,以减少需要由 IDS 规则处理的流量。
在 IDS 规则中,您可以指定:
对源自单个源或在单个目标终止的会话的限制。这样可以防止网络探测和泛洪攻击。
要丢弃的可疑数据包类型。
为了防止标头异常攻击,如果配置 IDS 规则、状态防火墙规则或 NAT 规则并将其应用于服务集,则会自动执行标头完整性检查。如果未为服务集分配 IDS 规则、状态防火墙规则或 NAT 规则,也可以为服务集显式配置标头完整性检查。
优势
针对多种网络攻击提供保护。
会话限制
您可以使用 IDS 规则为从单个源或到单个目标的流量设置会话限制。这样可以防止网络探测和泛洪攻击。超过会话限制的流量将被丢弃。您可以为具有特定 IP 协议(如 ICMP)的流量或常规流量指定会话限制。
您可以决定这些限制是应用于单个地址,还是适用于来自特定前缀长度的各个子网的流量聚合。例如,如果聚合前缀长度为 24 的 IPv4 子网的限制,则来自 192.0.2.2 和 192.0.2.3 的流量将计入 192.0.2.0/24 子网的限制。
会话限制可防御的一些常见网络探测和泛洪攻击包括:
| ICMP Address Sweep | 攻击者向多个目标发送 ICMP 请求探测 (ping)。如果目标计算机回复,攻击者将收到目标的 IP 地址。 |
| ICMP Flood | 攻击者通过从一个或多个源 IP 地址发送大量 ICMP 数据包来泛洪目标计算机。目标计算机在尝试处理这些 ICMP 数据包时会耗尽其资源,并且无法再处理有效流量。 |
| TCP Port Scan | 攻击者将 TCP SYN 数据包从一个源发送到目标计算机的多个目标端口。如果目标从一个或多个目标端口回复 SYN-ACK,攻击者将获知目标上哪些端口处于打开状态。 |
| TCP SYN Flood | 攻击者通过从一个或多个源 IP 地址发送大量 TCP SYN 数据包来泛洪目标计算机。攻击者可能使用真实源 IP 地址,导致 TCP 连接完成,也可能使用虚假源 IP 地址,导致 TCP 连接未完成。目标为所有已完成和未完成的 TCP 连接创建状态。目标在尝试管理连接状态时会耗尽其资源,并且无法再处理有效流量。 |
| UDP Flood | 攻击者从一个或多个源 IP 地址发送大量 UDP 数据包,从而泛洪目标计算机。目标计算机在尝试处理这些 UDP 数据包时会耗尽其资源,并且无法再处理有效流量。 |
从源或到目标的流量的会话限制包括:
最大并发会话数
每秒最大数据包数
每秒最大连接数
当出现以下情况时,IDS 还会在线卡的 PFE 上安装动态过滤器,以防可疑活动:
单个源地址或目标地址(非子网)的每秒数据包数或每秒连接数超过IDS规则中会话限制的四倍。此会话限制是 IDS 规则的常规源或目标限制,而不是为特定协议指定的限制。
服务卡 CPU 利用率百分比超过配置值(默认值为 90%)。
动态过滤器会丢弃 PFE 处的可疑流量,并且流量不会发送到 MS-MPC 以由 IDS 规则处理。当数据包或连接速率不再超过 IDS 规则中限制的四倍时,动态过滤器将被删除。
可疑数据包模式
您可以使用 IDS 规则来识别和丢弃具有可疑数据包模式的流量。这样可以防止攻击者伪造异常数据包来发动拒绝服务攻击。
您可以在 IDS 规则中指定的可疑数据包模式和攻击包括:
| ICMP fragmentation attack | 攻击者发送目标 ICMP 数据包,即 IP 分段。这些数据包被视为可疑数据包,因为 ICMP 数据包通常很短。当目标收到这些数据包时,其结果可能从错误处理数据包到导致整个系统崩溃不等。 |
| ICMP large packet attack | 攻击者发送 IP 长度大于 1024 字节的目标 ICMP 帧。这些被视为可疑数据包,因为大多数 ICMP 消息都很小。 |
| ICMP Ping of death attack | 攻击者向目标 ICMP ping 数据包发送 IP 数据报长度 (ip_len) 超过其最大合法长度 (65,535 字节) 的数据包,并且数据包被分段。当目标尝试重组 IP 数据包时,可能会发生缓冲区溢出,从而导致系统崩溃、冻结和重启。 |
| IP Bad option attack | 攻击者发送的目标数据包格式不正确的 IPv4 选项或 IPv6 扩展标头。这可能会导致不可预测的问题,具体取决于路由器和目标的 IP 堆栈实施。 |
| IPv4 options | 攻击者可能会恶意使用 IPv4 选项进行拒绝服务攻击。 |
| IPv6 extension headers | 攻击者可能会恶意地使用扩展标头进行拒绝服务攻击或绕过过滤器。 |
| IP teardrop attack | 攻击者向目标发送重叠的分片 IP 数据包。目标计算机在尝试重组数据包时会耗尽其资源,并且无法再处理有效流量。 |
| IP unknown protocol attack | 攻击者发送的目标数据包的协议号大于 IPv4 的协议号大于 137,IPv6 的协议号大于 139。未知协议可能是恶意的。 |
| Land attack | 攻击者向目标发送欺骗性的 SYN 数据包,这些数据包包含目标的 IP 地址作为目标和源 IP 地址。目标在重复回复自己时会耗尽其资源。在陆地攻击的另一种变体中,SYN 数据包也包含相同的源端口和目标端口。 |
| SYN fragment attack | 攻击者发送目标 SYN 数据包分段。目标缓存 SYN 片段,等待剩余片段到达,以便重新组装它们并完成连接。大量 SYN 碎片最终会填满主机的内存缓冲区,导致有效的流量连接中断。 |
| TCP FIN No ACK attack | 攻击者发送设置了 FIN 位但未设置 ACK 位的目标 TCP 数据包。这可能允许攻击者识别目标的作系统或识别目标上的开放端口。 |
| TCP no flag attack | 攻击者发送不包含任何标志的目标 TCP 数据包。这可能会导致目标出现不可预测的行为,具体取决于目标的 TCP 堆栈实现。 |
| TCP SYN FIN attack | 攻击者发送同时设置了 SYN 和 FIN 位的目标 TCP 数据包。这可能会导致目标出现不可预测的行为,具体取决于目标的 TCP 堆栈实现。 |
| TCP WinNuke attack | 攻击者发送一个 TCP 分段,其中设置了紧急 (URG) 标志,其目的地是运行 Windows 的目标的端口 139。这可能会导致目标计算机崩溃。 |
标头异常攻击
为了防止标头异常攻击,如果配置 IDS 规则、状态防火墙规则或 NAT 规则并将其应用于服务集,则会自动执行标头完整性检查。如果未为服务集分配 IDS 规则、状态防火墙规则或 NAT 规则,也可以为服务集显式配置标头完整性检查。
标头完整性检查可防止以下标头异常攻击:
| ICMP Ping of death attack | 攻击者向目标 ICMP ping 数据包发送 IP 数据报长度 (ip_len) 超过其最大合法长度 (65,535 字节) 的数据包,并且数据包被分段。当目标尝试重组 IP 数据包时,可能会发生缓冲区溢出,从而导致系统崩溃、冻结和重启。 |
| IP unknown protocol attack | 攻击者发送的目标数据包的协议号大于 IPv4 的协议号大于 137,IPv6 的协议号大于 139。未知协议可能是恶意的。 |
| TCP no flag attack | 攻击者发送不包含任何标志的目标 TCP 数据包。这可能会导致目标出现不可预测的行为,具体取决于目标的 TCP 堆栈实现。 |
| TCP SYN FIN attack | 攻击者发送同时设置了 SYN 和 FIN 位的目标 TCP 数据包。这可能会导致目标出现不可预测的行为,具体取决于目标的 TCP 堆栈实现。 |
| TCP FIN No ACK attack | 攻击者发送设置了 FIN 位但未设置 ACK 位的目标 TCP 数据包。这可能允许攻击者识别目标的作系统或识别目标上的开放端口。 |
在 MS-MPC 上配置网络攻击防护
本主题包含以下任务,其中介绍了在使用 MS-MPC 时如何防范网络攻击:
配置针对网络探测、网络泛洪和可疑模式攻击的防护
配置入侵检测服务 (IDS) 规则,然后将该规则应用于 MS-MPC 上的服务集,即可配置针对网络探测攻击、网络泛洪攻击和可疑模式攻击的防护。仅使用 IDS 规则的第一个术语,并且仅使用服务集的第一个 IDS 输入规则和第一个 IDS 输出规则。
配置针对网络探测、网络泛洪和可疑模式攻击的防护措施包括:
- 配置 IDS 规则名称和方向
- 配置子网的会话限制
- 独立于协议配置会话限制
- 配置 ICMP 地址扫描保护
- 配置 TCP 端口扫描程序保护
- 配置 ICMP 泛洪保护
- 配置 UDP 泛洪保护
- 配置 TCP SYN 泛洪保护
- 配置 ICMP 分片保护
- 配置 ICMP 大数据包保护
- 配置 IP 错误选项保护
- 配置陆地攻击防护
- 配置 TCP SYN 分段保护
- 配置 WinNuke 保护
- 配置服务集
配置 IDS 规则名称和方向
对于每个 IDS 规则,您必须配置一个名称和应用该规则的流量方向。
要配置 IDS 规则名称和方向:
配置子网的会话限制
如果要将会话限制应用于进出单个目标或源子网(而不是单个地址)的所有攻击的聚合,请配置聚合。
要配置子网聚合:
独立于协议配置会话限制
如果要为发往单个目标或来自独立于协议的单个源的流量配置会话限制,请执行以下一项或多项任务:
配置 ICMP 地址扫描保护
要配置针对 ICMP 地址扫描的保护,请为源配置允许的最大 ICMP 并发会话数、每秒数据包数和每秒连接数的任意组合:
配置 TCP 端口扫描程序保护
要配置针对 TCP 端口扫描程序攻击的保护,请为源或目标配置允许的最大 TCP 并发会话数和每秒连接数的任意组合:
配置 ICMP 泛洪保护
要配置针对 ICMP 泛洪攻击的防护,请为目标配置允许的最大 ICMP 并发会话数、每秒数据包数和每秒连接数的任意组合:
配置 UDP 泛洪保护
要配置针对 UDP 泛洪攻击的保护,请为目标配置允许的最大 UDP 并发会话数、每秒数据包数和每秒连接数的任意组合:
配置 TCP SYN 泛洪保护
要配置针对 TCP SYN 泛洪攻击的防护,请为源或目标配置允许的最大 TCP 并发会话数、每秒数据包数和每秒连接数的任意组合。您还可以配置在超时后关闭未建立的 TCP 连接:
配置 ICMP 分片保护
要防范 ICMP 分段攻击:
配置作为 IP 分段的 ICMP 数据包的识别和丢弃。
[edit services ids rule rule-name term term-name then] user@host# set icmp-fragment-check
配置 ICMP 大数据包保护
要防范 ICMP 大数据包攻击:
配置识别和丢弃大于 1024 字节的 ICMP 数据包。
[edit services ids rule rule-name term term-name then] user@host# set icmp-large-packet-check
配置 IP 错误选项保护
要防止不良 IPv4 选项或 IPv6 扩展标头攻击,请执行以下作:
配置陆地攻击防护
要防止陆地攻击:
配置识别和丢弃具有相同源和目标 IP 地址或相同源和目标 IP 地址和端口的 SYN 数据包。
[edit services ids rule rule-name term term-name then] user@host# set land-attack-check (ip-only | ip-port)
要指定数据包具有相同的源和目标 IP 地址,请使用该
ip-only选项;要指定数据包具有相同的源和目标 IP 地址和端口,请使用该ip-port选项。
配置 TCP SYN 分段保护
要防止 TCP SYN 分段攻击:
配置作为 IP 分段的 TCP SYN 数据包的识别和丢弃:
[edit services ids rule rule-name term term-name then] user@host# set tcp-syn-fragment-check
配置 WinNuke 保护
要防止 WinNuke 攻击:
配置识别和丢弃发往端口 139 并设置了紧急 (URG) 标志的 TCP 分段。
[edit services ids rule rule-name term term-name then] user@host# set tcp-winnuke-check
配置服务集
要将 IDS 规则作应用于服务集:
配置标头异常攻击防护
使用以下任一方法启用标头完整性检查,丢弃任何具有标头异常的数据包,以防止标头异常攻击:
配置 MS-MPC 上的网络攻击防护丢包日志记录
要配置由于标头完整性、可疑数据包模式以及 MS-MPC 执行的会话限制检查而导致的数据包丢弃日志记录: