CTF · 워게임
Step 181. ★ 주력 분야 선정 + 보조 분야 결정 — 나는 어떤 플레이어인가
Level 3 — CTF 실전과 공격 스킬 심화 | 난이도 ★★☆☆☆ | 예상 소요 시간 3시간
전제: Step 176~180(CTF 다섯 분야 맛보기)를 마쳤다. 각 분야의 기록(해결 여부, 걸린 시간, 기분)이 있다.
⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 분야 기록을 모으는 대상도 합법 플랫폼(드림핵, pwnable.kr 등)에서의 풀이로 한정합니다.
- 준비물: Step 176~180의 풀이 기록, 메모장 또는 노트 앱. 새로 실행할 명령은 없습니다.
- 주의: 오늘은 개념 챕터입니다. 컴퓨터 앞에서의 실습보다, 지난 닷새의 기록과 마주하는 시간이 본체입니다.
Web, Pwn, Reversing, Crypto, Forensics — 다섯 분야를 다 맛봤습니다. 이제 집중할 곳을 정합니다. CTF 대회는 팀전이고, 우승 공식은 "모두가 조금씩"이 아니라 "각자 강점 분야의 득점원"이 되는 것입니다. 오늘의 결정은 판결이 아니라 우선순위 선언입니다 — 바꿀 수 있습니다. 중요한 것은 일단 하나를 깊게 파기 시작하는 것입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 다섯 분야의 성격(학습 곡선, 대회 비중, 진로 연계)을 표로 비교한다
- 자기 풀이 기록에서 "재미 신호"와 "적성 신호"를 추출한다
- 주력 1개 + 보조 1개를 근거와 함께 선정한다
- "나는 ○○ 플레이어" 선언문과 조정된 학습 계획을 문서로 쓴다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | 없음 — 노트와 지난 기록이 도구입니다 |
| 오늘의 명령어 | 새 명령어 없음 |
| 필요한 개념 | 분야별 특성, 학습 곡선, 대회 득점 구조, 적성 신호 읽기 |
| 오늘의 산출물 | 분야별 자기 평가표 + 주력/보조 선정 선언문 + 조정된 계획 |
2-1. 다섯 분야의 성격 비교
| 분야 | 한 줄 성격 | 학습 곡선 | 대회 비중 | 인구·희소성 | 진로 연계 |
|---|---|---|---|---|---|
| Web | HTTP와 앱 로직의 허점 찾기 | 완만 — 입문 문제 많음 | 큼 (모든 대회 고정) | 인구 많음 | 모의해킹, 버그바운티 |
| Pwn | 바이너리 메모리 공격 | 가파름 — 어셈블리 필수 | 큼 (고배점) | 인구 적음 | 취약점 연구, 시스템 보안 |
| Reversing | 소스 없는 바이너리 해부 | 가파름 — 어셈블리 필수 | 중간 | 인구 적음 | 악성코드 분석 |
| Crypto | 수학 퍼즐, 구현 실수 찾기 | 중간 — 수학 친화도가 관건 | 중간 | 가장 희소 | 보안 연구, 암호학 |
| Forensics | 증거 파일에서 흔적 찾기 | 완만 — 도구 익히기 | 작음~중간 | 보통 | 침해사고 대응(DFIR) |
읽는 법: "대회 비중"은 득점 기회의 크기, "인구·희소성"은 팀에서 내가 귀해질 가능성입니다. Web은 파이가 크지만 겨루는 사람도 많고, Crypto는 파이가 작지만 할 수 있는 사람이 드뭅니다.
한 가지 오해를 먼저 풀어 둡니다 — "학습 곡선이 가파르다"는 것은 "하지 말라"는 뜻이 아닙니다. 가파른 곡선은 초반 진입이 힘든 대신, 넘고 나면 할 수 있는 사람이 급격히 줄어듭니다. 반대로 완만한 곡선은 시작이 쉬운 대신 중급부터 경쟁이 치열합니다. 어느 쪽이든 선점의 대가는 시간이고, 그 시간을 버티게 하는 것이 다음 소절의 재미 신호입니다.
2-2. 재미 신호와 적성 신호 — 둘은 다르다
선정의 재료는 두 종류입니다. 둘 다 지난 닷새의 기록에서만 나옵니다 — 책이나 남의 이야기에서 나오지 않습니다.
- 재미 신호: 못 풀어도 계속 붙들고 있던 분야. 시간 가는 줄 몰랐던 분야. 밤에 문득 "아까 그 문제"가 떠오른 분야.
- 적성 신호: 생각보다 빨리 풀린 분야. 남들이 어렵다는 부분(어셈블리, 수식)이 의외로 편했던 분야.
둘이 일치하면 그게 주력입니다. 어긋나면 — 재미는 있는데 안 풀리는 분야와, 풀리는데 심심한 분야가 있다면 — 재미를 우선하세요. 실력은 시간이 만들지만, 흥미가 없으면 시간이 모이지 않습니다. "가장 못 풀어도 계속 하고 싶었던 분야"가 정답인 이유입니다.
주의할 점이 하나 있습니다. 재미 신호는 "풀었을 때의 짜릿함"이 아니라 "막혀 있는 동안의 감정"으로 측정해야 정확합니다. 풀리는 순간은 다섯 분야 모두 즐겁습니다 — 도파민은 분야를 가리지 않습니다. 진짜 신호는 풀리지 않는 3시간째에도 노트를 펴고 있는가, 입니다.
2-3. 주력 + 보조의 구조
주력 하나만으로는 대회에서 할 일이 없는 순간이 옵니다 — 그 분야 문제가 안 나오거나, 이미 팀원이 풀고 있거나. 그래서 보조를 정합니다. 좋은 보조의 조건:
- 주력과 기초 체력을 공유할 것 (예: Pwn과 Reversing은 어셈블리를 공유)
- 주력과 리듬이 다를 것 (예: 장기전인 Pwn의 보조로 단타가 가능한 Forensics)
대표 조합: Pwn+Rev(체력 공유 최대), Web+Forensics(완만한 곡선 둘), Crypto+Rev(희소성 조합). 정답은 없고, "보조는 주력의 예비가 아니라 쉬는 날의 운동"이라고 생각하면 고르기 쉽습니다.
2-4. 선정은 변경 가능하다
오늘의 선정은 3개월 단위로 재평가하면 됩니다. 깊게 파다 보면 예상과 다른 자신을 발견합니다 — 어셈블리가 생각보다 즐겁다거나, 수학이 예상보다 버겁다거나. 그 발견이 쌓여 다음 선정의 재료가 됩니다. 망설여지면 일단 재미 신호가 가장 큰 분야로 시작하세요. 결정을 미루는 것보다 틀린 결정을 수정하는 것이 빠릅니다.
"변경 가능"이라는 말에 안주해 대충 정하는 것도 경계합니다. 재평가는 데이터가 바뀌었을 때 하는 것이지, 마음이 싱거울 때마다 하는 것이 아닙니다. 오늘의 선정에는 최선의 근거를, 재평가에는 정직한 기록을 — 이 둘이 갖춰지면 선정은 두려울 것이 없는 절차입니다.
2-5. 득점원의 일상 — 분야별 훈련의 모습
선정 전에 각 분야의 "훈련 일상"이 어떻게 생겼는지 아는 것도 재료입니다. 같은 한 시간을 써도 풍경이 다릅니다:
| 분야 | 하루 훈련의 전형 |
|---|---|
| Web | 브라우저 개발자 도구와 Burp Suite를 띄우고 요청·응답을 조작하며 반응을 관찰 |
| Pwn | gdb에서 스택을 보며 입력을 한 바이트씩 조정 — 익스플로잇 스크립트를 파이썬으로 다듬기 |
| Reversing | 디컴파일러(Ghidra)의 의사 코드를 읽으며 변수명을 추론해 붙이기 |
| Crypto | 문제의 파라미터와 수식을 노트에 옮기고, 파이썬으로 가설을 검산 |
| Forensics | 증거 파일에 루틴을 적용하고, 안 나오면 한 층 깊은 도구로 |
어느 풍경이 "내가 매일 해도 괜찮은 그림"인지 떠올려 보세요. 문제를 푸는 순간의 짜릿함은 다섯 분야가 비슷합니다 — 갈리는 것은 풀리지 않는 긴 시간의 풍경입니다.
3. 따라 하기
3-1. 기록 모으기 — 다섯 날의 성적표
Step 176~180의 기록을 한 표로 모읍니다. 형식은 이렇게 (값은 여러분의 기록으로 채우세요):
| 분야 | 푼 문제 수 / 시도 | 재미 (5점) | 막혔을 때 기분 | 다시 하고 싶나 |
|---|---|---|---|---|
| Web | / | /5 | ||
| Pwn | / | /5 | ||
| Reversing | / | /5 | ||
| Crypto | / | /5 | ||
| Forensics | / | /5 |
"막혔을 때 기분" 칸이 중요합니다. "짜증"과 "궁금"은 천양지차입니다. 막혀도 궁금했던 분야가 오래 갑니다.
3-2. 신호 추출 — 표를 해석하기
채운 표에서 두 가지를 찾습니다:
- 재미 최고점: 재미 점수가 가장 높은 분야. 동점이면 "막혔을 때 기분"이 궁금에 가까운 쪽.
- 적성 최고점: 시도 대비 해결률이 가장 높은 분야.
두 개가 같은 분야면 — 그것이 주력입니다. 다르면 2-2의 원칙대로 재미 쪽을 주력으로, 적성 쪽을 보조 후보로 놓고 다음 단계로.
해석 예시: 어떤 학습자의 표가 이랬다고 합시다 — Web 해결률 최고·재미 3, Crypto 해결률 보통·재미 5, 막혔을 때 기분은 Crypto만 "궁금". 이 경우 주력은 Crypto입니다. Web은 "풀리지만 심심한" 쪽 — 보조로 두면 적성이 살고, 억지로 주력에 앉히면 긴 훈련 시간을 버티지 못합니다. 표의 숫자보다 "궁금/짜증" 칸이 더 큰 정보를 담고 있는 전형적인 경우입니다.
3-3. 진로 연계 확인 — 5년 뒤의 나와 대조
주력 후보를 2-1 표의 "진로 연계" 열과 대조합니다:
- 모의해킹·버그바운티가 목표 → Web이 주력이면 정합
- 악성코드 분석이 목표 → Reversing 주력이 정합
- 보안 연구·대학원 → Crypto/Pwn이 정합
- 침해사고 대응 → Forensics가 정합
진로와 어긋나도 즉시 바꿀 필요는 없습니다. CTF 재미가 진로를 바꾸는 경우도 흔합니다. 다만 알고 선택하는 것과 모르고 선택하는 것은 다릅니다.
3-4. 선언문 작성 — 나는 ○○ 플레이어
아래 형식으로 선언문을 씁니다:
[선언문 양식]
나는 {주력} 플레이어다.
근거: (재미 신호) / (적성 신호)
보조 분야: {보조} — 고른 이유 한 줄
재평가 시기: {오늘로부터 3개월 뒤 날짜}
진로와의 연결: 한 줄
선언문의 힘은 "근거"에 있습니다. 근거가 채워지지 않으면 그것은 선정이 아니라 소망입니다 — 3-1로 돌아가 재료를 더 모으세요.
3-5. 계획 조정 — 다음 스텝의 우선순위 바꾸기
선정이 끝나면 Level 3 남은 구간의 우선순위를 조정합니다:
- 주력 분야의 심화 스텝(Step 191~250의 해당 트랙)을 최우선으로 배치
- 보조 분야는 주력 학습이 막히는 날의 전환 훈련으로 배치
- 나머지 분야는 "대회에서 읽기라도 할 수준"의 유지 훈련으로 격하
조정 예시 (주력이 Pwn인 학습자의 한 주):
월·화·목: Pwn 심화 트랙 스텝 (주력 — 새 개념 + 문제)
수: Reversing 문제 1개 (보조 — 어셈블리 체력 공유)
금: Pwn 트랙 계속
주말: Web/Forensics 입문 문제 하나씩 (유지 훈련, 부담 없이)
주력이 주 3회 이상 계획에 있어야 "주력"이라 부를 수 있습니다. 다섯 분야가 고르게 한 번씩이면 그것은 선정 이전의 맛보기와 같은 분배입니다.
계획표에 주력 분야 이름을 굵게 표시해 두세요. 조정된 계획이 보여야 선정이 완료된 것입니다.
4. 미션과 연습문제
미션 — 선정 패키지 완성
다음 세 가지를 한 문서로 완성하세요:
- 3-1의 자기 평가표 (다섯 분야 전부 채운 것)
- 3-4의 선언문 (근거가 채워진 것)
- 3-5의 조정된 학습 계획 (주력 트랙이 표시된 것)
연습문제
문제 1. 재미 신호와 적성 신호의 차이를 설명하고, 둘이 어긋날 때 어느 쪽을 우선하는지 이유와 함께 말해 보세요.
문제 2. "Web은 대회 비중이 크니 Web을 주력으로 삼는 것이 무조건 유리하다"는 주장의 빈틈을 2-1 표로 반박해 보세요.
문제 3. 좋은 보조 분야의 두 조건(체력 공유, 리듬 차이)을 설명하고, "Pwn 주력 + Pwn 보조"가 왜 성립하지 않는지 말해 보세요.
문제 4. 선정을 미루고 "다섯 개를 조금씩 계속" 하는 전략의 위험을 설명하세요. 반대로 선정을 "영구 결정"으로 여기는 태도의 위험도 함께 말해 보세요.
해설과 완료 기준 · 펼치기/접기
5. 모범 답안과 완료 기준
미션 모범 답안
선언문의 예 (내용은 예시일 뿐, 정답은 여러분의 기록에 있습니다):
나는 Pwn 플레이어다.
근거: fd 문제에서 조건 역산이 즐거웠고(재미), 리틀 엔디안 계산을
남들보다 빨리 이해했다(적성). 막혀도 "궁금"이었다.
보조 분야: Reversing — 어셈블리 체력을 공유해 주력 훈련이 곧 보조 훈련.
재평가 시기: 2026-12-09
진로와의 연결: 취약점 연구 쪽 진학을 염두에 두고 있다.
검증하는 법: ① 평가표의 다섯 분야가 전부 채워졌는가(비어 있으면 그 분야 맛보기를 보강). ② 선언문의 근거가 "하고 싶다"가 아니라 기록에서 온 사실인가. ③ 계획에 주력 트랙이 실제로 표시됐는가. 셋 중 하나라도 없으면 미완입니다.
연습문제 해답
문제 1 해답. 재미 신호는 "못 풀어도 계속하고 싶은가"의 감정 기록이고, 적성 신호는 "시도 대비 얼마나 풀렸나"의 성과 기록입니다. 어긋날 때는 재미를 우선합니다 — 실력은 반복이 만들고, 반복은 흥미가 만들기 때문입니다. 풀리지만 심심한 분야는 보조로 두면 됩니다.
문제 2 해답. 비중이 크다는 것은 득점 기회가 크다는 뜻이지만, 같은 표의 "인구" 열을 보면 Web은 겨루는 사람도 가장 많습니다. 팀 안에서 Web 플레이어는 대체 가능하지만, 희소한 Crypto/Pwn 플레이어는 대체가 안 됩니다. 비중만 보고 고르면 "모두와 같은 선택"을 하게 됩니다.
문제 3 해답. 체력 공유는 "보조 훈련이 주력 체력도 키우는가"(Pwn↔Rev는 어셈블리 공유), 리듬 차이는 "주력이 막히는 날 전환할 수 있는가"(장기전 Pwn의 보조로 단타 Forensics)의 조건입니다. "Pwn 주력 + Pwn 보조"는 보조가 없는 것과 같습니다 — 막히는 날 갈 곳이 없고, 대회에서 Pwn 문제가 없으면 그날 할 일이 사라집니다.
문제 4 해답. "조금씩 계속"은 어떤 분야도 중급 벽을 넘지 못하게 합니다 — CTF의 배점이 큰 문제는 전부 중급 이상이라, 다섯 개를 조금씩 아는 팀원은 득점원이 못 됩니다. 반대로 "영구 결정"으로 여기면 3개월 뒤의 새 사실(예상보다 재미없다, 생각보다 잘 풀린다)을 반영하지 못해 잘못된 길에 갇힙니다. 정답은 "깊게 파되, 정기적으로 재평가"입니다.
완료 기준 체크리스트
- [ ] 다섯 분야의 성격 비교표(곡선·비중·인구·진로)를 설명할 수 있다
- [ ] Step 176~180의 기록으로 자기 평가표를 채웠다
- [ ] 재미 신호와 적성 신호를 구분해 추출했다
- [ ] 주력 1개 + 보조 1개를 근거와 함께 선정했다
- [ ] "나는 ○○ 플레이어" 선언문을 작성했다
- [ ] 재평가 시기(3개월 뒤)를 정했다
- [ ] Level 3 남은 구간의 우선순위를 조정했다
6. 흔한 실수와 해결
벽 1. "다 재미없는데요" — 재미 신호가 안 잡힌다
증상: 다섯 분야 모두 재미 점수가 낮습니다.
원인: 맛보기 문제가 너무 쉽거나 너무 어려웠을 수 있습니다. 입문 문제는 각 분야의 "맛"을 온전히 못 보여 줍니다.
해결: 그나마 점수가 높은 분야에서 난이도 2 문제를 하나 더 풀어 보세요. 그래도 전부 낮으면, CTF 자체보다 방어 쪽(Step 175의 대응표 작업이 즐거웠는지)을 점검할 시기일 수 있습니다.
벽 2. 남의 선택에 휘둘린다
증상: "Pwn이 간지난다더라", "Web이 취업에 좋다더라"가 기준이 됩니다.
원인: 3-1의 자기 기록을 건너뛰고 2-1의 표만 봤습니다.
해결: 표는 참고자료이고 결정권은 기록에 있습니다. 기록이 비어 있으면 선정이 아니라 추측입니다 — 맛보기를 더 하고 오세요.
벽 3. 두 분야가 완전 동점이다
증상: 재미도 적성도 둘이 같습니다.
원인: 좋은 신호입니다 — 고민이 아니라 선택지가 둘인 것입니다.
해결: 2-1 표의 "진로 연계" 열로 결승전을 치르세요. 그래도 같으면 학습 곡선이 완만한 쪽을 주력, 가파른 쪽을 보조로 — 입구가 평탄한 쪽이 습관 만들기에 유리합니다.
벽 4. 선정 후 금방 후회한다
증상: 선언한 지 일주일 만에 다른 분야가 재미있어 보입니다.
원인: 정상입니다. 새 분야의 입문 구간은 언제나 달콤합니다.
해결: 재평가 시기 전에는 유지하세요. 단, "일주일의 설렘"과 "3개월의 데이터"를 구분하는 메모를 남기세요 — 설렘의 내용을 적어 두면, 재평가 때 진짜 신호인지 판별할 재료가 됩니다.
벽 5. 보조 분야를 안 정하고 넘어간다
증상: 주력만 정하고 보조는 "나중에".
원인: 보조의 역할(막히는 날의 전환 훈련)을 과소평가했습니다.
해결: 주력과 체력을 공유하는 분야 하나를 지금 고르세요. 보조가 없으면 주력이 막히는 날 학습 자체가 멈춥니다.
벽 6. 팀원과 주력이 겹친다
증상: 팀에 이미 같은 주력의 강자가 있어 내 설 자리가 없어 보입니다.
원인: 같은 분야에 두 명이 있다는 것은 문제가 아니라 대회 당일의 여유입니다.
해결: 세 가지 길이 있습니다. ① 그대로 간다 — 강자 옆에서 배우는 속도는 독학을 넘습니다. ② 세부 갈래를 나눈다 — Web 안에서도 서버 사이드와 클라이언트 사이드, Crypto 안에서도 RSA와 타원곡선처럼 나뉩니다. ③ 그래도 겹침이 불편하면 내 2순위와 그 사람의 보조를 맞바꿉니다. 무엇을 고르든 "겹쳤으니 포기"만은 아닙니다 — 희소 분야로 강제 이동당한 선택은 오래 가지 못합니다.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 주력 분야 | 대회에서 내가 득점원이 되는 분야 — 깊게 파는 하나 |
| 보조 분야 | 막히는 날의 전환 훈련 겸 예비 득점원 — 체력 공유가 이상적 |
| 재미 신호 | 못 풀어도 계속하고 싶은가의 감정 기록 |
| 적성 신호 | 시도 대비 해결률의 성과 기록 |
| 희소 가치 | 인구가 적은 분야(Crypto, Pwn)는 팀에서 대체 불가 |
| 재평가 주기 | 선정은 3개월짜리 가설 — 데이터로 갱신 |
오늘의 명령어
| 명령 | 하는 일 |
|---|---|
| 새 명령어 없음 | 오늘의 도구는 기록과 표입니다 |
명령어보다 중요한 감각
선정의 본질은 "무엇을 버릴까"가 아니라 "무엇에 시간을 먼저 줄까"입니다. 다섯 분야를 다 맛본 지금의 여러분은, 어느 쪽을 골라도 틀리지 않습니다 — 맛본 것은 사라지지 않습니다. 다만 흩어진 시간은 아무것도 만들지 못하고, 모인 시간은 득점원을 만듭니다.
그리고 선언문을 어딘가에 붙여 두세요. 3개월 뒤 재평가에서 그 문장을 다시 읽을 때, 지켜졌든 수정됐든, 그것이 여러분의 첫 번째 "선수로서의 자기 기록"이 됩니다.
마지막으로 하나 더. 선정은 개인기록이면서 팀 약속이기도 합니다. 팀이 있다면 오늘의 선정을 팀원과 공유하세요 — "나는 ○○을 판다"는 말 한마디가 팀의 분야 공백 지도를 완성합니다. 혼자 공부 중이라면 그 지도는 미래의 팀을 찾을 때의 이력서가 됩니다.
전부 체크되면 Step 181 완료입니다.
한 단계 더 가까이
수업을 마쳤나요?
본문의 완료 기준을 확인한 뒤 직접 표시하세요.