Arch Linux AUR Compromise: 400+ Packages Infected with Infostealer and Rootkit
Arch User Repository (AUR) において、大規模なサプライチェーン攻撃により400以上のパッケージが侵害されました。信頼されているメンテナーを装った悪意のあるアクターが、orphaned(孤立した)パッケージを「adopt(採用)」し、infostealer(情報窃取型マルウェア)とeBPF rootkitをデプロイするための悪意のあるpreinstallスクリプトを注入しました。
攻撃ベクトル: Orphaned Package Adoption
この侵害は、AURの根本的な設計機能を利用したものです。AURでは、メンテナンスされていない(orphaned)とマークされたパッケージを、任意のユーザーが「adopt」することができます。攻撃者はこのメカニズムを利用して、放棄されたパッケージの採用を自動化し、悪意のあるアップデートをプッシュしました。
ユーザーを欺くために、攻撃者は既知の信頼できるメンテナーのアカウントをなりすまし、悪意のあるコミットを正当なものに見せかけました。この攻撃は継続中であるとされており、キャンペーンの進行に伴い、侵害指標(IoC)が変化しています。
技術的な実行とペイロード
マルウェアは、preinstallスクリプトを含む改ざんされた PKGBUILD ファイルを通じて配信されました。攻撃は異なるバリアントを通じて進化しました:
バリアント 1: npmベースの配信
最初に特定されたバリアントでは、preinstallスクリプトが npm を使用して atomic-lockfile という名前の悪意のあるパッケージをインストールしていました。このパッケージは、NPM上の herbsobering というユーザーによって維持されていました。
バリアント 2: bun-based 配信
攻撃が進むにつれ、攻撃者が js-digest という名前の悪意のあるパッケージをインストールするために bun を使用するように移行したことが報告されています。この移行は、攻撃者が検知を回避したり、単純な npm ベースの回避策をバイパスしたりするために、積極的に適応していることを示唆しています。
Rootkit および Infostealer の機能
単なるデータの窃取にとどまらず、このキャンペーンはeBPF rootkitのデプロイによって注目を集めています。infostealer とカーネルレベルの rootkit の組み合わせにより、攻撃者は永続性を維持し、システム管理者から活動を隠蔽することが可能になり、感染したシステムを信頼できる可能性を排除します。
修復と復旧
Arch Linux ユーザーの方は、被害状況を特定し軽減するために、以下の手順を推奨します:
1. 感染したパッケージの特定
ユーザーは pacman -Qm を使用して、インストールされている AUR パッケージを特定できます。特定の侵害されたパッケージを確認するために、コミュニティによって開発されたスクリプトが提供されています:
2. システムの復旧
この攻撃には rootkit が含まれているため、標準的なクリーンアップでは不十分です。推奨される手順は、すべての資格情報を更新し、Arch Linux のフルシステム再インストールを行うことです。
コミュニティの分析と議論
この事件は、AUR の信頼モデルに関して Arch コミュニティ内で大きな議論を巻き起こしています。
「すべての PKGBUILD をレビューする」という義務
多くのユーザーは、AUR は常にユーザー生成コンテンツの集合体であり、インストール前にすべての PKGBUILD とすべてのアップデートをレビューする責任はユーザーにあると主張しています。
"People need to get into their heads that the AUR is just a collection of user-produced PKGBUILDs. You have to review the source of every PKGBUILD from the AUR you install, full stop."
提案された構造的変更
他のコミュニティメンバーは、同様の攻撃を防ぐために AUR のガバナンスの変更を提案しています:
- Adoption Warnings: パッケージの所有者が変更されたときに、AUR ヘルパー(
yayやparuなど)に警告を表示する機能を実装する。 - Trusted User Review: パッケージがマージされる前に「Trusted User」によってレビューされる必要があるコミュニティリポジトリモデルへの移行。
- Adoption Restrictions: 通知やレビューなしに、任意のユーザーが orphaned パッケージを採用できる機能を制限する。
NPM/Bun の役割
NPM パッケージがサプライチェーン攻撃の配信メカニズムとして使用される頻度について、広範な不満があります。これにより、本番システムに npm や bun が存在することは、高いセキュリティリスクとして扱うべきだと示唆するユーザーもいます。