0x0102
$LogFile, $UsnJrnl 본문
$LogFile
저널링 (Jounaling)
- 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
- 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
- 문제가 발생하기 전에 "어떤 데이터를 언제 어디에 쓰는지 기록"
- 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원
트랜잭션 (Transaction)
- "쪼갤 수 없는 업무 처리의 최소 단위"
- 파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등
- $Logfile: 메타 데이터의 트랜잭션 저널 정보
$UsnJrnl
- 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그파일
- 파일 복원의 목적이 아니라 단순 파일 작업이 있었다는 사실을 확인하기 위함
- 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB
- 하루 8시간 사용시 4~5일 정도의 데이터를 저장하고 있음
실습
- FTK Imager 사용
- [root]\$LogFile 추출
- [root]\$Extend\$UnnJrnl\$J 추출
- NTFS Log Tracker 다운로드

이후 ftk imager를 실행한다.
add evidence item - logical - cdrive 이후 root- $LogFile을 찾아 우클릭 - export files 로 추출해준다.

이후 다시 root아래 $Extend - $UsnJrnl 을 더블클릭하여 들어간 후 $J를 추출한다.
이때 추출한 항목들은 Desktop - mft 파일에 넣도록하자
+) 만약 파일들이 보이지 않는경우,
파일에 들어가

우측 표시된 아이콘을 선택하고, 옵션 - 보기 아래

설정을 이러한 화면으로 변경해준다.
나 같은 경우도 처음엔 파일이 보이지 않았는데 보호된 운영 체제 파일 숨기기의 체크를 해제해주고, 숨김 파일 및 폴더 표시를 선택해주니 해결 되었다.
다시 log tracker로 돌아와서,

첫번째 항목에 logfile, 두번째 항목에 j파일, 네번째 항목에 mft파일을 각각 넣어준다.
이후 parse 버튼 클릭

DB file name은 결과 값(생성된 DB)을 어떤 이름으로 나올지 묻는 것임으로 간단히 result라고 설정해주고
아래 path는 desktop- mft 파일로 설정한 뒤 start해준다.

시간이 조금 걸린 후 데이터베이스 추출이 완료되면, mft파일에 result-DB파일을 확인할 수 있다.
이 파일을 DB browser로 열어줘야한다.
다운로드 해보자.
최근 릴리즈된 버전을 설치해주고, 열어준다.

아까 추출한 DB를 드래그하여 붙인다.

완료되면 이러한 화면을 볼 수 있는데 상단의 테이블에서는 LogFile ,Timezone, UsnJrnl을 선택할 수 있고 각각에 대한 데이터들을 확인할 수 있다.
먼저 Logfile에 대한 데이터부터 간략하게 살펴보자.
테이블 상단의 목록을 보니,
LSN, Event time, Event, Detail, File Name, Full path, Create time, Modified Time, MTF_ModifiedTime, Access Time, RedoInfo, TargetVCN, MFT_ClusterIndex 가 있다.

- 표에서는 중요한 정보인 이벤트 타임을 확인할 수 있을 뿐만 아니라

- 생성된 시각과 변경된 시각, 접근 시간 등도 확인할 수 있다.
이때

아래로 내리다보면 Event 아래 File Creation, Deletion 등의 정보도 확인할 수 있다.
이때 Writing Content of ~~ 정보들은 간단히 데이터를 썼다의 개념으로 보면 된다.
이 모든 정보들은 '내가 어떤 파일을 기록하거나 썼던 기록들'이라고 할 수 있다.
다음으로 UsnJrnl 항목의 테이블을 살펴보자.

여기에서는 Log file을 볼때와 살짝 다르게 USN, Time Stamp, File Name, FullPath, Event, SourceInfo, FileAttr, CrvingFlag, FileReferenceNumber, ParentFile Reference 등을 확인할 수 있다.

File_Renamed_Old, New / File_Created 뿐만 아니라 Data_Added 등 다양한 event들도 확인할 수 있다.

Full Path에서는 귀한 파일 경로들도 직접 볼 수 있다.
그러나 우리가 본 두개의 테이블 (Log file, UsnJrnl)은 방대한 내용을 담고 있으므로 모든 정보를 일일이 확인하기는 어렵다.
이럴 때에는 '무엇을' 검색해야할지 미리 생각해보는 것이 좋다.
예를 들어, 메모리 분석을 하다가 어떤 파일이 수상하다는 생각이 들거나 레지스트리 분석을 하다가 자동 실행 경로에 악성코드가 있는 것을 발견했을 때 그러한 것들이 언제 생성되었고 언제 변경되었는지를 확인하며 시간대를 추려서 그 시간대안에 어떤 이벤트가 있었는지 확인하는 것이다.
+) 자료 유출 사건의 경우 유출된 파일을 검색하여 이 사람이 이 자료를 언제 어디에 저장했다가 어디에 복사해서 가져갔는지 유추하는데 많은 도움이 될 수 있다.
'Study > Digital Forensic' 카테고리의 다른 글
Jumplist (0) | 2022.07.25 |
---|---|
바로가기 (LNK) (0) | 2022.07.24 |
$MFT 개념 및 실습 (0) | 2022.07.24 |
Windows Registry 실습 (0) | 2022.07.23 |
Window Registry 동작 원리 (0) | 2022.07.21 |