freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

NSA网络基础设施安全指南(翻译)(五)
2022-05-07 15:57:11
所属地 安徽省

8路由

路由器在计算机网络之间转发数据包。 当路由器接收到一个数据包时,使用路由表和数据包的网络地址信息来确定到达其目的地的下一跳。 路由器本身的配置不当或使用动态路由协议可能允许攻击者将数据包重定向到不同的目的地,从而可以收集、处理或丢弃敏感数据,违反网络安全三原则(机密性、完整性或可用性)。

8.1 禁用 IP 源路由

IP源路由是一种很少使用的功能,它使数据包的发送方能够根据预先确定的中间节点列表转发数据包,而不是使用路由表来做转发。利用这种设置,攻击者可以通过自己选择的路由传输数据包。除了IP地址欺骗,对手可以使用IP源路由功能选择自己的网络路径成功绕过ACL和其他网络限制。尽管该漏洞与路由器和数据包的路由有关,但也可以在交换机上利用该功能。

NSA建议禁用所有设备上的IP源路由,因为正常网络操作不需要此功能。根据产品供应商的不同,可能需要分别禁用每个IP源路由选项的转发。IPv6中也有类似的功能,也需要单独禁用。使用以下配置命令禁用IP源路由:

no ip source-route

no ipv6 source-route

8.2 启用单播反向路径转发 (uRPF) 

uRPF 是一种防止 IP 欺骗的方法,启用该功能后路由器会检查数据包中的源地址和目标地址。 当在接口上接收到数据包时,源地址将与路由表中的条目进行比较,如果返回路由与接收数据包的位置匹配,则将其转发。 否则,数据包中的源地址可能已被欺骗,数据包会被丢弃。 如果未启用 uRPF,攻击者能够成功修改发送到网络的 IP 数据包的源地址。

NSA 建议在边界路由器的外部接口上启用 uRPF。 在路由器上启用 uRPF 之前要先启用 Cisco 快速转发 (CEF),它为高效的数据包转发提供优化的查找。 请注意,不应在具有非对称路由的内部接口或路由器上启用 uRPF(对于给定的源地址,可能存在两条或更多条返回路由),因为这种情况可能会导致合法数据包被丢弃。 使用以下配置命令在单个接口上启用 uRPF:

ip cef

interface <INTERFACE>

ip verify unicast reverse-path

8.3 启用路由身份认证

动态路由协议用于向相邻设备分发信息提供到达其他网络的路由。 网络设备将使用此信息来填充自己的路由表,然后使用该路由表来确定将数据包转发到请求的目的地的下一跳。 为了控制流量,攻击者可能会注入、修改或破坏相邻设备发送和接收的路由信息。 为防止路由操纵,应启用路由验证以确保从相邻设备接收到的路由信息未被不受信任的来源操纵。

NSA 建议使用动态路由协议启用路由身份验证,这些协议从网络上的其他设备接收路由更新。 启用开放OSPF)路由身份验证,方法是在每个区域的 OSPF 进程上启用它,并将身份验证密钥应用于与该进程关联的每个接口,使用以下配置命令:

key chain <KEY_CHAIN_NAME>

key <KEY_NUMBER>

key-string <KEY>

cryptographic-algorithm hmac-sha-512

interface <INTERFACE>

ip ospf authentication key-chain <KEY_CHAIN_NAME>

NSA 还建议在所有邻居路由器之间使用唯一密钥,而不是对所有设备上的所有接口使用相同的身份验证密钥。 如果密钥不同,攻击者将无法使用来自一个网络的泄露密钥在另一个网络上注入恶意路由。

通过使用以下配置命令对每个单独的对等体应用唯一的密钥来启用边界网关协议 (BGP) 路由身份验证:

router bgp <AS_NUMBER>

peer <IP_ADDRESS_1> password <KEY>

通过创建密钥链并使用以下配置命令将其应用于每个接口,启用增强型内部网关路由协议(EIGRP)身份验证:

key chain <KEY_CHAIN_NAME>

key <KEY_NUMBER>

key-string <KEY>

cryptographic-algorithm hmac-sha-512

