IP 地址扫描和端口扫描
当一个源 IP 地址在预定义的时间间隔内向各个主机发送预定义数量的 ICMP 数据包时,就会发生地址扫描。当一个源 IP 地址在预定义的时间间隔内将包含 TCP SYN 分段的 IP 数据包发送到同一目标 IP 地址的预定义数量的不同端口时,将进行端口扫描。有关详细信息,请参阅以下主题:
了解使用 IP 选项的网络侦测
IP 标准 RFC 791( 互联网协议)指定了一组用于提供特殊路由控制、诊断工具和安全性的选项。
RFC 791 指出,这些选项“对于最常见的通信是不必要的”,实际上,它们很少出现在 IP 数据包标头中。这些选项显示在 IP 数据包标头中目标地址之后,如图 1 所示。当它们确实出现时,它们经常被非法使用。
本主题包含以下部分:
IP 数据包头选项的用途
表 1 列出了 IP 选项及其附带属性。
类型 |
类 |
数量 |
长度 |
预期用途 |
恶意使用 |
---|---|---|---|---|---|
选项结束 |
0* |
0 |
0 |
指示一个或多个 IP 选项的结束。 |
没有。 |
无选项 |
0 |
1 |
0 |
指示标头中没有 IP 选项。 |
没有。 |
安全 |
0 |
2 |
11 位 |
为主机提供一种发送与国防部 (DoD) 要求兼容的安全、TCC(封闭用户组)参数和处理限制代码的方法。(RFC 791“ 互联网协议 ”和 RFC 1038“ 修订的 IP 安全选项 ”中指定的此选项已过时。 目前,此屏幕选项仅适用于 IPv4。 |
未知。但是,由于它已过时,因此它在 IP 标头中的存在是可疑的。 |
松散源路由 |
0 |
3 |
不同 |
指定数据包在从源到目标的旅程中要执行的部分路由列表。数据包必须按指定的地址顺序继续前进,但允许在指定的地址之间通过其他设备。 |
规避。攻击者可以使用指定的路由来隐藏数据包的真正来源或访问受保护的网络。 |
记录路由 |
0 |
7 |
不同 |
记录 IP 数据包传输路径沿网络设备的 IP 地址。然后,目标计算机可以提取和处理路由信息。(由于选项和存储空间的大小限制为 40 字节,因此最多只能记录 9 个 IP 地址。 目前,此屏幕选项仅适用于 IPv4。 |
侦察。如果目标主机是攻击者控制下的受感染计算机,他或她可以收集有关数据包通过的网络的拓扑和寻址方案的信息。 |
流 ID |
0 |
8 |
4 位 |
(已过时)提供了一种通过不支持流概念的网络传输 16 位 SATNET 流标识符的方法。 目前,此屏幕选项仅适用于 IPv4。 |
未知。但是,由于它已过时,因此它在 IP 标头中的存在是可疑的。 |
严格源路由 |
0 |
9 |
不同 |
指定数据包在从源到目标的旅程中要执行的完整路由列表。列表中的最后一个地址将替换目标字段中的地址。 目前,此屏幕选项仅适用于 IPv4。 |
规避。攻击者可以使用指定的路由来隐藏数据包的真正来源或获取对受保护网络的访问权限。 |
时间 戳 |
2** |
4 |
|
记录每个网络设备在从起点到目的地的行程中接收数据包的时间(采用协调世界时 [UTC]***)。网络设备由 IP 地址标识。 此选项会生成数据包路径上的设备 IP 地址列表以及每个设备之间的传输持续时间。 目前,此屏幕选项仅适用于 IPv4。 |
侦察。如果目标主机是攻击者控制下的受感染计算机,则他或她可以收集有关数据包所通过的网络的拓扑和寻址方案的信息。 |
* 标识为 0 的选项类旨在提供额外的数据包或网络控制。 ** 标识为 2 的选项类设计用于诊断、调试和测量。 时间戳使用自 UTC 午夜以来的毫秒数。UTC也被称为格林威治标准时间(GMT),它是国际时间标准的基础。 |
用于检测用于侦测的 IP 选项的屏幕选项
以下屏幕选项检测攻击者可用于侦察或用于某些未知但可疑目的的 IP 选项:
记录路由 — Junos OS 检测 IP 选项为 7 的数据包(记录路由),并将事件记录在入口接口的屏幕计数器列表中。目前,此屏幕选项仅适用于 IPv4。
时间戳 — Junos OS 检测 IP 选项列表包含选项 4(互联网时间戳)的数据包,并将事件记录在入口接口的屏幕计数器列表中。目前,此屏幕选项仅适用于 IPv4。
安全性 — Junos OS 检测 IP 选项为 2(安全)的数据包,并将事件记录在入口接口的屏幕计数器列表中。目前,此屏幕选项仅适用于 IPv4。
流 ID — Junos OS 检测 IP 选项为 8(流 ID)的数据包,并将事件记录在入口接口的屏幕计数器列表中。目前,此屏幕选项仅适用于 IPv4。
如果收到具有上述任何 IP 选项的数据包,Junos OS 会将其标记为网络侦测攻击,并记录入口接口的事件。
示例:检测使用 IP 筛选选项进行侦测的数据包
此示例说明如何检测使用 IP 屏幕选项进行侦测的数据包。
要求
在开始之前,请了解网络侦测的工作原理。请参阅 了解使用 IP 选项的网络侦察。
概述
RFC 791( 互联网协议 )指定了一组用于提供特殊路由控制、诊断工具和安全性的选项。屏幕选项检测攻击者可用于侦测的 IP 选项,包括记录路由、时间戳、安全性和流 ID。
在此示例中,您将配置 IP 屏幕屏幕 1,并在名为区域 1 的安全区域中启用它。
您只能在一个安全区域中启用一个屏幕。
拓扑
配置
程序
CLI 快速配置
要使用记录路由、时间戳、安全性和流 ID IP 屏幕选项快速检测数据包,请复制以下命令并将其粘贴到 CLI 中。
[edit] set security screen ids-option screen-1 ip record-route-option set security screen ids-option screen-1 ip timestamp-option set security screen ids-option screen-1 ip security-option set security screen ids-option screen-1 ip stream-option set security zones security-zone zone-1 screen screen-1
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要检测使用 IP 屏幕选项进行侦测的数据包,请执行以下操作:
配置 IP 屏幕选项。
注意:目前,这些屏幕选项仅支持 IPv4。
[edit security screen] user@host# set ids-option screen-1 ip record-route-option user@host# set ids-option screen-1 ip timestamp-option user@host# set ids-option screen-1 ip security-option user@host# set ids-option screen-1 ip stream-option
在安全区域中启用屏幕。
[edit security zones ] user@host# set security-zone zone-1 screen screen-1
结果
在配置模式下,输入 show security screen
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] [user@host]show security screen ids-option screen-1 { ip { record-route-option; timestamp-option; security-option; stream-option; } } [edit] [user@host]show security zones zones { security-zone zone-1 { screen screen-1; } }
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证安全区域中的屏幕
目的
验证是否在安全区域中启用了屏幕。
行动
在操作模式下,输入 show security zones
命令。
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
了解 IP 地址扫描
当一个源 IP 地址在定义的时间间隔内(默认为 5000 微秒)将定义数量的 ICMP 数据包发送到不同的主机时,就会发生地址扫描。此攻击的目的是向各种主机发送 ICMP 数据包(通常是回显请求),希望至少有一个主机回复,从而发现目标地址。
Junos OS 会在内部记录从一个远程源发往不同地址的 ICMP 数据包数量。使用默认设置时,如果远程主机在 0.005 秒(5000 微秒)内将 ICMP 流量发送到 10 个地址,则设备会将其标记为地址扫描攻击,并在指定阈值时间段的剩余时间内拒绝来自该主机的所有进一步 ICMP 数据包。参见 图 2。
仅当存在允许来自该区域的 ICMP 流量的策略时,才考虑为该区域启用此屏幕选项。否则,您无需启用屏幕选项。缺少此类策略会拒绝来自该区域的所有 ICMP 流量,从而阻止攻击者成功执行 IP 地址扫描。
Junos OS 还支持 ICMPv6 传输的此屏幕选项。
示例:阻止 IP 地址扫描
此示例介绍如何配置屏幕以阻止源自安全区域的 IP 地址扫描。
要求
准备工作:
了解 IP 地址扫描的工作原理。请参阅 了解 IP 地址扫描。
配置安全区域。请参阅 安全区域概述。
概述
如果配置了允许来自该区域的 ICMP 流量的策略,则需要为该区域启用屏幕。如果尚未配置此类策略,则系统将拒绝来自该区域的所有 ICMP 流量,并且攻击者无论如何都无法成功执行 IP 地址扫描。
在此示例中,您将配置一个 5000-ip-sweep
屏幕来阻止源自区域 1 安全区域的 IP 地址扫描。
拓扑
配置
程序
分步过程
要配置屏幕以阻止 IP 地址扫描,请执行以下操作:
配置屏幕。
[edit] user@host# set security screen ids-option 5000-ip-sweep icmp ip-sweep threshold 5000
在安全区域中启用屏幕。
[edit] user@host# set security zones security-zone zone-1 screen 5000-ip-sweep
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
确认配置工作正常。
验证安全区域中的屏幕
目的
验证是否在安全区域中启用了屏幕。
行动
在操作模式下,输入 show security zones
命令。
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 5000-ip-sweep Interfaces bound: 1 Interfaces: ge-1/0/0.0
了解 TCP 端口扫描
当一个源 IP 地址在定义的时间间隔内(默认为 5000 微秒)将包含 TCP SYN 分段的 IP 数据包发送到 10 个不同的目标端口时,将进行端口扫描。此攻击的目的是扫描可用服务,希望至少有一个端口会响应,从而识别要作为目标的服务。
Junos OS 会在内部记录从一个远程源扫描的不同端口的数量。使用默认设置时,如果远程主机在 0.005 秒(5000 微秒)内扫描 10 个端口,则设备会将其标记为端口扫描攻击,并在指定超时期限的剩余时间内拒绝来自远程源的所有其他数据包,无论目标 IP 地址如何。参见 图 3。
Junos OS 支持 IPv4 和 IPv6 流量的端口扫描。
了解 UDP 端口扫描
UDP 端口扫描提供有关会话阈值的统计信息。当传入数据包遍历屏幕时,将建立会话。强制实施的会话数阈值基于区域、源 IP 和阈值期限,对于每个区域和源 IP 地址,在配置的阈值时间段内不允许超过 10 个新会话。默认情况下,UDP 端口扫描处于禁用状态。启用 UDP 端口扫描后,默认阈值周期为 5000 微秒。此值可以手动设置为 1000-1,000,000 微秒的范围。此功能可保护某些公开的公共 UDP 服务免受 DDoS 攻击。参见 图 4。
通过阻止端口扫描增强流量管理
此示例说明如何通过配置屏幕来阻止源自特定安全区域的端口扫描来增强流量管理。
要求
在开始之前,请了解端口扫描的工作原理。请参阅 了解 TCP 端口扫描。
概述
您可以使用端口扫描来阻止包含 TCP SYN 分段或 UDP 分段的 IP 数据包,这些数据包在定义的时间间隔内从同一源地址发送到不同端口。此攻击的目的是扫描可用服务,希望至少有一个端口会做出响应。端口响应后,就会被标识为目标服务。
在此示例中,您将配置 5000 端口扫描屏幕以阻止源自特定安全区域的端口扫描,然后将该屏幕分配给名为 zone-1 的区域。
拓扑
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit 。
set security screen ids-option 5000-port-scan tcp port-scan threshold 5000 set security screen ids-option 10000-port-scan udp port-scan threshold 10000 set security zones security-zone zone-1 screen 5000-port-scan
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置屏幕以阻止端口扫描,请执行以下操作:
配置屏幕。
[edit security] user@host# set security screen ids-option 5000-port-scan tcp port-scan threshold 5000 user@host#set security screen ids-option 10000-port-scan udp port-scan threshold 10000
在安全区域中启用屏幕。
[edit security] user@host# set security zones security-zone zone-1 screen 5000-port-scan
结果
在配置模式下,输入 show security screen ids-option 5000-port-scan
和 show security zones
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security screen ids-option 5000-port-scan tcp { port-scan threshold 5000; } udp { port-scan threshold 10000; }
[edit] user@host# show security zones security-zone zone-1 { screen 5000-port-scan; }
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证安全区域中的屏幕
目的
验证是否在安全区域中启用了屏幕。
行动
在操作模式下,输入 show security zones
命令。
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 5000-port-scan Interfaces bound: 0 Interfaces:
意义
示例输出显示,区域 1 的屏幕已启用端口扫描阻止。