攻撃者がCoderのCloudflareインフラを侵害し、不正なレジストリサーバーを追加した上で、認証情報を窃取するコードを含む悪意あるTerraformモジュールを配布していたことが分かりました。
Coderプラットフォームは、AIアプリケーションを含むソフトウェアの構築・展開のために、企業が開発者へ安全なセルフホスト型クラウド開発環境を提供できるようにするサービスです。
このプロジェクトは、Dropbox、Palantir、Square、Mercedes-Benz、KKR、EnBW、米国政府、防衛関連企業など、著名な民間・政府組織で利用されています。
Coderは今週、開発者がワークスペーステンプレートのコンポーネント取得に利用するパッケージホスティングサイト「registry.coder.com」が攻撃者に狙われたことを公表しました。
Coderのレジストリ自体はCloudflareの背後で稼働していますが、攻撃者はその基盤インフラにアクセスし、レジストリのサーバープールに不正なサーバーを追加しました。
その結果、Cloudflareは一部のレジストリリクエストをCoderの正規サーバーではなく攻撃者のサーバーへとルーティングし、一部のユーザーに悪意あるファイルが配信される事態となりました。
「身元不明の悪意ある攻撃者がCoderのCloudflareインフラにアクセスし、Coderのモジュールレジストリで使用されるプールに不正なIPアドレスを追加しました」とCoderのアドバイザリには記されています。
「これらの不正なIPアドレスは、悪意あるコードを含む成果物を保持したCoderレジストリの模造バージョンをホストしていました」
Coderによると、悪意ある成果物が配信されていた期間は、8月31日(月)の07:35 UTCから21:45 UTCまでとのことです。
この間、悪意あるサーバーは、コンピューティングインフラの構築・設定手順をまとめたパッケージであるTerraformモジュールの改変版を配信していました。
Coderによれば、この悪意あるモジュールは感染したホスト上で情報窃取ツールとして動作し、以下のような情報を探索していたとされています。
- プロビジョナーの環境変数とシークレット
- クラウドインフラおよびAIツール関連のAPIキー
- CI/CD認証情報
- 設定ファイル内のシークレットとターミナル履歴
- ユーザーのOIDCトークン
- 設定済みのSSH鍵
- ワンタイムの外部認証トークン
- プロビジョナーが「coderd」内で実行されていた場合のCoderデータベースパスワードおよびその他の設定シークレット
収集された情報は、Coderのドメインを装った偽ドメイン「coder-infra[.]com」へ送信されていました。
影響を受けた可能性のあるユーザーは、上記リストに挙げられたシークレットをすべて、可能な限り速やかにローテーションすることが推奨されます。
パッチ済みリリース(バージョン2.37.0、2.36.4、2.35.7、2.34.9)へアップグレードする前に、Coderはファイアウォール、プロキシ、DNS、VPCのフローログをチェックし、coder-infra[.]comへの通信がないか確認するよう推奨しています。
また、開発者はプロビジョナーログでdata.external.telemetryを検索し、露出期間中にダウンロードされたモジュールを特定した上で、キャッシュされた悪意あるパッケージの可能性があるものを削除する必要があります。
影響の有無を判断できるよう、Coderは影響を受けた可能性のあるキャッシュ済みモジュールやテンプレートバージョンを特定できるSQLクエリを公開しています。
Coderによれば、リフレッシュトークンはプロビジョナーに渡されておらず、同社が保持する顧客データへの影響を示す証拠も見つかっていないとのことです。
ただし、攻撃者のインフラは同プロジェクトの管理外にあるため、Coderは重要なログにアクセスできず、侵害されたデプロイメントをすべて確実に特定することはできないとしています。