Microsoft Defender for Endpointでインジケータとして登録したIPアドレスへの通信を遮断する

こんにちは、ひろかずです

  • Microsoft Defender for Endpoint(以下、MDE)でブロックモードがGAされて暫く経ちました。
  • 今回は、MDEにインジケータとして登録したIPアドレスへの接続を遮断する場合に、意外と見落としそうなことに気づいたので一筆書きます。

tl;dr的な何か

  • インジケータの登録とMDEブロックモードに加えて、Windows10デバイス上でネットワーク保護を有効化する必要がある
  • ネットワーク保護が対応しているプロトコルはTCPのみ
  • インジケータに登録したIPアドレスへのUDP通信は、検出はされるがブロックされない(ネットワーク保護の仕様通りの動作)

参考ドキュメント

ざっくり構成

工程

  1. はじめに
  2. 設定の確認
  3. 接続先環境の用意
  4. 動作確認
  5. おわりに

前提条件

  • Windows 10 Enterprise E5のライセンスを必要な数量保有していること
  • Microsoft Defender Security Cetnerのテナントを構成済みであること
  • Microsoft Defender Security Cetnerへのアクセスと必要な権限を保有していること
  • MDEをオンボードしたWindows 10 Enterpriseが動作するPCを用意していること
  • AWSアカウントと操作可能なEC2を用意可能であること

0.はじめに

1. 設定の確認

1-1. Microsoft Defender Security Center

  • [Settings] > [Advanced features]を選択し、[Enable EDR in block mode]と[Custom network indicators]が有効であることを確認

  • [Settings] > [Indicators] > [IP address] を選択し、検出させたいIPアドレスが登録されていることを確認

  • 今回はこのように登録しています

  • IPアドレス登録後、暫く時間をおく必要がありそうです
    • 細かく計測していませんが、30分−1時間は置いた方がよさそう

1-2. Windows 10 PC

  • Powershellを用いて、以下コマンドの実行結果が 1 であることを確認
powershell get-mppreference | Select-String "EnableNetworkProtection"

  • Ubuntu 20.04 LTSが起動することの確認
    • Ubuntu 20.04 LTSを導入していない場合、Powershellを管理者モードで起動して、以下コマンドを実施
    • 再起動の後に、Microsoft StoreからUbuntu 20.04 LTSを検索してダウンロードすること
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

2. 接続先環境の用意

  • 今回は、接続先環境として、以下AMIからEC2を起動しました
    • amzn2-ami-hvm-2.0.20210427.0-x86_64-gp2
    • EC2の起動に関する細かい手順は割愛します
  • Public Subnetに配置して、EIPを付与しています
  • Security Groupは、以下ポートを送信元IPを制限する形で開放しています
    • インバウンド
    • メンテナンス用のssh(22)
    • TCP接続確認用(55440)
    • UDP接続確認用(55440)
    • アウトバウンド
    • 制限なし
  • 以下コマンドを実行して、nc(netcat)をインストールします
sudo yum install nc

3. 動作確認

3-1. EC2側作業

  • EC2にログインした後に、以下コマンドを実行して、通信を待ち受けます
    • Security Groupで解放した55440番ポートで待ち受けます
  • TCPの場合
$ nc -l -p 55440
  • UDPの場合
$ nc -u -l -p 55440

3-2. Windows 10 PC側作業

  • Ubuntu 20.04 LTSを起動し、EC2に向けてncで接続します
    • 接続後は好きな文字を入力します
    • 疎通する場合は、入力した文字がサーバー側に表示されます
  • TCPの場合
    • xxxはIPアドレスに適宜置き換えてください
    • 55440は、受付側が待ち受けているポート番号です
$ nc xxx.xxx.xxx.xxx 55440
  • UDPの場合
    • xxxはIPアドレスに適宜置き換えてください
    • 55440は、受付側が待ち受けているポート番号です
$ nc -u xxx.xxx.xxx.xxx 55440

3-3. 実際にやってみる

  • Windows 10 PCから以下のように操作します
    • UDP -> TCP の順で操作してます

  • TCPでの実行時に以下表示がなされます

  • EC2ではこのように表示されます
    • UDPでの接続は入力した文字列が表示され、TCPでは出力は表示されませんでした

3-4. Microsoft Defender Security Centerでどのように表示するか見てみる

  • インシデントの内容としては以下のように記録されていました
    • 時系列順に表示されています
    • ブロックしたTCP通信について、カスタムインジケータの登録表記 hirokazu-test-access が記録されていますね
    • ブロックしていないUDP通信もblockedと表記されるんですね

  • 対象Windows10 PCのタイムラインでは以下のように記録されていました
    • UDP通信は、タイムアウト前に返信すればEstablishになりますが、今回はそんなことしてないのでEstablishが出てないこと自体は問題ないでしょう

4.おわりに

  • MDEのカスタムインジケータに Block and Alert として登録したIPアドレスは、仕様通りTCP通信において遮断されることを確認しました
    • TCPプロトコルですので、SSHなども遮断されます
  • 表記にちょっと癖があるようです。癖を把握して使いたいですね
  • TCP,UDPともに特定IPへの接続を遮断したい場合は、Windows Firewallを構成した方が良さそうです
  • 仕様を把握した上で、有効に活用していきたいですね

今日はここまでです。お疲れ様でした。

コメントを残す

メールアドレスが公開されることはありません。