
GlassWormは、自己増殖型ワームです。
自身のコードの機能で拡散していきます。
そういった点で注目する必要があるマルウェアなのですが、それよりももっと気になる点がいくつかあります。
- 目に見えないUnicodeを使う
このマルウェアでは従来見られたような難読化の手法は使用されていません。
暗号化しているわけではありませんし、変数に内容を想像しにくい名前を使う、とかそういった技法を使っているわけでもありません。
そこに確かにマルウェアのコードは記述されています。
しかし、です。
このマルウェアのコードは見えないのです。
マルウェアのコードの書かれている場所は、普通にエディタでみると空白があるように見えます。
しかし、それは空白ではないのです。
Unicodeには異体字セレクタという機能があります。
元々のこの機能は、同じ意味を持ちながら字形が異なる文字(異体字)を、単一のUnicodeコードポイントに統合する際に、字形を区別するための仕組みとして用意されたものです。
このUnicode仕様の一部を使用し、視覚的な出力を生成しない特殊文字を使うのです。
つまり文字としては確かに存在しているけれども、表示内容としては設定がないため表示されるものが空白と変わらないのです。
悪意あるコードの意味と同じ内容がそこには確かに記述されているのですが、通常のエディタで表示すると見えるものがありません。
これはある意味究極の難読化といえそうです。 - 破棄できないC2の場所情報
このマルウェアの使用するC2のURL情報は、Solanaブロックチェーンを使用して伝達されます。
攻撃者は、変更不可能で分散化されており、ダウンさせることが不可能なパブリックブロックチェーンをC2サーバ場所保存機能として利用します。
マルウェアは、ハードコードされたウォレットアドレスからSolanaブロックチェーン上のトランザクションを検索します。
トランザクションが見つかると、メモフィールド(ブロックチェーントランザクションに任意のテキストを添付できる場所)を読み取ります。
メモの中身は次のステージをダウンロードするためのBase64エンコードされたリンクを含むJSONオブジェクトです。
ブロックチェーン上に記録された取引は、変更も削除もできません。永久に。削除要請もドメイン差し押さえも受けません。永遠にそこに残ります。
つまりこの方法でC2のURLを記録しておけば、防御チームにその情報を無効化されないのです。
そしてこのSolanaへの通信は、通信としては完全に通常の通信です。
単にメモフィールドの内容を復号化したら攻撃に使用できる情報が記載されているだけで、Solanaへの通信としてはなんら怪しい点がないのです。
この通信を検出して対策することは、容易ではありません。
見えない文字で記述されていて、C2のURLが巧妙に配置されていますが、それだけではありません。
マルウェアはインストールされると、GitHub、npm、OpenVSX アカウントの資格情報や、49 個の拡張機能からの暗号通貨ウォレット データを盗もうとします。
そして情報を持ち出すだけでなく、被害者の機器をZOMBIモジュールを使ってSOCKSプロキシとして動作する状態にします。
さらにHidden VNCを設置します。
Hidden VNCは名前から想像できるように、見えないVNCです。
攻撃者に侵害済み環境への完全なリモートデスクトップアクセスを提供しますが、それは隠されています。
タスクマネージャーに表示されず、画面上にウィンドウも表示されず、完全に目に見えない状態で動作する仮想デスクトップで実行されます。
そしてこれらの機能を組み合わせて使用し、自己拡散していきます。
見えない文字で書かれていて、消せない場所にC2が書かれていて、見えないリモート接続を使用し、自動拡散機能が搭載されています。
最悪のマルウェアです。
こういった内容の含まれているものがVS Code拡張機能として配布されていました。
この拡張機能を入手したら、そのあとはユーザによる操作は一切なく、警告も表示されることはありません。ただ静かに、自動的に感染するだけなのです。
恐ろしい仕上がりです。
このマルウェアそのものにも注意が必要ですが、また新たな注意が必要な攻撃手法が生まれてしまいました。
GlassWorm: First Self-Propagating Worm Using Invisible Code Hits OpenVSX Marketplace
https://www.koi.ai/blog/glassworm-first-self-propagating-worm-using-invisible-code-hits-openvsx-marketplace
| この記事をシェア |
|---|