작년 여름에 땄던 OSCP

들어가기 앞서

이 블로그 글은 작년 2019년 7월 28일, 내가 OSCP 자격증을 취득한 뒤 썼던 영어 버전의 번역판이다. 우리나라에서도 OSCP 자격증과 PWK 수업을 준비하시는 분들이 있을까 해서 내 리뷰를 한글로도 작성/번역해봤다. 영어가 편하신 분들은 여기로 가시면 된다.  https://blog.sunggwanchoi.com/oscp-review-as-a-normal-student/

OSCP 취득 후 1년이 지나며 다양한 인턴 경험도 해보고, 대회도 나가보고, 현역에서 활동하고 있는 모의침투테스터 및 레드팀 분들과 이야기도 나눠봤다. 따라서 이 글에는 1년 전 영어 버전의 리뷰와는 또 다른 내 견해가 들어가 있다.

마지막으로 내 개인적인 생각을 적은 블로그 글이라는 것을 명심해주시면 감사하겠다. 나 또한 인터넷에 있는 수많은 사람 중 하나일 뿐이니까, 여기에 적혀 있는 내 생각 및 정보들은 한번 필터링 해주는게 좋다.

목차

  1. OSCP란
  2. 목적
  3. 자기소개
  4. "제가 OSCP 를 봐야할까요?"
  5. OSCP 의 가치
  6. 시간 투자
  7. 내 OSCP 관련 스탯 및 정보
  8. 마치며

1. OSCP 란

OSCP 와 PWK 강의

OSCP 자격증은 Offensive Security 사의 Offensive Security Ceritifed Professional 자격증이다. 기본적인 모의침투테스트의 방법 - Information Gathering, Vulnerability Assessment, Exploitation, Post-Exploitation, Report Writing  뿐만 아니라 Active Directory, Exploit Writing, BufferOverflow, Web Exploitation, AV Evasion 까지 포괄하는 100% 실무 위주의 자격증이다. 2006년도 쯤부터 시작된 자격증으로 알고 있는데, 포괄적인 시험 범위, 어려운 난이도, 48시간 논스톱 해킹 + 보고서 작성의 시험, 그리고 100% 실무 자격증이라는 탓에 2000년대 후반에는 OSCP 만 들고 있어도 바로 모의침투테스터로 스카웃을 해갔다는 말이 있었을 정도로 유명한 자격증이였다. 물론 2020년 기준으로 정보보안과 관련된 자료들이 많아지고 OSCP 를 취득한 학생들이 많아졌기 때문에 옛날만큼의 명성은 가지고 있지 않다. 그래도 여전히 학생 신분으로 OSCP 가 적힌 Resume (레지메? 지원서?) 를 들이밀면 인터뷰 보시는 분께서 “오 좀 치네?” 하고 놀라는 정도의 위상을 가지고 있다.

2. 목적

OSCP 를 준비하는 사람이라면 이미 합격한 분들의 합격 수기를 많이 찾아서 읽어본다. 나도 쉬는 시간마다 짬짬히 몇 개 찾아서 읽어봤지만, 대다수의 합격 수기는 시스템 관리자 혹은 개발자로 이미 현역에서 5~10년동안 일했던 경력직 분들, 막 7살 8살때부터 프로그래밍을 시작해서 13살에 FBI/CIA/NSA 를 해킹할 정도로 똑똑한 “해킹 천재”들, 혹은 현재 직업이 없어 하루에 8시간 10시간씩 풀타임으로 공부한 분들이 작성한 후기 밖에 없었다.

OSCP 를 준비하는 동안 나처럼 평범한 대학생이 학교 다니면서 작성한 OSCP 합격 수기는 없나? 하고 궁금했었다. 왜 죄다 경력직, 락스타 (“해킹 천재”들), 시간 많은 분들이 쓴 것 밖에 없지? 라고 생각했었고, 내가 합격하면 꼭 평범한 사람의 입장에서 바라본 OSCP 수기를 써야겠다고 다짐했다.

다른 OSCP 합격 수기처럼 OSCP 자격증이 뭔지, 수업과 랩 환경은 어떤지, 시험은 어떻게 진행했는지, 기술적인 노하우 등과 관련된 정보는 작성하지 않을 것이다. 그런건 이미 다른 합격수기들에 많이 있고, 딱히 OSCP 를 준비하는데 큰 도움이 되지 않기 때문이다. 합격이야 그냥 내가 공부를 많이 하면 합격할 수 있다. 굳이 뭐 다른 사람이 어떻게 시험을 봤는가, 어떤 노하우가 있는가 하는 건 큰 도움이 되지 않는다고 생각한다.

