M365 / Azure Security のサンプルアラート生成まとめ

# 1. はじめに
M365 Security や Azure Security (Microsoft Defender for Cloud による脅威検知など) では、エージェント適用後の正常性稼働確認のために幾つかのサンプルアラートを出力する手法がドキュメントに掲載されています。正しく脅威検知が通知されるかどうか、また通知されたアラートを運用フローで誰に通知するかなど、実運用環境ではアラートを正しく処理するためのテストが重要なのですが、各サービス毎に Microsoft のドキュメントが散らばっているため、備忘録に本記事でまとめています。

# 2. アラート生成方法
## 2.1 M365 Security サービス
### 2.1.1 Microsoft Defender for Endpoint (MDE)
#### 2.1.1.1 MDE for Windows
MDE 導入後、以下の Powershell コマンドでサンプルアラートを生成する。

```powershell
powershell.exe -NoExit -ExecutionPolicy Bypass -WindowStyle Hidden $ErrorActionPreference= 'silentlycontinue';(New-Object System.Net.WebClient).DownloadFile('http://127.0.0.1/1.exe', 'C:\\test-WDATP-test\\invoice.exe');Start-Process 'C:\\test-WDATP-test\\invoice.exe'
```

#### 2.1.1.2 MDE for Linux / Mac
- eicar 検体ファイルでテストを行う
 M365 Onboarding でも記載されている方法。``curl`` で eicar を落として確認を行う。
 事前に ``mdatp health --field real_time_protection_enabled`` コマンドで有効化されているかを確認し、もし無効化しているままであれば以下コマンドを用いて有効化すること。

- mdatp で real-time-protection を有効化
```bash
mdatp config real-time-protection-statistics --value enabled
```
- eicar 検体ダウンロードによるアラートチェック
```bash
bash
curl -o ~/Downloads/eicar.com.txt https://secure.eicar.org/eicar.com
```

