Kuinka tunnistaa kuka poisti tiedoston Windows Serveristä Tarkastuskäytännöllä?

voit käyttää file system object access-tapahtuman valvontaa tunnistaaksesi tietyn käyttäjän, joka on luonut, poistanut tai muokannut tiettyä tiedostoa. Tässä artikkelissa, näytämme, miten määrittää tapahtumien valvonta tiedostoja jaetussa verkkokansiossa Windows Server 2016. Kun olet määrittänyt valvonnan, voit käyttää Tapahtumienvalvonnan tietoja löytääksesi käyttäjän, joka poisti tietyn tiedoston tiedostopalvelimelta.

kun poistat tiedoston jaetusta verkkokansiosta, se poistetaan välittömästi sen sijaan, että se lähetettäisiin käyttäjän roskakoriin. Share-kansioon avattujen tiedostojen luettelon saa seuraavasti.

miten tiedostojen ja kansioiden käytön Valvontakäytäntö otetaan käyttöön Windowsissa?

oletuksena tiedostojärjestelmän objektien käyttöoikeuksien tarkastus ei ole käytössä Windows Server-käyttöjärjestelmässä. Voit ottaa käyttöön ja määrittää tarkastusasetuksia ryhmäkäytännön avulla. Jos haluat ottaa tarkastuskäytännöt käyttöön useilla palvelimilla tai tietokoneilla, voit käyttää toimialueen GPO: ita (konfiguroitavissa käyttämällä gpmc.msc mmc-konsolia). Jos haluat määrittää vain yhden palvelimen valvonnan, voit käyttää paikallista ryhmäkäytäntöeditoria.

  1. avaa paikallisen Ryhmäkäytäntöeditorin konsoli– gpedit.msc;
  2. Siirry GPO-osioon, jossa on kehittyneet tarkastuskäytännöt: Windows Settings – > Security Settings – > Advanced Audit Policy Configuration – > Object Access;
  3. Open the Audit File System policy and determine that you want to log only successed access events to file system objects (Configure the following audit events -> Success);
    voit myös ottaa käyttöön paikallisten objektien käytön valvonnan käyttämällä Windowsin asetukset – > suojausasetukset – > paikallinen käytäntö – > Tarkastuskäytäntö. Tiedostojärjestelmän Tarkastuskäytännön käyttäminen on kuitenkin suotavaa, koska se seuraa vain NTFS-käyttöoikeustapahtumia.

    ota audit-tiedostojärjestelmäkäytäntö käyttöön windows server

  4. Tallenna muutokset ja päivitä paikalliset Ryhmäkäytäntöasetuksesi komennolla gpupdate /force.

jaetussa kansiossa

nyt sinun on määritettävä valvonta sen share-verkkokansion ominaisuuksissa, johon haluat seurata käyttöoikeutta. Suorita File Explorer ja avaa kansion ominaisuudet. Mene Turvavälilaskuun. Napsauta Lisäasetukset-painiketta – > siirry valvonta-välilehteen.

jos näkyviin tulee viesti ”sinun on oltava järjestelmänvalvoja tai sinulle on annettu asianmukaiset oikeudet tarkastella tämän objektin tarkastusominaisuuksia”, napsauta Jatka-painiketta.

 määritä jaetun kansion tarkastusasetukset

napsauta Lisää-painiketta määrittääksesi käyttäjän tai ryhmän, jolle haluat tallentaa tarkastustapahtumia. Jos haluat seurata kaikkien käyttäjien käyttöoikeustapahtumia, määritä kaikki-ryhmä.

sitten sinun täytyy määrittää, mitä käyttöoikeuksia käytetään objektin pitäisi olla kirjautunut. Jos haluat tallentaa tapahtumalokiin vain tiedostojen poistotapahtumia, napsauta Näytä lisäoikeudet-painiketta. Jätä tapahtumaluettelossa vain kansioiden ja tiedostojen poistotapahtumien valvonta-Poista ja poista alikansiot ja tiedostot.

 määritä jaetun kansion tiedostojen poistotoimien tarkastus Windows Server 2016folderissa

Vihje. Muista, että Windows-objektien valvontakäytäntö vaatii lisää laskentaresursseja. Käytä sitä huolellisesti, yritä aina minimoida määrä tarkastus esineitä ja tapahtumia kirjautua.

$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

nyt, jos käyttäjä poistaa minkä tahansa tiedoston tai kansion jaetussa verkkokansiossa, tiedostojärjestelmä – > Audit Success file delete event näkyy Tietoturvalokissa Tapahtumatunnus 4663 Microsoft Windows security auditing-lähteestä.

avaa Tapahtumienvalvojan mmc-konsoli (eventvwr.msc), laajenna Windowsin lokit -> Suojausosa. Käytä EventID 4663: n tapahtumalokisuodatinta.

tiedoston poistotapahtuman tunnus 4663 Windowsin Tapahtumienvalvonnan suojauslokissa

Avaa kaikki jäljellä olevat tapahtumat Tapahtumienvalvonnassa. Kuten näet, se sisältää tietoja nimi poistetun tiedoston, tilin käyttäjän, joka poisti tiedoston ja prosessin nimi.

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

tiedoston poistotarkastustapahtuma 4663, jossa käyttäjätunnus suojauslokissa

kun tiedostonkäytön valvontakäytäntö on otettu käyttöön, löydät sen Suojauslokista :

  • kuka poisti tiedoston jaetusta verkkokansiosta ja milloin se tapahtui;
  • millä sovelluksella (prosessilla) tiedosto poistettiin;
  • mikä on palautettavan varmuuskopion päivämäärä.

miten kirjoittaa tiedoston Poistotapahtumia SQL-tietokantaan (MySQL/MSSQL)?

vaikka poistettujen tiedostojen tarkastus olisikin käytössä, voi lokeista olla hankala löytää jotain. Ensinnäkin on melko vaikea löytää tiettyä merkintää tuhansien tapahtumien joukosta (Windowsissa ei ole kätevää työkalua etsiä tapahtumaa joustavalla suodattimella). Toiseksi, jos tiedosto on poistettu kauan sitten, tämä tapahtuma voi olla poissa lokit, koska se korvattiin uusia tapahtumia.

voit tallentaa kaikki tiedostojen poistotapahtumat SQL-tietokantaan. Voit tallentaa tapahtumia Microsoft SQL Server -, Elasticsearch-tai MySQL/MariaDB-tietokannoilla.

tässä esimerkissä näytämme, miten auditointitapahtumat kirjataan erilliseen tietokantataulukkoon MySQL: llä. Käytän seuraavaa taulukkomuotoa:

  • palvelimen nimi;
  • poistetun tiedoston nimi;
  • päivämäärä ja kellonaika;
  • tiedoston poistaneen käyttäjän nimi.

MySQL-kysely tämän taulukon luomiseksi näyttää tältä:

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

Huom. Esimerkkinä siitä, miten pääsen MySQL-tietokantaan Powershellista, pidettiin aiemmin artikkelissa, jossa kysyttiin MySQL-tietokantaa Powershellissa.

jos haluat käyttää Microsoft SQL Server-tietokantaa, tutustu artikkeliin ” How to run a MSSQL Server Query from PowerShell?”

jos haluat saada EventID 4663: n tapahtumat nykyisen päivän Suojauslokista, voit käyttää seuraavaa PowerShell-komentosarjaa:

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

Windows Security audit - event 4663 properties

the next PowerShell script will write the data you get to the MySQL database on a remote server (with the IP address 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()

Vastaa

Sähköpostiosoitettasi ei julkaista.