none
Win2008: Ripetizione di eventi logon utente ?!?! RRS feed

  • Domanda

  • Sempre nel tentativo di tracciare gli accessi degli utenti, ho creato il seguente filtro personalizzato sul registro degli eventi di sicurezza di un dc 2008 :

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

    In questo modo ho filtrato gli eventi sulla base del nome utente e del tipo di evento.

    Analizzando, però, l'elenco risultante rilevo decine di eventi con "LogonType" = 3, che se non sbaglio, è il tip di accesso a livello di network, a pochi secondi di distanza l'uno dall'altro.

    Sapete dirmi di che si tratta e perchè così tanti eventi ravvicinati di quel tipo ?

    Volevo anche modificare il filtro aggiungendo il tipo di logon ma non riesco a farlo.

    Potete dare un'occhiata alla query per capire dove sto sbagliando:

    <QueryList>

    <Query Id="0" Path="Security">

    <Select Path="Security">

    *[System[(EventID=4624)]] and

    *[EventData[Data[[@Name='LogonType']and(Data='2')] AND [[@Name='TargetUserName'] and (Data='NomeUtente')]]]

    </Select>

    </Query>

    </QueryList>

    Grazie

    • Modificato Aldo_ mercoledì 7 marzo 2012 10:37
    mercoledì 7 marzo 2012 09:58

Risposte

  • Si, la query permette di estrapolare i dati corretti però poichè devo limitare la dimensione dei registri, devo eseguire un filtro proprio sulla registrazione degli eventi con le audit policy.

    Per la query prova così:

    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">
    *[System[Provider[@Name="Microsoft-Windows-Security-Auditing"] and (EventID=4624)] and EventData[Data[@Name="TargetUserName"]="User1"] and EventData[Data[@Name="LogonType"]="2"]]
    </Select>
      </Query>
    </QueryList>
    L'ho testata e sembra funzionare.

    mercoledì 7 marzo 2012 11:03
    Moderatore
  • inverti l'ordine dei parametri della query:

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


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org

    mercoledì 7 marzo 2012 11:30
    Moderatore
  • In pratica ti ritrovi nella stessa mia situazione....molti eventi sono correlati all'accesso dell'account di sistema del computer (sono account che terminano per '$'), tuttavia ho notato che vengono ripetuti anche gli accessi e le disconnessioni dei singoli utenti anche quando l'account è semplicemente connesso (indipendentemente se lo stanno utilizzando o no). Purtroppo non sono riuscito a trovare una soluzione per registrare solo i veri login e logout degli utenti, però alla fine tutti questi eventi aggiuntivi possono essere utili per rilevare quando l'account era effettivamente connesso o no (anche se questo porta ad un aumento delle dimensioni del registro eventi). Avevo provato a filtrare tutti gli account di sistema che terminano per '$', ma purtroppo XQuery del registro eventi di Windows Server non supporta la funzione 'contains', quindi mi sono limitato a filtrare "manualmente" almeno tutti i server del mio dominio ( *[EventData[Data[@Name='TargetUserName'] and (Data!='NOMESERVER$')] ] ) anche se è una soluzione sicuramente poco elegante.
    Nel tuo caso credo che potresti aggiungere nella query un'istruzione *[EventData[Data[@Name='TargetUserName'] and (Data!='NOMECOMPUTER$')] ] che teoricamente dovrebbe dimezzarti il numero di eventi.
    giovedì 8 marzo 2012 09:22
    Moderatore

