防禦邊緣:Cloudflare 如何緩解 Copy Fail Linux 漏洞
2026 年 4 月 29 日,一個被稱為 "Copy Fail" (CVE-2026-31431) 的嚴重本地權限提升漏洞被公開。對於任何大規模 Linux 基礎設施的營運商而言,這類漏洞都是一場高風險的競賽:公開披露與實際利用之間的時間差通常以小時來計算。
Cloudflare 對此事件的應對措施提供了一場深度防禦的典範教學,展示了自動化修補、行為檢測與精準的執行期緩解措施如何結合使用,即使在傳統更新週期過慢的情況下,也能中和威脅。
理解 "Copy Fail" 漏洞
要理解緩解措施,首先必須了解漏洞利用的機制。該漏洞存在於 Linux 核心的 AF_ALG socket 家族中,特別是在用於關聯數據驗證加密 (AEAD) 密碼學的 algif_aead 模組中。
漏洞利用機制
問題的核心在於越界寫入 (out-of-bounds write)。在 2017 年,引入了一項優化功能以允許 原地 (in-place) 密碼學操作,這會將目標與引用頁面鏈接在一起。然而,此設計缺乏足夠的邊界強制執行。
當使用者執行 recvmsg() 時,核心中的 authencesn 包裝器會在合法輸出區域之外進行 4 位元組的寫入。透過利用 splice() 系統調用,攻擊者可以將目標檔案(例如 setuid-root 二進位檔 /usr/bin/su)的頁面快取 (page cache) 鏈接到密碼學分散列表 (crypto scatterlist) 中。
這使得攻擊者能夠:
- 針對任何可讀檔案,透過填充其頁面快取。
- 控制寫入的偏移量,透過
assoclen與splice參數。 - 控制寫入的值,透過
sendmsg()中的 AAD 位元組。
藉由將 shellcode 注入到 setuid 二進位檔的頁面快取中,攻擊者可以在下次呼叫該二進位檔時以 root 權限執行該程式碼,有效地繞過所有本地安全控制。
Cloudflare 的應對策略
Cloudflare 的應對措施以並行工作流為特徵,旨在最小化 "漏洞窗口" 的同時維持服務可用性。
行為檢測 vs. 特徵碼
Cloudflare 防禦中最顯著的面向之一是其現有的行為檢測系統。與依賴特徵碼(知道特定漏洞利用看起來像什麼)的傳統防毒軟體或 IDS 不同,Cloudflare 的系統會監控 異常的程序執行模式。
在內部驗證期間,該系統在幾分鐘內就標記了 Copy Fail 漏洞利用。它將整個執行鏈——從腳本解釋器到密碼學子系統,再到權限提升二進位檔——聯繫起來,而無需進行任何規則變更或人工干預。這讓安全團隊能立即確信,在現實環境中進行的任何實際利用嘗試都會被即時檢測到。
威脅獵捕與鑑識
基於 "假設已被入侵" 的原則,Cloudflare 對披露前 48 小時內的整個集群規模的日誌進行了回溯性獵捕。他們搜尋了漏洞利用留下的獨特核心日誌跡象,並根據已知的良好套件清單驗證了系統二進位檔的完整性,以確保沒有建立任何持久性。
透過 bpf-lsm 進行精準緩解
雖然長期修復方案是核心補丁與重啟,但 Cloudflare 的基礎設施規模(超過 330 個城市)使得全球重啟週期非常耗時。團隊探索了兩條緩解路徑:
- 粗放式工具: 完全移除
algif_aead模組。雖然有效,但這會冒險破壞依賴核心密碼學 API 的內部服務。 - 施展外科手術般的精準措施: 使用
bpf-lsm(BPF Linux Security Module)。
bpf-lsm 如何運作
Cloudflare 部署了一個 eBPF 程式到 socket_bind LSM 鉤子 (hook) 中。該程式並非採取全面禁止,而是實施了邏輯閘:
- 如果 socket 家族不是
AF_ALG,則允許該調用。 - 如果是
AF_ALG,則檢查呼叫二進位檔的路徑是否在已知合法服務的嚴格允許清單中。 - 如果二進位檔不在允許清單中,則拒絕該 bind 請求。
部署流程
為了避免意外停機,Cloudflare 使用了兩階段部署:
- 可視化階段: 他們使用
prometheus-ebpf-exporter來追蹤整個集群中AF_ALG的使用情況。這確認了只有一個內部服務在合法地使用該 API。 - 執行階段: 一旦允許清單被驗證,
bpf-lsm程式就會被推送以封鎖所有其他存取。
經驗教訓與未來強化
儘管緩解措施成功,但此次事件凸顯了幾個需要改進的領域。一個主要的教訓是 "LTS 滯後" 的危險性:Cloudflare 仍處於易受攻擊狀態,因為主線 (mainline) 修復程式尚未回移植 (backport) 到他們特定的 LTS 核心線路中。
為了防止類似問題,Cloudflare 已承諾:
- 減少核心攻擊面: 審計核心配置,主動從構建中完全移除未使用的模組,而不是依賴執行期緩解措施。 。
- 提高 API 可視性: 開發更好的映射機制,以了解哪些生產環境服務依賴於特定的核心 API,從而加速未來的緩解措施。
- 提高 bpf-lsm 工具化程度: 增強其基於 eBPF 的緩解工具的部署速度與日誌記錄能力。
結論
對 Copy Fail 的應對展示了在現代基礎設施中,修補程式並非唯一的防禦線。透過結合強大的核心更新管道與 eBPF 的執行期緩解靈活性,以及行為檢測的方法,Cloudflare 能夠在不中斷服務或冒險客戶數據的情況下,確保其集群規模的安全性。正如社群成員在討論中所提到的,這強化了 LTS 核心的穩定性價值,但同時也凸顯了組織在 LTS 線路滯後於主線安全修復時,需要具備應對計畫的關鍵需求。