Logfile 너 뭐냐!
오늘 맨날 미루고 있던 포렌식 쪽을 보다가 지금 플스 타임이지만, 플스를 포기하고 포렌식 쪽 공부즘 해보려고 한다! 이렇게 쓰면 잘 정리는 안되지만, 뭐 일단 보긴 볼태니까 슬슬 써보자
$Logfile분석으로 유명한 도구는 NTFS Log Tracker라고 블루엔젤님(파워쉘도 이분 덕분에 모르는 걸 많이 알 수 있었다!)이 개발한 도구가 유명했고, 포렌식 인사이트에 올라와 있는 ’INSIGHT A Dig into the Logfile.pdf’파일을 어느 정도 봤다. 어렵다. 쉬운 요점만 정리하면 다음과 같다.
$Logfile : 시스템오류나 갑작스럽게 전원이 차단될 경우, 작업 중이던 파일 복구를 위해 사용되는 데이터
Redo: 작업한 데이터
Undo: 작업 전 데이터
일반적으로 64M 크기를 가짐
확인 방법: cmd> chkdsk /L
파일헤더: RSTR
구조: 재시작영역 + 로깅영역
$LogFile의 자세한 구조도 설명되어 있으니 해당 PDF를 확인해보자.
나는 지금까지 $LogFile 단순히 로그파일로만 생각했는데 좀 더 정확히 말하면 메타파일
이라고 정의하는 것이 맞는 듯하다.
NTFS 구조를 보면
NTFS 구조 | ||
---|---|---|
VBR | MFT | 데이터 영역 |
위와 같은 구조를 가지며 MFT는 1024Byte의 크기를 갖는다. 이 곳에는 디렉터리에 대한 메타데이터가 저장되게 된다. 또한 이 MFT는 순서대로 인덱스 번호를 부여받으며 0번 인덱스 부터 23번 인덱스까지 존재한다.
메타 파일을 정리하면 다음과 같다.
엔트리 번호 | 엔트리 이름 | 설명 |
---|---|---|
0 | $MFT | NTFS상의 모든 파일들의 MFT 엔트리 정보 |
1 | $MFTMirr | $MFT 파일의 일부 백업본 |
2 | $LogFile | 메타데이터의 트랜잭션 저널 정보 |
3 | $Volume | 볼륨의 레이블, 식별자, 버전 등의 정보 |
4 | $AttDef | 속성의 식별자, 이름, 크기 등의 정보 |
5 | - | 볼륨의 루트 디렉터리 |
6 | $Bitmap | 볼륨의 클러스터 할당 정보 |
7 | $Boot | 볼륨이 부팅 가능할 경우 부트 섹터 정보 |
8 | $BadClus | 배드 섹터를 가지는 클러스터 정보 |
9 | $Secure | 파일의 보안, 접근 제어와 관련된 정보 |
10 | $Upcase | 모든 유니코드 문자의 대문자 |
11 | $Extend | $ObjID, %Quota, $Reparse points, $UsnJrml 등의 추가 파일 정보를 기록하기 위해 사용 |
12 - 15 | 미래를 위해 사용 | |
16 - | 포맷 후 생성되는 파일의 정보를 위해 사용 | |
- | $Objld | 파일 고유의 ID 정보(윈도우 2000 ~) |
- | $Quota | 사용량 정보(우니도우 2000 ~) |
- | $Reparse | Reparse Point에 대한 정보(윈도우 2000 ~ ) |
- | $UsnJnl | 파일, 디렉터리의 변경 정보(윈도우 2000 ~) |
참고 : AhnLab ASEC
위 참고글은 블루엔젤님이 안랩에 계실때 쓴 글인듯 ㅇㅇ
아직 감 안옴..
참고 : forensic-proof Blog
만약, 운영체제가 비 정상적으로 종료된 경우 롤백작업은 볼륨의 트랜잭션 저널 정보를 기록하고 있는 $LogFile에 의해 수행된다
읽을 수록 공부할 게 너무 많은 포렌식..
하..NTFS를 분석해야하는데 뭔 툴로 보는거야 해서 전에 Winhex를 사용해서 부트 이미지 분석하는걸 본거 같아서 봤더니 내가 원햇던 많은 메타파일들이 보인다! 그중에서 보이는 $LogFile!!워매 근데 Winhex Dump 어떻게 하니..이런 훌륭한 툴을 만들어 줬는데도 못 이용하다니..반성 또 반성..ㅠ ㅠ 근데 이 파일은 왜 그냥 폴더에서는 안보이는 거야..?
정말 좋은 글이 많군.. NTFS 메타 데이터 파일 & 파일읽기
음.. 일단 $LogFile은 WinHex와 같은 디스크 분석 도구로 확인이 가능한것을 확인했다.
댓글 없음:
댓글 쓰기