Azure VM (Virtual Machine) 運用監視エージェントまとめ

# 1. はじめに
Azure 基盤を触っていると、いろんなところで仮想マシン (Virtual Machine) に Azure サービス側で監視するために必要となるエージェントを導入する必要が出てきます。様々なエージェントが出てきて混乱しがちなので、本投稿でまとめてみたいと思います。

# 2. Azure で用いるエージェントサマリー
以下、Azure VM に拡張できるエージェントのサマリーです。

| Agent 名称 | 拡張機能での表示名 |  Azure サービス  | 概要 |
| :---- | :---- | :---- | :---- |
|  Azure Monitor Agent | ``AzureMonitorWindowsAgent``<BR>``AzureMonitorLinuxAgent`` |  LogAnalytics ワークスペース<BR>Azure Monitor | イベント ログ/パフォーマンスなど  |
|  LogAnalytics Agent | ``MicrosoftMonitoringAgent`` | LogAnalytics ワークスペース | イベント ログ/IIS ログ/分析情報とソリューションなど  |
| [Dependency Agent<BR> (依存関係エージェント)](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/agent-dependency-windows) | ``DependencyAgentWindows``<BR>``DependencyAgentLinuxs`` | Azure Monitor | ネットワーク トラフィック データを収集し、ネットワーク マップのトラフィックの視覚化、ネットワーク強化の推奨事項などに用いる  |
|  [Windows Azure Diagnostics 拡張機能 (WAD)](https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/diagnostics-extension-overview)| Microsoft.Insight<BR>.VMDiagnosticsSettings | Azure Monitor | Windows / Linux の拡張イベントログ収集エージェント |
| [Microsoft マルウェア対策](https://learn.microsoft.com/ja-jp/azure/security/fundamentals/antimalware) | ``IaaSAntimalware`` | Azure VM (組み込み)<BR>LogAnalytics ワークスペース(通知) | マルウェア対策。ダウンロードファイルのウイルス除去がメイン。Windows 2008R2 のみ、Linux 未対応。|
| [ゲスト構成拡張機能(Azure Policy)](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/guest-configuration) | ``AzurePolicyforLinux``<BR>``AzurePolicyforWindows`` | Azure Policy ゲスト構成拡張機能 | Azure Policy の仮想マシン内の構成を監査するための拡張エージェント |
| [Network Watcher Agent](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/file-integrity-monitoring-overview) | ``networkWatcherAgent`` | 分析情報 | Azure ネットワークの監視に使用できる、ネットワークパフォーマンスの監視、診断、および分析サービス |
| [Microsoft Defener for Endpoint](https://www.microsoft.com/ja-jp/security/business/endpoint-security/microsoft-defender-endpoint) | ``MDE.Windows``<BR>``MDE.Linux`` | Microsoft Defender for Servers(P1/P2) | Microsodr Defender for Cloud / Defender for Servers Plan1/2で導入される EDR 保護エンジン |
| Azure Security Agent | ``AzureSecurityWindowsAgent``<BR>``AzureSecurityLinuxAgent`` | Microsoft Defender for Servers **P2** | Microsodr Defender for Cloud / Defender for Servers Plan2 で導入されるサーバ特有の攻撃を検知するセンサー |
| [Qualys Agent](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/deploy-vulnerability-assessment-vm) | ``WindowsAgent.AzureSecurityCenter``<BR>``LinuxAgent.AzureSecurityCenter`` | Microsoft Defender for Servers **P2** | Qualys 脆弱性スキャナー。Azure Security Center / Defender Endpoint の付加機能として利用が出来る。|
| [ファイルの整合性の監視 (FIM)](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/file-integrity-monitoring-overview) | ``ChangeTracking-Windows``<BR>``ChangeTracking-Linux`` | - Microsoft Defender for Servers **P2**<BR>- Azure Automation | Microsoft Defender for Cloud / Defender for Servers Plan2 で FIM (ファイルの整合性の監視) を行う場合に導入される。Azure Automation (AMA) の場合にも拡張機能として提供される。 |
| [SQL Server IaaS Agent 拡張機能 (SQLIaaSExtension) ](https://learn.microsoft.com/ja-jp/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management?view=azuresql&tabs=azure-powershell) | ``SqlIaasExtension`` | Microsoft SQL Server | MS SQL サーバーの管理を簡素化するための拡張エージェント。 |
| [Microsoft Defender for SQL 脅威検出](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/threat-detection-overview?toc=%2Fazure%2Fdefender-for-cloud%2Ftoc.json&view=azuresql) | ``AdvancedThreatProtection.Windows`` | Microsoft Defender for SQL | MS SQL サーバーに対する脅威を検出するための拡張エージェント。 |
| [Microsoft Defender for SQL 脆弱性管理](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/threat-detection-configure?toc=%2Fazure%2Fdefender-for-cloud%2Ftoc.json&view=azuresql) | ``VulnerabilityAssessment.Windows`` | Microsoft Defender for SQL | MS SQL サーバーに対する脆弱性を検出するための拡張エージェント。 |
| [トラステッド起動の仮想マシン](https://learn.microsoft.com/ja-jp/azure/virtual-machines/trusted-launch) | ``GuestAttestation`` | トラステッド起動の仮想マシン | Azure VM 作成時にセキュリティ VM としてセキュアブート、vTPM を有効化するためにトラステッド起動で作成した場合に用いられる |





# 3. Agent 概要
## 3.1 [Azure Monitor Agent 概要](https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/agents-overview)
- 2021.8 現在、最も新しいエージェント。
- Windows と Linux の両方のマシンに対応し、Log Analytics エージェントおよび Telegraf エージェントを置き換える。
- これまでは、仮想マシンに Log Analytics エージェントと Dependency Agent の双方を必要としていたが、Azure Monitor Agentで統合される。
- 拡張機能が使える
    - 仮想マシンのゲスト オペレーティング システムからコア パフォーマンス メトリックの分析を可能にする、事前に定義された傾向を示すパフォーマンス グラフとブック機能。
    - 各仮想マシンで実行されているプロセスと、他のマシンや外部ソースと相互接続されたコンポーネントを表示する依存関係マップ機能。
- [データ収集ルール (DCR)](https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/data-collection-rule-overview) を用いて、イベントをフィルターして転送をかけることができる。
    - フィルタルールは X-Path フィルタで定義を行う。
    - 詳細は「[カスタム XPath クエリを使用してデータ収集を制限する](https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/data-collection-rule-azure-monitor-agent#limit-data-collection-with-custom-xpath-queries)」を参照
- 後述の LogAnalytics エージェントの後継版となり、ユーザー側での移行先として検討するのが良さそう。

## 3.2 [LogAnalytics Agent 概要](https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/log-analytics-agent)
- 2021.8 現在、最も汎用的なエージェント。
    - **2024.8.31 サポート終了予定**
- Azure、他のクラウドプロバイダー、オンプレミスの仮想マシンに導入が出来る。
- データは、Log Analytics ワークスペースに送信される。
- 歴史上、利用される OS に依って名前が変わっている。
    - MMA (Microsoft Monitoring Agent)
        - Windows 版の LogAnalytics Agent のことを指す。
    - OMS (Operations Management Suite Agent)
        - Linux 版の LogAnalytics Agent のことを指す。

## 3.3 [Dependency Agent 概要](https://learn.microsoft.com/ja-jp/azure/azure-monitor/vm/vminsights-dependency-agent-maintenance)
- VM Insight 機能の可視化画面で利用される。
- 参考情報
    - [Windows 用 Azure Monitor Dependency 仮想マシン拡張機能](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/agent-dependency-windows)
    - [Linux 用 Azure Monitor Dependency 仮想マシン拡張機能](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/agent-dependency-linux)
- VM の推奨事項には「ネットワークトラフィックデータ収集エージェント」として表示される。
    - ![DependencyAgent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/96bc3ddb-5da7-ce85-5b5a-7a8ec54bb541.png)

## 3.4 [Windows Azure Diagnostics 拡張機能 (WAD)](https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/diagnostics-extension-overview)
- Azure VM のみ有効
    - オンプレミス、他社クラウドに Agent 導入は出来ない。
- 診断設定のログをストレージサービスにアーカイブするための機能。
- LogAnalytics ワークスペースでの監視ではなく、長期保管型 / 安価なストレージにメトリクスやログを保管する用途に用いられる。
    - 参考リンク：[Table Storageに溜まり続けるWindowsイベントログのクリーニング](https://qiita.com/qNeumann/items/59e200ec07d412d965cc)
- Azure Application Insights や Event Hubs に送り、3rd Party からの監視なども行える。

## 3.5 [Microsoft AntiMalware 機能](https://docs.microsoft.com/ja-jp/azure/security/fundamentals/antimalware)
- Microsoft が提供するアンチマルウェア機能。いわゆるウイルス対策 = Windows Defender の有効化機能。
    - Windows Defender が標準同梱されている Windows Server では、機能が有効化されるだけとなっている。
    - Azure 向けでは **Windows Server 2008 R2 以降**で利用が可能。
    - **Linux は未サポート。**
        - Linux のアンチマルウェア保護については、Microsoft Defender for Endpoint (MDE) にて提供される。
    - 拡張機能で有効にすると、サービスで実行される。
    - イベントは Windows Event内に記録される
        - 詳細は「[イベントをMicrosoft Defender ウイルス対策するには](https://docs.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/troubleshoot-microsoft-defender-antivirus?view=o365-worldwide#to-view-a-microsoft-defender-antivirus-event)」に記載がある
    - MDE (Microsoft Defender for Endpoint) を導入している場合は、Microsoft 365 Defender 側にアラートが上がるため、運用監視は EDR/EPP 双方で行うことが推奨される。



## 3.6 [ゲスト構成拡張機能の概要](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/guest-configuration)
- ゲスト構成拡張機能は、仮想マシン内で監査および構成操作を実行する Azure Policy のコンポーネント。
- 拡張機能を導入すると、Windows / Linux OS のセキュリティベースライン定義ポリシーで確認が出来るようになる。
- サポートされているクライアントが定義されている。[詳細はこちら](https://learn.microsoft.com/ja-jp/azure/governance/machine-configuration/overview#supported-client-types)
- [ネットワーク要件](https://learn.microsoft.com/ja-jp/azure/governance/machine-configuration/overview#network-requirements)



## 3.7 [Azure Network Watch Agent 概要](https://learn.microsoft.com/ja-jp/azure/virtual-machines/extensions/network-watcher-windows)
- Azure ネットワークの監視に使用できるネットワーク パフォーマンスの監視、診断、および分析サービス
- Network Watcher Agent 仮想マシン拡張機能は、オンデマンドでネットワーク トラフィックをキャプチャするためと、Azure 仮想マシンに関するその他の高度な機能を使用する
- Azure Monitor Agent を用いている場合は以下拡張機能が導入される。
    - ``networkWatcherAgent``

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/c9e04451-79d8-2bf8-89a7-45309fd37472.png)

## 3.8 [Microsoft Defender for Endpoint 概要](https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/microsoft-defender-endpoint?view=o365-worldwide)
- 旧 Windows Defender for ATP。Microsoft が提供するエンドポイント保護ソリューション EDR。
- Azure 環境では、Defender for Servers を用いることで、M365 E5 ソリューションで提供される Microsoft Defender for Endpoint (MDE) と同じものがデプロイされる。以下拡張機能が導入される。
    - ``MDE.Windows``
    - ``MDE.Linux``
- EDR および Windows Defender のマルウェア保護については、Micorosoft 365 Defender ポータル側で出力される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/a2e19471-c13e-b063-3d28-2eaf338a7d4c.png)

https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/microsoft-defender-endpoint?view=o365-worldwide

## 3.9 Azure Security Agent 概要
- Microsoft Defender for Server Plan 2 で、Azure Monitor Agent を用いる場合に導入されるエージェント。
- 以下拡張機能が導入される。
    - ``AzureWindowsAgent``
- 旧 Log Analytics Agent (OMS Agent) で検知していたサーバ系脅威検知に対応する。
    - Windows （MMA）の場合 → https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/alerts-reference#alerts-windows
    - Linux （OMS Agent）の場合 → https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/alerts-reference#alerts-linux

## 3.10 [Qualys Agent 概要](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/deploy-vulnerability-assessment-vm)
- Microsoft Defender for Cloud / Defender for Servers Plan 2 に含まれている脆弱性スキャナー
- Microsoft Defender for Endpoint でも脆弱性スキャナー機能があるが、こちらは Linux も対応する
    - Qualys Agent の対応OSには細かな縛りがあるので注意
- 条件として Internet への Outbound 通信が必要

## 3.11 [ファイルの整合性の監視 (FIM) 概要](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/file-integrity-monitoring-overview)
- Microsoft Defender for Servers Plan 2 で使えるサーバー向けのファイル整合性監視機能。
- ユースケースとして以下のような攻撃時に行われる重要なファイルやレジストリの変更を検知する。
    - ファイルとレジストリ キーの作成または削除
    - ファイルの変更 (ファイル サイズ、アクセス制御リスト、およびコンテンツのハッシュの変更)
    - レジストリの変更 (サイズ、アクセス制御リスト、種類、コンテンツの変更)
- Azure Monitor Agent を用いている場合は以下拡張機能が導入される。
    - ``ChangeTracking-Windows``
    - ``ChangeTracking-Linux``

https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/file-integrity-monitoring-overview

## 3.12 [SQL Server IaaS Agent 拡張機能 (SQLIaaSExtension)](https://learn.microsoft.com/ja-jp/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management?view=azuresql&tabs=azure-powershell#feature-benefits)
- SQL サーバーの構成を Azure Portal から設定するための拡張エージェント。
    - Azure ポータルから Microsoft SQL の機能を有効化・無効化することが出来るようになる。
    - 主だった機能は[公式 Docs を参照](https://learn.microsoft.com/ja-jp/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management?view=azuresql&tabs=azure-powershell#feature-benefits)
        - SQL サーバーの自動バックアップ
        - Windows / SQL サーバーの重要なセキュリティ更新プログラムの更新
        - SQL Server に Azure Key Vault を導入
        - tempdb の構成
        - SQL ベストプラクティス評価 
- Azure VM (Microsoft SQL Server) に対して、以下エージェントが導入される。
    - ``SQLIaaSExtension``

## 3.13 [Microsoft Defender for SQL 拡張機能 (脅威検出)](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/threat-detection-overview?toc=%2Fazure%2Fdefender-for-cloud%2Ftoc.json&view=azuresql)
- Azure VM / SQL サーバーに対する脅威を検出するための拡張エージェント。
- SQL サーバーに対する脅威検出のシナリオは[公式 Docs を参照](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/defender-for-sql-introduction)
    - 潜在的な SQL インジェクション攻撃
        - アプリケーションによって、データベースにエラーのある SQL ステートメントが生成されたときに検出される脆弱性など
    - 異常なデータベース アクセスとクエリ パターン
        - さまざまな資格情報でのサインイン試行の失敗が異常に多い場合 (ブルートフォース試行) など
    - 不審なデータベース アクティビティ
        - 正当なユーザーが、クリプトマイニング C&C サーバーとの通信を行う侵害されたコンピューターから SQL Server にアクセスするなど
- Azure VM (Microsoft SQL Server) に対して、以下エージェントが導入される。
    - ``AdvancedThreatProtection.Windows``

## 3.14 [Microsoft Defender for SQL 拡張機能 (脆弱性評価)](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/sql-azure-vulnerability-assessment-overview#what-is-sql-vulnerability-assessment)
- IaaS 環境の SQL サーバーの脆弱性情報を検出するための拡張エージェント。
- SQL サーバーの脆弱性評価については、以下を参考。

> 規則は Microsoft のベスト プラクティスに基づき、データベースとその貴重なデータにとって最も大きなリスクとなるセキュリティの問題に注目します。 データベース レベルの問題と、サーバーのファイアウォール設定やサーバー レベルの権限などのサーバー レベルのセキュリティ問題がカバーされます。
> スキャンの結果には、各々の問題を解決するために実践できる手順が含まれ、カスタマイズした修復スクリプトが適宜提供されます。 次に対する許容されるベースラインを設定することにより、ご利用環境に合わせて評価レポートをカスタマイズできます。

- Azure VM (Microsoft SQL Server) に対して、以下エージェントが導入される。
    - ``VulnerabilityAssessment.Windows``

https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/sql-azure-vulnerability-assessment-overview#what-is-sql-vulnerability-assessment

# まとめ
Azure の仮想マシンには様々なエージェントが提供されていますが、一概にすべて有効にするものではなく、用途や目的を考慮して必要なエージェントを取捨選択する必要があるのではないかと思いました。運用上では、LogAnalytics エージェント（数年後には Azure Monitor エージェントへの切り替えになりますが）前提ですが、Dependency Agent や WAD については要件に基づいて選定が必要になるのではと思います。
本記事が Azure Security にご興味ある方々のためになれば幸いです。

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