皆さん、
WindowsイベントログビューアにカスタムXML/Xpathフィルタを作成して、セキュリティログのビューから無数の「システム」ログオンを除外しようとしています。 XMLフィルタリングに関するTechnetブログ :の助けを借りて、私はこれまで何とか達成できました。
_<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4624)]]
and
*[EventData[Data[@Name='TargetUserSid'] and (Data!='S-1-5-18')]]
</Select>
</Query>
</QueryList>
_
しかし、すべての期待に反して、私はまだこのようなイベントを(もちろん、とりわけ)見解で持っています:
_<Event xmlns="http://schemas.Microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
<EventID>4624</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>12544</Task>
<Opcode>0</Opcode>
<Keywords>0x8020000000000000</Keywords>
<TimeCreated SystemTime="2013-07-18T15:12:55.797049800Z" />
<EventRecordID>199135861</EventRecordID>
<Correlation />
<Execution ProcessID="496" ThreadID="3028" />
<Channel>Security</Channel>
<Computer>SBS.domain.local</Computer>
<Security />
</System>
<EventData>
<Data Name="SubjectUserSid">S-1-0-0</Data>
<Data Name="SubjectUserName">-</Data>
<Data Name="SubjectDomainName">-</Data>
<Data Name="SubjectLogonId">0x0</Data>
<Data Name="TargetUserSid">S-1-5-18</Data>
<Data Name="TargetUserName">SBS$</Data>
<Data Name="TargetDomainName">DOMAIN</Data>
<Data Name="TargetLogonId">0x684af79a</Data>
<Data Name="LogonType">3</Data>
<Data Name="LogonProcessName">Kerberos</Data>
<Data Name="AuthenticationPackageName">Kerberos</Data>
<Data Name="WorkstationName">
</Data>
<Data Name="LogonGuid">{9D5E970C-928D-E3FD-8D96-09044670F33E}</Data>
<Data Name="TransmittedServices">-</Data>
<Data Name="LmPackageName">-</Data>
<Data Name="KeyLength">0</Data>
<Data Name="ProcessId">0x0</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">fe80::cc18:cb50:1710:c2a7</Data>
<Data Name="IpPort">6413</Data>
</EventData>
</Event>
_
S-1-5-18のTargetUserSid属性を持つイベントがビューに含まれるべきではないのになぜ含まれるのか理解できません。これは逆方向でも機能します。フィルターを*[EventData[Data[@Name='TargetUserSid'] and (Data='S-1-5-18')]]
と定義すると、別のTargetUserSidが「スリップスルー」するイベントが表示されます。
ドメインオブジェクトから別の(長い)SIDを選択すると、期待どおりに機能するようで、TargetUserSidが適切に設定されているイベントのみが表示されます。
TargetUserNameなどの他の属性でもフィルタリングを試みましたが、同様の問題が発生しました。
クエリを修正する方法に関するヒントや、同様のケースの実例をいただければ幸いです。
これを試して:
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">*[System[(EventID=4608)]]</Select>
<Suppress Path="Security">*[EventData[Data[@Name="TargetUserSid"] = "S-1-5-18"]]</Suppress>
</Query>
</QueryList>
私はWindows10デスクトップOSでも同じことを観察しました。以下のような特定のクエリでは、指定されたイベントを指定する代わりに、すべてのプロセス作成イベントが発生します。ただし、同じクエリがServer 2012OSで適切に機能します。
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[EventData[Data[@Name='NewProcessName'] and (Data='C:\Windows\System32\process0.exe' or Data='C:\Windows\System32\process1.exe' or Data='C:\Windows\process2.exe')]]
and
*[System[(EventID=4688)]]
</Select>
</Query>
</QueryList>
私の回避策は、次のように検索属性値を分離することです。
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
(*[EventData[Data[@Name='NewProcessName'] ='C:\Windows\System32\process0.exe']]
or
*[EventData[Data[@Name='NewProcessName'] ='C:\Windows\process1.exe']]
or
*[EventData[Data[@Name='NewProcessName'] = 'C:\Windows\process2.exe']])
and
*[System[(EventID=4688)]]
</Select>
</Query>
</QueryList>