그 대신, 이 글에서는 자잘한 디테일 보단 큰 그림을 그려보고자 한다. OSCP 를 준비하기 위해선 어느정도의 기본 개념을 가지고 있어야 하는지, 내게 필요한 자격증인지, 2020년도 기준으로 OSCP 의 가치는 무엇인지, 어떤 것들을 얻고, 배울 수 있는지 등등 말이다.

3. 자기소개

간단한 자기소개를 하면, 나는 2018년도 1월에 현재 대학에 편입을 해 정보보안을 공부하기 시작한 대학생이다. 그 전까지는 정보보안은 커녕 프로그래밍, 코딩, IT 관련된 지식이 없었다. 고등학생때부터 정보보안을 공부하고 싶었지만, 평범한 한국 학생처럼 내가 원하는 공부보다는 대학교의 서열을 더 중시하며 원하지 않았던 학교에 원하지 않았던 학과로 가 고통을 받고 있었다.  군대에서 시간을 보내며 마음을 고쳐먹고 하고 싶었던 공부를 하자고 다짐한 뒤 현재 학교로 편입을 했고, 그 뒤로는 프로그래밍, 네트워킹, 운영체제, 정보보안 등을 원없이 공부하고 있다. 2018년 편입 이후 기초 공부와 보안 공부를 한 지 1년 반 뒤, 2019년 5월에 드디어 OSCP 에 도전하기로 마음먹었다.

자기소개 - IT 배경지식 및 경험

IT 자격증 관련 합격수기에서 작성자의 IT 배경지식 및 경험은 중요하다. 20년 실무자로 일한 분과 대학교 2학년이 자격증을 준비하며 느낀점은 다를테니까 말이다. 2019년 여름때의 내 배경지식을 현재 이 글을 읽고 있는 독자분들의 경험에 비교를 해보면 도움이 될 것이다.

  • 기본적인 프로그래밍 수업 2 개 - 파이썬 + C
  • 네트워킹 수업 2개 - OSI Layer 2,3,4
  • 정보보안 101 수업 1개 - (우리 학교 수업 통틀어 제일 별로인 수업이었다.)
  • 활발한 학교 동아리 활동 - Attack/Defense 대회 참가, Offensive/Defensive 툴 및 스크립트 작성, CTF 참가, CTF 문제 작성, 소동아리 참가 등

이 정도의 배경지식을 가지고도 PWK 수업 내용을 이해하는데 문제가 없었다. 당연히 이해하는데 시간이 오래걸렸고, 구글링을 토 나올때까지 하고, 삽질을 많이 했다. 하지만 몇 몇 사람들이 “OSCP 준비하려면 Help Desk 에서 3년은 일해라” 라고 말한 것 치고는 수업 내용 자체는 그렇게 어렵지 않았다.  OSCP 시험에서 나오는 PWK 수업 내용 자체는 IT 학부생 1학년 ~ 2학년 기준으로 다 이해가 가능한 것들이다. 크게 겁먹을 필요가 없다.

OSCP 준비하는 학생들 중에서는 리눅스/윈도우 커널을 공부하거나 네트워크 프로토콜을 RFC 단계까지 내려가서 공부하는 친구들이 있다. 당연히 이런 로우 레벨 기초를 닦는 것은 매우 중요하다. 다만 OSCP 자격증을 준비하는 데 있어 이런 준비는 큰 쓸모가 없다. 항상 시간은 제한되어 있다는 것을 기억하고, OSCP 를 취득하고 싶다면 OSCP에 맞는 준비를 한 뒤 집중해서 빨리 자격증을 취득하는 것을 추천한다. 어차피 필요한 지식은 다 수업에서 배우고, 열심히 구글링 삽질 하다 보면 배우게 된다. 로우레벨 기초 지식은 OSCP 를 취득한 뒤에 다시 집중해서 배우면 되는 것이다.

4. 제가 OSCP 를 봐야할까요? OSCP 볼 준비가 됐을까요?

OSCP 를 준비하면 질문이 참 많아진다

이 질문들은 비단 OSCP 뿐만 아니라 다른 자격증 관련된 커뮤니티를 보면 항상 볼 수 있는 질문들이다. 나도 공부하면서 항상 궁금했던 것들이기에 여기서 답해본다.

제가 OSCP 를 봐야할까요?

