[드림핵] Beginner - Introduction
Lecture Introduciton
1. 웹 해킹
- Web2 환경에서 발생할 수 있는 취약점과 대응 방법에 대해 알아감
2. 리버스 엔지니어링
3. 시스템 해킹
- 프로그램에 취약점이 존재할 때 이를 익스플로잇하는 방법론
4. 암호학
- 본래 정보를 보호하기 위한 언어학적 및 수학적 방법론
Wargame Introduction
1. Wargame
- 워게임은 의도적으로 취약점이 존재하도록 설계된 모의 해킹 환경
- 하나의 시험 문제라고도 볼 수 있음
- 제작자가 설계한 취약점을 찾아내고, 이해하고, 해결책을 찾아내는 과정을 거쳐 플래그를 찾아내는 문제
- 워게임의 카테고리는 일반적으로 포너블(pwnable/system hacking), 웹(web), 리버스 엔지니어링(reversing), 암호학(crypto), 포렌식(forensics), 그리고 특정 카테고리에 포함되지 않는 miscellaneous(misc)등이 있음
- 이 외에도 네트워크(network), 브라우저(browser), 블록체인(blockchain) 등과 같이 더 세부적인 분야도 존재
2. 플래그
- 해킹 방어 대회의 일반적인 형식은 CTF(Capture The Flag)
- 이는 공격 대상인 시스템에 존재하는 파일을 flag라고 칭하며, 이 파일의 내용이 공격자가 제출해야 하는 답안
- 어떤 시스템을 성공적으로 해킹했다는 증거 제시 = 일반적으로 해커들은 계산기 실행
- 계산기가 거의 모든 os에 기본적으로 설치된 프로그램 중 하나이기 때문
- 해커가 계산기 실행에 성공했다는 것 = 해커가 기본적으로 어떤 프로그램이든 실행시킬 수 있음
- 혹은 셸(shell)을 실행시키는 것도 하나의 증명 방법
- 셸 실행시키고 커맨드 입력할 수 있다면 그 시스템에서의 사용자와 같은 권한을 가지고 있는 것
- CTF에서는 가장 간단한 형태의 제출물이 될 수 있는 ‘어떤 텍스트’를 답으로 쓰기로 결정
- 굉장히 간단한 형태로 정답을 제공할 수 있음
- 워게임, CTF 문제에서는 암묵적으로 플래그를 찾는 것이 최종 목적이 됨
3. 라이트업
- 워게임 혹은 CTF 문제에서 플래그를 찾는 과정(문제 풀이 과정)을 정리한 것
- 문제를 풀지 못했는데 풀이를 봐도 괜찮은가?
- 문제 풀 때 순차적으로 풀이자가 하는 체크리스트
- 주어진 문제가 어떤 프로그램/서비스인지 이해했다.
- 취약점(또는 이상한 부분)이 무엇인지 파악했다.
- 찾은 취약점을 어떻게 공략/공격하면 될지 구상이 되었다.
- 풀이에 필요한 코드나 페이로드를 작성했다.
- 이 중 1번은 풀이 없이 수행하는 것을 권장