2017년 4월 12일 수요일

Logfile 너 뭐냐!

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와 같은 디스크 분석 도구로 확인이 가능한것을 확인했다.

댓글 없음:

댓글 쓰기