Acompanhe quem excluiu o arquivo / pasta do Windows Server 2016 com a Política de auditoria

ainda não sabe como rastrear quem excluiu o arquivo / pasta do windows server 2016 com a Política de auditoria? Dê uma olhada neste blog.

aqui na Bobcares, vimos vários desses erros relacionados ao Windows como parte de nossos serviços de gerenciamento de Servidores para hosts da web e provedores de serviços online.

hoje veremos como rastrear as janelas de arquivo/pasta excluídas.

Como controlar o Que Excluiu o Arquivo/Pasta do Windows Server 2016 com a Política de Auditoria

Agora vamos dar uma olhada em como nossos Engenheiros de Suporte encontrar o que excluiu o arquivo/pasta do servidor.Usamos a auditoria de eventos de acesso a objetos do sistema de arquivos para identificar um usuário específico que criou, excluiu ou modificou um arquivo específico.

veremos agora como configurar a auditoria de eventos para arquivos em uma pasta de rede compartilhada no Windows Server 2016. Depois de configurar a auditoria, usamos as informações do Visualizador de Eventos para encontrar o usuário que excluiu um arquivo específico no servidor de arquivos.No entanto, quando excluímos um arquivo de uma pasta de rede compartilhada, ele é excluído imediatamente em vez de ser enviado para a lixeira do Usuário.

como Habilitar a Política de auditoria de acesso a arquivos e pastas no Windows

por padrão, a auditoria de acesso a objetos do sistema de arquivos não será ativada no Windows Server. Podemos ativar e configurar as configurações de auditoria usando a Política de grupo. Aqui estão as etapas que seguimos para configurar a auditoria em um servidor usando o editor de Diretiva de Grupo Local.

    • primeiro, abrimos o Console do editor de Política de Grupo Local-gpedit.msc
    • em seguida, vamos para a seção GPO com políticas avançadas de auditoria: Configurações do Windows >> Configurações de Segurança >> Avançado de Diretiva de Auditoria de Configuração >> Object Access
    • Após isso, vamos abrir o Arquivo de Auditoria de diretiva do Sistema e especificar que queremos registrar apenas bem sucedidos eventos de acesso a objetos do sistema de arquivos (Configure os seguintes eventos de auditoria >> Sucesso)
      como controlar o que excluiu o arquivo/pasta do windows server 2016 com a política de auditoria
    • Finalmente, podemos salvar as alterações e atualizar a Diretiva de Grupo local configurações usando o comando abaixo.
      gpupdate /force

configurando as configurações de auditoria excluídas do arquivo em uma pasta compartilhada

agora configuramos a auditoria nas propriedades da pasta compartilhar rede à qual queremos rastrear o acesso.

1. Primeiro, executamos o File Explorer e abrimos as propriedades da pasta. Vamos para a guia Segurança e clique no botão Avançado. Então vamos para a guia auditoria.

2. Se a mensagem abaixo aparecer, clique no botão continuar.

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

3. Em seguida, clicamos no botão Adicionar para especificar o usuário ou grupo para o qual queremos capturar eventos de auditoria. Se quisermos rastrear eventos de Acesso para todos os usuários, especificamos o Grupo Todos.

4. Depois disso, também especificamos quais permissões usadas para acessar o objeto devem ser registradas. Para salvar apenas eventos de exclusão de arquivo no Log de eventos, clicamos no botão Mostrar permissões avançadas. Na lista de eventos, deixamos a auditoria apenas para os eventos de exclusão de pasta e arquivo – Excluir e excluir subpastas e arquivos.

no caso, o usuário exclui qualquer arquivo ou pasta na pasta de rede compartilhada. Em seguida, o evento de exclusão de arquivo do sistema de arquivos -> Audit Success file aparece no log de segurança com o Event ID 4663 da fonte de auditoria de segurança do Microsoft Windows.

em seguida, abrimos o console MMC do Visualizador de eventos (eventvwr.msc), expanda a seção Logs do Windows -> segurança. Habilite o filtro de log de eventos pelo EventID 4663.

depois disso, abrimos qualquer um dos eventos restantes no Visualizador de eventos. Vemos que ele contém informações sobre o nome do arquivo excluído, a conta do usuário que excluiu o arquivo e o nome do 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

Depois de habilitar o arquivo de diretiva auditoria de acesso, podemos encontrar os detalhes abaixo no log de Segurança:

  • Que excluiu o arquivo a partir da pasta de rede compartilhada e, quando isso aconteceu,
  • Que tipo de aplicação (processo) foi usado para apagar o arquivo
  • o Que é a data do backup a ser restaurado

Como Gravar o Arquivo de Exclusão de Eventos de Banco de dados SQL (MySQL/MSSQL)

no Entanto, mesmo se a auditoria de arquivos excluídos é habilitado, ele pode ser problemático para encontrar algo nos logs. Em primeiro lugar, é muito difícil encontrar uma entrada específica entre milhares de eventos. Em segundo lugar, se um arquivo foi excluído há muito tempo, esse evento pode estar ausente nos logs, uma vez que foi substituído por novos eventos.

salvamos todos os eventos de exclusão de arquivo no banco de dados SQL. Para isso, usamos bancos de dados Microsoft SQL Server, Elasticsearch ou MySQL/MariaDB para armazenar os eventos.Por exemplo, vamos ver como registrar eventos de auditoria em uma tabela de banco de dados separada no MySQL. Podemos usar o seguinte formato de tabela:

  • o nome do Servidor
  • Nome do arquivo que foi excluído
  • Data e hora
  • Nome do usuário que excluiu o arquivo

O MySQL query para criar esta tabela é semelhante abaixo:

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

Para obter eventos com Id de evento 4663 do log de Segurança para o dia atual, podemos usar o seguinte script do 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}}

O seguinte script do PowerShell irá gravar os dados, podemos obter para o banco de dados MySQL em um servidor remoto (com o endereço 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()

Depois de salvar os eventos em um banco de dados externo, nós podemos limpar o log de Eventos.

agora, para descobrir quem excluiu o arquivo “AnnualReport.DOC”, executamos o script abaixo no Console do 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()

finalmente, agora, vemos o nome de usuário e a hora em que o arquivo foi excluído no console PS.

Logging File Delete Audit Events to a Text File

se não quisermos usar um servidor de banco de dados separado, salvamos eventos de auditoria de exclusão de arquivos em um arquivo de log de texto simples. Para isso, usamos este script PowerShell para salvar a saída em um arquivo de texto:

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

Deixe uma resposta

O seu endereço de email não será publicado.