해커

  • 종류

    • 화이트햇 해커(White hat Hacker)

      선의의 목적으로 보안상의 취약점 찾고 해결책 제시(합법적인 범위)

    • 블랙햇 해커(Black hat Hacker)

      악의적인 목적으로 컴퓨터에 침입하고 개인적 이득을 취함

      -> 이런 악의적인 목적을 가진 해커들은 ‘크래커(Cracker)’라 지칭

    • 그레이햇 해커(Grey hat Hacker)

      화이트햇과 블랙햇 해커의 중간단계로, 불법적인 해킹 시도

      개인적 이득보단 해당 시스템의 취약점을 알려주는 등 직접적인 피해 초래X

    핵티비스트(Hacktivist)

    : 해킹을 수단으로 사회적, 종교적, 정치적 메세지 등을 설파

    -> 사이트 페이지 변조나 운영 방해 등의 행위를 하며 대부분 불법

    ex) 어나니머스(Anonymous)

    ## 윤리와 법

  • 합법적 호기심

    • 성공여부와 관계없이 타인의 시스템에 대한 해킹 시도는 불법

      -> 따라서 성공/실패 여부를 떠나 호기심으로 해킹하면 안됨

  • 법에 대한 무지와 애매함

    ex) 리버스 엔지니어링(코드를 역으로 분석)

    ​ -> 호환성 확보를 목적으로 하는 행위일 경우에만 합법

해커 공격 시나리오

ex) 금융시스템

  1. 웹해킹: 내부 시스템으로 가는 통로 개방 & 시스템 권한 획득
  2. 리버스 엔지니어링: 프로그램의 취약점을 찾기 위해 분석
  3. 시스템 해킹: 공격을 위한 기본
  4. 버그 헌팅: 공격 대상이 공개된 보안 취약점을 모두 패치한 경우, 새로운 취약점 찾음
  5. 디지털 포렌식: 외부 해커로부터 공격당한 시스템 분석 및 원인 찾기
  6. 취약점 마켓 & 해킹 마켓: 다양한 취약점이나 악성코드와 같이 해커가 생산해낸 콘텐츠를 사고파는 시장

효과적인 해킹 학습 방법론

ex) 버퍼 오버플로우(Buffer Overflow)

​ : 정상적인 프로그램을 오작동시켜서 시스템 특정 메모리 영역을 공격

  • 선행지식

    • 시스템 관련 지식

      -> 메모리값 조작

      • 메모리 구조, 프로그램 작동원리, 시스템 권한 체계 등

      -> 공격 환경

      • 리눅스 운영체제, 원도우 운영체제 등
    • 프로그래밍 언어

      -> 해킹 공격 코드를 만드는 작업이 필요

      • C, C++, 어셈블리, 파이썬 등이 빈번

=> 환경과 프로그래밍 언어에 대한 지식이 필요

워게임

: 취약한 가상의 환경을 구축 후, 실전처럼 공격할 수 있도록 만든 해킹 연습장

  • 위챌

    -> 자체적으로 제작된 해킹 문제, 유명 워게임 사이트 리스트..

​ 실습)

image ​ -> use view sourcecode to get it( 소스코드를 확인)

  • 소스코드안의 일부

image

Answer: html_sourcecode

가상환경

-> 해커가 직접 가상의 취약한 환경 구축후 해킹

  • 가상환경구축 지원 프로그램

    ex) Vmware, VirtualBox

    -> 본인이 사용하는 시스템에서 테스트시 시스템 망가질 우려가 있기 때문

허가된 시스템

->실전과 가장 유사한 해킹 실습

=> 반드시 안정성 측면을 충분히 고려하기!

이벤트

  • 락피킹(Lockpicking)

    -> 잠겨 있는 자물쇠나 현관문 등의 잠금 장치를 클립이나 각종 도구로 여는 경연

  • Wall of Sheep

    -> 안전하지 않은 무선 환경을 오가는 데이터를 스니핑(sniffing)해 얻어낸 각종 정보들을 모두가 볼 수 있는 커다란 스크린에 보여주는 것

    (경각심 일깨우기)

    • 스크린에 보여지는 것: 로그인 아이디, 비밀번호 등 사용자 인증 정보
  • 2drunk2hack

    -> 웹 방화벽으로 보호되고 있는 웹 애플리케이션의 취약점을 공격해 시스템 명령을 실행하여 최종 플래그(flag) 획득