何をするのか
Microsoft Defender for Endpoint(以下MDE) を利用して、WindowsマシンがどのWi-Fiネットワークに接続したのかを確認してみたいと思います。
前提条件
- Microsoft Defender for Endpoint P2ライセンス
- Windows10以降
KQLを作成して実行する
以下のようなKQLを作成します。
DeviceNetworkInfo
| where Timestamp > ago (30d)
| where NetworkAdapterStatus contains "Up"
| extend NetworkName = tostring(parse_json(ConnectedNetworks)[0].Name)
| extend Description = tostring(parse_json(ConnectedNetworks)[0].Description)
| extend IsConnectedToInternet = tostring(parse_json(ConnectedNetworks)[0].IsConnectedToInternet)
| extend Category = tostring(parse_json(ConnectedNetworks)[0].Category)
| where NetworkAdapterType == "Wireless80211"
| project Timestamp, DeviceName, NetworkAdapterStatus, NetworkName, Description, IsConnectedToInternet, Category
以下のような結果が表示されます。
SSIDそのままだなとか、PublicとかPrivate設定でそのネットワーク設定しているんだなとかが判別できます。
特定のネットワークに接続されたかを確認する
例としてスターバックスWi-Fiに接続されたかを確認するKQLに変更してみます。
NetworkNameで、見つけ出したいSSIDを指定します。
DeviceNetworkInfo
| where Timestamp > ago (30d)
| where NetworkAdapterStatus contains "Up"
| extend NetworkName = tostring(parse_json(ConnectedNetworks)[0].Name)
| extend Description = tostring(parse_json(ConnectedNetworks)[0].Description)
| extend IsConnectedToInternet = tostring(parse_json(ConnectedNetworks)[0].IsConnectedToInternet)
| extend Category = tostring(parse_json(ConnectedNetworks)[0].Category)
| where NetworkAdapterType == "Wireless80211"
| where NetworkName contains "at_STARBUCKS_Wi2"
| project Timestamp, DeviceName, NetworkAdapterStatus, NetworkName, Description, IsConnectedToInternet, Category
まとめ
MDEを利用して、公衆Wi-Fiに接続したことがあるかなどを確認することができます。
ただし、MDEで検索できるログは30日となっているので、それ以上を検索したい場合には、SIEMにログを飛ばしそちらで検索をするようにしてください。
といっても、公衆Wi-Fiをすべて網羅して調べるのは、相当な労力が必要なので別なソリューションで公衆Wi-Fiに接続された場合の対応を検討して頂ければと思います。
接続しているSSIDのセキュリティも取得できるといいのですが、調べた感じではWEPやWPA2等のデータ取得はできなさそうでした。
特定のSSIDに接続している人がいるか調べたい場合にMDEでの検索の仕方もあるという参考になれば幸いです。