Tutte le risposte

  • Questi tipi di eventi si riferiscono ad un utente in particolare? Perchè spesso vengono eseguiti dagli account di sistema (ho aperto proprio adesso una domanda su come filtrarli). Tuttavia se vengono generati molto rapidamente (300 o più al secondo) potrebbe trattarsi di un client sulla rete che ha problemi, mi è successa una cosa del genere di recente.

    mercoledì 7 marzo 2012 10:29
    Moderatore
  • Gli eventi sono relativi ad alcuni utenti del dominio.

    La frequenza è ogni qualche secondo, senza una costante. A volte 4/5 secondi, a volte 20, insomma.. a random.

    Per come filtrarli, vedi se ti aiuta la piccola query che ho messo io.

    Sto cercando di aggiungere il criterio anche sul LogonType ma si incarta.

    E' sicuramente un problema di sintassi ma non riesco a capire dov'è l'errore.

    Ciao

    mercoledì 7 marzo 2012 10:51
  • Si, la query permette di estrapolare i dati corretti però poichè devo limitare la dimensione dei registri, devo eseguire un filtro proprio sulla registrazione degli eventi con le audit policy.

    Per la query prova così:

    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">
    *[System[Provider[@Name="Microsoft-Windows-Security-Auditing"] and (EventID=4624)] and EventData[Data[@Name="TargetUserName"]="User1"] and EventData[Data[@Name="LogonType"]="2"]]
    </Select>
      </Query>
    </QueryList>
    L'ho testata e sembra funzionare.

    mercoledì 7 marzo 2012 11:03
    Moderatore
  • prova così:

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

    (sperando di non aver cannato sulle parentesi.

    ref: http://www.jaminquimby.com/index.php/microsoft-windows-2008/129-windows-event-viewer-custom-xml-filter


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org


    mercoledì 7 marzo 2012 11:08
    Moderatore
  • Ciao Edoardo e grazie per l'aiuto.

    Purtroppo, però, la query non gira.Viene segnalata come "non valida".

    Anche io ho trovato quel link che mi hai indicato ed ho proprio preso spunto da li ma non riesco ad aggiungere 'sto benedetto criterio in più.

    :-(

    Grazie

    mercoledì 7 marzo 2012 11:15
  • Prova con la query che ho inserito, a me su Windows Server 2008 R2 funziona.

    mercoledì 7 marzo 2012 11:23
    Moderatore
  • inverti l'ordine dei parametri della query:

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


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org

    mercoledì 7 marzo 2012 11:30
    Moderatore
  • Ma quante ne sai Edo ??? :-)

    Ok.. la query ora funziona ma, ovviamente, è uscita fuori un'altra cosa che non mi spiego.

    Se lancio la query indicando il nome di un utente di rete con il logon di tipo "2" (accesso interattivo) negli eventi non c'è nulla.

    Mettendo l'admin come utente, mi tira su gli eventi di logon che faccio direttamente sul server ma non vede nessun evento di logon di tipo 2 degli utenti di rete.

    E' normale ??

    Io vorrei semplicemente filtrare tutti gli accessi che gli utenti fanno sui client del dominio... perchè è sempre tutto così difficile... :-(

    Grazie

    mercoledì 7 marzo 2012 11:46
  • Ma quante ne sai Edo ??? :-)

    semplicemente devi seguire l'ordine dei parametri che è indicato nell'elenco del link che ti ho postato.

    Ok.. la query ora funziona ma, ovviamente, è uscita fuori un'altra cosa che non mi spiego.

    Se lancio la query indicando il nome di un utente di rete con il logon di tipo "2" (accesso interattivo) negli eventi non c'è nulla.

    Mettendo l'admin come utente, mi tira su gli eventi di logon che faccio direttamente sul server ma non vede nessun evento di logon di tipo 2 degli utenti di rete.

    E' normale ??

    Io vorrei semplicemente filtrare tutti gli accessi che gli utenti fanno sui client del dominio... perchè è sempre tutto così difficile... :-(

    Grazie

    certo che è normale perchè tu devi cercare il logontype = 3 (logon from the network) per le autenticazioni ai domain controller e non quelle uguali a 2 che sono le interactive ossia quelle in console

    ref: http://www.windowsecurity.com/articles/logon-types.html


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org

    mercoledì 7 marzo 2012 11:58
    Moderatore
  • Se metto il logontype = 3, mi ritrovo nella condizione iniziale con cui ho aperto il thread e cioè che rilevo decine di quel tipo di eventi a pochi secondi di distanza l'uno dall'altro il che, ovviamente, non è normale almeno per quanto riguarda l'accesso alla postazione.

    Se poi, quel tipo di logon, è anche riferito a qualcos'altro... beh.. allora non so proprio come uscirne.

    Grazie

    mercoledì 7 marzo 2012 12:12
  • In pratica ti ritrovi nella stessa mia situazione....molti eventi sono correlati all'accesso dell'account di sistema del computer (sono account che terminano per '$'), tuttavia ho notato che vengono ripetuti anche gli accessi e le disconnessioni dei singoli utenti anche quando l'account è semplicemente connesso (indipendentemente se lo stanno utilizzando o no). Purtroppo non sono riuscito a trovare una soluzione per registrare solo i veri login e logout degli utenti, però alla fine tutti questi eventi aggiuntivi possono essere utili per rilevare quando l'account era effettivamente connesso o no (anche se questo porta ad un aumento delle dimensioni del registro eventi). Avevo provato a filtrare tutti gli account di sistema che terminano per '$', ma purtroppo XQuery del registro eventi di Windows Server non supporta la funzione 'contains', quindi mi sono limitato a filtrare "manualmente" almeno tutti i server del mio dominio ( *[EventData[Data[@Name='TargetUserName'] and (Data!='NOMESERVER$')] ] ) anche se è una soluzione sicuramente poco elegante.
    Nel tuo caso credo che potresti aggiungere nella query un'istruzione *[EventData[Data[@Name='TargetUserName'] and (Data!='NOMECOMPUTER$')] ] che teoricamente dovrebbe dimezzarti il numero di eventi.
    giovedì 8 marzo 2012 09:22
    Moderatore
  • prova a leggerti questo

    http://blogs.msdn.com/b/ericfitz/archive/2008/08/20/tracking-user-logon-activity-using-logon-events.aspx


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org

    giovedì 8 marzo 2012 11:13
    Moderatore
  • Bah... onestamente ci sono cose che continuo a non capire o meglio, che non capisco perchè non vengono documentate o spiegate.

    Immagino (e spero) che ci sia una ragione al perchè vengono loggati continuamente quegli eventi ma sarebbe anche carino che qualcuno ce la spiegasse.

    Inoltre, non comprendo come mai Microsoft non abbia ancora pensato a migliorare il filtro sugli eventi includendo quei due / tre parametri, oserei dire obbligatori, per evitarci di andare a litigare con XQuery. Non posso credere che siamo gli unici due nell'universo che hanno bisogno di selezionare gli eventi di logon/logout degli utenti in un dominio!

    Boh.... continuo a sospettare che ci siano accordi sotto banco con chi produce tool di terze parti .....

    Vabbè... grazie a tutti per l'aiuto.

    Vado a testare  qualche tool di terze parti che mi aiuti nell'impresa.

    Saluti

    giovedì 8 marzo 2012 11:15
  • Si, infatti tutti quegli eventi hanno ID 4624 e 4634 che in teoria (ma in realtà non è così) dovrebbero essere gli accessi e le disconnessioni "reali" degli utenti al dominio. Certo si può comunque trovare il vero accesso e disconnessione vedendo rispettivamente il primo e l'ultimo di quegli eventi registrati per un tale utente, ma a chi ad esempio non interessa tracciare costantemente l'attività dell'account tutti gli eventi generati tra il vero accesso e disconnessione in realtà occupano solo spazio nei log (che già per la normativa della privacy vanno conservati per minimo 6 mesi).

    A questo punto credo sia più efficiente esportare i log direttamente dalle macchine e raccoglierli in un punto centralizzato. Un software interessante potrebbe essere questo http://ivanzini.wordpress.com/2010/01/11/soluzione-freeopen-source-al-provvedimento-del-garante-privacy-sugli-amministratori-di-sistema/ però sinceramente volevo evitare di implementare linux in un ambiente di dominio puramente Windows.

    giovedì 8 marzo 2012 13:45
    Moderatore
  • Edoardo, molto bello il link! Frugugliando il blog di EricFitz ho trovato due cose interessanti:

    1. gli eventi pre-vista=vista + 4096
      quindi il 528 di w2003 è uguale al 4624 di w2008, e le automazioni create sugli eventi, per continuare a funzionare hanno bisogno che gli venga aggiunto 4096  decimale, FINE.
    2. il batch che riporto utile per testare query xpath, l'event viewer non è il massimo... ho fatto mille query non corrette!! 

    @echo off REM (C) 2008 Microsoft Corporation REM All Rights Reserved set outputfile=%temp%\interactive-logon-events.xml if "%1" NEQ "" set outputfile=%1 REM The next command is all one line and has no carriage returns REM The only spaces in the XPath are around the AND keywords wevtutil qe Security /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task=12544 and (EventID=4624)] and EventData[Data[@Name='LogonType']='2']]" /e:Events > %outputfile% start %outputfile% set outputfile=

    ciao


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE!


    giovedì 15 marzo 2012 22:03
    Moderatore