Microsoft Defender for Identity (MDI) をEntra Connectにインストールしてみた

# はじめに
今回の記事は、**Microsoft Defender for Identity (MDI)をActive DirectoryとMicrosoft Entra Connectにインストールをして、動作確認をしてみた記事**です。
もともとMDIはADにセンサーをインストールすることで、オンプレミス環境におけるID保護を実現していました。さらに、Entra ConnectやADCSといったサーバもMDIで保護できるようになりましたので、今回テストをしてみます。

https://learn.microsoft.com/ja-jp/defender-for-identity/whats-new#august-2024

# Microsoft Defender for Identity (MDI)とは

**MDIとは、Active Directory(AD)のようなオンプレミスのIDを保護するID脅威検出（ITDR）** のソリューションです。以前は、Azure Advanced Threat Protection (Azure ATP)と呼ばれていました。
なお、**Entra IDのようなクラウドのIDを保護するソリューションとしては、Entra ID Protection** (旧名：Azure AD Identity Protection)  があります。

どちらもID保護を目的としていますが、保護対象がクラウドユーザ(Entra ID上のユーザ)か、オンプレミスユーザ（AD上のユーザ）かで異なるため、ITDRを考える場合は、両方を考慮するのがよいかもしれません。例えば、Microfoft Defender Portal上でも、ITDRダッシュボードという画面があり、クラウドユーザとオンプレミスユーザ、両方のIDを考慮したダッシュボードとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/fb5f25e9-e1ef-1afd-97d1-d80c960fe3e1.png)

今回取り上げるMDIでは、ネットワーク上のMDIセンサーによって検出された疑わしいアクティビティに基づき、セキュリティアラートを発生させることが可能となります。具体的には、以下URLにセキュリティアラートのリストがあります。

https://learn.microsoft.com/ja-jp/defender-for-identity/alerts-overview

### 補足：MITRE ATT&CK
MDIによって生成されたアラートは、MITRE ATT&CK マトリックスにマッピングすることも可能です。攻撃を防御することも重要ですが、攻撃を正しく認識することも重要視されますので、MITRE ATT&CKに照らし合わせた攻撃手法のカテゴリ化も大切となっています。

MITRE ATT＆CKとは、米国の連邦政府が資金を提供する非営利組織であり、以下マトリックスのような実際の攻撃をまとめたナレッジを公開しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/b8805dc7-5c19-e922-bb33-e7eb3425b233.png)
<br>

具体的には、エンタープライズ向けのマトリックスに記載されている戦術には以下のようなものがあります。

<table>
  <thead>
    <tr>
      <th>戦術</th>　<th>英語</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td> 偵察 </td> <td>Reconnaissance</td> <td>攻撃者による情報収集行為のこと。例えば、標的のインフラストラクチャに対するスキャン行為やWEB上の情報調査などがある。</td>
  </tr>
  <tr>
    <td> 初期アクセス </td> <td>Initial Access</td> <td>攻撃者がネットワークに侵入しようとすること。例えば、標的を絞ったスピアフィッシングや、公開されている Web サーバーの弱点を悪用することなどが挙げられる。</td>
  </tr>
  <tr>
    <td> 実行 </td> <td>Execution</td> <td>攻撃者が悪意のあるコードを実行しようとすること。例えば、PowershellやWindowsのコマンドを利用することがある。</td>
  </tr>
  <tr>
    <td> 永続化 </td> <td>Persistence</td> <td>攻撃者が不正アクセスする環境を確保しようとすること。例えば、スタートアップアイテム項目の追加やアカウントの作成などがある。</td>
  </tr>
  <tr>
    <td> 権限昇格 </td> <td>Privilege Escalation</td> <td>攻撃者がより高いレベルの権限を取得しようとすること。システムの脆弱性等を利用して、ルートレベルや管理者レベルの権限を取得することが挙げられる。</td>
  </tr>
  <tr>
    <td> 認証情報アクセス </td> <td>Credential Access</td> <td>攻撃者がアカウント名とパスワードを盗もうとすること。例えば、キーロギングや資格情報のダンプ、中間者攻撃、クレデンシャルスタッフィングなどがある。</td>
  </tr>
  <tr>
    <td>探索  </td> <td>Discovery</td> <td>攻撃者がアクセス先の環境を理解しようとすること。例えば、有効なアカウントやグループの検出、ドメイン、レジストリ、ソフトウェア等の情報の調査がある。</td>
  </tr>
  <tr>
    <td> 水平展開 </td> <td>Lateral Movement</td> <td>攻撃者がアクセス先の環境を移動すること。SSHやRDPといったリモートサービスやSMBのようなプロトコルを利用して、ネットワーク内のシステムに移動したりすることが挙げられる。</td>
  </tr>
  <tr>
    <td> 持ち出し </td> <td>Exfiltration</td> <td>攻撃者がデータを盗もうとすること。例えば、FTP、SMTP、HTTP/S、DNS、SMBといったプロトコルを利用することがある。</td>
  </tr>
