Magic Quadrant™ per la gestione degli accessi privilegiati 2025: Netwrix riconosciuta per il quarto anno consecutivo. Scarica il report.

Piattaforma
Centro risorseBlog
Attributi di Active Directory: Ultimo accesso

Attributi di Active Directory: Ultimo accesso

Nov 3, 2022

Active Directory user objects possess a number of logon metadata attributes that are valuable for Active Directory audit reporting and administration. For example, they are commonly used to identify user accounts that have been inactive for a significant period, or as “stale” accounts.

Tuttavia, ogni attributo dei metadati di accesso presenta alcuni comportamenti unici che devono essere compresi. Altrimenti, le organizzazioni possono finire con report che sono confusi nella migliore delle ipotesi e inaccurati o fuorvianti nella peggiore.

Attributo AD dell'ultimo accesso

L'attributo Last-Logon contiene una rappresentazione FileTime di Windows dell'ultima volta che un controller di dominio ha autenticato con successo l'utente. È il nonno dei metadati di accesso degli utenti, essendo presente fin dalla prima versione di Active Directory.

Utilizzando il comando PowerShell sottostante, puoi recuperare l'ultimo orario di accesso e altre proprietà dell'utente su un controller di dominio:

      Get-ADUser -Filter * -Properties lastLogon | Select samaccountname, @{Name="lastLogon";Expression={[datetime]::FromFileTime($_.'lastLogon')}}
      

L'attributo Last-Logon viene aggiornato ogni volta che un domain controller elabora con successo una richiesta di accesso, quindi potrebbe sembrare che fornisca il modo perfetto per identificare con precisione gli account utente inattivi. Tuttavia, c'è una grande avvertenza che deve essere presa in considerazione.

AD Last-Logon non è un attributo replicato; ogni domain controller (DC) mantiene la propria versione dell'attributo per un determinato utente. Questo comportamento è intenzionale — l'aumento del traffico di replica necessario per mantenere questo attributo sincronizzato tra i domain controller di una rete sarebbe stato schiacciante, specialmente al momento della sua introduzione vent'anni fa. Ma questo comportamento è anche il motivo per cui è necessario prestare attenzione quando si utilizza questo attributo per segnalare account utente obsoleti.

Poiché l'attributo Last-Logon non viene replicato (i controller di dominio non scambiano queste informazioni), i valori degli attributi possono essere interpretati solo nel contesto del controller di dominio che viene interrogato. Ovvero, il valore dell'attributo non è necessariamente l'ultima volta che l'utente ha effettuato l'accesso, ma piuttosto l'ultima volta che l'utente si è autenticato con successo tramite il controller di dominio che viene verificato. Allo stesso modo, il fatto che l'attributo abbia un valore pari a zero non significa necessariamente che l'utente non si sia mai collegato; potrebbe significare che il controller di dominio che ha restituito il valore non ha mai elaborato una richiesta di accesso da parte di quell'utente.

In breve, mentre l'attributo Last-Logon può essere utilizzato per l'audit delle attività di accesso, per ottenere report accurati sarà necessario interrogare ogni domain controller in grado di elaborare richieste di accesso per identificare il valore più recentemente aggiornato per ogni specifico account utente. In alternativa, è possibile utilizzare una soluzione di reporting di terze parti, come discusso più avanti in questo articolo.

Last-Logon-Timestamp

L'attributo Last-Logon-Timestamp contiene una rappresentazione Windows FileTime di un momento recente in cui l'utente ha effettuato l'accesso a un dominio. Questo attributo utente è stato introdotto con Microsoft Windows Server 2003. A differenza del più vecchio attributo Last-Logon, l'attributo Last-Logon-Timestamp è un attributo replicato; il suo valore per un determinato utente viene sincronizzato con ogni controller di dominio. Questo rappresenta un grande miglioramento rispetto all'attributo Last-Logon. Ciò significa che il modo migliore per identificare gli account utente inattivi è utilizzare il Last-Logon-Timestamp, giusto? Beh, l'utilizzo di questo attributo comporta dei propri avvertimenti.