interface <INTERFACE>

ip authentication key-chain eigrp <AS_NUMBER> <KEY_CHAIN_NAME>

注意:可以为每个键选择任意名称和编号。 <KEY> 是分配给相邻设备的共享密钥。 密码算法也可以设置为 hmac-sha-384 并且仍然符合 CNSSP 15 指南 [4]。

不要使用RIP。 RIP收敛速度慢、无法扩展,而且 RIP V 1 无法配置为对相邻的路由器进行身份验证,从而使攻击者很容易利用该协议。 仅支持 RIP 的设备应使用静态或默认路由连接到支持现代路由协议和身份验证的其他设备。

9. 接口端口

网络交换机的端口将工作站、服务器和其他设备物理连接到网络,而路由器和交换机之间的互连定义了系统如何通过网络进行通信。攻击者要先获得对网络的物理访问权才可以连接未经授权的系统,活着使用已在网络上建立的系统来利用现有连接。 正确配置的端口可以防止攻击者对网络进行攻击尝试。

9.1 禁用动态中继

Trunk是交换 VLAN 封装帧的两个设备之间的点对点链路。 根据通过链路发送的流量,接口可以动态地将自身配置为Trunk端口或access端口。 连接到动态端口的攻击者可以指示它成为Trunk端口,并可能在不考虑 VLAN 分离的情况下访问网络流量。 NSA 建议禁用动态Trunk,因为端口不需要动态配置自身。 将设备添加到网络时,请确保所有接口端口都明确配置为Trunk端口或access端口。 不处理 VLAN 封装帧的系统应连接到配置为access端口。

使用以下配置命令严格配置接口端口用于静态访问:

interface <INTERFACE>

switchport mode access

使用以下配置命令将接口严格配置为Trunk:

interface <INTERFACE>

switchport mode trunk

9.2 启用端口安全

设备的物理端口通常是最后一道防线,也是限制网络访问的主要手段。 端口安全限制连接到交换机端口的 MAC 地址的数量,将连接限制为合法用户。未配置为强制执行端口安全的交换机端口可能允许具有物理访问权限的攻击者连接未经授权的系统,这样攻击者就成为受信任的系统并绕过现有的安全限制,可以收集网络信息,更深入地探测网络或破坏内部系统。

NSA 建议在已经使用交换机端口上启用端口安全性,并将每个端口允许的 MAC 地址的最大值设置为1,如果正在使用 VoIP 功能,则设置为两个。 端口安全不能替代 NAC,例如 802.1X,在无法实施 NAC 时使用。 推荐为每个交换机端口分配一个固定的 MAC 地址,并将每个交换机端口配置为在发生端口安全违规时关闭或发送 SNMP 陷阱消息。也可以在trunk接口上启用端口安全,但是不建议这样做,因为它需要知道有流量通过该特定trunk的设备的数量。 动态交换机端口不能同时启用端口安全,必须先配置为静态访问,然后才能启用端口安全。 使用以下配置命令在静态访问端口上启用端口安全性设置最多具有一个 MAC 地址:

interface <INTERFACE>

switchport mode access

switchport port-security

switchport port-security maximum 1

switchport port-security violation shutdown

switchport port-security mac-address sticky

如果第一个授权系统连接到该端口,sticky 关键字将允许设备在配置中插入 MAC 地址。 请注意,需要保存配置在重新启动后保留信息。 如果由于可用性问题而不能关闭端口,则可以将shutdown 关键字替换为restrict ,防止任何其他MAC 地址在该端口上进行通信。

9.3 禁用默认 VLAN

大多数交换机把管理端口划到默认 VLAN 1,提供对交换机的直接访问以进行管理。 某些第 2 层协议(例如,发现或中继)需要在trunk链路上的特定 VLAN 上发送,并且通常选择 VLAN 1 作为默认值。 如果不采取有效保护措施,默认 VLAN 可能会跨越整个网络,会增加可信的设备的安全风险,从而被获得访问权限的非可信的设备利用。