</table>

https://attack.mitre.org/matrices/enterprise/

以下図は、Defender PortalのMDIアラートの詳細画面で、ADに対するクレデンシャルダンピングの可能性があるMDIのセキュリティアラートを表示しています。右下のアラートの詳細のところに、**資格情報へのアクセス**というカテゴリがあり、これがMITRE ATT&CKのカテゴリとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/75771b7e-56cf-8ed4-86fd-5422ed38bbdf.png)


# テスト構成

今回のテストでは、Hyper-V上に３台のWindows Serverを構築しており、別フォレストのADを２台、Entra Connect用のサーバを１台作っています。この３台にはすべてMDIセンサーをインストールすることで、MDIによるセキュリティ監視を実現しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/50e09067-c174-3910-b57e-83eeedb21bcb.png)

:::note info
**Entra Connectの名前解決**

特に、MDIのテストとは関係はないですが、今回Entra Connectは異なる２つのフォレストとなっているADと接続しています。そのため、Entra Connectをインストールする際には、２つの構成済みディレクトリの設定をしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/2d61ca2a-dab3-f9dc-7d4a-2ab6a0e420bd.png)

Entra Connectは、AD1兼DNSサーバを通常は利用しているため、AD2兼DNSサーバでホスティングされているAD2のドメイン２は名前解決をすることできません。そのため、本テスト環境では**AD1のDNSに条件付きフォワーダーの設定をする**ことで、**ドメイン2のDNSクエリの場合はAD2兼DNSにDNSクエリをフォワード**しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/8c2f1511-6b5e-f297-1c2f-500466ed0aee.png)

この結果、Entra ConnectではAD1のドメイン１とAD2のドメイン2の双方の名前解決をすることができています。例えば、Entra Connectからドメイン２のDNSクエリを発行した場合は、まずAD１兼DNSサーバにDNSクエリが向かい、ドメイン２に該当するので、条件付きフォワーダの設定に従い、AD２兼DNSサーバに名前解決が向かいます。
よって、DNSの問題が解消され、Entra Connectとしても異なる二つのフォレスト上のドメインからID同期を実現することができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/0abb25e2-9b79-765f-fc4b-a044f3054204.png)


:::

# 導入手順
### MDIセンサーのインストール

Microsoft Defender Portalに移動し、[設定]から[ID]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/44e381df-dda6-0e1f-8d0a-9be9dafcf557.png)

サイドメニューに[センサー]がありますので、[＋センサーの追加]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/c6dbd651-4485-74a4-5899-e5f9d0893739.png)

「新しいセンサーを追加する」という表示が出てきますので、ここで[インストーラのダウンロード]を選択します。このインストーラをMDIセンサーをインストールしたいサーバ上に移動し、実行することでMDIセンサーをインストールすることが可能となります。なお、このページで、アクセスキーが表示されますが、この情報はインストーラをインストールする際に入力する必要がありますので、メモをとっておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/f2a3a8c5-3145-fb03-5806-7139fce0efef.png)

それでは、ダウンロードしたMDIセンサーのインストーラをAD１上に置き、実行します。
なお、Npcapというファイルもありますが、これはパケットスニファーのためのアプリです。MDIセンサーが不審なネットワークアクティビティを監視するにあたって、Npcapを利用している模様です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/5c4ae8aa-6095-c88d-4106-1663c6d0bed5.png)

