[Windows Artifacts] Event Log

 

윈도우 아티팩트


(1) Event Log란?

  • 윈도우에서 발생하는 H/W, S/W 및 시스템 문제에 대한 다양한 이벤트들이 기록

  • 일반 시스템 엔지니어들도 트러블 슈팅을 위해 참고하는 윈도우 대표적 로깅 시스템

  • 로그는 응용 프로그램 로그와 시스템 로그, 보안 로그로 나뉘게 됨

  • 응용 프로그램 로그는 윈도우에서 API를 사용하는 응용 프로그램이 중요한 이벤트를 알리고, 활동 내역을 기록

  • 시스템 로그는 윈도우의 시스템 운영과 유지에 관련된 대부분의 정보가 이 곳에 저장되며, 주로 하드웨어 장치나 드라이버 오류 정보 및 동작 여부 등이 기록

  • 보안 로그는 시스템 로그온, 파일 접근, 인증, 계정 생성, 권한 사용 등에 따른 이벤트와 보안과 관련된 항목들이 저장, 어떤 파일에 접근했는지에 대한 관련 정보가 포함되어 있어 사고 분석에 있어 가장 중요한 로그라 할 수 있음


(2) Event Log 상세 내용

2-1. Kind of

  • Windows OS Log

2-2. Information

  • Mostly Windows Activities

2-3. Path

  • %SystemRoot%\System32\winevt\*

2-4. characteristic

  • More log store from Windows vista and above

2-5. Tools

  • Event Log Explorer

  • Evtx Explorer, EvtxECmd

 

2-5-1. Event Log Explorer : https://eventlogxp.com/

 

Windows event log analysis software, view and monitor system, application and security event logs — FSPro Labs

For Windows Administrators Filters events by any criteria Stores user credentials Automates labor intensive tasks Monitors and notifies about events More about sysadmin features... For Forensic Investigators Retrives detailed information Reads damaged even

eventlogxp.com

 

2-5-2. Evtx Explorer, EvtxECmd : https://ericzimmerman.github.io/

 

Eric Zimmerman's tools

 

ericzimmerman.github.io

이외에도 수많은 이벤트 로그 분석 도구들이 존재한다.

 

[그림 1] 이벤트 로그 분석 예시


(3) 아티팩트 분석 실습

 

3-1. FTK Imager > Windows > System32 > winevt > Logs 폴더 이벤트 로그 아티팩트 확인

  • 마우스 우클릭 > Export Files 기능을 이용하여 해당 아티팩트를 수집

[그림 2] FTK Imager - 이벤트 로그 수집

 

여기서 중요한 것은, Event Log 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 3] 해당 아티팩트 공유 폴더 지정 예시

 

위 [그림 3]은 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 아티팩트를 지정해 준 화면이다.

 

 

3-2. Event Log Explorer 활용, 이벤트 로그 분석

 

[그림 4] Event Log Explorer

 

호스트 PC에 있던 이벤트 로그를 분석 환경으로 옮긴 다음, Event Log Explorer를 실행한 화면이다.

 

 

3-3. 레코드 & 컬럼 분석

 

[그림 5] 레코드 & 컬럼 분석

 

하나의 레코드를 예로 들어, 컬럼 분석한 결과이다.

  • Information 부분은 이벤트의 심각도를 가리키며, 주로 Information과 Error, Warning 등이 있음

  • 2020-03-27은 이벤트가 발생했던 날짜이며, 오후 4:33:03초에 발생했던 시간이 출력

  • 43은 특별한 이벤트 유형을 식별하는 값을 나타냄

  • Microsoft-Windows는 이벤트를 기록한 소프트웨어(이벤트가 일어난 프로세스)를 의미

  • Windows 업데이트 에이전트는 이벤트 게시자의 하위 구성 요소 또는 활동을 표현하는 데 사용

  • \SYSTEM은 이벤트에 대한 사용자의 이름을 나타냄

  • 마지막으로 LAPTOP은 노트북(데스크톱)의 기기 모델명을 의미 

 

3-4. 더블 클릭 확인

 

[그림 6] 더블 클릭 - 상세 내용 확인

 

더블 클릭하여 확인해보면, [그림 6]과 같이 자세한 정보를 확인할 수 있다.


