この記事では、Windowsデバイスに対するセキュリティ機能としてMicrosoft Defenderの攻撃面縮小機能(ASR:Attack Surface Reduction)の概要と動作を確認していきます。
攻撃面減少(ASR)とは
攻撃面減少は、潜在的な攻撃ポイントの数を減少させることを意味します。
攻撃面減少を家のセキュリティに例えると、家にある扉や窓は潜在的な侵入口となります。これらの入口を減らす、または強化することで、侵入者が家に入る機会を減らすことができます。
デバイスの観点では、マルウェアが利用可能な攻撃手法を減少させることを目的とします。
ASRには、下記のような複数の機能があります。
- Microsoft Edge のハードウェア ベースの分離
- 攻撃面の減少ルール
- アプリケーション制御
- フォルダー アクセスの制御
- リムーバブル 記憶域保護
- ネットワーク保護
- Web 保護
- エクスプロイト保護
- ネットワーク ファイアウォール
詳細は、下記のドキュメントを参照してください。
>> 参考ドキュメント :攻撃面の縮小機能を理解して使用する
この記事では、上のうち、「攻撃面の減少ルール」についての設定をIntuneより設定し、動作確認していきます。
攻撃面の減少ルール の設定
前提
Intuneへデバイス登録、およびMDEオンボーディング済みのWindowsデバイス(Win11-3)に対して、ASRルールを適用します。

MDEオンボーディングについては、下記の記事を参考にしてください。
>> 参考記事 :Defender for Endpoint をIntuneからオンボーディングする攻撃面減少ルールの設定
「Microsoft Intune 管理センター(https://intune.microsoft.com/)」より、「エンドポイント セキュリティ」をクリックします。

「管理する」>>「攻撃面の減少」をクリックします。

「ポリシーの作成」をクリックします。

プラットフォームに「Windows10、Windows11、Windows Server」、プロファイルを「攻撃の回避規則」を選択し、「作成」をクリックします。

任意の名前(今回は「ASRルールテスト」)を入力し、「次へ」をクリックします。

「構成設定」により、「Adobe Reader による子プロセスの作成をブロックする」など、様々なアプリケーションの挙動に対して制限をかけることができます。

ルールの詳細は、下記のドキュメントを参考にしてください。
>> 参考ドキュメント :攻撃面の縮小ルールリファレンス
今回は、テストを目的で、「すべての Office アプリケーションが子プロセスを作成できないようにブロックする」を「ブロック」に設定し、「次へ」をクリックします。

「スコープタグ」は何も設定せず、「次へ」をクリックします。

「割り当て」タブで、対象となるグループを選択します。予め「セキュリティ適用グループ」という名前のグループを作成し、デバイス「Win11-3」がメンバとして登録されています。

「セキュリティ適用グループ」を指定し、「選択」をクリックします。

グループが登録されたことを確認し、「次へ」をクリックします。

「確認と作成」タブで、設定を確認し、「作成」をクリックします。

下記のとおり、登録されます。

デバイス同期
デバイス「Win11-3」に、早期のポリシーが適用されるよう、デバイスの同期を実行します。デバイス「Win11-3」の詳細画面から「同期」をクリックします。

「はい」をクリックします。

Officeで実行するテスト用マクロ作成(ChatGPT)
Officeアプリで、子プロセスを作成するテスト用のマクロを「ChatGPT」に出力させます。
下記は、ChatGPTの出力内容です。
プロンプト:Office Wordより子プロセス(powershell.exe)を作成するマクロを作成してください。
ChatGPT:WordからPowerShellを子プロセスとして実行するためのVBAマクロを作成するには、以下の手順を行います。この例では、WScript.Shellオブジェクトを使用してPowerShellを起動し、簡単なコマンド(例えば”echo Hello, World!”)を実行します。このコマンドは、PowerShellを開いて指定されたコマンドを実行し、その結果を表示します。必要に応じて、実行したいPowerShellのコマンドに変更してください。
Sub RunPowerShellCommand()
Dim shell As Object
Set shell = CreateObject("WScript.Shell")
Dim command As String
' PowerShellコマンドを設定
' 例: PowerShellで "Hello, World!" を表示
command = "powershell.exe -NoProfile -Command ""echo Hello, World!"""
' PowerShellコマンドを実行
shell.Run command, 1, True ' 1 = アクティブウィンドウで実行, True = 実行が終わるまで待つ
End Sub
このマクロを使用することで、Wordから直接PowerShellを実行し、任意のコマンドを実行することができます。例として提供したコマンドは非常に基本的なものですが、この方法を使用して、さまざまな自動化スクリプトや管理タスクを実行することが可能です。
動作確認
私の検証デバイス「Win11-3」で Wordを立ち上げ、ChatGPTが出力したマクロを手動で実行します。

すると、下記のように、トースト表示で、ブロックされた旨が通知されます。

イベントログの確認
イベントログ上にも、ブロックされているログが出力されます。
イベントビューアを開き、「アプリケーションとサービスログ」>>「Microsoft」>>「Windows」>>「Windows Defender」>> 「Operational」を開きます。
すると、イベントID 1121 で、ブロックされているログが確認できます。

上の例では、アクションを「ブロック」としましたが、ブロックをしない「監査」というモードもあり、この場合は、イベントIDが1122でログ出力されます。詳細は、下記のドキュメントを参考にしてください。
>> 参考ドキュメント :攻撃面の縮小ルールをテストする
ポータル上での確認
「Microsoft Defender管理ポータル(https://security.microsoft.com/)」へアクセスし、左メニューの「レポート」をクリックします。

「エンドポイント」>> 「攻撃面の減少ルール」をクリックします。

下記のように、ASRルールのログ検出の数(ブロック、監査)やログ詳細が確認できます。

ログの詳細では、どのルールにより検出されたのか、検出されたファイルなどを確認することができます。

コメント