본문 바로가기

System/Windows

System/Hacking/버그헌팅/기본 방법론

반응형




PoC(Proof of Concept)
- 발견한 취약점을 증명
  • Exploit 코드를 작성

# 블랙박스와 화이트박스
블랙박스 테스트
  • 소스코드 없이 점검하는 것
  • 점검방법
    • 리버싱
    • 퍼징
  • 장점
    • 빠른 점검 가능
    • 쉬운 점검 환경 구성
    • 예상하지 못한 취약점 발견
  • 단점
    • 커버리지 문제 발생
    • 원인 분석 시간 증가
    • 점검 난이도 증가
- 화이트박스 테스트
  • 프로그램의 소스코드를 리뷰할 수 있는 상황에서 점검
  • 점검방법
    • 소스코드 리뷰
    • 소스코드 자동 점검툴
  • 장점
    • 거의 완전한 커버리지 가능
    • 빠른 원인 분석 가능
  • 단점
    • 개발 환경 구성 필요
    • 점검 복잡도 증가
    • 소스코드 확보 어려움

> 퍼징
- 자동화가 가능하여 선호하는 편이지만 발견하지 못하는 유형의 취약점도 존재

# 버그 식별 및 평가
- 버그이 오탐 여부와 공격 가능성 판단.
- 자동 점검툴
  • 소스코드 리뷰 직접 찾음 > 해당 취약점으로 공격이 가능한지 판단하는 절차 필요

소스코드 분석
- 화이트박스 테스트 기법 중 하나.

# 소스코드 리뷰
- 소스코드를 직접 라인 단위로 리뷰하는것
  • 가장 기본적인 분석 기법
  • 취약점이나 기능을 정해 놓고 리뷰
  • 주요타겟은 사용자에게서 입력을 받아서 처리하는 부분
    • 파일로 입력받은 값이 저장된 변수를 따라서 분석 하거나 취약한 함수를 찾은디 거꾸로 입력받는 루틴을 찾음
  • 리버싱에 비해 더 직관적으로 이해 가능하며 발견된 버그에 대한 검증 절차도 더 빠르게 수행 가능함
- 방식
  •  Top Down방식
    • 프로그램의 시작점에서 시작하여 프로그램의 모든 흐름과 분기분을 따라서 분석하는 방식
    • 전체적인 구조를 파악하고 이해
      • 취약함수 등에 의한 취약점 외에도 로직상 취약점, 알고리즘 상의 취약점 등을 발견 가능.
    • 코드 커버리지 측면에선 바람직
    • 프로그램 분석에 많은 시간이 소요
  • Bottom Up
    • 내부의 한 루틴에서 시작하여 해당 변수/함수를 호출하는 부분을 찾아 올라가는 방식
    • 취약함수를 기준, 고정된 크기의 버퍼를 기준으로 시작
    • 로직상의 취약점을 놓치기 쉬움
-  doxygen, graphviz

  • 함수와 클래스 간의 호출 그래프를 자동으로 생성해줌


반응형

'System > Windows' 카테고리의 다른 글

System/Hacking/Fuzzing  (0) 2017.11.30
System/DllInject/레퍼런스 및 오류  (0) 2017.11.30
System/Hacking/ASLR/ASLR 우회  (0) 2017.11.30
System/Hacking/DEP와 DEP 우회  (0) 2017.11.30
System/Hacking/SEH overwrite Exploit  (0) 2017.11.30