Digital Forensics Basics | Path | Dreamhack
Digital Forensics Basics | Path | Dreamhack
이런 이유로 이 Path를 추천해요 기업 정보 유출, 악성코드 감염, 내부자 위협 등 다양한 사이버 사건의 이면을 밝혀내고, 그 증거를 수집하는 분야가 바로 디지털 포렌식입니다. 본 Path는 실제 사
dreamhack.io
[ 1. 파티션, 볼륨 ]
1. 파티션(Partition)이란?
- 저장 장치 내 공간을 분리하여 독립적인 공간을 만드는 것
- 예를 들어, 하나의 하드디스크를 파티션 1, 2, 3으로 나눌 수 있다
2. 볼륨(Volume)이란?
- 하나의 저장 공간을 의미하며, 보통 C 드라이브, D 드라이브처럼 불린다.
- 하나의 파티션에 하나의 볼륨이 생성되는 경우가 많다.
포맷과 볼륨 재생성
- 포맷(Format) 이란? → 볼륨에 파일 시스템을 새로 설치하는 작업.
- 볼륨 삭제 후 "할당되지 않음" 공간에 새 파티션 및 볼륨을 만들 수 있다.
볼륨 크기(단위: MB)는 생성할 때 직접 설정할 수 있다.
파티션, 볼륨 실습
[준비]
- USB나 여분의 저장 공간 필요
(※ 기존 데이터 삭제 위험 있으니 주의!)
[실습 과정]
1. 디스크 관리 열기 (Windows + S → '디스크 관리' 검색)

2. 파티션 나누기 → 새로운 볼륨 생성
3. 볼륨을 포맷(Format)하여 파일 시스템(FAT32, NTFS 등) 지정

4. 볼륨 이름(레이블) 설정
5. 볼륨 삭제

6. 볼륨 재설정 ("할당되지 않음" 우클릭 -> "새단순 볼륨" 클릭)
7. 볼륨 재설정 - 파티션 크기 (자동으로 넣어주는 값보다 훨씬 작게 설정)
[실습 결과]
디스크 1에 파티션 2개.
파티션1에는 FAT32 파일 시스템
파티션 2에는 NTFS 파일 시스템

파티션 = 공간 구획
볼륨 = 파일 시스템이 설치된 저장 공간
포맷 = 파일 시스템 새로 설치하는 과정
[ 2. 파일 시스템 ]
1. 파일 시스템이란?
디지털 데이터를 효율적으로 관리하기 위해 파일을 체계적으로 기록하는 방법
파일 시스템이 하는 일:
- 저장장치 공간을 파악하고, 파일을 효율적으로 저장
- 사용자가 파일을 생성, 수정, 삭제할 수 있게 지원
- 파일의 생성 시간, 수정 시간, 변경 시간 기록
- 파일의 생성·수정·삭제 이력을 로그로 남기고 복구 지원
- 파일이나 폴더에 접근 권한 부여
"파일을 효율적이고 체계적으로 관리하기 위한 필수 시스템"
2. 파일 시스템의 종류

3. 파일 시스템과 디지털 포렌식
파일 시스템이 중요한 이유 3가지
- 파일 위치 파악
- 파일 시스템 정보 없으면 데이터 저장 위치를 알기 어렵다.
- '파일 카빙(File Carving)' 기법으로 어느 정도 찾을 수 있지만 정확도는 떨어진다.
- 메타데이터 추출
- 파일 위치를 알아도, 파일 이름, 경로, 생성/수정 시간 등 메타데이터를 알기 위해서는 파일 시스템 구조 이해가 필수다.
- 파일 복구 및 변경 이력 확인
- 파일 시스템은 변경 이력(저널링, Journaling)을 남겨 복구를 돕는다.
- 시스템 충돌, 정전 등에도 데이터 상태를 기록해 분석에 유리하다.
[ 3. MBR 과 VBR ]
1. MBR (Master Boot Record)
- 디스크(저장장치)의 가장 첫 번째 섹터에 저장되는 데이터입니다.
- 크기는 전통적인 하드디스크 기준 512바이트.
- 역할: 저장장치 파티션 정보, 부팅 가능한 볼륨 정보 기록 → 부트 코드 실행.
2. VBR (Volume Boot Record)
- 각 볼륨의 첫 번째 섹터에 저장되는 데이터입니다.
- 파일시스템과 클러스터 크기에 따라 크기가 달라질 수 있습니다.
- 역할: 부팅 가능한 볼륨을 로드하여 운영체제를 시작하는 데 사용.
BIOS → POST → MBR → VBR → 운영체제 부팅
- MBR: 부트 가능한 볼륨을 지정
- VBR: 해당 볼륨의 부트로더와 커널을 불러오는 역할
3. 슬랙
- 슬랙은 파일 시스템 구조 내 남는 빈 공간을 뜻합니다.
- MBR 슬랙: MBR 이후 다음 구조가 오기 전까지의 빈 공간.
4. MBR 구조

