카테고리 없음

Whitebox Fuzzing(Analyzing)

진모씨 2013. 8. 6. 10:15

소프트웨어의 취약점, 또는 구조를 분석하기 위한 방법은 현재까지 크게 두 가지로 나뉘는데, 아래와 같이 나뉜다.

Whitebox - 소스가 있는 경우, 정적 분석임

Blackbox - 소스가 없는 경우, 동적 분석임


Whitebox 분석은 정적 분석으로,

"프로그램을 실행하지 않고 분석"하는 분석을 말한다.


Whitebox 분석의 자동화를 위해서 자동화 도구들은

1. 프로그램의 언어를 파악

2. 언어를 추상화

3. 추상화된 자료를 정리한 '도표' 작성

4. '도표'를 통한 프로그램 경로 분석

5. 보안 취약점, 또는 프로그램 경로의 고장남 발견(malfunction)


을 보통 한다.


프로그램 경로 분석, 그리고 도표에 대해서..



1. 프로그램 경로 분석

사용자의 입력, 또는 존재하는 파일에 대해 프로그램의 경로가 조작된다면, 자칫하면 어떤 파일을 프로그램에 넘기면 그 프로그램에서 고장이 난다던지, 아니면 그 시스템의 권한이 획득될 수 있는 경우가 만들어진다.


그에 따른 경로를 일일이 분석하고, '실제로 일어날 수 있는 경로'를 추려낸다.


2. 도표

도표의 갈래길은 '반복문', '조건문' 등에서 발생하게 된다. (더 많이 있을 것 같은데, 추가하겠다, 사실 공부중이라..)


가령 IDA라는 툴에서는 아래와 같은 도표를 내보낸다.

(출처: https://www.hex-rays.com/products/ida/pix/c166_graph.gif)


이번 분량 끝! 다음 시간에 만나요!