見慣れた手口だからといって、油断は禁物である。最近、暗号資産の報酬を餌にした類似の攻撃手法が再び確認された。今回は、暗号資産取引所を装った Facebook 広告を通じて、Node.js ベースのマルウェア 「JSCEAL」 が拡散された事例が確認された。
攻撃者は、実際の取引所に似せて作成したサイトにユーザーを誘導した後、OS に応じて異なるインストールファイルをダウンロードさせ、マルウェアを実行した。直近2カ月間に韓国国内で約1,500台の PC が JSCEAL に感染したことが確認されており、Windows だけでなく macOS も攻撃対象に含まれている。広告のクリックからマルウェアの実行に至るまで、JSCEAL がどのようにユーザーをだますのかその手口を見ていく。
JSCEAL マルウェアがインストールされるまでの流れ
JSCEAL は、Node.js 環境を利用して動作するマルウェアである。攻撃者は、暗号資産取引所の公式プログラムをインストールすれば暗号資産などの報酬を受け取れるかのように広告を表示し、ユーザーのクリックを誘導する。このマルウェアによる攻撃は特定の時期だけにとどまらず、最近まで韓国国内のユーザーを標的として継続的に行われている。

[図1] 韓国国内における JSCEAL の感染状況 (2026.08~2026.09)

[図2] 暗号資産取引所を装った Facebook 広告
ユーザーが広告をクリックすると、暗号資産取引所を装ったサイトに接続される。偽装サイトは、取引所のロゴや配色を模倣し暗号資産のリアルタイム価格情報まで表示することで、公式サイトのように見えるように作られている。

[図3] 暗号資産取引所を装ったサイトと正規サイトの比較
しかし、ページ内部では、アクセスしたユーザーのブラウザ環境や広告キャンペーンに関する情報を収集し OS を確認する処理が行われる。
ページに埋め込まれた悪意のある JavaScript は、アクセス環境の OS を識別し、サーバーから設定情報を取得して OS ごとのインストールファイルを生成する。Windows では BAT ファイルを、macOS では PKG インストールファイルを生成し、その後の悪意のある動作へとつなげる。
Windows におけるマルウェア感染の起点は BAT ファイル
Windows ユーザーが偽装サイトにアクセスすると、正規のインストーラーのように見える BAT ファイルが生成される。ファイル名にはバージョンやインストーラーを連想させる文字列が含まれているため、ユーザーが正規のファイルだと誤認しやすい。

[図4] BAT コード
この BAT ファイルは、PowerShell を利用して外部から追加のコードをダウンロードし実行する初期ローダーの役割を果たす。その後、システムのセキュリティ設定を変更してタスクスケジューラにタスクを登録する一方、正規の暗号資産取引所プログラムがインストールされたように見せかけるため、デスクトップにショートカットまで作成する。
攻撃者は、登録したタスクを利用してシステム内での持続性を確保する。タスクが実行されると、Microsoft Defender のスキャン除外対象を追加してセキュリティ対策を回避し、C&C サーバーと通信して追加のコマンドを受信する。

[図5] Binance のショートカットファイル (正規)

[図6] タスクスケジューラへのタスク登録コード
その後、追加の圧縮ファイルをダウンロードして解凍し、内部に含まれる Node.js 実行環境を利用して JavaScript または V8バイトコード形式の JSCEAL ペイロードを実行する手口が確認された。
つまり、最初にダウンロードされる BAT ファイル自体が最終的なマルウェアなのではなく、その後の悪意のある活動を継続するための起点として利用される構造である。
macOS では PKG インストールファイルを装う
macOS では Windows とは異なる手法が使用される。偽装サイトはサーバーから受け取った設定情報とデータを組み合わせ、ブラウザ上で PKG インストールファイルを生成する。このファイルもバージョンやリリース情報を連想させる名前が付けられており、正規のインストールパッケージだと誤認されるように作られている。

[図7] macOS の PKG 実行画面
ユーザーが PKG ファイルを実行すると、インストール処理に含まれるスクリプトが外部サーバーから追加のシェルスクリプトをダウンロードし実行する。実行が完了すると、一時ファイルは削除され、痕跡が残りにくくなる。
追加のスクリプトはシステムの言語に合わせて偽装したダイアログを表示し、ユーザーにパスワードの入力を促す。入力されたパスワードが実際のアカウント情報と一致するかを確認した後、別のファイルに保存する動作も確認された。

[図8] PKG 内部の postinstall コード
これと併せて、システム識別情報、クリップボードのデータ、コンピューター名、インストールファイルに関する情報などを外部に送信する。その後、サーバーから受け取った設定情報に基づいて LaunchAgent を登録し、後続のコマンドを実行できる環境を整える。攻撃者はこうした処理を通じて macOS でも Node.js 実行環境を構築し、JavaScript 形式の JSCEAL ペイロードを追加で実行できるようにする。
JSCEAL マルウェアへの対処ガイド
JSCEAL は、Windows と macOS でそれぞれ異なる方法を用いて悪意のある動作を実行する。各 OS で確認された主な実行痕跡や、システム内での持続性が確保されていないかを中心に点検する必要がある。
Windows 環境
- 不審な PowerShell の実行履歴や、外部サーバーから追加のコードをダウンロードして実行した痕跡がないか確認する。
- Microsoft Defender のスキャン除外設定が不正に追加または変更されていないか点検する。
- 不審なタスクの登録の有無および登録されたタスクの実行内容を確認する。
- 正規プログラム (Binance) がインストールされているように見せかけるために作成されたデスクトップのショートカットファイル (Users\Public\Desktop\Binance.lnk) が存在するか確認する。
- 追加の圧縮ファイルをダウンロード・解凍した後、Node.js を利用して JavaScript または V8バイトコードを実行した痕跡がないか点検する。
macOS 環境
- インストール時に追加のシェルスクリプトをダウンロード・実行した痕跡がないか確認する。
- 偽装されたダイアログを通じてユーザーにパスワードの入力を促した形跡がないか点検する。
- 入力されたパスワードが検証された後、別のファイルに保存された痕跡がないか確認する。
- Machine ID、コンピューター名、PKG ファイル名、クリップボードのデータなどが外部に送信された痕跡がないか点検する。
- LaunchAgent を利用した自動実行項目が不正に登録されていないか点検する。
- Node.js 実行環境が構築された後、追加の JavaScript ベースのペイロードが実行された痕跡がないか確認する。
暗号資産取引所のプログラムは、必ず公式サイトから直接ダウンロードする必要がある。出所が不明な BAT ファイルや PKG インストールファイルは実行してはならない。
また、プログラムのインストール中に予期しないパスワード入力画面が表示された場合は実行を中止し、まずファイルやサイトの入手元を確認することが安全である。
Categories: マルウェア, フィッシング/スキャム