어떤 수업을 찾고 있나요?

예: PowerShell, 네트워크, XSS, Step 138

전체 커리큘럼 둘러보기 →

포렌식

Step 250. ★ 중간 점검: 종합 포렌식 문제 독립 해결 + 보고서 — 증명하는 사람이 된다

Step 250

Level 3 — CTF 실전과 공격 스킬 심화 | 난이도 ★★★★☆ | 예상 소요 시간 4시간

전제: Step 240~249(Forensics 트랙 전체 — 디스크·메모리·네트워크·로그·메타데이터·암호화 아티팩트), Step 248(종합 챌린지 5개), Step 249(IR 보고서 6단 구성)를 마쳤다.

  • 준비물: 안 풀어 본 종합 포렌식 문제 1개(아래 2-2의 선정 기준 참고), 작업 일지용 마크다운 파일, 증거 정리용 폴더.
  • ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 연습 문제는 합법 CTF 플랫폼(드림핵, CTF 아카이브 등)에서 고릅니다.
  • 성격 안내: 오늘은 [워게임] 챕터이자 중간 점검입니다. 3번 섹션은 절차와 서식만 제공합니다 — 문제 풀이는 처음부터 끝까지 여러분 혼자의 힘입니다. 외부 플랫폼 문제를 다루므로 이 챕터의 화면은 출력 예시입니다.

Forensics 트랙의 졸업 시험입니다. 포렌식은 "풀었다"가 아니라 "증명했다"가 완성입니다 — 플래그를 찾는 것으로 끝나지 않고, 모든 주장에 증거(명령, 출력, 스크린샷)가 붙은 보고서로 마무리되어야 합니다. 오늘의 완료 조건은 두 개입니다: 미지의 종합 문제를 독립 해결할 것, 그리고 제3자가 재현할 수 있는 보고서를 남길 것.

지금까지의 챕터가 기법 하나하나를 가르쳤다면, 오늘은 그 기법들을 아무도 알려 주지 않는 순서로 스스로 배열하는 훈련입니다. 막히는 것은 실패가 아니라 점검의 일부입니다 — 어디서 막혔는가가 곧 여러분의 진단표입니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • 종합 포렌식 문제를 도움 없이 선정하고 착수할 수 있다
  • 분석 전 과정을 작업 일지(시각·도구·발견·가설)로 기록한다
  • 멀티 스테이지 문제에서 기법 사슬(증거 → 기법 → 다음 증거)을 스스로 구성한다
  • 증거 목록과 분석 과정이 분리된 재현 가능한 보고서를 작성한다
  • "제3자 재현 가능성" 기준으로 자기 보고서를 셀프 검증한다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 지금까지 배운 포렌식 도구 전부 (binwalk, exiftool, tshark, Volatility, hashcat 등)
오늘의 명령 새 명령은 없습니다 — 있는 도구의 조합이 오늘의 내용입니다
필요한 개념 멀티 스테이지, 기법 사슬, 작업 일지, 재현 가능성, 플레이북
오늘의 산출물 작업 일지 1부 + 분석 보고서 1부 + 개인 포렌식 플레이북 갱신

2-1. 종합 문제의 구조 — 기법이 사슬로 얽힌다

실전형 문제는 기법이 섞여 나옵니다. 고전적인 배열 하나를 예로 들면:

pcap 수신 → 패킷에서 파일 추출 → 추출한 파일이 암호화됨
→ 암호 크래킹(힌트는 메타데이터에) → 열린 문서 안에 플래그

한 증거가 다른 증거의 열쇠인 구조입니다. 각 고리는 이미 배운 기법이지만, "다음 고리가 무엇인지"는 아무도 알려 주지 않습니다. 종합 문제의 난이도는 개별 기법이 아니라 이 연결에서 나옵니다.

2-2. 문제 선정 기준 — 점검이 되려면

중간 점검용 문제는 다음 조건을 만족해야 합니다.

  • 안 풀어 본 것 — 기억으로 푸는 점검은 점검이 아닙니다
  • 멀티 스테이지 — 기법이 최소 2개 이상 연결된 것 (드림핵 Forensics 중급, CTF 아카이브의 종합 문제 등)
  • 솔루션이 존재하는 것 — 최후의 수단입니다. 풀이 후 자기 분석과 대조할 때만 엽니다
  • 혼자 완주 가능한 분량 — 2~4시간. 그 이상 걸리는 문제는 쪼개서 기록합니다