:::note info
**Npcapのドライバー**
MDIセンサーをインストールすると、自動でNpcapもインストールされます。試しに、イーサネットのプロパティを見てみると、**Npcap Packet Driver (NPCAP)** を確認することができます。
有名なWiresharkでもNpcapをパケットスニファのためのドライバーとして利用してたりします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/62c71db4-b91d-9dbb-03d3-aa99045bdafc.png)

:::

インストール自体は、ウィザードに従って進めるだけで簡単にできます。以下はインストール時のウィザード画面です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/6eab092d-5c9d-956a-07bf-f2dfa3b23398.png)

::: note info
**Entra Connectの場合**

Entra Connectに対して、MDIセンサーをインストールする際は、以下のようにインストーラ側で自動認識してくれます。手順自体は、ADにインストールした場合と同じですので、詳細は割愛します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/73c6e89e-79f8-cc81-9ac8-675454be7c5a.png)


:::

ここではインストールパスとアクセスキーを入力します。アクセスキーとは、先ほどDefender Portal上でメモをしたキー情報です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/329e7055-fe0f-5427-63de-8525bfdc2d13.png)

[インストール]を押すと、数分でインストール完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/10ea8c3b-94be-e26a-7412-78e4d9caf7c7.png)

正常にインストール完了すると、以下の画面となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/ac77d61d-c1cf-76f3-0ee0-129cd9d3dfc9.png)

同様にして、AD2とEntra ConnectサーバにもMDIセンサーをインストールします。

Defender Portalに戻り、センサーの一覧を確認してみます。数10分時間がかかりましたが、３台ともＭＤＩセンサーが表示されます。ただ何も考えずにインストールしたため、「正常性の状態」に問題が発生しています。これは各サーバに対して適切な設定等が抜けているためとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/76eceb9b-7cae-de23-7fd0-839e8067e78f.png)

### Entra Connectサーバのための設定

Entra Connectサーバにおいては、Defender Portal上で、ADのFQDN情報の入力が必要となります。
そのため、Entra Connect センサーのところから、[設定]を選択し、ADのFQDN情報を入力し、[保存]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/b87bbdf3-03bb-8b46-c4b6-645563a4e923.png)

次に、[ディレクトリサービスアカウント]を選択します。ここではAD１用のアカウントとAD２用のアカウントの資格情報を入力しています。この情報を入力することで、Entra ConenctサーバからAD接続できるようになり、ネットワークトラフィック、監視対象イベントといったデータをADに照会することが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/62597f38-6a6f-8337-5d4c-5485ad3d1b51.png)

::: note warn
**MDIのディレクトリサービスアカウント**

MDIのディレクトリサービスアカウント（DSA)としては、**グループ管理サービスアカウント(gMSA)** を利用することが推奨となっています。gMSAを利用することで、パスワードに関して、ドメインサービスにおけるキー配布サービス（KDS）で定期的な変更の元で管理され、管理者がパスワードの存在を意識する必要がなくなるため、よりセキュアと考えることができます。

https://learn.microsoft.com/ja-jp/defender-for-identity/deploy/directory-service-accounts

:::

### MDIセンサーによる監視のためのサーバ設定

それではMDIセンサーのエラーを解消するために、各種サーバの設定をしていきます。
少しめんどくさいですが、MDIセンサーのエラーが表示された状態も気になりますので、各サーバーに設定を施して、エラーを解消していきます。

以下リンク先に[**NTLM監査を構成する**]という内容のMS Learnの記事があります。この内容通りに監査設定を実施します。

https://learn.microsoft.com/ja-jp/defender-for-identity/deploy/configure-windows-event-collection#configure-ntlm-auditing

設定した際のグループポリシーの管理の画面は以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/1a7288f1-7139-63c7-ae20-b1f5ae4d17c2.png)

以下リンク先に[**UIから高度な監査ポリシー設定を構成する**]という内容のMS Learnの記事があります。この内容通りに監査設定を実施します。

https://learn.microsoft.com/ja-jp/defender-for-identity/deploy/configure-windows-event-collection#configure-advanced-audit-policy-settings-from-the-ui

設定した際のグループポリシーの管理の画面は以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/810b5400-3283-9481-ebbf-fd4f6248663b.png)

