攻击者规避技术
攻击者可能会使用 SYN 和 FIN 标志发起攻击。插图还说明了旨在阻止这些探测器的屏幕选项的配置,有关详细信息,请参阅以下主题:
了解攻击者规避技术
无论是收集信息还是发起攻击,通常都希望攻击者会避免检测。尽管某些 IP 地址和端口扫描是公然且易于检测的,但更狡猾的攻击者使用各种手段来隐藏其活动。诸如使用 FIN 扫描而不是 SYN 扫描等技术(攻击者知道大多数防火墙和入侵检测程序都会检测到这些技术)表明,用于逃避检测并成功完成任务的侦察和利用技术正在演变。
了解 FIN 扫描
FIN 扫描发送设置了 FIN 标志的 TCP 段,试图引发响应(设置了 RST 标志的 TCP 段),从而发现主机上的活动主机或活动端口。攻击者可能会使用此方法,而不是使用 ICMP 回显请求执行地址扫描或使用 SYN 分段执行地址扫描,因为他们知道许多防火墙通常会防御后两种方法,但不一定防御 FIN 分段。使用设置了 FIN 标志的 TCP 段可能会逃避检测,从而帮助攻击者成功进行侦察。
阻止 FIN 扫描
要阻止 FIN 扫描,请执行以下一项或两项操作:
启用屏幕选项,该选项专门阻止设置了 FIN 标志但未阻止 ACK 标志的 TCP 段,这对于 TCP 分段来说是异常的:
user@host#set security screen fin-no-ack tcp fin-no-ack user@host#set security zones security-zone name screen fin-no-ack
其中
name
是要应用此屏幕选项的区域的名称。更改数据包处理行为以拒绝不属于现有会话的所有非 SYN 数据包。SYN 检查标志设置为默认值。
注意:更改数据包流以检查是否为不属于现有会话的数据包设置 SYN 标志也会阻止其他类型的非 SYN 扫描,例如空扫描(未设置 TCP 标志时)。
了解 TCP SYN 检查
默认情况下,Junos OS 会检查会话的第一个数据包中的 SYN 标志,并拒绝任何带有非 SYN 标志的 TCP 分段试图启动会话。您可以保留此数据包流原样或对其进行更改,以便 Junos OS 在创建会话之前不强制执行 SYN 标志检查。 图 1 说明了启用和禁用 SYN 标志检查时的数据包流序列。

