본문 바로가기
공부 상식/computer

EVTX 파일이란? Windows 이벤트 로그 구조와 분석 방법

by 그레이스노트 2026. 5. 27.
반응형

Windows EVTX 파일 구조와 포렌식 분석 핵심 정리

Windows 시스템을 분석할 때 EVTX 파일은 가장 먼저 확인해야 하는 핵심 로그 중 하나입니다. 로그인, 계정 사용, 서비스 실행, PowerShell 실행, 원격 접속, 로그 삭제 흔적까지 다양한 행위가 남기 때문에 침해사고 분석이나 디지털 포렌식에서 매우 중요한 자료로 활용됩니다.

이번 글에서는 .evtx 파일이 어떤 구조로 되어 있는지, 그리고 실무 분석에서는 어떤 이벤트와 흐름을 중점적으로 봐야 하는지 정리해보겠습니다. 단순히 이벤트 ID만 외우는 방식이 아니라, 파일 구조와 분석 관점을 함께 이해하는 데 초점을 맞췄습니다.

📌 EVTX 파일이란?

EVTX는 Windows Vista 이후 사용되는 Windows Event Log 파일 포맷입니다. 이전 Windows XP 계열에서 사용되던 .evt 형식을 대체했으며, 이벤트 정보를 단순 텍스트가 아니라 Binary XML, 즉 BinXML 기반의 구조화된 바이너리 로그로 저장합니다.

대표적인 저장 경로는 아래와 같습니다.

C:\Windows\System32\winevt\Logs\

이 폴더 안에는 보안, 시스템, 애플리케이션, PowerShell, 작업 스케줄러, 원격 접속 관련 로그 등 다양한 EVTX 파일이 저장됩니다. 포렌식 분석에서는 이 로그들을 종합적으로 확인해 사용자의 행위, 공격자의 침입 흔적, 시스템 변경 내역을 추적합니다.

🧱 EVTX 파일의 기본 구조

EVTX 파일은 하나의 큰 XML 파일처럼 저장되는 것이 아닙니다. 내부적으로는 파일 헤더, 청크, 이벤트 레코드, BinXML 데이터로 구성됩니다.

EVTX File
 ├─ File Header
 ├─ Chunk 1
 │   ├─ Chunk Header
 │   ├─ Event Record
 │   ├─ Event Record
 │   └─ Slack Area
 ├─ Chunk 2
 │   └─ ...
 └─ Chunk N

분석자는 보통 파일 전체를 한 번에 읽는 것이 아니라, 파일 헤더 → 청크 → 이벤트 레코드 → 이벤트 데이터 순서로 구조를 해석합니다. 이 구조를 이해하면 단순히 Event Viewer에서 보이는 내용뿐 아니라 손상, 삭제, 조작 가능성까지 살펴볼 수 있습니다.

📁 File Header에서 확인할 내용

EVTX 파일의 맨 앞에는 File Header가 있습니다. 이 영역에는 파일 전체의 상태와 범위를 설명하는 메타데이터가 들어 있습니다.

항목 의미
Signature EVTX 파일 식별자
First Chunk Number 첫 번째 청크 번호
Last Chunk Number 마지막 청크 번호
Next Record Identifier 다음 이벤트 레코드 ID
Flags 파일 상태, dirty 여부 등

특히 포렌식 관점에서는 dirty flag, checksum 불일치, 마지막 레코드 번호를 주의해서 봅니다. 비정상 종료, 로그 손상, 미완성 기록, 조작 가능성을 판단할 때 참고할 수 있기 때문입니다.

🧩 Chunk 구조가 중요한 이유

EVTX의 핵심 단위는 Chunk입니다. 하나의 청크 안에는 여러 이벤트 레코드와 템플릿 정보, 사용되지 않은 영역이 함께 들어갑니다.

청크는 단순한 저장 공간이 아니라 이벤트의 시간 흐름과 무결성을 확인하는 데 중요한 기준이 됩니다. 청크 헤더에는 첫 이벤트 번호, 마지막 이벤트 번호, 첫 이벤트 시간, 마지막 이벤트 시간, 체크섬 등이 포함될 수 있습니다.

