포스트

BSCP (Burp Suite Certified Practitioner) 자격증 시험 후기

BSCP 시험 도전기

BSCP (Burp Suite Certified Practitioner) 자격증 시험 후기

BSCP (Burp Suite Certified Practitioner) 자격증 시험 후기

인사말

처음 웹 해킹을 접한건 25년도 10월이었다. 이전에 학교 CTF 동아리 활동과 HTB 쉬움 난이도 머신들을 통해 여러 분야의 해킹을 가볍게 경험해본 적은 있었지만, 하나를 깊게 파본 적은 없었기 때문에 사실상 0부터 시작했다고 봐도 무방할 것 같다.

BSCP 자격증에 대해서 간단하게 소개하자면,

BSCP (Burp Suite Certified Practitioner) 시험은 Burp Suite를 만든 PortSwigger 에서 주관하는 웹 해킹 자격증이다. 총 시험 시간은 4시간이며, 두 개의 웹 애플리케이션을 대상으로 다음과 같은 3단계를 수행해야 한다.

  • Stage 1: Initial Access (초기 권한 획득)
  • Stage 2: Privilege Escalation (권한 상승)
  • Stage 3: Read Content (Flag 획득)

두 개의 Application을 모두 성공적으로 공략해야 시험 통과가 가능하다.

버프를 만든 회사에서 주관하는 시험인 만큼 무조건 Burp Suite를 사용해서 문제를 풀어야 하며, 무료 버전인 Community Edition으로는 응시가 불가능하다. 따라서 Burp Suite Pro 버전을 구매해야만 시험을 진행할 수 있다.

설명

시험 응시료 자체는 USD $99로 상대적으로 저렴한 편이지만, Burp Suite Pro 연간 라이선스 비용이 USD $499인 점을 고려하면 실제 최소 비용은 USD $598 정도라고 볼 수 있다.

다만 Burp Suite Pro 라이선스가 유지되는 동안에는 USD $99만으로 재시험 응시가 가능하기 때문에, 장기적으로 보면 절대 비싼 자격증은 아니라고 생각한다.

이번 글에서는 내가 BSCP를 준비하게 된 이유부터 공부했던 방법, 준비 과정에서 느꼈던 점, 그리고 개인적인 팁들까지 전부 정리해보려고 한다.


BSCP를 준비한 이유

사실 BSCP라는 자격증은 한국에서는 아직 굉장히 생소한 자격증이다. 어디 가서 “저 BSCP 취득했습니다.” 라고 이야기해도 대부분은 “그게 뭔데요?” 라는 반응일 가능성이 높다.

실제로 공부하면서 현업에 계신 분께 “BSCP 준비 중입니다.” 라고 말씀드린 적이 있었는데,
그분께서 “BSCP요? 혹시 OSCP 말씀하시는 건가요?” 라고 되물어보셨던 적도 있다.
그만큼 아직까지는 국내 인지도가 높지 않은 자격증이다.

그럼에도 나는 왜 BSCP 시험을 준비했을까?

처음에는 외국에서 펜테스터로 일하고 계신 학교 선배의 권유로 시작하게 되었다. 당시에는 단순히 “자격증 하나 취득해보자” 정도의 가벼운 목표였다.

하지만 단기간에 끝낼 수 있을 거라 생각했던 계획은 공부를 시작하면서 완전히 무너졌다.

생각보다 양이 많았고, Lab을 풀다 보면 막히는 구간들이 꽤 자주 나왔다. 답안과 영상을 보면서도 이해가 잘 되지 않는 부분들이 있었는데, 그 과정에서 내가 아직 많이 부족하다는걸 스스로 체감하게 되었다.

그래서 어느 순간부터는 “빨리 자격증을 따야겠다” 보다는
“시간이 걸리더라도 기초부터 제대로 쌓아보자” 라는 방향으로 공부 방식 자체가 바뀌었다.

자격증이라는건 결국 보여지기 위해 취득하는게 현실이다.
취업이 어려운 시기에는 포트폴리오를 보완하는 수단이 되기도 하고,
CISSP처럼 커리어적으로 자신의 가치를 증명하는 역할을 하기도 한다.

BSCP는 한국 시장 기준으로는 아직 OSCP처럼 널리 알려진 자격증은 아니다.
그래서 당장 이 자격증 하나만으로 포트폴리오가 크게 달라진다고 보기는 어려울 수도 있다.

