概要
- 初期侵入対策
- GUID: A8F5898E-1DC8-49A9-9878-85004B8A61E6
- 推奨設定値:2: 監査 → 1: ブロック (攻撃面の縮小ルールを有効にする)
この ASR ルールは、Web サーバー上に “遠隔操作用スクリプト(Web シェル)” を生成・配置する行為を、作成時点で遮断するというものです。
Web シェルとは、Web アプリケーションの脆弱性や認証回避などを通じで、Web サイトに配置された攻撃スクリプトです。以下のスクリプトを Web サイトに配置されると、ブラウザから OS コマンドが実行できる “常設のバックドア” となります。
PHP の場合、以下のスクリプトを配置されると、http://server/shell.php?cmd=whoami で Whoami コマンドが実行され、現在ログインしているユーザーが確認できます。
<?php
system($_GET['cmd']);
?>このルールは、次の組み合わせを判定します。
- 作成主体(誰が書いたか)
- w3wp.exe(IIS Worker Process)
- Web アプリの実行ユーザー
- ASP.NET / PHP / CGI プロセス
- 作成場所(どこに書いたか)
- IIS Web ルート
- C:\inetpub\wwwroot
- 仮想ディレクトリ
- Web アプリ配下
- IIS Web ルート
- ファイル特性(何を書いたか)
- スクリプト拡張子
- コマンド実行構文
- Web シェル特有のコードパターン
ファイルアップロード機能や、RCE によるスクリプト生成の場合、高確率でブロックされますが、管理者が RDP で正規配置した場合は、スルーされます。他方、Web アプリが 動的に .aspx を生成 する、デプロイツールが Web ルートに直接書き込み するなどの場合は、誤検知が発生する可能性があります。
設定
- グループポリシー
- [ コンピューターの構成 ]>[ ポリシー ]>[ 管理用テンプレート ]>[ Windows コンポーネント ]>[ Microsoft Defender ウイルス対策 ]>[ Microsoft Defender Exploit Guard ]>[ Attack Surface Reduction ]>[ Attack Surface Reduction 規則の構成 ]:[ 有効 ]
- [ 各 ASR 規則の状態を設定します。]:[ 表示 ] をクリックする。
- [ 値の名前 ]:A8F5898E-1DC8-49A9-9878-85004B8A61E6
- [ 値 ]:
- 0: 無効にする (攻撃面の縮小ルールを無効にする)
- 1: ブロック (攻撃面の縮小ルールを有効にする)
- 2: 監査 (攻撃面の縮小ルールが有効な場合にorganizationに与える影響を評価する)
- 6: 警告 (攻撃面の縮小ルールを有効にするが、エンド ユーザーがブロックをバイパスできるようにする)
- [ 各 ASR 規則の状態を設定します。]:[ 表示 ] をクリックする。
- [ コンピューターの構成 ]>[ ポリシー ]>[ 管理用テンプレート ]>[ Windows コンポーネント ]>[ Microsoft Defender ウイルス対策 ]>[ Microsoft Defender Exploit Guard ]>[ Attack Surface Reduction ]>[ Attack Surface Reduction 規則の構成 ]:[ 有効 ]

監査
Defender Operational ログ:
- ID 1121(ASR: child process blocked)
ログには、以下が表示されます。
- Process: w3wp.exe
- Target File: C:\inetpub\wwwroot\shell.aspx
- User: IIS 実行ユーザー
推奨設定と運用上の注意
一定期間、監査モードで運用し、その後、ブロックモードに変更することを推奨します。
誤検知の可能性として、「Web アプリが 動的に .aspx を生成」、「CMS のテンプレート更新」、「デプロイツールが Web ルートに直接書き込み」、などが考えられます。しかし、実行可能ディレクトリへの書き込み許可や Web アプリ自身が配置権限を持つ頃自体は推奨されるものではなく、設計ミスといってもよいものです。特に、アップロード領域は、Web シェル対策として実行不可を厳格に行うべきです。
