Window 운영체제는 다양한 이벤트 로그를 통해 시스템 및 애플리케이션의 상태를 기록하고 추적할 수 있는 기능을 제공한다. 시스템 관리자가 성능을 모니터링하거나 문제를 해결하며, 보안 위협을 탐지하고 대응하는 데 필수적인 역할을 한다. 그러나 이벤트 로그의 방대한 양과 복잡성으로 인해 보안 관련 이벤트를 식별하기가 어려울 수 있다.
이에 NSA(National Security Agency)는 보안 모니터링 및 위협 헌팅을 위한 권장 이벤트 로그 카테고리를 정리한 문서, "Spotting the Adversary with Windows Event Log Monitoring"을 발표했다. 이 문서는 공격자의 활동을 모니터링하고 분석하는 데 필수적인 윈도우의 16가지 이벤트 카테고리를 정의하여, 위협을 조기에 탐지하고 대응할 수 있는 지침을 제공한다. 본 논문에서는 Windows의 주요 이벤트 로그에 대한 설명과 더불어 NSA가 권장한 16가지 이벤트 카테고리에 대해 구체적으로 설명하고자 한다.
Windows 운영체제는 다음과 같은 세 가지 주요 이벤트 로그를 제공한다
이러한 이벤트 로그는 Event Viewer에서 확인할 수 있으며, 각 로그에는 시간, 이벤트 ID, 설명 등이 포함된다.
NSA는 공격자의 활동을 모니터링하는 데 중요한 16가지 Windows 이벤트 카테고리를 정의하였다. 이 카테고리는 이벤트 로그에서 공격자 활동을 식별할 수 있는 핵심 요소들로 구성되어 있으며, 침해사고 분석 및 대응 시 중요한 정보를 제공한다.
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 8003 | Warning | <File name> was allowed to run but would have been prevented from running if the AppLocker policy were enforced. | <파일 이름>은 실행이 허용되었으나, AppLocker 정책이 적용되었을 경우 실행이 차단되었을 것이다. |
| 8004 | Error | <File name> was not allowed to run. | 관리자에 의해 <파일 이름>에 대한 접근이 제한되었습니다. 이는 그룹 정책 상속을 통해 직접 또는 간접적으로 Enforce rules 집행 모드가 설정된 경우에만 적용된다. .exe 또는 .dll 파일을 실행할 수 없다. |
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Windows Error Reporting" />
<EventID Qualifiers="0">1001</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2020-02-12T10:09:34.000000000Z" />
<EventRecordID>260507</EventRecordID>
<Channel>Application</Channel>
<Computer>hydra</Computer>
<Security />
</System>
<EventData>
<Data>2023787729086567941</Data>
<Data>1</Data>
<Data>APPCRASH</Data>
<Data>Not available</Data>
<Data>0</Data>
<Data>testDeliberateCrash.exe</Data>
<Data>1.0.0.1</Data>
<Data>5e419525</Data>
<Data>testDeliberateCrash.exe</Data>
<Data>1.0.0.1</Data>
<Data>5e419525</Data>
<Data>c0000005</Data>
<Data>000017b2</Data>
<Data />
<Data />
<Data>C:\Users\stephen\AppData\Local\Temp\WERC24C.tmp.
WERInternalMetadata.xml</Data>
<Data>C:\Users\stephen\AppData\Local\Microsoft\Windows\WER\
ReportArchive\AppCrash_testDeliberateCr_c31b903842d94a84d4621dceaa
c377462674f7a_eb589596_139ec4bd</Data>
<Data />
<Data>0</Data>
<Data>c3d360b2-4d7f-11ea-83d3-001e4fdb3956</Data>
<Data>0</Data>
<Data>54756af49aec84f97c15f03794ffd605</Data>
</EventData>
</Event>| Event ID | Level | Event message | Description |
|---|---|---|---|
| 1000 | Error | <Application name> encountered an unexpected error and crashed. | 응용 프로그램이 충돌하거나 작동이 중단될 때 발생하며, 악성 코드로 인한 충돌을 확인할 수 있다. |
| 1001 | Information | Windows Error Reporting logged an application crash. | 애플리케이션 충돌에 대한 오류 보고서가 생성될 때 발생하며, 충돌의 상세 정보를 제공하여 문제 해결에 도움을 준다. |
| 1002 | Warning | <Application name> has stopped working. | 응용 프로그램이 응답하지 않거나 비정상적으로 종료되었음을 나타낸다. |
| 1003 | Information | Windows Error Reporting submitted an application crash. | 애플리케이션 충돌에 대한 오류 보고서가 제출되었음을 기록한다. |
| Event ID | Level | Event Message | Description |
|---|---|---|---|
| 7000 | Error | Service Control Manager failed to start . | 서비스 시작 실패 시 기록되며, 서비스의 이름, 실패 원인, 오류 코드 등을 포함한다. |
| 7001 | Error | Service <Service Name> failed dependencies | 서비스가 필요한 다른 서비스의 실패로 인해 시작에 실패했음을 나타낸다. |
| 7009 | Warning | Service <Service Name> did not respond to the start request in a timely fashion. | 서비스 시작 요청에 지정된 시간 내에 응답하지 않아 실패했음을 기록한다. |
| 7031 | Error | <Service name> terminated unexpectedly. | 중요한 시스템 서비스가 중단되었을 때 기록된다. |
| 7034 | Error | <Service name> stopped unexpectedly. | 비정상적인 서비스 종료는 시스템 문제나 침해의 징후일 수 있다. |
| 7035 | Information | Service Control Manager sent a <command> request to <Service Name>. | 서비스에 대한 시작, 중지, 재시작 등의 명령 요청을 기록한다. |
| 7040 | Information | The start type of service <Service Name> changed from <Old Start Type> to <New Start Type>. | 서비스의 시작 유형이 변경되었을 때 기록된다. |
| 7045 | Error | A service was installed in the system. | 새로운 서비스가 설치될 때 기록된다. |
| 7046 | Information | A new service has been installed in the system. | 새로운 서비스가 설치되었음을 나타낸다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 20 | Error | Installation Failure: Windows failed to install the following update with error 0x80073701: KB5005565 | |
| 특정 업데이트가 설치 되지 못했을 때 발생하며 실패한 업데이트의 KB(Knowledge Base)번호와 오류코드를 포함, 반복적인 설치 실패는 시스템 자체의 안정성과 보안에 영향을 줄 수 있으므로 조치가 필요. | |||
| 19 | Error | Download Failure: Windows failed to download the following update with error: KB5005565 | 업데이트가 다운로드 되지 않았을 때 발생 |
| 25 | Warning | Update Rollback: Windows Update was rolled back after failure to install update: KB5005565 | 업데이트 설치 중 오류로 인해 시스템이 이전 상태로 복원된 것 |
| Event ID | Level | Event Message | Description |
|---|---|---|---|
| 2004 | Information | A new firewall rule was successfully created. | 새로운 방화벽 규칙이 생성되었을 때 기록됨 |
| 5031 | Error | The Windows Firewall service blocked an application from accepting incoming connections on the network. | 방화벽이 비정상적인 네트워크 트래픽을 차단할 때 발상 |
| 5035 | Warning | The Windows Firewall service was stopped or restarted. | 방화벽 서비스가 비활성화 되거나 재시작 되었을 때 기록됨 |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 1102 | Warning | The security log was cleared by <User name>. | 공격자가 흔적을 은폐하기 위해 보안 로그를 삭제할 때 기록된다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 11707 | Information | The installation of <Software name> was successful. | 새로운 소프트웨어가 설치되었을 때 발생하며, 불법적인 소프트웨어 설치 여부를 확인할 수 있다. |
| 1033 | Information | The removal of <Software name> was successful. | 설치된 프로그램이 제거되었을 때 기록되며, 악성 프로그램 제거 시 추적할 수 있다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 4624 | Information | Asuccessful logon for <User name> occurred. | 계정 로그온 성공 시 기록되며, 비정상적인 로그온 시도를 탐지하는 데 유용하다. |
| 4625 | Warning | A failed logon attempt was made by <User name>. | 비정상/무단 로그인 시도를 탐지하며 공격자가 무차별 공격을 시도할 때 발생한다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 3089 | Warning | The driver <Driver name> was blocked from loading due to invalid signature. | 서명되지 않거나 악성 드라이버가 커널에 로드될 때 발생한다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 1000 | Error | GPO processing faild | 그룹 정책 객체(GPO)를 처리하는 중 실패가 발생할 때 나타난다. |
| 1085 | Error | Extension processing failed | 스크립트, 소프트웨어 설치, 폴더 리디렉션 등의 확장 기능을 처리하는 동안 실패할 때 발생한다. |
| 1058 | Error | Failed to load Group Policy | 그룹 정책을 로드하지 못할 때 발생하며, 주로 네트워크 경로 또는 공유 권한 문제 때문이다. |
| 1030 | Error | Unable to access Group Policy file | GPO에 액세스할 수 없을 때 발생하며, 이는 주로 네트워크 경로나 파일 권한 문제로 인한 것이다. |
| 1502 | Error | Local Group Policy processing failed | 로컬 그룹 정책을 처리하는 동안 실패가 발생했음을 나타내며, 시스템 정책 적용에 문제가 있을 수 있다. |
| 7016 | Warning | Service failed to process Group Policy | Windows 서비스가 그룹 정책을 처리하지 못할 때 발생하며, 주로 권한 또는 네트워크 문제와 관련이 있다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 1000 | Info | Potential threat detect | 잠재적 위협이 감지됨 |
| 1001 | Info | Threat details recorded | 위협에 대한 세부 정보 기록 |
| 1002 | Info | Threat details completed | 위협에 대한 조치 완료 |
| 1003 | Error | Threat action failed | 위협 조치 실패 |
| 1004 | Info | Manual threat handling | 수동으로 위협을 처리함 |
| 2000 | Info | Defender scan started | Window Defender가 스캔을 시작함 |
| 2001 | Info | Defender scan completed | 스캔 완료 및 결과 기록 |
| 5000 | Info | Defender scan successful | 정의 업데이트 성공 |
| 5001 | Error | Defender scan failed | 정의 업데이트 실패 |
| 1116 | Error | Specific task failure | 특정 작업 실패 |
| 1117 | Info | Task successfully completed | 작업 성공적으로 완료됨 |
| 1123 | Info | Real-time protection enabled | 실시간 보호가 켜짐 |
| 1124 | Warning | Real-time protection disabled | 실시간 보호가 꺼짐 |
| 1125 | Info | Other security software replacing real-time protection | 다른 보안 소프트웨어가 실시간 보호 기능을 대신함 |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 4656 | Information | Mobile device <Device name> attempted to access the file system. | 모바일 장치에서 파일 시스템에 액세스 시도를 기록하며, 불법적인 접근을 탐지한다. |
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 43 | Information | External device <Device name> was connected to the system. | USB나 외부 저장 장치 연결을 탐지하여 불법 데이터 유출 기능성을 추적한다. |
| 20001 | Information | External device <Device name> was connected to the system. | 외부 장치가 시스템에 연결될 때 발생하는 이벤트이며, 장치의 ID와 연결 시간 등의 정보가 담겨있다. |
| 20003 | Information | External device <Device name> was disconnected from the system. | 외부 장치가 시스템에서 제거될 때 발생하는 이벤트가 기록된 것이다. |
네트워크 또는 물리적으로 연결된 프린터기(인쇄 서비스)에 어떤 문서가 인쇄되었는지 기록되는 이벤트를 말한다. 처리를 위해 프린터로 전달되는 문서들은 다양한 방식으로 이벤트 로깅 하기 위해 기록될 수 있다.
네트워크 또는 물리적으로 연결된 프린터기(인쇄 서비스)에 어떤 문서가 인쇄되었는지 기록되는 이벤트를 말한다. 처리를 위해 프린터로 전달되는 문서들은 다양한 방식으로 이벤트 로깅 하기 위해 기록될 수 있다.
| Event ID | Level | Event message | Description |
|---|---|---|---|
| 307 | Information | A print job for <User Name> was successfully completed. | 인쇄 작업이 완료되었음을 기록한 것이다. |
| 372 | Error | A printing error occurred for <User Name>. | 인쇄 작업에서 오류가 발생했음을 기록한 것이다. |
| 805 | Error | A printer driver error occurred for <Printer Name>. | 프린터 드라이버와 관련된 문제를 기록한 것이다. |

