来自安全事件日志的 XML 查询过滤器的意外结果

the*_*bit 7 windows-event-log windows-server-2008-r2 eventviewer xpath

各位,

我正在尝试为 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>
Run Code Online (Sandbox Code Playgroud)

但出乎所有人的意料,我仍然有这样的事件(当然还有其他事件):

<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>
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么具有 S-1-5-18 的 TargetUserSid 属性的事件已包含在视图中,而它不应该包含在视图中。它也适用于另一个方向 - 如果我将过滤器定义为*[EventData[Data[@Name='TargetUserSid'] and (Data='S-1-5-18')]],我会看到具有不同 TargetUserSid 的事件“滑过”。

从域对象中选择不同的(长)SID 似乎按预期工作,并为我提供了一个视图,其中包含仅相应设置 TargetUserSid 的事件。

我也尝试过滤其他属性,如 TargetUserName,但只是遇到了类似的问题。

非常感谢有关如何修复我的查询或类似案例的工作示例的任何提示。

Gre*_*kew 4

尝试这个:

<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>
Run Code Online (Sandbox Code Playgroud)