이 섹션은 우리나라 독자분들에 맞게 좀 편집했다. 미국 국적을 가지고 있거나, 영주권을 가지고 있거나, 미국에서 H1B 로 일할 분들에게는 OSCP 는 대단히 매력적인 자격증이다. 거의 무조건 추천이다. 하지만 우리나라의 보안 시장은 아직 OSCP 가 어떤 자격증인지도 모르고, 보안 시장 안에서의 Offensive Security (공격적 보안 - 모의침투테스트, 레드팀, 취약점 분석, 익스플로잇 개발)의 입지가 매우 작기 때문에 쉽사리 추천하기가 어렵다. 특히 수업+자격증 자체가 약 100만원 정도에 평범한 학생 기준으로 적어도 40일 ~ 60일을 빡세게 공부해야 하기 때문에, 취준을 하는데 있어 큰 도움이 안된다면 OSCP를 공부하는 것도 부담스럽다. 나 자신도 우리나라 보안시장의 트렌드를 아직 잘 모르기 때문에 이것과 관련해 정확한 답을 내리기가 어렵다.

우리나라의 업계 특성을 잠시 제쳐두고 답을 하면 - 오펜시브 시큐리티 에 관심이 있고, 관련 동아리 활동 및 인턴을 했거나 할 예정이며, 보안 업계에 들어가 일을 할 계획이 있다면 OSCP 를 추천드린다. 해킹은 자격증이나 강의로 배울 수 있는 것이 아니지만, 완전히 초보라서 어디서 시작해야할지 모르겠다면 OSCP 를 통해 기초를 다지는 것이 매우 유용할 것이다.

또한, 현업에 종사하고 계시는 분들에게 조언을 구하는 것을 추천한다. 자격증에 관련된 생각, OSCP 에 관련된 생각, 오펜시브 시큐리티는 어떤 일을 하는지 등, 오로지 업계에서 일하고 있는 사람만 대답할 수 있는 중요한 질문들은 업계 종사자분께 여쭤보는게 좋다. 마지막으로 내가 정말로 보안 업계에서 일하고 싶은 것인지, 만약 또 보안 업계에서 일하고 싶다면 정말 정말로 오펜시브 시큐리티쪽에서 일하고 싶은 것인지 자기 자신에게 물어보면 답을 알게 될 것이다.

OSCP 를 볼 준비가 됐을까요?

앞 섹션에서도 어느정도 설명했지만, OSCP 를 보는데 있어 필요한 배경지식은 그렇게 많지 않다. 내가 학부생 1~2학년 수준의 IT 관련 지식을 가지고 있거나, IT 기초 자격증 (CCNA,CCNP, Sec+) 등을 가지고 있다면, PWK 수업을 다 알아들을 수 있다. 굳이 나 뿐만이 아니라, 주변에 대학생인데 OSCP 자격증을 딴 친구들도 거의 다 학부생 2~3학년 사이에 땄다. 그래도 사람마다 편차가 있을 수 있으니 항상 OSCP/PWK의 강의 계획서를 꼭 보고 신청하자.

5. OSCP 의 가치 - 그래도 뭘 얻을 수 있을까?

OSCP의 진정한 가치는?

OSCP를 왜 따고 싶은지, 그리고 볼 준비가 되어있는지 알아보았다면, 이제 OSCP 로 뭘 얻을 수 있는지 알아보자.

커리어

앞서 말했듯이, 우리나라분들에게는 함부로 말씀드리기가 어렵다. 우리나라 보안시장에서 OSCP 가 가진 가치를 내가 모르기 때문이다. (알고 계신 분이나 현업에서 활동하고 있는 분이 있으시다면, 링크드인으로 쪽지 주시면 감사하겠습니다) 그래서 이번 섹션은 미국내 커리어 가치를 알아보고, 한국에서의 가치에 대해서 예측(?) 을 해본다.

미국 - 앞서 말했듯이, OSCP 만 들고 있다고 해서 모의침투테스터로 뽑아가던 시절은 지났다. 학생의 입장에서 OSCP 를 들고 있다고 회사들이 모셔가려고는 하지 않는다. 하지만, 몇 가지 장점은 여전히 있다.

첫번째, 미국내 보안 업계에서 소위 “먹어주는” 자격증이다. IT/보안과 관련된 회사의, IT/보안에 관련된 직종으로 지원을 해보면 왠만한 리크루터, HR, 팀 리드, 및 인터뷰어들이 다 OSCP 에 대해서 알고 있다. Resume (레지메? 지원서?) 에 OSCP 합격번호가 적혀있으면 일단 관심을 불러 일으킬 수 있고, 이는 바로 서류통과로 이어진다. 즉, 면접을 볼 확률이 높아진다.

