こんにちは、ひろかずです
- Microsoft Defender for Endpoint(以下、MDE)でブロックモードがGAされて暫く経ちました。
- 今回は、MDEにインジケータとして登録したIPアドレスへの接続を遮断する場合に、意外と見落としそうなことに気づいたので一筆書きます。
tl;dr的な何か
- インジケータの登録とMDEブロックモードに加えて、Windows10デバイス上でネットワーク保護を有効化する必要がある
- ネットワーク保護が対応しているプロトコルはTCPのみ
- インジケータに登録したIPアドレスへのUDP通信は、検出はされるがブロックされない(ネットワーク保護の仕様通りの動作)
参考ドキュメント
ざっくり構成
工程
- はじめに
- 設定の確認
- 接続先環境の用意
- 動作確認
- おわりに
前提条件
- Windows 10 Enterprise E5のライセンスを必要な数量保有していること
- Microsoft Defender Security Cetnerのテナントを構成済みであること
- Microsoft Defender Security Cetnerへのアクセスと必要な権限を保有していること
- MDEをオンボードしたWindows 10 Enterpriseが動作するPCを用意していること
- AWSアカウントと操作可能なEC2を用意可能であること
0.はじめに
- MDEのブロックモードやネットワーク保護が対応しているプラットフォームは以下から確認できます
- [Microsoft Defender for Endpoint と Microsoft Cloud App Security の統合]
- 対応していないプラットフォームについては、機能が提供されるのを待ちましょう
- [ネットワーク保護を有効にする] を参照して、ネットワーク保護を構成します
- [IP および URL/ドメインのインジケーターを作成] を参照して、接続を遮断したいIPアドレスを登録します
- リンク先に記載されている必要事項も確認すること
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を構成した方が良さそうです
- 仕様を把握した上で、有効に活用していきたいですね
今日はここまでです。お疲れ様でした。