
SlowMist(スローミスト)の最高情報セキュリティ責任者である23pdsは、3月25日に、月間ダウンロード数が9,700万回に達するPythonのAIゲートウェイライブラリLiteLLMがPyPIのサプライチェーン攻撃を受けたことを明らかにした。影響を受けたバージョンは1.82.7および1.82.8で、少なくとも2時間以上プラットフォーム上に存在していた。攻撃者は複数層のマルウェアを仕込むことで、暗号通貨ウォレット情報などを盗み取ることができる。
LiteLLMはAI技術スタックにおいて統一インターフェースの役割を果たし、OpenAI、Anthropic、Googleなど主要サービス提供者のモデル呼び出しをサポートしている。その構造はアプリケーションと複数のAIサービス提供者の間に直接位置しており、多数のAPIキー、環境変数、敏感な設定情報にアクセスできる。
この種のミドルウェアパッケージを侵害することで、攻撃者は上流のサービスに直接侵入することなく、ローカル開発環境、CI/CDパイプライン、クラウドインフラ全体の敏感な認証情報を傍受できる。現在、調査官は今回の攻撃が脅威組織TeamPCPやLAPSUS$と関係しているかどうかを評価しており、因果関係の調査は継続中である。最初の報告はGitHubのユーザーによる公開であり、その後、Futuresearchの外部研究者による詳細分析が行われた。
被害バージョンに埋め込まれたマルウェアは三層構造を採用し、難読化されたBase64エンコードされたPythonプログラムによって実現されている。
第一層(データ漏洩層):ローカルの敏感情報を収集し、AES-256-CBC暗号化を行う。セッションキーはハードコーディングされたRSA公開鍵で暗号化され、tpcp.tar.gzにパッケージ化されて攻撃者の遠隔エンドポイントに送信される。
第二層(偵察と証明書収集層):システム情報や環境変数を列挙し、SSH鍵、Git証明書、AWS/GCP/Azureクラウド証明書、Kubernetes設定ファイル、暗号通貨ウォレット情報、CI/CD設定を体系的に抽出する。一部のマルウェアは、盗取した証明書を使ってAWS APIのクエリやKubernetes操作を積極的に試行する。
第三層(永続化とリモートコントロール層):sysmon.pyをディスクに書き込み、システムサービスとして設定。50分ごとに攻撃者が制御するエンドポイントにポーリングし、新たなマルウェア機能を持続的に送信できる。
悪意のある通信に使用されるドメインには、models[.]litellm[.]cloudやcheckmarx[.]zoneが含まれる。
被害を受けたLiteLLMバージョン(1.82.7または1.82.8)をインストールまたは実行している組織は、該当システムを侵害されたとみなすべきである。マルウェアは持続性を持ち、追加のペイロードを展開している可能性があるため、単にパッケージを削除するだけでは不十分である。
直ちに以下の措置を取ることを推奨する:すべての露出している証明書(AWS/GCP/Azureのアクセスキー、SSH鍵、APIキー)をローテーションする。models[.]litellm[.]cloudやcheckmarx[.]zoneへの疑わしいアウトバウンド通信のログを確認する。tpcp.tar.gz、/tmp/pglog、/tmp/.pg_stateなどの既知のマルウェアファイルやsysmon.pyに関連するサービスを削除する。可能であれば、既知のクリーンな状態から感染したシステムを再構築する。
影響を受けたバージョンはLiteLLM 1.82.7および1.82.8であり、マルウェアは両バージョンのproxy_server.py(両方とも影響あり)およびlitellm_init.pth(バージョン1.82.8)に埋め込まれている。ユーザーは使用中のバージョンを確認し、最新のセキュアなバージョンにアップグレードすることを推奨する。
マルウェアはSSH鍵、AWS/GCP/Azureクラウド証明書、Kubernetes設定ファイルとサービスアカウントトークン、Git証明書、環境変数内のAPIキー、シェル履歴、暗号通貨ウォレット情報、データベースのパスワードなどを収集し、ローカル開発環境、CI/CDパイプライン、クラウドインフラ全体にまたがる攻撃範囲を持つ。
以下の侵害指標を確認する:tpcp.tar.gzのアーカイブファイルや/tmp/pglog、/tmp/.pg_stateの一時ファイル、sysmon.pyに関連する永続化サービスの存在。さらに、出力されるネットワーク通信のログを調査し、上述の悪意のあるドメインとの通信がないか確認する。