※本記事にはアフィリエイトリンクが含まれます。詳しくはプライバシーポリシー・広告掲載についてをご覧ください。
JavaScriptはWebブラウザだけでなく、Windows Script Host(WSH)やNode.jsを通じてOS上でも実行可能なスクリプト言語です。MITRE ATT&CKではT1059.007 JavaScriptとして分類されており、APT32(OceanLotus)、Lazarus Group、FIN7など多数の攻撃グループによる悪用が確認されています。本記事では、JavaScriptがなぜ攻撃に悪用されるのか、実際の攻撃事例、検出方法、そして実務で使える緩和策を日本語で詳しく解説します。
※本サイトはMITRE ATT&CK®の非公式日本語解説サイトです。Based on MITRE ATT&CK® v16。
T1059.007 JavaScriptの概要
T1059.007は、T1059 Command and Scripting InterpreterのSub-techniqueであり、Execution(実行 / TA0002)タクティクスに属します。攻撃者はJavaScript(JScript)を使用して、悪意のあるコードの実行、ファイルのダウンロード、情報の窃取、C2(Command and Control)サーバーとの通信など多岐にわたる攻撃活動を行います。
Windowsでは、JavaScriptファイル(.js/.jse)はWindows Script Host(wscript.exeまたはcscript.exe)を通じて実行されます。また、Node.jsがインストールされた環境ではサーバーサイドでの実行も可能であり、攻撃者にとって柔軟な攻撃基盤となっています。
JavaScriptが攻撃に悪用される理由
- OS標準で実行可能:Windowsには標準でWindows Script Host(WSH)が搭載されており、.jsファイルをダブルクリックするだけでスクリプトが実行される
- ファイル拡張子の偽装が容易:.jsファイルはデフォルトでアイコンがスクリプトファイルに見えず、ユーザーが文書ファイルと誤認しやすい
- COMオブジェクトへのアクセス:WSH経由でWScript.ShellやScripting.FileSystemObjectなどのCOMオブジェクトを操作し、コマンド実行やファイル操作が可能
- 難読化の容易さ:文字列のエンコード、変数名の置換、eval()による動的実行など、多様な難読化手法でセキュリティ製品の検出を回避できる
- メール添付による配布:.jsファイルはZIPに圧縮してメール添付で送信でき、フィッシングメールの添付ファイルとして広く悪用されている
- ドロッパーとしての利用:JavaScriptは他のマルウェアをダウンロード・実行するドロッパー(ローダー)として頻繁に使用される
攻撃シナリオ例
APT32(OceanLotus)— JavaScriptバックドアによる持続的アクセス
ベトナム系の国家支援型グループAPT32(OceanLotus)は、JavaScriptベースのバックドアを積極的に利用することで知られています。典型的な攻撃フローは以下の通りです:
T1566(フィッシング)→ T1204(ユーザー実行)→ T1059.007(JavaScript実行)
- スピアフィッシングメールに悪意のある文書ファイルまたは.jsファイルを添付して送信
- ユーザーがファイルを開くと、難読化されたJavaScriptが実行される
- JavaScriptがWScript.Shellオブジェクトを利用してC2サーバーと通信を確立
- 追加のペイロード(DLLやシェルコード)をダウンロードし、メモリ上で実行
- レジストリやスタートアップフォルダにJavaScriptを登録し、永続化(Persistence)を確保
Lazarus Group — JavaScriptベースのローダーによる多段攻撃
北朝鮮系のLazarus Groupは、JavaScriptを初期侵入後のローダーとして利用する手法を多用しています。特に暗号通貨関連企業や金融機関を標的とした攻撃で確認されています。
- 偽の求人情報や取引提案を装ったフィッシングメールでJavaScriptファイルを配布
- .jsファイルがwscript.exeを介して実行され、第二段階のペイロードをダウンロード
- ダウンロードされたペイロードがシステム情報を収集し、C2サーバーに送信
- 標的の価値が確認された場合、さらに高度なマルウェア(RATやキーロガー)を展開
FIN7 — JScriptを用いたフィッシング攻撃
金融犯罪グループFIN7は、小売・飲食業界を標的としたフィッシング攻撃でJScript(MicrosoftによるJavaScript実装)を多用しています。FIN7の攻撃は以下のパターンで実行されます:
- 請求書や注文確認を装ったフィッシングメールに、悪意のある.docファイルを添付
- Office文書内のマクロが.jseファイル(エンコード済みJScript)を生成・実行
- JScriptがHTTPリクエストでC2サーバーからCarbanak/Anunak等のバックドアを取得
- POS(販売時点情報管理)システムからクレジットカード情報を窃取
検出方法
Windows Script Hostの実行ログ監視
Windows Script Host(WSH)によるJavaScript実行を検出するには、プロセス作成イベントの監視が最も効果的です。Sysmon(Event ID 1)またはWindowsセキュリティログ(Event ID 4688)でwscript.exeおよびcscript.exeの起動を監視します。
特に注目すべきパターン:
wscript.exeまたはcscript.exeが .js / .jse ファイルを引数に取って起動- 一時フォルダ(%TEMP%、%AppData%)からのスクリプト実行
- メールクライアント(outlook.exe)やブラウザからwscript.exeが子プロセスとして起動
- コマンドラインに
//E:jscriptや//B(バッチモード)パラメータが含まれる場合
子プロセスの監視(wscript.exe/cscript.exeからの派生)
悪意のあるJavaScriptは、WScript.ShellオブジェクトのRun()やExec()メソッドを通じてさらに別のプロセスを起動します。以下のような子プロセス生成パターンは高い確率で攻撃活動を示します:
wscript.exe → powershell.exe:JavaScriptからPowerShellへの連鎖実行wscript.exe → cmd.exe:コマンドプロンプトの起動wscript.exe → mshta.exe:HTA(HTML Application)の起動wscript.exe → certutil.exe/bitsadmin.exe:ファイルのダウンロードwscript.exe → regsvr32.exe:DLLの登録・実行
スクリプトファイルの作成・変更の監視
Sysmon Event ID 11(FileCreate)を使用して、.js / .jse / .wsf ファイルの作成を監視します。特に以下のディレクトリへのスクリプトファイル作成は要注意です:
%TEMP%および%AppData%:一時ファイルとして作成される悪意のあるスクリプト%USERPROFILE%\Downloads:ダウンロードされたスクリプト- スタートアップフォルダ:永続化のために配置されたスクリプト
%ProgramData%:マルウェアが使用する共通の隠蔽場所
緩和策(Mitigations)
| ID | 緩和策名 | 概要 |
|---|---|---|
| M1042 | 機能の無効化・削除 | Windows Script Host(WSH)が業務に不要であれば無効化する。レジストリでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings\Enabledを0に設定 |
| M1038 | 実行防止 | AppLockerまたはWindows Defender Application Control(WDAC)でwscript.exe/cscript.exeの実行を制限。許可されたスクリプトのみ実行可能にする |
| M1049 | ウイルス対策/マルウェア対策 | AMSI対応のセキュリティソフトでスクリプト実行時のリアルタイムスキャンを実施 |
| M1040 | エンドポイントでの振る舞い防止 | Attack Surface Reduction(ASR)ルールで、Officeアプリからのスクリプトプロセス起動をブロック |
| M1021 | Webコンテンツの制限 | .jsファイルの既定の関連付けをテキストエディタに変更し、ダブルクリックでの実行を防止 |
実装チェックリスト
- ☐ Windows Script Host(WSH)が不要な端末では無効化する
- ☐ .js / .jse ファイルの既定の関連付けをメモ帳等のテキストエディタに変更
- ☐ AppLockerまたはWDACでwscript.exe/cscript.exeの実行を制限
- ☐ Sysmon を導入し、プロセス作成(Event ID 1)とファイル作成(Event ID 11)を監視
- ☐ ASRルール「Office アプリケーションによる子プロセスの作成をブロック」を有効化
- ☐ メールゲートウェイで.js / .jse / .wsfファイルの添付をブロック
- ☐ AMSI対応のエンドポイント保護ソフトを導入

