Arch Linux AUR 受損:400 多個套件感染資訊竊取程式與根套件
在 Arch User Repository (AUR) 中,有超過 400 個套件在一次大規模供應鏈攻擊中被入侵。惡意行動者冒充受信任的維護者,接管孤兒套件,並注入惡意的 preinstall 腳本,以部署資訊竊取程式與 eBPF 根套件。
攻擊向量:孤兒套件接管
此入侵利用了 AUR 的一項基本設計特性:任何使用者都可以「接管」已被標記為未維護(孤兒)的套件。攻擊者利用此機制自動接管被遺棄的套件並推送惡意更新。
為了欺騙使用者,攻擊者偽造了一位已知且受信任的維護者帳號,使惡意提交看起來合法。此攻擊被描述為持續進行中,隨著行動的推進,妥協指標 (IoCs) 也在變化。
技術執行與惡意載荷
惡意程式透過修改過的 PKGBUILD 檔案(內含 preinstall 腳本)傳遞。此攻擊隨著不同變種而演變:
變種 1:基於 npm 的傳遞
在第一個被識別的變種中,preinstall 腳本使用 npm 安裝名為 atomic-lockfile 的惡意套件。此套件由 NPM 上名為 herbsobering 的使用者維護。
變種 2:基於 bun 的傳遞
隨著攻擊演變,報告指出攻擊者轉而使用 bun 安裝名為 js-digest 的惡意套件。此變化顯示攻擊者正積極調整,以避免偵測或繞過簡單的基於 npm 的對策。
根套件與資訊竊取程式功能
除了簡單的資料竊取外,此行動因部署 eBPF 根套件而顯得特別。資訊竊取程式與內核層級根套件的結合,使攻擊者能維持持久性並隱藏其活動於系統管理員,感染後系統將無法再被信任。
修復與復原
如果您是 Arch Linux 使用者,建議依照以下步驟來判斷與減輕影響:
1. 辨識受感染的套件
使用者可透過 pacman -Qm 來辨識已安裝的 AUR 套件。若要檢查特定受妥協的套件,社群已提供以下腳本:
2. 系統復原
由於此攻擊涉及根套件,標準清理不足以解決。建議的做法是更換所有憑證,並重新完整安裝 Arch Linux 系統。
社群分析與討論
此事件在 Arch 社群中引發了關於 AUR 信任模型的重大討論。
「審查每個 PKGBUILD」的要求
許多使用者認為 AUR 一直是使用者自行產生內容的集合,責任在於使用者必須在安裝前審查每個 PKGBUILD 與每次更新。
「人們必須明白 AUR 只是一個使用者產出的 PKGBUILD 集合。你必須審查每個從 AUR 安裝的 PKGBUILD 的來源,絕對不能例外。」
提議的結構變更
其他社群成員提出了對 AUR 治理結構的變更建議,以防止類似攻擊:
- Adoption Warnings:在套件所有權變更時,於 AUR 輔助工具(如
yay或paru)中顯示警告。 - Trusted User Review:朝向社群倉庫模式發展,套件必須經過「Trusted User」審核後才能合併。
- Adoption Restrictions:限制任何使用者在未通知或審核的情況下接管孤兒套件的能力。
NPM/Bun 的角色
對於 NPM 套件被頻繁用作供應鏈攻擊載體的情況,社群普遍感到沮喪,導致部分使用者建議在生產系統上出現 npm 或 bun 應視為高度安全風險。