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.jsonpackage-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 中的功能。

Sources