그런데 한 가지 확실한건, 이번 시험을 준비하면서 보냈던 약 6개월이라는 시간은
누군가의 도움 없이 스스로 성장하는 방법을 배울 수 있었던 굉장히 값진 경험이었다는 점이다.

내가 모르는 걸 스스로 찾아보고, 궁금한건 직접 파고들어보고,
시간적인 여유를 두고 이해하려고 노력하다 보니 단순히 자격증 하나를 얻는 것보다 훨씬 더 많은 걸 얻어갔다고 생각한다.


준비 방법과 과정

정석적인 방법은 Web Security Academy 에서 제공하는 모든 자료를 학습하고, Apprentice 및 Practitioner 랩들을 전부 풀어보는 것이다.

BSCP 공식 가이드에서도 특히 아래 토픽들은 더 많은 시간을 투자해서 공부하는걸 권장하고 있다.

  • SQL Injection
  • XSS
  • HTTP Request Smuggling
  • SSRF
  • CSRF
  • OAuth
  • Brute-Forcing
설명

Web Security Academy 자료 자체가 워낙 방대하고 잘 정리되어 있어서 기본적인 웹 취약점 학습에는 정말 좋은 자료라고 생각한다.

다만 공부를 하다 보면 생각보다 배경지식을 요구하는 부분들이 꽤 많다.

예를 들어 CDN, Reverse Proxy, Backend Server 구조, 각종 서비스나 프레임워크 관련 Terminology 같은 경우에는 설명이 아주 친절하게 제공되는 편은 아니다.

결국 모르는 부분은 직접 검색하면서 채워넣어야 한다.

개인적으로는 이 과정 자체가 오히려 더 도움이 많이 됐던 것 같다. 단순히 “이 Payload 넣으면 된다” 수준이 아니라, 왜 이런 현상이 발생하는지 흐름을 이해하려고 노력하게 되니까 기억에도 훨씬 오래 남았다.

비전공자 기준으로는 최소한 기본적인 네트워크 통신 구조, HTML / JavaScript, 간단한 Python, HTTP 요청과 응답 흐름 정도는 알고 시작하면 훨씬 수월할 것 같다.

나의 경우, 준비 기간은 약 6개월 정도였다.

퇴근 후에는 하루 2~3시간 정도 공부했고, 주말에는 대부분 시간을 몰아서 공부했다.
나는 취업 준비 중이었지만 생활비 문제 때문에 관련 없는 일을 병행해야 했어서 공부 시간은 넉넉하지 않았다.
대신 퇴근 후와 주말 시간을 최대한 활용하면서 꾸준히 공부하려고 했다.

만약 학부생이거나 공부에만 집중 가능한 환경이라면 더 짧은 기간 내에도 충분히 취득 가능할 것 같다.

그리고 개인적으로 정말 추천하는건 노트 정리다.

나는 기억력이 좋은 편이 아니라서 Lab을 풀 때마다 풀이 과정과 핵심 포인트를 전부 기록해뒀다.

설명

당장 이해했다고 생각해도 양이 워낙 많다 보니 나중 가면 분명 까먹는다. 그래서 언제든 다시 참고할 수 있는 나만의 문서를 만들어두는걸 강하게 추천한다.

모든 랩들은 최소 두 번 이상 다시 풀어봤고, 연습 시험 두 개 + Mystery Box(랜덤 테스트)도 50회 이상 진행한 뒤 시험에 응시했다.

결과는 불합격.

첫 번째 시험에서는 App1에서 아예 취약점이 무엇인지조차 파악하지 못했던 문제도 있었고,
App2 문제에서는 취약점이 뭔지는 찾았는데 적절한 Payload를 구현하지 못해서 실패했다.

시험은 물론 랜덤으로 배정되기 때문에 다시 응시 하더라도 같은 문제가 다시 나올 가능성은 희박한 것 같다.

그리고 이 시험의 가장 어려운 점은 단순히 취약점 하나를 이해하는것 정도로는 풀 수 없다는 점이다.

Web Security Academy 랩들은 대부분 단일 취약점 위주로 구성되어 있지만, 실제 시험에서는 여러 취약점들을 연결하고 응용해야만 다음 단계로 넘어갈 수 있게 설계되어 있다.

그래서 Payload 암기보다도 체이닝이나 흐름을 이해하는 능력이 중요하다고 생각한다.

