Arch Linux 達成逐位元組可重現 Docker 映像:Source Date Epoch 與 ldconfig 快取清除的實踐
antiz.fr · 2026-04-24
Arch Linux 開發者宣布 Arch Linux 官方 Docker 映像已達成逐位元組可重現(bit-for-bit reproducible)的建置目標:任何人在任何時間、任何機器上使用相同的建置輸入,均能產生位元組完全相同的 Docker 映像。這一成就讓使用者能夠獨立驗證映像的真實性,從根本上強化了容器供應鏈安全。
可重現建置的核心挑戰
Docker 映像的可重現建置面臨多個非確定性來源:檔案系統時間戳(mtime、ctime)記錄建置時間,在不同時刻建置必然不同;某些工具在內部計算雜湊值或隨機數並寫入輸出檔案;套件安裝順序可能影響最終的 rootfs 布局。
具體實作技術
Arch Linux 的解決方案包含以下關鍵步驟:
- SOURCE_DATE_EPOCH 設定:所有建置工具使用此環境變數確定「當前時間」,確保時間戳在不同建置間保持一致。此變數的值同時記錄在容器映像的 metadata label 中,允許後續驗證。
- ldconfig 快取清除:
/var/cache/ldconfig/aux-cache檔案包含由內部演算法生成的雜湊值,在不同環境下計算結果不同。建置流程中主動刪除此檔案以消除這一非確定性來源。 - 時間戳正規化參數:在
docker build/podman build呼叫中明確傳入--source-date-epoch=$SOURCE_DATE_EPOCH和--rewrite-timestamp參數,確保所有容器層的時間戳一致。 - WSL 映像方法移植:此技術從 Arch Linux 已有的可重現 WSL(Windows Subsystem for Linux)映像建置方法移植而來,兩者面臨相似的技術挑戰。
驗證方法
可重現性的驗證使用兩種方法:透過容器審查工具(container inspection tools)比較兩次獨立建置的 digest;使用 diffoci 工具逐層比較容器映像,識別任何殘留差異。
使用限制
附帶 repro 標籤的映像版本不包含 pacman 金鑰環(keyring),以維持可重現性。使用者在進行套件操作前需執行:pacman-key --init && pacman-key --populate archlinux。
Ubuntu 26.04 LTS 採用 rust-coreutils 0.8.0:Zellic 安全稽核揭露 43 個 CVE,cp/mv/rm 暫保留 GNU 實作
Ubuntu Discourse · 2026-04-24
Ubuntu 26.04 LTS「Resolute Raccoon」在 2026 年 4 月正式發布,其中一個重大技術決策是大量採用 uutils/coreutils(Rust 重寫的 coreutils)替換 GNU coreutils。為確保此次遷移的安全性,Ubuntu 委託 Zellic 進行了兩輪深度安全稽核,結果公開於 Ubuntu 論壇。
稽核規模
第一輪稽核於 2025 年 12 月進行,第二輪於 2026 年 3 月完成。Zellic 總共識別出 113 個問題,涵蓋從嚴重(Critical)到資訊性(Informational)的多個嚴重程度等級。值得注意的是,Zellic 在第二輪稽核中主動向上游 uutils 專案提交了 30 個修復 Pull Request,體現了稽核與修復深度整合的協作模式。稽核過程共產生 43 個 CVE,編號 CVE-2026-35338 至 CVE-2026-35380。
遺留問題:TOCTOU 競態條件
最終阻止 cp、mv、rm 三個指令完全遷移的是 8 個未解決的 TOCTOU(Time-of-Check-to-Time-of-Use)競態條件。TOCTOU 是一類涉及檔案系統操作的安全漏洞:程式在「檢查目標路徑的狀態」(如確認這是一個普通文件)到「實際對該路徑執行操作」(如刪除或複製)之間存在時間窗口,攻擊者可在此窗口內用符號連結替換目標路徑,使操作作用於攻擊者指定的任意路徑。
Ubuntu 26.04 的部署策略
Ubuntu 26.04 的最終策略是:部署 rust-coreutils 0.8.0 作為大多數 coreutils 指令的實作(含所有稽核發現的已修復項目),僅 cp、mv、rm 三個指令因 TOCTOU 問題繼續使用 GNU coreutils。官方目標是在 Ubuntu 26.10 實現 100% rust-coreutils,前提是上游解決剩餘的 8 個 TOCTOU 案例。
2026 年供應鏈攻擊現況:Docker Hub 的 KICS 惡意映像事件與安全工具受攻擊的新趨勢
Docker Blog · 2026-04-23
Docker 官方部落格在 2026 年 4 月發布了一份關於供應鏈攻擊型態的分析報告,重點事件是針對 Infrastructure-as-Code 安全掃描工具 KICS(Keeping Infrastructure as Code Secure)的 Docker Hub 映像投毒攻擊。
事件經過
攻擊者將惡意 Docker 映像推送至 Docker Hub 上的 checkmarx/kics 官方組織路徑下。KICS 是 Checkmarx 開源的 IaC 安全掃描工具,廣泛用於掃描 Terraform、Kubernetes YAML、Dockerfile 等 IaC 檔案中的安全問題。由於攻擊者推送的映像使用了與官方映像相同的組織路徑,自動化 CI/CD 管道若未驗證映像 digest,可能下載並執行惡意版本。Docker 在偵測到異常後迅速隔離了問題映像,並與 Socket 和 Checkmarx 協調應對。
2026 年供應鏈攻擊的模式分析
報告指出 2026 年供應鏈攻擊呈現三個新趨勢:
- 攻擊安全工具本身:Trivy(漏洞掃描器)和 KICS(IaC 掃描器)均成為攻擊目標,這在邏輯上具有顯著的槓桿效應——攻擊被信任的安全工具可以繞過防禦機制,同時獲得在目標 CI/CD 環境中的高權限執行位置
- CI/CD 管道投毒:攻擊者越來越多地以 CI/CD 自動化工具作為初始攻擊向量,利用管道的高信任度和自動化特性擴大影響範圍
- 跨平台協調攻擊:同一攻擊基礎設施(如 Checkmarx 行動的 C2 伺服器)同時針對多個套件生態系(npm、Docker Hub、PyPI)
防禦建議
Docker 建議在 CI/CD 管道中始終以 digest(image@sha256:...)而非 tag 引用映像,並在引入新的容器映像時驗證其 SBOM(Software Bill of Materials)和簽名。Docker Scout 等工具可提供映像的持續安全監控。
原始來源:Docker Blog、Socket.dev