Filtrage des journaux de sécurité par utilisateur et type de connexion


17

On m'a demandé de savoir quand un utilisateur s'est connecté au système la semaine dernière. Maintenant, les journaux d'audit dans Windows devraient contenir toutes les informations dont j'ai besoin. Je pense que si je recherche l'ID d'événement 4624 (ouverture de session réussie) avec un utilisateur AD spécifique et le type d'ouverture de session 2 (ouverture de session interactive), il devrait me fournir les informations dont j'ai besoin, mais pour la durée de vie, je ne peux pas comprendre comment filtrer réellement le journal des événements pour obtenir ces informations. Est-il possible à l'intérieur de l'Observateur d'événements ou avez-vous besoin d'utiliser un outil externe pour l'analyser à ce niveau?

J'ai trouvé http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html qui semblait faire partie de ce dont j'avais besoin. Je l'ai légèrement modifié pour ne me donner que les 7 derniers jours. Voici le XML que j'ai essayé.

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

Cela ne m'a donné que les 7 derniers jours, mais le reste n'a pas fonctionné.

Quelqu'un peut-il m'aider avec cela?

ÉDITER

Grâce aux suggestions de Lucky Luke, j'ai progressé. Ce qui suit est ma requête actuelle, bien que comme je l'expliquerai, elle ne renvoie aucun résultat.

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

Comme je l'ai mentionné, cela ne renvoyait aucun résultat, donc je l'ai un peu dérangé. Je peux l'obtenir pour produire les résultats correctement jusqu'à ce que j'ajoute la ligne LogonType. Après cela, il ne renvoie aucun résultat. Une idée pourquoi cela pourrait être?

EDIT 2

J'ai mis à jour la ligne LogonType comme suit:

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

Cela devrait capturer les ouvertures de poste de travail ainsi que les déverrouillages de poste de travail, mais je n'ai toujours rien. Je le modifie ensuite pour rechercher d'autres types d'ouverture de session comme 3 ou 8 dont il trouve beaucoup. Cela m'amène à croire que la requête fonctionne correctement, mais pour une raison quelconque, il n'y a aucune entrée dans les journaux des événements avec un type d'ouverture de session égal à 2 et cela n'a aucun sens pour moi. Est-il possible de désactiver cela?


Il semble que votre requête fonctionne si vous obtenez des résultats avec d'autres types d'ouverture de session. Il est possible que vous deviez examiner d'autres types de connexion, en particulier le type de connexion 11 qui est souvent utilisé au lieu du type de connexion 2 sur Vista et versions ultérieures. Vous pouvez voir tous les types de connexion ici: myeventlog.com/search/show/799 . Je parie que vos connexions sont de type 11. Faites-le moi savoir.
Lucky Luke

Fait intéressant, le seul résultat non 3 que j'obtiens est 8 que j'ai identifié. Pour une raison quelconque, il n'y a pas de 2, 7 ou 11 que je m'attendrais à voir.
Trido

Avez-vous vérifié vos paramètres d'audit dans la stratégie de sécurité locale (ou la stratégie de domaine si elle fait partie d'un domaine) pour vous assurer que toutes les ouvertures de session sont auditées? Tenez-moi au courant si vous avez besoin de plus d'informations.
Lucky Luke

C'était bien là le problème. Je suis entré dans la stratégie de groupe et elle a été désactivée.
Trido

Intéressant. Quel paramètre exact avez-vous fini par activer? Ce qui est un peu étrange, c'est que vous voyiez d'autres événements de connexion, mais pas les connexions de la console. J'avais l'impression qu'ils sont tous configurés avec le même réglage.
Lucky Luke

Réponses:


17

Vous êtes sur la bonne voie - l'une des erreurs dans votre requête est l'espace dans «Type d'ouverture de session», il devrait simplement s'agir de «Type d'ouverture de session».

J'ai collé une requête ci-dessous que je viens de vérifier les travaux. C'est un peu simplifié mais vous avez l'idée. Il vous montre tous les 4624 événements avec le type d'ouverture de session 2, de l'utilisateur «john.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>

Vous pouvez en savoir plus sur les requêtes XML dans l'observateur d'événements ici: http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event- viewer.aspx .

Vous pouvez interroger des événements à partir de la ligne de commande avec wevtutil.exe: http://technet.microsoft.com/en-us/magazine/dd310329.aspx .


Hmm, c'est étrange. Lorsque je l'ai exécuté, j'obtiens 0 résultat retourné. Même lorsque je simplifie la requête au seul type d'ouverture de session. Je ne comprends pas vraiment pourquoi ça ne marche pas.
Trido

J'ai mis à jour ma question avec ma requête et mon problème actuels.
Trido

C'est exactement ce dont j'avais besoin pour savoir qui s'est connecté à l'un de mes serveurs via RDP. J'ai juste eu à changer le LogonType à '10' (et supprimer le bit sur le nom d'utilisateur).
Charles Burge

1

J'ai trouvé cette question et j'ai dû faire un peu de travail pour analyser le contenu, à partir des réponses acceptées et des mises à jour des questions, pour obtenir une solution fonctionnelle. J'ai pensé publier une syntaxe de requête complète et fonctionnelle ici pour référence future:

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

La requête ci-dessus doit permettre de réduire les événements en fonction des paramètres suivants:

  • Événements dans le journal de sécurité.
  • Avec l'ID d'événement 6424
  • Se produisant au cours des 30 derniers jours.
  • Associé à l'utilisateur john.doe.
  • Avec LogonType 10.

Vous pouvez modifier les LogonTypes dans le filtre en modifiant (Data='10')le code ci-dessus. Par exemple, vous voudrez peut-être faire (Data='2')ou (Data='10' or Data='2').

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.