🛣 [개정판] 어떻게 컴퓨터 보안을 공부할 것인가? (웹 보안, 리버싱을 공부하는 법)
본 글은 18년 [컴퓨터 공학]보안은 어떻게 공부할 것인가?(웹 보안, 해킹, 시스템 보안은 어떻게 공부할 것인가?) 글의 개정판입니다.
0. 시작하며. 보안 학과가 없는 학교에서 보안회사 공채 합격까지.
제가 다니는 학교의 컴퓨터 공학 과정에서 보안을 중점적으로 다루지 않았습니다. 4학년 때 컴퓨터 보안 수업 하나 있는 정도입니다. 보안 학과가 없는 4년재 대학교라면 아마 비슷한 상황일 것입니다.
전공을 시작하면서 마음속에 보안을 공부하고 싶다는 열망이 있었고, 많은 방황을 하면서 공부했습니다. 그 결과 19년 하반기 보안분야의 취준생이라면 알만한 회사에 공채로 합격했습니다. (개인적인 이유로 입사하지 않았습니다.) 많은 시간 동안 혼자 책상머리에서, 그리고 거대한 교보문고에서 껌딱지처럼 쪼그리고 앉아서 한장한장 공부했던 방법과 자료를 종합하여 어떻게 공부하면 좋을지 글로 남깁니다.
보안이라는 카테고리에서 공부할 범위는 광범위합니다. 따라서 공부할 때 네트워크 보안, 웹 보안, 리버싱 등등 하나를 정하여 접근하는 것이 좋지만 본 글은 회전식 초밥처럼 이런 자료가 좋다고 추천하겠습니다. 여러분들이 마음에 드는 공부를 하나씩 차곡차곡 하면 될 것입니다. 여기에 작성된 대부분 자료는 어디서 주워듣고 좋다더라 가 아닌, 제 손을 한 번이라도 거쳐 가서 실제 경험을 바탕으로 추천하는 것입니다. 글에 부족한 점이 있다면 댓글로 남겨주세요.
1. 보안의 입문 워게임하기!
1-1. 무작정 부딛혀보자. webhacking.kr
워 게임을 통해서 웹 해킹의 기본적인 기법을 알 수 있습니다. 인가되지 않은 사이트에서 시도조차 하는 것은 불법이며, webhacking.kr은 웹 해킹을 공부를 위하여 만들어졌습니다. 처음 공부하다가 막히면 다른 블로그에 올라온 정답(마크업)을 보시고 쭉쭉 넘어가세요. 이외에도 다양한 사이트가 있습니다.
1-2. 체계적으로 공부하고 싶어요!
첫 단계에서 워 게임은 신기하다는 맛만 보는 것으로 충분합니다. 지식이라는 것은 체계 위에 세워져야 합니다. 시큐아카데미 최봉환 강사님은 제가 강의를 들었던 17년 8월 Udemy에서만 강의하셨다가 인프런에도 강좌를 만드셨습니다. 처음 공부할 때 많은 도움을 받았습니다.
강의 내용이 책으로도 발간되었습니다. 설명하실 때 쭉 보여주고 넘어겨셔서 아쉬웠는데 이러한 아쉬움을 달래줄 책입니다. 웹 보안에 관심이 있다면 가지고 있어도 좋은 책입니다.
웹 공격 실습뿐만 아니라 이론에 조금 힘을 주고 있는 책입니다. 어려운 책은 아니고 가볍게 볼만한 책입니다.
1-3. 조금 더 공부하고 싶다면?
인프런 장용하님의 취미로 해킹 강의를 추천합니다. 이 강의를 다 볼 필요는 없고 일부 강의만 한번 맛보시면 됩니다. WebGost는 시큐아카데미 내용과 비슷한 내용이 나올 수 있으니 이점 염두에 두세요.
1-4. 기타 자료
제가 직접 공부한 것은 아니지만 괜찮은 자료를 추천합니다. 일찍 알았으면 좋았을텐데 아쉽습니다.
- Youtube. Learn Python Through Public Data Hacking
- CYBRARY 강좌
- Udemy. Mastering Python - Networking and Security
2. 리버싱의 시작. 과연 나뭇잎 책으로?
여러 해커의 인터뷰를 보면 약속이나 한 듯 자신이 하는 게임을 잘하고 싶어서 리버싱으로 위변조를 하여 게임 핵을 간단하게 만들었다고 합니다. 이에 희열을 느낀 미래의 보안 인들은 리버싱을 공부하고 싶어지고 인터넷 검색을 조금만 하면 리버싱 핵심원리 일명 나뭇잎 책을 추천받게 됩니다. 가격도 뜨악, 두께도 뜨악입니다. 처음 공부할 때 리버싱 핵심원리를 추천하지 않습니다.
처음 공부를 시작하신다면 인프런 리버스쿨 과정을 추천합니다. 저는 Level 1만 수강하였는데 Level 1만으로도 많은 것을 얻을 수 있었습니다. 그리고... 리버싱과 맞지 않는다는 귀중한 경험을 얻었습니다. 다만 다른 분야에 관심이 있더라도 Level 1은 듣는 것을 추천합니다. 프로그램의 코드를 메모리와 레지스터 관점에서 바라볼 수 있는 좋은 시간입니다.
리버싱의 맛만 보기에는 리버스쿨의 강좌 가격이 부담스러울 수 있습니다. 무료 공부 자료로 AZERIA LAB 의 Arm Assembly의 글을 읽으며 직접 따라해보는 것을 추천합니다. 내용이 너무 좋아서 인턴 하던 시절 AZERIA LAB 자료를 주말에 번역하곤 했습니다. 지금 번역은 50% 진행되었습니다. 보안 인이라면 영어로 새로운 정보를 접하는데 두려움이 없어야 합니다!
제가 리버싱쪽으로 쭉 공부하지 않지만.. CTF 리버싱쪽을 보면서 머리를 틔우는 것도 좋은 방법이라고 봅니다. CTF 정보보안 콘테스트 챌린지북을 추천합니다. 다만 자세한 설명이 되어있는 것은 아니라는 점은 참고해주세요!
3. 보안의 이론적 뼈대 지식
대학에서 보안 수업을 들으면 항상 나오는 대칭키, 비대칭키, 암호와 알고리즘과 수학(Diffie-Hellman Algorithm 등..), 네트워크 보안(DDOS, SSL, Firewall..) 이러한 주제는 보안 회사 면접 때 모르면 사람 취급 못 받습니다..ㅠㅠ 그리고 보안 공부를 하다 보면 자연스럽게 용어를 사용하기에 이러한 뼈대 지식은 공부하면 좋습니다. 다음 자료를 활용해서 공부하세요
네트워크보안 안동대학교 차영욱 교수님 강의를 추천합니다. 11년에 촬영된 강의라 화질과 음질이 아쉽지만 지금 들어도 좋은 강의입니다. 대학에 보안 강의가 있다면 대부분 비슷한 내용을 다룰 것입니다.
강의를 듣는 것이 부담스럽다면 위 책을 추천합니다. 보통의 대학에서 사용하는 보안 교재에 해당하는 내용이 담겨 있으며 설명도 좋습니다. 만약 면접을 앞 두고 있다면 대칭키, 비대칭키, 전자서명, VPN, SSL 부분은 꼭 보고 가세요.
4. 보안은 다 알아야 합니다..
보안은 컴퓨터 구조, OS, 네트워크 ... 다 알아야 합니다. 그렇지 않으면 속칭 해킹 도구만 사용할 줄 아는 툴 키드(Tool Kiddie)가 됩니다. 탄탄한 컴퓨터 공학 이론이 뒷받침되어야 공격 시나리오도 잘 짤 수 있으며 자동화 스크립트 작성, 와이어 샤크를 통한 패킷 분석, 네트워크 장비 사용, 바이너리 분석 등등 잘해낼 수 있을 것입니다. 그렇다고 공부를 시작한 지 얼마 안됐는데 컴퓨터 공학 전공 내용을 공부하는데 시간을 많이 보낼 수 없습니다. 그렇기에 기초적이고 뼈대 도서를 추천해드립니다.
Yes24 에서 확인할 수 있습니다. 책 디자인이 촌스럽고 2008년도에 출간되어서 출간된 지 시간이 많이 지났습니다. 본 책은 LINE에 합격하신 분이 이 책으로 면접을 준비했고 좋은 책이라고 추천을 해주셔서 반신반의하며 구입했습니다. 운영체제 내용 중에서 핵심 내용만 담고 있으며 지금까지 읽어왔던 설명 중에서 제일 간결하고 명확하게 설명하고 있습니다.
대학에서 네트워크 수업을 들었다면 본 도서의 70%는 커버하고 있을 것입니다. 여기에 보안 관점에서 네트워크에 접근합니다. 오동진님은 페이스북 보안 그룹 페이지, 네이버 카페를 운영하고 있으니 참고하세요!
5. 진로탐색
보안회사에서는 신입에 꽤 많은 것을 투자합니다. 그렇기에 보안회사에 입사를 성공적으로 한다면 보안 경력을 잘 만들어갈 기회가 많습니다. 그 전에 보안 회사가 무엇을 하는지 현업의 사람들은 무엇을 느끼는지 살펴보면 좋을 것입니다.
보안 직무에 대해서 이보다 좋은 책이 있을까 싶습니다. 책을 읽고 감명받아서 제 블로그에 도서 리뷰를 남겼습니다. [도서 리뷰] 실무자가 말하는 모의해킹
인프런에 모의해킹 업무 이해, 두 번째 이야기 가 있습니다. 본 강의도 진로에 도움을 줄 것입니다.
위에서 소개한 보안 분야의 전반적인 직무를 설명하는 조정원 님의 책과 다르게 보안 분야에 일하시는 김주생, 전상현, 차민석, 한주성 4명의 저자분들의 진솔한 이야기입니다. 책을 읽다 보면 마치 선배 개발자분과 커피 한잔 하며 이야기하는 느낌이 듭니다. 인턴 당시에 교보문고에서 이 책을 발견하고 시간 가는 줄 모르고 읽은 기억이 있습니다. 악성 코드 탐지 부분을 읽다가 아이디어를 발견해서 개발하던 코드에 적용해서 효율적으로 문제를 해결했던 경험이 있는 귀중한 책이기도 합니다.
6. 연구
보안 학과가 없지만 트리니티소프트 산학과제로 Python 정적분석 검출 도구에 대한 논문을 썼습니다. Riss 링크 Python 웹 어플리케이션의 보안취약점 탐지를 위한 오픈소스 정적 결함 검출 도구의 총체적 조사 에서 확인 하실 수 있습니다. 본 논문으로 2019 한국컴퓨터종합학술대회 학부생/주니어논문경진대회 학부생 부분 우수상을 받았습니다. 후기는 제 블로그 🏆️ 한국컴퓨터종합학술대회(KCC) 2019 학부생 논문경진대회에서 우수상을 수상하기까지를 참고해 주세요.
제6회 개발보안 경진대회에서 최우수상(행정안전부 장관상)을 받았습니다. 제 블로그 글 🏆️ 제6회 개발보안 경진대회 수상 후기를 참고해주세요!
7. 기타..
공부를 하다가 보안을 좀 더 깊게 공부하고 싶다면 국내 대학원 혹은 BOB(Best of Best), 케이쉴드 주니어 과정을 잘 알아보세요. KISA 주관 과정의 경우 모든 사람이 하고 싶다고 할 수 없기에.. 먼저 준비한 사람이 유리합니다. 공부에 대한 아쉬움이 남는 경우 보안프로젝트 모의해킹 장기과정을 추천드립니다. 비교적 적은 금액을 투자한다면 좋은 강의를 만날 수 있습니다. 장기과정을 밟은 학생들이 프로젝트 한 것을 E-Book으로 리디북스에 출판하고 있습니다.
7. 마치며. 감사합니다.
부족한 저를 대학에 보내주셔서 함께하여 주신 하나님께 감사드립니다.
어떻게 살아야 하나 방황하던 18년에 삶을 되돌아 보는 의미에서 쓴 글인 보안을 어떻게 공부할까?라는 부족한 글을 읽어주신 독자님께 감사드립니다.