[드림핵 맞짱]1. 해킹공부 그거 어떻게 시작하는건데...Introduction to Dreamhack

김나정·2024년 5월 14일

드림핵 맞짱

목록 보기
1/3
post-thumbnail

[드림핵 맞짱] 시리즈는 모든 공부를 혼자 시작하는 저같은 독학중독들에게 도움이 되길바라며 제가 해킹을 공부하는 과정을 기록합니다. 화이팅!

<Hacking, Who R U?>

  • 해킹은 컴퓨터 시스템에서 취약한 부분을 찾아내는 단계와 이를 공격하는 단계로 이루어짐

    해킹 = 취약점 찾기 + 공격하기

  • 즉, 해킹의 큰 갈래는 어떤 대상에서 취약점을 찾아낼 것인지에 따라 나누어 볼 수 있음


<해킹의 주요 3가지 분야>

1. Web Hacking (웹 해킹)

  • 용어에서 알 수 있듯 웹을 대상으로 하는 해킹
  • 웹 서버와 클라이언트(웹 서비스의 사용자와 서버 모두 해킹 대상이 됨)에서 발생하는 각종 취약점들과 이를 공격하는 기법 포함
  • 웹 관련 기술이 고도화되면서 웹 해킹이 적용되는 범위도 넓어짐

2. System Hacking, a.k.a. Pwnable (포너블)

  • 소프트웨어의 취약점을 찾아서 공격하는 해킹 분야
  • 소프트웨어는 웹 기술만큼이나 우리 생활 전반에 깊숙이 들어와있음 -> 시스템 해킹의 위협이 사회 기반 시설뿐아니라 개인의 일상에도 영향을 미칠정도로 커졌음

3. Reverse Engineering (리버싱)

  • 시스템 해킹을 공부할 때 필수적으로 다루고 넘어가야 하는 기술이 바로 리버싱
  • 프로그램을 역으로 분석하여 작동원리를 알아내는 기술
  • SW의 취약점을 파악하거나 악성 프로그램의 행동을 분석하는 용도로 사용
  • 만들어진 프로그램을 역으로 해체하는 과정이므로 모든 프로그램 분석 과정의 기본

해킹이 이제 무엇인지는 알았지만, 아직까지는 추상적인 형태입니다.

구체적으로 해커가 하는 행위는 무엇이고, 그 모습은 우리에게 어떻게 보여질까요?

혹시 편지를 운반하는 비둘기(전서구)를 사냥하거나, 건물 출입문의 도어락 패스워드 소리를 듣고 숫자를 유추하는 기술을 배울까요?

네, 정답입니다. 다만 컴퓨터의 비둘기, 컴퓨터의 패스워드 소리로 바뀔 뿐입니다.


“해킹 하고 싶어요! 뭐부터 공부하면 되나요?”

원론적으로 권장하는 순서는 해킹 이전에 “컴퓨터 과학”을 공부하는 것

why?

앞서 예시로 들었던 비둘기 사냥을 생각해보겠습니다.
비둘기를 잡기위해 활,총 등 다양한 도구를 이용할 수도 있고, 비둘기를 꼬셔서 편지만 훔쳐볼 수도 있습니다. 더 자세히 들어가서 비둘기를 꼬시기위해 먹이주기, 비둘기어 배우기, 관심끌고 편지훔치기 등 여러방법이 있죠. 하지만 이런 기술들을 배우기 위해선 비둘기의 생태를 잘 알아야 할것입니다. 이러한 비둘기의 생태처럼 우리는 CS를 기반으로한 기술을 통해 해킹을 하게됩니다.

반드시 알 필요는 없는거아니에요?
비둘기가 조류든 포유류든(CS) 먹이를 주는 방법(해킹 기술)만 알면되잖아요!
->맞아용 반드시 알 필요는 없어요 필요한 모든 기술을 익혀도 훌륭한 해커가 될 수 있습니다. 다만 컴퓨터 그 자체의 원리와 동작을 잘 이해하고 있다면 더 잘 배울 수 있다는거죵

해킹이 필요로 하는 지식

  • 컴퓨터 시스템에대한 이해 (컴퓨터 구조)
  • 네트워크에 대한 이해
  • 프로그래밍 언어
  • 운영 체제

"코딩은요?"

  • '코딩을 한다' = 특정 프로그래밍 언어로 컴퓨터에게 동작을 지시할 수 있다는 것
  • 따라서 CS를 배우기 전에 프로그래밍 언어로 코딩하는 기술을 익히는 것이 먼저!
  • CS의 첫걸음으로 코딩에 익숙해지기(C or Python 권장)

Road Map for Hacking

C or Python 익히기 -> CS를 공부하기 -> 해킹 기술 공부하기

profile
molbwa

0개의 댓글