(색깔 별로 표시됨)

- 맨 앞 1바이트 → 부트 가능한지?
- 그 다음 3바이트 → 시작 위치(CHS)
- 그 다음 1바이트 → 파일 시스템 종류
- 그 다음 3바이트 → 끝 위치(CHS)
- 그 다음 4바이트 → 시작 위치(LBA)
- 그 다음 4바이트 → 파티션 크기(총 섹터 수)

[ 4. FAT32 ]
1. FAT32 파일 시스템의 기본 구조
| 구역 이름 | 설명 |
| Reserved Area | VBR, FSINFO, Boot Strap 등을 저장하는 구역 |
| FAT Area | 파일 위치를 기록하는 테이블 (FAT Table 2개) |
| Data Area | 실제 파일과 폴더 데이터가 저장되는 구역 |
2. Reserved Area
- Boot Sector: 0번 섹터에 위치 (백업은 6번 섹터)
- FSINFO: 파일 시스템 정보 저장 (1번 섹터)
- Boot Strap: 부트 코드 저장 (2번 섹터)
- Reserved Sector: 나머지 빈 공간
-> 디지털 포렌식에서는 특히 Boot Sector가 중요!

FAT32 Boot Sector 구조

3. FAT Area
- FAT Table 2개가 연속으로 저장돼 있다 (1개는 백업용)
- FAT Table은 파일이 저장된 클러스터 위치를 기록
- 하나의 FAT 엔트리는 4바이트


4. Data Area
- 실제 파일 데이터가 저장되는 영역입니다.
- Root Directory(루트 디렉터리)부터 시작해 파일 목록(Directory Entry) 관리.
5. 파일 찾기 흐름
- Reserved Area → FAT Area 시작 찾기
- FAT Area → 파일의 클러스터 위치 찾기
- Data Area → 실제 파일 데이터 접근
[ 4. NTFS ]
1. NTFS 구조
| 구역 | 설명 |
| VBR (Volume Boot Record) | 볼륨 정보와 부트 코드 저장 |
| MFT (Master File Table) | 모든 파일과 폴더의 메타데이터 저장 (파일 이름, 크기, 위치 등) |
| Data Area | 실제 파일/폴더 데이터가 저장되는 곳 |
| Backup VBR | VBR의 복사본, 맨 끝에 있음 (복구용) |
2. NTFS의 VBR 구조


3. MFT
NTFS 파일 시스템에서는 모든 파일과 폴더 정보를 MFT (Master File Table) 에 기록해 관리한다.
파일에 대한 메타데이터를 체계적으로 저장하는 "목차" 같은 역할
- 파일 이름
- 생성/수정/접근 시간
- 실제 파일 데이터의 위치
- 파일 크기 등
모든 파일/폴더는 MFT Entry 하나씩을 가지고 있고, 이 Entry들이 모여 거대한 MFT를 이룬다.