(4) 추가 내용 정리

  • 윈도우 운용 과정에서 발생하는 특정 이벤트들을 종합적이고, 체계적으로 로그 기록

    • 시스템의 성능, 오류, 경고 및 운용 정보 등의 중요 정보 기록

  • 기록된 로그들은 각각 이벤트 ID를 가짐

    • 이벤트 로그를 획득해도 이벤트 ID 의미를 알지 못하면 의미 없음

  • 주요 이벤트 로그는 다음과 같음

    • Application.evtx 응용 프로그램 로그

    • System.evtx 시스템 로그

    • Setup.evtx 설치 로그

    • Security.evtx 보안 로그

  • 포렌식 관점으로는 다음과 같다.

    • 시스템에서 발생하는 취약점 분석

    • 시스템 장애 원인, 성능 관리

    • 시스템 외부 침입 감지 및 추적

    • 전반적인 시스템 활동 분석


# Reference

 

http://www.forensic-artifact.com/windows-forensics/windowseventlogs

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Jump Lists  (0) 2020.05.25
[Windows Artifacts] Shortcut (LNK)  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24

[Windows Artifacts] Prefetch

 

윈도우 아티팩트


(1) Prefetch란?

  • 부팅 시 혹은 응용 프로그램을 실행할 때 속도를 높이기 위해 사용

  • Windows 내에서 메모리를 효율적으로 관리하기 위한 한 방법

  • Process

    • 부팅 시에는 120초 동안 모니터링하고, 응용 프로그램 시작 시에는 10초 모니터링

    • 모니터링 시간 동안 메모리에 올라온 프로세스 모니터링

    • 모니터링 시간 동안 메모리에 올라온 프로세스의 시스템 자원 모니터링

    • 메모리에 올라온 프로세스 모니터링 정보로 프리패치 파일 생성

    • 부팅 혹은 응용 프로그램 실행

    • 미리 저장된 프리패치 파일에 남겨진 정보를 메모리에 미리 실행

    • 프로세스 로딩 속도 향상


(2) Prefetch 상세 내용

2-1. Kind of

  • Windows OS Function

2-2. Information

  • Executed Process, Process Path, Created / Modified Time

  • Loaded DLL, Loaded File

2-3. Path

  • %Systemroot%Prefetch

2-4. Characteristic

  • Store 128 limited file, Delete old files when the number exceeds

  • It must be in memory for a certain period of time to be stored...

2-5. Tools

  • PECmd

  • WinPrefetchView

 

2-5-1. PECmd : https://ericzimmerman.github.io

 

Eric Zimmerman's tools

 

ericzimmerman.github.io

 

2-5-2. WinPrefetchView : https://www.nirsoft.net/utils/win_prefetch_view.html

 

View the content of Windows Prefetch (.pf) files

    WinPrefetchView v1.36 Copyright (c) 2010 - 2020 Nir Sofer Description Each time that you run an application in your system, a Prefetch file which contains information about the files loaded by the application is created by Windows operating system. T

www.nirsoft.net

 

[그림 1] WinPrefetchView 실행 화면 예시


(3) 아티팩트 분석 실습

3-1. FTK Imager > Windows > Prefetch(.pf)

 

[그림 2] FTK Imager - Prefetch 수집

 

여기서 중요한 것은, Prefetch 파일 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

 

[그림 3] 해당 아티팩트 공유 폴더 지정 예시

 

위 [그림 3]은 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해 준 화면이다.

 

 

3-2. WinPrefetchView 활용, 프리패치 분석

 

[그림 4] WinPrefetchView 아티팩트 분석

 

WinPrefetchView 도구를 사용하여 확인해보면, 여러 프리패치 파일들을 확인할 수 있다.

 

파일 이름, 생성 시간, 수정 시간 등 정렬 기준을 마음대로 하여 파일 확인도 가능하다.

 

 

3-3. 레코드 & 컬럼 분석

 

[그림 5] 레코드 & 컬럼 분석

 

메모장에 대한 프리패치 파일을 예로 들어 분석한 내용이다.

  • 노트패드(메모장)에 대한 프리패치 파일

  • 생성 시간, 수정 시간, 파일 크기, 실행 된 프로세스, 프로세스 경로에 대한 정보 확인 가능

  • 마지막 런 타임, 런 카운터, Missing Process에 대한 결과 값도 같이 확인 가능

 

Missing process ?

  • nirsoft WinPrefetchView 해당 도구가 추가한 커스텀 컬럼

  • 원래의 prefetch 파일 설계 레이아웃에는 존재하지 않음

  • Process Hollowing 기법을 탐지하기 위해 만들어진 컬럼 (오탐 가능성 존재)

 

