安全日誌現在已滿(事件 ID 1104)

安全日誌現在已滿(事件 ID 1104)

在事件查看器中,記錄的錯誤很常見,您會遇到具有不同事件 ID 的不同錯誤。安全日誌中記錄的事件通常是關鍵字 Audit Success 或 Audit Failure。在本文中,我們將討論安全日誌現已滿(事件 ID 1104),包括觸發此事件的原因以及在這種情況下您可以在客戶端或服務器計算機上執行的操作。

如事件描述所示,每次 Windows 安全日誌​​變滿​​時都會生成此事件。例如,如果已達到安全事件日誌文件的最大大小,並且事件日誌保留方法是不覆蓋事件(手動清除日誌),如本Microsoft 文檔中所述。以下是安全事件日誌設置中的選項:

  • 根據需要覆蓋事件(最早的事件優先) ——這是默認設置。一旦達到最大日誌大小,將刪除舊項目以為新項目讓路。
  • 滿時歸檔日誌,不覆蓋事件– 如果選擇此選項,Windows 將在達到最大日誌大小時自動保存日誌並創建一個新日誌。日誌將在存儲安全日誌的任何地方存檔。默認情況下,這將位於以下位置 %SystemRoot%\SYSTEM32\WINEVT\LOGS。您可以查看登錄事件查看器的屬性以確定確切位置。
  • 不覆蓋事件(手動清除日誌) – 如果您選擇此選項並且事件日誌達到最大大小,則在手動清除日誌之前不會寫入更多事件。

要檢查或修改您的安全事件日誌設置,您可能首先要更改的是最大日誌大小 (KB) – 最大日誌文件大小為 20 MB (20480 KB)。除此之外,請按照上文所述確定您的保留政策。

安全日誌現在已滿(事件 ID 1104)

當達到安全日誌事件文件大小的上限,並且沒有空間記錄更多事件時,將記錄事件 ID 1104:安全日誌現在已滿,表示日誌文件已滿,您需要立即執行以下任何操作。

  1. 在事件查看器中啟用日誌覆蓋
  2. 存檔 Windows 安全事件日誌
  3. 手動清除安全日誌

讓我們詳細了解這些建議的操作。

1]在事件查看器中啟用日誌覆蓋

在事件查看器中啟用日誌覆蓋

默認情況下,安全日誌配置為根據需要覆蓋事件。當您打開覆蓋日誌選項時,這將允許事件查看器覆蓋舊日誌,從而避免內存變滿。因此,您需要按照以下步驟確保啟用此選項:

  • Windows 鍵 + R調用“運行”對話框。
  • 在“運行”對話框中,鍵入 eventvwr 並按 Enter 以打開事件查看器。
  • 展開Windows 日誌
  • 單擊安全
  • 在右窗格中的“操作”菜單下,選擇“屬性”。或者,右鍵單擊左側導航窗格中的安全日誌並選擇屬性
  • 現在,在When maximum event log size is reached部分下,選擇 Overwrite events as needed(oldest events first)選項的單選按鈕。
  • 單擊應用>確定

2]存檔Windows安全事件日誌

在註重安全的環境中(尤其是在企業/組織中),可能需要或強制要求對 Windows 安全事件日誌進行存檔。這可以通過事件查看器完成,如上所示,方法是選擇“日誌滿時存檔,不覆蓋事件”選項,或者使用以下代碼創建和運行 PowerShell 腳本。PowerShell 腳本將檢查安全事件日誌的大小並在必要時將其存檔。腳本執行的步驟如下:

  • 如果安全事件日誌小於 250 MB,則會將信息性事件寫入應用程序事件日誌
  • 如果日誌超過 250 MB
    • 日誌存檔到 D:\Logs\OS。
    • 如果存檔操作失敗,錯誤事件將寫入應用程序事件日誌並發送電子郵件。
    • 如果存檔操作成功,信息事件將寫入應用程序事件日誌並發送電子郵件。

在您的環境中使用該腳本之前,請配置以下變量:

  • $ArchiveSize – 設置為所需的日誌大小限制 (MB)
  • $ArchiveFolder – 設置為您希望日誌文件存檔所在的現有路徑
  • $mailMsgServer – 設置為有效的 SMTP 服務器
  • $mailMsgFrom – 設置為有效的發件人電子郵件地址
  • $MailMsgTo – 設置為有效的 TO 電子郵件地址

# Set the archive location
$ArchiveFolder = "D:\Logs\OS"

# How big can the security event log get in MB before we automatically archive?
$ArchiveSize = 250