2-3. 작업 일지 — 기록이 곧 분석이다

오늘의 핵심 습관입니다. 시도하는 즉시, 다음 네 칸을 적습니다.

[시각] 도구/명령: (실제로 친 것)
발견: (출력에서 눈에 띈 것 — 출력 자체는 evidence/에 저장)
가설: (이 발견이 시사하는 것)
다음: (다음에 할 일)

"발견 즉시 기록"이 원칙입니다. 나중에 몰아서 쓰는 기록은 기억의 재구성이고, 기억은 미화됩니다 — Step 173에서 배운 그대로입니다. 막혀서 헤맨 30분도 기록입니다. 그 시간이 보고서의 "돌파 과정" 절의 재료입니다.

2-4. 막힘 회귀 체크리스트 — 아직 안 써본 도구

막혔을 때의 회귀 지점을 미리 정해 둡니다. "아직 안 써본 도구" 목록을 훑는 것입니다.

□ 파일인데 이상하다 → file, binwalk, strings
□ 그림/사진이다 → exiftool, zsteg, steghide
□ 소리다 → 스펙트로그램(Audacity), 음성 재생
□ 패킷이다 → tshark 통계부터 (Step 249의 순서)
□ 메모리다 → Volatility imageinfo → pslist → filescan
□ 암호화됐다 → 힌트를 다른 증거에서 찾는다 (열쇠는 다른 고리에)

"이 파일을 여는 비밀번호가 저쪽 증거에 있지 않을까"라는 연결 의심이 종합 문제의 핵심 감각입니다.

2-5. 보고서 구조 — Step 128·173·249의 연장

오늘의 보고서는 네 축입니다.

① 증거 목록     — 받은 파일 전부, 각각의 해시
② 분석 과정     — 증거별로 적용한 기법과 출력 (명령 순서 그대로)
③ 연결 관계     — 어떤 증거가 어떤 증거의 열쇠였는가 (사슬 그림)
④ 결론          — 플래그 또는 사고 재구성 결과

Step 173의 기준을 그대로 물려받습니다 — 모든 주장에 증거가 붙고, 독자가 명령을 따라 하면 같은 결론에 닿습니다.


3. 따라 하기

오늘의 3번 섹션은 풀이가 아니라 절차와 서식입니다. 실제 문제는 여러분이 고르고, 여러분이 풉니다.

3-1. 착수 — 문제 선정과 증거 봉인

문제를 골랐으면 분석 전에 세 가지를 합니다.

