5月23日、Socket社が「Laravel Lang Compromised with RCE Backdoor Across 700+ Versi...」と題した記事を公開した。
Laravel開発者にとって馴染み深い多言語化パッケージ「Laravel Lang」が大規模なサプライチェーン攻撃の標的となり、700以上のバージョンにリモートコード実行(RCE)バックドアが仕込まれた。この攻撃により、AWS認証情報、Kubernetesトークン、仮想通貨ウォレット、CIシークレットなど、開発・運用環境の機密情報が広範囲にわたって窃取される可能性がある。
Laravel Langは、Laravel公式ではないもののコミュニティで広く利用されている多言語化パッケージで、月間数十万ダウンロードを記録する人気プロジェクトだ。今回の侵害は、2024年最大級のPHP生態系攻撃として注目されている。
700以上のバージョンに影響する大規模侵害
影響を受けたのはlaravel-lang/lang、laravel-lang/http-statuses、laravel-lang/attributes、laravel-lang/actionsで、約700以上の履歴バージョンにバックドアが仕込まれた。これらのパッケージをインストールしたアプリケーションでは、ComposerのAutoloaderが実行される際にバックドアが自動実行される。
近年、npmやPyPIでのサプライチェーン攻撃が頻発しているが、PHP生態系でこの規模の攻撃は異例だ。
組織的攻撃の痕跡:数秒間隔での大量タグ作成
5月22日と5月23日にかけて、複数のリポジトリで新しいタグが急激に作成された。多くのバージョンはわずか数秒の間隔で公開されており、通常のメンテナンスとは異なる自動化された大量タグ作成のパターンを示している。
Socket社の分析では、攻撃者がLaravel Lang組織の組織レベルのクレデンシャル、リポジトリ自動化、またはリリース基盤にアクセスしていた可能性を示唆している。GitHubのPersonal Access TokenやDeploy Keyの侵害が疑われる。
巧妙な感染メカニズム
悪意のあるコードはsrc/helpers.phpファイルに仕込まれており、このファイルはcomposer.jsonのautoload.filesに登録されている。Composerの仕様では、autoload.filesにリストされたファイルはAutoloader実行時に自動的にロードされるため、通常のアプリケーション実行時にバックドアが動作する。
感染シーケンス
- C2難読化: 実行時にCharacterコードを使用してC&Cホスト名(
flipboxstudio[.]info)を動的に構築し、静的解析を回避 - ペイロード取得:
https://flipboxstudio[.]info/payloadからペイロードを取得(TLS証明書検証を無効化) - ステージング: ダウンロードしたペイロードを
sys_get_temp_dir()/.laravel_locale/に隠しファイルとして書き込み - RCE実行: Unix環境では
exec("php ...")、Windows環境では.vbsスクリプトを生成してcscript経由で実行
マルウェアはホストごとのユニークなマーカー(ディレクトリパス、システムアーキテクチャ、inodeのMD5ハッシュ)を生成し、マシンごとに1回だけペイロードが実行されるよう制御している。
第2段階:包括的な情報窃取フレームワーク
ペイロードは17の異なる「コレクター」を持つ高度なクロスプラットフォーム情報窃取ツールで、事実上すべての機密データを体系的に収集、暗号化、流出させる。
主要なデータ収集対象
- クラウド&AWS: EC2 IMDSエンドポイント(
169.254.169.254)からIAMロール情報を取得、Azure/GCP/DigitalOcean設定ファイル - コンテナ&オーケストレーション: Kubernetes ServiceAccountトークン(
/var/run/secrets/...)、kubeconfig、Helm設定 - CI/CDパイプライン: Jenkins(
master.keyとcredentials.xmlを含む)、GitLab Runner、GitHub Actions、CircleCI - 仮想通貨: Bitcoin/Ethereum/Moneroウォレット、ブラウザ拡張機能(MetaMask、Trust Wallet)
- ブラウザ: Chrome v127+のApp-Bound Encryptionを迂回するため、Base64エンコードされたWindows実行可能ファイル(
DebugChromium.exe)を埋め込み - パスワードマネージャー: 1Password、Bitwarden、LastPass、KeePassなど
影響を受けるバージョンと対応策
Socket社は専用のキャンペーンページ(socket.dev/supply-chain-attacks/laravel-lang-compromise)で影響バージョンを追跡している。
影響を受けたチームは以下の対応を実行する必要がある:
composer.lockでlaravel-lang/lang、laravel-lang/http-statuses、laravel-lang/attributesを確認- クリーンバージョンが確認されるまでこれらのパッケージをブロック
- クラウドクレデンシャル、Kubernetesトークン、CI/CDシークレット、SSH鍵、API鍵のローテーション
- 影響を受けたホスト、コンテナ、CIランナーの既知の良いイメージからの再構築
侵害の指標(IoC)
- ドメイン:
flipboxstudio[.]info - 悪意のあるファイル:
src/helpers.php - 一時パス:
sys_get_temp_dir()/.laravel_locale/ - クラウドメタデータアクセス:
169.254.169.254 - Windows成果物:
DebugChromium.exe
詳細はLaravel Lang Compromised with RCE Backdoor Across 700+ Versionsを参照していただきたい。