cum se detectează cine a șters un fișier de pe Windows Server cu Politica de Audit?

puteți utiliza auditarea evenimentelor de acces la obiecte din sistemul de fișiere pentru a identifica un anumit utilizator care a creat, șters sau modificat un anumit fișier. În acest articol, vă vom arăta cum să configurați auditarea evenimentelor pentru fișierele dintr-un folder de rețea partajat pe Windows Server 2016. După configurarea auditului, puteți utiliza informațiile din Vizualizatorul de evenimente pentru a găsi utilizatorul care a șters un anumit fișier de pe serverul de fișiere.

când ștergeți un fișier dintr-un folder de rețea partajat, acesta este șters imediat în loc să fie trimis în coșul de reciclare al utilizatorului. Lista fișierelor deschise în folderul share poate fi obținută după cum urmează.

cum se activează Politica de audit a accesului la fișiere și foldere pe Windows?

în mod implicit, File System Object Access audit nu este activat pe Windows Server. Puteți activa și configura setările de audit utilizând Politica de grup. Dacă trebuie să activați politicile de audit pe mai multe servere sau computere, puteți utiliza GPO-uri de domeniu (configurabile utilizând consola mmc gpmc.msc). Dacă doriți să configurați auditarea pe un singur server, puteți utiliza Editorul de Politici de grup Local.

  1. deschideți consola editorului de Politici de grup Local– gpedit.msc;
  2. accesați secțiunea GPO cu politici avansate de audit: Setări Windows – > Setări de securitate – > Configurare avansată a Politicii de Audit -> acces la obiecte;
  3. deschideți Politica sistemului de fișiere de Audit și specificați că doriți să conectați numai evenimente de acces de succes la obiectele sistemului de fișiere (Configurați următoarele evenimente de audit – > succes);
    de asemenea, puteți activa auditarea accesului obiectelor locale utilizând Politica de acces a obiectelor de Audit din Setări Windows -> Setări de securitate -> politică locală -> Politică de Audit. Cu toate acestea, utilizarea politicii de Audit a sistemului de fișiere este preferabilă, deoarece urmărește doar evenimentele de acces NTFS.

     activați politica sistemului de fișiere de audit pe Windows server

  4. Salvați modificările și actualizați setările politicii de grup locale folosind comanda: gpupdate /force.

configurarea setărilor de Audit șterse de fișiere într-un Folder partajat

acum trebuie să configurați auditarea în proprietățile folderului de rețea partajată la care doriți să urmăriți accesul. Rulați File Explorer și deschideți proprietățile folderului. Accesați fila Securitate. Faceți clic pe butonul Advanced -> accesați fila audit.

dacă apare mesajul „trebuie să fiți administrator sau vi s-au acordat privilegiile corespunzătoare pentru a vizualiza proprietățile de audit ale acestui obiect”, faceți clic pe butonul Continuare.

configurați setările de audit într-un folder partajat

apoi faceți clic pe butonul Adăugare pentru a specifica utilizatorul sau grupul pentru care doriți să capturați evenimente de audit. Dacă doriți să urmăriți evenimentele access pentru toți utilizatorii, specificați grupul Everyone.

apoi, trebuie să specificați ce permisiuni utilizate pentru a accesa obiectul ar trebui să fie înregistrate. Pentru a salva numai evenimentele de ștergere a fișierelor în Jurnalul de evenimente, Faceți clic pe butonul Afișare permisiuni avansate. În lista de evenimente, lăsați auditul numai pentru evenimentele de ștergere a dosarelor și fișierelor – ștergeți și ștergeți subfolderele și fișierele.

configurați auditul acțiunilor de ștergere a fișierelor în folderul partajat pe Windows Server 2016folder

sfat. Rețineți că Politica de audit pentru obiectele Windows necesită resurse de calcul suplimentare. Folosiți-l cu atenție, încercați întotdeauna să minimizați numărul de obiecte de audit și evenimente de înregistrat.

$Path = "E:\Public"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('Everyone', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

acum, dacă utilizatorul șterge orice fișier sau folder din folderul de rețea partajat, evenimentul File System -> Audit Success file delete apare în Jurnalul de securitate cu ID-ul evenimentului 4663 din sursa de audit de securitate Microsoft Windows.

deschideți consola mmc Event Viewer (eventvwr.msc), extindeți secțiunea jurnale Windows- > securitate. Activați filtrul jurnal de evenimente de EventID 4663.

ID-ul evenimentului de ștergere a fișierului 4663 în Jurnalul de securitate al Windows event viewer

deschideți oricare dintre evenimentele rămase în vizualizatorul de evenimente. După cum puteți vedea, conține informații despre numele fișierului șters, contul utilizatorului care a șters fișierul și numele procesului.

An attempt was made to access an object.Subject:Security ID: CORP\jsmithAccount Name: jsmithAccount 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

eveniment de audit ștergere fișier 4663 cu numele de utilizator în Jurnalul de securitate

După activarea politicii de audit acces fișier, puteți găsi în Jurnalul de securitate:

  • cine a șters fișierul din folderul de rețea partajat și când s-a întâmplat;
  • ce aplicație (proces) a fost utilizată pentru a șterge fișierul;
  • care este data copiei de rezervă care trebuie restaurată.

cum se scrie evenimente de ștergere a fișierelor în baza de date SQL (MySQL/MSSQL)?

cu toate acestea, chiar dacă auditul fișierelor șterse este activat, poate fi dificil să găsiți ceva în jurnale. În primul rând, este destul de greu să găsești o intrare specifică printre mii de evenimente (în Windows nu există un instrument convenabil pentru a căuta un eveniment cu un filtru flexibil). În al doilea rând, dacă un fișier a fost șters cu mult timp în urmă, acest eveniment poate lipsi în jurnale, deoarece a fost suprascris de evenimente noi.

puteți salva toate evenimentele de ștergere a fișierelor în baza de date SQL. Puteți utiliza bazele de date Microsoft SQL Server, Elasticsearch sau MySQL/MariaDB pentru a vă stoca evenimentele.

în acest exemplu, vă vom arăta cum să conectați evenimentele de audit la un tabel de baze de date separat pe un MySQL. Voi folosi următorul format de tabel:

  • numele serverului;
  • numele fișierului șters;
  • Data și ora;
  • numele utilizatorului care a șters fișierul.

interogarea MySQL pentru a crea acest tabel arată astfel:

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

notă. Un exemplu de accesare a unei baze de date MySQL de la PowerShell a fost considerat mai devreme în articol interogarea bazei de date MySQL cu PowerShell.

dacă doriți să utilizați baza de date Microsoft SQL Server, consultați articolul ” Cum se execută o interogare de server MSSQL de la PowerShell?”

pentru a obține evenimente cu EventID 4663 din Jurnalul de securitate pentru ziua curentă, puteți utiliza următorul script PowerShell:

$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-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
}
}

audit de securitate Windows-eveniment 4663 proprietăți

următorul script PowerShell va scrie datele pe care le obțineți în baza de date MySQL pe un server de la distanță (cu adresa 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;pwd=P@ssw0rd;database=aduser'}
$Connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-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()

Lasă un răspuns

Adresa ta de email nu va fi publicată.