MENU

ASR Rule サーバーの Web シェル作成をブロックする

概要

  • 初期侵入対策
  • GUID: A8F5898E-1DC8-49A9-9878-85004B8A61E6
  • 推奨設定値:2: 監査 → 1: ブロック (攻撃面の縮小ルールを有効にする)

この ASR ルールは、Web サーバー上に “遠隔操作用スクリプト(Web シェル)” を生成・配置する行為を、作成時点で遮断するというものです。
Web シェルとは、Web アプリケーションの脆弱性や認証回避などを通じで、Web サイトに配置された攻撃スクリプトです。以下のスクリプトを Web サイトに配置されると、ブラウザから OS コマンドが実行できる “常設のバックドア” となります。
PHP の場合、以下のスクリプトを配置されると、http://server/shell.php?cmd=whoamiWhoami コマンドが実行され、現在ログインしているユーザーが確認できます。

<?php
system($_GET['cmd']);
?>

このルールは、次の組み合わせを判定します。

  • 作成主体(誰が書いたか)
    • w3wp.exe(IIS Worker Process)
    • Web アプリの実行ユーザー
    • ASP.NET / PHP / CGI プロセス
  • 作成場所(どこに書いたか)
    • IIS Web ルート
      • C:\inetpub\wwwroot
      • 仮想ディレクトリ
    • 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: 警告 (攻撃面の縮小ルールを有効にするが、エンド ユーザーがブロックをバイパスできるようにする)

監査

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 シェル対策として実行不可を厳格に行うべきです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次