Filtrowanie dzienników bezpieczeństwa według użytkownika i typu logowania


17

Zostałem poproszony o sprawdzenie, kiedy użytkownik zalogował się do systemu w ostatnim tygodniu. Teraz dzienniki kontroli w systemie Windows powinny zawierać wszystkie potrzebne informacje. Myślę, że jeśli szukam zdarzenia o identyfikatorze 4624 (sukces logowania) z konkretnym użytkownikiem AD i logowaniem typu 2 (logowanie interaktywne), powinien on dostarczyć mi potrzebnych informacji, ale przez całe życie nie jestem w stanie wymyślić, jak faktycznie filtrować dziennik zdarzeń, aby uzyskać te informacje. Czy jest to możliwe w Podglądzie zdarzeń, czy potrzebujesz zewnętrznego narzędzia, aby parsować je do tego poziomu?

Znalazłem http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html, który wydawał się być częścią tego, czego potrzebowałem. Zmodyfikowałem go nieco, aby dać mi tylko ostatnie 7 dni. Poniżej znajduje się XML, którego wypróbowałem.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) &lt;= 604800000]]]</Select>
    <Select Path="Security">*[EventData[Data[@Name='Logon Type']='2']]</Select>
    <Select Path="Security">*[EventData[Data[@Name='subjectUsername']='Domain\Username']]</Select>
  </Query>
</QueryList>

Dało mi to tylko ostatnie 7 dni, ale reszta nie zadziałała.

Czy ktoś może mi w tym pomóc?

EDYTOWAĆ

Dzięki sugestiom Szczęśliwego Łukasza robię postępy. Poniżej znajduje się moje aktualne zapytanie, chociaż, jak wyjaśnię, nie zwraca żadnych wyników.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
     *[System[(EventID='4624')]
     and
     System[TimeCreated[timediff(@SystemTime) &lt;= 604800000]]
     and
     EventData[Data[@Name='TargetUserName']='john.doe']
     and
     EventData[Data[@Name='LogonType']='2']
     ] 
    </Select>
  </Query>
</QueryList>

Jak wspomniałem, nie zwrócił żadnych wyników, więc trochę z tym popsułem. Mogę go uzyskać, aby wyświetlał wyniki poprawnie, dopóki nie dodam w wierszu LogonType. Po tym nie zwraca żadnych wyników. Wiesz, dlaczego to może być?

EDYCJA 2

Zaktualizowałem wiersz LogonType do następującego:

EventData[Data[@Name='LogonType'] and (Data='2' or Data='7')]

To powinno przechwycić dane logowania do stacji roboczej, a także odblokowania stacji roboczej, ale nadal nic nie dostaję. Następnie modyfikuję go, aby wyszukiwać inne typy logowania, takie jak 3 lub 8, których jest dużo. To prowadzi mnie do przekonania, że ​​zapytanie działa poprawnie, ale z jakiegoś powodu w dziennikach zdarzeń nie ma wpisów o typie logowania równym 2 i to nie ma dla mnie sensu. Czy można to wyłączyć?


Wygląda na to, że zapytanie działa, jeśli uzyskujesz wyniki z innymi typami logowania. Możliwe, że musisz spojrzeć na inne typy logowania, w szczególności typ logowania 11, który jest często używany zamiast logowania typu 2 w systemie Vista i nowszych. Możesz zobaczyć wszystkie typy logowania tutaj: myeventlog.com/search/show/799 . Założę się, że twoje dane logowania są typu 11. Daj mi znać.
Lucky Luke

Co ciekawe, jedyny wynik inny niż 3 to 8, które zidentyfikowałem. Z jakiegoś powodu nie ma 2, 7 lub 11, których spodziewałbym się zobaczyć.
Trido

Czy zweryfikowałeś swoje ustawienia inspekcji w lokalnej polityce bezpieczeństwa (lub polityce domeny, jeśli jest ona częścią domeny), aby upewnić się, że wszystkie logowania są kontrolowane? Powiadom mnie, jeśli będziesz potrzebować więcej informacji.
Lucky Luke

To rzeczywiście był problem. Poszedłem do zasad grupy i zostało wyłączone.
Trido

Ciekawy. Jakie dokładne ustawienie w końcu się włączasz? Nieco dziwne jest to, że widziałeś inne zdarzenia logowania, ale nie logowania do konsoli. Miałem wrażenie, że wszystkie są skonfigurowane z tym samym ustawieniem.
Lucky Luke

Odpowiedzi:


17

Jesteś na dobrej drodze - jednym z błędów w zapytaniu jest spacja w „Typie logowania”, powinna to być po prostu „LogonType”.

Wkleiłem poniżej zapytanie, które właśnie zweryfikowałem. Jest to trochę uproszczone, ale masz pomysł. Pokazuje wszystkie 4624 zdarzenia z logowaniem typu 2, od użytkownika „jan.doe”.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
      *[
        EventData[Data[@Name='LogonType']='2']
        and
        EventData[Data[@Name='TargetUserName']='john.doe']
        and
        System[(EventID='4624')]
      ] 
    </Select>
  </Query>
</QueryList>

Więcej informacji na temat zapytań XML można znaleźć w przeglądarce zdarzeń tutaj: http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event- viewer.aspx .

Możesz wyszukiwać zdarzenia z wiersza poleceń za pomocą wevtutil.exe: http://technet.microsoft.com/en-us/magazine/dd310329.aspx .


Hmm, to dziwne. Po uruchomieniu otrzymuję 0 wyników. Nawet gdy upraszczam zapytanie tylko do typu logowania. Naprawdę nie rozumiem, dlaczego to nie działa.
Trido

Zaktualizowałem swoje pytanie przy użyciu mojego obecnego zapytania i problemu.
Trido

Właśnie tego potrzebowałem, aby dowiedzieć się, kto połączył się z jednym z moich serwerów przez RDP. Po prostu musiałem zmienić LogonType na „10” (i usunąć bit o nazwie użytkownika).
Charles Burge

1

Znalazłem to pytanie i musiałem trochę popracować, aby przeanalizować zawartość, od zaakceptowanej odpowiedzi i aktualizacji pytania, aby uzyskać funkcjonalne rozwiązanie. Doszedłem do wniosku, że opublikuję tutaj pełną, działającą składnię zapytań, do wykorzystania w przyszłości:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
    *[System[(EventID=4624)
    and
    TimeCreated[timediff(@SystemTime) &lt;= 2592000000]]
    and
    EventData[Data[@Name='TargetUserName'] and (Data='john.doe')]
    and
    EventData[Data[@Name='LogonType'] and (Data='10')]]
    </Select>
  </Query>
</QueryList>

Powyższe zapytanie powinno działać w celu zawężenia zdarzeń zgodnie z następującymi parametrami:

  • Zdarzenia w dzienniku bezpieczeństwa.
  • Z identyfikatorem zdarzenia 6424
  • Występuje w ciągu ostatnich 30 dni.
  • Powiązany z użytkownikiem john.doe.
  • Z LogonType 10.

Możesz zmienić LogonTypes w filtrze, zmieniając (Data='10')powyższy kod. Na przykład możesz chcieć zrobić (Data='2')lub (Data='10' or Data='2').

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.