❏ 站外平台:

美国防部大动作,或造成我国内网数据泄露

作者: 宋崟川

| 2021-04-26 08:58      

美国国防部宣告其 IPv4 地址

4 月24日,据华盛顿邮报美联社报道,隶属于美国国防部的一个部门国防数字服务Defense Digital Service(简称 DDS),过去三个月,以注册在佛罗里达的 全球资源系统Global Resource Systems LLC 公司(GRS 有限公司)名义,使用 BGP(边界网关协议) 向全球路由表宣告属于美国国防部的地址段。所谓宣告地址,便是让这些地址可以在互联网上直接访问。

可能造成的影响

既然这些地址属于美国国防部,那他们开个公司在互联网上发布这些地址有什么问题呢?

对遵循网络协议,正常分配内网地址的网络没有影响。然而,对于使用公网地址的内部网络可能会遇到两个问题:

  1. 这种做法,破坏了互联网运行的规则,可能造成内网不能正常访问互联网服务。
  2. 配置不完善不安全的网络,会将本来仅限内部的数据包发送到互联网上去。

为什么在内网使用公网地址

我们先来探讨一下为什么会出现在内网使用公网地址的现象。

大部分读者都知道我国最近两年在大力推进 IPv6,目的是从根本上解决我国 IPv4 地址短缺的情况。IPv4 地址短缺是全世界面对的共同问题,而且不仅仅是互联网上 “公网” IPv4 地址短缺,各个NAT 机制后面的 “私网” IPv4 地址也存在严重的地址短缺,这种现象在大中型网络中更为明显。

影响

下列地址在一月之前只是分配给了美国国防部,并没有使用BGP 向全球宣告。

这些地址范围,包括:

  • 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

如果你管理一个大中型网络,且内部使用了上述地址,请立即在网络边界阻断对这些地址的访问,详细步骤见后文。

RFC 1918 规定了三个组织内部可以使用的私网地址段分别是:

  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

其中最大 “私网” 地址段 10.0.0.0 - 10.255.255.255,是大中型网络的首选。

第一段是 10 不变,第四段一般用于标识一个网络内的主机地址,第二段、第三段用于标识不同的部门或地理位置,所以第二段、第三段合起来确定一个 /24 的方便识别的子网。

这样的网络理论上最多承载 2^16 =65536 个子网,现实中的分配则相当粗犷,为了便于人类识别,往往为某个功能块分配几十个 /24 的子网,形如 10.20.20.0/24,10.200.20.0/24。组织结构稍微复杂一点或者经常变动,地址很快就不够分配了。

这时就会有很多网络工程师提出使用 1、2、3、4、5、6、7、8、9、11、20、30、40、50……等等开头看起来特殊的 IP 地址在内网使用。

这就是为什么有些网络内部会出现这些奇怪的地址。

现象 1:内网不能正常访问互联网服务

上述地址在互联网上使用 BGP 宣告之前,看起来是没有问题的。然而一旦这些地址开始在互联网上使用或出售继而开始通过BGP 宣告,很快这些地址就会开始承载各种互联网服务。

然而此时,组织内网络配置了这些本应属于公网地址的子网,用户渐渐会发现有一些网站打不开。这是因为数据包在流经内部网络路由器时,受路由条目的影响,在到达互联网出口之前,就被转发到内网对应网段,而这些网段往往是没有用户需要访问的服务的。

最经典的例子莫过于 Cloudflare 在 2018 年开始使用 1.1.1.1 提供 DNS 服务,结果发现很多用户无法访问,除了一些运营商的配置问题外,很多网络设备操作系统或默认配置中存在包含 1.1.1.1 的路由。

现象 2:仅限内部的数据包发送到互联网

上述情况仅限于内网对应地址在互联网上提供了业务的情况,而美国国防部在互联网上发布自己的地址,那些地址并没有提供互联网服务,会有什么样的影响呢?

许多配置失误的网络,在同时满足以下几个条件时,本应属于内部的数据包会到达美国国防部控制的GRS 网络:

  1. 使用了不属于自己的地址段(此例中是美国军方地址)
  2. 内部网络路由表中并没有对应的条目
  3. 边界网络设备上并未配置对应的 ACL 或安全策略阻断这些地址
  4. 默认路由指向互联网接口,且能访问互联网
  5. 上游运营商没有对这些地址做特殊处理

