합격후기
지난 6월에 봤던 SW 보안약점 진단원 1차 이수 시험을 합격함으로써, 시험을 준비하는 수험생 분들이 참고할 수 있도록 공부 기간, 공부 방법, 시험 준비 자료를 공유하고자 한다.
공부 기간
4주 소요
SW 보안약점 진단원 시험을 준비하기 시작한 것은 6월 초로, 시험을 보기까지 약 4주가 걸렸으며, 평일에는 하루에 2~3시간 정도 공부하고, 주말에는 가능한 한 최대한 많은 시간을 투자했다.
해당 시험은 특이하게도 SW보안약점 진단원 양성과정 교육을 수강 후 차주에 바로 1차 시험을 치루게된다.(최대 3번까지 시험을 치룰 수 있다.) 때문에, 교육을 수강하고 공부를 하기에는 시간이 촉박하므로, 미리 준비를 해야한다.
공부 방법
[공부 순서]
이 시험에 대한 다른 사람들이 작성한 후기들을 보면 대부분 공부 방법이 평이한데 설계 단계에서의 고려 사항, 구현 단계에서 발생할 수 있는 취약점에 대한 개요, 대응 방안을 구별하여 엑셀 표로 정리하는 방법이다.
필자 또한, "SW 보안약점 진단 가이드"를 기준으로 요약본을 만들어서 공부를 하였고, 구현 단계의 보안 약점 소스코드는 Python으로 게임을 만들어 문제 풀이 방식으로 학습을 진행했다.
시험의 경우 이론 시험과 실습 시험이 나눠지는데 이론 시험은 대부분 취약점에 대한 설명과 SW 보안약점 진단 가이드 부록에 수록된 문제를 다루고, 실습 시험은 보안 약점에 대한 소스코드 문제가 주를 이룬다.
다만, 실습 시험은 단순히 소스코드에 대한 취약점 정/오탐만을 다루지 않고 문제의 소스코드가 취약하다면 왜 취약한지와 대응방안을 함께 물어본다.
때문에, 무작정 공부하는 것 보다는 체계적인 학습 순서를 정해놓는게 좋다. 필자의 경우 먼저 설계 단계 고려 사항과 구현 단계에서 발생할 수 있는 보안 약점에 대한 개요 및 대응 방안에 대해 숙지 후 소스코드 정/오탐 구별에 대한 학습을 진행했다. 그리고 이 방법이 가장 효율적으로 단 기간에 학습할 수 있는 방법이라고 생각한다.
추가로, 이번에 시험을 봤을 때, 실습 시험에 Python 소스코드 문제가 출제됐다. SW 보안약점 진단 가이드가 올해 말에 개편(Python, JavaScript 소스코드 추가) 될 예정인데 아무래도 이러한 영향을 받은 것 같다. 수험생분들은 시험을 보러 가시기 전에 Python 시큐어 코딩 가이드와, JavaScript 시큐어 코딩 가이드를 한 번씩은 보고 가는 것을 권장한다.
[요약본]
앞서 요약본을 만들 때, 설계 단계에서의 고려 사항, 구현 단계에서 발생할 수 있는 취약점에 대한 개요, 대응 방안을 구별하여 엑셀 표로 정리해 자신만의 요약본을 만드는 것을 추천했다. 다만, 이 방법이 좋은 방안이긴 하나 요약본을 만드는데 생각보다 많은 시간이 소요된다.
따라서, 타 카페 및 블로그에 사람들이 공유한 시험 자료를 참고하거나 아래의 요약본을 구매하여 공부하는 것을 추천한다. 실제로 필자도 아래에서 요약본을 구매하였으며, 판매자분께서 1회 모의고사 시험도 직접 만들어 제공하고 있기 때문에 시험이 어떻게 나오는지도 감을 잡을 수 있다.
[문제 풀이 게임]
"SW 보안약점 진단원 이수시험 대비 문제 풀이 게임"은 총 6개 학습용 문제 풀이 게임을 제공한다.
이론 시험을 대비한 단답형 문제와 설계 단계의 보안 약점 매핑, 설계 단계 대분류, 구현 단계 대분류에 대한 주관식 문제가 준비되어 있으며, 보안 약점 소스코드 정/오탐 문제도 포함되어 있다.
또한, 앞서 말했던 설계 단계에서의 고려 사항, 구현 단계에서 발생할 수 있는 취약점에 대한 개요, 대응 방안 이론을 공부하면서 게임을 통한 복습을 진행하는 방식으로 공부한다면 충분히 단 기간에 합격을 노려 볼 수 있다.
"SW 보안약점 진단원 이수시험 대비 문제 풀이 게임"은 아래의 링크에서 다운로드 가능하다.
참고로, 이 게임은 파트별로 따로 공부하려고 하나씩 만들었다가 나중에 다 합친 것으로 코드가 엉망이다. 하지만, 커스텀하여 사용할게 아닌 이상 학습용으로 사용하는데 있어서 문제는 없을 것이다.
마무리
SW 보안약점 진단원 시험은 전공자, 비전공자 상관 없이 모두에게 어려운 시험이지만, 다른 한편 많은 것을 배우고 얻어 갈 수 있는 시험이기도 하다. 개발자 분들은 XSS, SQLi 뿐만 아니라, 여러 취약점을 접하는 계기가 될 것이고 컨설턴트 분들에게는 각 취약점에 대한 원리를 조금 더 명확하게 이해할 수 있는 시간이 될 것이다.
따라서, 단순히 자격증 취득 용도로만 시험을 준비하기 보다는 부족했던 부분을 배우고 채워나간다는 생각으로 준비한다면 자격증과 더불어 얻어가는 것도 많을 것이다.