두번째로 나의 열정을 보여줄 수 있다. 말이나 자소서등으로 보안에 관심있다라고 말만 하는게 아니라, 행동으로 보여줄 수 있는것이다. 말만 하는게 아니라, 내가 직접 X 일 동안 하루에 Y 시간씩 시간을 투자해서 이 자격증을 따냈다는 것을 보여주면, 워낙 유명한 자격증이기 때문에 어느정도 인정을 받는다.

세번째로, 어느정도 리크루팅 및 헤드헌팅을 기대할 수 있다. 나 같은 경우는 외국인의 신분인데도 여러회사들로부터 인터뷰 요청을 많이 받았다. 미국 보안 시장에서 외국인 신분으로 풀타임은 커녕 인턴도 하기 매우 어려운데, 인터뷰 요청을 받았다는 것은 고무적인 일이다.

한국 - 우리나라의 경우 공격적 보안 시장이 작거나 거의 없고, 기업측에서 OSCP 자격증에 대해 알고 있는 사람이 별로 없기 때문에 커리어적인 이점을 기대하기 힘들다. 자소서에 OSCP 관련된 정보, 경험, 그리고 배운 점들에 대해 적고 그에 대한 것을 면접에서 잘 풀어 얘기한다면 충분히 도움이 될 것 같다. 하지만 이것도 내가 직접 해본게 아니라 정확히 말씀드릴 수가 없다. 이에 대해서는 나도 다른 분들에게 여쭤보고 다시 이 부분을 보완하겠다.

경험과 지식

커리어적인 면에서 몇가지 이점이 있긴 하지만, 사실 OSCP 의 가장 중요한 가치는 바로 OSCP 를 준비하면서 얻는 경험과 지식이다. 그리고 이건 비단 기술적인 지식만 얘기하는 게 아니다. 뭐 익스플로잇 읽는 것, 네트워크 서비스 찾아보는 것, 모의침투테스트 세부 단계들 배우는 것, 이런 기술적인 지식들도 중요하고, 배울 수 있다. 하지만 OSCP 의 가장 중요한 가치는 바로 그 과정속에서 배우는 마음가짐과 방법론인 것 같다.

공부하는데 있어서 훨씬 더 능동적인 마음가짐을 갖게 된다. 모르는것이 생기면 리서치를 자연스럽게 하게 되고, 깊게 파고들어 연구하는 마음가짐을 갖게 된다. 특정 오픈소스 웹 CMS를 본적이 없다? 바로 VM 돌리고, CMS 다운 받아서 설치한 뒤, 소스코드를 훑어보고, 문서들을 읽어본다. 뭔가 하다가 막히면 구글링을 통해 찾고, 배운 것을 적용해보고, 적용이 성공적이라면 바로 문서화 시킨다. 어떤 기능들이 있는지 확인하고, 이런 기능을 저렇게 사용하면 어떨까? 이 기능이 특정한 입력값을 받는데, 그 입력값들을 바꾸면 어떻게 될까? 하고 궁금하게 된다.

그 궁금증은 곧 비판적 사고 방식으로 이어진다. 어떤 상태에서 어떤 기능들이 작동하는가? 왜 이렇게 작동하는가? 이 상태를 내가 바꿀 수 있나? 어플리케이션이 예상치 못한 결과를 도출하도록  내가 입력값을 바꿀 수 있을까? 등등. 굳이 막 “해킹” 이라던지 “쉘 따기” 를 위해 공부하는 것이 아니라, 특정 타겟이 뭔지, 왜 이렇게 작동하는지, 작동 방식을 공격자의 관점에서 내가 가진 지식과 방법으로 바꿀 수 있는지, 등을 능동적으로 연구해보게 된다.

그런 마음가짐을 갖게 된 다음엔 나만의 방법론을 만들게 된다. 해킹하는 법, 리서치를 하는 법, 문서화를 하는 법 등, 체계적으로 공격적 보안에 맞는 나만의 방법론을 만들고, 실험해보고 (OSCP 랩을 통해), 다시 보완하고, 를 계속해서 반복적으로 작업하게 된다.

