Tieni traccia di chi ha cancellato file / cartella da Windows Server 2016 con la politica di controllo

Non sei ancora sicuro di come tenere traccia di chi ha cancellato file/cartella da Windows Server 2016 con la politica di controllo? Date un’occhiata a questo blog.

Qui a Bobcares, abbiamo visto diversi errori relativi a Windows come parte dei nostri servizi di gestione dei server per host Web e fornitori di servizi online.

Oggi vedremo come tenere traccia delle finestre di file/cartelle eliminate.

Come tenere traccia di chi ha cancellato file/cartella da Windows Server 2016 con la politica di controllo

Ora diamo un’occhiata a come i nostri ingegneri del supporto trovano chi ha eliminato il file/cartella dal server.

Utilizziamo il file system object access event auditing per identificare un utente specifico che ha creato, eliminato o modificato un file specifico.

Vedremo ora come configurare il controllo degli eventi per i file in una cartella di rete condivisa su Windows Server 2016. Dopo aver configurato il controllo, utilizziamo le informazioni del visualizzatore eventi per trovare l’utente che ha eliminato un file specifico sul file server.

Tuttavia, quando eliminiamo un file da una cartella di rete condivisa, viene eliminato immediatamente invece di essere inviato al cestino dell’utente.

Come abilitare i criteri di controllo dell’accesso a file e cartelle su Windows

Per impostazione predefinita, l’audit di accesso all’oggetto del file System non verrà abilitato su Windows Server. Possiamo abilitare e configurare le impostazioni di controllo utilizzando Criteri di gruppo. Ecco i passaggi che seguiamo per configurare il controllo su un server utilizzando l’editor criteri di gruppo locale.

    • Innanzitutto, apriamo la console Editor criteri di gruppo locale – gpedit.msc
    • Quindi, andiamo alla sezione GPO con le politiche di audit avanzate: Impostazioni di Windows >> Impostazioni di Protezione >> Avanzate Criteri di Controllo di Configurazione > Accesso
    • Dopo di che, aprire il File di Controllo dei criteri di Sistema e specificare che si desidera accedere solo gli eventi di accesso agli oggetti del file system (Configurare le seguenti eventi di controllo >> Successo)
      come tenere traccia di chi ha cancellato il file/cartella da windows server 2016 con criteri di controllo
    • Infine, possiamo salvare le modifiche e aggiornare il locale impostazioni di Criteri di Gruppo utilizzando il seguente comando.
      gpupdate /force

Configurazione delle impostazioni di controllo del file cancellato in una cartella condivisa

Ora configuriamo il controllo nelle proprietà della cartella di rete condivisa a cui vogliamo tracciare l’accesso.

1. Innanzitutto, eseguiamo Esplora file e apriamo le proprietà della cartella. Andiamo alla scheda Sicurezza e facciamo clic sul pulsante Avanzate. Quindi andiamo alla scheda Auditing.

2. Se viene visualizzato il messaggio sottostante, fare clic sul pulsante Continua.

You must be an administrator or have been given the appropriate privileges to view the audit properties of this object

3. Quindi facciamo clic sul pulsante Aggiungi per specificare l’utente o il gruppo per il quale vogliamo acquisire gli eventi di controllo. Se vogliamo tenere traccia degli eventi di accesso per tutti gli utenti, specifichiamo il gruppo Everyone.

4. Successivamente, specifichiamo anche quali autorizzazioni utilizzate per accedere all’oggetto devono essere registrate. Per salvare solo gli eventi di eliminazione dei file nel registro eventi, facciamo clic sul pulsante Mostra autorizzazioni avanzate. Nell’elenco degli eventi, lasciamo il controllo solo per gli eventi di eliminazione di cartelle e file – Elimina ed Elimina sottocartelle e file.

Nel caso in cui, l’utente elimina qualsiasi file o cartella nella cartella di rete condivisa. Quindi il File System -> Audit Success file delete event viene visualizzato nel registro di sicurezza con ID evento 4663 dall’origine di controllo della sicurezza di Microsoft Windows.

Quindi apriamo la console MMC del visualizzatore eventi (eventvwr.msc), espandere i registri di Windows – > Sezione Sicurezza. Abilitare il filtro registro eventi da EventID 4663.

