Track who deleted file/folder from Windows Server 2016 with audit policy

Still not sure how to track who deleted file/folder from windows server 2016 with audit policy? Katso tätä blogia.

täällä Bobcaresissa olemme nähneet useita tällaisia Windowsiin liittyviä virheitä osana palvelinhallintapalveluitamme web-isännille ja verkkopalvelun tarjoajille.

tänään nähdään, miten poistetun tiedoston/kansion ikkunat jäljitetään.

kuinka seurata kuka poisti tiedoston/kansion Windows Server 2016: sta Tarkastuskäytännöllä

nyt katsotaan, miten Tukiteknikkomme löytävät kuka poisti tiedoston/kansion palvelimelta.

käytämme tiedostojärjestelmän object access-tapahtumavalvontaa tunnistaaksemme tietyn käyttäjän, joka on luonut, poistanut tai muokannut tietyn tiedoston.

nyt katsotaan, miten Windows Server 2016: n jaetussa verkkokansiossa olevien tiedostojen tapahtumien valvonta määritetään. Kun olet määrittänyt valvonnan, käytämme Tapahtumienvalvonnan tietoja löytääksemme käyttäjän, joka poisti tietyn tiedoston tiedostopalvelimesta.

kuitenkin, kun poistamme tiedoston jaetusta verkkokansiosta, se poistetaan välittömästi sen sijaan, että se lähetettäisiin käyttäjän roskakoriin.

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

oletuksena tiedostojärjestelmän objektien käytön valvonta ei ole käytössä Windows Server-järjestelmässä. Voimme ottaa käyttöön ja määrittää tarkastusasetukset ryhmäkäytännön avulla. Tässä ovat vaiheet, joita noudatamme määritettäessä yhden palvelimen valvontaa paikallisen Ryhmäkäytäntöeditorin avulla.

    • ensin avaamme paikallisen Ryhmäkäytäntöeditorin konsolin-gpedit.msc
    • seuraavaksi siirrymme GPO-osioon, jossa on kehittyneet tarkastuskäytännöt: Windows Settings >> Security Settings >> Advanced Audit Policy Configuration >> Object Access
    • sen jälkeen avaamme Audit File System-käytännön ja täsmennämme, että haluamme kirjautua vain onnistuneesti tiedostojärjestelmän objekteihin (Configure the following audit events >> Success)
      miten seurata, kuka on poistanut tiedoston/kansion windows serveriltä 2016 kun Tarkastuskäytäntö
    • lopulta tallennamme muutokset ja päivitämme paikalliset ryhmäkäytäntöasetukset alla olevalla komennolla.
      gpupdate /force

Tiedostojen poistettujen Tarkastusasetusten määrittäminen jaetussa kansiossa

nyt määritämme valvonnan sen share-verkkokansion ominaisuuksiin, johon haluamme seurata pääsyä.

1. Ensimmäinen, suoritamme File Explorer ja avaa kansion ominaisuudet. Menemme Turvallisuus välilehti ja klikkaa Lisäasetukset-painiketta. Sitten siirrytään tilintarkastus-välilehteen.

2. Jos alla oleva viesti tulee näkyviin, napsauta Jatka-painiketta.

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

3. Napsauta Lisää-painiketta määrittääksesi käyttäjän tai ryhmän, jolle haluamme tallentaa tarkastustapahtumia. Jos haluamme seurata käyttöoikeustapahtumia kaikille käyttäjille, määritämme kaikki-ryhmän.

4. Sen jälkeen, me myös määrittää, mitä käyttöoikeuksia käytetään objektin pitäisi olla kirjautunut. Jos haluat tallentaa vain tiedoston poistotapahtumat tapahtumalokiin, napsautamme Näytä lisäoikeudet-painiketta. Tapahtumaluettelossa jätämme valvonnan vain kansion ja tiedostojen poistotapahtumille – Poista ja poista alikansiot ja tiedostot.

mikäli käyttäjä poistaa minkä tahansa jaetun verkon kansion tiedoston tai kansion. Sitten tiedostojärjestelmä – > Audit Success file delete event ilmestyy Tietoturvalokiin, jossa on Tapahtumatunnus 4663 Microsoft Windowsin tietoturvavalvonnan lähteestä.

sitten avataan Tapahtumankatsojan MMC-konsoli (eventvwr.msc), laajenna Windowsin lokit -> Suojausosiota. Käytä EventID 4663: n tapahtumalokisuodatinta.

sen jälkeen avataan kaikki jäljellä olevat tapahtumat Tapahtumakatsomossa. Näemme, että 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\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

kun tiedostonkäytön tarkastuskäytäntö on otettu käyttöön, alla olevat tiedot löytyvät Suojauslokista:

  • kuka poisti tiedoston jaetusta verkkokansiosta ja kun se tapahtui
  • mitä sovellusta (prosessia) käytettiin tiedoston poistamiseen
  • mikä on palautettavan varmuuskopion päivämäärä

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

kuitenkin, vaikka poistettujen tiedostojen tarkastus on käytössä, voi olla hankalaa löytää jotain lokit. Ensinnäkin tuhansien tapahtumien joukosta on melko vaikea löytää tiettyä merkintää. Toiseksi, jos tiedosto on poistettu kauan sitten, tämä tapahtuma voi olla poissa lokit, koska se korvattiin uusia tapahtumia.

tallennamme kaikki tiedostojen poistotapahtumat SQL-tietokantaan. Tätä varten Käytämme Microsoft SQL Server -, Elasticsearch-tai MySQL/MariaDB-tietokantoja tapahtumien tallentamiseen.

katsotaan esimerkiksi, miten auditointitapahtumat kirjataan erilliseen tietokantataulukkoon MySQL: ssä. Voimme käyttää 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ää alla:

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

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

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

Seuraava PowerShell-skripti kirjoittaa tiedot, jotka saamme MySQL-tietokantaan etäpalvelimella (IP-osoitteen kanssa 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()

kun olet tallentanut tapahtumat ulkoiseen tietokantaan, voimme tyhjentää tämän tapahtumalokin.

nyt, selvittää kuka on poistanut tiedoston ” Vuosiraportti.DOC”, suoritamme alla olevan komentosarjan PowerShell-konsolissa.

$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()

vihdoin, nyt, näemme käyttäjätunnuksen ja kellonajan, jolloin tiedosto poistettiin PS-konsolista.

kirjaaminen tiedoston Delete Audit Events tekstitiedostoon

jos emme halua käyttää erillistä tietokantapalvelinta, Tallennamme tiedoston delete audit events tavalliseen tekstilokitiedostoon. Tätä varten Käytämme tätä PowerShell-komentosarjaa tallentamaan tulosteen tekstitiedostoon:

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

Vastaa

Sähköpostiosoitettasi ei julkaista.