Event ID 307, 805 Details Image
공격자가 도난당한 패스워드 해시(주로 NTLM 해시를 사용)를 이용해 비밀번호 없이 인증할 수 있는 공격을 식별하여 기록한 이벤트를 말한다.
💡 **NTLW (New-Technology LAN Manager)** 윈도우 운영체제에서 `Msv1_0.dll`에 속해있는 사용자 인증 프로토콜들의 집합을 의미한다. Challenge-Response(도전-응답) 인증 프로토콜 방식을 사용한다. **Challenge-Response** 시스템에 접속한 사용자의 신원을 확인하는 방식으로 시스템이 사용자에게 도전(Challenge)을 보내고, 사용자는 이에 맞는 적절한 응답(Response)을 제공하여 신원을 증명하는 방식이다. 보통 도전에서는 임의의 값을 보내고 응답에서는 해당 값을 받아 암호화 또는 해시 하여 도전자에게 돌려준다.| Event ID | Level | Event message | Description |
|---|---|---|---|
| 4624 | Information | Asuccessful logon for <User name> occurred. | 보안 로그에서 계정이 성공적으로 로그인되었을 때 기록되는 이벤트이다. 해당 파트에서 이 의미는 공격자가 해시를 이용해 패스워드 입력을 우회하여 로그인 성공으로 간주할 수 있다. |
| 4672 | Information | Special privileges assigned to new logon for <User Name>. | 권한이 높은 계정(관리자)이 로그인 할 때 발생하는 이벤트로, 해당 계정에 특별한 권한이 부여되었음을 나타낸다. 즉, 공격자가 접속한 계정을 관리자 계정으로 변경되었음을 간주할 수 있다. |
RDP(원격 데스크톱 프로토콜)를 통해 사용자 로그인이 성공하거나 실패했을 때 기록되는 이벤트를 말한다.
| Event ID | Level | Event message | Description |
|---|---|---|---|
| Event ID 21 | Information | A Remote Desktop session logon for <User Name> occurred. | 원격 데스크톱 세션이 성공적으로 시작되었음을 나타내며, RDP 세션이 시작되고 Windows Explorer 같은 셀이 초기화된 시점을 보여준다. |
| Event ID 1149 | Information | A successful Remote Desktop connection for <User Name> occurred. | 사용자가 RDP 세션에 네트워크 연결 시도를 기록되는 이벤트이다. 이는 성공적 연결뿐만이 아닌 연결 시도 자체도 기록한다. |
| Event ID 4624 | Information | Asuccessful logon for <User name> occurred. | 보안 로그에서 계정이 성공적으로 로그인되었을 때 기록되는 이벤트이다. |
| Event ID 4625 | Warning | A failed logon attempt was made by <User name>. | 원격 데스크톱 로그인 실패 시 기록되는 이벤트이며, 실패한 로그인 시도에 대한 세부 정보가 포함되어 있다. |
| Event ID 4634 | Information | An account logoff for occurred. | 사용자가 로그오프하거나 세션이 종료되었을 때 발생하는 이벤트를 기록한 것이다. 즉, 사용자 세션이 더 이상 존재하지 않음을 보여준다. |

