1 ポイント 投稿者 GN⁺ 4 시간 전 | 1件のコメント | WhatsAppで共有
  • AUR(Arch User Repository)に多数の悪意あるコミットが挿入され、パッケージのインストール過程でnpm install atomic-lockfileを実行するよう改変されたサプライチェーン攻撃が発生
  • 読み取り専用ミラーの検索結果から、約408件のパッケージのPKGBUILD・.install.hookファイルで同一の悪意あるコマンドを確認
  • 悪意あるコミットは直前コミットの名前・メールアドレスを盗用して正規メンテナーを装うコミット偽装方式であり、アカウント乗っ取りとは別問題
  • Arch側は悪意あるコミットのリセット・削除およびアカウント停止を進めており、追加の悪意あるパッケージは1つのスレッドにまとめて報告するよう要請
  • コミュニティメンバーが個別パッケージのコミットを相次いで報告し、協力的な対応が進行中で、AURパッケージエコシステム全体に影響する大規模な事案

事件概要と対応要請

  • AURに悪意あるコミットが大量挿入された状況が共有され、悪意あるコミットのリセット/削除とアカウント停止作業が進行中
  • 追加の悪意あるパッケージを発見した場合、同じスレッドに集約するためこのメールへの返信という形で報告してほしいとの要請
  • 調整担当者は受理した報告をすべて確認したと返信し、報告に時間を割いた参加者へ感謝を表明

マルウェアのパターン — atomic-lockfile

  • 改変されたパッケージは共通してnpm install atomic-lockfileを実行し、その後ろにora, fast-glob, glob, minimist, axios, commander, execa, chalk, debugなど追加のnpmパッケージ名が続く
  • 悪意あるコマンドが置かれていたファイル種別
    • *-deps.install形式のインストールスクリプト
    • *.installパッケージインストールスクリプト
    • *.hookファイル — 例: Exec = /bin/sh -c 'cd /tmp && npm install atomic-lockfile ... 2>/dev/null; exit 0' の形で/tmpから実行し、エラーを隠して終了
    • 一部はinstall.shなど関連ファイルに含まれる
  • 新規作成された悪意あるパッケージの事例としてexodus-wallet-binが報告され、初回コミット基準で約4時間前に作成された新規パッケージと確認

検知方法と影響範囲

  • 読み取り専用ミラーを直接点検する方式で検知
    • git clone https://github.com/archlinux/aur.git後、すべてのrefを巡回しながらgit grep 'atomic-lockfile'を実行
    • その結果、atomic-lockfileをインストールする約408件のパッケージの長い一覧を確保し、自動クリーンアップ作業に活用可能
  • 影響を受けたとされるパッケージ例
    • runescape-launcher, oracle-bin, tesseract-gui, python-starsessions, bitcoin-core-git, apple-music-desktop, exodus-wallet-bin, anythingllm-appimage, arm-linux-gnueabihf-binutils など
    • cutefish-*, python2-*, python-*系など広範なパッケージ群を含む
  • 大量の個別報告でメールが増えたため、複数件を1通のメールにまとめて送る方式が推奨され、IRCでは統合パッケージ一覧が別途共有された

なりすまし/偽装の手口

  • 特定アカウント(arojas)関連パッケージについて、アカウント乗っ取りなのかコミット偽装なのかという疑問が提起
  • これに対し、悪意あるコミットは**直前コミットの名前とメールアドレスをなりすまし(impersonate)**する方式だと確認 — つまりコミットメタデータの偽装
  • 同一ユーザーの他パッケージはすでに修正済みのケースも報告

対応状況

  • 報告されたパッケージコミットは順次処理され、一部項目は**修正完了(Done)**との返信で確認
  • 追加報告が続く中、調整担当者が受付分を一括確認し、進行中の停止・リセット作業と並行して対応
  • 多数の参加者がコミットリンクとともに個別パッケージを報告し、コミュニティ主導の協力対応という形で進行

1件のコメント

 
GN⁺ 4 시간 전
Lobste.rsの意見
  • この件で、コミュニティにおける匿名・未検証の貢献に残っていた信頼はほぼ終わる気がする
    信頼がリアルタイムで削られていくのを見ている感じだ

    • 正直に言えば良いことだし、すでに遅すぎた。私たちの業界はもう目を覚ますべきだ
      コンピューターには個人的で機微なデータをあまりにも多く預けているし、現代生活の中心にもなっている。個人用コンピューターが感染したら、それは本当に壊滅的な出来事で、運が良ければハッカーがわざわざ自分を狙って嫌がらせするほど自分に興味を持たれないことを願うくらいだ
      それなのに私たちは、なぜかどんなランダムなプログラムでも完全な権限で実行することを当たり前にしてきて[1]、それが悪い考えだと判明するたびに驚いたふりをする
      [1] 現在のユーザー権限基準の話。ほとんどの設定ではrootは事実上ほとんど意味がない
    • KDEは1週間前に独自のビルドパイプラインからAURを削除したが、おそらくこの攻撃の以前のバージョンへの対応だったのだと思う
    • AURパッケージのレビューに信頼の網モデルを適用し、最近の更新にはクーリング期間を組み合わせると面白そうだ
      AURパッケージをインストールまたは更新するときに、こうした選択肢を提示するシステムを想像している。最近更新されたパッケージなら1週間冷ますまで待つ、自分で数分かけてパッケージをレビューして評判に紐づく署名付きレビューを残す、十分な信頼が蓄積された複数の他者による署名付きレビューに依存する、などだ
      クーリング期間は、すべてのパッケージを一緒に最新に保つというArchの方針とは技術的に合わないかもしれない。ただ、AURパッケージはどうせ公式サポート対象ではない
  • 数時間たったのにNPMパッケージがまだ取り下げられていない: https://www.npmjs.com/package/atomic-lockfile

  • インストール済みパッケージが影響を受けたか確認するには、aur_pkg_list.txtファイルと一緒にこの小さなスクリプトを使えばよい

    installed_pkgs="$(yay -Qq)";  
    grep refs aur_pkg_list.txt | awk -F/ '{print $4}' | tr -d ')' \  
    | while read -r pkg; do \  
        echo "$installed_pkgs" | grep "^$pkg\$"; \  
    done  
    

    セミコロンを入れてあるので、ワンライナーにしやすい :-)

    • 部分文字列まで拾ってしまうようだ。たとえば kteakteatime にもマッチする
      この版なら動くようだ

      grep refs aur_pkg_list.txt | awk -F/ '{print $4}' | tr -d ')' | while read -r pkg; do  
         echo "$installed_pkgs" | grep "^$pkg\$";  
      done  
      
  • この件はかなり前から進行していた可能性がある。18日前のこのメールを見ると、似たような悪意あるペイロードが使われたようだが、悪意あるコミットはリポジトリから完全に削除されたようだ

  • 関連して、人気のあるLinuxディストリビューションのサプライチェーンセキュリティ態勢をうまく比較した資料はあるだろうか? これまで見つけた記事の大半は、ほのかなマーケティング臭がするか、AIが作った粗悪な記事のように見えた。もう自分で調べるしかないのかもしれない
    憂うつなのは、コミュニティ開発の理想は好きなのに、サプライチェーンの懸念のせいでクローズドな選択肢や、ひいてはプロプライエタリソフトウェアのほうまでより真剣に見るようになってしまう点だ