从美国国防部宣告巨大IPv4地址空间说起:内部网络使用其他组织的IP地址有何风险?
随着国民经济发展,网络成为生产生活的必需。分支机构众多的各类企事业单位、公有云、政务云、高性能计算平台等等,它们的内部网络规模越来越大,子网数量激增,加上早期 IPv4 地址规划的不合理,许多大型组织不得不在RFC 1918[1]以及 RFC 6598[2]定义的地址之外想办法。
然而他们既没有通过正常渠道(购买、申请、租用)获得额外的 IPv4 地址,也没有迁移到 IPv6 上来规避这个问题,而是随意使用互联网上其他组织所拥有的 IPv4 地址,这其中就有许多地址与美国国防部(Department of Defense,简称 DoD)拥有的地址段重叠。
2021 年第一季度,美国国防部在互联网路由表中,开始宣告一部分自己拥有的 IP 地址。这件事在互联网上,既寻常,又反常。
寻常之处在于:通过 BGP (边界网关协议)与互联网交换路由信息,宣告自身地址路由,每时每刻都在发生(图1)。
反常之处在于:美国国防部拥有的海量地址,过去近三十年间并未出现在互联网路由表中。
图1 BGP 路由信息传递示意
笔者根据自己所见所闻,结合互联网路由知识,意识到上述两个时间和地理空间上看似独立的事件,很可能在网络空间造成一些混乱,甚至影响网络安全。
互联网的各个参与方,必须行动起来了。
01
美国国防部开始宣告自身地址
由于历史原因,美国国防部建立的 ARPANET 作为互联网的前身,优先考虑了自身的需求,为美国国防部多个系统分别分配了大块 A 类地址(有类地址是历史上的概念。现代的写法是“地址前缀 /8”),三十多年过去了,今天依然属于美国国防部的 A 类地址有以下这些:
6.0.0.0 - 6.255.255.255
7.0.0.0 - 7.255.255.255
11.0.0.0 - 11.255.255.255
21.0.0.0 - 21.255.255.255
22.0.0.0 - 22.255.255.255
26.0.0.0 - 26.255.255.255
28.0.0.0 - 28.255.255.255
29.0.0.0 - 29.255.255.255
30.0.0.0 - 30.255.255.255
33.0.0.0 - 33.255.255.255
55.0.0.0 - 55.255.255.255
214.0.0.0 - 214.255.255.255
215.0.0.0 - 215.255.255.255
美国国防部所拥有的多个 IPv4 地址段,过去三十年间并没有出现在全球 BGP 路由表中,说明互联网上没有使用这些地址。然而到了 2021 年,这些地址的所有者美国国防部,开始在互联网上“复苏”这些休眠数十年的 IPv4 地址。
2021 年 4 月 24 日,据华盛顿邮报和美联社报道,美国国防部的一个数字精英部门 Defense Digital Service(简称 DDS),自 2021 年 1 月 20 日就开始以佛罗里达的 Global Resource Systems LLC(GRS 有限公司)名义,使用 AS8003 的自治域号码,通过 BGP 向全球路由表宣告属于美国国防部的地址段(图2、图3)。
图2 AS8003 IPv4 路由传播路径
图3 AS8003 宣告的部分地址
截至目前,这些地址段共有 174,784,512(约 1.75 亿)个IPv4地址,占全球可用IPv4地址空间约6%。其中包括了完整的7.0.0.0/8,11.0.0.0/8,21.0.0.0/8,22.0.0.0/8,30.0.0.0/8 等 A 类地址块。
02
内部网络IPv4地址短缺的“应对之道”
一般来说,IPv4 地址短缺,特指互联网可路由地址(简称“公网地址”)空间的地址不够分配,而且公网地址空间的地址侵占行为一般是有组织的黑客所为,不在本文的讨论范围。
大部分情况下,持有 ASN (自治域号码)和公网 IP 地址段的互联网参与方,必须证明自己是地址的合法所有者,才能向上级运营商宣告自己的 BGP路由,并被传递到互联网的其他参与者路由器上。
前文提到,由于内部网络规模越来越大,出现了 RFC 1918和RFC 6598定义的私有地址空间不够用的情况。部分网络设计师和运营者开始使用其他组织在互联网上的 IP 地址,有的 IP 地址存在于互联网路由表中,有的不在(如 2021 年之前的美国国防部的 IP 地址)。
经过观察分析可以发现,这些大型内部网络获得“额外”的 IP 地址主要有以下两种方式。
第一种,有意为之。
不少网络设计师和运营者,查看了全球 IPv4 地址分配结果,与实际使用中的全球 BGP 路由条目对照,发现美国国防部拥有多个 A 类地址段,这些地址空间没有出现在全球 BGP 路由表中,在互联网上没有使用,便认定没有风险,开始在自己的内部网络使用这些地址。
RFC 6598 第三节和 ARIN 的博客介绍了这种行为,即“squat space”,侵占他人的 IPv4 地址。
在中国,由于政府、企业、高校等大型网络大多没有使用 BGP 进行网际互联的条件,因而这种地址侵占几乎没有机会对全球 BGP 路由表产生负面影响。
而世界范围内,在使用侵占地址的一方由于没有对 BGP 路由过滤,在不知情的情况下造成 BGP 劫持的案例屡见不鲜。注意地址侵占并不必然造成 BGP 劫持。
第二种,无意过失。
有一些网络设计师和运营者,对私有地址空间定义的两个 RFC 文档不熟悉,对 IP 地址前缀长度的理解不够。常见的一种情况是,了解 192.168.0.0/16 的范围属于私有地址空间,但却错误地将 192.0.0.0/8 也认定是私有地址空间。
相似的例子还有CGNAT(运营商级地址转换方案)地址池100.64.0.0/10,对应的范围是100.64.0.0 ~ 100.127.255.255。这一段地址之后的100.128.0.0 ~ 100.255.0.0 属于美国T-Mobile 通讯公司,这段地址之前的100.0.0.0 ~ 100.63.255.255空间属于多家电信运营商和亚马逊。然而,据笔者了解,部分地区的运营商却将整个100.0.0.0/8,即100.0.0.0 ~ 100.255.255.255视为可用于CGNAT的地址池。
无论有意或是无意,上述使用IP地址的行为侵占了其他组织合法的IP地址空间。
接下来分析一下使用重叠地址,侵占其他组织(以美国国防部为例)IP对自身的影响。
03
地址重叠影响内部用户访问互联网服务
在网络内部使用侵占的公网地址访问互联网服务,根据所侵占的IP地址与所访问的地址是否存在重叠,分为两种情况。
1. 侵占的IP地址不在互联网路由表,或出现在互联网路由表但不是所访问的服务:
例如内网侵占了 7.0.0.0/8 的地址,互联网网关的 NAT (网络地址转换)地址池是 203.0.113.1 ~ 203.0.113.10,虽然 7.0.0.0/8 存在于互联网路由表,但客户端要访问在 3.0.0.0/8 内的服务。
这种情况下,与正常使用合法私有地址配置的网络行为是一致的。受互联网出口的源地址 NAT 功能影响,凡是需要访问互联网的数据包的源地址,均会被替换成 NAT 出口地址池中的公网地址,目的地址不变。数据包离开网络经过多重路由到达服务器,返回时数据包的目的地址是 NAT 出口地址池地址,到达 NAT 设备后,NAT 设备查找地址转换状态表,替换目的地址为网内地址。
上述情况是网络配置完成后的符合预期的状态。
2. 侵占的IP地址在互联网路由表,恰好是所访问的服务(为贴近事实,此处选择亚马逊,其拥有整个3.0.0.0/8):
例如内网侵占了3.0.0.0/8 的地址,互联网网关的 NAT 地址池是203.0.113.1 ~ 203.0.113.10,客户端恰好要访问在3.0.0.0/8内的服务。
内网存在一条路由3.1.1.0/24,客户端所希望访问的具体服务器地址(例如3.1.1.10)在内部网络中不存在,或并没有提供客户端期望的服务。这种情况下,数据包在到达边界 NAT 设备之前,就会被送达到3.1.1.0/24这个子网,然而此网络内没有对应服务器能够提供客户端期望的响应,客户端请求失败。
该情况有一个广为人知的真实案例,Cloudflare 在2018年开始使用1.1.1.1提供DNS服务,结果发现很多用户无法访问,除了一些运营商网络内部使用了1.1.1.1,还有很多网络设备操作系统或默认配置中包含到1.1.1.0/24的路由。
眼下,美国国防部刚开始宣告自身地址,并没有提供对公众的服务,直接造成的影响微乎其微。但如果美国国防部未来开始出售所持有的这些地址,云提供商作为最大的潜在买家,购买并开始使用这些地址,内部用户访问互联网服务,迟早会从上述第一种情况变成第二种情况,即无法访问。
假设美国国防部无意出售这些地址,只是将路由信息发布在互联网路由表上,会造成什么影响呢?
04
地址重叠可能泄漏信息造成网络安全隐患
网络安全是一个宏大复杂的话题,在此仅仅讨论什么情况下会出现信息泄露,以及可能泄露的信息内容。
笔者此处将“信息泄露”简单地定义为“发送方没有期望接收方之外的第三方获取、理解的信息,第三方获取并理解了这样的信息。”
内容侵占公网地址,什么情况下发生信息泄露?
设想一个客户端地址为7.2.1.10/24,一个服务器端地址为7.1.1.100/24。
对此网络做如下合理假设:
1. 客户端和服务器端使用 UDP (用户数据报协议)通讯。
2. 客户端和服务器每两分钟通讯一次,两者之间没有类似 TCP的ACK 确认机制。
3. 客户端和服务器交互的数据包的所有内容,包括IP 地址、端口、数据报文内容,均定义为敏感信息,不得落入第三方手中。
4. 此网络规模很大,无法稳定使用二层结构。
5. 客户端和服务器在不同子网,连接了不同的三层网络设备,整个网络运行动态路由协议。
6. 客户端和服务器均可以通过一个互联网网关访问互联网,所有三层设备均存在指向互联网方向的默认路由。
7. 除了 NAT 的配置,互联网网关唯一安全策略是禁止互联网发起的入方向数据包。
8. 客户端和服务器之间的其他三层网络设备,使用 ACL (访问控制列表)配置为只允许客户端和服务器指定 IP 地址和端口之间的通讯。
正常运行时,在客户端相连的三层设备上,有以下四条路由(图4):
图4 正常时客户端交换机路由表
假设此时服务器相连的三层设备因为种种原因离线:硬件故障,接线不牢,操作员误配置,路由进程重启,客户端相连的三层设备路由表会变成如下状态(图5):
图5 服务器交换机故障后客户端交换机路由表
在服务器交换机恢复正常前,客户端的数据包就会沿着默认路由,逐跳到达互联网网关。
互联网网关根据此刻自身的路由表,判定目的地址为 7.1.1.100 的数据包下一跳是互联网运营商路由器,网关的 NAT 功能将数据包源地址 7.2.1.10 替换成 NAT 地址池中的地址 203.0.113.1,数据包目的地址 7.1.1.100 保持不变,送往运营商路由器。
运营商路由器根据全球路由表找到最匹配的 7.0.0.0/8 路由,将包传递给自己的 BGP 邻居 AS6939 的互联路由器。
AS6939 的多个路由器逐跳将数据包送往 AS8003 的路由器,到达美国国防部控制的网络。
由于没有明细路由,更没有合适的服务器接收数据包,此数据包在 AS8003 的网络内部被丢弃。
以上,可以说此含有敏感数据的数据包离开了内部网络,途经至少三个第三方网络(本地 ISP,中间 ISP,美国国防部控制的网络),中间有无数的机会被截获监听。
泄露的信息内容
在进一步探讨信息泄露的内容前,先介绍一个略反常识的概念——网络本身是单向的。
数据包有去有回,是两个单向通道叠加的结果。有高级网络知识的读者应该知道MPLS(多协议标签交换)中Label Switching Path(标签交换路径,LSP)是单向通道,双向的通讯要求建立一对方向相反的LSP。
纯IP网络中的路由与之相似,一个数据包的接收方(通常为服务器端)需要有到达请求方的路由,才能将响应的数据包发送给请求方。
在简单的网络中往往两个单向通道由相同的物理层承载。复杂的网络的设计师虽然会尽力避免来回路径不一致的情况,但也是无法完全消除路径可能会由不同设备、链路承载的情况。
而在IP之上的TCP,作为有状态协议,必须要求网络上两个节点之间是双向畅通的,但并非只有建立了 TCP 连接之后传递的数据才有网络安全意义上的价值。
TCP的SYN(同步序列编号)包,UDP报文,其他IP之上的协议如ICMP(Internet控制报文协议),GRE(通用路由封装协议),IPsec ESP(封装安全负载)等等,在网络中被嗅探都有其独特的价值。
1. 在没有返回通路,无法建立 TCP 连接时,能接触到 TCP SYN 包的第三方可以构建内部网络服务器的地址分布和端口分布情况。
2. 最典型的两个 UDP 应用,DNS 和 syslog(系统日志),数据均以明文存放。如果说 DNS 请求大多价值较低,那 syslog 携带的各种日志价值就很高了。
3. GRE 作为无连接的隧道协议,在内部网络通常是不加密的,其内部可以封装很多不同类型的数据包,以太网、IPv4、IPv6、MPLS 等,部分设备的端口镜像功能可以把交换机物理端口的双向流量封装在 GRE 包内,供远程抓包分析。相比 TCP 和 UDP,GRE 可以包括更多完整信息。
从网络攻防的角度来看,这种安全威胁不同以往,假想敌没有任何攻击性行为,即使设置网络嗅探装置,也是在自己的网络内。对方调整路由,完全是合理范围内的操作,对方没有主动干扰我方网络。世界上有多家公司和研究机构在跟踪全球路由表变化。全球路由表的变化是透明的、可追溯的。
由此可见,形成数据泄露风险的根源,完全在于我方网络的 IP 地址规划的失误和网络健壮性不足。
05
实验验证
本实验(图6)验证了如下内容:
1. 目的地在 7.0.0.0/8 范围的数据包起码可以到达位于华盛顿旁边的弗吉尼亚州 Ashburn 市, AS6939 与 AS8003 的边界路由器 72.52.92.226( DNS名称为:100ge5-1.core2.ash1.he.net);
2. 即使源地址列表匹配目的地址,源地址 NAT 也不会改变目的地址或目的端口;
3. 源地址列表匹配的数据包,经过路由器 NAT 转换后,离开路由器的源地址和源端口都变了。
图6 实验示例
06
临时补救措施与修复方案
适合大多数内网的临时补救措施
1. 停止在新建和改扩建网络中使用不合法地址。
2. 在网络边界,主要是互联网边界,综合使用黑洞路由、访问控制列表、安全策略等,阻止使用内网不合法地址的数据包进出。
3. 在网络文档中明确内网可用的合法地址范围。
彻底修复安全隐患
1. 规划地址迁移方案,同时规划内网 IPv6 地址方案。
2. 根据路由表排查内部错误地址方案。
3. 根据迁移规划的新地址,对现有网络 ACL 和安全策略进行修正,对内网 DNS 进行修正。
4. 使用 DHCP (动态主机配置协议)协助迁移,逐个子网重新分配地址。
5. 验证路由表中的错误地址段路由已消失。
6. 清理 ACL 和安全策略中引用的旧地址。
07
给互联网建设者的建议
遵守互联网的运行规则,不要侵占其他组织的IP地址。
熟悉 RFC 1918 和 RFC 6598 定义的地址,或参考 IANA 发布的 IPv4 和 IPv6 特殊地址列表。
要检索一段地址的 BGP 路由和 WHOIS 域名信息,可以使用 https://bgp.he.net 进行查询。
使用了这些地址的终端用户
已经在使用这些地址的用户,主要参考是前面提到的补救措施和修复方案。
使用了这些地址的大型互联网公司
根据自身网络和应用情况,以补救措施和修复方案为指导,逐步替换不合法地址。
有 BGP 接入的互联网公司和其他组织,应当正确配置路由过滤,防止内部正在使用的地址路由从互联网接收和向互联网宣告。
互联网运营商
运营商的核心网络对众所周知的私有网络地址已经进行了屏蔽,这是每个 ISP 都会做的。
不建议运营商对文中任何地址段采取特殊策略,这样做不符合运营商在互联网中的定位。
运营商如果已经侵占 IP 地址在内部使用,则应在边界做好 BGP 过滤器在内的防范措施,并逐步替代这些地址段。
网络设备厂商
网络设备厂商的手册中,如果为了提高可读性,在文档中需要使用公网可路由地址,需说明此地址不代表真实网络,仅作为示例使用。
新撰写的文档首选使用 RFC 5737 规定的文档专用地址,包括:
192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)
网络工程师培训班
网络工程师的培训需要强调侵占 IP 地址的危害,让学员熟知 RFC 1918 和 RFC 6598 定义的私有地址。
与网络设备厂商类似,为了便于学员理解掌握网络知识,培训和实验时使用公网可路由地址是可以的,但仍需说明此地址不代表真实网络,仅作为示例使用。
总之,要最大限度避免本文介绍的种种风险,首先要尊重、遵守网络世界的一般规则。其次,在设计网络时除了理想的正常工作状态,也要考虑种种可能的意外情况,如软硬件故障、人工误操作、自动化脚本 bug、上游运营商故障、内部路由混乱等等。
如果今天内部网络用了其他组织未宣告的地址,就要想到明天地址所有者开始宣告后会产生什么影响。网络的可靠性和健壮性不能只靠硬件、软件的冗余,而是靠完善细致的总体设计,以防御性的姿态设计和运行网络。
参考资料
1. IPv4 Prefix for Shared Address Space
https://tools.ietf.org/html/rfc6598#section-3
2. ARIN Blog - To Squat Or Not To Squat?
https://teamarin.net/2015/11/23/to-squat-or-not-to-squat/
3. IANA - IPv4 特殊地址列表 https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
4. IANA - IPv6 特殊地址列表 https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
*注释:
[1] RFC 1918定义的私有网络地址空间10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
[2] RFC 6598定义的CGNAT专用地址100.64.0.0/10
作者:宋崟川(Red Hat)
责编:项阳
相关内容:
>>第8003号自治域之谜:美国国防部意欲何为?
- 上一篇
CARSI荣获高博会“双百计划”典型案例提名
4月27日,2020年度中国高等教育博览会“校企合作 双百计划”(以下简称“双百计划”)典型案例双走访活动专家组一行走进北京大学,对“教育网联邦认证与资源共享基础设施CARSI”进行现场走访与考察。CARSI获“双百计划”提名双走访活动专家组组长华北电力大学副校长王增平向北京大学计算中心颁发了“双百计划”科技合作类典型案例提名证书。 颁发2020年度“双百计划”典型案例提名证书北京大学计算中心信息安全室主任陈萍向与会专家介绍了“教育网联邦认证与资源共享基础设施CARSI”的基本情况。CARSI为已经建立校
- 下一篇
4月30日起施行!全国人民代表大会常务委员会关于修改《中华人民共和国教育法》的决定
来源 | 新华社北京4月29日电(2021年4月29日第十三届全国人民代表大会常务委员会第二十八次会议通过)第十三届全国人民代表大会常务委员会第二十八次会议决定对《中华人民共和国教育法》作如下修改:一、将第三条修改为:“国家坚持中国共产党的领导,坚持以马克思列宁主义、毛泽东思想、邓小平理论、‘三个代表’重要思想、科学发展观、习近平新时代中国特色社会主义思想为指导,遵循宪法确定的基本原则,发展社会主义的教育事业。”二、将第四条第一款修改为:“教育是社会主义现代化建设的基础,对提高人民综合素质、促进人的全面发