No Visualizador de eventos, os erros registrados são comuns e você encontrará diferentes erros com diferentes IDs de evento. Os eventos que são registrados nos logs de segurança geralmente serão da palavra-chave Audit Success ou Audit Failure . Nesta postagem, discutiremos O log de segurança agora está cheio (Event ID 1104), incluindo por que esse evento é acionado e as ações que você pode executar nessa situação, seja em uma máquina cliente ou servidor.
Como indica a descrição do evento, esse evento é gerado toda vez que o log de segurança do Windows fica cheio. Por exemplo, se o tamanho máximo do arquivo de log de eventos de segurança for atingido e o método de retenção do log de eventos for Não substituir eventos (limpar logs manualmente), conforme descrito nesta documentação da Microsoft . A seguir estão as opções nas configurações do log de eventos de segurança:
- Sobrescrever eventos conforme necessário (eventos mais antigos primeiro) – Esta é a configuração padrão. Quando o tamanho máximo do log for atingido, os itens mais antigos serão excluídos para dar lugar a novos itens.
- Arquivar o log quando cheio, não sobrescrever eventos – Se você selecionar esta opção, o Windows salvará automaticamente o log quando o tamanho máximo do log for atingido e criará um novo. O log será arquivado onde quer que o log de segurança esteja sendo armazenado. Por padrão, ele estará no seguinte local %SystemRoot%\SYSTEM32\WINEVT\LOGS . Você pode exibir as propriedades do Visualizador de eventos de login para determinar o local exato.
- Não sobrescrever eventos (limpar logs manualmente) – Se você selecionar esta opção e o log de eventos atingir o tamanho máximo, nenhum outro evento será gravado até que o log seja limpo manualmente.
Para verificar ou modificar suas configurações de log de eventos de segurança, a primeira coisa que você pode querer alterar seria o Tamanho máximo do log (KB) – o tamanho máximo do arquivo de log é 20 MB (20480 KB). Além disso, decida sobre sua política de retenção conforme descrito acima.
O log de segurança agora está cheio (Event ID 1104)
Quando o limite superior do tamanho do arquivo de eventos de log de segurança for atingido e não houver espaço para registrar mais eventos, a ID de evento 1104: O log de segurança agora está cheio será registrada indicando que o arquivo de log está cheio e você precisa execute qualquer uma das seguintes ações imediatas.
- Habilitar a substituição de log no Visualizador de Eventos
- Arquivar o log de eventos de segurança do Windows
- Limpar manualmente o registro de segurança
Vamos ver essas ações recomendadas em detalhes.
1] Habilitar a substituição de log no Visualizador de Eventos
Por padrão, o log de segurança é configurado para substituir eventos conforme necessário. Ao ativar a opção de substituição de logs, isso permitirá que o Visualizador de eventos substitua os logs antigos, evitando que a memória fique cheia. Portanto, você precisa garantir que essa opção esteja ativada seguindo estas etapas:
- Pressione a tecla Windows + R para invocar a caixa de diálogo Executar.
- Na caixa de diálogo Executar, digite eventvwr e pressione Enter para abrir o Visualizador de eventos.
- Expanda Logs do Windows .
- Clique em Segurança .
- No painel direito, no menu Ações , selecione Propriedades . Como alternativa, clique com o botão direito do mouse no log de segurança no painel de navegação esquerdo e selecione Propriedades .
- Agora, na seção Quando o tamanho máximo do log de eventos for atingido , selecione o botão de opção da opção Substituir eventos conforme necessário (eventos mais antigos primeiro) .
- Clique em Aplicar > OK .
2] Arquive o log de eventos de segurança do Windows
Em um ambiente preocupado com a segurança (especialmente em uma empresa/organização), pode ser necessário ou obrigatório arquivar o log de eventos de segurança do Windows. Isso pode ser feito por meio do Visualizador de eventos, conforme mostrado acima, selecionando a opção Arquivar o log quando cheio, não sobrescrever eventos ou criando e executando um script do PowerShell usando o código abaixo. O script do PowerShell verificará o tamanho do log de eventos de segurança e o arquivará, se necessário. As etapas executadas pelo script são as seguintes:
- Se o log de eventos de segurança estiver abaixo de 250 MB, um evento informativo será gravado no log de eventos do aplicativo
- Se o log tiver mais de 250 MB
- O log é arquivado em D:\Logs\OS.
- Se a operação de arquivamento falhar, um evento de erro será gravado no log de eventos do aplicativo e um e-mail será enviado.
- Se a operação de arquivamento for bem-sucedida, um evento informativo será gravado no log de eventos do aplicativo e um e-mail será enviado.
Antes de utilizar o script em seu ambiente, configure as seguintes variáveis:
- $ArchiveSize – Defina o limite de tamanho de log desejado (MB)
- $ArchiveFolder – Defina para um caminho existente onde você deseja que os arquivos de log sejam arquivados
- $mailMsgServer – Defina como um servidor SMTP válido
- $mailMsgFrom – Defina como um endereço de e-mail DE válido
- $MailMsgTo – Defina como um endereço de e-mail TO válido
# Defina o local do arquivo
$ArchiveFolder = "D:\Logs\OS"
# Qual o tamanho que o log de eventos de segurança pode ter em MB antes de arquivarmos automaticamente?
$ArchiveSize = 250
# Verifique se a pasta de arquivo existe
If (!(Test-Path $ArchiveFolder)) {
Host de gravação
Write-Host "Pasta de arquivo $ArchiveFolder não existe, abortando ..." -ForegroundColor Red
Saída
}
# Configurar ambiente
$sysName = $env:nomedocomputador
$eventName = "Monitoramento de log de eventos de segurança"
$mailMsgServer = "seu.smtp.server.name"
$mailMsgSubject = "$sysName Monitoramento de log de eventos de segurança"
$mailMsgFrom = " from@email.address "
$mailMsgTo = " to@email.address "
# Adicione a origem do evento ao log do aplicativo, se necessário
Se (-NOT ([System.Diagnostics.EventLog]::SourceExists($eventName))) {
New-EventLog -LogName Application -Source $eventName
}
# Verifique o log de segurança
$Log = Get-WmiObject Win32_NTEventLogFile -Filter "logfilename = 'security'"
$SizeCurrentMB = [math]::Round($Log.FileSize / 1024 / 1024,2)
$SizeMaximumMB = [math]::Round($Log.MaxFileSize / 1024 / 1024,2)
Host de gravação
# Arquive o log de segurança se estiver acima do limite
If ($SizeCurrentMB -gt $ArchiveSize) {
$ArchiveFile = $ArchiveFolder + "\Security-" + (Get-Date -Format " aaaa-MM-dd@HHmm ") + ".evt"
$EventMessage = "O tamanho do log de eventos de segurança é atualmente " + $SizeCurrentMB + " MB. O tamanho máximo permitido é " + $SizeMaximumMB + " MB. O tamanho do log de eventos de segurança excedeu o limite de $ArchiveSize MB."
$Results = ($Log.BackupEventlog($ArchiveFile)).ReturnValue
Se ($Resultados -eq 0) {
# Backup bem-sucedido do log de eventos de segurança
$Resultados = ($Log.ClearEventlog()).ReturnValue
$EventMessage += "O log de eventos de segurança foi arquivado com sucesso em $ArchiveFile e limpo."
Write-Host $EventMessage
Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Information -Message $eventMessage -Category 0
$mailMsgBody = $EventMessage
Send-MailMessage -From $mailMsgFrom -to $MailMsgTo -subject $mailMsgSubject -Body $mailMsgBody -SmtpServer $mailMsgServer
}
Outro {
$EventMessage += "O log de eventos de segurança não pôde ser arquivado em $ArchiveFile e não foi limpo. Revise e resolva os problemas de log de eventos de segurança em $sysName o mais rápido possível!"
Write-Host $EventMessage
Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Error -Message $eventMessage -Category 0
$mailMsgBody = $EventMessage
Send-MailMessage -From $mailMsgFrom -to $MailMsgTo -subject $mailMsgSubject -Body $mailMsgBody -SmtpServer $mailMsgServer
}
}
Outro {
# Grave um evento informativo no log de eventos do aplicativo
$EventMessage = "O tamanho do log de eventos de segurança é atualmente " + $SizeCurrentMB + " MB. O tamanho máximo permitido é " + $SizeMaximumMB + " MB. O tamanho do log de eventos de segurança está abaixo do limite de $ArchiveSize MB, então nenhuma ação foi tomada ."
Write-Host $EventMessage
Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Information -Message $eventMessage -Category 0
}
# Fecha o registro
$Log.Dispose()
Se desejar, você pode usar um arquivo XML para configurar o script para ser executado a cada hora. Para isso, salve o código a seguir em um arquivo XML e importe-o para o Agendador de Tarefas . Certifique-se de alterar a seção <Arguments> para o nome da pasta/arquivo onde você salvou o script.
<?xml versão="1.0" codificação="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Data>2017-01-18T16:41:30.9576112</Data>
<Descrição>Monitorar log de eventos de segurança. Arquive e limpe o log se o limite for atingido.</Description>
</RegistrationInfo>
<Acionadores>
<CalendarTrigger>
<Repetição>
<Intervalo>PT2H</Intervalo>
<StopAtDurationEnd>falso</StopAtDurationEnd>
</Repetição>
<StartBoundary>2017-01-18T00:00:00</StartBoundary>
<ExecutionTimeLimit>PT30M</ExecutionTimeLimit>
<Ativado>verdadeiro</Ativado>
<AgendaPorDia>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Acionadores>
<Diretores>
<Principal id="Autor">
<UserId>S-1-5-18</UserId>
<RunLevel>Mais alto disponível</RunLevel>
</Principal>
</Principais>
<Configurações>
<MultipleInstancesPolicy>IgnorarNovo</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>verdadeiro</AllowHardTerminate>
<StartWhenAvailable>falso</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>falso</RunOnlyIfNetworkAvailable>
<Configurações ociosas>
<StopOnIdleEnd>verdadeiro</StopOnIdleEnd>
<RestartOnIdle>falso</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Ativado>verdadeiro</Ativado>
<Oculto>falso</Oculto>
<RunOnlyIfIdle>falso</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>falso</UseUnifiedSchedulingEngine>
<WakeToRun>falso</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Prioridade>7</Prioridade>
</Configurações>
<Ações Contexto="Autor">
<Executivo>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
<Arguments>c:\scripts\PS\MonitorSecurityLog.ps1</Arguments>
</Exec>
</Ações>
</Tarefa>
Depois de habilitar ou configurar o arquivamento dos logs, os logs mais antigos serão salvos e não serão substituídos pelos logs mais recentes. A partir de agora, o Windows arquivará o log quando o tamanho máximo do log for atingido e o salvará no diretório (se não for o padrão) que você especificou. O arquivo arquivado será nomeado no formato Archive-<Section>-<Date/Time> , por exemplo, Archive-Security-2023-02-14-18-05-34 . O arquivo arquivado agora pode ser usado para rastrear eventos mais antigos.
3] Limpe manualmente o registro de segurança
Se você definiu a política de retenção como Não sobrescrever eventos (limpar logs manualmente) , será necessário limpar manualmente o log de segurança usando qualquer um dos métodos a seguir.
- Visualizador de eventos
- Utilitário WEVTUTIL.exe
- arquivo em lote
Qual ID de evento é detectado por malware?
O ID de log de eventos de segurança do Windows 4688 indica que o malware foi detectado no sistema. Por exemplo, se houver malware presente em seu sistema Windows, pesquisar o evento 4688 revelará quaisquer processos executados por esse programa mal-intencionado. Com essas informações, você pode executar uma verificação rápida, agendar uma verificação do Windows Defender ou executar uma verificação offline do Defender .
Qual é o ID de segurança para o evento de logon?
No Visualizador de eventos, a ID de evento 4624 será registrada em todas as tentativas bem-sucedidas de logon em um computador local. Este evento é gerado no computador que foi acessado, ou seja, onde foi criada a sessão de logon. O evento Tipo de logon 11: CachedInteractive indica um usuário conectado a um computador com credenciais de rede que foram armazenadas localmente no computador. O controlador de domínio não foi contatado para verificar as credenciais.