おすすめセキュリティ対策ツール
JavaScriptベースの攻撃を検出・防御するためには、スクリプト実行のリアルタイム監視に対応したエンドポイント保護が重要です。
🛡️ まず今日から始めるなら:.jsファイルの既定の関連付け変更とセキュリティソフトの導入
JavaScriptファイルの既定のプログラムをテキストエディタに変更するだけで、うっかりダブルクリックしても即座に実行されるリスクを排除できます。さらにAMSI対応のセキュリティソフトで多層防御を実現しましょう。
- ESET(イーセット) — 誤検知が少なく軽量。スクリプトベースの攻撃検出に優れたヒューリスティックエンジン搭載
- ウイルスバスター — 日本語サポートが充実。Webレピュテーション機能でC2通信もブロック
- Norton(ノートン) — 世界最大手のセキュリティベンダー。SONAR技術による振る舞い検知でゼロデイ攻撃にも対応
※ 上記はアフィリエイトリンクです。料金・機能は各公式サイトで必ずご確認ください。
まとめ:JavaScript攻撃対策の要点
- WSHを無効化する:業務でWindows Script Hostを使用していなければ即座に無効化する。これだけで.jsファイルによる攻撃の大部分を防止できる
- ファイルの関連付けを変更する:.js / .jseファイルの既定のプログラムをテキストエディタに変更し、誤実行を防止する
- プロセスの親子関係を監視する:wscript.exe/cscript.exeからpowershell.exeやcmd.exeが起動するパターンは高い確率で攻撃活動
- メールゲートウェイで遮断する:.js / .jse / .wsfファイルの添付をメールゲートウェイでブロックし、入口対策を強化する
参考資料:MITRE ATT&CK T1059.007 – JavaScript / 情報セキュリティ10大脅威 2026(IPA) / JPCERT/CC
Based on MITRE ATT&CK®, © The MITRE Corporation. Licensed under Apache License 2.0. 本記事は非公式の日本語解説です。

コメント