security
「流出した可能性のある鍵をローテーションしなかったことのリスクを、はっきりと示す事例」
LiteLLMは、先週発生したサプライチェーン攻撃の起点が、5月に同社が誤って公開GitHubリポジトリにコミットしてしまったマスターキーだったことを突き止めました。
この事件のうち、クラウドやAIモデルの機密情報を盗み出す部分は、先週水曜日に何者かが、人気のオープンソースAIゲートウェイである同ソフトの細工されたバージョン(1.107.0)をPyPIとコンテナレジストリにアップロードしたことで始まりました。この侵害されたバージョンには、情報窃取型マルウェア(インフォスティーラー)と、感染したマシン上で任意のコードを実行できるリモートアクセス型トロイの木馬(RAT)が仕込まれていました。
トロイの木馬化されたパッケージがPyPI上で公開されていたのは、隔離されるまでの2時間足らずでした。それでも、Wizによると、この間に約4万9000件 ダウンロードされたということです。
LiteLLMは金曜日、侵害されたリリースに至る攻撃の経緯を詳しく公表しました。調査の結果、発端は5月27日にさかのぼります。この日、マスターキーを含む設定ファイルが、公開リポジトリのLiteLLM-Labs/lite-harnessにコミットされました。このキーは、LiteLLMが社内でAIエージェントのオーケストレーションに使っていたオープンソースツールのものでした。プロジェクトの開発者らはミスにすぐ気づき、問題のコミットを削除しましたが、マスターキーの無効化は怠っていました。
金曜日に公開された事後報告書には、次のように記されています。「10月10日、攻撃者はこのキーを使ってLiteLLM Agent Platformに侵入し、GitHub CLIのOAuthトークンを抜き取りました。この時点から、攻撃者は当社のGitHub上にあるすべてのリポジトリに対して、オーナー権限でアクセスできる状態にありました」
GitHub CLIのトークンは「2FA通過後(post-2fa)」の扱いになります。つまり、リポジトリに対する影響の大きい操作の際に通常求められる、GitHubのsudoモード認証が発動しません。この点が事態を特に深刻にしています。
このトークンにより、攻撃者は他の社内リポジトリのブランチに悪意あるコミットを仕込めるようになりました。その中には、継続的インテグレーション(CI)の開発プロセスで利用可能に設定されたトークンやシークレットを盗み出すよう設計されたワークフローも含まれます。これを足がかりに、攻撃者はメンテナー権限を持つ2人のエンジニアに紐づく別のGitHub CLI OAuthトークンも盗み出しました。
さらに、他の複数の社内システムのトークンも入手していたといいます。LiteLLMは「これらのシステム上での攻撃者の動きを調べたところ、追加の鍵やトークンを特定して外部に持ち出そうとした形跡があり、特に上流の推論APIトークンを主な標的にしていました」と説明しています。
攻撃者は複数の特権アカウントを手に入れたことで、GitHubリポジトリに変更を加えても疑われずに済む状態になりました。あらゆる操作や承認が、正規の認証情報を持つエンジニアによるものに見えたためです。
これを受けてLiteLLMの開発者らは、社内システムとベンダーのプラットフォームに紐づくすべてのトークンを無効化しています。「今回のインシデントは、流出した可能性のある鍵をローテーションしないことのリスクを、はっきりと示すことになりました」と、開発者らは記しています。
侵害されたパッケージに仕込まれていたインフォスティーラーは、大量の機密情報を根こそぎ収集するよう作られていました。対象は、Chrome、Firefox、Edge、Safariのブラウザ認証情報とCookieに加え、AWSの認証情報、Google Cloud Platformのサービスアカウントキーとアプリケーションのデフォルト認証情報、Microsoft Azureのトークンなどです。OpenAIやAnthropic、Cohereをはじめとする各LLMプロバイダーのAPIキーも盗み出していました。
バージョン1.107.0をインストールして実行した場合は、影響を受けたシステムからアクセスできたすべての認証情報が盗まれた可能性があると考えてください。影響を受けたシステムを調査し、パスワードを変更したうえで、流出した鍵をローテーションする必要があります。サプライチェーンの守護聖人にお祈りを捧げておくのも、悪くないかもしれません。®