현재 취업을 한 상황인데, 취업부 선생님께서 보안 후배들을 위해 정보보안 로드맵을 작성해주라고 부탁하셨다.
보안을 처음 시작했을 때 어떤 걸 얼마나 공부 해야 할 지 막막하고, 딱히 로드맵이 나와있지도 않아서 힘들었던 기억을 떠올리며 최대한 입문하기 쉽게 써 보았다.
먼저, 보안을 가장 먼저 시작하면 기본적으로 알아야된다고 생각하는 것들이다.
웹은 위에서 공부한 이론을 바탕으로 워게임을 풀어보는 것과 CTF 참가 등을 추천한다.
자신만의 웹 사이트(CRUD가 있는 게시판 추천)을 만들어 보면서 내가 나중에 공격할 웹 사이트들의 코드가 어떤 식으로 이루어져 있을지 익히는 것을 추천한다.
워게임은 드림핵, Root-me, webhacking.kr, LOS(Load of SQL Injection) 등을 풀어보기를 추천한다.
Burp Suite를 설치하여 Request와 Response, HTTP Method 등을 변조 해 보고 쿠키와 세션도 변조하여 계정을 탈취 해보고, SQL Injection과 XSS, CSRF 등등 여러 공격을 연습해보길 바란다.
네트워크는 위에서 공부한 이론을 바탕으로 와이어샤크로 패킷 파일을 분석하거나, 패킷트레이서를 직접 만져보면서 여러 라우팅 기법, NAT/PAT, VPN, 서브넷마스크 등 여러 개념을 이해해보기를 추천한다.
AWS나 방화벽 등을 만지면서 IDS/IPS나 클라우드 등 여러 네트워크 개념을 익히길 추천한다.
pcap 파일 분석은 Cyberdefenders를 추천한다.
시스템은 위에서 공부한 내용을 바탕으로 워게임을 풀어보고 CTF 등에 나가는 걸 추천한다.
드림핵, Root-me, pwnable.kr, LOB(Load of Buffer Overflow), HackerSchool FTZ 등을 풀어보기를 추천한다.
Buffer Overflow 공격(Canary 우회, ASLR 우회, Heap Overflow 등..)과, FSB(Format String Bugs) Attack 등 여러 공격을 연습해보길 바란다.
암호학은 정말 어려운데, 마찬가지로 워게임을 풀고, CTF 등에 나가는 걸 추천한다.
고전 암호인 카이사르(시저) 암호부터, 여러 수학적 계산이 복잡하게 들어간 RSA, ECC나 DES, AES 등 여러 암호가 있다.
Caesar 암호와 Base64, RSA 등이 암호학 문제에 자주 출제 되는 것 같다.
DES, AES 같은 블록 암호는 개인적으로는 어려워서 잘 알지 못하는데, 이 것들도 공부하면 좋을 것 같다.
드림핵, Root-me, Cryptohack 등을 추천한다.
리버싱은 위에서 공부한 어셈블리어를 바탕으로 워게임을 풀고, CTF 등에 나가는 걸 추천한다.
리버싱은 나도 많이 안해봐서 잘 모르지만, 써보자면 어셈블리어를 직접 C언어 코드로 옮기는 핸드레이나, 프로그램을 IDA 등을 이용해 디스어셈블리 후 분석하는 걸 추천한다.
드림핵 외에는 잘 모르겠다.
포렌식도 많이 안해봐서 잘 모르지만, 써보자면 HxD를 사용해 파일 분석, FTK Imager나 AutoPsy를 이용한 디스크 분석, Volatility를 이용한 메모리 분석 등을 추천한다.
그 외에도 Wireshark나 Networkminer를 이용한 네트워크 패킷 분석, Registry Explorer를 이용한 윈도우 레지스트리 분석 등이 있다.
포렌식은 CyberDefenders를 추천한다.
그 외에 더 공부해보고 싶으면 이 로드맵을 참고해 보면 좋을 것 같다.
추가로, 기본 이론 공부부터 심화 공부까지 모든 과정에서 코딩 공부를 병행하는 걸 추천한다.
해킹이란게 코드로 작성된 프로그램을 공격하는 것이다보니 먼저 코드를 볼 수 있어야 한다.
웹해킹을 할 때 자동화 스크립트를, Pwnable을 할 때 Exploit 코드를 작성해야 하기 때문에 어느 정도 코딩을 할 수 있고, 코드를 읽을 수 있어야 한다.
주로 자동화 스크립트, Exploit 코드를 작성할 때엔 Python, Exploit을 할 프로그램은 C언어, 웹은 JS나 Php로 작성되어 있다.
JAVA나 다른 언어도 많지만, C, Python, JavsScript, PHP 이렇게 네 개의 언어는 어느 정도 할 수 있어야 한다고 생각한다.
보안이란 전공 안에는 직무가 매우 많다.
'해커' 하면 떠오르는 취약점을 점검하는 취약점 분석(모의해커)
DDoS 등 여러 공격으로부터 시스템을 방어하는 보안 솔루션 구축 및 운영
그 외에도 기업에게 보안 자문을 해주는 컨설턴팅, 악성 코드를 분석하는 악성 코드 분석가, 여러 자료를 복구, 조사하는 디지털 포렌식 전문가와 보안 관제 전문가 등등..
나는 위의 웹, 네트워크, 시스템, 암호학, 포렌식, 리버싱 등의 이론을 공부하고 실습을 해 볼 때 네트워크 부분이 가장 재미있었다.
네트워크 쪽을 깊이 공부하면서 프로젝트를 진행하고 포트폴리오를 채우다 보니 자연스럽게 보안 솔루션 구축 및 운영, DevSecOps 쪽으로 직무를 정하게 됐다.
각자 위에 꺼를 공부 해 보면서 웹, 시스템 해킹이 재밌으면 모의해커, 포렌식이 재밌으면 디지털 포렌식 전문가, 리버싱이 재밌으면 악성 코드 분석가...
이런 식으로 재미있는 부분을 깊게 공부 해 보고 직무를 정하는 게 좋다고 생각한다.
저도 보안을 공부한 지 3년도 채 되지 않았기 때문에 글이 많이 부족할 수 있습니다.
혹시 잘못된 내용이나 추가하면 좋을 것 같은 내용이 있으면 피드백 부탁드립니다!
글보고 댓글남깁니다.
디금 현직에서 일하시나요?.?