[모각코]1장 맛보기
07-07 수요일
1. 개요
- 해킹을 공부하다 보면 자칫 기술 자체에만 너무 몰입한 탓에 기술보다 더 중요한 것을 간과하기 쉬움.
- 대표적으로 법과 윤리와 관련된 부분, 이는 해킹을 이해하는 데 있어서 중요하고 가장 먼저 접해야하는 내용
2. 해커의 종류와 의미
- 해커에 대한 명확한 정의는 존재하지 않고, 다양한 형태로 설명될 수 있음.
- 기존의 해커는 ‘컴퓨터를 능숙하게 다루는 전문가’ 혹은 ‘시스템 프로그래밍을 잘하는 사람’ 등을 지칭.
- 급변하는 시대를 반영해 해커라는 말 앞에 수식어가 달리기도 함.
1. 화이트햇 해커
- 선의의 목적으로 보안상의 취약점을 찾아내고 그에 대한 해결책을 제시 하기도 함.
- 본인의 시스템, 해킹 대상 담당자의 승인을 거쳐 공격을 수행하는 등 합법적인 범위 내에서 해킹.
2. 블랙햇 해커
- 악의적인 목적으로 컴퓨터에 침입하고 개인적인 이득을 취하는 해커.
- 목적 자체가 불법적, 각종 범죄와 연계되어 있는 경우가 많음.
- 크래커(Cracker)라고 부르기도 함.
3. 그레이햇 해커
- 화이트햇 해커와 블랙햇 해커의 중간 단계이며 불법적인 해킹을 시도함.
- 개인적인 이득이 아닌 해당 시스템의 취약점을 관리자에게 알려주는 등 행위 자체는 법의 경계를 넘나들어도 직접적인 피해를 초래하지 않는 부류.
4. 핵티비스트
- 해킹의 목적이 다양화 되면서 생긴 해커.
- 해킹을 수단으로 사회적, 사상적, 종교적, 정치적 메시지 등을 설파하는 해커.
- 주로 대상 사이트의 페이지를 변조하거나 운영을 방해 하는 등의 행위를 함.
- 대표적인 단체로 어나니머스(Anonymous).
해커의 분류는 점점 세분화 되고 있지만, 그럼에도 불구하고 여전히 일반적인 사람들은 해커에 대한 부정적인 이미지를 먼저 떠올리는 경우가 많음.
미래의 해커가 되고자 하는 우리 모두 해커에 대해 긍정적인 이미지를 떠올릴 수 있도록 노력해야 한다.
3. 해킹 입문시 중요한 것
-
윤리와 법
- 해킹 기술은 흔히 아주 날카로운 칼에 비유되며, 칼은 올바르게 사용하면 여러모로 유용하지만, 자칫 잘못하면 그 의도가 어떻든 간에 상대방뿐만 아니라 본인에게도 큰 해를 끼칠 수 있음.
-
합법적 호기심
- 타인의 시스템에 대한 해킹은 공격 시도 자체만으로도 불법이 될 수 있음. 이 부분만 잘 유념해도 대부분의 불행은 피할 수 있다.
-
법에 대한 무지와 애매함
- 합법적 호기심에 대한 내용만 알아도 대부분 문제가 발생하지 않지만, 예외적인 상황이나 애매한 부분이 존재.
- 대표적인 예시로 프로그램 코드의 역 분석을 하는 리버스 엔지니어링.
- 현재 법에서는 호환성 확보를 목적으로 하는 행위일 경우에는 합법이지만, 그 외에는 위법으로 규정.
- 따라서 해킹이라는 분야를 접하는데 있어 항상 경각심을 가져야함.
4. 해커의 공격 시나리오
실제 해킹 프로젝트를 수행할 때는 공격 시나리오가 존재하며, 각 시나리오로 적용되는 해킹 기술이 존재. ex)
- 웹 해킹(내부 시스템으로 가는 통로를 개방)
- 리버스 엔지니어링(프로그램들의 취약점을 찾아 분석) 리버스 엔지니어링 은 해킹 전반에 걸쳐 가장 중요하게 여겨지는 부분.
- 각종 시스템 해킹 기술(ex: 버퍼 오버플로우) -분석한 취약점을 공격
- 버그 헌팅 -해커가 직접 새로운 취약점을 찾는 경우
- 디지털 포렌식 -외부 해커로부터 공격당한 시스템에 대해 분석하고 원인을 찾아내는 작업
- 해커가 생상해낸 콘텐츠들을 사고파는 시장
5. 해킹 학습(버퍼 오버플로우 공격을 예시로)
-
시스템 관련 지식
-
버퍼 오버플로우 공격은 시스템의 특정 메모리 영역을 공격하기 위한 목적으로 메모리 값을 조작하는 과정 필요
- 메모리 구조
- 프로그램 작동 원리
- 시스템 권한 체계
-
-
프로그래밍 언어
-
해킹 공격 코드, 프로그래밍 언어의 종류는 버퍼 오버플로우 취약점이 존재하는 프로그램이나 공격 대상이 되는 시스템 환경 등에 따라 다양하게 요구
- C
- C++
- Python
- assembly
-
6. 교류를 통한 배움
다양한 사람들과의 교류는 자신의 배움에 있어서 선별된 좋은 정보, 최신 이슈, 기술적 노하우를 얻들 수 있는 등 매우 긍적적으로 작용함.
- 컨퍼런스
- 해킹대회
- 커뮤니티 활동
- 소셜 네트워크 서비스
7. 해킹 실습
-
워게임 워게임은 취약한 가상의 환경을 구축해두고 실전처럼 공격할 수 있도록 만든 일종의 해킹 연습장 또는 실전 해킹에 대한 기출 문제 모음집이라고 볼 수 있음.
아래의 사진은 위챌(http://wechall.net)의 training 문제와 직접 풀이한 사진이다.
-
해킹 대회
- 해킹 대회를 통해 자신의 실력을 직간접적으로 평가해 볼 수 있음.
- 정해진 시간 내에 공격에 성공해야 하는 환경에 놓이게 되면 모르는 부분을 찾아 공부하면서 단기간에 상당한 학습 효과를 얻을 수 있음.
-
가상 환경
- 가상의 취약한 환경을 구축하고 해킹하며 웹, 리눅스, 윈도우, 네트워크 등 원하는 조건에 따라 구성해서 실습을 할 수 있음.
-
참고자료
- 해킹 맛보기