Kết quả không mong đợi từ bộ lọc truy vấn XML cho nhật ký sự kiện bảo mật


7

Mọi người,

Tôi đang cố gắng tạo bộ lọc XML / Xpath tùy chỉnh cho trình xem Nhật ký sự kiện Windows để loại trừ vô số Đăng nhập "HỆ THỐNG" khỏi chế độ xem nhật ký bảo mật. Tôi đã xoay sở để đạt được điều này với sự trợ giúp của blog Technet về lọc XML :

<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>

Nhưng trái với tất cả các kỳ vọng, tôi vẫn có các sự kiện như thế này (trong số những người khác, tất nhiên) trong quan điểm:

<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>

Tôi gặp khó khăn khi hiểu tại sao một sự kiện có thuộc tính TargetUserSid của S-1-5-18 lại được đưa vào chế độ xem trong khi không nên. Nó cũng hoạt động theo hướng khác - nếu tôi xác định bộ lọc là *[EventData[Data[@Name='TargetUserSid'] and (Data='S-1-5-18')]], tôi thấy các sự kiện có TargetUserSid khác "trượt qua".

Việc tạo một SID (dài) khác nhau từ một đối tượng miền dường như hoạt động như mong đợi và cho tôi một cái nhìn với các sự kiện chỉ có TargetUserSid được đặt.

Tôi cũng đã thử lọc các thuộc tính khác như TargetUserName, nhưng chỉ gặp phải vấn đề tương tự.

Bất kỳ gợi ý nào về cách sửa truy vấn của tôi hoặc ví dụ hoạt động của các trường hợp tương tự đều được đánh giá cao.

Câu trả lời:


4

Thử cái này:

<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>

0

Tôi đã quan sát tương tự trên hệ điều hành Windows 10 Desktop. Một truy vấn cụ thể như dưới đây, thay vì đưa ra các sự kiện được chỉ định, sẽ dẫn đến tất cả các sự kiện tạo quy trình. Tuy nhiên, cùng một truy vấn hoạt động tốt trong hệ điều hành Server 2012.

 <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>

Cách giải quyết của tôi là tách các giá trị thuộc tính tìm kiếm, đại loại như thế này:

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.