이걸 읽으며 특정 학생들은 “아니 이런 마음가짐이 없었다고? 거짓말이지?” 라고 생각하실지도 모른다. 나의 경우 보안은 커녕 IT에 관련된 경험조차 전무했던 상황이였기 때문에 이런 마음가짐과 이런 방법론을 혼자서 찾지 못했고, 연습조차 하지 못하는 상황이였다. 모두가 다 락스타 해킹 천재들만 있는 것이 아니기에, 나의 경우에는 OSCP 를 통해 이런 기술적, 비-기술적인 경험을 했고, 그 과정에서 많은 것을 배웠다.

6. OSCP 시간 투자

사람마다 다르다. 어떤 사람은 하루 8시간씩 90일을 하는 사람도 있을 것이고, 어떤 사람은 하루에 2시간씩 30일만에 끝내는 사람도 있을 것이다. 모든 사람들이 가진 배경지식, 열정, 집중력은 서로 너무 다르다. 그 때문에 내 경험을 바탕으로 최대한 포괄적인 내용을 썼다.

일단 OSCP 자체는 시간 투자가 어느정도 들어가는 자격증이다. 이 때문에 학생이라면 여름/겨울 방학을 노리는 것이 좋다. 당연히 방학때는 인턴쉽을 병행하기 때문에 시간이 엄청 널럴한 것도 아니지만, 대부분 퇴근하고 집에 오면 오후 7시 ~ 밤 12시정도 까지는 시간이 비기 마련이다. 물론 그렇다고 해서 학기 도중에 OSCP 를 보는게 무리라는 것은 아니다. 현재 직장을 다니고 계신 분들도 마찬가지고. 하루에 꾸준하게 3~4시간씩 OSCP 에 투자를 할 수 있다면 된다. 중요한 것은 매일매일 꾸준히 하는 것이다.

나의 경우엔 여름 방학동안 풀타임 인턴 및 계절학기를 진행하면서 OSCP 를 봤다. 월~금은 하루에 3~4시간씩, 주말에는 하루에 8~10시간씩 OSCP 에 투자를 했던 것 같다. 그 중 9일 정도는 인턴쉽 기간에 프로젝트가 끝나 시간이 비어 직장에서 OSCP를 공부했다. 총 기간은 42일 정도가 걸렸다.

7. 내 OSCP 관련 스탯

강의 및 랩 (Lab)

총 기간: 42일
강의 듣는 기간: 8일
랩 (Lab) 에서 공부한 기간: 30일
쉬는 기간: 4일
랩 머신 - 32 개 (32 x 2번 반복) + HacktheBox 머신 16개

시험 스탯

시험 횟수: 1
해킹 시간: 6시간 30분 (24시간이 주어진다)
리포트 작성 시간: 4시간 (24시간이 주어진다)
총 시험 시간: 10시간 46분 (총 48시간이 주어진다)
Metasploit 사용횟수 : 0 (손으로 익스플로잇을 제작하거나 바꾸는게 더 재밌어서 메타스플로잇을 사용하지 않았다)

8. 마치며

OSCP 를 봐야지 봐야지 하면서 6개월이라는 시간을 준비만 하며 보냈던 기억이 있다. 그 당시 나는 OSCP 를 보고 싶었지만 실패할까봐, 너무 어려울까봐 무서워서 시작을 못했었다. 외국 커뮤니티에 올라온 시험 후기들이 어찌나 무섭던지. 하지만 이렇게 우물쭈물 하는 날 보고 이미 OSCP 를 들고 있었던 친구가 용기를 북돋아줬었다. 별로 안어렵다고, 충분히 할 수 있다고 일단 질러보라고 하는 그 친구 덕분에 OSCP 를 시작했고, 많은 노력을 통해 딸 수 있었다.

난 그 동기가 너무 고맙다. 지금도 친하게 지내며 인턴쉽도 IBM X-Force-Red 에서 같이 하고, 동아리 활동도 같이 활발하게 하는 친구다. 그 친구 덕분에 내가 용기를 냈듯, 나도 고민하고 있는 다른 학생 분들에게 용기를 주고 싶었다. OSCP 는 아주 어렵고 토 나올때까지 삽질도 많이 하겠지만, 충분히 달성 가능한 도전이나. 나처럼 우물쭈물 하며 시간을 보내지 말고, OSCP 를 봐야겠다고 생각했다면, 오늘 당장 신청하고 노력하자.

Happy Hacking!

도움 준 사람

https://twitter.com/mohadsec  - My colleague Mohad, who already had OSCP and motivated me to "just do it!"

(All vector icons are from https://www.flaticon.com/, using the premium Flaticon license)