# Verify the archive folder exists
If (!(Test-Path $ArchiveFolder)) {
Write-Host
Write-Host "Archive folder $ArchiveFolder does not exist, aborting. .."-ForegroundColor Red
Exit
}

# Configure environment
$sysName = $env:computername
$eventName = "Security Event Log Monitoring"
$mailMsgServer = "your.smtp.server.name"
$mailMsgSubject = "$sysName Security Event Log Monitoring"
$mailMsgFrom = "[email protected]"
$mailMsgTo = "[email protected]"

# Add event source to application log if necessary
If (-NOT ([System.Diagnostics.EventLog]::SourceExists($eventName))) {
New-EventLog -LogName Application -Source $eventName
}

# Check the security log
$Log = Get-WmiObject Win32_NTEventLogFile -Filter "logfilename = 'security'"
$SizeCurrentMB = [math]::Round($Log.FileSize / 1024 / 1024,2)
$SizeMaximumMB = [math]::Round($Log.MaxFileSize / 1024 / 1024,2)
Write-Host

# Archive the security log if over the limit
If ($SizeCurrentMB -gt $ArchiveSize) {
$ArchiveFile = $ArchiveFolder + "\Security-"+ (Get-Date -Format "[email protected]") + ".evt"
$EventMessage = "The security event log size is currently "+ $SizeCurrentMB + "MB. The maximum allowable size is "+ $SizeMaximumMB + "MB. The security event log size has exceeded the threshold of $ArchiveSize MB."
$Results = ($Log.BackupEventlog($ArchiveFile)).ReturnValue
If ($Results -eq 0) {
# Successful backup of security event log
$Results = ($Log.ClearEventlog()).ReturnValue
$EventMessage += "The security event log was successfully archived to $ArchiveFile and cleared."
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
}
Else {
$EventMessage += "The security event log could not be archived to $ArchiveFile and was not cleared. Review and resolve security event log issues on $sysName ASAP!"
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
}
}
Else {
# Write an informational event to the application event log
$EventMessage = "The security event log size is currently "+ $SizeCurrentMB + "MB. The maximum allowable size is "+ $SizeMaximumMB + "MB. The security event log size is below the threshold of $ArchiveSize MB so no action was taken."
Write-Host $EventMessage
Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Information -Message $eventMessage -Category 0
}
# Close the log
$Log.Dispose()

如果需要,您可以使用 XML 文件將腳本設置為每小時運行一次。為此,將以下代碼保存到一個 XML 文件中,然後將其導入到任務計劃程序中。確保將 <Arguments> 部分更改為保存腳本的文件夾/文件名。

<?xml version="1.0"encoding="UTF-16"?>
<Task version="1.3"xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2017-01-18T16:41:30.9576112</Date>
<Description>Monitor security event log. Archive and clear log if threshold is met.</Description>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<Repetition>
<Interval>PT2H</Interval>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<StartBoundary>2017-01-18T00:00:00</StartBoundary>
<ExecutionTimeLimit>PT30M</ExecutionTimeLimit>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
<Arguments>c:\scripts\PS\MonitorSecurityLog.ps1</Arguments>
</Exec>
</Actions>
</Task>

一旦您啟用或配置了歸檔日誌,最舊的日誌將被保存並且不會被更新的日誌覆蓋。所以現在開始,當達到最大日誌大小時,Windows 將歸檔日誌並將其保存到您指定的目錄(如果不是默認目錄)。存檔文件將以 Archive-<Section>-<Date/Time> 格式命名,例如 Archive-Security-2023-02-14-18-05-34。存檔文件現在可用於追查舊事件。

3]手動清除安全日誌

手動清除安全日誌

如果您已將保留策略設置為不覆蓋事件(手動清除日誌),您將需要使用以下任一方法手動清除安全日誌。

  • 事件查看器
  • WEVTUTIL.exe 實用程序
  • 批處理文件

就是這樣!

檢測到惡意軟件的事件 ID 是什麼?

Windows 安全事件日誌 ID 4688 表示在系統上檢測到惡意軟件。例如,如果您的 Windows 系統上存在惡意軟件,搜索事件 4688 將顯示該惡意程序執行的所有進程。使用該信息,您可以執行快速掃描、計劃 Windows Defender 掃描或運行 Defender 脫機掃描。

登錄事件的安全 ID 是什麼?

在事件查看器中,每次成功登錄本地計算機時都會記錄事件 ID 4624 。此事件在被訪問的計算機上生成,換句話說,在創建登錄會話的計算機上。事件登錄類型 11:CachedInteractive表示用戶使用存儲在計算機本地的網絡憑據登錄到計算機。未聯繫域控制器來驗證憑據。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *