1. 偵察 (Reconnaissance) および情報収集の防止
| 拒否コマンド | 理由(セキュリティ上の懸念点) |
ipconfig.exe | ネットワーク構成情報(IPアドレス、ゲートウェイなど)の収集を防ぎます。これは攻撃者が環境を理解し、次の攻撃ステップを計画するために不可欠な情報です。 |
whoami.exe | 現在のユーザー名、グループ、セキュリティ識別子 (SID) を確認するのを防ぎます。攻撃者が現在の権限レベルやグループ所属を把握し、攻撃を進めることを防止します。 |
net.exe / net1.exe | ユーザー、グループ、共有、サービスなどのネットワーク情報を列挙するのを防ぎます。横展開の足がかりとなるターゲット(他のユーザーやコンピューター)を見つけるために使われます。 |
2. コード実行 (Code Execution) および回避技術 (Evasion) の防止
| 拒否コマンド | 理由(セキュリティ上の懸念点) |
powershell.exe / powershell_ise.exe | Windowsにおける最も強力で多機能なスクリプト実行環境です。システムの操作、外部通信、ペイロードの実行など、ほぼ全ての攻撃フェーズで使用されるため、一般ユーザーからの実行は必須で制限すべきです。 |
cscript.exe / wscript.exe | VBScriptやJScriptなどのスクリプトをCLI/GUIで実行するためのエンジンです。マルウェアのドロッパーや初期感染によく使われます。 |
rundll32.exe | 任意のDLLファイル内の関数を実行するために使用されます。悪意のあるDLLをロードし、サンドボックス回避やコード実行に利用されるため、LOTL攻撃の代表的な手法です。 |
mshta.exe | HTMLアプリケーション (HTA) の実行に使用されます。HTAはJavaScriptやVBScriptを含むことができ、検知されにくいスクリプト実行手段として悪用されます。 |
MSBuild.exe | .NETのビルドツールですが、XMLファイル内に任意のC#コードを埋め込み、ビルドプロセスを通じてメモリ内で実行させる手法(AppLockerのホワイトリスト回避)に悪用されます。 |
mmc.exe | Microsoft管理コンソール。様々な管理スナップイン(サービス、証明書など)へのアクセスを制限することで、システム設定の変更を防ぎます。 |
msiexec.exe | Windowsインストーラー。不正なプログラムのインストールや、外部のURLからファイルをダウンロードする悪用手法があります。 |
hh.exe | HTML Help Executable。主にCHMファイル(Compiled HTML Help)を開きますが、これを悪用して、難読化されたスクリプトを埋め込み実行させる手法が存在します。 |
3. データ転送 (Data Transfer) および永続化 (Persistence) の防止
| 拒否コマンド | 理由(セキュリティ上の懸念点) |
bitsadmin.exe | BITS (Background Intelligent Transfer Service) を利用したファイルのダウンロード・アップロードを制御します。バックグラウンドでのC2通信やデータ窃取(エクスフィルトレーション)に悪用されます。 |
curl.exe | 外部のC2サーバーからのペイロードのダウンロードや、データの送信に悪用されます。 |
certutil.exe | 悪用されると、Base64などでエンコードされたファイルをデコードして実行ファイルに戻したり、HTTP/HTTPS経由でファイルをダウンロードしたりするために使用されます。 |
ftp.exe | 攻撃者が外部のFTPサーバーへ窃取したデータをアップロード(データエクスフィルトレーション)するのを防ぎます。 |
regedit.exe / reg.exe | レジストリの設定変更を防ぎます。ランレベルへの登録、設定の無効化、プロセスのハイジャックなど、永続化やシステム改変の最も一般的な手段を封じます。 |
schtasks.exe | スケジュールされたタスクの作成・変更を拒否します。これは、再起動後もマルウェアの実行を続けるための永続化の主要な手法です。 |
4. ファイル操作 (File Operations) およびシステム制御の防止
| 拒否コマンド | 理由(セキュリティ上の懸念点) |
%WINDIR%\Temp\* / C:\Users\Public\* | 書き込み可能な領域からの実行を拒否します。 攻撃者は通常、ユーザーが書き込み権限を持つ一時フォルダーやパブリックフォルダーにマルウェアをダウンロードして実行を試みるため、この対策は非常に効果的です。 |
xcopy.exe / Robocopy.exe | ファイルを大量にコピー・移動するのを防ぎます。ラテラルムーブメント(横展開)の際や、重要なファイルを窃取して一箇所にまとめる際に使われます。 |
taskkill.exe | 実行中のプロセスを強制終了するのを防ぎます。これにより、攻撃者がセキュリティソフトウェアや監視プロセスを停止させるのを防ぎます。 |
attrib.exe | ファイル属性(非表示、読み取り専用など)の変更を防ぎます。マルウェアを隠蔽する目的で使われます。 |
netsh.exe | ネットワーク設定(ファイアウォール、プロキシ、ルーティングなど)の変更を防ぎます。攻撃者が外部との通信を可能にするためにファイアウォールを無効化するのを防ぎます。 |
tscon.exe | リモートデスクトップセッションの接続や制御を制限します。セッションハイジャックなど、リモートアクセスに関連する不正な操作を防ぎます。 |
※長くなったため、拒否すべきコマンドをパス付きで列挙しておきます。
%SYSTEM32%\rundll32.exe
%SYSTEM32%\bitsadmin.exe
%WINDIR%\Microsoft.NET\Framework64\MSBuild.exe %SYSTEM32%\ipconfig.exe %SYSTEM32%\mmc.exe %SYSTEM32%\curl.exe %WINDIR%\Temp
%SYSTEM32%\xcopy.exe
%SYSTEM32%\cscript.exe
%SYSTEM32%\msiexec.exe
%WINDIR%\regedit.exe
%SYSTEM32%\certutil.exe
%SYSTEM32%\WindowsPowerShell\v1.0\powershell_ise.exe
%SYSTEM32%\netsh.exe
%SYSTEM32%\reg.exe
%SYSTEM32%\schtasks.exe
%SYSTEM32%\net1.exe
%SYSTEM32%\net.exe
%WINDIR%\hh.exe
%SYSTEM32%\taskkill.exe
%SYSTEM32%\ftp.exe
%SYSTEM32%\Robocopy.exe
%SYSTEM32%\WindowsPowerShell\v1.0\powershell.exe
%SYSTEM32%\attrib.exe
%SYSTEM32%\forfiles.exe
%SYSTEM32%\mshta.exe
%SYSTEM32%\wscript.exe
%SYSTEM32%\tscon.exe
%SYSTEM32%\whoami.exe
C:\Users\Public*
これで、nobodyに所属するグループがコマンドを実行することはできなくなりました。ほぼすべて全滅です。
実際にnobodyに所属する状態でpowershellなどを立ち上げようとすると次のようにブロックされます。

