💬 くるるちゃんのワンポイント図解解説

【技術背景・解説】
Windowsの正規ツールであるmshta.exe(HTML Applicationホスト)を攻撃者が悪用し、セキュリティの目を掻い潜って悪意あるスクリプトを実行しようとするLOLBins攻撃です。
【アイキャッチ図解のポイント】
正規ツールをシアンの監視ノードと琥珀色の防御シールド層で保護し、ホワイトリスト制御とEDRによる監視で不正実行を完全に封じ込める多層防護を図解しています。
【資格・要点ノート】
LOLBins攻撃対策、EDRコマンドライン監視、AppLocker/WDAC実行制御
**mshta.exe(Microsoft HTML Application Host)**は、Windowsに標準搭載されている正規のシステムプログラムです。
通常のWebページではなく、HTML・JavaScript・VBScriptなどで作られた HTML Application(HTA) をWindowsアプリケーションとして実行するために使われます。
代表的な配置場所は次のとおりです。
C:\Windows\System32\mshta.exe C:\Windows\SysWOW64\mshta.exe
つまり、mshta.exe自体はマルウェアではありません。しかし、正規のWindowsプログラムを攻撃に転用する「Living off the Land」「LOLBin」と呼ばれる手法で頻繁に悪用されます。MITRE ATT&CKでは、T1218.005: System Binary Proxy Execution: Mshtaとして整理されています。
通常のHTMLとの違い
普通のWebページは、ChromeやEdgeなどのブラウザ内で動作し、ブラウザのセキュリティ制限を受けます。
一方、HTAはブラウザの一般的なサンドボックスから外れ、Windowsアプリケーションとして動作します。そのため、実行ユーザーの権限範囲で、次のような操作につなげられます。
ファイルの作成・変更 外部サーバーとの通信 COM・ActiveXオブジェクトの利用 別のプログラムの起動 PowerShellやcmd.exeの呼び出し 追加マルウェアのダウンロード
MITREも、mshta.exeがHTA、JavaScript、VBScriptを「信頼されたWindowsユーティリティ経由」で実行でき、ブラウザのセキュリティ設定を回避する形で悪用されると説明しています。
権限についての注意
mshta.exeを起動しただけで、自動的に管理者権限になるわけではありません。
基本的には、ログインしているユーザーの権限で動作します。しかし一般ユーザー権限でも、個人ファイルの窃取、ブラウザ情報へのアクセス、外部通信、ユーザー領域へのマルウェア設置など、攻撃者にとって十分に危険な処理を実行できます。
なぜサイバー攻撃で悪用されるのか
1. Windowsの正規プログラムだから
攻撃者が独自の未知の実行ファイルを起動すると、ウイルス対策ソフトやEDRに検知されやすくなります。
しかしmshta.exeはMicrosoftが提供する正規のWindowsプログラムです。
不審なmalware.exe → 未知の実行ファイルとして警戒されやすい 正規のmshta.exe → Windows標準プログラムなので、単純な許可リストを通る可能性がある
攻撃者は、悪意のあるコードそのものを直接起動する代わりに、mshta.exeへコードを渡して実行させます。このように、信頼されたプログラムを代理実行装置として使う手法が「System Binary Proxy Execution」です。
2. ファイルを保存せずにコードを実行できる
mshta.exeはローカルの.htaファイルだけでなく、URLやコマンドラインに記述されたスクリプトを実行する形でも悪用されます。
概念的には、次のような動作です。
mshta.exe ↓ 外部URLからスクリプトを取得 ↓ JavaScriptまたはVBScriptを実行 ↓ 追加マルウェアを取得
これにより、ディスクへ分かりやすい実行ファイルを長時間残さず、メモリ上の処理を中心に攻撃を進められる場合があります。
ただし、「完全なファイルレス攻撃」とは限りません。後続段階でDLL、実行ファイル、スクリプト、設定ファイルなどが保存されるケースもあります。
MITREでは、URL上のHTAを直接実行する方法や、インラインのJavaScript・VBScriptを実行する方法が例示されています。
3. JavaScriptやVBScriptから別のプログラムを起動できる
mshta.exeは最終的なマルウェア本体ではなく、攻撃の入口となる「ローダー」として使用されることがあります。
例えば、次のような連鎖です。
フィッシングメール ↓ ZIP・RAR・VHDXなどの添付ファイル ↓ ショートカットファイル(.lnk) ↓ mshta.exe ↓ JavaScript・VBScript ↓ PowerShell・cmd.exe・rundll32.exe ↓ 情報窃取型マルウェアや遠隔操作マルウェア
そのため、防御側は「mshta.exeが起動した」という一点だけでなく、その前後のプロセスを追う必要があります。
4. リモート上のコードを直接呼び出せる
攻撃者は、悪意のある処理をすべてメールへ添付する必要がありません。
最初のファイルには小さな起動処理だけを入れ、実際の攻撃コードは外部サーバーから取得できます。
メール添付ファイル └─ 小さな起動処理だけを格納 ↓ mshta.exe ↓ 外部サーバー ↓ 最新の攻撃コードを配信
この構成には、攻撃者側に次の利点があります。
- メール添付ファイルを小さくできる
- 攻撃開始後に配信内容を変更できる
- 対象端末ごとに異なるコードを返せる
- 解析環境には無害なデータを返せる
- 攻撃終了後に配信元を削除できる
5. 正規サービスと組み合わせられる
mshta.exeから取得するデータの置き場所として、一般企業でも使用されるクラウドストレージやCDN、コードホスティングサービスが利用されることがあります。
mshta.exe ↓ HTTPS通信 ↓ 正規クラウド・CDN・コード共有サービス
こうした通信をドメイン単位で全面遮断すると、正規業務まで停止する可能性があります。
したがって、単純なURLブロックだけではなく、次の情報を組み合わせた検知が重要です。
誰がmshta.exeを起動したか どのようなコマンドラインだったか どこへ通信したか 何をダウンロードしたか その後どのプロセスを起動したか
危険なmshta.exeの動作例
次のような挙動は特に注意が必要です。
不審な親プロセス
OUTLOOK.EXE → mshta.exe WINWORD.EXE → mshta.exe EXCEL.EXE → mshta.exe explorer.exe → mshta.exe ブラウザ → mshta.exe 圧縮・解凍ソフト → mshta.exe
Officeアプリやメールクライアント、ダウンロードしたLNKファイルからmshta.exeが起動している場合は、通常業務かどうかを確認する必要があります。
不審なコマンドライン
http:// https:// javascript: vbscript: .HTA 長いBase64らしき文字列 大量の記号や文字列結合
特に、mshta.exeの引数に外部URLや難読化されたスクリプトが含まれている場合は高リスクです。
不審な子プロセス
mshta.exe → powershell.exe mshta.exe → cmd.exe mshta.exe → rundll32.exe mshta.exe → regsvr32.exe mshta.exe → wscript.exe mshta.exe → cscript.exe
MITREは、コマンドラインだけでなく、親子プロセス、外部通信、ファイル作成、後続プロセスの起動を関連付けて検知することを推奨しています。
正常利用と攻撃利用の見分け方
mshta.exeが起動しただけで、必ず感染しているとは限りません。古い社内システムや管理ツールがHTAを使用している場合があります。
| 確認項目 | 正常利用の可能性 | 攻撃利用の可能性 |
|---|---|---|
| 実行元 | 管理ツール、登録済み業務アプリ | メール、LNK、ZIP、RAR |
| 実行ファイル | System32内の正規ファイル | 一時フォルダにコピーされた同名ファイル |
| 引数 | 登録済みの社内HTA | 外部URL、難読化コード |
| 通信先 | 管理された社内サーバー | 未知のドメイン、CDN、短命なURL |
| 子プロセス | なし、想定済みアプリ | PowerShell、cmd、rundll32 |
| 実行頻度 | 定期的で再現可能 | 初めて、単発、深夜など |
| 実行ユーザー | 管理用アカウント | 採用・経理・営業担当者 |
重要なのは、環境内に正当なHTA利用が存在するかを先に棚卸しすることです。
対策方法
1. 使用していなければmshta.exeをブロックする
社内システムでHTAを使用していない場合、App Control for Business、WDAC、AppLockerなどでmshta.exeの実行を制限する方法が有効です。
MITREも、不要な環境ではmshta.exeを無効化するか、アプリケーション制御で実行を遮断することを対策として挙げています。
MicrosoftのApplication Controlは、許可されたコードだけを実行する考え方で、実行ファイルだけでなくスクリプト、MSI、バッチファイル、PowerShellなども制御対象にできます。ただし、ウイルス対策ソフトの代替ではなく、併用が前提です。
最初から全面ブロックせず、次の順序で導入するのが安全です。
1. 監査モードで利用状況を記録 2. 正規利用しているシステムを特定 3. 例外ルールを最小限に作成 4. 一部端末でブロックを試験 5. 全社へ段階展開
2. メールの添付ファイルを制御する
特に注意すべき形式は次のとおりです。
.hta .lnk .js .jse .vbs .vbe .wsf .iso .img .vhd .vhdx
これらがZIPやRARの中に入っている場合も検査対象にします。
ただし、拡張子だけで判断すると、二重拡張子や偽装に回避されます。
履歴書.pdf.lnk 応募書類.docx.lnk 面接日程.pdf.hta
Windowsで「登録されている拡張子を表示しない」が有効だと、利用者には末尾の危険な拡張子が見えにくくなるため注意が必要です。
3. EDRで前後関係を監視する
最低限、次の情報を取得します。
プロセス作成時刻 親プロセス 子プロセス 完全なコマンドライン 実行ユーザー 実行ファイルのパス 電子署名 ファイルハッシュ 接続先IP・ドメイン・URL 作成されたファイル レジストリ変更
検知ロジックとしては、次のような組み合わせが有効です。
mshta.exeが起動 AND 外部URLまたはスクリプト指定 AND PowerShell・cmd・rundll32などを起動
または、
メール・Office・LNK由来 AND mshta.exe起動 AND 外部通信
4. mshta.exeを削除するだけでは不十分
手動でファイルを削除すると、Windowsの整合性や古い業務システムへ影響する可能性があります。
さらに、攻撃者は次の別の正規プログラムへ切り替えられます。
powershell.exe wscript.exe cscript.exe rundll32.exe regsvr32.exe msiexec.exe certutil.exe
したがって、単一ファイルを消すのではなく、アプリケーション制御、メール対策、EDR監視、ユーザー教育を組み合わせることが重要です。
もしmshta.exeの不審な実行を発見したら
次の順序で対応します。
1. 対象端末をネットワークから隔離 2. mshta.exeの親・子プロセスを確認 3. 完全なコマンドラインを保全 4. 通信先URL・ドメイン・IPを抽出 5. ダウンロードされたファイルを確認 6. 同じハッシュ・URL・コマンドラインを全端末で検索 7. メール受信者と同一添付ファイルの配布範囲を確認 8. 認証情報やセッションの窃取有無を調査 9. 必要に応じてパスワードとセッションを失効 10. 永続化設定や追加マルウェアを調査
mshta.exeを終了しただけでは、すでに起動された後続マルウェアは停止しない可能性があります。
要点
mshta.exe = Windowsの正規HTMLアプリケーション実行プログラム 危険な理由 = 正規プログラムとしてJavaScript・VBScriptを実行できる = 外部URLのコードを呼び出せる = ブラウザの通常の制限外で動作する = PowerShellなどの後続処理へ接続できる = 許可リストや単純なファイル検知を回避しやすい
最も効果的なのは、業務で不要なら実行を制限し、必要な環境ではコマンドライン・親子プロセス・通信先を関連付けて監視することです。
コメント(0件)
まだコメントはありません。最初のコメントを投稿してください!