-
[Windows] '$LogFile' entry at the NTFS File System> Information Security/Forensics 2014. 1. 7. 21:42
지난 포스팅에서 NTFS 파일시스템의 전반적인 구조를 살펴보았다.
NTFS 파일시스템의 MFT에는 메타데이터 파일이라고 불리는 여러개의 MFT 엔트리로 구성되어 있다.
[NTFS 파일시스템 구조]
그 중에서도 이번 포스팅에서 다룰 것은 '$LogFIle' 엔트리이다.
[MFT 엔트리]
[ $LogFile 구조]
$MFT가 파일시스템에 존재하는 메타데이터를 저장하는 공간이라면, $LogFile은 메타데이터의 트랜잭션(Transaction) 파일을 저장하고 있다.
따라서 $MFT에 남아있지 않은 이벤트 분석이 가능하다.
$LogFile은 각 '페이지'단위로 구성된 재시작 영역(Restart Area)와 로깅 영역(Logging Area)로 구성되어있고, 각 페이지는 페이지 헤더와 여러 개의 레코드 들로 구성되어 있다.
[$LogFile 영역 구분]
이 때, 재시작 영역은 2개의 페이지로 파일의 첫 두 페이지 영역을 나타내며, 로깅 영역은 실제 작업 레코드가 기록되는 영역으로 다시 버퍼 페이지 영역과 일반 페이지 영역으로 나뉜다.
다시 이 '페이지'라는 단위를 자세하게 살펴보자.
[$LogFile '페이지' - 헤더]
[$LogFile '페이지' - 작업레코드]
여러 개의 작업 레코드들이 하나의 트랜잭션 작업을 이루는 구조로 되어있는데, 트랜잭션의 시작을 나타내는 레코드를 ‘Checkpoint Record’, 트랜잭션의 작업을 다루는 레코드를 ‘Update Record’, 트랜잭션의 마지막을 나타내는 레코드를 ‘Commit Record’로 구분할 수 있다.
이러한 작업 레코드는 레코드의 메타데이터를 저장하는 레코드 헤더부분과, 작업 전(Undo)과 작업 후(Redo)의 데이터가 담긴 레코드 데이터부분으로 구성되어 있다.
[$LogFile '페이지' - 작업레코드 헤더]
[재시작 영역(Restart Area)- 페이지 헤더]
[로깅 영역(Logging Area) 구조]
재시작 영역은 두 페이지로 구성되어있으며, 두 번째 페이지는 백업용이다. Current LSN필드를 통해 가장 마지막 레코드의 LSN을 알 수 있다.
로깅영역은 두 페이지로 구성 된 버퍼페이지 영역과 일반 페이지 영역으로 다시 나뉜다. 버퍼페이지 영역에는 최근 작업 레코드들이 존재하며, 순차대로 기록되다가 꽉 차게 되면 일반 페이지 영역에 기록하는 원리이다. 일반 페이지 영역은 버퍼 페이지 영역을 제외한 나머지 영역이다.
<참고>
[F-INSIGHT] NTFS LogTracker(Korean).pdf , 오정훈
UCS Lab 파일시스템 개론, 박종혁
728x90반응형'> Information Security > Forensics' 카테고리의 다른 글
[Windows] NTFS (0) 2014.01.02