概要
AIプロキシツールLiteLLMのリリースパイプラインが侵害され、10月21日に悪意あるバージョン1.107.0がPyPIとDocker Hubに公開された。PyPIでは協定世界時11時39分から13時23分まで、Dockerでは11時46分から14時20分までの約2時間、不正なパッケージが配布可能な状態にあった。攻撃者は盗んだAWS認証情報の有効性確認を、情報窃取開始からわずか4.5時間後に始めていたことも確認されている。侵害されたバージョンはv1.107.0のみで、直前のv1.106.2以前のバージョンに影響はない。
侵入経路と手口
LiteLLM側の説明によると、攻撃者は3人のエンジニアのGitHubアカウントに、盗まれたGitHub CLIのOAuthトークンを使って侵入した。これらのトークンは、外部に公開されたままになっていたLiteLLMの内部デプロイ環境から取得されたとみられる。攻撃者は1つのアカウントでリリースパイプラインの設定を改変し、別のアカウントでリリースを承認、さらに別のアカウントでワークフローの実行記録を削除するという役割分担で侵入の痕跡を隠そうとした。LiteLLMは、最近修正された脆弱性が初期侵入の足がかりになった可能性があるとしている。
配布されたマルウェアの内容
悪意あるコードはPython起動時に自動実行されるcook.pthファイルに仕込まれており、LiteLLM自体を利用していなくてもPythonを起動するだけで実行される点が特徴だ。1つ目のペイロードは「privcollect」と呼ばれる認証情報窃取ツールで、AWS・Azure・Google Cloud・Kubernetes・Dockerの認証情報、Git・SSH・GPGの鍵、Chromium系およびFirefoxのブラウザデータ、Claude・Codex・Gemini・CursorといったAI開発ツールの認証情報、さらにLiteLLMプロキシが保存する認証情報やモデル設定まで幅広く狙う設計だった。収集したデータは圧縮・暗号化され、litellm[.]dev/healthcheck宛にHTTP POSTで送信されていた。2つ目のペイロードはバックドアで、GitHub上の「デッドドロップ」リポジトリを1時間おきに確認し、指示されたコードを実行するバックグラウンドデーモンとして動作していた。発見にはKevin Beaumont氏をはじめ、Wiz、Aikido、Socket、SafeDep、StepSecurity、Upwindなど複数のセキュリティ研究者・企業が関わった。
対応と今後の影響
LiteLLMは不正パッケージを削除し、侵害されたトークンを失効させるとともに、調査の間GitHub組織のメンバーを大半削除する対応を取った。プライベートレジストリを利用するエンタープライズ顧客への影響はなかったという。セキュリティ企業Aikidoの研究者Ilyas Makari氏は利用者に対し、「バージョン1.107.0をインストールした場合は、認証情報が漏洩したものとして扱い、ローテーションすべきだ」と、LiteLLM自身の当初の案内よりも厳格な対応を呼びかけている。LiteLLMは今年、同種の.pthファイルを悪用する手口を含むサプライチェーン侵害を繰り返し受けており、3月には153GB規模のデータアーカイブが流出しAWSやSamsung、Cisco、Salesforceなど約2,500の企業ドメインに影響が及んだ事案も発生している。度重なる侵害は、AIインフラを支えるOSSプロジェクトのリリースパイプラインの防御体制そのものに疑問を投げかけており、依存先のサプライチェーンリスクを定期的に見直す必要性を改めて示している。