Level 4 — 전문가
-
Step 304. OSCP 시험 이해와 준비 로드맵 — 실기 24시간의 전장 규칙
Level 3까지 여러분은 CTF와 HTB에서 "문제 푸는 사람"으로 단련됐습니다. OSCP는 그 훈련의 결산이면서 동시에 전혀 다른 종류의 시험입니다 — 플래그 하나를 찾는 퍼즐이 아니라, 정해진 시간 안에 여러 시스템을 침투하고 그 전…
-
Step 305. 연습 머신 공략 시작 — 한 대당 보고서 한 부
Step 304에서 지도를 그렸으니, 오늘부터 걷습니다. 단, 걷는 방식이 지금까지와 한 가지 다릅니다 — 머신 한 대를 공략할 때마다 시험 형식의 보고서 초안 한 부를 남깁니다. OSCP에서는 "풀었는데 증거가 없으면 0점"이므로, 증거…
-
Step 306. 열거의 철저함 — “Try Harder”의 실체
OffSec의 모토 "Try Harder"를 오해하면 시험에 집니다. 이 말은 "더 무식하게 시도하라"가 아니라 "더 철저히 열거하라"는 뜻입니다. 시험 머신에서 막히는 원인의 대부분은 새로운 기술의 부재가 아니라 …
-
Step 307. ★ 프로젝트 — 시험 형식 보고서 템플릿 확정
Step 128에서 보고서의 뼈대를, Step 305~306에서 기록하는 습관을 만들었습니다. 오늘은 그 둘을 시험 규격의 최종 템플릿으로 확정합니다. OSCP는 실기가 끝난 뒤 24시간 안에 보고서를 제출해야 하는 시험입니다 — 그 24시간을 "구조 고민&q…
-
Step 308. AD 세트 공략 훈련 — 클라이언트에서 도메인 컨트롤러까지
OSCP 시험 점수의 절반 가까이가 AD 세트에서 나옵니다 — 클라이언트 머신과 도메인 컨트롤러가 도메인으로 묶인 3대짜리 환경 하나가 통째로 40점입니다. Step 271에서는 "도메인 머신 한 대"를 공략했고, 오늘은 "도메인 하나&quo…
-
Step 309. ★ 첫 24시간 모의시험 — 시계와 싸우는 법을 배우는 하루
OSCP 실기 시험은 23시간 45분 동안 진행됩니다(운영 정책상 변동 가능 — 공식 안내 확인). 이 시험에서 기술력만큼 점수를 갈라놓는 것이 운영 전략입니다. "한 머신에 몇 시간 이상 묶이지 않기", "AD 세트와 독립…
-
Step 310. 모의시험 실패 패턴 분석과 보완 — 못 푼 머신은 세 종류다
모의시험이 끝나면 대부분은 점수만 봅니다. "50점이네, 20점 모자라네" — 그리고 워크스루를 읽고 "아, 그거였네" 하고 넘어갑니다. 이것이 첫 모의시험의 가장 흔한 낭비입니다. 못 푼 머신은 전부 같은 "못 푼 것&qu…
-
Step 311. ★ 두 번째 24시간 모의시험 — 보완이 먹혔는지 재는 검증의 날
한 번의 합격권 점수는 운일 수 있습니다. 머신 세트가 우연히 내 강점과 맞았을 수도, 막힌 곳이 우연히 풀렸을 수도 있습니다. 실력과 운을 가르는 유일한 방법은 재현입니다 — 다른 세트, 다른 하루, 같은…
-
Step 312. ★ OSCP 실기 시험 응시 — 연습한 대로만 하는 24시간
드디어 실전입니다. 시험은 감독관(프록터, proctor)이 화면과 웹캠을 모니터링하는 환경에서 진행되고, 종료 후 24시간 안에 보고서를 제출해야 합니다. 지금까지의 모든 훈련 — 열거 체크리스트, 시간 배분, 증거 수집 습관, 보고서 템플릿 — 가…
-
Step 313. OSCP 회고와 다음 계획 — 결과가 나오기 전에 할 일
시험 결과가 나오기까지는 며칠이 걸립니다. 이 며칠이 이 챕터의 무대입니다. 합격이든 불합격이든, 24시간 실전의 경험은 돈으로 살 수 없는 자산입니다 — 단, 기록됐을 때만. 소재의 경고 그대로, 합격하면 안도감에, 불합격하면 상실감에 회고를…
-
Step 314. 버그바운티 시작 — 제도 이해와 첫 타깃 선정
지금까지 배운 공격 기술은 전부 랩 안에서만 쓸 수 있었습니다. 오늘부터는 다릅니다 — 세상에는 "우리 서비스를 공격해 보고, 찾으면 돈을 드립니다"라고 공개 선언한 기업들이 있습니다. 이것이 버그바운티(bug bounty)입니다. 하지만 자유는 아니…
-
Step 315. 실서비스 정찰 — 공격 표면 매핑
버그바운티의 승부는 남들이 안 보는 자산을 찾는 데서 갈립니다. 기업의 실제 공격 표면은 메인 사이트보다 훨씬 넓습니다 — 개발 서버, 스테이징 환경, 오래된 API, 잊힌 관리자 페이지. 오늘은 이 자산들을 수집하고 분류해…
-
Step 316. 취약점 탐색 — 기능별 체계적 접근
초보 버그 헌터의 최대 착각은 "스캐너를 돌리면 취약점이 나온다"는 것입니다. 스캐너가 찾는 것은 이미 모두가 찾은 것입니다. 유효한 버그는 애플리케이션의 기능을 이해하고 허점을 찾을 때 나옵니다 — "이 숫자를 바꾸면 남의 데이터가…
-
Step 317. 후보 검증과 영향도 확인
Step 316에서 후보 여섯 개를 얻었습니다. 그런데 후보는 취약점이 아닙니다. "에러가 난다"는 취약점이 아니고, "타인의 데이터를 읽을 수 있다"가 취약점입니다. 오늘은 후보를 심판대에 올립니다 — 재현 가능한가, 보안 영향이 …
-
Step 318. 인정받는 제보서 작성
같은 취약점도 제보서에 따라 보상이 갈립니다. 트리아저(제보 심사자)는 하루에 수십 건을 읽습니다 — 제보서는 "아무 맥락도 없는 사람이 5분 안에 재현할 수 있어야" 합니다. 오늘은 Step 317에서 확정한 IDOR을 소재로, 트리아지를 통과하는…
-
Step 319. 첫 제보 제출과 트리아지 대응 — 버튼을 누른 뒤가 진짜 시작
Step 318에서 제보서를 완성했습니다. 그런데 제출 버튼을 누르는 순간, 일은 끝나는 것이 아니라 시작됩니다. 제보서는 트리아저(triageer)라는 사람의 책상에 도착하고, 그 사람의 판정에 따라 유효가 되기도, 중복이 되기도, 거절되기도 합니다. 오늘은 &quo…
-
Step 320. 1-day 취약점 분석 — 패치 diff로 원리 파악
취약점이 패치되면 벤더는 "고친 코드"를 공개합니다. 그 차이(diff)를 읽으면 "무엇이 고장 났었는가"를 역으로 계산할 수 있습니다. 이것이 1-day 분석 — 공개된 패치에서 취약 원리를 역산하는, 버그 헌터와 침투 테스터와 보…
-
Step 321. CVE 재현과 분석 보고서 공개 — 분석의 증명은 재현이다
Step 320에서 여러분은 diff를 읽어 취약점의 원리를 주장할 수 있게 됐습니다. 오늘은 그 주장을 증명합니다. 증명의 형식은 하나입니다 — 취약 버전에서는 공격이 성공하고, 패치 버전에서는 막히는 것을 둘 다 보여 주는 것.…
-
Step 322. 두 번째 CVE 독립 분석 — 혼자 서는 분석 사이클
Step 320~321은 책이 앞에서 길을 안내하는 분석이었습니다. 오늘은 안내를 뺍니다. "선정 → 패치 확보 → diff 분석 → 랩 구축 → 재현 → 보고서"의 전 사이클을 혼자 힘으로, 그리고 지난번보다 빠르게 수행하는…
-
Step 323. 오픈소스 도구 공개와 커뮤니티 기여 — 코드를 작품으로
이 책을 여기까지 오며 여러분은 스캐너, 자동화 스크립트, 분석 도구를 여럿 만들었습니다. 그것들을 정리해 공개 저장소로 올리면 세 가지를 얻습니다 — 코드 품질을 높이는 압력, 커뮤니티의 피드백, 그리고 채용 담당자가 확인할 수…
-
Step 324. 국내 대회 예선 출전 — 본선 진출 도전: 총점이 영웅을 이긴다
기출 분석(Step 298)으로 무대의 결을 읽었고, 두 번의 점검 대회(Step 300, 302)로 리허설을 마쳤습니다. 이제 진짜 예선입니다. 24시간 동안 열두 개 안팎의 문제가 열리고, 전국의 팀들이 같은 문제를 동시에 풉니다. 여기서 여러분의…
-
Step 325. 본선 대비 집중 훈련 — 아는 것을 확실히 하는 2주
본선 진출이 확정됐습니다. 이제 남은 2주가 승부입니다 — 그런데 이 2주의 사용법에는 함정이 있습니다. 조급함이 "새로운 것"을 요구합니다. 커널 포너블을 이참에 배워 볼까, 최신 웹 체인을 익혀 볼까. 소재 원문이 정확히 지적한…
-
Step 326. 본선 출전 — 최고 수준의 경험: 압박 속에서 우리의 계획을 실행한다
드디어 본선입니다. 국내 최고 수준의 팀들이 한 공간에 모이고, 옆 테이블의 타이핑 소리와 대형 스코어보드의 점수 변동이 실시간으로 보입니다. 예선과 실력은 같아도 환경이 다릅니다 — 그리고 그 환경이 실력을 점수로 바꾸는 비율을…
-
Step 327. 우승팀과의 격차 분석 — “무엇이”가 아니라 “왜”를 해부한다
대회가 끝나면 상위 팀의 Write-up이 공개됩니다. 읽기 시작하면 두 가지 감정이 옵니다 — "대단하다"와 "우리는 왜 못 했지". 둘 다 분석이 아닙니다. 소재 원문이 정확히 짚은 대로, 여기서 해야 할 일은 감탄이…
-
Step 328. 국제 대회 출전 — 글로벌 대회 경험: 세계의 천장을 보고 온다
국내 본선까지 경험한 여러분의 다음 무대는 세계입니다. Google CTF, DEF CON Qualifiers, Plaid CTF — 이 대회들은 난이도의 차원이 다릅니다. 문제 하나가 연구 수준이고, 세계 랭킹 팀들이 48시간을 풀가동합니다. 국내 대회에서 상위권이던…
-
Step 329. 세계 최고 수준의 신기법 분석 — Write-up이 곧 교과서다
국제 대회가 끝나면 며칠 안에 상위 팀들의 Write-up이 올라옵니다. 이 글들은 단순한 풀이 모음이 아닙니다 — 그해의 최신 공격 기법 목록입니다. 새로운 웹 프레임워크 우회, 최신 암호 공격, 아무도 이름을 붙이지 않은…
-
Step 330. 최신 지식 흡수 루틴 구축 — 좋은 채널을 구독하는 사람이 이긴다
보안은 반감기가 짧은 지식입니다. 2년 전의 최신 기법은 오늘의 기본이고, 매주 새로운 취약점과 기법이 쏟아집니다. 이 환경에서 "열심히 보는 사람"은 지칩니다 — 쏟아지는 양은 의지로 감당할 수 없기 때문입니다.
-
Step 331. 멘토링 시작 — 가르치며 배우기: 설명할 수 없으면 모르는 것
누군가에게 가르쳐 보면 내 지식의 구멍이 정확히 드러납니다. "BOF를 설명해 주세요"라는 질문에 막히는 부분이 있다면, 그게 내가 모르는 부분입니다. 이것이 파인만 기법(Feynman technique) — 노벨상 수상자 리처드 파인만의 학습법으로,…
-
Step 332. 세미나 발표 자료 제작 — 청중이 가져갈 것의 설계
좋은 기술 발표는 "내가 아는 것의 나열"이 아니라 "청중이 가져갈 것의 설계"입니다. 같은 지식을 담아도, 청중의 머리에 남는 발표와 남지 않는 발표가 갈리는 것은 지식의 양이 아니라 구조 때문입니다.
-
Step 333. 공개 발표와 자료 공유 — 커뮤니티에 이름을 새기다
발표는 지식 공유이면서 동시에 커뮤니티에 이름을 새기는 행위입니다. 여기까지 오는 동안 여러분은 배우고(Step 329), 흡수 루틴을 만들고(Step 330), 가르치고(Step 331), 자료를 만들었습니다(Step 332). 오늘은 그 축적을 무대 위에 올립니다.
-
Step 334. 포트폴리오 통합 — 실력의 증명 패키지: 흩어진 증거를 하나의 이야기로
지금까지의 600일은 증거로 가득합니다. 300개가 넘는 완료 과제, 수십 편의 Write-up, CVE 분석 보고서, 오픈소스 저장소, 대회 기록, 자격증, 발표 자료까지. 그런데 이 증거들은 블로그와 GitHub와 CTFtime과 하드디스크에 흩어져 있습니다. 채용…
-
Step 335. 커리어 방향 확정 — 보안의 갈래에서 나의 길을 고른다
"정보보안 전문가"는 하나의 직업이 아닙니다. 모의해킹, 취약점 연구, 버그바운티, 침해사고 대응, 보안 엔지니어링 — 갈래마다 하루의 일과가 다르고, 요구되는 역량이 다르고, 보수와 성장 경로도 다릅니다. 600일을 함께 걸어 온 여러분은 이제 이…
-
Step 336. 국내 대회 우승 도전 — 전력의 총결집: 24시간의 규율이 우승을 만든다
지금까지의 대회에서 여러분의 목표는 "경험과 학습"이었습니다 — 첫 대회는 완주, 본선은 계획 실행, 국제 대회는 세계의 천장 확인. 그런데 오늘부터 목표가 바뀝니다. 우승입니다. 목표가 바뀌면 준비의 성격이 바뀝니다 — "내가 성장하는가&q…
-
Step 337. 승패 분석과 다음 도전 설계 — 승리든 패배든 데이터다
대회가 끝났습니다. 이겼든 졌든, 지금 팀에 남은 것은 데이터입니다. 그런데 이긴 팀과 진 팀의 반응은 보통 정반대의 오류를 범합니다 — 이긴 팀은 이유를 묻지 않고 축하만 하고, 진 팀은 이유 대신 감정을…
-
Step 338. 약점 집중 훈련 — 최상위권 완성: 잘하는 것을 더 하는 함정을 탈피한다
사람은 좋아하는 분야만 훈련하는 경향이 있습니다. web이 강한 사람은 web 기출을 더 풀고, crypto가 약한 사람은 crypto 세션을 다음 주로 미룹니다. 그런데 Step 337의 분석이 보여 준 대로, 대회 순위는 최강 분야가…
-
Step 339. 최고 수준의 승부 — 국내 재도전 또는 국제 파이널: 실력 차이는 작고, 운영이 승부를 가른다
약점 보완 훈련까지 마친 여러분은 이제 목표의 최종 추격선 위에 서 있습니다. 국내 대회 우승 재도전이든, 국제 대회 파이널 진출 도전이든 — 이 무대에서는 참가 팀 간의 실력 차이가 이미 작습니다. 전부…
-
Step 340. 대회 여정 전체 회고록 — 경험을 이야기로 만드는 자산화
CTF #1부터 지금까지의 여정을 펼쳐 보세요. 첫 대회에서 두 문제를 풀고 환호하던 팀이, 국내 본선과 국제 대회를 지나 여기까지 왔습니다. 이 기록은 그냥 두면 흩어진 파일 묶음이지만, 하나의 문서로 엮으면 세 가지가…
-
Step 341. 다음 성장 축 탐색 — 클라우드/모바일/IoT 보안: 지금까지 쌓은 기초 위에 얹을 새 레이어
전통적인 웹·시스템·리버싱을 넘어, 보안에는 새로운 전선들이 열려 있습니다. 클라우드의 권한·설정 오류는 지금 가장 뜨거운 침투 경로이고, 모바일 앱과 IoT 펌웨어는 각각 거대한 공격 표면이며, AI 보안은 막 생긴 판입니다.
-
Step 342. 새 분야 착수 — Level 0의 자세로, 검증된 방법론을 들고
새 분야의 첫걸음은 항상 겸손해야 합니다. 600일을 완주한 지금도 새 분야에서는 초보입니다. 그런데 이번에는 다릅니다 — 여러분은 "초보에서 전문가까지 가는 법"을 몸으로 아는 사람이고, 처음 PowerShell을 열든 날의 자세에 검증된 학습 방법…
-
Step 343. 종합 침투 시나리오 — 전체 역량의 운용: 기술의 나열에서 작전으로
실제 침투 테스트는 "취약점 찾기"가 아니라 "목표 달성 시나리오"입니다. 고객의 발주 문서는 이렇게 쓰입니다 — "외부에서 시작해 내부 문서 서버의 기밀 파일을 탈취하라." 개별 기술의 시험이 아니라, 정찰·웹 공…
-
Step 344. 침투 플레이북 v2.0 — 경험이 매뉴얼이 되는 순환
Step 272에서 여러분은 플레이북 v1.0을 "지금 실력의 사진"이라고 선언했습니다. 그때의 선언에는 약속이 하나 붙어 있었습니다 — 이 문서는 평생 개정된다는 것. 그 후로 OSCP를 준비하고 실기를 치렀고, 버그바운티에서 실서비스를 정찰했고, …
-
Step 345. 커뮤니티 환원 체계 확립 — 받은 만큼 돌려주는 시스템을 만든다
여러분이 여기까지 오는 데 쓰인 자산을 떠올려 보세요. 낯선 에러를 검색하면 나오던 누군가의 블로그 글, 포기 직전에 길을 보여 준 Write-up, pip install 한 줄로 설치되던 오픈소스 도구, 커뮤니티에서 질문에 답해 준…
-
Step 346. CTF 팀 리딩 — 우승 팀의 구심점이 된다
실력자와 리더는 다릅니다. 문제를 가장 빨리 푸는 사람이 반드시 좋은 리더는 아니고, 좋은 리더는 꼭 최고의 풀이자일 필요도 없습니다. 리더의 정의를 다시 쓰면 이렇습니다 — 잘 푸는 사람이 아니라, 팀이 잘 풀게…
-
Step 347. 목표 대회 출전 — 커리큘럼의 결산
처음 PowerShell을 열든 날을 기억하시나요. Get-Location을 치고, 프롬프트가 가리키는 위치를 처음 읽었던 그 순간. 그날부터 347개의 Step을 지나왔습니다 — 터미널에 익숙해지고, 코드를 배우고, 네트워크를 이해하고, 첫 쉘을 따고, 첫 대회에서 …
-
Step 348. 완주 회고록과 다음 여정 — 끝이 곧 출발점
Step 1에서 여러분은 이런 문장을 만났습니다. "지금 당신이 컴퓨터를 다루는 방법은 이렇습니다. 폴더 아이콘을 더블클릭하고, 파일을 드래그하고…" 그리고 파란 창을 열어 Get-Location을 쳤습니다. 프롬프트가 가리키는 위치를 읽는 것이 그날…