NSA 建议将所有对设备管理和操作流量划分到不同的 VLAN(非默认),将管理流量与用户数据和协议流量分开,并使用多个交换机来分隔不同安全级别的网络流量。 默认 VLAN 也应该在逻辑上禁止所有不需要的trunks和access端口,包括断开连接和关闭端口,禁止广播、多播和未知目标流量的传输。

在trunk端口上发送和接收的帧通常带有与该帧关联的 VLAN ID 标记。 收到的任何未标记的帧都会自动放置在与该端口关联的本机trunk VLAN 中。 本地trunk VLAN 应在trunk链路的两端分配相同。 同样,在访问端口上发送和接收的帧被分配给与该端口关联的访问 VLAN。 所有交换机端口都分配给一个access VLAN 和一个本地trunk VLAN,无论它们是trunk端口还是access端口。

NSA 建议将所有trunk端口分配给一个唯一的本地trunk VLAN,该 VLAN 仅分配给trunk端口,并将access VLAN 分配给未使用和禁用的 VLAN。 同样,NSA 建议将所有access端口分配给适当的access VLAN,并将本机trunk VLAN 分配给另一个未使用和禁用的 VLAN,与trunk端口使用的 VLAN 不同。 此配置将通过标记原本未标记的流量来防止攻击者在活动 VLAN 之间跳转。

使用以下示例配置命令创建一个唯一的trunk VLAN (500) 和一个未使用且禁用的访问 VLAN (997),均分配给trunk端口:

vlan 500

name NATIVE-TRUNK

vlan 997

name UNUSED-ACCESS

shutdown

interface <INTERFACE>

switchport mode trunk

switchport access vlan 997

switchport trunk native vlan 500

switchport trunk allowed vlan 2-4094

此配置还允许除默认 VLAN 1 之外的所有 VLAN 遍历trunk。 如果所有已配置的 VLAN 都已知,则 NSA 建议仅允许那些特定的 VLAN,而不仅仅是排除 VLAN 1。使用以下示例配置命令创建一个未使用且已禁用的 VLAN (998),分配给访问端口的本地trunk VLAN:

vlan 998

name UNUSED-NATIVE

Shutdown

interface <INTERFACE>

switchport mode access

switchport access vlan <ACCESS_VLAN#>

switchport trunk native vlan 998

如果正在使用 VoIP 功能,还可以使用以下配置命令为交换机端口分配第三个 VLAN:

interface <INTERFACE>

switchport voice vlan <VOICE_VLAN#>

可以使用以下运行命令确认与各个交换机端口关联的所有 VLAN:

show interfaces switchport

9.4 禁用未使用的端口

如果设备上启用未使用的端口,攻击者可将恶意设备连接到网络,执行信息收集或破坏尝试。 修改默认配置,禁用所有未使用的端口并配置在未使用的 VLAN 中。 NSA 建议通过关闭相关接口来禁用设备上所有未使用的端口,如果设备支持,可将未使用的端口分配给未使用的 VLAN, 端口已启用仍可继续阻止攻击者对网络的访问。 在禁用端口之前,要确认未被使用也没有任何连接。 如果连接到该端口的设备断电,可能会显示该交换机端口未使用。

使用以下示例配置命令关闭所有未使用的接口,并将access和本地trunk VLAN 分配给未使用和禁用的 VLAN:

vlan 999

name UNUSED-DISABLED

shutdown

interface <INTERFACE>

switchport mode access

switchport access vlan 999

switchport trunk native vlan 998

no switchport voice vlan

shutdown

注意:无需将语音 VLAN 分配给未使用的 VLAN,因为如果未使用 VoIP 功能,它将保持未分配状态。

9.5 禁用端口监控

在网络交换机上使用端口监控将被监控端口的数据报文复制一份转发到监控端口。定义了一个或多个端口监控会话的设备,允许一组源端口由指定的目标端口监视,并且发送到或来自源端口的所有流量也将发送到目标端口。端口监控通常用于连接 网络入侵检测系统、诊断问题或使用网络分析仪监控网络。根据供应商的不同,端口监控也称为“端口镜像”或“端口跨越”。连接到端口监控会话的目标端口的攻击者,将能够收集通过会话指定的所有源端口发送的网络流量。