포트스위거 웹사이트에 시험에 대한 힌트와 가이드가 있으니 시험응시하기 전에 한번씩 꼭 읽어보는걸 추천한다: PortSwigger hint and guidence


개인적인 팁

1. Burp Suite Scanner의 활용

Burp Suite의 targeted scanner기능과 active scan기능을 적극적으로 활용하는게 좋다.
매뉴얼로 전부 테스팅 해보기에는 양이 너무 많아서 시간 내에 해결하지 못할 가능성이 크다.
최소한 내가 의심이 가는 부분이나 요청사항에 대해 스캐너를 돌려보고 빠르게 취약점을 찾아내서 payload 작성으로 넘어가는게 시간내에 문제를 푸는데에 정말 큰 도움을 준다.

물론 스캐너로 잡히지 않는 취약점도 많이 있으니 절대 의존해서는 안된다.

2. Extension활용

PortSwigger Web Security Academy를 공부하다보면 자연스럽게 여러가지 Extension을 사용하게 되는데 그중에서도 유용한 Extension 몇 가지를 뽑자면,

  • Hackvertor
  • Param Miner
  • HTTP Request Smuggler
  • Java Deserialization Scanner
  • JWT Editor

정도가 있겠다. 보조수단으로서 활용하는걸 추천하지만 최소한 어떻게 사용하는지 정도는 시험 전에 잘 익혀두자.

3. 툴의 사용

시험을 보기전 나 또한 다른 블로그의 후기를 찾아봤었다.
많은 블로그에서 시험도중 SQL injection 취약점을 발견하게 되면 sqlmap을 사용하는게 시간을 아낄수 있는 좋은 방법이라고 소개를 하는것 같았다.

나는 운이좋게 매뉴얼 테스팅 도중 노트에 정리해뒀던 필터링 우회방법중 하나가 동작하는걸 확인해서 비교적 빠르게 탈취가 가능했었지만 시험 환경에서는 제한된 시간 안에 빠르게 결과를 도출해야 하기 때문에, 상황에 따라 sqlmap 같은 자동화 도구를 적절하게 활용하는 것도 방법일 것 같다. 따라서 여유가된다면 Sqlmap 사용법도 함께 숙지하면 좋을 것 같다.

java deserialization의 경우 ysoserial, php의 경우 phpggc를 사용하자.

4. 함정 피하기

가장 중요한 부분인것 같은데 나는 함정에 빠져서 허우적대다가 첫 번째 시험을 통과 하지 못했었다.
시험 도중에 분명히 A 라는 취약점인것 같아서 이걸 베이스로 다양한 방법으로 우회를 시도하다가
한 파트에서만 두시간동안 풀지 못했던 문제가 있었다.

만약 시험 도중에 한 가지 취약점을 의심하고 여러가지 방법으로 시도하다가 한시간째 가로막힌다면
그건 다른 취약점이 해답일 가능성이 높을 것이다.

확신이 들지 않으면 여러가지 가능성을 두고 적절하게 테스트 해보고 응답을 분석해보는걸 추천한다.


BSCP를 통해 배운점

쿵푸팬더 영화를 보면 주인공이 악당과의 사투 끝에 “용의 두루마리”를 얻는 장면이 나온다.

모두가 엄청난 비밀 무공이 적혀있을 거라고 기대했지만,
막상 열어보니 그냥 자기 얼굴만 비치는 빈 양피지였다.

나한테 있어서 BSCP도 약간 그런 느낌이었다.

정작 중요한건 자격증 자체가 아니라,
그 자격증을 얻기 위해 공부하고 실패하고 다시 시도했던 과정이었다고 생각한다.

결국 나를 성장시킨건 BSCP라는 종이 한 장이 아니라,
그 과정에서 했던 고민과 반복적인 실습, 그리고 시행착오였다고 생각한다.

특히 개인적으로는 시험을 보고 떨어졌을 때가 가장 많이 성장했던 시기였다.

왜 실패했는지 분석하고,
내가 어떤 부분에서 막혔는지 다시 연구하고,
관련된 취약점들을 더 깊게 찾아보는 과정에서 정말 많은 걸 배울 수 있었다.

정확히 어떤 취약점이 나왔는지는 시험 정책상 공유할 수 없지만,
시험 이후 관련 개념들을 다시 분석해보는 과정은 단순히 랩을 푸는 것과는 비교가 안될 정도로 큰 공부가 되었다.


