美國防部這個大動作,或造成我國內網數據泄露
IP地址的規劃短則影響數年,長則影響數十年。20世紀90年代初的地址分配,在2021年給互聯網造成了巨大了影響。然而當時沒有人能預計到互聯網如此迅猛發展,IPv4地址成為了稀缺資源。
4月24日,據華盛頓郵報和美聯社報道,隸屬于美國國防部的一個部門Defense Digital Service(簡稱 DDS),過去三個月,以注冊在佛羅里達的 Global Resource Systems LLC 公司(GRS有限公司)名義,使用 BGP(邊界網關協議) 向全球路由表宣告了屬于美國國防部的地址段。所謂宣告地址,便是讓這些地址可以在互聯網上直接訪問。
既然這些地址屬于美國國防部,那他們開個公司在互聯網上發布這些地址有什么問題呢?
對遵循網絡協議,正常分配內網地址的網絡沒有影響。然而,使用公網地址的內部網絡可能會遇到兩個問題:
- 這種做法,破壞了互聯網運行的規則,可能造成內網不能正常訪問互聯網服務。
- 配置不完善不安全的網絡,會將本來僅限內部的數據包發送到互聯網上去。
我們先來探討一下為什么會出現在內網使用公網地址的現象。
大部分讀者都知道國家最近兩年在大力推進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 網絡:
- 使用了不屬于自己的地址段(此例中是美國軍方地址)
- 內部網絡路由表中并沒有對應的條目
- 邊界網絡設備上并未配置對應的 ACL 或安全策略阻斷這些地址
- 默認路由指向互聯網接口,且能訪問互聯網
- 上游運營商沒有對這些地址做特殊處理
眼尖的讀者一定發現了,會有本來目的地在私有網絡內的數據包到達美國國防部控制的網絡,這存在嚴重的信息安全風險。
GRS 可以分析進入他們網絡的所有數據包:
- 針對 TCP 會話,可以構建服務器響應客戶端握手,進而獲得泄漏出來的敏感數據;
- UDP 是無連接協議,客戶端發送敏感數據不需要事先與服務器端握手建立連接;
- 統計單個原地址發來數據包的目的地址和端口,可以構建該地址對應內網的服務器和端口列表。
根據公開信息,中國一些公有云、私有云和運營商內網中,存在不同程度的使用一些已經分配給國外政府、軍隊、公司的公網地址。可以想到,內網使用公網地址的模式長期運行,由于誤配置造成的敏感數據流向互聯網是必然發生的,目前也正在發生。
對于已經在內網開始使用公網地址的網絡,網絡管理員應該如何補救呢?
(1) 檢查自己網絡的路由表,找出既不屬于 RFC1918、RFC3927、RFC6598 定義的地址范圍,也不屬于互聯網運營商或 CNNIC、APNIC 等區域 NIC 分配給自己的公網地址。
(2) 如果存在上述地址,補救方案要分為兩種情況:
- 與上級ISP使用BGP互聯。在運行BGP的互聯網邊界路由器上,使用 route-map 等路由策略工具,在與ISP路由器相關的BGP配置中,雙向過濾掉上述地址。同時使用黑洞路由在邊界設備上將目的地是上述地址的數據包丟棄。
- 與ISP之間并無BGP關系,只是ISP的終端客戶。在邊界路由器或防火墻上,配置ACL、安全策略或黑洞路由,在邊界設備上將目的地是上述地址的數據包丟棄。
(3) 在實施補救方案后,針對內部使用公網地址的情況,選擇一個徹底修復的方案:
- 遷移內部應用到 IPv6,完全避免使用 IPv4 地址。注意IPv6的地址應該是正常渠道申請獲得的。如果完全不需要訪問互聯網,可以使用IPv6 ULA地址段,即fc00::/7 的后半段地址 fd00::/8,使用方法參見 RFC4193。
- 無法遷移到IPv6或預計使用時間不會超過5~10年的應用,制定IP重新分配規劃,過渡期使用NAT幫助平滑過渡。
(4) 未來網絡地址規劃要考慮以下幾點:
- 不要盜用已經分配給他人的 IP 地址
- 新建網絡首選 IPv6 單棧結構
- 無論 IPv4 還是 IPv6 都應該在二進制邊界劃分地址段
- 明確內部地址范圍,在網絡邊界配置安全策略,防止地址偽造和數據泄露
(IANA IPv4 Special-Purpose Address Registry)
(IANA IPv6 Special-Purpose Address Registry)
結語
IP地址的規劃短則影響數年,長則影響數十年。20世紀90年代初的地址分配,在2021年給互聯網造成了巨大了影響。然而當時沒有人能預計到互聯網如此迅猛發展,IPv4地址成為了稀缺資源。
抱著僥幸心理使用他人擁有的地址,破壞了互聯網運行的規則,一方面隨著當年IPv4地址的轉讓出售,會形成未來互聯互通的障礙,另一方面對自身造成了極大的信息安全風險。
關于 2020 年 6 月份有關美國國防部要出售這些IPv4 地址塊的消息及后續:
- 處理掉IPv4 地址眾議院修正案包含一項規定(第1088條)。
- 這將要求美國國防部在十年時間陸續出售一些IPv4 地址塊。
- 參議院法案中沒有類似規定。
- 眾議院退卻。
出處:https://www.congress.gov/congressional-report/116th-congress/house-report/333/1