眼尖的读者一定发现了,会有本来目的地在私有网络内的数据包到达美国国防部控制的网络,这存在严重的信息安全风险。

GRS 可以分析进入他们网络的所有数据包:

  1. 针对 TCP 会话,可以构建服务器响应客户端握手,进而获得泄漏出来的敏感数据;
  2. UDP 是无连接协议,客户端发送敏感数据不需要事先与服务器端握手建立连接;
  3. 统计单个原地址发来数据包的目的地址和端口,可以构建该地址对应内网的服务器和端口列表。

根据公开信息,中国一些公有云、私有云和运营商内网中,存在不同程度的使用一些已经分配给国外政府、军队、公司的公网地址。可以想到,内网使用公网地址的模式长期运行,由于误配置造成的敏感数据流向互联网是必然发生的,目前也正在发生。

补救方案

对于已经在内网开始使用公网地址的网络,网络管理员应该如何补救呢?

  1. 检查自己网络的路由表,找出既不属于 RFC1918、RFC3927、RFC6598 定义的地址范围,也不属于互联网运营商或 CNNIC、APNIC 等区域 NIC 分配给自己的公网地址。
    • RFC1918:规定了 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 三个地址段
    • RFC3927:规定了 IPv4 链路本地地址段 169.254.0.0/16
    • RFC6598:规定了 CGNAT 使用的 100.64.0.0/10 地址段
  2. 如果存在上述地址,补救方案要分为两种情况:
    1. 与上级 ISP 使用 BGP 互联。在运行 BGP 的互联网边界路由器上,使用 route-map 等路由策略工具,在与 ISP 路由器相关的 BGP 配置中,双向过滤掉上述地址。同时使用黑洞路由在边界设备上将目的地是上述地址的数据包丢弃。
    2. 与 ISP 之间并无 BGP 关系,只是 ISP 的终端客户。在边界路由器或防火墙上,配置 ACL、安全策略或黑洞路由,在边界设备上将目的地是上述地址的数据包丢弃。
  3. 在实施补救方案后,针对内部使用公网地址的情况,选择一个彻底修复的方案:
    1. 迁移内部应用到 IPv6,完全避免使用 IPv4 地址。注意IPv6的地址应该是正常渠道申请获得的。如果完全不需要访问互联网,可以使用 IPv6 ULA地址段,即 fc00::/7 的后半段地址 fd00::/8,使用方法参见 RFC4193。
    2. 无法迁移到 IPv6 或预计使用时间不会超过 5~10 年的应用,制定 IP 重新分配规划,过渡期使用 NAT 帮助平滑过渡。
  4. 未来网络地址规划要考虑以下几点:
    1. 不要盗用已经分配给他人的 IP 地址
    2. 新建网络首选 IPv6 单栈结构
    3. 无论 IPv4 还是 IPv6 都应该在二进制边界划分地址段
    4. 明确内部地址范围,在网络边界配置安全策略,防止地址伪造和数据泄露

图片

IANA IPv4 Special-Purpose Address Registry

图片

IANA IPv6 Special-Purpose Address Registry

结语

IP 地址的规划短则影响数年,长则影响数十年。20 世纪 90 年代初的地址分配,在 2021 年给互联网造成了巨大了影响。然而当时没有人能预计到互联网如此迅猛发展,IPv4 地址成为了稀缺资源。

抱着侥幸心理使用他人拥有的地址,破坏了互联网运行的规则,一方面随着当年IPv4地址的转让出售,会形成未来互联互通的障碍,另一方面对自身造成了极大的信息安全风险。

关于 2020 年 6 月份有关美国国防部要出售这些 IPv4 地址块的消息及后续

处理掉 IPv4 地址众议院修正案包含一项规定(第 1088 条)。
这将要求美国国防部在十年时间陆续出售一些 IPv4 地址块。
参议院法案中没有类似规定。
众议院退却。

作者简介

宋崟川,现就职于 Red Hat。持有微软 Azure 解决方案专家认证,微软 MCSE 核心基础设施认证,红帽系统管理员认证,甲骨文 Solaris 11 系统管理员认证。对中西方信息化基础设施有深入了解和丰富实战经验,尤其对高校信息化发展有独到见解。



最新评论


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。