⚠️ 실무 포인트
정상적인 Event Viewer에서는 보이지 않는 잔여 레코드가 청크 내부의 slack 영역에 남아 있을 수 있습니다. 따라서 중요한 사건에서는 단순 화면 확인보다 전용 파서나 카빙 도구를 함께 사용하는 것이 좋습니다.

📝 Event Record 구조

실제 개별 이벤트는 Event Record 단위로 저장됩니다. 이벤트 레코드에는 이벤트 ID, 생성 시각, 레코드 번호, 실제 이벤트 본문이 포함됩니다.

항목 분석 의미
Record Signature 이벤트 레코드 식별
Record Size 레코드 크기 확인
Event Record ID 로그 내 이벤트 순서 추적
Timestamp 이벤트 발생 시각 확인
BinXML Payload 실제 이벤트 내용

여기서 중요한 점은 EventRecordID가 모든 로그 파일에서 공통으로 이어지는 번호가 아니라는 것입니다. Security.evtx의 EventRecordID 10000과 System.evtx의 EventRecordID 10000은 서로 다른 로그입니다. 따라서 분석할 때는 반드시 로그 파일명과 채널을 함께 기록해야 합니다.

🔎 BinXML과 이벤트 데이터 해석

EVTX의 이벤트 본문은 사람이 읽기 쉬운 XML 그대로 저장되지 않고 BinXML 형태로 저장됩니다. 분석 도구는 이 BinXML을 해석해 우리가 보는 XML 형태의 이벤트로 변환합니다.

<Event>
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing"/>
    <EventID>4624</EventID>
    <TimeCreated SystemTime="2026-05-27T01:23:45.0000000Z"/>
    <EventRecordID>123456</EventRecordID>
    <Channel>Security</Channel>
    <Computer>HOST01</Computer>
  </System>
  <EventData>
    <Data Name="TargetUserName">user01</Data>
    <Data Name="IpAddress">192.168.0.10</Data>
    <Data Name="LogonType">10</Data>
  </EventData>
</Event>

분석자가 주로 보는 필드는 Provider, EventID, TimeCreated, Channel, Computer, User, SID, EventData 등입니다. 특히 EventData에는 이벤트별 핵심 값이 들어가므로 단순 메시지보다 더 중요하게 봐야 합니다.

🔐 Security.evtx에서 자주 보는 이벤트

Security.evtx는 보안 분석에서 가장 많이 확인하는 로그입니다. 로그인 성공, 로그인 실패, 계정 생성, 그룹 추가, 특권 로그인, 감사 로그 삭제 등 중요한 흔적이 남습니다.

Event ID 의미
4624로그인 성공
4625로그인 실패
4648명시적 자격 증명 사용
4672특권 계정 로그인
4688프로세스 생성
4720사용자 계정 생성
4732로컬 그룹에 구성원 추가
1102감사 로그 삭제

침해사고에서 자주 보는 조합은 다음과 같습니다.

4624 LogonType 10
4672 특권 로그인
4688 powershell.exe 또는 cmd.exe 실행
1102 Security 로그 삭제

특히 4624 이벤트는 LogonType을 함께 봐야 의미가 분명해집니다. LogonType 2는 콘솔 로그인, 3은 네트워크 로그인, 10은 RDP 원격 데스크톱 로그인으로 해석할 수 있습니다.

🖥️ System.evtx에서 보는 핵심 흔적

System.evtx는 시스템 서비스, 드라이버, 부팅, 종료, 서비스 설치 내역을 확인할 때 사용합니다. 공격자가 악성 서비스를 등록하거나 원격 실행 도구를 사용한 경우 관련 흔적이 남을 수 있습니다.

Event ID 의미
6005Event Log 서비스 시작
6006Event Log 서비스 정상 종료
6008예기치 않은 종료
7045새 서비스 설치
104로그 파일 삭제 관련 흔적

