見えなかったから承認してしまったマルウェア
GlassWorm は、ペイロードを目に見えない Unicode に隠して人間のコードレビューを通過し、ワークスペースに放置された資格情報を読み取ります。目に見えないワームは暗号を破りません。必要なのはファイルです。
レビュアーはプルリクエストを読みました。すべての行がきれいに表示されていました。バージョンの引き上げ、小さなリファクタリング、ドキュメントの微修正。何も問題があるようには見えませんでした。問題のある部分が画面に描画されることがなかったからです。それは、グリフを持たない Unicode 文字で書かれていました。目には見えず、diff 表示にも見えず、サプライチェーンのセキュリティが今も依拠している人間による承認にも見えない。
それが GlassWorm です。10月以降、Koi Security の研究者は、VS Code 拡張機能を通じて拡散する自己増殖型ワームの初出を追跡しており、その動きは止まっていません[1]。Socket は、1月末以降に Open VSX マーケットプレイスで 70 件を超える新たな悪意ある拡張機能を検出しています[2]。ローダーは目に見えない Unicode の中に隠されているため、コードは保守作業のように見えてレビューを通過します。
インストール後の挙動は平凡な部分です。そして、そこに要点があります。周囲に放置されているものを読み取るのです。npm トークン、GitHub の資格情報、Git の設定、ワークスペースに平文で置かれている環境変数と CI シークレットです。そして、それらの盗んだ資格情報を使って、あなたの名前でさらに多くの細工されたパッケージを公開します。ワームがワームとして機能するのはこのためです。コマンド&コントロールは Solana のトランザクションに乗るため、押収できるサーバーは存在しません[3]。
ここが見直すべき点です。誰も @code をハックしたわけではありません。Open VSX が古典的な意味で侵害されたわけでもありません。拡張機能モデルは、設計されたとおりに動作しただけです。ヘルパーをインストールすると、あなたの権限で、開いているプロジェクトの中で、シークレットの隣で実行される。このモデルは、拡張機能の作者だけを信頼すればよいという世界のために構築されました。GlassWorm は、信頼された作者のアカウントを配送トラックに変え、あなたには見えない文字の中に貨物を隠します。ツールが失敗したのではありません。脅威モデルが、全員の足元で一度に動いたのです。
これは、あなた自身のマシンについての居心地の悪い問いに帰着します。信頼していた拡張機能があなたのプロジェクトを開いたとき、そこから持ち出せるものには何があるのでしょうか。
多くの開発者にとって、答えは「すべて」です。ドットファイルに置かれた長期有効の npm トークン。一度貼り付けて忘れればよいと便利なセットアップガイドに勧められたパーソナルアクセストークン。マシン上のすべてのプロセスが読み取れる env ファイルの中のシークレット。これらの資格情報は、コードが実行されるまさにその場所で、静止した状態に置かれ、ローカルアクセスを持つあらゆるものを待っています。エディタの中の目に見えないワームは、暗号を破る必要はありません。必要なのはファイルです。
Clavitor は逆の前提から始めます。資格情報は、必要な瞬間にブローカー経由で発行され、その用途 1 つに限定され、期限が切れます。開発環境に書き込まれて、後で発見されるようなことはありません。そのため、敵対的なコードが静止した鍵をワークスペースから一掃しても、常設の npm トークンも、永久に有効な GitHub PAT もなく、使用された瞬間を超えて生き残るものは何もありません。ワームが引き出しを開けても、引き出しは空です。
正直に述べた限界があります。使用中の資格情報は、使用している間は有効です。セッションが実行されていて、敵対的なコードがそのセッションを共有している場合、その資格情報の短い有効期間と狭いスコープの範囲で、その瞬間に有効なものを乗っ取ることができます。一時的でスコープ限定の発行は、影響範囲と時間を縮めます。攻撃者に渡したマシンを安全にするわけではありません。何もそうはしません。ただし、使用中の 1 つのスコープ限定資格情報を見つけた攻撃者と、恒久的な鍵のファイルをコピーして 1 年間あなたを支配する攻撃者の間には、大きな隔たりがあります。
私たちは、資格情報システムが決して行ってはならないことの短いリストをまとめました。その上位に挙げるのが、シークレットをコードが実行される場所に放置しないことです。こちらをご覧ください
Clavitor(@clavitorai)は、AI エージェントのために、そして AI エージェントに対して構築された資格情報ボールトです。clavitor.ai
出典
[1] Koi Security — "GlassWorm: The First Self-Propagating Worm Using Invisible Code Hits the Open VSX Marketplace"(調査会社。検証済みの X アカウントなし)
[2] Socket、@TheHackersNews 経由 — "GlassWorm Supply-Chain Attack Abuses 72 Open VSX Extensions to Target Developers"(@SocketSecurity)
[3] @SecurityWeek — "Supply Chain Attack Targets VS Code Extensions With ‘GlassWorm’ Malware"