実在する開発者向けツールになりすました偽の拡張機能が、Open VSXレジストリ上で発見されました。そのうち約4分の1が、これを利用する組織のgitおよび継続的インテグレーション(CI)のアイデンティティ情報を窃取していたことが分かっています。
Manifold Securityが8月4日に発表した新たな調査によると、7月26日から8月1日にかけて77個のパッケージが出現しました。いずれも、正規の所有者ではないアカウントから、実在する拡張機能の名前とネームスペースを再公開したものでした。これらはすべて、最初のパッケージが出現する11日前に登録された単一のドメインにビーコン通信を行っていました。
大半のパッケージはホスト名程度の情報しか送信していませんでした。名前を乗っ取られたネームスペースには、AMD、LEGO Education、Hyperledger、Azure、Artsy、Salesforce OSS、米連邦政府機関、さらにはマーケットプレイス自体になりすましたmarketplace.visualstudioが含まれていました。
拡張機能の名前悪用についてさらに読む: Malicious VS Code Extensions Exploit Name Reuse Loophole
開示情報が偽装だった
残る19個は、より本格的なペイロードを備えていました。有効化から数秒後には、ホスト名、オペレーティングシステムのユーザー名、エディタの詳細情報、マシンIDを送信します。続いて、エディタで開いているリポジトリを読み取り、gitのリモートホストと組織名、コミットメールのドメイン、ブランチ、そしてHEADコミットの情報を取得していました。
さらに、GitHubのリポジトリ名、GitLabのプロジェクトパス、Codespace名といったCI関連の値も収集していました。
「ビルドランナーやクラウド開発環境では、これは組織名だけでなく、完全なプライベートリポジトリ名そのものです」とManifoldは説明しています。
特異な点は、それらのリスティングがこうした挙動を明示していたことです。それぞれに「Telemetry(テレメトリ)」というセクションが設けられ、収集されるフィールドの大半が正確に列挙されていたほか、ソースコードや認証情報、トークンは収集しない旨の保証も記載されていました。Manifoldがこれらの記載内容をコードと照合したところ、その通りであることが確認されました。
ただし一つだけ例外がありました。あるリスティングには、CIデータについてはマーカー名のみを収集し値は収集しないと記載されていましたが、実際のコードは両方を送信していました。ペイロードの中で最も機微な情報であるこのフィールドこそが、開示情報の中で「送信していない」と説明されていたものだったのです。
これらの拡張機能には、それ以外の機能はありませんでした。ステータスバーにチェックマークを表示し、あるコマンドを実行するとメッセージボックスが表示され、そしてビーコンが発火する――それだけです。
削除後も生き延びる設計
収集用ドメインは、登録者情報を秘匿するレジストラを通じて、3年契約で登録されていました。コードはエラーを含むあらゆるHTTPレスポンスを「成功」として扱い、7日間にわたって再試行を繰り返し、エディタが再起動するたびに再開する仕組みになっていました。
すべてのエンドポイントへの通信が失敗した場合、ビーコンはDNSのTXTレコードを照会して代替の収集先アドレスを取得します。これにより、攻撃者は新しいパッケージを配布し直すことなくインフラを移転できるようになっていました。
このペイロードはまた、ワークスペース自体のdevcontainerや拡張機能の設定によってその拡張機能が導入されたのかどうかも報告しており、リポジトリ側の設定によるインストールと、人間が選択して行ったインストールとを区別していました。
Manifoldは、これが重要な理由として、名前解決がますます自動化されている点を挙げています。エージェントやプロビジョニングスクリプトが名前だけを頼りに2つのレジストリを横断してインストールを行う一方で、それぞれのレジストリの所有権ルールが異なるため、名前を乗っ取られたパッケージと本物とを区別できないのです。
Open VSXは8月3日にこれらのパッケージを削除しましたが、本稿執筆時点でも該当のインフラは稼働したままでした。
Manifoldは、社内でレジストリをミラーリングしている場合は発行者(publisher)とバージョンでピン留めすること、未検証の発行者であることを示すバナー表示を自動インストールにおけるブロック条件として扱うこと、そして起動直後に最近登録されたばかりのドメインへ通信するエディタのプロセスを検知したらアラートを発することを推奨しています。
翻訳元: https://www.infosecurity-magazine.com/news/open-vsx-evil-twin-extensions-git/