이 중 7045 이벤트는 특히 중요합니다. 공격자가 서비스 형태로 악성코드를 등록하거나, 원격 관리 도구를 통해 명령을 실행한 경우 단서가 될 수 있기 때문입니다.

⚡ PowerShell 로그 분석 포인트

PowerShell은 정상 관리 작업에도 많이 쓰이지만, 공격에서도 자주 악용됩니다. 따라서 PowerShell 관련 EVTX는 명령 실행 흔적을 확인하는 데 매우 중요합니다.

주요 로그 파일은 다음과 같습니다.

Windows PowerShell.evtx
Microsoft-Windows-PowerShell%4Operational.evtx
Event ID 의미
400PowerShell 엔진 시작
403PowerShell 엔진 종료
4103Module Logging
4104Script Block Logging

특히 4104 Script Block Logging은 실제 실행된 스크립트 내용이 남을 수 있어 가치가 큽니다. 다만 시스템 설정에 따라 로그가 충분히 남지 않을 수 있으므로, 로깅 정책 활성화 여부도 함께 확인해야 합니다.

🛡️ Sysmon 로그가 있으면 무엇이 달라질까?

Sysmon이 설치되어 있다면 분석 범위가 훨씬 넓어집니다. 기본 Windows 로그보다 프로세스 생성, 네트워크 연결, 파일 생성, 레지스트리 변경, DNS 질의 등을 더 세밀하게 확인할 수 있습니다.

Microsoft-Windows-Sysmon%4Operational.evtx
Sysmon Event ID 의미
1프로세스 생성
3네트워크 연결
7이미지 로드
11파일 생성
22DNS 질의

Sysmon 로그는 매우 유용하지만, 설치 여부와 설정 품질에 따라 분석 가치가 달라집니다. 같은 Sysmon이라도 어떤 설정 파일을 적용했는지에 따라 남는 이벤트 범위가 크게 달라질 수 있습니다.

🧭 EVTX 분석 절차

실무에서는 무작정 이벤트 파일을 여는 것보다, 일정한 순서로 분석하는 것이 안정적입니다.

✅ 권장 분석 흐름
1. 원본 로그 수집
2. 원본 해시 계산
3. 분석용 복사본 생성
4. EVTX 파싱
5. 주요 Event ID 필터링
6. 시간대 기준 타임라인 정리
7. 다른 아티팩트와 교차 검증

특히 원본 EVTX 파일을 직접 수정하거나 원본 환경에서 반복적으로 열어보는 방식은 피하는 것이 좋습니다. 증거성을 고려한다면 원본은 보존하고 복사본으로 분석하는 습관이 필요합니다.

⏰ 시간대 해석에서 주의할 점

Windows 이벤트 로그의 SystemTime은 보통 UTC 기준으로 저장됩니다. 따라서 한국 기준 보고서를 작성할 때는 UTC와 KST를 구분해 기록하는 것이 좋습니다.

원본 UTC: 2026-05-27 01:23:45Z
분석 기준 KST: 2026-05-27 10:23:45 KST

시간대 변환을 잘못하면 공격 흐름이 앞뒤로 뒤바뀔 수 있습니다. 특히 여러 시스템의 로그를 함께 분석할 때는 각 시스템의 로컬 시간대, UTC 저장 방식, 수집 도구의 변환 방식을 함께 확인해야 합니다.

🧰 자주 사용하는 EVTX 분석 도구

도구 특징
Event Viewer기본 확인용, 소량 분석에 적합
Get-WinEventPowerShell 기반 필터링 가능
wevtutil로그 쿼리, 내보내기, 관리 가능
EvtxECmdCSV, XML, JSON 출력 지원
ChainsawSigma 룰 기반 탐지에 유용
HayabusaWindows 이벤트 로그 위협 헌팅에 특화
Velociraptor다수 엔드포인트 수집과 원격 헌팅에 강점

🚨 침해사고에서 자주 보는 EVTX 시나리오

1. 계정 침해

계정 침해가 의심될 때는 로그인 성공, 로그인 실패, 특권 로그인, 계정 생성, 관리자 그룹 추가 이벤트를 함께 봅니다.