Process Hollowing ?

  • 프로세스 시작 시에 suspend 옵션을 주어 잠시 일시중지 후 해당 프로세스의 실행 섹션에 악성코드 인젝션 후, 재시작 시키는 공격자의 악성코드 삽입 기법

  • 코드 인젝션을 용이하기 하기 위한 기법이며, 이런 기법이 사용될 경우 prefetch 파일에 이상 동작이 기록

  • 'Missing Process' 컬럼에 'yes'가 표현되는 이유는 해당 prefetch 파일 내에 프로세스 경로나 위치가 정상적으로 기록되지 않아서 기록

 

Prefetch 파일과 Process Hollowing 상관관계

  • 프로세스는 실행되기 위해 7가지 세부 단계를 거침 (세부 단계 생략, Windows Internals 참조)

  • Prefetch 기능은 7번째 단계에서 동작

  • Process Hollowing 기법은 6번째 단계에서 시작 (프로세스 일시중지 - 6번째 단계 / 재시작 - 7번째 단계)

  • 따라서, 7번째 단계에 악성코드가 재시작되므로 인젝션 된 프로세스의 Prefetch 파일에는 악성코드가 로드하는 리소스들이 기록

  • 예를 들어, 정상 calc..exe 프로세스의 Prefetch 파일에는 정상적인 리소스들이 로드된 기록이 남겠지만 Process Hollowing 기법으로 인젝션 된 calc.exe 프로세스의 Prefetch 파일에는 악성코드가 로드한 리소스들이 남을 것

 

즉, Process Hollowing 기법의 타겟이 된 프로세스의 Prefetch 파일은 인젝션되어 오작동하기 때문에 정상적으로 원본 프로세스의 경로를 읽지 못한다거나, 원래는 불러와야 할 리소스를 불러오지 못한다.

 

이 과정에서 정상적인 Prefetch 파일이 제대로 기록되지 못하고, 무언가 누락된 Prefetch 파일이 생성되게 된다.

 

 

3-4. DLL / INI 파일 확인

 

[그림 6] 프리패치 관련 DLL 파일

 

하단을 보면 메모장 프로그램에 대한 프리패치 파일과 관련된 여러 DLL 파일이나 INI 등 관련 파일들에 대한 디바이스 경로와 인덱스 번호에 대한 결과 값 확인도 가능하다.

 

이를 통하여 로드 된 악성 파일의 실행 흔적 확인도 가능하다.


(4) 추가 내용 정리

  • 윈도우 프리패치는 실행 파일이 사용하는 시스템 자원을 특정 파일에 미리 저장하는 파일

  • 윈도우 부팅 시에 프리패치 파일을 모두 메모리에 로드

  • 사용자가 파일을 실행할 경우, 미리 저장된 정보를 메모리에서 실행하여 실행 속도를 향상 시킴

  • 프리패치 파일의 포렌식적 의미로는 다양한 정보를 저장하므로 포렌식적으로 중요한 정보 활용이 가능

  • 프리패치 파일에서 획득 가능한 정보는 응용 프로그램 이름, 응용 프로그램 실행 횟수, 응용 프로그램 마지막 실행 시각, 참조 목록, 파일 시스템 시간 정보(MAC 타임)를 이용한 통합 타임라인 분석 등이 있음

  • Missing Process 컬럼은 해당 도구(nirsoft Winprefetchview)가 추가한 커스텀 컬럼으로, Process Hollowing 기법을 탐지하기 위해 만들어진 컬럼 (오탐 가능성 존재, 오탐 이유)

  • Process Hollowing 기법 타겟이 된 프리패치 파일은 인젝션되어 정상적 원본 프로세스 경로를 읽지 못하거나 기존에 불러와야 하는 리소스를 불러오지 못하게 되어 정상 프리패치 파일이 제대로 기록되지 못하고 누락된 프리패치 파일이 생성됨


# Reference

 

http://forensic-proof.com/archives/6103

 

