Visual Studio Code を悪用する攻撃を検出:Remote-Tunnels エクステンションで C2 通信

Stealthy Cyberattack Turns Visual Studio Code into a Remote Access Tool

2024/10/01 SecurityOnline — Visual Studio Code (VSCode) を悪用して、被害者のシステムに不正なリモート アクセスを確立する高度なサイバー攻撃を、Cyble Research and Intelligence Labs (CRIL) が発見した。この攻撃は、一般的な検出メカニズムを回避し、信頼できるソフトウェアを悪用することで、悪意のアクションを実行するという、高度なステルス性を発揮している。

この攻撃チェーンは、正規のインストーラーを装う疑わしい “.LNK” ファイルの、フィッシング・メールを介した配信から始まる。それは、疑いを持たないユーザーを、攻撃に誘い込むための一般的な方法である。このインストーラーが実行されると、中国語で偽の成功メッセージ “安裝成功” が表示し、インストールが成功したとユーザーを騙す。しかし、そのバックグラウンドでは、悪意の “.LNK” ファイルによる curl ユーティリティの悪用により、Python ディストリビューション・パッケージと悪意のコンポーネントのサイレント・ダウンロードが行われる。

ダウンロードされた Python スクリプト “update.py” は、難読化された方法で実行されるため、セキュリティ・ツールによる検出が困難である。CRIL による調査が実施された時点では、このスクリプトは VirusTotal 上で全く検出されていなかった。それにより、攻撃者は優位に立つことができ、このスクリプトは標準的なセキュリティ対策をすり抜けていった。

このスクリプトが起動されると、被害者のマシン上での VSCode のインストールの有無が確認される。インストールされていない場合には、正規の Microsoft ソースから VSCode CLI がダウンロードされる。また、VSCode がインストールされている場合には、このスクリプトにより “MicrosoftHealthcareMonitorNode” というスケジュールされたタスクが作成され、システム上での永続性が攻撃者に与えられる。このタスクにより、スクリプトは再起動後も定期的に再実行されるため、マルウェアの除去が困難になる。

VSCode の Remote-Tunnels エクステンションは、リモート・マシンへのユーザーを接続を安全に行うよう設計されている。ただし、今回のキャンペーンを展開する攻撃者は、この機能を悪用する方法を見つけ出している。つまり、VSCode を介してリモート・トンネルを作成することで、被害者のシステムへのゲートウェイが確立されてしまっている。このトンネルにより、SSH などの一般的な方法に頼ることなく、リモートでマシンを制御できるため、侵入の追跡が困難になる。

続いて攻撃者は、リモート・セッションの認証に必要なアクティベーション・コードを抽出する。このコードは、VSCode の出力ファイルから取得され、被害者のシステムと攻撃者の GitHub アカウントを関連付けるために悪用される。このアクティベーション・コードを入手した攻撃者は、GitHub ログイン・ページから被害者のシステムへの完全なアクセスを達成し、さらなる悪意のアクションを実行できるようになる。

被害者のシステムに侵入した攻撃者は、貴重なデータを盗み出すことが可能になる。具体的に言うと、プログラムファイル/ユーザーデータ/実行中のプロセスなどの情報を、主要なシステム・ディレクトリから収集できるようになる。それらのデータは、Base64 でエンコードされ、攻撃者の Command and Control (C2) サーバへと送信されるが、そこには取り込まれるものとしては、被害者の所在地/ユーザー権限/システム言語設定などの、機密性の高いシステム詳細などが挙げられる。

被害者のシステムにアクセスする攻撃者は、コマンド実行/ファイル操作に加えて、追加のマルウェアのインストールも可能になる。たとえば、Mimikatz/ LaZagne などのツールを展開してパスワードを抽出し、侵入したシステムに対する制御を拡大する可能性も手にする。

Unit42 の研究者たちが指摘するように、この攻撃方法と類似するものとしては、中国の APT である Stately Taurus の戦術が挙げられる。この関連性が示唆するのは、今回のキャンペーンを操る攻撃者が、APT グループの手法を活用している可能性である。