IPv6网络的可操作安全考虑——RFC9099解析(一)

摘要

无论运营商是互联网服务提供商(ISP)还是企业内部网络,都可以获得关于如何安全地操作IPv4网络的知识和经验。然而,IPv6带来了一些新的安全挑战。【RFC4942】描述了协议中的安全问题,但是操作人员们还需要一个更实用、更有操作性的文档来列举某些选择的优点和/或缺点。

本文分析了与几种类型的网络相关的操作安全问题,并提出了技术和程序性缓解技术。本文档仅适用于管理网络,如企业网络、服务提供商网络或管理家庭网络。

1. 介绍

对于大多数运营商来说,运行IPv6网络是一种新技术,不仅因为它们还没有用于大规模的IPv6网络,还因为IPv4和IPv6之间存在着微妙但又关键和重要的区别,特别是在安全方面。例如,所有L2的影响在使用NDP【RFC4861】而不是ARP【RFC0826】后,都已不存在。同时,也不存在【RFC2663】中的NAPT问题,因为IPv6的【RFC6296】定义了IPv6-to-IPv6的网络前缀翻译NPTv6,它是一种1对1的IPv6映射。此外,IPv6通过扩展头提供扩展能力。

2 通用安全考虑

2.1 寻址

IPv6地址分配和整体架构是IPv6安全的重要部分。最初的设计,即使是临时的,也往往比预期的要长久的多。尽管IPv6最初被认为容易重新编址,但实际上,如果没有IP地址管理系统(IPAM)很难进行重新编址。【RFC7010】介绍了可用于IPv6站点重新编址的机制,并试图涵盖与IPv6编址相关的大多数显示问题与要求。

【RFC7010】IPv6 site renumbering gap analysisRFC7010 中文翻译 中文RFC RFC文档 RFC翻译 RFC中文版 (rfc2cn.com)

1、主机地址配置

RA的M/0 glags可能存在的问题:

1)DHCPv6配置的主机可能并未被RA消息重新编址,特定当Mfalgs从1到0时;

2)DHCPv6配置的主机可能未学到RA前缀

3)无状态自动配置SLAAC的主机可能无法添加DHCPv6地址

2、路由器地址配置

学习新的前缀带来的复杂性

重新编址后需要重新启动

通过域名进行router配置

3、和编址相关的协议

RA(RFC4861)

SLAAC(RFC4862)

DHCPv6(RFC3315)

DHCPv6-PD(RFC3633)

RFC2894-router renumbering for ipv6

成功部署IPv6的一个关键任务是准备一个寻址计划,由于有大量的地址空间可用,因此围绕服务和地理位置构建地址计划可以使地址空间成为更结构化的安全策略的基础,以允许或拒绝地理区域之间的服务。【RFC6177】记录了在终端站点使用不同前缀大小进行地址分配的一些操作考虑事项。

【RFC6177】IPv6 address assignment to end sites

1、IPv6的一个重要目标是显著改变默认和最小的终端站点分配,从“单个地址”改为“多个网络”,并确保终端站点能够轻松获得地址空间。

2、RFC3177中建议的一个关键目标是确保在重新编号时,不必处理重新编号到较小的子网大小。

3、由于IPv6具有巨大的地址空间,终端站点可以很容易地提供更多的地址空间(与ipv4相比),以支持在多年时间段内的预期增长。

4、本文件仍然建议给家庭网站远远超过一个/64,但也不建议每个家庭网站都给予/48。

一个常见的问题是,公司应该使用独立于提供者(PI)还是提供者聚合(PA)空间【RFC7381】。但是,从安全的角度来看,这并没有什么区别。然而,需要记住的一个方面是,谁对地址空间拥有行政所有权,如果需要对地址空间的可路由性实施限制,谁在技术上负责,例如,由于由此产生的恶意犯罪活动。依赖pa地址空间也可能增加对地址转换技术的感知需求,如NPTv6;因此,包括安全操作的复杂性增加了。

【RFC7381】 ipv6 deployment guidelines

1、ipv6引入了一种全新的端点寻址方法,它可以在网络层产生影响,一直持续到应用程序。因此,为了将过渡阶段的中断最小化,我们建议进行完整的功能、可伸缩性和安全性测试,以了解ipv6如何影响服务和网络基础设施。

2、[rfc5157]描述了一些在网络上寻找潜在目标的替代技术,例如,枚举一个区域中的所有dns名称。

3、需要注意的是,在双栈网络中,除了需要考虑ipv4和ipv6的安全实现外,还要考虑与两者共存的交互(和)之间的转换相关的安全考虑。