4624 로그인 성공
4625 로그인 실패
4672 특권 로그인
4720 계정 생성
4732 관리자 그룹 추가

2. RDP 침입

원격 데스크톱 침입은 Security 로그와 TerminalServices 관련 로그를 함께 보는 것이 좋습니다. 단순히 4624만 보는 것보다 세션 연결, 인증 성공, 재연결 이벤트까지 연결하면 흐름이 더 명확해집니다.

Security 4624 LogonType 10
Security 4778
Security 4779
TerminalServices 1149
TerminalServices 21
TerminalServices 24

3. 악성 서비스 등록

공격자가 악성 서비스를 등록하면 System 7045 또는 Security 4697 이벤트가 단서가 될 수 있습니다. 이때 서비스 이름, 실행 파일 경로, 실행 계정, 명령행을 함께 확인해야 합니다.

4. PowerShell 공격

PowerShell 공격은 명령행 인자와 Script Block Logging을 함께 봐야 합니다. -EncodedCommand, Invoke-Expression, DownloadString, FromBase64String 같은 키워드가 반복적으로 보이면 주의가 필요합니다.

5. 로그 삭제와 은폐

공격자가 흔적을 지우기 위해 로그를 삭제하는 경우도 있습니다. 이때 Security 1102, System 104, EventLog 관련 이벤트를 확인합니다.

🚨 주의할 점
로그 삭제 이벤트가 보인다고 해서 그 이전의 상세 행위가 모두 남아 있는 것은 아닙니다. EVTX만 단독으로 보지 말고, $MFT, USN Journal, Prefetch, Amcache, ShimCache, SRUM 등과 함께 교차 검증해야 합니다.

📊 보고서 작성 시 추천 컬럼

분석 결과를 정리할 때는 단순히 이벤트 메시지만 복사하기보다, 재현성과 검증 가능성을 고려해 일정한 컬럼으로 정리하는 것이 좋습니다.

컬럼 설명
TimeCreated_KST한국 기준 변환 시간
TimeCreated_UTC원본 UTC 시간
LogFileSecurity.evtx, System.evtx 등
EventID이벤트 ID
EventRecordID로그 내 순번
User계정명
SourceIP원격 IP
ProcessName프로세스명
CommandLine명령행
Description분석자 해석

✅ EVTX 분석의 핵심 정리

EVTX 분석은 단순히 이벤트 ID를 찾아보는 작업이 아닙니다. 파일 구조, 이벤트 흐름, 시간대, 계정 정보, 프로세스 실행, 로그 삭제 흔적을 함께 해석해야 의미 있는 결론에 도달할 수 있습니다.

핵심 요약

✅ EVTX는 File Header, Chunk, Event Record, BinXML 구조로 구성됩니다.
✅ Security, System, PowerShell, Sysmon 로그는 침해사고 분석에서 특히 중요합니다.
✅ EventRecordID, 시간대, 로그 파일명, 채널 정보를 함께 기록해야 합니다.
✅ 로그 삭제나 조작 가능성은 checksum, EventRecordID gap, slack 영역 등을 함께 봐야 합니다.
✅ EVTX는 강력한 단서지만 단독 증거로만 판단하지 말고 다른 아티팩트와 교차 검증해야 합니다.

실제 포렌식에서는 EVTX 로그만으로 모든 상황을 확정하기 어렵습니다. 하지만 EVTX는 사용자의 행위와 시스템 변화를 시간순으로 보여주는 매우 중요한 출발점입니다. 특히 로그인, 원격 접속, PowerShell 실행, 서비스 등록, 로그 삭제 흔적을 연결하면 침해 흐름을 상당히 구체적으로 복원할 수 있습니다.

따라서 Windows 시스템을 분석할 때는 EVTX를 단순 로그 파일이 아니라 사건의 흐름을 재구성하는 타임라인 자료로 바라보는 것이 좋습니다. 파일 구조와 주요 이벤트를 함께 이해해두면, 단순 확인을 넘어 더 정확하고 설득력 있는 분석 결과를 만들 수 있습니다.

반응형