- PUA 保護 (potentially_unwanted_application）のチェック
 セキュリティ製品のテスト標準化団体 AMSTO （Anti-Malware Testing Standards Organization）がテスト用のファイルを提供している

https://www.amtso.org/feature-settings-check-potentially-unwanted-applications/

```
wget http://amtso.eicar.org/PotentiallyUnwanted.exe
```
検知は ``mdatp threat list`` で確認が可能
```
> mdatp threat list
Id: "efe79ea1-3db4-4d45-b3a8-59e992213e11"
Name: PUA:Win32/EICAR_Test_File
Type: "potentially_unwanted_application"
Detection time: Tue Dec 19 11:08:05 2023
Status: "quarantined"
```

#### 2.1.1.3 MDE for Android / iOS
Android : [Google の eicar アプリ](https://play.google.com/store/apps/details?id=com.montimage.eicar_virus)を用いる or [フィッシングサンプルサイト](https://smartscreentestratings2.net/)をクリックする
iOS : [フィッシングサンプルサイト](https://smartscreentestratings2.net/)をクリックする
参考: Microsoft Defender SmartScreen Demo Pages

https://demo.smartscreen.msft.net/

### 2.1.2 Microsoft Defender for Office365 (MDO)
※更新予定

### 2.1.3 Microsoft Defender for Identity (MDI)
※更新予定

### 2.1.4 Azure AD Identity Protection (AAD IDP)
公式 Docs **Identity Protection でのリスク検出のシミュレーション**にテスト方法が掲載されている。TOR ブラウザからのアクセスによる「匿名 IP アドレス」からのリスク検出のシナリオがお勧め。

https://learn.microsoft.com/ja-jp/azure/active-directory/identity-protection/howto-identity-protection-simulate-risk

#### 匿名 IP アドレス (テストが容易)
- TOR ブラウザ経由でアクセスする
- 検出が簡単なのでお勧め

#### 通常とは異なるサインイン プロパティ (テストが難しい)
未知の場所をシミュレートするには、テスト アカウントがサインイン元として以前に使用したことのない場所とデバイスからサインインする必要がある。公式 Docs の方法は以下だが、正直検出が難しい。
1. 日常とは異なるアクセス元のマシンを用意する（IPアドレスの環境などを変える必要がある）
2. 公式 Docs では新しいマシンを用いて、VPN アクセスでアクセスする
3. MFA で失敗させる

#### 特殊な移動 (テストが非常に難しい)
アルゴリズムでは、機械学習を使用して、既知のデバイスからの特殊な移動や、ディレクトリ内の他のユーザーによって使用される VPN からのサインインなどの誤検知が除去されており、ぶっちゃけ特殊な移動の状態をシミュレートすることが難しい。公式サイトの手順は以下だが、正直この方法で検出出来た経験が無いので、こだわらずにテストすることを推奨する。

1. 標準的なブラウザーを使用して、https://myapps.microsoft.com に移動します。
2. 特殊な移動のリスク検出を生成するアカウントの資格情報を入力します。
3. ユーザーエージェントを変更します。 開発者ツール (F12) から Microsoft Edge のユーザー エージェントを変更できます。
4. IP アドレスを変更します。 VPN または Tor アドオンを使用するか、Azure 上に別のデータ センターの新しい仮想マシンを作成することで、IP アドレスを変更できます。
5. 前と同じ資格情報を使用し、前のサインインから数分以内に、https://myapps.microsoft.com にサインインします。

---
## 2.2 Azure Security サービス (Microsoft Defender for Cloud CWPP)
Microsoft Defender for Cloud から有効に出来る脅威検知サービス (CWPP) では、Microsoft Defender for Cloud の「セキュリティ警告」画面からサンプルアラートを作成することで、対象のサービスのサンプルアラートを生成することが可能。各種サービス側の動作確認にはならないが、検知後の運用チェック、通知テストの場合はシンプルな本方式がお勧め。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/1d92c950-0881-51a0-2619-916ba2db3445.png)

サービス側での動作確認などをチェックする方法については、公式の Docs や Blog などで紹介されているので、以下参考としていただきたい。

### 2.2.1 Microsoft Defender for SQL
Azure SQL VM (SQL Server on Windows VM) に対してのみ実行が可能。Microsoft Tech Community にて、BruthForce を実践できる ``Test-BruthForce`` スクリプトが紹介されている。

```powershell
Import-Module (Get-ChildItem -Path "$Env:ProgramFiles\Microsoft Monitoring Agent\Agent\Health Service State\Resources\" -File SqlAdvancedThreatProtectionShell.psm1 -Recurse).FullName ; Get-Command -Module SqlAdvancedThreatProtectionShell
```

![screenshot](https://techcommunity.microsoft.com/t5/image/serverpage/image-id/342016i0B375221E2B9B5B8/image-size/medium?v=v2&px=400)

https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/validating-alerts-on-microsoft-defender-for-sql-on-machines/ba-p/3070714


### 2.2.2 Microsoft Defender for Storage
最近実装された Defender for Storage AntiMalware Scanning を有効化して、EICAR の検体をアップロードするのが手っ取り早い。公式 Docs では [TOR ブラウザ](https://www.torproject.org/download/)を用いての　SAS URL からのアクセスが紹介されている。

https://learn.microsoft.com/en-us/azure/defender-for-cloud/alert-validation#simulate-alerts-for-storage-atp-advanced-threat-protection


### 2.2.3 Microsoft Defender for App Services
AppServices で立ち上がったデフォルトドメインに対して、テスト用の専用 URI を送ることでサンプルアラートが生成される。

```
https://<website name>.azurewebsites.net/This_Will_Generate_ASC_Alert
```
詳細は以下 URL を参照のこと。

https://learn.microsoft.com/en-us/azure/defender-for-cloud/alert-validation#simulate-alerts-for-app-service

### 2.2.4 Microsoft Defender for Containers
Microsoft Defender for Containers 導入によって、コントロールプレーン (Node)　側の脅威検知と、ワークロード (Pod) 側の脅威検知をテストする方法が紹介されている。詳細は以下ドキュメントを参照のこと。

https://learn.microsoft.com/en-us/azure/defender-for-cloud/alert-validation#simulate-control-plane-alerts-k8s_-prefix

#### 2.2.4.1 K8s ノード側の脅威検知テスト
kubectl で以下コマンドによって、サンプルアラート ``Microsoft Defender for Cloud test alert for K8S (not a threat)`` が約 30 分後に通知される。
```
kubectl get pods --namespace=asc-alerttest-662jfi039n
```

### 2.2.4.2 K8s Pod 側の脅威検知テスト
Ubuntu の Pod を立ち上げて、Pod 側にログインし、以下コマンドを打つ

```bash
./asc_alerttest_662jfi039n testing eicar pipe
```
詳細手順は以下 URL を参照のこと。

https://learn.microsoft.com/en-us/azure/defender-for-cloud/alert-validation#simulate-workload-alerts-k8snode_-prefix

### 2.2.5 Microsoft Defender for Resource Manager
以下に手順をまとめておきました。

https://qiita.com/hisnakad/items/185f3def0df44ea61f68

### 2.2.6 Microsoft Defender for Key Vault
Public アクセスありきの話になってしまうが、公式 Docs では [TOR ブラウザ](https://www.torproject.org/download/)からのアクセスによる方法が紹介されている。

https://learn.microsoft.com/en-us/azure/defender-for-cloud/alert-validation#validate-azure-key-vault-threat-detection

# 3. まとめ
Microsoft Security の実装時に、動作確認の方法を押さえておくことが重要になります。本記事がどなたかの参考になれば幸いです。

＊本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。