Il problema con l'attributo Last-Logon-Timestamp è che non viene sempre aggiornato quando un domain controller elabora con successo una richiesta di accesso. Invece, l'attributo ha una frequenza di aggiornamento dinamica che è limitata dal valore dell'attributo ms-DS-Logon-Time-Sync-Interval, il quale di default non è impostato e viene trattato come 14 giorni. Non è comune che questo attributo sia stato modificato, ma se sei curioso, puoi facilmente identificarne il valore effettivo utilizzando il seguente script PowerShell:

      $lastLogonReplicationInterval = (Get-ADDomain).LastLogonReplicationInterval
if( $lastLogonReplicationInterval )
{
    Write-Host "ms-DS-Logon-Time-Sync-Interval is set to $($lastLogonReplicationInterval) days"
}
else {
    Write-Host "ms-DS-Logon-Time-Sync-Interval is not set and will be treated as 14 days"
      

In un dominio con il limite massimo predefinito di 14 giorni per l'aggiornamento, l'attributo Last-Logon-Timestamp viene aggiornato solo quando un domain controller elabora con successo una richiesta di accesso e il periodo trascorso dall'ultimo aggiornamento dell'attributo è superiore a un intervallo compreso tra 9 e 14 giorni. La variazione di questo periodo è il risultato di una percentuale casuale che è inclusa nella logica che controlla la frequenza di aggiornamento. Questo comportamento riflette un compromesso tra la limitazione del traffico di replica necessario per mantenere sincronizzato questo attributo attraverso i domain controller della rete e la limitazione della probabilità di dover replicare un numero significativo di utenti che hanno avuto il loro Last-Logon-Timestamp aggiornato all'incirca nello stesso momento.

Ecco un esempio semplificato della logica che controlla la frequenza di aggiornamento dell'attributo Last-Logon-Timestamp:

      (Current Datetime – Last-Logon-Timestamp) ? (ms-DS-Logon-Time-Sync-Interval – (Random % * 5 days))
      

In pratica, l'attributo Last-Logon-Timestamp semplificherà l'audit e la generazione di rapporti relativi ai login. L'unico problema potenzialmente significativo riguarda la segnalazione degli utenti inattivi. Quando utilizzato per identificare utenti inattivi, la soglia di obsolescenza deve superare il valore dell’intervallo di sincronizzazione del tempo di accesso del dominio ms-DS-Logon-Time-Sync-Interval di un tempo sufficiente per garantire che la replica sia stata in grado di propagare eventuali aggiornamenti significativi.

LastLogonDate (PowerShell)

Coloro che sono familiari con PowerShell possono riconoscere LastLogonDate, ma non sarà possibile trovarlo da nessuna parte nello schema del global catalog di Active Directory. Questo perché LastLogonDate è in realtà un valore calcolato localmente che mostrerà il valore replicato dell'attributo Last-Logon-Timestamp in un formato accessibile all'utente. Non sorprende che LastLogonDate abbia tutti i vantaggi e tutti gli svantaggi dell'attributo Last-Logon-Timestamp. Tuttavia, poiché non richiede la conversione da Windows DateTime, è l'opzione migliore per la maggior parte dei rapporti di audit relativi al login degli utenti.

Attributo dell'ultimo accesso interattivo riuscito di Active Directory

L'attributo ms-DS-Last-Successful-Interactive-Logon-Time è stato introdotto in Windows Server 2008, ma molte persone non lo conoscono perché è disabilitato per impostazione predefinita. Quando attivato, contiene la data e l'ora dell'ultimo accesso interattivo riuscito di un utente. Sebbene sembri una cosa incredibilmente utile da abilitare, ci sono alcune ragioni convincenti per lasciarlo disabilitato, che illustrerò tra poco.

Se disponi di un ambiente di laboratorio e desideri sperimentare con l'attributo ms-DS-Last-Successful-Interactive-Logon-Time, puoi abilitare quanto segue: Configurazione del computer ? Criteri ? Modelli amministrativi ? Componenti di Windows ? Opzioni di accesso a Windows ? Visualizza informazioni sui logon precedenti durante il logon dell'utente GPO. Quindi forza un aggiornamento dei Criteri di Gruppo. Non abilitare questa impostazione in un dominio di produzione per divertimento; avrai dei problemi.

Il primo problema con l'attributo ms-DS-Last-Successful-Interactive-Logon-Time è che il suo valore viene aggiornato solo quando viene autenticato un accesso interattivo (pensa agli accessi “Ctrl-Alt-Del”). Questo significa che attività di autenticazione importanti come gli accessi alle condivisioni di rete e le autenticazioni LDAP non attiveranno un aggiornamento. Di conseguenza, se utilizzi questo attributo per generare rapporti di audit relativi agli accessi, è probabile che tu ottenga alcuni risultati inaccurati. Ad esempio, i rapporti che identificano account utente inattivi probabilmente elencheranno account di servizio di dominio, che generalmente sono molto attivi — solo in modi non interattivi. In breve, questo attributo rende la segnalazione di utenti obsoleti davvero semplice e affidabile, ma solo per gli account utente utilizzati per sessioni interattive.

Sommario

Se hai bisogno di generare Active Directory login audit reports, l'approccio migliore è probabilmente aggregare i log degli eventi del tuo domain controller ed elaborarli. Anche se i log degli eventi sono incredibilmente rumorosi, sono anche incredibilmente affidabili e forniscono informazioni storiche che Active Directory non può.

Se ciò non è fattibile, utilizza LastLogonDate. Oppure, ancora meglio, usa il cmdlet Search-ADAccount integrato nel modulo PowerShell di Active Directory per ottenere le informazioni necessarie ed esportarle in un file CSV:

      Search-ADAccount -AccountInactive -DateTime ((Get-Date).AddDays(-30)) -UsersOnly | Select Name,LastLogonDate,DistinguishedName| Export-CSV c:psinactive_users.csv
      

Il cmdlet Search-ADAccount sfrutta effettivamente LastLogonDate dietro le quinte. Il suo periodo di inattività predefinito è di 15 giorni, il che dovrebbe andare bene nella maggior parte degli ambienti. L'esempio sopra include la sintassi necessaria per sovrascrivere il periodo di inattività con un valore di 30 giorni. Per coloro che preferiscono un approccio sistematizzato, ci sono strumenti gratuiti utili come Netwrix Inactive User Tracker per recuperare queste informazioni senza dover convertire valori e analizzare file csv.

Come può Netwrix aiutare?

Rivedere regolarmente la last logon date di ogni utente in Active Directory può aiutare l'amministratore del dominio a rilevare e rimuovere account obsoleti che gli avversari adorerebbero compromettere e abusare. Ma questa è solo una piccola parte di una strategia di cybersecurity completa.

La soluzione di sicurezza di Netwrix Active Directory Security Solution fornisce informazioni dettagliate non solo sull'ultimo accesso di ogni account utente di Active Directory, ma su tutte le attività in Active Directory. I suoi rapporti predefiniti completi semplificano il logon monitoring. In particolare, il rapporto sugli Account Utente – Ultimo Accesso elenca tutti gli account utente, sia abilitati che disabilitati, con l'ultimo orario di accesso per ciascun account. Utilizzando la funzione di sottoscrizione dei rapporti, gli amministratori IT possono ricevere il rapporto via email automaticamente secondo la programmazione che specificano, facilitando la revisione regolare in conformità con le migliori pratiche e consentendo loro di eliminare le vulnerabilità del sistema più efficacemente.

Netwrix Directory Manager

Semplifica e proteggi AD con la gestione automatizzata dei gruppi

FAQ

Qual è la differenza tra Lastlogon e lastLogonTimeStamp?

A differenza dell'attributo Last-Logon, l'attributo Last-Logon-Timestamp è un attributo replicato; il suo valore per un determinato utente viene sincronizzato su ogni domain controller.

Come viene calcolato lastLogonTimeStamp?

L'attributo Last-Logon-Timestamp (o lastLogonTimeStamp) viene registrato dal DC al momento del login dell'utente; tuttavia, questo attributo non viene sempre aggiornato su tutti i DC quando un domain controller elabora con successo una richiesta di accesso.

Cos'è l'autenticazione interattiva?

L'autenticazione interattiva è un processo in cui viene richiesto all'utente di inserire il proprio ID utente e password per accedere a un dispositivo. I luoghi più comuni in cui avviene il login interattivo sono la schermata di accesso di Windows e la schermata di blocco di Windows.



Condividi su

Scopri di più

Informazioni sull'autore

Asset Not Found

Joe Dibley

Ricercatore di sicurezza

Ricercatore di sicurezza presso Netwrix e membro del Netwrix Security Research Team. Joe è un esperto in Active Directory, Windows e una vasta gamma di piattaforme software aziendali e tecnologie, Joe ricerca nuovi rischi per la sicurezza, tecniche di attacco complesse e relative mitigazioni e rilevamenti.