Successivamente, apriamo uno qualsiasi degli eventi rimanenti nel Visualizzatore eventi. Vediamo che contiene informazioni sul nome del file eliminato, l’account dell’utente che ha eliminato il file e il nome del processo.

An attempt was made to access an object.Subject:Security ID: CORP\jonAccount Name: jonAccount Domain: CORPLogon ID: 0x32B12627Object:Object Server: SecurityObject Type: FileObject Name: E:\Distr\Backup.rarHandle ID: 0x7bc4Resource Attributes: S:AIProcess Information:Process ID: 0x4Process Name:Access Request Information:Accesses: DELETEAccess Mask: 0x10000

Dopo l’abilitazione di accesso ai file dei criteri di controllo, siamo in grado di trovare di seguito i dettagli nel registro di Protezione:

  • Chi ha cancellato il file dalla cartella di rete condivisa e quando è accaduto
  • Che applicazione (processo) è stato utilizzato per eliminare il file
  • Qual è la data di backup da ripristinare

Come Scrivere File di Eventi di Delezione del Database SQL (MySQL/MSSQL)

Tuttavia, anche se il controllo dei file eliminati è abilitato, può essere fastidioso trovare qualcosa nei log. In primo luogo, è abbastanza difficile trovare una voce specifica tra migliaia di eventi. In secondo luogo, se un file è stato eliminato molto tempo fa, questo evento potrebbe essere assente nei registri, poiché è stato sovrascritto da nuovi eventi.

Salviamo tutti gli eventi di eliminazione dei file nel database SQL. Per questo, utilizziamo i database Microsoft SQL Server, Elasticsearch o MySQL/MariaDB per archiviare gli eventi.

Ad esempio, vediamo come registrare gli eventi di controllo in una tabella di database separata su MySQL. Possiamo usare il seguente formato di tabella:

  • nome del Server
  • Nome del file eliminato
  • Data e ora
  • Nome dell’utente che ha cancellato il file

MySQL query per creare la tabella presenta come di seguito:

CREATE TABLE deleted_items (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), file_name VARCHAR(255), dt_time DATETIME, user_name VARCHAR(100), PRIMARY KEY (ID));

Per ottenere gli eventi con id Evento 4663 dal registro di Protezione per il giorno corrente, utilizzare il seguente script di PowerShell:

$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer}}

Il prossimo script di PowerShell scrivere i dati che otteniamo per il database MySQL su un server remoto (con l’indirizzo IP 10.1.1.13):

Add-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$sql = New-Object MySql.Data.MySqlClient.MySqlCommand$sql.Connection = $Connection$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$File = $File.Replace('\','|')$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer$sql.CommandText = "INSERT INTO deleted_items (server,file_name,dt_time,user_name ) VALUES ('$Computer','$File','$Time','$User')"$sql.ExecuteNonQuery()}}$Reader.Close()$Connection.Close()

Dopo il salvataggio di eventi a un database esterno, possiamo eliminare questo registro Eventi.

Ora, per scoprire chi ha cancellato il file ” AnnualReport.DOC”, eseguiamo lo script sottostante nella console PowerShell.

$DeletedFile = "%AnnualReport.DOC%"Set-ExecutionPolicy RemoteSignedAdd-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$MYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand$MYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter$MYSQLDataSet = New-Object System.Data.DataSet$MYSQLCommand.Connection=$Connection$MYSQLCommand.CommandText="SELECT user_name,dt_time from deleted_items where file_name LIKE '$DeletedFile'"$MYSQLDataAdapter.SelectCommand=$MYSQLCommand$NumberOfDataSets=$MYSQLDataAdapter.Fill($MYSQLDataSet, "data")foreach($DataSet in $MYSQLDataSet.tables){write-host "User:" $DataSet.user_name "at:" $DataSet.dt_time}$Connection.Close()

Infine, ora, vediamo il nome utente e l’ora in cui il file è stato eliminato nella console PS.

File di registrazione Elimina gli eventi di controllo in un file di testo

Se non vogliamo utilizzare un server di database separato, salviamo gli eventi di controllo di eliminazione dei file in un file di registro di testo normale. Per questo, usiamo questo script PowerShell per salvare l’output in un file di testo:

$Outfile = "C:\Logs\Deleted-file-history-log.txt"$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$strLog = $Computer + " " + $File + " " + $Time + " " + $User$strLog | out-file $Outfile –append}}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.