1. 지식의 변화

XSS, SQL Injection, CSRF, SSRF, HTTP Request Smuggling 같은 다양한 클래식 공격 기법들을 직접 실습하면서 배울 수 있었다.

단순히 개념만 읽는 수준이 아니라, 직접 요청을 변조하고 응답을 분석하면서 왜 이런 취약점이 발생하는지를 체감할 수 있었던게 가장 큰 차이였다.


2. 취약점 패턴 분석

시험 시간이 4시간이라는 점을 고려하면 사실 시간적인 여유는 거의 없다.

그 짧은 시간 안에 취약점을 빠르게 파악하고 여러 시도를 해봐야 하기 때문에,
자연스럽게 어디가 수상한지를 보는 시야가 조금씩 생기기 시작했다.

예를 들어:

  • 권한 상승 상황에서 어떤 취약점을 우선 의심해볼 수 있는지
  • 변조된 요청에 대한 응답 차이에서 어떤 힌트를 얻을 수 있는지
  • CSRF Token, Host Header, Request Smuggling 같은 요소들이 어떤 흐름에 영향을 주는지

이런 부분들을 반복적으로 경험하면서 접근 방식 자체가 조금씩 바뀌었다고 느꼈다.


3. 로직 테스팅의 중요성

개인적으로 가장 많이 배웠던 부분은 로직 테스트였다.

인증 흐름 취약점, 비즈니스 로직 악용, 미흡한 권한 분리 같은 문제들은
단순히 WAF를 잘 세우거나 입력값 검증을 한다고 해서 막을 수 있는 영역이 아니다.

실제로 SQL Injection이나 XSS 같은 전통적인 취약점들은 점점 방어가 강해지고 있지만, 반대로 설계 단계에서 놓친 로직 문제들은 여전히 굉장히 강력한 공격 포인트가 될 수 있다는걸 많이 느꼈다.

OWASP Top 10에 있는 Insecure Design이 왜 중요한지도 이 과정에서 더 체감하게 되었다.

예를 들어 비밀번호 변경 기능이 있다면:

  • username 값을 바꿔볼 수 있는지
  • 다른 사용자의 요청을 재사용할 수 있는지
  • 토큰 검증 흐름에 허점은 없는지
  • 권한 검증이 실제로 제대로 이루어지는지

이런 식으로 기능 자체를 어떻게 악용할 수 있을까? 라는 관점으로 접근하는 연습을 계속 하게 된다.

그리고 마지막으로

4. Burp Suite의 활용

BSCP는 Burp Suite를 활용하는 시험인 만큼, 공부 과정 전체에서 Burp Suite의 기능들을 자연스럽게 많이 사용하게 된다.

  • Repeater
  • Interceptor
  • Intruder
  • Collaborator
  • 각종 Extension 활용

이런 기능들을 반복적으로 사용하면서 단순한 이론이 아니라 실제 실무에서도 활용 가능한 툴 활용 능력을 키울 수 있었던 점이 개인적으로는 가장 도움이 많이 됐다.

취업 준비생인 나한테는 단순히 자격증 하나 취득했다 보다도, 이 과정을 통해 실제 웹 애플리케이션을 어떻게 분석하고 접근해야 하는지에 대한 감각을 익힌게 훨씬 더 큰 의미로 남았던 것 같다.

이 자리를 빌려 좋은 교육 콘텐츠를 제공해준 PortSwigger에 감사하다는 말을 전하고 싶다.


앞으로의 목표

원래는 BSCP를 취득한 이후에 바로 OSCP에 도전하려고 했었다. 하지만 웹 해킹공부를 해보고나니, 웹 하나만 제대로 파기에도 꽤나 많은 경험이 필요할 것이라고 생각이들어서 바로 인프라/네트워크 해킹을 공부하기보다는 올해에는 Burp Sutie Professional 라이센스도 남아있겠다, 버그바운티를 하려고 한다. 내가 지금까지 배운 내용들을 실제 서비스에서 적용해볼 수 있다는 점이 굉장히 기대된다.

버그바운티에서 찾은 내용들을 공개적으로 블로그에 올릴 순 없겠지만, HTB도 꾸준히 병행 하면서 Writeup 작성도 시작해볼 예정이다.

아직 많이 부족하지만, 계속 부딪히고 배우다 보면 언젠가는 좋은 결과가 있지 않을까 생각한다.

설명
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.