mkdir -p step250/evidence step250/notes
cd step250
# 받은 증거 파일을 evidence/에 넣고 해시를 찍는다
sha256sum evidence/* | tee notes/hashes.txt

읽는 법: 해시를 찍는 이유는 두 가지입니다 — 분석 중 원본이 변하지 않았음을 보이는 것, 그리고 보고서에서 "이 해시의 파일"이라고 증거를 지목할 수 있게 하는 것입니다. 이후 모든 분석 출력은 notes/에 파일로 남깁니다 (명령 | tee notes/01-file.txt 식).

3-2. 개시 — 첫 30분의 정찰 서식

문제 파일을 열기 전에 계획을 씁니다. 서식:

# 문제: (이름/출처) — 착수 (날짜 시각)

### 증거 목록과 예상 기법
| 파일 | 해시 앞 8자리 | 겉보기 정체 | 적용할 기법(가설) |
|------|--------------|-------------|-------------------|
| ____ | ____ | ____ | ____ |

### 첫 가설
이 문제는 아마 ____ 유형일 것이다. 근거: ____

읽는 법: "적용할 기법(가설)" 칸이 오늘의 훈련 대상입니다. 틀려도 됩니다 — 틀린 가설이 맞는 가설로 교정되는 과정이 일지에 남는 것, 그것이 독립 분석력의 증거입니다.

3-3. 분석 — 일지를 굴러가게 하는 리듬

분석 중에는 2-3의 네 칸(시각·도구·발견·가설)을 반복합니다. 한 단계가 끝날 때마다 현재 상태를 한 줄로 갱신합니다.

[현재 상태] 확보한 것: ____ / 막힌 것: ____ / 다음 고리 후보: ____

30분 이상 진전이 없으면 2-4의 회귀 체크리스트를 열고 "아직 안 써본 도구"를 하나씩 짚습니다. 그래도 막히면 가설을 거꾸로 묻습니다 — "출제자는 이 증거를 왜 줬을까?"

3-4. 기법 사슬 그리기 — 연결의 시각화

해결이 보이기 시작하면 고리들을 한 장의 사슬로 그립니다.

[challenge.pcap] --tshark 추출--> [secret.zip] --암호 필요-->
[힌트: photo.jpg의 EXIF 코멘트] --크래킹--> [secret.txt] --> 플래그

읽는 법: 이 그림이 보고서의 ③ 연결 관계 절이 됩니다. 화살표마다 "어떤 도구의 어떤 출력"이 근거인지 표시하세요. 화살표에 근거가 없으면 추측입니다.

3-5. 마무리 — 보고서 조립과 셀프 검증

풀이가 끝나면 일지를 보고서로 다듬습니다. 그리고 마지막 질문을 던집니다.

① 이 보고서의 증거 목록과 해시가 실제 파일과 일치하는가?
② ②(분석 과정)의 명령을 그대로 치면 같은 출력이 나오는가?
③ 화살표(연결)마다 근거 출력이 붙어 있는가?
④ 결론이 ①~③ 없이도 성립한다고 주장한 부분이 없는가?
   (있으면 그 부분이 증거 없는 주장입니다)
⑤ 이 문제에서 처음 쓴 도구·옵션을 플레이북에 추가했는가?

다섯 질문에 전부 ‘예’이면 제출 가능한 보고서입니다. 하나라도 ‘아니오’면 그 절로 돌아갑니다.


4. 미션과 연습문제

미션 — 종합 포렌식 문제 독립 해결과 보고서 완성

  1. 2-2 기준으로 안 풀어 본 멀티 스테이지 문제를 1개 선정합니다
  2. 3-1~3-2의 서식으로 착수하고, 해시 목록을 남깁니다
  3. 분석 전 과정을 3-3의 일지 형식으로 기록합니다 — 막힌 시간도 포함
  4. 해결 후 3-4의 기법 사슬 그림을 그립니다
  5. 2-5의 네 축으로 보고서를 작성하고, 3-5의 다섯 질문으로 셀프 검증합니다
  6. 이 문제에서 새로 쓴 도구·기법을 개인 포렌식 플레이북에 추가합니다

연습문제

문제 1. "포렌식은 풀었다가 아니라 증명했다가 완성"이라는 말을, 보고서의 어느 요소가 이 차이를 만드는지와 함께 설명해 보세요.

문제 2. 작업 일지를 "나중에 몰아서" 쓰면 안 되는 이유를 두 가지 들어 보세요.

문제 3. 멀티 스테이지 문제에서 "연결 의심"이란 무엇이며, 왜 종합 문제의 핵심 감각인지 설명해 보세요.

문제 4. 중간 점검 문제에 "솔루션이 존재하는 것"을 고르라는 이유와, 솔루션의 올바른 사용 시점을 설명해 보세요.


해설과 완료 기준 · 펼치기/접기

5. 모범 답안과 완료 기준

미션 모범 답안

완성된 산출물의 형태 예시입니다 (문제마다 내용은 다릅니다 — 형태를 기준으로 삼으세요).

step250/
├── evidence/            # 원본 증거 (손대지 않음)
├── notes/
│   ├── hashes.txt       # sha256 목록 — 착수 시 생성
│   ├── 01-file.txt      # 각 단계의 명령+출력 (tee로 저장)
│   ├── 02-binwalk.txt
│   └── journal.md       # 시각·도구·발견·가설 일지
└── report.md            # ①증거 목록 ②분석 과정 ③연결 관계 ④결론

보고서의 ③ 연결 관계 절 예시:

challenge.pcap -(tshark: ftp-data 추출)-> secret.zip
  -(암호 필요 → 다른 증거 탐색)-> cover.jpg
cover.jpg -(exiftool: Comment 필드 "try the year we met")->
  암호 후보 4자리 -> (zip2john + john: 4자리 숫자 규칙)->
  secret.txt -> 플래그 확인

검증하는 법: ① sha256sum -c notes/hashes.txt가 전부 OK인가. ② 사슬의 화살표마다 괄호 안의 근거(도구+발견)가 있는가. ③ 일지에 막힌 구간과 돌파가 최소 1건 있는가. ④ 플레이북에 추가된 항목이 있는가. 전부 ‘예’이면 완성입니다. 솔루션을 열었다면, 자기 풀이와 다른 고리가 있었는지 비교 문단을 보고서 끝에 붙이세요 — 그것도 학습의 산출물입니다.

연습문제 해답

문제 1 해답. "풀었다"는 플래그 문자열 하나로 증명되지만, "증명했다"는 그 플래그에 이르는 모든 주장에 증거가 붙은 상태입니다. 이 차이를 만드는 요소는 ① 증거 목록(해시 포함), ② 재현 가능한 명령과 출력, ③ 연결의 근거입니다. 플래그는 결과이고, 증거의 사슬은 설득력입니다 — 실무에서 보고서를 읽는 사람은 플래그가 아니라 사슬을 검토합니다.

문제 2 해답. 첫째, 기억은 왜곡됩니다 — 40분 헤맨 구간이 5분으로 줄어드는 식입니다 (Step 173의 복기 원리). 둘째, 중간 발견물(임시 파일, 중간 출력)은 시간이 지나면 지워지거나 덮입니다 — 즉시 기록만이 그 자리의 증거를 보존합니다. 일지는 분석의 부산물이 아니라 분석의 일부입니다.

문제 3 해답. 한 증거를 여는 열쇠가 다른 증거에 있을 것이라고 의심하는 습관입니다 — "이 zip의 비밀번호가 저 jpg의 메타데이터에 있지 않을까". 종합 문제는 개별 기법이 아니라 이 연결을 찾는 능력을 측정하도록 설계됩니다. 단일 기법 문제의 도구 지식은 이미 트랙에서 검증됐고, 오늘 검증하는 것은 배열의 능력입니다.

문제 4 해답. 중간 점검의 목적은 측정이지 좌절이 아닙니다. 솔루션이 있어야 정말 풀 수 없는 문제(출제 오류, 환경 의존)에서 영원히 막히는 사고를 피할 수 있습니다. 사용 시점은 "완주 후 대조"가 원칙이고, 부득이 열었다면 ① 몇 시간을 혼자 시도했는지 일지에 적고, ② 힌트의 최소 단위(다음 고리 하나)만 보고, ③ 나머지는 다시 혼자 풉니다. 그리고 보고서에 "솔루션 참고 구간"을 정직하게 표시합니다.

완료 기준 체크리스트

  • [ ] 안 풀어 본 멀티 스테이지 문제를 선정했다
  • [ ] 증거 해시를 착수 시점에 기록했다
  • [ ] 작업 일지가 시각·도구·발견·가설 형식으로 채워져 있다
  • [ ] 막힌 구간과 돌파 과정이 일지에 있다
  • [ ] 기법 사슬 그림의 화살표마다 근거가 있다
  • [ ] 보고서 네 축(증거·과정·연결·결론)이 완성됐다
  • [ ] 셀프 검증 다섯 질문에 전부 ‘예’로 답했다
  • [ ] 새로 쓴 도구를 플레이북에 추가했다

6. 흔한 실수와 해결

벽 1. "어떤 문제를 골라야 할지" 한 시간째 고르고만 있다

증상: 문제 목록만 계속 훑고 착수를 못 합니다.
원인: 완벽한 문제를 고르려는 마음입니다.
해결: 2-2 기준에 맞는 첫 번째 문제를 고르세요. 문제 선택의 품질보다 완주의 품질이 점수를 만듭니다. 고르는 데 15분이 넘으면 타이머를 끄고 그 자리에 있는 것으로 시작합니다.

벽 2. 중간 산출물을 덮어써서 사슬이 끊긴다

증상: 추출한 파일을 같은 이름으로 다시 추출해 원본을 잃었습니다.
원인: 작업 폴더 규칙의 부재입니다.
해결: 단계마다 새 파일명(01_extract.zip, 02_cracked.txt)을 쓰세요. 원본 증거 폴더는 쓰기 금지입니다. 해시 목록(notes/hashes.txt)으로 원본 무결성은 언제든 검증할 수 있습니다.

벽 3. 일지를 미루다 "이거 어떻게 찾았더라"가 된다

증상: 풀이는 끝났는데 보고서를 쓸 재료가 없습니다.
원인: 기록을 "나중에"로 미룬 것입니다 — 2-3의 경고 그대로입니다.
해결: 이번에는 터미널 history와 남은 출력 파일로 재구성할 수 있는 부분만 정직하게 쓰고, 재구성 불가능한 부분은 [기록 없음 — 추정]으로 표시하세요. 그리고 다음 문제부터는 tee를 기본값으로 둡니다. 빈칸을 표시하는 정직함도 점검의 산출물입니다.

벽 4. 보고서가 성공 경로만 담고 있다

증상: 두 시간 헤맨 기록이 보고서에 없습니다.
원인: 실패를 부끄러워하는 마음입니다.
해결: Step 173의 문장을 기억하세요 — 막힘과 돌파의 기록이 독자의 함정 회피 문장이고, 보고서의 신뢰 그 자체입니다. "처음엔 X라고 가설을 세웠으나 Y 출력으로 기각"이라는 문장이 있는 보고서가, 없는 보고서보다 믿을 수 있습니다.

벽 5. 솔루션을 보고 나서 "내가 다 푼 것"으로 기록한다

증상: 보고서에 참고 사실이 없는데 일지에는 수십 시간의 공백이 있습니다.
원인: 점검을 평가로 착각하는 마음입니다 — 점검은 자기 진단 도구이지 남에게 보이는 성적표가 아닙니다.
해결: 참고 구간을 표시하는 것이 오히려 유리합니다. "여기까지 독립, 여기서 힌트"라는 경계가 정확한 자기 실력 지도를 만듭니다. 지도가 정확해야 다음 훈련이 정해집니다.


7. 정리

오늘의 개념

개념 한 줄 설명
멀티 스테이지 기법 여러 개가 사슬로 얽힌 문제 구조
기법 사슬 증거 → 기법 → 다음 증거의 연결 그림
작업 일지 시각·도구·발견·가설의 즉시 기록
연결 의심 열쇠는 다른 고리에 있다고 의심하는 습관
재현 가능성 제3자가 명령을 따라 하면 같은 결론에 닿는 상태
플레이북 내가 쓴 도구·기법의 누적 문서

오늘의 명령어·도구

도구 하는 일
sha256sum evidence/* 증거 봉인 — 착수의 첫 명령
명령 | tee notes/NN-이름.txt 출력을 화면과 파일에 동시에
sha256sum -c notes/hashes.txt 원본 무결성 검증
회귀 체크리스트(2-4) 막혔을 때 안 써본 도구를 짚는 표
셀프 검증 5문(3-5) 제출 전 마지막 관문

명령어보다 중요한 감각

이번 점검이 측정한 것은 도구 지식이 아니라 배열의 능력입니다 — 아무도 순서를 알려 주지 않을 때 스스로 사슬을 만드는 힘. 그리고 보고서가 가르쳐 준 것: 포렌식에서 실력은 "아는 것"이 아니라 "증명할 수 있는 것"입니다. 오늘 완성한 보고서는 여러분의 첫 번째 독립 분석 증명서입니다. 이 문서가 있으면, 다음 구간(실전 머신 해킹)에서도 같은 질문을 스스로에게 던질 수 있습니다 — "나는 지금 무엇을 증명하고 있는가?"


전부 체크되면 Step 250 완료입니다.

한 단계 더 가까이

수업을 마쳤나요?

본문의 완료 기준을 확인한 뒤 직접 표시하세요.

화면이나 링크에 문제가 있나요? 알려주세요.
다음 수업