디지털 포렌식 - Windows Foernsics
1. 시스템 로그
1.1 $LogFile, $UsnJrnl
- 파일의 생성, 변경, 삭제 이력을 추적할 수 있음
ex) 공격자가 컴퓨터의 주요 파일을 모두 암호화해서 저장하고 원본 파일을 삭제 했을 때, 공격 흔적을 $LogFile, $UsnJrnl에서 찾아낼 수 있음
1.2 $LogFile
- 파일 시스템의 저널링 기능을 위해 존재하는 파일
저널링이란 ?
데이터 변경을 디스크에 반영하기 전에 행위를 기록하여, 오류가 발생했을 때 복구할 수 있도록 하능 기능.
저널링의 단위는 트랜잭션(쪼갤 수 없는 업무의 최소 단위)이고, 파일/디렉토리를 생성하거나 수정, 삭제하는 행위가 각각 트랜잭션에 해당함.
- $LogFile은 이러한 트랜잭션을 기록하는 파일 !
1.3 $LogFile 수집 및 분석
- 저장 경로 : root\$Logfile
- < 개요 >
⑴ FTK Imager로 $LogFile, $MFT 파일 추출
⑵ NTFL Log Tracker로 분석 시작
⑶ DB Browser for SQLite에서 DATABASE 확인