- Entry Header는 "나 누구야" 기본 정보
- Fix-up Array는 에러 대비용
- Attribute Area는 진짜 중요한 파일 정보를 가짐
- End Marker는 "여기서 끝!" 표시
Attribute Area란?
Attribute Area 안에는 여러 개의 "Attribute"가 들
| Attribute ID | 이름 | 설묭 |
| 0x10 | $STANDARD_INFORMATION | 파일의 생성/수정/접근 시간 정보 |
| 0x30 | $FILE_NAME | 파일/폴더 이름 및 경로 정보 |
| 0x80 | $DATA | 파일 실제 내용 또는 데이터 위치 |
4. Data Area
NTFS 파일 시스템에서는 파일 데이터가 MFT에 직접 저장될 수도 있고,
Data Area라는 별도 공간에 저장될 수도 있다.
기준:
- 700 Byte 이하 파일 → MFT 내부($DATA Attribute)에 저장
- 700 Byte 초과 파일 → Data Area에 저장 (MFT에 위치 정보만)
-> 파일 크기에 따라 저장 방식이 달라짐
Data Area 주소 계산 방법
Data Area에 파일이 저장될 경우,
Cluster Run이라는 특별한 방식으로 데이터 위치관리.
- Cluster Run 해석하는 방법
- 첫 번째 nibble(4bit) → Length (데이터가 차지하는 클러스터 수)
- 두 번째 nibble(4bit) → Offset (어디부터 저장되어 있는지)
[ 5. FTK Imager ]
1. FTK Imager란?
- FTK Imager는 디스크 이미지를 생성하고, 생성한 이미지를 분석하는 포렌식 도구
- 파일 시스템에 저장된 데이터뿐만 아니라 파일의 메타데이터(생성 시간, 수정 시간 등)까지 추출할 수 있음.
2. 디스크 이미지 생성
- NTFS로 포맷된 USB나 Windows 시스템 디스크를 대상으로 디스크 이미지를 생성.
- 생성된 이미지는 FTK Imager를 통해 탐색 및 분석할 수 있다
- [Image File 생성] 메뉴를 이용해 대상 드라이브를 선택하여 이미지를 만든다
3. 메타데이터 추출
- FTK Imager는 단순히 파일 데이터만 복사하는 것이 아니라, 파일의 생성/수정/접근 시간 같은 메타데이터도 함께 추출
- 추출한 파일은 원본 시스템에서의 시간 정보를 그대로 반영.
- FTK Imager에서 표시하는 시간은 기본적으로 UTC+0 기준. (Windows 파일 탐색기에서는 로컬 시간대 설정을 적용해서 다르게 보일 수 있음)
[ 6. 파일 시스템의 필요성 ]
- 새로운 공격 기법에 대한 심층 분석 가능
- 파일 시스템 구조를 의도적으로 변조한 공격을 분석하려면, 파일 시스템에 대한 이해가 필수
- 디지털 포렌식 도구의 한계 보완
- 포렌식 도구들은 파일이나 폴더만 읽어올 뿐, 모든 공격 흔적을 찾아주지는 못합니다.
- 파일 시스템을 직접 분석할 줄 알아야 도구가 놓친 부분까지 찾아낼 수 있습니다.
- 아티팩트(Artifact) 분석에 필수
- 파일 시스템을 공부하면, 디지털 포렌식 과정에서 생성된 다양한 아티팩트 구조를 더 쉽게 이해하고 분석할 수 있습니다.
- 새로운 유형의 흔적이나 변조를 찾아내는 데도 큰 도움이 됩니다.
[VBR 실습]
<문제>
주어진 VBR을 분석하고, 플래그를 계산하시오.
• A: 파일시스템이 FAT32면 1, NTFS면 2
• B: 해당 볼륨의 크기
• C: 볼륨 시리얼 번호
FLAG = DH{(A + B + C)} (단, 더한 값을 십진수로 변환할 것)
예를 들어 파일시스템이 NTFS, 볼륨의 크기가 0x100000 , 그리고 볼륨 시리얼 번호가 0×12341234 면, 2 + 0x100000 + 0x12341234 =
0×12441236 = 306450998 (십진수) 이므로 DH{306450998} |을 제출하시면 됩니다.
<풀이>

FAT32 가 보이므로 A = 1

"섹터 수" × "섹터 크기" = 실제 볼륨 크기
섹터 하나의 크기는 512바이트 (0x200)
섹터 수: 0x20 ~ 0x23
시리얼 번호: 0x43 ~ 0x46

볼륨 크기(Total Sectors 32)는 오프셋 0x20 ~ 0x23에 저장되므로
00 80 3E 00 의 헥스값을 가짐.
0x3E8000 × 0x200 = 0x7D000000
0x7D000000 = 2097152000 (십진수)
->B: 2097152000

EA EE 8A 0E
리틀 엔디언이므로 거꾸로 읽으면 0E 8A EE EA
16진수: 0x0E8AEEEA
0x0E8AEEEA = 243760234 (십진수)
-> C = 243760234
FLAG = DH{(A + B + C)} (단, 더한 값을 십진수로 변환할 것)
(이미 십진수)
A + B + C = 2340912235
FLAG = DH{2340912235}
'드림핵' 카테고리의 다른 글
| [워게임] sleepingshark (1) | 2025.07.21 |
|---|---|
| [드림핵] 윈도우 포렌식 - 레지스트리, find the USB, Autoruns (0) | 2025.05.20 |
| [드림핵] 디지털 데이터와 디지털 장치 (6) | 2025.04.08 |
| [드림핵] 디지털 증거-3 (해시 함수) (0) | 2025.04.01 |
| [드림핵] 디지털 증거-2 (메모리 덤프) (0) | 2025.04.01 |