4、扩展标头使acl等无状态数据包过滤器的任务复杂化。如果使用acl执行安全策略,则企业必须验证其acl(也有状态防火墙)是否能够处理扩展头(这意味着充分理解它们以解析它们以找到上层有效负载)并阻止不需要的扩展头(例如实现[rfc5095])。

6、在启用了两个协议族(即使默认情况下)的双栈环境中运行的所有路由器和主机必须对两个协议版本具有一致的安全策略。例如,必须对ipv4和ipv6同时实现允许tcp服务器的所有端口80和443,并拒绝所有其他端口。

7、值得注意的是,管理ipv6不仅仅限于使用大的ipv6地址,而且ipv6接口和节点很可能使用两个或多个地址作为正常操作的一部分。更新管理系统以处理这些额外的细微差别,可能会花费时间和相当大的精力。

在【RFC7934】中,建议ipv6网络部署为每个前缀到通用主机提供多个ipv6地址,并且它特别不建议将主机限制为每个前缀只有一个ipv6地址。它还建议网络使主机能够使用新的地址,而不需要显式的请求(例如,通过使用无状态地址自动配置(slaac))。【RFC8981】隐私扩展构成了主要场景之一,即主机需要从同一前缀生成多个地址,每个接口的多个ipv6地址与每个主机的唯一ipv4地址相比是一个重大变化(secondary IPv4地址不常见),尤其对于审计来说。

2.1.1 使用ULAs

唯一本地地址(Unique Local Addresses (ULAs) )【RFC4193】用于接口在域内路由,但无法全局访问的场景。它们正式具有全局范围,但【RFC4193】指定它们必须在域边界上进行过滤。ULAs不同于【RFC1918】中描述的地址,并且有不同的案例。其中一种使用在【RFC4864】中描述,另一个是为了提高外部连接可能进出的网络的内部通信稳定性(例如,一些ISPs在家庭网络中提供ULAs通过电缆调制解调器连接)。

RFC4193 unique local ipv6 unicast address

RFC4864 local network protection for ipv6

RFC6164 using 127-bit ipv6 prefixeds on inter-router links

2.1.2 点到点链路

【RFC6164】section5.1指定对内部路由器使用/127的基本原理,点对点的链接,以防止路由器之间的乒乓球问题没有正确地实现【RFC4443】,它还可以防止对邻居缓存的拒绝服务(dos)攻击。先前的建议【RFC3627】已被淘汰,并被【RFC6547】历史标记。

一些环境还对点对点链接使用链接本地寻址。虽然这种做法可以进一步减少基础设施设备的攻击面,但操作缺点也需要仔细考虑【RFC7404】。

2.1.3 环回地址

许多管理员为其基础设施中的所有环回地址保留/64块,并为每个环回接口的保留/64前缀分配/128。此实践有助于配置访问控制列表(acl)规则,以便为这些环回地址强制执行安全策略。

2.1.4 稳定地址

当考虑为一个节点如何分配稳定地址(通过静态配置或通过预先配置的DHCPv6租约),有必要考虑在给定环境下周边安全的有效性。在易于操作(ipv6地址的某些部分可以很容易地识别,用于操作调试和故障排除)和用于侦察的琐碎扫描风险之间存在权衡。基于科学的机制,使扫描IPv6可达节点比预期的更可行【RFC7707】。稳定的地址还允许在外围轻松地执行基于IPv6寻址的安全策略。例如,Manufacturer Usage Description (MUD)【RFC8520】是一种机制,其中外围防御部门可以根据内部设备的类型检索安全策略模板,并根据设备的ipv6地址应用正确的安全策略。

使用众所周知的IPv6地址(如ff02::1用于所有链接本地节点)或使用通常重复的地址,可以很容易地弄清楚哪些设备是名称服务器、路由器或其他关键设备,甚至在一个路径上用一个简单的traceroute就会暴露大部分路由器。有许多扫描技术是可能的,管理员不应该依赖于“不可能找到,因为我的地址是随机的”这种范式。即使通常的做法是将稳定的地址随机分布在/64子网之间,并总是使用dns(因为ipv6地址对人类大脑来说很难记住)。

虽然在某些环境中,混淆地址可以被认为是一个额外的好处,但它不应排除对边界规则的执行。遵循某些逻辑分配方案的稳定地址可能会简化操作(因为简单性总是有助于安全性)。

