ハッカーがLiteLLMプロジェクトのPyPIパッケージを侵害し、認証情報やシークレット、環境変数を盗み出すペイロードを仕込んだ悪意あるDockerイメージを公開しました。
このサプライチェーン攻撃では、LiteLLMバージョン1.107.0のPyPI向けホイール(.whlインストールパッケージ)がすべて影響を受けました。Windows、Linux、macOSの各システムが対象です。
LiteLLMはオープンソースのPython SDK兼AIゲートウェイで、共通のAPIを通じて、アプリケーションがさまざまなプロバイダーのAIモデルを利用できるようにします。
Visit Advertiser websiteGO TO PAGE
同プロジェクトは非常に人気が高く、GitHubのスター数は6万1800、PyPIの月間ダウンロード数は9200万に上ります。NVIDIA、Netflix、AT&T、Oktaといった有名企業も利用しています。
プロジェクト側によると、リリースパイプラインが侵害されたのは10月21日です。攻撃者はバージョン1.107.0をDockerレジストリとPyPIに公開しました。
メンテナーは「このバージョンには、認証情報を盗み、リモートコード実行ツールを読み込むコンパイル済みマルウェアが含まれていた」と説明しています。一方で、プライベートのエンタープライズ版を使用している顧客に影響はなかったとのことです。
メンテナーが公表したインシデントの事後分析によると、この攻撃で影響を受けたLiteLLMのアーティファクトは次のとおりです。
- PyPI:litellm==1.107.0の7つのホイールすべて。UTC 11:39:51から13:23まで公開
- Docker Hub:v1.107.0、latest、main-latest、main-stable。UTC 11:46:56から14:20まで、侵害されたイメージインデックスsha256:1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339eを指していた
- GHCR:v1.107.0、latest、main-latest、main-stable。UTC 11:46:56から、13:51までに利用不可になるまでの間、以下の侵害されたイメージインデックスを指していた
-
- ghcr.io/berriai/litellm: sha256:1bbcb1443bc9…
- ghcr.io/berriai/litellm-database: sha256:c00f9d92c427…
- ghcr.io/berriai/litellm-non_root: sha256:7b00e91cd2fe…
複数のアプリケーションセキュリティ企業が、悪意あるLiteLLMバージョンの公開から6分以内に攻撃を検知し、ペイロードを分析しました。
研究者らによると、攻撃者はLiteLLMのアプリケーションコードには手を加えていません。インストールパッケージのみを改変し、環境のPythonライブラリディレクトリに3つの悪意あるファイル(cook.pth、cook.py、sitecustomize.py)を配置していました。
Socketの研究者らは「Pythonは通常の起動時に、実行可能な.pth行を処理し、その後sitecustomizeのインポートを試みる」と説明しています。
Endor Labsは、この仕組みにより、当該環境でPythonを起動するたびに、アプリケーションより先にペイロードが実行されると指摘しています。影響を受けたインストールを調べるためにPythonやpipを実行した場合も、マルウェアが作動しました。
マルウェアが狙ったデータは次のとおりです。
- クラウドおよびデプロイ関連の認証情報:AWS、Azure、Google Cloud、Kubernetes、Docker、インフラ管理用のシークレット
- AI関連の認証情報と設定:AI開発ツールの認証ファイル、LiteLLMが保存しているプロバイダーの認証情報とモデル設定
- 開発者のシークレットと秘密鍵:Git、GitHub、npm、PyPI、CI/CDの認証情報、.envファイル、SSH・GPG・TLSの鍵
- ブラウザーのデータ:保存されたログイン情報、Cookie、自動入力・支払い情報、閲覧履歴のデータベース
- ホストとランタイムのデータ:環境変数、シェルやアプリケーションの履歴、システム・ネットワーク情報
盗まれたデータはAES-256-CBC鍵で暗号化されます。この鍵はさらにRSA-4096鍵で暗号化され、「litellm[.]dev/healthcheck」にアップロードされます。
悪意あるファイルの1つであるsitecustomize.pyは、切り離されたローダーを起動します。このローダーは、GitHub上にあるポインターを1時間ごとに確認し、外部サーバーからPythonコードをダウンロードしてホスト上で実行します。
悪意あるパッケージはすでに削除されています。影響を受けた可能性のあるユーザーは、該当するデプロイを停止し、Pythonインタープリターを起動せずに環境を調査する必要があります。
感染したシステムは隔離し、クリーンなバックアップから再構築してください。公開された可能性のあるシークレットは、すべて直ちにローテーションする必要があります。
LiteLLMのパッケージディレクトリを削除するだけでは、起動用ファイルや稼働中のローダーが残る可能性があります。
現時点で推奨される復旧先のバージョンは、攻撃前の最新のクリーンなリリースであるLiteLLM 1.106.2です。
同プロジェクトは以前にも3月に侵害を受けています。このときは、LiteLLMのCI/CDパイプラインで使われていたAqua SecurityのTrivy脆弱性スキャナーが侵害され、その後ハッキンググループ「TeamPCP」が悪意あるLiteLLMバージョンをPyPIに公開しました。