(FP) 프리, 슈퍼 패치 포렌식

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Shortcut (LNK)  (0) 2020.05.25
[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24

[Windows Artifacts] Registry

 

윈도우 아티팩트


(1) Registry란?

  • Windows OS 내의 설정과 선택 항목을 담고 있는 데이터베이스

    • 하드웨어

    • 소프트웨어

    • 대부분의 none-운영체제 소프트웨어

    • 사용자 PC 설정

    • 사용자 제어판 설정

    • 파일 연결

    • 시스템 정책

    • 설치된 소프트웨어 변경

    • 운영체제의 런타임 정보 커널에 제공

  • 이전에는 이러한 구성 설정을 각 프로그램마다 INI 파일에 저장

    • But, 이러한 파일들은 파편화되어 관리 비용이 많이 듦

    • 이러한 연유로 윈도우 레지스트리 도입

[그림 1] 윈도우 레지스트리


(2) 레지스트리 상세 내용

 

2-1. Kind of

  • Windows Database

2-2. Information

  • Windows Setting and Activities

2-3. Path

  • C:\Windows\System32\config\*

  • %UserProfile%\NTUSER.DAT (OS dependency)

  • %UserProfile%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat 

2-4. Characteristic

  • Hierarchical Structure, in memory at runtime, save as hive to disk

2-5. Tools

  • Registry Explorer, RECmd

  • REGA

 

2-5-1. Registry, RECmd : https://ericzimmerman.github.io

 

Eric Zimmerman's tools

 

ericzimmerman.github.io

 

2-5-2. REGA : http://forensic.korea.ac.kr/tools.html

 

DFRC - Digital Forensic Research Center

 

forensic.korea.ac.kr


(3) 아티팩트 분석 실습

3-1. FTK Imager > Users > %UserProfile% > NTUSER.DAT

 

[그림 2] FTK Imager - NTUSER.DAT

 

3-2. NTUSER.DAT(LOG) - Export Files

 

[그림 3] 레지스트리 아티팩트 수집

 

여기서 중요한 것은, 레지스트리 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 4] 해당 아티팩트 공유 폴더 지정 예시

 

위 [그림 4]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해 준 화면이다.

 

 

3-3. Registry Explorer 활용, 레지스트리 아티팩트 분석

 

[그림 5] Registry Explorer

 

여기서 LOG1과 LOG2 파일을 넣는 이유는, 하이브 파일은 대부분 같은 경로에 트랜잭션 동작을 위해 '트랜잭션 로그 파일'을 남긴다.

 

LOG 파일은 레지스트리의 적용되기 전의 보류 중인 트랜잭션 데이터를 하이브에 다시 저장하거나, 제거하기 위해 충분한 정보를 임시로 저장해놓는 파일이다.

 

따라서 해당 파일들을 같이 수집하여 분석 도구에 넣고 분석해줘야 정상 결과들이 출력된다.

 

 

3-4. CSV 파일 생성 및 분석 (Sublime Text3)

 

[그림 6] CSV 파일 오픈

 

분석 진행을 위해 레지스트리 아티팩트를 CSV 파일로 만든 후, Sublime Text 3 프로그램으로 해당 파일을 오픈한다.

 

 

3-5. 테이블 & 컬럼 분석

 

[그림 7] 특정 테이블 및 컬럼 분석

 

FTK Imager에 대한 프로그램 정보를 예로 들어 설명한다.

 

  • FTK Imager(Key name)는 프로그램에 대한 정보이며, 0은 Values 값, 2는 Sub Key, 2019-11-03 13:17:33은 마지막으로 사용한 시간 정보라는 것으로 확인가능


(4) 추가 내용 정리

  • 윈도우 레지스트리는 Microsoft Windows OS에서 운영체제와 응용 프로그램 운영에 필요한 정보를 저장하기 위해 고안한 계층형 데이터베이스

  • 부팅 과정부터 로그인, 서비스 실행, 응용 프로그램 실행, 사용자 행위 등 모든 활동에 관여

  • 레지스트리 포렌식 분석의 필요성으로는 운영체제 정보, 사용자 계정 정보, 시스템 정보, 응용 프로그램 실행 흔적, 최근 접근 문서 등이 포함되며, 자동 실행 항목 분석이나 악성코드 탐지 등을 목적으로 함

  • 레지스트리 분석의 포렌식 관점으로는 온라인 레지스트리 분석과 오프라인 레지스트리 분석으로 나뉨

  • 온라인 레지스트리 분석은 활성 시스템에서의 레지스트리 분석을 뜻하며, 오프라인 레지스트리 분석은 비활성 시스템에서의 레지스트리 분석을 뜻함

  • 하이브 파일은 레지스트리 정보를 저장하고 있는 물리적 파일로, 키 값들이 논리적인 구조로 저장되며, 활성 시스템의 커널에서 하이브 파일을 관리 (일반적 방법 접근 불가)

  • 하이브 셋은 활성 시스템의 레지스트리를 구성하는 하이브 파일 목록이며, 하이브 파일은 다음과 같음

    • SAM

    • SECURITY

    • SYSTEM

    • SOFTWARE

    • Default

    • NTUSER.DAT

    • BCD

    • COMPONENTS


