セキュリティエンジニアがMicrosoft Defender for Endpointで脅威検知してみた

# はじめに
本記事では、Microsoft社のエンドポイントセキュリティソリューションであるMicrosoft Defender for Endpoint(以下、MDE)の利用方法を紹介します。
とある案件でMDEに触れる機会があり、導入と試験を行ったのですが、試行錯誤する部分があったため、備忘の意も込めてノウハウ化します。
# Microsoft Defender for Endpoint(MDE)とは
いわゆるEndpoint Detection and Response(EDR)カテゴリの製品です。従来のアンチウィルス製品と比較して、マルウェアの検知や削除だけでなく、セキュリティインシデントが発生したあとの調査や対応、修復を支援する機能を備えています。
MicrosoftのセキュリティサービスであるDefender forシリーズでは、図の通りクラウド環境からエンドポイントまで、そしてコミュニケーション基盤からIDインフラまで、多数のレイヤーでセキュリティ脅威に対抗するソリューションがラインナップされています。そのうち、MDEはユーザのデバイス（ラップトップやモバイルデバイス）に入ってきた脅威に対処するための製品です。
MDEはかつてDefender **ATP(Advanced Threat Protection)** という名前で提供されており、その名残りがいまだ随所に見られますが、脳内でMDEに読み替えてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/7f9aa90a-7a3c-f31b-ae0c-039e9f18932b.png)
[Implement Microsoft Sentinel and Microsoft Defender XDR for Zero Trust](https://learn.microsoft.com/en-us/security/zero-trust/siem-xdr-overview?tabs=defender-portal#common-attack-order "Implement Microsoft Sentinel and Microsoft Defender XDR for Zero Trust")



# MDEを導入してみる
## 事前準備
さっそく導入していきます。

構成にあたっては、次の公式マニュアルを参照します。~~わかりづらさはさておき、~~ 公式が一番詳しい。

https://learn.microsoft.com/ja-jp/defender-endpoint/mde-planning-guide




まずはライセンスの購入から。
通常はMicrosoft 365 E3/E5のようなパッケージの中に含まれているMDEライセンスを使用する方が多いと思います。今回は検証環境の都合上、単品でライセンスを購入します。

ライセンスの購入は[Microsoft 365管理センター](https://admin.microsoft.com/Adminportal/Home#/catalog "Microsoft 365管理センター")から行います。


ライセンスの購入が完了したのち、同じくMicrosoft 365管理センターの課金情報 > ライセンスからライセンスをユーザアカウントに割り当てていきます。ここにもATPの名残りが。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/849c485f-4031-7acb-4c3d-3785bddb2f18.png)

続いて、ユーザに権限を付与していきます。権限の付与は[AzureポータルのEntra ID](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Overview "Azure Portal")で行います。
MDEへのアクセスに必要なロールは以下3つのいずれかです。グローバル管理者でもアクセス可能ですが、その人の役割に応じた最小のロールを付与しましょう。

| | セキュリティ管理者 | セキュリティ オペレーター | セキュリティ閲覧者 |
|:-:|:-------|:----|:-------|
| できること | ・ロールを割り当てる<br>・コンピューター グループを管理する<br>・エンドポイントの脅威の検出と自動修復の構成<br>・アラートの表示、調査、対応<br>・マシンまたはデバイス インベントリを表示する | ・セキュリティ閲覧者ロールのすべてのアクセス許可<br>・セキュリティ アラートの表示、調査、対応 | ・アラートの表示と調査 |

https://learn.microsoft.com/ja-jp/entra/identity/role-based-access-control/permissions-reference#security-administrator

ここまでで事前準備が完了しました。

## オンボードしてみる

MicrosoftのセキュリティはDefenderポータルページから始まります。[^a]
[Microsoft Defender ポータル](https://security.microsoft.com/ "Microsoft Defender ポータル")

ライセンスの付与とロール設定が完了していれば、左側のメニューに「エンドポイント」が表示されて…いない。

![{DE68CB52-0096-4B40-A78D-4AF37B7F7B71}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/a1b708d7-ee81-52e7-d5fd-7fba07de6ee1.png)

その後、 **ライセンスの付与から24時間経過して、エンドポイントメニューが表示されました。**
どうやら、Defenderポータル上にエンドポイントメニューがすぐに表示されないというのは、よくある事象みたいです。

https://techcommunity.microsoft.com/discussions/microsoftdefenderatp/endpoint-menu-missing-in-settings-in-security-center/3839280

[Reddit.com - Endpoint menu missing in settings in security center](https://www.reddit.com/r/DefenderATP/comments/140lb3f/endpoint_menu_missing_in_settings_in_security/ "Endpoint menu missing in settings in security center")


[^a]: EntraIDが提供するEntraID保護、およびMicrosoft Defender for Cloudは除く。前者はAzure PortalのEntraIDのIdentity Protectionブレードから、後者はAzure PortalのDefender for Cloudブレードからアクセスする。

MDEを利用するためにエージェントのインストールは不要[^b]ですが、デバイスをDefenderポータル上で管理するために、オンボードという登録手順が必要になります。
オンボードのための手順はDefenderポータルのシステム > 設定 > エンドポイント > デバイス管理 > オンボーディング からアクセスします。

![{B36F531F-337A-4561-B14A-E7307992F588}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/1bc0fd70-296a-50ce-4e55-b8e95e8063f8.png)

MDEを有効化するデバイスのOSを選択し、接続の種類を選択します。
* [標準](https://aka.ms/MDE-standard-urls "商用のお客様向けのMicrosoft Defender for Endpoint URL リスト (標準)")
* [合理化](https://aka.ms/MDE-streamlined-urls "統合 URL リストのMicrosoft Defender for Endpoint (合理化)")

この2つのオプションは、デバイス上のMDEプロセスがクラウド上のサービスと通信する宛先の絞り方を特定するものです。[^c]
苦労しますよね、通信要件の設定。MDEを使用するような組織ではだいたいプロキシやFWが存在するでしょうし、穴開け作業は少ない方が楽です。
合理化された接続方法は、2024年5月以降に提供され始めたもので、より少ない通信先の設定で済む方法です。
それぞれの通信要件リストを見ると、標準接続は98件の通信先に対して、合理化接続は27件。7割ほど合理化されています。
インターネットへ自由に抜けられない環境では、上記の通信先への穴開けを行います。


次に、オンボードするためのスクリプトをデバイス上で実行します。これには、
* ローカルでスクリプト実行
* ADからグループポリシー(GPO)で実行
* Intuneから実行
* Microsoft Endpoint Configuration Manager (MECM, 旧SCCM）から実行

といった方法があります。数十台以上の規模でMDEを導入する場合は、下3つのオプションが現実的でしょう。
今回はローカルスクリプトを使います。「オンボードパッケージのダウンロード」を選択すると、バッチファイルが落ちてくるので、これを対象のデバイス上で管理者権限付き実行します。

![{4AFB1847-F56D-4244-A007-92879D7C3AA8}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/a6e05ccc-508d-5004-478c-ccb316402b8a.png)


この作業が成功した時点で、Defenderポータルのアセット > デバイスのインベントリ画面に、オンボーディングしたデバイスが表示されているはずです。

![{D1700460-13CB-44D6-B184-AA9703BA22A4}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/2f3f26b7-3a24-c59e-e123-49b893ddd2ca.png)

また、検出テストを実行することで、MDEが正常に機能していることを確認できます。実行スクリプトは、「オンボードパッケージのダウンロード」ボタンのすぐ下に記載されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/169e286c-2b3a-6837-bc07-81c5358fb1b9.png)

検知したアラートは、インシデントとして左側メニューの「インシデントとアラート」から確認することができます。Defenderにおけるインシデントとアラートの違いは以下に詳しい。

https://learn.microsoft.com/ja-jp/defender-xdr/incidents-overview

[^b]: アンチウィルスの検知エンジンはOSデフォルトのWindows Defenderのものを使用する。したがって、Windows以外のmacOSやLinuxでは、エージェントのインストールが必要になる。

[^c]: [プロキシ サーバー内の Microsoft Defender for Endpoint サービス URL へのアクセスを有効に](https://learn.microsoft.com/ja-jp/defender-endpoint/configure-environment#enable-access-to-microsoft-defender-for-endpoint-service-urls-in-the-proxy-server "プロキシ サーバー内の Microsoft Defender for Endpoint サービス URL へのアクセスを有効に")


# 検知してみる

もう少し現実的な攻撃者の行動に即した事象に対して、MDEが検知してくれるか試してみます。

Officeファイルに組み込まれたVBAマクロからPowershellが起動し、インターネット上にある悪性コードをダウンロードするPowershellスクリプトを想定します。
本稿では省略しますが、難読化PowershellコードはさくっとChatGPTに作ってもらいました。すごい。
Powershellを起動するマクロファイルの作成はセキュリティ上の理由でChatGPTに断られますが、それでも作成手順は教えてくれます。試される皆様はくれぐれも自己責任で作成してください。

作成したマクロ付きOfficeファイルを、一旦インターネット上に設置し、対象デバイスからダウンロードしてみると…。

![{887136C9-F9C1-430A-BD66-238CACE875CC}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/815ccc8e-ad2f-9361-3cd9-4a16ea1285c8.png)

 **マクロファイルを開く前に、インターネットからダウンロードした瞬間にMDEで検知＆削除されてしまいました。** 
 
Defenderポータル側を確認すると、Sadocaという名前のマルウェアとして検知され、さらにRemediatedされた(修復された)ことがわかります。もちろん、デバイス上からもファイルが消え去っています。

![{8DC9A2DD-F643-45FB-A06B-7E8AD801AF90}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/99147ebe-156e-9134-8ed9-c912943dd539.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/75191009-4da7-14cd-3270-78e10c2c03b2.png)

Defenderポータル上の調査機能は充実しており、Officeファイルを検知するタイミングまでのプロセスツリーなどを自動で表示してくれます。
残念ながら、今回は用意した難読化Powershellを実行したことが原因でなく、インターネット上からマクロ付きOfficeファイルをダウンロードしたことが悪性と判断された可能性が高いですが、[サイバーキルチェーン](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html "サイバーキルチェーン")でいうところのデリバリー(配送)の初期段階で脅威を防止してくれることがわかりました。
また、検知されたファイルのグローバルや組織内での実行状況(同一のファイルが実行されているか)や、VirusTotalでのレピュテーション[^d]を自動で確認してくれるのは、セキュリティエンジニアとしてはありがたいですね。

[^d]: ファイルやサーバーの過去の実績や現在の利用状況などを評価して、悪質なファイルやサーバーであるかどうかを判断する仕組み。

# 対応してみる

すでに対象デバイスからファイルが削除され、脅威はなくなっている状況ですが、レスポンス(対応)のためのMDE機能をいろいろ試してみます。

![{0D4996D3-CDE1-4791-A863-77EF0BE8F90D}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/30ba797b-eef3-b71c-8b3b-bc9f7541c71b.png)


### ライブ応答
Defenderポータルから、対象デバイスへのリモート接続する機能です。同じくEDR製品のCrowdStrikeでいうところのReal Time Response(RTR)相当の機能ですね。

疑わしいファイルの取得や、デバイスのフォルダ内に侵害の痕跡が存在しないかを遠隔から調査する際に役立ちます。
実際のセキュリティオペレーションでは、SOCアナリストやインシデントハンドラーが侵害端末へ物理的に駆けつけることができなかったり、デバイスの利用者がPCの操作に明るくなく、調査が円滑に進められないといったことがあります。そんなときはライブ応答機能の出番です。

もちろん、デバイスとMDEサービス間の接続が確立している状況でないと使えません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/afb95c1a-02bb-8c58-e376-6025640aafaa.png)

https://learn.microsoft.com/ja-jp/defender-endpoint/live-response

### デバイスの分離

名前の通り、対象のデバイスをネットワークから分離する機能です。
攻撃者が侵害したデバイスからネットワーク内を横展開したり、インターネット上へのデータ漏洩を防ぐために有効です。ネットワークから分離したあとも、Defenderサービス側との通信のみ有効となるため、セキュリティエンジニアは引き続きDefenderポータルから調査活動を継続できます。

Defenderポータル上で分離を実行したところ、デバイス側では即座にネットワークから遮断された旨の通知が発生しました。また、インターネット向けの通信が失敗するようになりました。
分離状態からの解除もポータル側で実行しますが、この際はデバイス側に通知が表示されず、デバイス利用者側は接続が復旧したことを認識しづらいなと思います。

![{EE0CF14B-1650-496E-BE1D-4BF9CD58C85A}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952015/89d87f8a-f448-ddc3-d2c8-3bbb2c8963eb.png)

https://learn.microsoft.com/ja-jp/defender-endpoint/respond-machine-alerts#isolate-devices-from-the-network

# おわりに

MDEの導入から悪意あるファイルの検知、そして実際にセキュリティオペレーションの中で行われる対応機能を説明しました。
MDEはSOCやCSIRTチームの中の人が求める機能が一通り揃っています。自動調査機能や、遠隔調査・対応機能などを使って、効果的＆効率的なセキュリティオペレーションを実現できるとよいですね。