PyPI における Ultralytics AI の悪用:ビルド環境の侵害と XMRig マルウェアの展開

Ultralytics AI Library with 60M Downloads Compromised for Cryptomining

2024/12/09 HackRead — PyPI (Python Package Index) で人気を博す、Ultralytics AI ライブラリに悪意のコードを注入して、暗号通貨のマイニングを行うという攻撃が、ReversingLabs のサイバーセキュリティ研究者たちにより発見された。

KEY POINTS
  • ライブラリのビルド・システムを悪用するハッカーたちは、Ultralytics の 8.3.41/8.3.42 に対して悪意のコードを注入し、マイニング・ソフトウェア XMRig をダウンロードさせる。
  • この攻撃では、システムへのアクセスにおいて、GitHub Actions スクリプトのインジェクションと偽のプル・リクエストが使用された。
  • Ultralytics の不正なライブラリは、 6,000万回以上もダウンロードされた。この問題による被害は、マイニングに限定されたものであるが、さまざまなリスクがもたらされる。
  • 開発者/ユーザーに推奨されるのは、ソフトウェアのアップデートとソースの検証により、同様のインシデントを回避することである。

Ultralytics という人気の AI ライブラリを悪用し、秘密裏に暗号通貨をマイニングする攻撃が、ReversingLabs (RL) の最新の研究により判明し、Hackread.com に対して共有された。先月に発見されたのは、インフォ・スティラーを拡散する、悪意の Python パッケージ aiocpa である。今回の発見は、それに続くものである。

12月4日に、Ultralytics のアップデート・バージョン 8.3.41 が、Python ソフトウェアのリポジトリ PyPI (Python Package Index) に投稿された。しかし、GitHub のリポジトリ内のコンテンツは、対応する PyPI パッケージの内容とは異なるものだった。つまり、このプロジェクトのコードレビュー・プロセスが完了した後に、ビルド環境を侵害した脅威アクターが、悪意のコードを注入したことになる。

注入されたコードは、暗号通貨マイナー XMRig をダウンロードする、悪意のダウンローダーのものだった。ReversingLabs の報告書によると、プロジェクトの管理者が侵害を特定できなかったことで、翌日にリリースされた “修正” バージョン 8.3.42 にも、同じ悪意のコードが含まれるという、厄介な状況にあった。

幸いなことに、Ultralytics における問題のバージョン 8.3.41 が投稿され日に、このサプライチェーン攻撃を解決するための、クリーンなバージョン 8.3.43 がリリースされている

この侵害が始まったタイミングは、脅威アクターが GitHub Actions のスクリプト注入を悪用し、信頼された npm パッケージである @solana/web3.js のビルド環境に侵入したときである。続いて脅威アクターは、ultralytics/actions を悪用して任意のリポジトリのフォークを作成し、注入したペイロード・コードを、タイトルに取り込むプル・リクエストの作成に成功した。

さらに、悪意を持って作成された2つのプル・リクエスト (#18018/#18020) は、侵害した環境へのバックドア・アクセスを可能にするように設計されていた。 Ultralytics のメンテナたちが提供する情報によると、このプル・リクエストの背後にあるユーザー・アカウント openimbot と、悪意のペイロードの実行後に確立されたリモート接続は、香港から開始されたものだった。攻撃者は、巧妙に作成されたタイトルを持つ、偽のプル・リクエストを作成することで、システムを騙して悪意のコードを実行させた。

GitHub のコメントには、何が起こったのかと、ハッキングに関与したユーザーに関する限定的な詳細が説明されている (Screenshots via RL)
この攻撃の影響

Ultralytics は、6,000万以上のダウンロード件数と、30,000 の GitHub スターを誇る、人気のライブラリである。その広範な利用を考えると、この攻撃により、何百万人ものユーザーが影響を被る可能性がある。ただし、幸いなことに、この攻撃の対象は、暗号通貨のマイニングに限定されているようだ。

今回のインシデントが示すのは、ソフトウェアのサプライチェーンが、いとも簡単に危殆化していく道筋である。脅威アクターにとっては、バックドアやリモート・アクセス・ツールのような、より危険なコードを注入することも可能である。つまり、AI の開発者たちに必要なことは、あらゆる段階で慎重に行動し、プロジェクトを保護することである。

また、この件は、ソフトウェア・セキュリティの重要性も浮き彫りにしている。信頼できないソースから、変更されたコードを取得する開発者は、その内容をダブル・チェックする必要がある。また、ユーザーにとって重要なことは、ダウンロード元を信頼できるソースだけに限定した上で、ソフトウェアを最新の状態に保つことだ。