# Reference

 

http://index-of.co.uk/Forensic/A%20Forensic%20Analysis%20of%20the%20Windows%20Registry.pdf

 

http://dandylife.net/docs/Windows-Registry-Artifacts.pdf

 

https://www.fireeye.com/blog/threat-research/2019/01/digging-up-the-past-windows-registry-forensics-revisited.html

 

https://github.com/msuhanov/regf/blob/master/Windows%20registry%20file%20format%20specification.md#types-of-files

 

codediver.tistory.com/attachment/cfile10.uf@999890335A20C43605E477.pdf

 

http://forensic-proof.com/ (FP) 레지스트리 포렌식과 보안 

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24
[Windows Artifacts] $MFT  (0) 2020.05.24

[Windows Artifacts] $UsnJrnl

 

윈도우 아티팩트


(1) $UsnJrnl이란?

  • 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용

  • 파일의 생성 / 변경 / 추가 등의 파악할 수 있는 중요한 로그

  • Windows 7 이후부터 기본 활성화, fsutil 이용하여 작업 가능

[그림 1] $UsnJrnl ($J) 아티팩트


(2) $UsnJrnl 상세 설명

2-1. Kind of

  • NTFS Filesystem Log 

2-2. Information

  • File Event such as Create, Overwrite, Close, Rename, Added Data, Etc.

2-3. Path

  • $MFT 10th Entry

2-4. Characteristic

  • Enable tracking of deleted files.

2-5. Tools

  • NTFS Log Tracker

  • JP

  • Log File Parser

 

2-5-1. NTFS Log Tracker : https://sites.google.com/site/forensicnote/ntfs-log-tracker

 

NTFS Log Tracker - blueangel's ForensicNote

NTFS Log TrackerThis tool can parse $LogFile, $UsnJrnl:$J of NTFS and carve UsnJrnl record in multiple files(unallocated dump, file slack, pagefile.sys, memory dump, vss, ...). A input of this tool is sample file extracted by another tool like Encase, Win

sites.google.com

 

2-5-2. JP : https://tzworks.net/prototype_page.php?proto_id=5

 

Windows Journal Parser

Windows Journal Parser (jp) Introduction jp is a command line tool that targets NTFS change log journals. The change journal is a component of NTFS that will, when enabled, record changes made to files. The change journal will record amongst other things:

tzworks.net

 

2-5-3. Log File Parser : https://code.google.com/archive/p/mft2csv/wikis/LogFileParser.wiki

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com


(3) 아티팩트 분석 실습

3-1. FTK Imager > Physical Drive > root > $Extend > $UsnJrnl > $J

 

[그림 2] FTK Imager - $J

 

3-2. $J - Export Files

 

[그림 3] $UsnJrnl 아티팩트 수집

 

여기서 중요한 것은, $UsnJrnl 아티팩트 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 4] 해당 아티팩트 공우 푤더 지정 예시

 

위 [그림 4]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해 준 화면이다.

 

 

3-3. NTFS Log Tracker 활용, $UsnJrnl 아티팩트 분석

 

[그림 5] NTFS Log Tracker

 

분석 진행을 위해 $UsnJrnl($J) 아티팩트를 선택한 다음, 생성 될 DB 파일의 이름, 경로를 지정해주고 분석을 진행한다.

 

 

3-4. 분석(파싱) 완료 테이블 화면

 

[그림 6] 파싱 완료 테이블

 

3-5. 레코드 & 컬럼 분석

 

[그림 7] 분석 결과에 대한 레코드와 컬럼

 

하나의 레코드를 기준으로 컬럼 분석 결과에 대한 내용이다. 

  • 2020-04-07 03:01:50 = 타임스탬프이며, 이벤트가 발생한 시간

  • 22080515264 = Update Sequence Number를 의미

  • JavaScript = 해당 파일에 대한 이름

  • File Created, File Closed = 이벤트에 대한 정보를 의미

  • Normal = 변경 이벤트를 발생시킨 주체에 대한 정보를 의미

  • Compressed, Directory = 변경 이벤트의 대상이 되는 객체에 대한 정보를 의미