Event ID 4634 Details Image
Windows 이벤트 로그는 시스템의 상태와 보안 상태를 모니터링하는 데 필수적인 도구로서, 이를 통해 시스템 관리자와 보안 전문가들은 시스템에서 발생하는 다양한 활동을 추적하고 분석할 수 있다. 특히, NSA가 제시한 16가지 이벤트 카테고리는 침해사고 대응 및 위협 탐지에서 매우 중요한 가이드라인을 제공한다.
이 카테고리들은 공격자가 시스템을 장악하거나 조작하려는 다양한 시도를 포착할 수 있는 핵심 로그 이벤트들을 포함하고 있으며, 각각의 이벤트는 로그인 시도, 시스템 설정 변경, 네트워크 연결, 애플리케이션 실행과 같은 활동을 모니터링하여 잠재적인 공격 징후를 탐지하는 데 도움이 된다.
특히, 계정 관리와 관련된 로그, 감사 정책 변경 로그, 서비스 상태 변경 로그 등은 내부 및 외부 공격자가 시스템 권한을 획득하거나 감사를 회피하려는 시도를 식별하는 데 필수적이다. 또한, 네트워크 연결과 파일 공유에 대한 이벤트는 데이터 유출이나 원격 제어 공격을 탐지하는 중요한 정보를 제공한다.
NSA의 권장 사항을 기반으로 한 이러한 이벤트 로그 모니터링은 공격자가 흔적을 남기기 전에 조기에 탐지하고 대응할 수 있는 강력한 수단을 제공한다. 따라서 시스템 관리자와 보안 팀은 이 16가지 이벤트 카테고리를 중심으로 이벤트 로그를 분석하고 주기적으로 모니터링함으로써 보안을 강화하고 침해사고 발생 가능성을 줄일 수 있다.
결론적으로, NSA의 지침은 복잡하고 다양한 시스템 활동을 단순화하여 보안 담당자가 더 효과적으로 위협을 탐지하고 대응할 수 있도록 돕는다. 이를 통해 조직은 보다 효율적인 보안 모니터링을 구현할 수 있으며, 지속적으로 진화하는 위협 환경에서도 효과적인 방어 체계를 유지할 수 있다.