典型的部署可以把稳定和不稳定的地址混合使用;稳定地址要么是可预测的(例如,::25用于mail server),要么是混淆的(即以随机的64位数字出现)。

2.1.5 SLAAC临时地址

历史上,无状态地址自动配置(slaac)基于一个自动生成的64位接口标识符(IID)地址基于64位扩展独立标识符EUI-64结合/64前缀(路由器广告(ra)的前缀信息选项(PIO)接收)自动生成的全局唯一的ipv6地址。eui-64地址由稳定的48位mac地址生成,即使主机移动到另一个网络,也不会改变。这当然对隐私有害,因为主机可以从网络(家庭)追踪到网络(办公室或酒店的wi-fi)。建议不要使用eui-64地址,必须注意,大多数主机操作系统不再使用eui-64地址,而是依赖于【RFC8981】或【RFC8064】。

随机生成一个接口ID,如【RFC8981】中描述,是SLAAC所谓的隐私扩展地址的一部分并被用于解决一些隐私问题。隐私扩展地址、临时地址或许有助于减轻同一网络内的一个节点的活动之间的相关性,也可能减少攻击暴露窗口。但是使用隐私扩展地址也可能会阻止管理员构建特定主机的ACL。这些地址也可用于阻止一些恶意的活动,以及特定用户属性/问责程序,如section2.6中描述。

使用RFC8981定义的随机地址生成方法生成临时地址

【RFC8064】结合了【RFC7217】中的地址生成算法指定另一种方法来生成一个地址,同时仍然为每个网络前缀保持相同的IID。这使得SLAAC节点在特定的网络上总是相同的稳定ipv6地址,而在不同的网络上有不同的ipv6地址。

在某些特定的场景中,用户责任比用户隐私更重要。网络管理员会考虑关闭SLAAC而依赖DHCPv6。然而,并不是所有的操作系统都支持DHCPv6,于是一些主机无法获得IPv6连接。对于大多数操作系统,可以通过发送RA消息通过隐藏的dhcpv6来设置m位,并通过重置所有PIOS中的所有A位来禁用隐私扩展地址。然而,如果不在交换机/路由器级别强制执行,攻击者仍然可以找到绕过这个机制的方法。

然而,在用户强烈希望匿名保护用户隐私(保护用户隐私比用户归因更重要)的情况下,应该使用隐私扩展地址。当【RFC8064】推荐的机制可用时,稳定的隐私地址可能是在隐私(在不同的网络之间)和安全/用户归属(在网络之间)之间的平衡。

2.1.6 DHCP 安全考虑

一些环境使用dhcpv6来提供地址和其他参数,以确保可重用性和可追溯性(dhcpv6的审核性参见第2.6.1.5节)。一个主要的安全问题是检测和对抗恶意dhcp服务器(section2.3.3)的能力。必须指出,与dhcpv4不同,dhcpv6可以租约几个ipv6地址。对于dhcpv4,租约被绑定到“客户端标识符”,该标识符可能包含硬件地址或其他类型的标识符,如dns名称。对于dhcpv6,租约被绑定到当前的dhcp唯一标识符(duid),该标识符可能绑定到客户端MAC地址,也可能不绑定。【RFC7824】描述了与互联网用户使用dhcpv6相关的隐私问题。匿名配置文件【RFC7844】是为那些希望对该网络保持匿名的客户而设计的。【RFC7707】建议dhcpv6服务器从警报池中随机发布地址

随机的DHCPv6 server地址。

2.1.7 DNS安全考虑

虽然ipv4和ipv6之间的安全问题没有根本区别,但在dns64【RFC6147】环境中,有一些具体的考虑需要理解。具体来说,需要理解与dnssec【RFC4033】实现的交互和干扰的可能性——这些在第2.7.3.2节中有更详细的指出。

2.1.8 主机使用/64前缀

一种有趣的方法是对每个主机使用/64前缀,如【RFC8273】中提出的那样,特别是在共享环境中。这允许更容易的用户归属(通常基于主机的mac地址),因为/64前缀是稳定的,即使主机内的应用程序可以使用这个/64前缀更改其ipv6地址。

一旦系统(例如,管理工作站)有了自己的前缀,这对ACL的生成也很有用。

2.1.9 隐私地址考虑

除了IPv6地址的安全方面,还有隐私考虑:主要是因为它们是全球范围和全球可见的。【RFC7221】通过比较手动配置的IPv6地址、DHCPv6c和SLAAC,更详细地介绍了IPv6地址的隐私考虑。

---------------- Part1 END------------------

你可能感兴趣的:(IPv6安全,网络,安全)