#7 「Microsoft DefenderとMicrosoft SentinelでVPN端末を制御する」をやってみた

特集

デジタルワークプレースの“そこが知りたい”を
エンジニアが試して解説

この特集の記事一覧へ

IIJ プロフェッショナルサービス第一本部 ITサービスインテグレーション1部 3課

片貝 悠

執筆・監修者ページ/掲載記事:1件

IIJでは、デジタルワークプレース実現の様々なベストプラクティスを公開しています。中でもご要望の多いパターンを、エンジニアが実際に試してみる本企画。今回はゼロトラストの課題を解決する「Microsoft DefenderとMicrosoft SentinelでVPN端末を制御する」方法を取り上げます。IIJのエンジニアに、詳しい解説と失敗しないためのポイントも聞きました。

目次
  1. Microsoft Defenderの「プリインストールの強み」を活かしたい
  2. 実験の準備
  3. 設定してみる
  4. 動作を確認
  5. まとめと解説

Microsoft Defenderの「プリインストールの強み」を活かしたい

今回やってみるのは「Microsoft DefenderとMicrosoft SentinelでVPN端末を制御する」ですね。これはどうして思いついたんですか?

エンドポイント製品には様々な種類がありますが、Windows端末にプリインストールされている「Microsoft Defender」に着目しました。
デフォルトで入っているということでWindows端末との親和性が高いのですが、ウイルス検知・駆除以外に使い道がないかな、と探り始めたのが発端です。

なるほど、他の使い道は見つかりましたか?

はい、「Microsoft Defender for Endpoint」というMicrosoft社が提供しているクラウドサービスと組み合わせることで、ウイルス検知だけではなく、多くの端末のログを収集できることが分かりました。

収集したログはどのようなことに使えるのでしょうか?

Defender for Endpointで収集したログを検索し、特定の条件にマッチした事象をアラートとして検知させます。
そのアラートを、あらかじめ指定したロジックで自動処理してくれる「Microsoft Sentinel」というサービスと連携させます。これで、事象発生から処理まで自動的に行ってくれる仕組みができます。
その仕組みを、IIJが提供するVPN「IIJフレックスモビリティサービス/ZTNA」(以下、フレックスモビリティ)に連携させ、VPNトンネルを制御させることができます。

今回は、端末にUSBメモリを差し込んだ時に、VPNを遮断させる実験をしてみました。

実験の準備

今回は、以下のサービス/コンポーネントを利用します。

  • Defender:端末にプリインストールされたソフトウェア
  • Defender for Endpoint:端末のDefenderを通じて各種ログの転送・制御を実施
  • Microsoft Sentinel:Defender for Endpointが取得したログ、アラートを分析
  • Azure Logic Apps:Defender for Endpoint経由で端末へ制御命令を発行
  • フレックスモビリティ:端末のVPN接続を実施

すでに以下が終わっていることを前提とします。

  • Defender for Endpointのライセンス取得
  • Microsoft Sentinelのデプロイ
  • フレックスモビリティのVPNクライアント(以下、Mobilityクライアント)を通じたVPN接続

設定してみる

端末にUSBメモリを差し込んだ時にDefenderで検知させ、Defender for EndpointとMicrosoft Sentinelを通じて解析します。解析の結果を受けて、MobilityクライアントでVPNを遮断する設定をします。

全体の流れ

① Defender for Endpointに端末を登録
② Defender for EndpointとMicrosoft Sentinelを連携
③ Microsoft Sentinelでクエリを作成し、アラートを検知させる
④ アラートをもとに、端末に対して制御命令を発行
⑤制御命令により書き込まれたレジストリ値を、Mobilityクライアントが検知し、通信制御を実施

設定の詳細

① Defender for Endpointに端末を登録
端末を登録することを「オンボード」と呼びます。この操作でDefender for Endpointと端末のDefenderが連携し、端末からログを収集できるようになります。
オンボードにはいくつか方法がありますが、今回はオンボード用バッチを適用する手法で登録します。正常に登録が完了すると、「デバイスのインベントリ」に登録した端末情報が確認できます。

※ バッチの詳細は、Microsoft社の「デバイスにオンボードして、Defender for Endpoint 機能 を構成します」を参照ください。

図1:デバイスのインベントリの確認画面

(クリックすると拡大表示します)

② Defender for EndpointとMicrosoft Sentinelを連携
Microsoft Sentinelの管理画面からDefender for Endpointで収集した情報を分析できるように設定します。

まず「データコネクタ」の「Microsoft 365 Defender(プレビュー)」を選択します。

図2:Microsoft Sentinel管理画面

(クリックすると拡大表示します)

次に「インシデントとアラートを接続する」ボタンをクリックし、機能を有効化します。

図3:Microsoft 365 Defender(プレビュー)画面

(クリックすると拡大表示します)

③ Microsoft Sentinelでクエリを作成し、アラートを検知させる
Microsoft Sentinel上でアラートを検知させるクエリを作成します。クエリによって、端末から収集した各種ログの検知ルールを自在に作ることができます。
クエリは1分間ごとに実行できる「NRTクエリ」という機能で実装します。

図4:Microsoft SentinelのNRTクエリ作成画面

(クリックすると拡大表示します)

④ アラートをもとに、端末に対して制御命令を発行
Live Response(Defender for Endpointの機能)を利用して、端末へ制御命令を発行させるために、「Azure Logic Apps」を用います。
「Azure Logic Apps」は汎用性のあるサービスですが、ここではMicrosoft Sentinelの機能として利用します。Live Responseの制御命令が成功すると、端末内にレジストリ値を書き込みます。

図5:Azure Logic Apps画面

(クリックすると拡大表示します)

⑤ 制御命令により書き込まれたレジストリ値を、Mobilityクライアントが検知し、通信制御を実施
Mobilityクライアントで、このレジストリ値を参照し、制御するための設定を行います。

図6:フレックスモビリティ管理画面

これで設定は完了です。

動作を確認

VPNが接続された端末に、USBメモリを挿してみます。
図7のように、USBを挿入したことをDefender for Endpointを経由してMicrosoft Sentinelが検知。Logic Appsを通じて端末にレジストリ値を書き込む。その値をMobilityクライアントで検知し、遮断することを確認しました。

図7:動作を確認

まとめと解説

端末の状態を検知して、動的にアクセス制御ができるんですね。

そうなんです。今回はUSBメモリで試してみましたが、Microsoft Sentinelのクエリ検索は非常に多彩で、様々な条件での検知が可能です。クエリの書き方によってはもっと細かな条件での検知もできます。
今後は、Defenderファイアウォールの状態検知を試そうと思っています。例えば、条件に合致した場合はVPNを遮断することも考えられます。ぜひ、皆さんも機会があれば試してみてください。
この仕組みを応用し、今後はセキュリティ機能との連動を考えています。状態に応じた動的な制御を実現させることで、お客様の細やかなニーズに応えていきたいと考えています。