当启用了 SYN 标志检查的 Junos OS 收到不属于现有会话的非 SYN TCP 分段时,将丢弃数据包。默认情况下,Junos OS 在接收非 SYN 分段时不会向源主机发送 TCP RST。您可以使用命令 set security zones security-zone trust tcp-rst
将设备配置为将 TCP RST 发送到源主机。如果初始非 SYN TCP 数据包的代码位为 RST,则设备不会发送 TCP-RST。
不检查第一个数据包中的 SYN 标志具有以下优点:
具有非对称路由的 NSRP — 在动态路由环境的主动/主动 NSRP 配置中,主机可能会将设置了 SYN 标志的初始 TCP 分段发送到一台设备(设备 A),但 SYN/ACK 可能会路由到集群中的另一台设备(设备 B)。如果在设备 A 与设备 B 同步其会话之后发生此非对称路由,则一切正常。另一方面,如果在设备 A 同步会话并启用 SYN 检查之前,SYN/ACK 响应到达设备 B,则设备 B 将拒绝 SYN/ACK,并且无法建立会话。禁用 SYN 检查后,设备 B 接受 SYN/ACK 响应(即使没有它所属的现有会话),并为其创建新的会话表条目。
不间断会话 — 如果重置设备,甚至更改策略核心部分中的组件,并且启用了 SYN 检查,则所有现有会话或应用策略更改的会话都将中断,必须重新启动。禁用 SYN 检查可避免此类网络流量中断。
注意:此方案的解决方案是在最初禁用 SYN 检查的情况下安装设备。然后,几个小时后(当已建立的会话通过设备运行时),启用 SYN 检查。策略中的核心部分包含以下主要组件:源和目标区域、源和目标地址、一个或多个服务以及操作。
但是,前面的优点确实存在以下安全牺牲:
侦测洞 — 当带有非 SYN 标志(如 ACK、URG、RST、FIN)的初始 TCP 段到达关闭端口时,许多操作系统(例如 Windows)会使用设置了 RST 标志的 TCP 段进行响应。如果端口已打开,则收件人不会生成任何响应。
通过分析这些响应或缺乏响应,情报收集人员可以对受保护的网络以及 Junos OS 策略集执行侦察。如果发送的 TCP 分段设置了非 SYN 标志,并且策略允许通过,则接收此类分段的目标主机可能会丢弃该分段,并使用设置了 RST 标志的 TCP 分段进行响应。此类响应会通知肇事者特定地址存在活动主机,并且目标端口号已关闭。情报收集器还了解到防火墙策略允许访问该主机上的端口号。
通过启用 SYN 标志检查,Junos OS 将丢弃不属于现有会话的不带 SYN 标志的 TCP 段。它不返回 TCP RST 段。因此,无论策略集如何,也无论目标主机上的端口是打开还是关闭,扫描程序都不会收到任何答复。
会话表泛洪 — 如果禁用 SYN 检查,攻击者可以绕过 Junos OS SYN 泛滥保护功能,使用设置了非 SYN 标志的大量 TCP 段淹没受保护网络。尽管目标主机会丢弃数据包,并可能发送 TCP RST 段作为回复,但此类泛洪可能会填满瞻博网络设备的会话表。当会话表已满时,设备无法处理合法流量的新会话。
通过启用 SYN 检查和 SYN 泛滥保护,您可以阻止此类攻击。检查会话中的初始数据包上是否设置了 SYN 标志会强制所有新会话以设置了 SYN 标志的 TCP 分段开头。然后,SYN 泛滥保护会限制每秒的 TCP SYN 段数,以便会话表不会不堪重负。
如果您不需要禁用 SYN 检查,瞻博网络强烈建议启用它(初始安装 Junos OS 时的默认状态)。您可以使用命令启用 set flow tcp-syn-check
它。启用 SYN 检查后,设备将拒绝设置了非 SYN 标志的 TCP 分段,除非它们属于已建立的会话。
设置 TCP SYN 检查
启用 SYN 检查后,设备将拒绝设置了非 SYN 标志的 TCP 分段,除非它们属于已建立的会话。启用 SYN 检查有助于防止攻击者侦察和会话表泛滥。默认情况下,TCP SYN 检查处于启用状态。
要禁用 SYN 检查:
user@host#set security flow tcp-session no-syn-check
设置 TCP 严格 SYN 检查
启用严格 SYN 检查后,设备将对 TCP 会话启用严格的三次握手检查。它通过在三次握手完成之前丢弃数据包来增强安全性。默认情况下,TCP 严格 SYN 检查处于禁用状态。
如果启用 或no-syn-check-in-tunnel
,则no-syn-check
无法启用该strict-syn-check
选项。
启用 strict-syn-check
后,将丢弃携带数据的 SYN 数据包。
要启用严格的 SYN 检查,请执行以下操作:
user@host#set security flow tcp-session strict-syn-check
了解 IP 欺骗
尝试访问网络受限区域的一种方法是在数据包标头中插入错误的源地址,以使数据包看起来像是来自受信任的来源。此技术称为 IP 欺骗。检测 IP 欺骗的机制依赖于路由表条目。例如,如果源 IP 地址为 10.1.1.6 的数据包到达 ge-0/0/1,但 Junos OS 有通过 ge-0/0/0 到 10.1.1.0/24 的路由,则 IP 欺骗检查会发现此地址到达路由表中定义的无效接口。来自 10.1.1.6 的有效数据包只能通过 ge-0/0/0 到达,而不能通过 ge-0/0/1 到达。因此,Junos OS 会断定数据包具有欺骗性的源 IP 地址并将其丢弃。Junos OS 会检测并丢弃 IPv4 和 IPv6 欺骗性数据包。
限制
IP 欺骗的限制包括:
-
配置安全隧道接口 (st0) 或任何具有 /31 IP 地址的点对点接口时,BFD 会话将关闭。/31 IP 地址被视为子网广播地址,因此,Junos OS 会断定数据包具有欺骗性 IP 地址并将其丢弃。
示例:阻止 IP 欺骗
此示例说明如何配置屏幕以阻止 IP 欺骗攻击。
要求
在开始之前,请了解 IP 欺骗的工作原理。请参阅 了解 IP 欺骗。
概述
尝试访问网络受限区域的一种方法是在数据包标头中插入虚假的源地址,以使数据包看起来像是来自受信任的来源。此技术称为 IP 欺骗。
在此示例中,您将配置一个名为 screen-1 的屏幕来阻止 IP 欺骗攻击,并在区域 1 安全区域中启用屏幕。
配置
程序
分步过程
要阻止 IP 欺骗,请执行以下操作:
配置屏幕。
[edit ] user@host# set security screen ids-option screen-1 ip spoofing
在安全区域中启用屏幕。
[edit] user@host# set security zone security-zone zone-1 screen screen-1
如果完成设备配置,请提交配置。
[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: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
了解安全设备上第 2 层透明模式下的 IP 欺骗
在 IP 欺骗攻击中,攻击者获得对网络受限区域的访问权限,并在数据包标头中插入虚假的源地址,使数据包看起来像是来自受信任的来源。IP 欺骗最常用于拒绝服务 (DoS) 攻击。当 SRX 系列防火墙在透明模式下运行时,IP 欺骗检查机制会利用通讯簿条目。地址簿仅存在于路由引擎上。第 2 层透明模式下的 IP 欺骗在数据包转发引擎上执行。每次数据包转发引擎收到数据包时,都无法从路由引擎获取通讯簿信息。因此,必须将连接到第 2 层区域的地址簿推送到数据包转发引擎。
第 2 层透明模式下的 IP 欺骗不支持 DNS 和通配符地址。
当数据包转发引擎收到数据包时,将检查数据包的源 IP 地址以确定它是否在传入区域的地址簿中。如果数据包的源 IP 地址在传入区域的地址簿中,则接口上允许此 IP 地址,并传递流量。
如果源 IP 地址不在传入区域的地址簿中,但存在于其他区域的地址簿中,则该 IP 地址被视为欺骗 IP。因此,可以根据屏幕配置(报警-不丢弃-丢弃)采取丢弃和日志记录等操作。
如果配置了 alarm-without-drop
该选项,则第 2 层和第 3 层欺骗数据包仅触发警报消息,但不会丢弃数据包。
如果传入区域的地址簿或其他区域中不存在数据包的源 IP 地址,则无法确定该 IP 是否为欺骗。在这种情况下,将传递数据包。
Junos OS 在地址簿中搜索源 IP 地址时会考虑以下匹配条件:
Host-match— 在地址簿中找到的 IP 地址匹配项是不带前缀的地址。
Prefix-match— 在地址簿中找到的 IP 地址匹配项是带有前缀的地址。
Any-match— 在地址簿中找到的 IP 地址匹配项为“any”、“any-IPv4”或“any-IPv6”。
No-match— 找不到匹配的 IP 地址。
在安全设备上的第 2 层透明模式下配置 IP 欺骗
您可以配置 IP 欺骗检查机制以确定 IP 是否被欺骗。
要在第 2 层透明模式下配置 IP 欺骗,请执行以下操作:
如果配置了 alarm-without-drop
该选项,则第 2 层欺骗数据包仅触发报警消息,但不会丢弃数据包。
了解 IP 源路由选项
源路由旨在允许用户在 IP 数据包传输源指定设备的 IP 地址(也称为“跃点”),沿着他们希望 IP 数据包在到达目的地的路径上。IP 源路由选项的初衷是提供路由控制工具来帮助进行诊断分析。例如,如果将数据包传输到特定目标时遇到不规则的成功,则可以首先使用记录路由或时间戳 IP 选项来发现数据包所采用路径上的设备地址。然后,您可以使用松散或严格源路由选项沿特定路径定向流量,使用从记录路由或时间戳选项生成的结果中获知的地址。通过更改设备地址以更改路径并沿不同路径发送多个数据包,您可以注意到可提高或降低成功率的更改。通过分析和消除过程,您也许能够推断出问题所在。参见 图 2。

尽管 IP 源路由选项的使用最初是良性的,但攻击者已经学会了将它们用于更狡猾的用途。他们可以使用 IP 源路由选项来隐藏其真实地址,并通过指定不同的路径来访问网络的受限区域。有关显示攻击者如何利用这两种欺骗手段的示例,请考虑以下场景,如图 3 所示。

Junos OS 仅允许通过以太网 1(绑定到 zone_external 的接口)的流量 2.2.2.0/24。设备 3 和 4 强制执行访问控制,但设备 1 和 2 不强制执行。此外,设备 2 不检查 IP 欺骗。攻击者欺骗源地址,并使用松散源路由选项将数据包通过设备 2 定向到 2.2.2.0/24 网络,然后从那里引出设备 1。设备 1 将其转发给设备 3,后者再转发给瞻博网络设备。由于数据包来自 2.2.2.0/24 子网,并且具有来自该子网的源地址,因此它似乎有效。然而,早期诡计的一个残余仍然存在:松散源路由选项。在此示例中,您已经为zone_external启用了拒绝 IP 源路由屏幕选项。当数据包到达以太网3时,设备会拒绝它。
您可以让设备阻止任何设置了松散或严格源路由选项的数据包,或检测此类数据包,然后将事件记录在入口接口的计数器列表中。屏幕选项如下:
拒绝 IP 源路由选项 — 启用此选项可阻止采用松散或严格源路由选项的所有 IP 流量。源路由选项可允许攻击者使用虚假 IP 地址进入网络。
检测 IP 松散源路由选项 — 设备检测 IP 选项为 3 的数据包(松散源路由),并将事件记录在入口接口的屏幕计数器列表中。此选项指定数据包在从源到目标的旅程中要执行的部分路由列表。数据包必须按指定的地址顺序继续前进,但允许在指定的地址之间通过其他设备。
检测 IP 严格源路由选项 — 设备检测 IP 选项为 9(严格源路由)的数据包,并将事件记录在入口接口的屏幕计数器列表中。此选项指定数据包在从源到目标的旅程中要执行的完整路由列表。列表中的最后一个地址将替换目标字段中的地址。目前,此屏幕选项仅适用于 IPv4。
示例:阻止设置了松散或严格源路由选项的数据包
此示例说明如何阻止设置了松散或严格源路由选项的数据包。
要求
在开始之前,请了解 IP 源路由选项的工作原理。请参阅 了解 IP 源路由选项。
概述
源路由允许用户在 IP 数据包传输源处指定设备的 IP 地址(也称为“跃点”),沿着他们希望 IP 数据包到达目的地的路径。IP 源路由选项的初衷是提供路由控制工具来帮助进行诊断分析。
您可以让设备阻止任何设置了松散或严格源路由选项的数据包,或检测此类数据包,然后将事件记录在入口接口的计数器列表中。
在此示例中,您将创建名为 screen-1 的屏幕,以阻止设置了松散或严格源路由选项的数据包,并在区域 1 安全区域中启用屏幕。
配置
程序
分步过程
要阻止设置了松散或严格源路由选项的数据包,请执行以下操作:
配置屏幕。
[edit ] user@host# set security screen ids-option screen-1 ip source-route-option
在安全区域中启用屏幕。
[edit ] user@host# set security zones security-zone zone-1 screen screen-1
如果完成设备配置,请提交配置。
[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: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
示例:检测设置了松散或严格源路由选项的数据包
此示例说明如何检测设置了松散或严格源路由选项的数据包。
要求
在开始之前,请了解 IP 源路由选项的工作原理。请参阅 了解 IP 源路由选项。
概述
源路由允许用户在 IP 数据包传输源处指定设备的 IP 地址(也称为“跃点”),沿着他们希望 IP 数据包到达目的地的路径。IP 源路由选项的初衷是提供路由控制工具来帮助进行诊断分析。
您可以让设备阻止任何设置了松散或严格源路由选项的数据包,或检测此类数据包,然后将事件记录在入口接口的计数器列表中。
在此示例中,您将创建名为 screen-1 和 screen-2 的筛选,以检测和记录(但不能阻止)设置了松散或严格源路由选项的数据包,并在区域 1 和区域 2 中启用筛选。
配置
程序
分步过程
要检测并记录(但不能阻止)设置了松散或严格源路由选项的数据包,请执行以下操作:
配置松散的源屏幕。
[edit] user@host# set security screen ids-option screen-1 ip loose-source-route-option
配置严格源路由屏幕。
[edit] user@host# set security screen ids-option screen-2 ip strict-source-route-option
注意:目前,此屏幕选项仅支持 IPv4。
启用安全区域中的屏幕。
[edit] user@host# set security zones security-zone zone-1 screen screen-1 user@host# set security zones security-zone zone-2 screen screen-2
如果完成设备配置,请提交配置。
[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: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0 Security zone: zone-2 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: screen-2 Interfaces bound: 1 Interfaces: ge-2/0/0.0
验证安全屏幕配置
目的
显示有关安全屏幕的配置信息。
行动
在操作模式下,输入 show security screen ids-option screen-name
命令。
[edit] user@host> show security screen ids-option screen-1 Screen object status: Screen object status: Name Value IP loose source route option enabled
[edit] user@host> show security screen ids-option screen-2 Screen object status: Screen object status: Name Value IP strict source route option enabled