(4) 추가 내용 정리

  • $UsrJrnl은 보다 안정적인 파일 시스템 사용을 위해 Windows 7 이상에서 사용하는 파일 변경 이벤트 관리 로그 파일

  • 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하며, 레코드 단위로 순차적 저장하여 관리 (식별 값 사용 - USN(Update Sequence Number)

  • 레코드에는 파일에 어떠한 변화가 일어났는지에 관한 정보가 담겨 있기에 정확하게 분석한다면 $LogFile을 통해 얻은 정보와 조합하여 강력한 데이터의 흐름 정보를 얻을 수 있게 됨

  • 내 컴퓨터에서 다음과 같은 명령어로 실제 유저 저널링 데이터가 저장되고 있는지 확인 가능

    • fsutil usn readJournal C : 유저 저널링 데이터가 쌓이지 않는다면, 다음 명령어로 강제 유저 저널링 데이터를 생성하게 끔 설정 필요

    • fsutil usn createJournal C : 추가로 NTFS Log Tracker 도구에서 출력해주는 컬럼 정보 중 일부 컬럼 정보는 다음과 같음

      • SourceInfo 컬럼, 운영체제 생성 파일, 디렉토리 변경 정보 컬럼, 예를 들어 데이터를 외부에서 로컬로 이동 시에 flag 형태로 값 기록, 0x1, 0x2, 0x4 flag 값 존재, 각 flag 값은 다른 방식으로 데이터가 이동되었다를 의미

      • Carving Flag 컬럼, $UsnJrnl 표준 구조에는 없는 컬럼, 도구 제작자가 커스텀하게 생성한 컬럼으로 추정, 데이터 카빙(복원) 성공 여부 도구에서 표현해주는 각 컬럼은 도구 제작자에 의해 편의성을 고려해 추가되거나 합쳐진 컬럼들이 존재할 수 있음

 

 

[표 1] $UsrJrnl 파일 표준 컬럼

Offset Size Description  0x00 (4)
Size of entry  0x04 (2) 
Major Version  0x06 (2)
Minor Version 0x08 (2)
MFT Reference  0x10 (8)
Parent MFT Reference  0x18 (2)
Offset of this entry in $J  0x20 (8)
Timestamp 0x28 (4)
Reason  0x2C (4)
SourceInfo 0x30 (4)
SecurityID 0x34 (4)
FileAttributes 0x38 (2)
Size of Filename (in bytes) 0x3A (2)
Offset to filename 0x3C (V)
Filename V+0x3C P Padding Align to 8 bytes

# Reference

 

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24
[Windows Artifacts] $MFT  (0) 2020.05.24

[Windows Artifacts]  $LogFile

 

윈도우 아티팩트


(1) $LogFile이란?

  • NTFS 트랜잭션 로그 파일

  • 작업 중 갑작스런 파일 손실 시, 복구를 위해서 사용

  • 모든 트랜잭션 작업 레코드 단위로 기록

  • 트랜잭션이란?

    • job A = "시작-작업, 1-작업, 2-작업, 3-완료"

    • '작업 2' 실패 시 '시작' 상태였던 당시로 모든 데이터 회귀

    • 모든 '작업 1, 2, 3' 완료 시, 데이터 변경 수행 

[그림 1] $LogFile 트랜잭션


(2) $LogFile 상세 내용

2-1. Kind of

  • NTFS Filesystem Log

2-2. Information

  • Record Unit Event Such as Create Dir/File, Delete Dir/File, Change Dir/File, Etc.

2-3. Path

  • MFT 2nd Entry

2-4. Characteristic

  • Need to Translate that Record Unit Event

  • Enable tracking of deleted files.

2-5. Tools

  • NTFS Log Tracker

  • JP

  • LogFileParser

 

2-5-1. NTFS Log Tracker : https://sites.google.com/site/forensicnote/ntfs-log-tracker

 

NTFS Log Tracker - blueangel's ForensicNote

NTFS Log TrackerThis tool can parse $LogFile, $UsnJrnl:$J of NTFS and carve UsnJrnl record in multiple files(unallocated dump, file slack, pagefile.sys, memory dump, vss, ...). A input of this tool is sample file extracted by another tool like Encase, Win

sites.google.com

 

2-5-2. JP : https://tzworks.net/prototype_page.php?proto_id=5

 

Windows Journal Parser

Windows Journal Parser (jp) Introduction jp is a command line tool that targets NTFS change log journals. The change journal is a component of NTFS that will, when enabled, record changes made to files. The change journal will record amongst other things:

tzworks.net

 

2-5-3. LogFileParser : https://code.google.com/archive/p/mft2csv/wikis/LogFileParser.wiki

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com


(3) 분석 실습

3-1. FTK Imager > Physical Drive > NTFS 파일 시스템 root 디렉토리에 $LogFile 존재

 

[그림 2] FTK Imager - $LogFile 확인

 

3-2. $LogFile - Export Files

 

[그림 3] $LogFile 수집

 

여기서 중요한 것은, $LogFile 아티팩트 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 4] 해당 아티팩트 공유 폴더 지정 예시

 

