Azure Virtual Desktop (AVD) (旧 Windows Virtual Desktop) のログを Azure Log Analytics / Azure Sentinel に格納する！

# 本記事について

今、注目を浴びている [Azure Virtual Desktop (AVD)](https://docs.microsoft.com/ja-jp/azure/virtual-desktop/overview)。簡単に使い始められる Desktop as a Service (DaaS) ですが、一方でセキュリティの実装については、色々なほかの Azure のソリューションを上手に使っていく必要があります。本記事では、その中でもログにフォーカスしてどのように取得して、どのように検索・可視化ができるか、ご紹介していきます。

なお、より広範囲に AVD をどうセキュアに構築するかについては、2020年時点での情報ですが日経XTechさんから[記事](https://special.nikkeibp.co.jp/atclh/NXT/21/microsoft0226/)を出させていただきましたので、合わせてご覧いただければ幸いです。

# Azure Virtual Desktop について

Azure のサービスとして提供される、Desktop as a Service (DaaS) です。ゲートウェイやセッションブローカー、ノードの管理機能などが Azure のマネージドサービスとして提供され、ユーザーは主に実際の仮想デスクトップが動くサーバーのみを管理する形になります。仮想デスクトップ (VDI) を簡単に展開でき、すぐにデスクトップやアプリケーションが配信できます。また、Windows 10 をマルチセッションで利用できるという、今までになかった機能も利用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/f98e6143-fabe-d49e-69f5-daea2aa6fa2a.png)

## （補足）Azure Virtual Desktop のセキュリティについて

AVD は Azure 上で展開されるため、Azure の各種セキュリティ機能を容易に活用することができます。一方でその実装はユーザーの責任範囲のため、ユーザー側がソリューションを選択する必要があります。いくつか利用できる代表的な機能をご紹介します。

### Azure Active Directory
AVD では、利用者がアクセスする際に Azure Active Directory で認証する必要があります。Azure AD では、[MFA (多要素認証)](https://docs.microsoft.com/ja-jp/azure/virtual-desktop/set-up-mfa) や[なりすまし検知 (Identity Protection)](https://docs.microsoft.com/ja-jp/azure/active-directory/identity-protection/overview-identity-protection) など高度なセキュリティ機能を利用することができます。


### Azure Firewall

サブネットや仮想マシンの NIC につける NSG (Network Security Group) に加え、FQDN でのフィルタリングも可能なマネージドな Firewall as a Service である、[Azure Firewall] (https://docs.microsoft.com/ja-jp/azure/firewall/overview) を構成に組み込むことができます。

### Microsoft Defender for Endpoint

Windows 10 multi-session にも対応した強力な EDR です。Microsoft Defender アンチウイルスのアラート管理も同時に行うことができます。[ガートナー社の 2021年の Endpoint Protection Platform でもリーダーに位置づけられています](https://www.microsoft.com/security/blog/2021/05/11/gartner-names-microsoft-a-leader-in-the-2021-endpoint-protection-platforms-magic-quadrant/)。

また、AVD環境への Defender for Endpoint のデプロイについては、[こちらの公式ドキュメント](https://docs.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/onboard-windows-10-multi-session-device?view=o365-worldwide)をご覧ください。

### Microsoft Endpoint Manager

[Microsoft Endpoint Manager](https://docs.microsoft.com/ja-jp/mem/endpoint-manager-overview) は、Microsoft Intune、Configuration Manager、Desktop Analytics、共同管理、Windows Autopilot などを組み合わせた統合エンドポイント管理ツールです。[AVD上の Windows 10 multi-session OS も管理できるようになり](https://docs.microsoft.com/ja-jp/mem/intune/fundamentals/azure-virtual-desktop-multi-session)、OSのポリシー管理や AV・EDRの管理、アプリケーションの管理などを行うことができます。

全体像については、[こちら](https://special.nikkeibp.co.jp/atclh/NXT/21/microsoft0226/)もご覧ください。

また、[こちらの事例記事](https://customers.microsoft.com/en-us/story/1390719800706926971-microsoft-dsr-partner-professional-services-virtual-desktop)では、マイクロソフト自体が AVD を Microsoft Endpoint Manager や Microsoft Defender for Endpoint を使って保護していることが紹介されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/1e2d66b2-9150-a086-b8cc-f65ed744bc9c.png)


# Azure Virtual Desktop のログ収集について

ここから本題に入ります。ほかの多くの Azure のサービスと同じく、Windows Virtual Desktop もまた、ログ収集・検索機能で Azure Log Analytics を利用しています。本記事では、どのようにログ収集を設定し、どのように活用できるか見ていきます。

## 1. Azure Log Analytics について

[Azure Log Analytics](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/log-analytics-agent) は、Azure のログ収集・検索基盤 as a Service です。マネージドサービスのため、基盤のインフラの管理が不要で、ログを送り付けるだけで簡単に検索や可視化を実行できます。また、[セキュリティも担保されており](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-security)、ログ改ざんを防ぐためにも有効なサービスです。

## 2. Azure Sentinel について

本記事でもうひとつご紹介したいのが、[Azure Sentinel](https://docs.microsoft.com/ja-jp/azure/sentinel/overview) です。Azure Sentinel は Log Analytics のアドオンとして、有効化するだけで簡単に利用することができる、SIEM as a Service で、相関分析やインシデント管理を行うことができます。AVD は、単にサーバーだけでなく、管理プレーンや Azure AD など、様々な過程でログが発生します。Azure Sentinel を活用すると、それらをまとめて分析することがありおすすめです。（AVD 環境含め、Azure 利用時の Sentinel へのログ収集については、[こちら](https://qiita.com/YoshiakiOi/items/87fad7e7bfef5056cd00) にまとめましたので、気になる方はご参照ください。）

# Azure Virtual Desktop のログ収集の設定

ここから、AVD のログ収集を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/40d45482-ec5d-0114-b4a2-319eee76c94e.png)


## 1. 管理プレーンのログの収集

管理プレーンのログは、ワークスペースやアプリケーショングループ、ホストプールの診断設定から Log Analytics ワークスペースへの送信設定が行えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/2cac57db-0a29-0999-e973-497a8f8a12d9.png)


## 2. AVD のデスクトップ用の仮想マシンからのログの設定について

こちらは、通常の仮想マシンのログ収集と同じく、Azure Portal の Log Analytics のメニューから接続することができます。もしエラーが出てしまう場合には、インストーラーによるエージェントのインストールをお試しください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/49568b4b-dd2e-7137-b92b-039e6d8f41df.png)

サーバーのログに対しては、具体的に何を取得するか設定をする必要があります。特に Windows に対しては、パフォーマンスカウンターとイベントログの設定を行います。詳細設定から、各項目を選択し、ログ名やカウンター名を入力して保存します。注意点としては、Windows のセキュリティログについては、ここでは選べなくなっており、Sentinel を有効化して Sentinel でセキュリティイベントの収集を設定するか、Azure Defender (Azure Defender for servers) のデータ収集設定が必要になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/294fd6e0-e66a-f4a2-a6e2-44c50eb540d4.png)

# 収集したログの分析

収集したログは、Log Analytics の検索でクエリをかけられるようになります。

## Azure Virtual Desktop の管理プレーンのログ

管理プレーンのログは、WVD**** という名前のテーブルに格納されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/44e560c8-80da-aafc-a21c-cf7db197e461.png)

このテーブルには、ユーザーの接続のログや、管理プレーンでの設定のログが含まれます。

たとえば、

```
WVDConnections
```

として、接続のログを調べると、接続先の仮想マシンの情報や接続のステータス、ユーザーや時間の情報を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/7e3238e8-ad9b-0e92-b5b1-ffa228a291eb.png)


また、管理者のオペレーションについては、下記のクエリで確認ができます。

```
WVDManagement
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/fcf36179-75a9-e83b-ebab-9609069df68a.png)

こちらでは、誰が、いつ、どのテナントに対して、どのようなコマンドを実行したかがわかります。

## Azure Monitor 

Azure Monitor のブックでは、テンプレのダッシュボードで AVD の稼働状況を可視化してくれます。接続のパフォーマンスやホストの正常性、ユーザーの利用状況などを簡単に確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/3506875a-19c0-9ebf-f5c7-f7aaa9889924.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/9f15e641-fee6-76da-783f-9be2c22d624e.png)


## Azure Sentinel での相関分析

ただログを検索しても面白くないので、Sentinel を使って、相関分析をしてみたいと思います。これは、Log Analytics ワークスペースにて Sentinel を有効化するだけで簡単に利用できるようになります。

Azure Sentinel の分析にて、Connection のイベントを登録するように設定しておきます。（実際の環境では、レアな接続などに限る必要がありますが、ここでは例としてすべての接続を登録します。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/de7a7e6b-fa9f-743d-4da7-0c6edaa4fae6.png)

後々の調査のために、マップエンティティの項目で、アカウントを UserName, ホストを SessionHostName, IPアドレスを ClientIPAddress と設定して、以下のクエリを埋め込んでおきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/9457cd63-c2a6-834b-1aac-ababcaf47408.png)

合わせて、Azure AD Identity Protection　と Microsoft Defender for Endpoint のアラートもインシデントに登録されるようにしておきます。
（仮想マシン側には、Microsoft Defender for Endpoint をあらかじめ設定しています。Microsoft Defender for Endpoint の無料トライアルとオンボードについては、 [Microsoft Defender ATPの無料トライアルを始めてバックドア設置を検知・自動修復してみた](https://blog.cloudnative.co.jp/1943/)という記事が詳細に手順をご紹介されていらっしゃいました。）
（また、Identity Protection と Sentinel の連携については、[こちらの記事](https://qiita.com/Shinya-Yamaguchi/items/7b4e30065857be797c82)が手順を詳細にご説明くださっています。）

### 分析シナリオ

Tor ブラウザから AVD のウェブクライアントを使って、AVD のデスクトップ仮想マシンに入り、そこで攻撃用の PowerShell を実行するという流れを実行してみたいと思います。（あくまでサンプルです。）

上記実行後、アラートが分析可能になるまで少し時間がかかるので待ちます。分析可能になったら、Sentinel のインシデントのダッシュボード画面で、Anonymous IP Address のインシデントをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/89607df1-bce3-7d53-92ef-61c62982fcfa.png)

すると、アラートとエンティティのアイコンが出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/478329e3-b2bd-d107-27b6-b53ddd7a748c.png)

ここで、ユーザーがログオンしているホストを検索すると、AVD でアクセスした VM も表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/7bfc7f9e-e7b6-ef3d-bd6d-ef133498703e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/f3295e12-7ced-a0cb-d140-5d6abdd70e45.png)

さらに、そのホストに関連するアラートを検索すると、さきほど設定した AVD への接続のアラートや、Microsoft Defender for Endpoint が転送してきたアラートも見ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/215c598e-1447-b000-5767-19f890609f44.png)

以上はあくまでサンプルシナリオですが、AVD 環境に関わるアラートを集約すると、アクティビティの可視化ができることがわかりました。

# 最後に

本記事では、AVD のログ（管理プレーンログと各仮想マシンのログ）の Log Analytics への送信と、Log Analytics・Sentinel での分析の流れを見ていきました。Azure Virtual Desktop は簡単に使い始められる DaaS ですが、その際のログ・セキュリティ管理の一助となれば幸いです。

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