NSA 建议禁用设备上的所有非活动端口监控会话。端口监控只在必要的时候启用,一旦不再需要就应该禁用,在部署网络入侵检测系统或网络监控管理场景下非常有必要。

注意:一些供应商不允许从端口监控会话的目标端口发送流量,从而有效地禁用了来自该端口的网络访问。 当 NIDS 连接到端口监视会话时,需要这种类型的行为。 使用以下 exec 命令列出配置中定义的监控会话:

show monitor session [1|2|all]

注意:如果支持 all 关键字,它将列出所有已定义的会话; 否则,需要在单独的命令中指定每个单独的会话编号,通常为 1 和 2。

使用以下配置命令删除配置中定义的监控会话:

no monitor session <SESSION#>

9.6 禁用地址解析协议 (ARP)代理

采用ARP代理技术,代理服务器会响应不在该网络上的 IP 地址的 ARP 请求。 可以帮助本地子网上的设备到达远程子网,而无需在默认网关上配置路由。 这是非常方便的,因为可以添加到路由器而无需从其他网络分配路由表,但仅在受信任的局域网 (LAN) 段之间是安全的。 这种技术会在网络中引入安全漏洞,攻击者可以欺骗受信任的系统并拦截数据包。

NSA 建议在所有接口上禁用ARP代理 ,除非设备用作 LAN 网桥或允许多个目标 IP 地址的入站网络地址转换 (NAT)。 需要在每个单独的接口上禁用代理 ARP,而不是全局禁用它。

使用以下运行命令查找启用了代理 ARP 的接口:

show ip interface

使用以下配置命令在单个接口上禁用代理 ARP:

interface <INTERFACE>

no ip proxy-arp

9.7 通知和许可横幅

本文档中提供的技术建议可以显著降低攻击者利用网络漏洞的可能性。 不幸的是,对手或内部人员可能仍然能够找到一个弱点来破坏、规避或破坏网络。 有一个通知横幅可以明确任何访问系统的人都允许什么,并添加任何必要的通知和免责声明。

9.8 展示通知横幅

根据组织的需求,通知横幅可以通知连接到网络设的用户备是被授权的,并且系统的任何使用都在授权下有目标的被监控。 一个合法的横幅确保网络所有者和其他人,包括政府,可以采取必要的步骤来监控和保护网络。 但是,对此类横幅的确切要求会因组织和管辖权而异。 例如,DoD 元素必须使用符合 DoD 指令 8500.01 要求的横幅。 其他美国政府实体应执行 NIST SP800-53、AC-8 的要求。 对于私营部门实体,网络安全和基础设施安全局发布了关于制定适当横幅的非常有用的指南[20]。

NSA 建议将每个设备配置为在用户登录信息系统或连接到任何远程服务时显示完整的通知横幅。 Cisco IOS 设备有两种类型的横幅; 在用户登录之前显示登录横幅,然后在用户成功验证后显示“每日消息”, 向尝试登录的授权和未授权用户显示通知横幅。 如果需要,可以在登录后向经过身份验证的用户提供相同或附加信息。 在用户使用以下配置命令登录之前,添加一个通知横幅,并适当地插入组织的横幅:

banner login ^

INSERT NOTIFICATION BANNER HERE

^

注意:插入符号 ("^") 用作分隔符,因此横幅可以跨越多行,假设插入符号未在横幅本身中使用。 将该命令插入配置后,分隔符一般会显示为“^C”而不是“^”。 不要在命令中输入“^C”,否则横幅将以“C”开头。 为已使用以下配置命令成功验证的授权用户添加相同的通知横幅或附加信息:

banner motd ^

INSERT NOTIFICATION BANNER HERE

ADDITIONAL INFORMATION

^

10. 总结

本报告中的指导来自于 NSA 安全评估项目针对安全加固网络设备的经验。 除了基本的维护功能外,管理员在保护网络免受敌对威胁方面也发挥着关键作用,遵循本指南将帮助这些网络防御者将网络安全最佳实践落地,降低被入侵的风险,并确保网络受到更好的保护,也更安全。

# 网络安全 # 系统安全 # 企业安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录