はじめに
この記事は、業務で Microsoft のセキュリティ製品を扱うセキュリティ初心者の私が、気になったことを検証してその結果をまとめた備忘録の位置づけです。
同じく Microsoft のセキュリティ製品に関わる方のヒントになればと思い、Qiita にも検証した内容を残したいと思います。
本記事には、間違いや曖昧な表現が含まれている可能性があります。
また、内容については、私が所属する組織とは一切関係なく、私個人の検証と結果になります。
間違いを見つけましたら、ぜひご指摘いただけますと幸いです。
想定読者
- Microsoft のセキュリティ製品を扱う人
- なんとなくセキュリティ製品の中身に興味がある人
この記事を読んだら分かること
- Microsoft Defender for Endpoint (MDE) の ネットワーク保護という機能が働くときの通信について
ネットワーク保護とは
Microsoft の公式ドキュメントを抜粋させていただきます。
ネットワーク保護は、悪意のあるサイトや疑わしいサイトへの接続を防ぐことで、特定のインターネット ベースのイベントからデバイスを保護するのに役立ちます。
ネットワーク保護は、特定のドメインまたはホスト名をブロックするために使用できる カスタム インジケーター と連携します。
やったこと
MDE のカスタム インジケーターに登録した URL へアクセスする際、どうやってそのアクセスをブロックしているのかを調べる。
そのためのツールとして、Wireshark というパケットキャプチャ ツールを使用した。
-
MDE にオンボードされたデバイスでアクセスするとブロックされるようになる
ではこの時、MDE はどうやって通信をブロックしているのか?
-
デバイスの通信時のパケットを Wireshark で比較してみる
通常時のアクセスでは 3-way handshake (SYN, SYN-ACK, ACK) が確立し、GET リクエストが開始されている。ブロック時のアクセスでは、3-way handshake (SYN, SYN-ACK, ACK) が確立した後、FIN によって接続を終了。
ネットワーク保護により、TCP の段階で通信を終わらせる(トランスポート層で接続を終了する)ことで、その先のアプリケーション層の HTTP リクエストがそもそも発生しないようになる。具体的には、以下の通り。(10.50.0.4 :クライアント 、222.158.205.72 インジケーターに登録した URL のサーバー)
Microsoft の公式ドキュメントでも、3-way handshake が完了した後に、アクセスをブロックすると記載がある。
3 方向ハンドシェイクが完了すると、ネットワーク保護によってサイトへのアクセスが許可またはブロックされます。
まとめ
ネットワーク保護では、通信の終了に TCP フラグの FIN が使用されていることが分かった。