Arch Linux AUR Malware Incident: Over 1,500 Packages Affected
Arch Linux 開發者在發生影響 Arch User Repository (AUR) 中超過 1,500 個套件的安全事件後,已刪除所有已知的惡意提交 (commits)。該事件最初僅有 400 個受影響套件的報告,但受影響的使用者貢獻套件總數最終上升至 1,579 個。
Impact and Remediation
Arch Linux 開發者認為在移除惡意提交後,該事件目前已得到控制。然而,受影響套件的官方清單被描述為僅包含受影響軟體的「許多(但非全部)」,這暗示受影響的套件總數可能高於 1,579 個。
Security Risks of the AUR
與官方 Arch Linux 儲存庫不同,AUR 是由社群驅動、使用者貢獻的儲存庫。這種結構使其成為安裝未經審查軟體的風險高發環境。
技術社群成員強調了在安裝前審查 PKGBUILD 檔案的重要性。正如一位使用者所言:
As always a fair reminder to not install random 3rd party packages/libraries/applications without reviewing them, especially when there is zero vetting.
為了降低這些風險,建議使用者使用如 rua 等工具在安裝前審查套件,或避免使用會自動化該過程的 AUR wrapper,因為這些 wrapper 可能會跳過關鍵的手動審查步驟。
Community-Suggested Detection and Recovery
由於官方對於系統檢查的指導有限,社群成員分享了識別潛在感染的方法。這些方法包括:
- Checking Foreign Packages: 使用
pacman -Qmi列出外來套件並將輸出結果與受影響套件清單進行比對。 - Searching for Malicious Dependencies: 執行
grep指令來在package.json、package-lock.json以及~/.npm目錄中搜尋atomic-lockfile。 - Reviewing Logs: 在
/var/log/pacman.log中搜尋提及惡意套件的紀錄。 - External Scripts: 社群建立了一個儲存庫 (
lenucksi/aur-malware-check) 以協助使用者檢查感染情況。
Proposed Systemic Improvements
在此事件之後,社群建議了幾項結構性變更以提升 AUR 安全性:
- Vulnerability Scanning: 在套件發布時實施自動化漏洞掃描,類似於 npm 使用的流程。
- Adoption Policies: 限制任何使用者領養孤兒套件 (orphaned packages) 的能力,以防止戰術性接管。
- Packaging Helper Updates: 更新 AUR helper 以允許使用者設定最低套件年齡要求,類似於
pnpm中的功能。