以下リンク先に[**ドメインオブジェクト監査を構成する**]という内容のMS Learnの記事があります。この内容通りに監査設定を実施します。

https://learn.microsoft.com/ja-jp/defender-for-identity/deploy/configure-windows-event-collection#configure-domain-object-auditing

電源設定に関しても最初エラーが発生していましたので、こちらも[**高パフォーマンス**]に変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/1e2e762d-0e96-623c-11cc-cf4ddfb7d831.png)

一通り設定が完了しましたら、Defender PortalのMDIセンサーを見てみます。反映されるのに少し時間がかかりますが、「正常性の状態」が「正常」に変わりました。これでMDIセンサーのインストール作業と各種サーバ設定は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/ba3f01c9-7e3f-ad78-215b-7e79d2ba4f0a.png)

# 動作確認
### ハニートークンアカウント

MDIには、おとりアカウントを作成し、このおとりアカウントが利用されたときに、セキュリティアラートを発生させる機能があります。例えば、攻撃者が真っ先に狙いたくなるようなアカウント名（例：admin , root)などでアカウントを用意しておき、実際にこのおとりアカウントが利用されたら、MDIのアラートにより気づくことができるようにします。

設定はエンティティタグのところに、[ハニートークン]というサイドメニューがあるので、[+ユーザーにタグをつける]をクリックし、対象となるユーザを選ぶだけとなります。選択可能なユーザはMDIセンサーが自動でAD上のユーザを表示してくれます。
もし、ハニートークンアカウントにしたいユーザがない場合は、AD上でユーザを作り、少し待つとDefender Portalで選択することが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/4be32871-155a-ba1f-5ea2-27f004849621.png)

それでは、PCから意図的にドメイン参加するユーザとして、ハニートークンアカウントを利用してみます。実際にハニートークンアカウントの利用が成功しても、失敗してもアラートが発生しました。
以下画像のように、**Honeytoken authentication activity on one endpoint**というインシデントが生成されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/0dd72b9b-1e5c-7993-bbc4-12c47109f259.png)

アラートの詳細画面を開いてみます。PC１からハニートークンアカウントを利用したログイン試行が観測されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/58025c00-f5aa-d659-39d9-4cb3797a05e6.png)

さらに、このADユーザを選択することで、Defender Portalから[**ADでユーザーを無効にする**]ということもできます。
※ハイブリッドユーザの場合は、ADでユーザを無効化すれば、Entra Connectにより、Entra IDのユーザも自動で無効化されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/d1f367c3-2d1a-6378-4ade-442944c7359d.png)

実行後、AD上のユーザを確認してみると、ユーザが無効化されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/80766770-470e-0514-a43e-a962e583168f.png)

無効化されていることが確認できましたので、再度有効化します。
Defender Portalで、[ADでユーザを有効にする]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/ccf9f705-76bd-40a8-4631-adee9d9f5087.png)

無事有効化も実現することができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/456cf663-65f5-8c4e-83f1-a7db69e25a9a.png)


### テストモードの利用
今回はセキュリティアラートが発生しやすくするため、**アラートのしきい値を調整する** から **推奨テストモード** を有効化しておきます。これによって、アラートが発生するしきい値が**低**となり、アラートが発生しやすくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/c2a2467e-5e8e-3f21-b224-b94d7a971296.png)

次に、Entra Connectサーバ上で、何度かドメインユーザやグループ(例：Domain Adminsなど)を確認するためのコマンド(net user /domain など)を実行してみますと、アラートが発生しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/7540017c-9e54-4358-ebb9-d9a7777fb630.png)

なお、MDIは学習期間があり、正当なアクティビティと不審なアクティビティを区別する機能がありますが、今回は、意図的に推奨テストモードにしているため、セキュリティアラートがトリガーされた模様です。
実際、画像の下部に「このアラートは、アラートのしきい値が低りレベルに設定されていたためにトリガーされました」と表示があります。

# 終わりに

今回は、Microsoft Defender for Identity (MDI)のインストールから簡易的な動作確認まで実施しました。実際のところ、MDIセンサーのインストールは簡単でしたが、セキュリティアラートを発生させるところに悪戦苦闘してしまいました。ADやEntra Connectは最重要なサーバである以上、MDIのようなセキュリティ製品は有用な気がしました。