さらにセキュリティを向上させる場合はWindows Defenderで次の設定をオンにします。
デバイスとセキュリティーコア分離のうち
├メモリ整合性オン
├カーネルモードハードウェ強制スタックオン
├メモリアクセス保護オン
├ローカルセキュリティ機関の保護オン
ウイルスと脅威の防止の設定
├リアルタイム保護オン
├開発者ドライブの保護オン
├クラウド提供の保護オン
├サンプルの自動送信オン
├改ざん防止オン
ランサムウェアの防止
├コントロールされたフォルダーアクセスオン
アプリとブラウザーコントロール
├スマートアプリコントロールオン
Exploit protection
├CFGオン
├DEPオン
├必須ASLRオン
├ボトムアップASLRオン
├高エンドロピASLRオン
├例外チェーンを検証するオン
└ヒープの整合性を検証するオン
一般ユーザーとして行える改ざん対策はこの程度と思われます。以降は最初に作ったマイクロソフトアカウント連携の管理者ユーザーを削除し、一般ユーザーで作業を実行します。これにより、マルウェアの感染率は遥かに低下します。
さらに極限までゼロに近づける場合は、WDAC有効化、VMware上で仮想Linux+Firejail実行などの方法もあるのですが…荷が重いので説明はここまでにします。
多くのマルウェアはここまで保護された状況下においては、主要な攻撃方法(PowerShell経由でのマルウェア実行など)が行えなくなります。