위 [그림 4]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 아티팩트를 지정해 준 화면이다.

 

 

3-3. NTFS Log Tracker 활용, $LogFile 분석

 

[그림 5] NTFS Log Tracker

 

[그림 6] 생성 DB 이름 & 저장 경로 선택

 

분석 진행을 위해 생성될 DB 파일의 이름과 저장 경로를 선택한 다음, 파싱을 진행한다.

 

 

3-4. 분석(파싱) 완료

 

[그림 7] 분석(파싱) 완료 테이블 화면

 

3-5. 레코드 & 컬럼 추가 설명

 

[그림 8] 레코드 & 컬럼

 

  • 102061788477 = 각 작업 레코드는 고유의 LSN($LogFile Sequence Number)을 가짐

  • 2020-04-07 02:09:21 = UTC +9를 기준으로 이벤트 시간, 생성 시간, 수정 시간, MFT 수정 시간, 접근 시간 을 뜻함

  • File Creation = 해당 파일에 대한 이벤트를 뜻함

  • $MFT = 파일의 이름을 뜻함

  • Initialize File Record Segment = Redo(작업한 데이터)를 뜻함

  • 0x1260 = Target VCN으로 Redo 데이터가 적용되는 $MFT 상의 Virtual Cluster Number를 뜻함

  • 2 = 클러스터 인덱스이며, MFT 엔트리가 있는 하나의 클러스터 내에서 몇 번째 엔트리에 해당하는지에 대한 값을 뜻함 


(4) 추가 내용 정리

  • $LogFile은 NTFS 트랜잭션 로그파일이라 불리며, 시스템 오류나 갑작스런 전원 차단 발생 시에 작업 중이던 파일 복구를 위해 사용 됨

  • 모든 트랜잭션 작업을 레코드 단위로 기록

  • MFT Entry 번호, 변경된 속성, 수정된 위치, 값 등 변경 전과 후의 모든 정보를 상세하게 기록

  • $LogFile은 본래 파일 시스템 복구 기능을 위해 존재하는 파일이지만, 사고 분석 시에 삭제된 악성코드 혹은 포렌식 시에 삭제된 문서들을 복원하는 데 유용한 아티팩트

  • 로깅된 파일이 실제 데이터 영역 n번째 클러스터에서 write 되었는지 파악할 수 있기에 복원이 가능한 원리

  • 삭제된 파일은 $MFT 엔트리에서도 Overwrite 될 수 있어 $MFT에는 없지만 $LogFile에 남아 있으면 삭제되었다고 판단할 수 있으며, 복원 가능성도 있음

  • $LogFile의 각 작업 레코드는 순차적으로 증가하는 식별 값(LSN)을 가지며, 이것을 해석하기 위해서는 최종적으로 $MFT와 교차하여 파일 단위 이벤트(생성, 삭제, 수정, 이름 변경) 해석이 필요


(5) 내 컴퓨터 $LogFile 확인

내 Desktop에 얼마나 큰 $LogFile을 남기는지 확인할 수 있는 명령어는 다음과 같다.

 

[그림 9] chkdsk.exe /L

 

  • cmd(명령 프롬프트)를 관리자 권한으로 실행하고, chkdsk.exe /L을 입력하게 되면 [그림 9]와 같은 결과 창을 확인 가능 


# Reference

 

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24
[Windows Artifacts] $MFT  (0) 2020.05.24

[Windows Artifacts]  $MFT

 

윈도우 아티팩트


(1) $MFT란?

  • NTFS 파일 시스템의 가장 핵심적인 부분

  • 모든 파일에 대해서 적어도 한 개의 엔트리 소유

    • 삭제된 비할당 파일 포함

  • MFT는 파일에 대한 메타데이터 저장

    • 파일명, 크기, 생성/수정/접근 일자, 속성 등

  • 실제 데이터는 'Data Area'(데이터 영역)에 저장

[그림 1] NTFS 파일 시스템 영역


(2) $MFT 상세 내용

2-1. Kind of

  • NTFS FileSystem Metadata