1.4 $LogFile 분석 팁
- NTFS Log Tracker 도구는 $LogFile을 분석해 Event 항목을 만들어줌.
- 다만 로그가 $LogFile에 저장되는 시간이 길지 않음(약 한시간)
Event | 설명 |
File Creation | 파일 생성 |
File Deletion | 파일 삭제 |
Writing Content of Resident File | 파일 데이터 변경 *Resident File: 700 Byte 이하의 파일 |
Writing Content of Non-Resident File | 파일 데이터 변경 *Non-Resident File: 700 Byte 이상의 파일 |
Renaming File | 파일 이름 변경 |
Directory Creation | 디렉토리 생성 |
Directory Deletion | 디렉토리 삭제 |
1.5 $UsnJrnl
- 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하는 로그, NTFS 파일 시스템에서 지원하는 기능 중 하나임.
1.6 $UsnJrnl aka $J 아티팩트 수집 및 분석
- 저장 경로 : root\$Extend\$UsnJrnl\$J
- < 개요 >
⑴ FTK Imager로 $UsnJrnl , $MFT 파일 추출
⑵ NTFL Log Tracker로 분석 시작 ( $LogFile, $UsnJrnl, $MFT 파일을 한번에 추출해 분석하는게 일반적)
⑶ DB Browser for SQLite에서 DATABASE 확인
1.7 $UsnJrnl 분석 팁
- 마찬가지로 NTFS Log Tracker 도구는 $UsnJrnl을 분석해 주요한 이벤트들을 추출해 보여주는 역할을 함.
- 대략 하루 이상의 기간에 해당하는 로그를 가지고 있음.
Event | 설명 |
File_Created | 파일 생성 |
File_Deleted | 파일 삭제 |
Data_Added | 파일 데이터 추가 |
Data_Overwritten | 파일 데이터 덮어 쓰기 |
Data_Truncated | 파일 데이터 축소 |
Basic_Info_Changed | 파일/디렉토리의 속성 변경 |
Access_Right_Changed | 파일/디렉토리의 접근 권한 변경 |
File_Closed | 파일/디렉토리 닫힘 |
File_Renamed_Old | |
File_Renamed_New | 파일 이름 변경(전, 후) |
1.8 $LogFile, $UsnJrnl 활용
- 파일이나 디렉토리의 생성, 수정, 변경 등의 이벤트를 추적하기 좋은 파일 !
⑴ 랜섬웨어 분석 상황 : 랜섬웨어는 컴퓨터의 모든 파일을 암호화한 후 원격서버로 전송하고, 원본 파일은 삭제함. 이 과정에서 파일 암호화, 전송할 파일 임시 생성, 원본 파일 삭제 과정이 로그가 남음. 여기서 트랜잭션을 복구해 파일 되살리는 작업이 가능할 수 있음.
⑵ 자료 유출 분석 상황
⑶ 안티-포렌식 행위 분석 상황 : 디지털 포렌식 분석을 막기 위해 파일을 삭제하거나 훼손하는 행위 적발 가능
1.9 교차 검증
- 하나의 사건이 여러 아티팩트($LogFile, $UsnJrnl)에 동시에 흔적을 남김
- 한 행위의 인과관계를 명백히 하기 위해 여러 아티팩트로부터 교차 검증 할 수 있음
2. 이벤트 로그
2.1 이벤트 로그란 ?
- 이벤트 로그는 사용자 로그인, 시스템 시작/종료 등 윈도우에서 발생하는 다양한 이벤트를 기록한 파일
- 악성코드의 동작(계정 생성/높은 권한 부여/특정 커맨드를 이용해 프로그램 실행)을 알아내기에 유용함
2.2 이벤트 로그에서 기록하는 시스템 이벤트 예시와 의의
- 사용자 계정 생성, 암호 변경, 권한 변경
- 시스템 로그인 성공, 실패
- 프로세스 시작 및 종료
- 시스템 원격 로그인
- 저장장치 연결
- 시스템에서 발생한 사용자 행위를 파악할 수 있고, 시스템에서 발생한 오류나 보안 결함에 대해서 추적도 가능. 악성코드가 어떻게 침투했는지, 내부에서의 동작 과정도 이벤트 로그로 분석 가능.
2.3 이벤트 로그 분석
- 윈도우 기본 이벤트 뷰어 사용
- 응용 프로그램 : 시스템 구성 요소를 제외한 응용프로그램에서 발생한 이벤트 기록
- 보안 : 파일 열기, 만들기와 같은 시스템 리소스 사용 이벤트. 로그인 성공/실패, 시스템 보안 정책과 같은 보안 이벤트로, 유일하게 사용자가 기록할 이벤트 유형을 변경할 수 있음
- 설치 : 응용프로그램 설치나 설정과 관련된 이벤트 기록
- 응용프로그램 및 서비스 로그 : Windows 제공 기능(IE, MS Office, Windows defender …)
2.4 이벤트 로그 경로
- C:\Windows\System32\winevt\Logs
- 이벤트 뷰어 프로그램은 evtx 파일을 보여주고 검색하는 프로그램임
- evtx 파일에 기록되는 이벤트의 여러 속성들
속성 | 설명 |
EventID | 이벤트의 유형을 식별할 수 있는 값 |
Level | 이벤트의 심각도를 분류한 값 |
Security UserID | 이벤트가 발생한 사용자 계정 SID |
TimeCreated SystemTime | 이벤트가 발생한 시스템 시간 |
Execution ProcessID/ThreadID | 이벤트를 발생시킨 프로세스/스레드 ID |

2.5 이벤트 로그 수집
⑴ FTK Imager 에서 Logs 폴더 전체 export
⑵ 이벤트 뷰어 > 동작 > 저장된 로그 열기

⑶ 이벤트 로그 필터링 : 검색하려는 EventId가 어떤 이벤트 로그에 저장되어있는지 안다면 검색 속도 향상됨


2.6 주요 이벤트 로그
EventID | 설명 |
4624 | 계정 로그온 성공 |
4625 | 계정 로그온 실패 |
4634 | 계정 로그오프 |
4672 | 특수 로그온 (관리자 권) |
4608 | Windows 시작 |
1074 | Window 종료 |
42 | 시스템 절전 모드 |
1102, 104 | 이벤트 로그 삭제 |
10000, 10100 | 장치 드라이버 설치/업데이트 |
225 | 장치 연결 해제 |
1006 | 파티션 연결 해제 |
10000, 10001 | 네트워크 연결, 연결 해제 |
nb) EventID라고 모두 동일한 내용을 갖는 것은 아님.
- 이벤트 로그 검색 링크 : Windows Security Log Events 등