ZerologonがMicrosoft Defender for Identityによって検出されるようになりました

このMicrosoft Defender for Identityアラートを使用すると、次のことが識別できます。

  • なりすましを試みたデバイス
  • ドメインコントローラー
  • 対象となる資産
  • なりすましの試みが成功したかどうか

なお、 Microsoft 365 Defenderは、攻撃フローの因果関係、MITRE ATT&CKフレームワーク、機械学習モデルの知識に基づいたさまざまな相関ロジックを組み合わせて、Microsoft Defender for EndpointからのシグナルとMicrosoft Defender for IdentityからのZero Logon アラートをすばやく評価します。

具体的には、Microsoft 365 Defenderの高度なハンティングクエリは、NetLogonエクスプロイトを起動した疑いのあるソースデバイスからプロセスとネットワーク接続の詳細を識別します。

※ハンティングクエリのKusuto言語はデータを処理し、その処理の結果を返すSQLとよく似たクエリです。

https://docs.microsoft.com/ja-jp/azure/data-explorer/kusto/query/

まず、Microsoft Defender forIdentityアラートから最近のNetlogonエクスプロイトの試みに関連する詳細を収集する。これは、2番目のクエリのAlertIdを設定するのに役立ちます。

// Find all Netlogon exploit attempt alerts containing source devices
let queryWindow = 3d;
AlertInfo
| where Timestamp > ago(queryWindow)
| where ServiceSource == "Azure ATP"
| where Title == "Suspected Netlogon privilege elevation attempt (CVE-2020-1472 exploitation)"
| join (AlertEvidence
| where Timestamp > ago(queryWindow)
| where EntityType == "Machine"
| where EvidenceDirection == "Source"
| where isnotempty(DeviceId)
) on AlertId
| summarize by AlertId, DeviceId, Timestamp

次に、前のクエリの1つのAlertIdを次のクエリのNLAlertIdに入力して、エクスプロイトを起動した可能性のあるプロセスと、ドメインコントローラーへのネットワーク接続を探します。

// Find potential endpoint Netlogon exploit evidence from AlertId
let NLAlertId = "insert alert ID here";
let lookAhead = 1m;
let lookBehind = 6m;
let NLEvidence = AlertEvidence
| where AlertId == NLAlertId
| where EntityType == "Machine"
| where EvidenceDirection == "Source"
| where isnotempty(DeviceId)
| summarize Timestamp=arg_min(Timestamp, *) by DeviceId;
let sourceMachine = NLEvidence | distinct DeviceId;
let alertTime = todatetime(toscalar(ZLEvidence | distinct Timestamp));
DeviceNetworkEvents
| where Timestamp between ((alertTime - lookBehind) .. (alertTime + lookAhead))
| where DeviceId in (sourceMachine)
| where RemotePort == 135 or RemotePort between (49670 .. 49680)
| summarize (Timestamp, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountSid)=arg_min(ReportId, Timestamp, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountSid), TargetDevicePorts=make_set(RemotePort) by DeviceId, DeviceName, RemoteIP, RemoteUrl
| project-rename SourceComputerName=DeviceName, SourceDeviceId=DeviceId, TargetDeviceIP=RemoteIP, TargetComputerName=RemoteUrl

クエリは、次のような結果を返します。

SourceDeviceId
SourceComputerName CLIENT.test.local
TargetDeviceIP 10.0.0.1
TargetDevicePorts [135,49670]
TargetComputerName DC1.test.local
Timestamp 2020-09-21 17:02:41
InitiatingProcessFileName python.exe
InitiatingProcessCommandLine python.exe "C:¥Users¥CLIENT1¥Documents¥zerologon_tester.py"
InitiatingProcessAccountSid

Microsoft Defender for EndpointのデータとMicrosoftDefender for Identityアラートを結び付けることで、エクスプロイトの起動が疑われるデバイスで何が起こったのかをより明確に把握できます。

November 30, 2020
Zerologon is now detected by Microsoft Defender for Identity
https://www.microsoft.com/security/blog/2020/11/30/zerologon-is-now-detected-by-microsoft-defender-for-identity/

投稿者: 二本松 哲也

SPbD:Security&Privacy by Design Founder ー OWASP Member ー ITは人々の生活をあらゆる面でより良い方向に変化させること ー 競争原理から共創原理へ