본문 바로가기

기타

보안 공부, 앞으로 어떻게 할 것인가?(도서, 워게임, 강의)

이제 대학교의 마지막 학년의 마지막 학기가 끝나가면서 누가 시켜서 하는 공부는 끝이 난다. 지금부터는 내가 스스로 공부 계획을 짜서 공부해야 하는 때인데, 어떻게 해야 할 지 각 분야마다 간략하게 계획을 세워서 준비하고자 한다.

문제 사이트별로 파일과 풀이를 기록하고 있다.

가장 최근에 공부한 내용은 리버스 엔지니어링이다. 묵혀두었던 리버싱 입문 도서를 읽으면서 Abex의 크랙미를 풀어봤는데 생각보다 흥미가 생겼기 때문이다. 그 이후로 예전에는 엄두도 못내던 Reversing.kr 문제도 몇 개씩 풀다보니 하면 된다라는 자신감이 조금씩 생기고 있다. 물론 다양한 언어로 짜여진 애플리케이션을 리버싱하거나 언패킹, 복호화, 안티 디버깅 우회같은 고급 기술은 좀 더 공부해야 하지만 그래도 꾸준히 공부하다보면 언젠가 풀 수 있으리라 생각한다. 이렇게 공부한 내용은 블로그에 정리하면서 잊지 않도록 하자.

x32dbg

지금은 x64dbg 디버거를 활용한 리버싱과 시스템 해킹의 원리라는 책을 읽고 있다. 시스템 해킹은 포너블 쪽인 것 같은데 이쪽을 공부할때는 문제 풀이로 배우는 시스템 해킹 테크닉 도서를 읽어봐도 괜찮을 것 같다. 너무 옛날거라면 시스템 해킹 프로토스타 라는 걸 읽어봐도 괜찮을 것 같은데 아무래도 전자는 유서깊은 해커스쿨 FTZ 문제기 때문에 시대에 뒤떨어진 내용이 조금 있을지도 모르기 때문이다. 아무튼 포너블쪽은 root-me.org 같은 워게임 사이트나 해커스쿨 FTZ 서버를 가상 머신으로 돌려서 문제를 풀어보면서 공부할 것이다. 특히 root-me 같은 경우는 문제 풀이에 도움이 되는 자료도 같이 첨부하고 있기 때문에 효과적으로 공부할 수 있다.

리버싱을 더 공부한다면 유명한 리버싱 핵심 원리를 읽으면서 Reversing.kr 같은 곳에서 워게임 문제를 푸는 방식으로 공부할 것이다. 리버스 엔지니어링은 취약점 분석이나 침해 대응쪽에 요구되는 능력이라 생각하기 때문에 배워두면 좋을 것 같다.

 

지난번에 SK 인포섹 신입 요구사항을 조사하면서 느낀 것은 보안 컨설팅, 모의 해킹에는 아무래도 수요가 많은 웹 애플리케이션, 모바일 애플리케이션(안드로이드/iOS)에 대한 취약점 분석, 모의 침투 능력이 필요하다는 것이다.

2020/09/27 - [기타] - SK 인포섹 모의해킹 신입 요구사항 조사

 

SK 인포섹 모의해킹 신입 요구사항 조사

슬슬 취업의 압박이 다가오기도 하고 주변에서도 취업에 성공한 사람들이 슬슬 보이고 있다. 일단 내가 희망하는 분야의 모집요건을 조사하면서 어떻게 취업준비를 해야 할지 어떤 사항이 요구

haruhiism.tistory.com

웹, 앱 애플리케이션을 분석하려면 당연히 웹, 앱에 대한 지식이 필요할 것이다. 퍼블리셔라고 하던가, 그런 수준까지는 아니라도 소스 코드를 읽고 취약점을 분석할 수 있는 능력이 필요하다고 생각한다. 워게임 사이트에도 보면 view-source 같은 버튼으로 해당 문제의 소스 코드를 읽고 분석하는 문제가 많은데 이처럼 정적 분석으로 이 코드가 실행되었을 때 어떤 결과가 나타날 지 딱 머리에 떠오르거나 검색해서 알 수 있을 정도의 지식은 갖춰야 할 것이다.

root-me.org의 XSS - Stored 1 문제. Flask로 웹서버를 열어서 풀었다.

웹 애플리케이션의 경우 이번에 파이썬을 이용한 플라스크로 API 서비스를 만드는 수업을 듣고 있기도 하고 예전에 php로 웹사이트 제작도 했기 때문에 지식이 전무한 상태는 아니다. 그렇지만 SQL 쿼리에 대해서는 좀 더 공부가 필요할 듯 한데, SQL Injection 문제만 나오면 죽을 쑤기 때문에 요즘 곤란한 상황이다. 데이터베이스 쪽을 많이 다뤄보지 않아서 그런것 같다. 이 부분은 구글링을 통해 여러 자료를 접해가며 공부할 것이다. 관련해서 인프런에서 무료 강의 하나도 신청해놨는데 언제 한번 들어봐야겠다.

지금 읽고 있는 책은 오픈소스 도구를 활용한 웹 모의해킹과 침해대응이다. 그런데 이 책에서는 오픈소스 도구를 활용하는 데 중점을 맞추고 있기 때문에 웹 취약점 자체에 대한 공부를 병행해서 진행하려고 한다. 그래서 화이트 해커를 위한 웹 해킹의 기술을 읽어보면서 해당 도서에서 제공하는 온라인 강의도 같이 들을 예정이다. 그리고 OWASP Top 10 항목들에 대해서 실습해볼 수 있는 웹사이트를 직접 개발하거나 아니면 미리 구축된 이미지(bwapp, dvwa 등)를 활용하여 모의해킹을 수행해본 후 그 결과를 보고서 형식으로 문서화하거나 블로그에 포스팅할 것이다.

마지막으로는 웹 해킹과 시큐어코딩 탐지/수정 실습가이드라는 책을 읽는 것을 목표로 하고 있다. 거의 리버싱 핵심원리만큼 두꺼운 책이기 때문에 기초 공부를 한 다음 마지막으로 읽어볼 책으로 생각하고 있다.

모바일 애플리케이션은 작년에 안드로이드 프로그래밍 수업을 한번 들은게 전부고 iOS는 사용해본 적도 없기 때문에 이 부분은 웹보다 더 부족하다. 일단 쉽게 접할 수 있는 안드로이드 모의해킹부터 공부해야 할 것 같은데 이를 위해서 어떤 기반 지식이 필요한지에 대해 조사해볼 필요가 있다. 일단 공부를 위해서 인프런에서 안드로이드 악성코드 분석 - 입문과정 강의와 프리다(Frida)를 이용한 안드로이드 앱 모의해킹 강의를 수강신청해 두었다. 웹 애플리케이션 모의해킹을 어느정도 학습했다 싶으면 모바일 애플리케이션 모의해킹 공부도 같이 병행해서 지식을 조금이라도 쌓아두어야 할 것 같다. 쉽게 배우는 안드로이드 앱 취약점 진단 같은 책을 읽으면서 진행하면 좋겠지만 책은 한번에 하나만 사라는 조언을 주변에서 들은 적이 있던지라 나중에 생각해봐야겠다.

 

모의 해킹 업무 자체에 대한 이해도 가지면 좋다고 생각하는데 이는 책을 읽는다고 얻을 수 있는 그런게 아니기 때문에 유튜브에서 실무자들이 올리는 동영상이나 1장 모의 해킹의 업무 프로세스 이해 (tistory.com)같은 글을 많이 읽어보면서 이해도를 높여야 할 것이다.