2024年4月22日、Bitwardenの公式CLI(コマンドラインインターフェース)を装った悪意のあるバージョンが、npmレジストリ上で@bitwarden/[email protected]という公式パッケージ名で公開された。

この悪意のあるパッケージは、公開からわずか93分間でnpm経由でインストールされたユーザーのシステムに侵入し、正規のCLIの代わりにバックドア付きの代替ツールを実行させた。Bitwardenは直ちにパッケージを削除し、公式声明を発表。ユーザーのパスワード管理データ(vault)へのアクセスや、生産システムの侵害は確認されなかったとしている。

攻撃の仕組みと狙われた認証情報

セキュリティ調査会社JFrogの分析によると、この悪意のあるパッケージは、インストール時と実行時に攻撃を仕掛ける仕組みだった。具体的には、preinstallフックbwバイナリのエントリポイントを改ざんし、Bunランタイムをダウンロードして難読化されたペイロードを実行していた。

攻撃者の主な狙いは、Bitwardenのvaultデータそのものではなく、以下のような開発・運用インフラに関わる機密情報だった。

対象データ/認証情報主な格納場所運用上の重要性
GitHubトークン開発者PC、ローカル設定、CI環境リポジトリへのアクセス、ワークフローの悪用、機密情報の列挙、自動化を通じた横展開が可能
npmトークンローカル設定、リリース環境悪意のあるパッケージの公開やリリースフローの改ざんが可能
SSH鍵開発者PC、ビルドホストサーバー、内部リポジトリ、インフラへのアクセスが可能
シェル履歴ローカルPCペーストされた機密情報、内部ホスト名、ワークフローの詳細が漏洩する可能性
AWS認証情報ローカル設定ファイル、環境変数、CIシークレットクラウドワークロード、ストレージ、デプロイメントシステムへのアクセスが可能
GCP認証情報ローカル設定ファイル、環境変数、CIシークレットクラウドプロジェクト、サービス、自動化パイプラインへのアクセスが可能
Azure認証情報ローカル設定ファイル、環境変数、CIシークレットクラウドインフラ、IDシステム、デプロイメントパスへのアクセスが可能
GitHub ActionsシークレットCI/CD環境自動化、ビルド出力、デプロイメント、下流の機密情報へのアクセスが可能
AIツール用設定ファイルプロジェクトディレクトリ、ローカル開発環境APIキー、内部エンドポイント、モデル設定、関連する機密情報が漏洩する可能性

なぜBitwarden CLIが狙われたのか?

Bitwardenは5万社以上の企業と1000万人以上のユーザーに利用されており、そのCLIは「強力でフル機能のツール」として紹介されている。特に、環境変数を用いた自動認証に対応しており、CI/CDパイプラインなどの自動化ワークフローで広く利用されている。

Bitwardenの公式ドキュメントでは、npmを「最も簡単で推奨されるインストール方法」としており、多くのユーザーがnpm経由でCLIをインストールしている。このため、高い特権を持つ開発・運用環境の機密情報が保管されている場所に、このCLIがインストールされるという、リスクの高い状況が生まれていた。

攻撃の背景とセキュリティ業界の見解

セキュリティ企業Socketによると、この攻撃はBitwardenのCI/CDパイプライン内でGitHub Actionsが侵害されたことが原因と見られ、Checkmarxの研究者が追跡していたサプライチェーン攻撃の一環と一致しているという。Bitwardenもこの攻撃がCheckmarxによるサプライチェーン攻撃キャンペーンに関連していることを確認している。

「npmの信頼できる公開モデルは、まさにこの種のリスクに対処するために設計されたものだ。長期間にわたるnpm公開トークンに代わって、OIDCベースのCI/CD認証を導入することで、このリスクを軽減できる」
— セキュリティ専門家

今後の対策とユーザーへの注意点

  • npm経由でのCLIインストールは避ける:公式サイトから直接ダウンロードするか、信頼できるパッケージマネージャーを使用する。
  • CI/CDパイプラインのセキュリティ強化:GitHub Actionsなどの認証情報は定期的にローテーションし、OIDCベースの認証を導入する。
  • ローカル環境の機密情報管理:シェル履歴や一時ファイルに機密情報が残らないよう注意し、定期的にクリーニングを行う。
  • 監視とログの確認:不審なアクセスや実行コマンドがないか、ログを定期的に確認する。
  • Bitwarden CLIのアップデート:最新バージョンがリリースされた場合は、公式ソースから確実に入手し、インストールする。