이제 보안 로그가 가득 찼습니다(이벤트 ID 1104).

이제 보안 로그가 가득 찼습니다(이벤트 ID 1104).

이벤트 뷰어에서 기록되는 오류는 일반적이며 이벤트 ID가 다른 여러 오류가 발생합니다. 보안 로그에 기록되는 이벤트는 일반적으로 키워드 감사 성공 또는 감사 실패 중 하나입니다. 이 게시물에서는 이 이벤트가 트리거된 이유와 클라이언트 또는 서버 시스템에서 이 상황에서 수행할 수 있는 조치를 포함하여 보안 로그가 가득 찼습니다(이벤트 ID 1104)에 대해 설명합니다 .

이벤트 설명에서 알 수 있듯이 이 이벤트는 Windows 보안 로그가 가득 찰 때마다 생성됩니다. 예를 들어, 보안 이벤트 로그 파일의 최대 크기에 도달했고 이벤트 로그 보존 방법이 이 Microsoft 문서 에 설명된 대로 이벤트를 덮어쓰지 않음(수동으로 로그 지우기)인 경우입니다 . 다음은 보안 이벤트 로그 설정의 옵션입니다.

  • 필요에 따라 이벤트 덮어쓰기(오래된 이벤트 먼저) – 이것이 기본 설정입니다. 최대 로그 크기에 도달하면 새 항목을 위해 이전 항목이 삭제됩니다.
  • 가득 차면 로그를 보관하고 이벤트를 덮어쓰지 않음 – 이 옵션을 선택하면 Windows는 최대 로그 크기에 도달했을 때 자동으로 로그를 저장하고 새 로그를 생성합니다. 로그는 보안 로그가 저장되는 모든 위치에 보관됩니다. 기본적으로 이것은 %SystemRoot%\SYSTEM32\WINEVT\LOGS 위치에 있습니다. 로그인 이벤트 뷰어의 속성을 보고 정확한 위치를 확인할 수 있습니다.
  • 이벤트를 덮어쓰지 않음(수동으로 로그 지우기) – 이 옵션을 선택하고 이벤트 로그가 최대 크기에 도달하면 로그를 수동으로 지울 때까지 추가 이벤트가 기록되지 않습니다.

보안 이벤트 로그 설정을 확인하거나 수정하려면 가장 먼저 최대 로그 크기(KB)를 변경해야 합니다. 최대 로그 파일 크기는 20MB(20480KB)입니다. 그 외에도 위에서 설명한 대로 보존 정책을 결정하십시오.

이제 보안 로그가 가득 찼습니다(이벤트 ID 1104).

보안 로그 이벤트 파일 크기의 상한에 도달하고 더 이상 이벤트를 기록할 공간이 없으면 이벤트 ID 1104: 보안 로그가 가득 찼음을 나타내는 이벤트 ID 1104가 기록됩니다. 다음 즉각적인 조치 중 하나를 수행하십시오.

  1. 이벤트 뷰어에서 로그 덮어쓰기 활성화
  2. Windows 보안 이벤트 로그 보관
  3. 보안 로그를 수동으로 지우기

이러한 권장 조치를 자세히 살펴보겠습니다.

1] 이벤트 뷰어에서 로그 덮어쓰기 활성화

이벤트 뷰어에서 로그 덮어쓰기 활성화

기본적으로 보안 로그는 필요에 따라 이벤트를 덮어쓰도록 구성됩니다. 로그 덮어쓰기 옵션을 켜면 이벤트 뷰어가 이전 로그를 덮어쓸 수 있으므로 메모리가 가득 차는 것을 방지할 수 있습니다. 따라서 다음 단계에 따라 이 옵션이 활성화되어 있는지 확인해야 합니다.

  • Windows 키 + R을 눌러 실행 대화 상자를 불러옵니다.
  • 실행 대화 상자에서 eventvwr을 입력하고 Enter 키를 눌러 이벤트 뷰어를 엽니다.
  • Windows 로그를 확장합니다 .
  • 보안 을 클릭합니다 .
  • 오른쪽 창의 작업 메뉴에서 속성 을 선택합니다 . 또는 왼쪽 탐색 창에서 보안 로그를 마우스 오른쪽 버튼으로 클릭하고 속성 을 선택합니다 .
  • 이제 최대 이벤트 로그 크기에 도달한 경우 섹션에서 필요에 따라 이벤트 덮어쓰기(가장 오래된 이벤트부터) 옵션에 대한 라디오 버튼을 선택합니다.
  • 적용 > 확인을 클릭합니다 .

2] Windows 보안 이벤트 로그 보관

보안에 민감한 환경(특히 기업/조직)에서는 Windows 보안 이벤트 로그를 보관하는 것이 필요하거나 의무적일 수 있습니다. 이 작업은 이벤트 뷰어를 통해 가득 차면 로그 보관, 이벤트를 덮어쓰지 않음 옵션을 선택하거나 아래 코드를 사용하여 PowerShell 스크립트를 만들고 실행하여 수행할 수 있습니다. PowerShell 스크립트는 보안 이벤트 로그의 크기를 확인하고 필요한 경우 보관합니다. 스크립트에서 수행하는 단계는 다음과 같습니다.

  • 보안 이벤트 로그가 250MB 미만이면 응용 프로그램 이벤트 로그에 정보 이벤트가 기록됩니다.
  • 로그가 250MB를 초과하는 경우
    • 로그는 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 이벤트는 사용자가 컴퓨터에 로컬로 저장된 네트워크 자격 증명을 사용하여 컴퓨터에 로그온했음을 나타냅니다. 자격 증명을 확인하기 위해 도메인 컨트롤러에 연결되지 않았습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다