2-2. Information

  • File's All Metadata

2-3. Path

  • $MFT

2-4. Characteristic

  • Variable Path, VBR offset, 48-55, Logical cluster Number for the file $MFT

2-5. Tools

  • MFTExplorer

  • MFTECmd

  • Mft2Csv

  • analyzeMFT

 

2-5-1. MFTExplorer, MFTECmd : https://ericzimmerman.github.io

 

Eric Zimmerman's tools

 

ericzimmerman.github.io

 

2-5-2. Mft2Csv : https://github.com/jschicht/Mft2Csv

 

jschicht/Mft2Csv

Extract $MFT record info and log it to a csv file. - jschicht/Mft2Csv

github.com

 

2-5-3. analyzeMFT : https://github.com/dkovar/analyzeMFT

 

dkovar/analyzeMFT

Contribute to dkovar/analyzeMFT development by creating an account on GitHub.

github.com

 

[그림 2] Mft2Csv 도구 예시


(3) 분석 실습

3-1. FTK Imager > Physical Drive  > NTFS 파일 시스템 root 디렉토리에 $MFT 파일 존재

 

[그림 3] FTK Imager - $MFT 파일 확인

 

3-2. $MFT 파일 Export Files

 

[그림 4] $MFT 파일 추출

 

여기서 중요한 것은, $MFT 파일 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 5] 해당 아티팩트 공유 폴더 지정 예시 

 

위 [그림 5]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해준 화면이다.

 

 

3-3. MFT Explorer 분석

 

[그림 6] MFT Explorer

 

3-4. 하나의 테이블 선택, 각각 컬럼 분석

[그림 7] 테이블 & 컬럼

 

  • 해당 정보는 Download 폴더에 대한 정보이며, 옆에 체크 항목은 디렉토리인지, 삭제된 파일인지에 대한 정보

  • 시간은 $SI (Standard_Information) 과 $FN (File_Name) 두 속성으로 구분

  • 각각 생성 시간, 수정 시간, 접근 시간, 레코드 변경 시간이 기록

  • 그 외에 체크 항목은 타임스탬프에 대한 여부, 복사본에 대한 여부

 

[그림 8] Hex 값 확인

 

  • 도구 하단에서는 해당 파일에 대한 상세 정보와 Hex 값을 자세하게 분석 및 확인이 가능

 

[그림 9] Properties

 

  • 도구 좌측에서는 폴더 / 파일 특정 선택과 Properties 체크를 따로 구분하여 확인 가능


(4) 추가 내용 정리

  • 윈도우 사용자라면 기본적으로 많이 사용되는 NTFS 파일 시스템을 사용함에 있어 파일에 대한 메타데이터 파일(파일 정보, 위치 등)을 담고 있는 파일을 $MFT라고 함

  • MFT 영역은 MFT 엔트리들의 집합으로써 MFT Record 또는 File Record 라고 불리며, NTFS 내에 존재하는 모든 파일 또는 디렉토리는 파일 당 하나 이상의 MFT 엔트리가 할당 됨

  • MFT 엔트리는 1024byte 크기로 각 파일 및 디렉토리 위치, 시간 정보, 파일 이름, 크기 등의 속성 정보를 담고 있음

  • $MFT 파일은 각 파일 정보를 기록하는 단위인 MFT 엔트리의 나열로 이루어져 있으며, MFT Entry에는 연결되는 파일의 MAC(수정, 접근, 생성)시간을 비롯하여 MFT 엔트리 자체를 수정한 시간도 기록

  • MFT 엔트리는 파일 정보를 기록하기 위해 여러 가지 속성을 활용하는 데, 이때 시간 정보를 기록하는 속성은 $Standard_information 속성과 $File_Name 속성이 존재

  • $Standard_information은 플래그, MAC(수정/접근/생성)시간, 소유자와 보안 ID 등의 정보를 저장

  • $File_Name은 파일 이름(Unicode), MAC(수정/접근/생성)시간을 저장

  • MFT 분석 도구인 MFT Explorer는 한 눈에 쉽게 보기 편한 장점이 있지만, 파싱 속도가 매우 느리다는 단점을 가지고 있어 속도면에서는 analyzeMFT 또는 mft2csv 같은 CLI 버전 도구 권장

다음은 $Standard_information과 $File_Name 속성을 이용한 시간 속성 분석법 자료이다.

 

[그림 10] $Standard_information & $File_Name


#Reference

 

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24

+ Recent posts