Sechack
보안(해킹)공부 방향 본문
톡방이나 커뮤니티같은 곳에 있다보면 입문자 분들이 공통적으로 가장 많이 질문하시는 내용이기도 하고 저 또한 드림핵이라는 플랫폼을 알기 전까지 이것저것 삽질한 기억이 나서 글을 쓰게 되었습니다.
사실 보안에 입문하려면 프로그래밍 지식과 기초적인 컴퓨터 사이언스 지식은 베이스로 가져가야 합니다.
저는 입문하시려는 분들께 최소한 C, Python은 배우고 입문하라고 말하고 싶습니다.
해킹에는 크게 5가지 종류가 있습니다. 웹해킹, 리버싱, 포너블, 포렌식, 암호학(크립토)이라고 생각합니다. 그중에서 가장 대중적인 분야는 웹해킹, 리버싱, 포너블 이렇게 3가지인것 같습니다. 실제로 많은 입문자분들이 관심가지시는 분야는 웹해킹인것 같습니다. 이제 이 3가지 분야에 대한 공부 방법을 소개하여 보겠습니다.
먼저 웹해킹입니다. 웹해킹은 리버싱, 포너블에 비해 진입장벽이 낮습니다. 입문하기 위한 진입장벽이 낮을뿐이지 분야 자체가 쉽다는건 아닙니다. 아무런 베이스가 없으신 분들은 먼저 생활코딩에서 html, css, js, php, mysql이 5가지 언어를 배우시고 로그인, 회원가입, 글쓰기 기능이 있는 간단한 게시판 사이트를 만들어보시고 웹해킹에 입문하시는걸 추천드립니다. 웹해킹은 개발지식이 실력에 비례되는 분야입니다. 따라서 웹사이트를 많이 만들어보시는것을 추천합니다.
웹개발 베이스가 잡혀있다면
드림핵(https://dreamhack.io) 에 가셔서 웹해킹 기초 기법들을 습득하시고 강의에 나온 기법들을 사용하는 워게임 문제들을 풀어보세요. 드림핵은 티오리에서 만든 보안 교육 플랫폼으로 최근에 생겼습니다. 웹해킹 외에도 리버싱, 포너블, 암호학까지 커리큘럼이 짜여있고 질좋은 워게임 문제들도 많으며 CTF도 개최하니까 입문자분들 뿐만 아니라 중, 상급자 분들께도 강력추천하는 플랫폼입니다.
웹케알(https://webhacking.kr) 드림핵으로 어느정도 기초가 다져지셨으면 웹케알 워게임을 풀어보시는것을 추천합니다. sql injection과 같은 대중적인 기법들 외에도 다양한 기법들을 접할 수 있습니다. 이 워게임을 대부분 푸셨다면 웹해킹을 앞으로 어떻게 공부해나갈것인지 감이 잡히실겁니다.
LOS(https://los.rubiya.kr/) SQL Injection의 다양한 형태들을 실습할 수 있는 워게임입니다. SQL Injection밖에 다루지 않는다는점이 단점이지만 해킹을 할때 필수적으로 필요한 창의력, 사고력을 기를 수 있습니다.
웹 해킹 & 보안 완벽 가이드(https://yes24.com/Product/Goods/14275829) 웹해킹 책으로는 이 책이 유명합니다. 웹해킹을 주 분야로 하시는 제 지인도 이 책을 감명깊게 보셨다고 합니다. 한번 읽어보는것을 추천합니다.
다음은 포너블입니다. 포너블은 제가 웹해킹을 조금 하다가 눈을 돌려서 현재 주력으로 공부하고 있는 분야입니다.
포너블을 입문하기 위해서는 C언어 활용 능력과 약간의 어셈블리어 해석능력, 약간의 리버싱 지식이 선행되어야 원활하게 진행하실 수 있습니다. 파이썬은 반필수입니다. 파이썬을 제대로 공부하지 않더라도 pwntools라는 모듈만 활용할 수 있으면 포너블 공부에 지장은 없습니다. 저도 파이썬은 제대로 공부하지 않고 기초적인 if문, for문 들여쓰기 이런것들만 흩어보고 필요한 기능들은 그때그때 찾아보는 편입니다. 앞에서 언급한 베이스 지식이 없으신 분들께는 포너블 입문을 추천하지 않습니다.
베이스 지식이 있으시면
드림핵(https://dreamhack.io) 마찬가지로 드림핵을 추천합니다. 드림핵이 해킹 입문하기 가장 좋은 사이트라고 말하고 싶습니다. 다양한 분야가 있지만 포너블 중점적인것 같습니다. 커리큘럼도 포너블이 다른 분야에 비하여 자세하고 알차게 짜여져있고 워게임 문제들도 포너블의 비중이 높습니다. 웹해킹 문제도 포너블만큼 많긴 합니다.
라젠카(https://lazenca.net) 매우 훌륭한 사이트입니다. 왼쪽에 보시면 메뉴가 있는데 TechNode탭을 펼쳐보시면 강의가 쫘라락 나옵니다. 드림핵 커리큘럼에서 나오지 않은 많은 기법들이 소개되고 있고 한글화까지 되어있습니다.
HackCTF(https://ctf.j0n9hyun.xyz/) 포너블 문제가 매우 많습니다. 한국 워게임 사이트입니다. 이곳에서 다양한 유형의 문제들을 연습할 수 있습니다. 개인적으로는 입문자에게 매우 좋은 워게임 사이트라고 생각됩니다. 어려운 난이도의 문제도 존재하지만 쉬운 난이도의 문제도 많기 때문입니다.
사실 포너블 관련 워게임 사이트를 구글링해보면 pwnable.kr이나 pwnable.tw같은 사이트들을 많이 추천합니다. 하지만 저는 입문자에게 이 워게임 사이트들을 추천하지 않습니다. 처음 한두문제 빼고는 어느정도 포너블 관련 경험이 있으신분들 위주의 문제입니다. 따라서 입문자 분들이 푸시기에는 적절하지 않습니다. 처음 포너블을 입문하시면 위에서 말했다시피 드림핵에서 포너블 강좌를 보시고 해당 강좌 내용을 실습할 수 있는 워게임 문제를 푸시면서 입문을 하시면 됩니다.
또 포너블 입문 관련해서 구글링을 해보시면 해커스쿨 LOB나 FTZ얘기가 많이 나옵니다. 하지만 저는 개인적으로 해커스쿨은 한물 갔다고 생각합니다. 저 또한 해커스쿨의 LOB나 FTZ를 거치지 않았습니다. 개인적인 생각으로는 드림핵 포너블 커리큘럼이 훨씬 낫다고 생각합니다.
마지막으로 리버싱입니다. 포너블과 마찬가지로 리버싱을 입문하기 위해서는 C언어 활용능력이 요구됩니다. 파이썬은 알아두면 편하지만 몰라도 입문하는데 큰 어려움은 없습니다. 중간에 하다가 필요하다 싶을때 찾아보시면 됩니다. 어셈블리어는 mov, push, pop과 같은 기본적인 명령어 개념만 흩어보시고 나머지는 분석하면서 습득하셔도 무방합니다.
리버싱은 드림핵보다는 책을 추천합니다. 리버싱의 정석이라고 불리는 유명한 책들이 몇개 있습니다.
리버싱 입문(http://yes24.com/Product/Goods/27628413) 처음 입문하실경우 이 책을 추천합니다. 리버싱의 기초를 잡고가기에 좋은 입문서입니다.
리버싱 핵심 원리(http://yes24.com/Product/Goods/7529742) 흔히 나뭇잎책이라 불리는 유명한 책입니다. 리버싱 입문 관련해서 질문하면 거의 대부분 이 책을 추천받습니다. 리버싱의 기초가 잡히셨다면 이 책을 정독하시는것을 추천드립니다.
리버스 엔지니어링 바이블(http://yes24.com/Product/Goods/15150824) 사실 나뭇잎책까지 보시고 내용을 익히셨으면 리버싱을 어떻게 공부해야하는지 감이 오셨을겁니다. 그래도 이 책을 통해 더욱 실력자로 성장하실 수 있습니다. 지식 얻어서 나쁠건 없으니 한번 보시는것을 추천드립니다.
코드엔진(https://codeengn.com/) 앞에서 소개한 책을 보고 실습해보면서 어느정도 베이스가 다져지면 워게임 문제들을 풀어보면서 경험과 실력을 늘려보세요. 코드엔진에는 난이도별로 다양한 문제들이 분포하고 있습니다.
립케알(http://reversing.kr/) 후반부로 갈수록 어려워지는 워게임 사이트입니다. 실력을 갈고닦기 매우 좋습니다.
3가지 분야의 공부 방향에 대한 소개를 하였습니다. 하지만 가장 중요한것은 본인의 의지와 열정임을 명심해주세요.
그리고 마지막으로 모든 분야를 통틀어서 가장 중요하다고 생각하는것을 말하려고 합니다. 그것은 바로 정기적으로
CTF에 참여하는것입니다. CTF는 대회이므로 대회 기간동안 풀이를 볼 수 없습니다. 혼자힘으로 풀어야합니다. 따라서 문제를 보고 어? 이거 풀만한 문제다 하고 풀기 시작하면 쉽게 풀릴수도 있고 생각보다 잘 안풀려서 많은 삽질을 하게 될수도 있습니다. 대회 기간동안은 풀이를 볼 수 없고 기껏해야 공식 디스코드 서버에 질문해서 약간의 힌트를 얻는것입니다. 워게임의 경우는 구글링하면 write up이 나오지만 CTF는 대회 종료까지 기다려야 합니다. 물론 포기하고 기다릴수도 있지만 대부분은 문제에 매달리게 되더라고요. 거의 풀었는데 안되는경우가 대부분이라서... 이렇게 삽질한 문제는 대회 종료후 write up을 보면서 복기해보면 인상깊게 남게 됩니다.
개인적으로 이러한 삽질경험은 실력을 늘리는데 매우 도움이 된다고 생각합니다. 워게임과 CTF는 본질은 비슷하다고 느끼지만 직접 해보면 느낌이 다릅니다. 일주일에 1번 주말에 CTF를 참여하여 보세요. 문제를 많이 풀던 적게 풀던 순위가 높던 낮던 일단 참여하고 풀 수 있을것같은데 못풀었던 문제들은 write up을 보면서 하나하나 복기해보고 하다보면 실력이 늘어나는게 느껴집니다. 또한 이전에는 접하지 못했던 창의적인 유형의 문제들도 많이 출제됩니다.
CTF일정은 아래 사이트에서 보실 수 있습니다.
상단 메뉴를 보시면 Calendar탭이 있는데 그걸 누르시면 각각 CTF들의 일정을 보실수가 있습니다.
'기타' 카테고리의 다른 글
POSIX 발표자료 (0) | 2023.04.26 |
---|---|
Cryptohack Weekly Top10 (0) | 2023.01.20 |
XSS -> RCE (0) | 2022.10.04 |
개인 디스코드 서버 오픈!! (0) | 2022.05.10 |
Dreamhack wargame top10!!!!!! (1) | 2021.08.11 |