1 |
1
바이너리 프로그램을 동적 분석하여 콜 트레이스(call trace)를 획득하는 동적 분석부; 상기 콜 트레이스를 기반으로 상기 바이너리 프로그램의 테인트(taint)에 대한 정적 분석을 수행하여 의존 그래프를 생성하는 정적 분석부; 및상기 의존 그래프를 기반으로 상기 바이너리 프로그램을 동적 역방향 분석을 수행하여, 상기 바이너리 프로그램의 입력과 관련 여부에 대한 결과를 출력하는 동적 역방향 분석부를 포함하는 프로그램 동적 분석 장치
|
2 |
2
제1항에 있어서,상기 정적 분석부는, 상기 바이너리 프로그램의 실행을 통한 테인트 분석을 수행하여, 상기 바이너리 프로그램에 대하여 크래시(crash)를 발생시킨 명령어들 각각에 의해 영향을 받는 모든 명령어를 정적 분석하여 해당 크래시의 위험도를 분석하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
3 |
3
제2항에 있어서,상기 정적 분석부는,상기 다수의 크래시들을 발생시킨 명령어들 각각에 대하여 상기 명령어들의 도달지점들을 식별하고, 상기 도달지점들 중 해당 명령어가 실제로 사용되는 지점을 찾아낸 후, 그 결과를 의존 그래프로 생성하며, 상기 의존 그래프로부터 프로그램의 제어권을 옮길 수 있는 명령어를 식별한 후, 상기 크래시를 발생시킨 명령어의 공격 가능성을 분석하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
4 |
4
제1항에 있어서, 상기 정적 분석부는, 오염된 데이터가 쓰인 지점의 주소를 입력하고 그 지점이 있는 함수부터 함수 내 분석(Intraprocedural analysis)을 수행하는 함수내 분석모듈; 및현재 분석 지점의 함수 내부에 시스템콜이 있는지에 대해 확인하여, 프로그램의 입력과 관련이 있는지 확인하는 함수 단위 분석(Interprocedural analysis)을 수행하는 함수 단위 분석모듈을 포함하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
5 |
5
제4항에 있어서,상기 함수내 분석모듈은,크래시가 일어난 지점의 명령어를 오염된 명령어의 집합에 넣은 후 분석을 시작하고, 상기 명령어에 영향을 준(use) 명령어를 찾는 과정을 반복하는 역테인트 분석을 수행하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
6 |
6
제4항에 있어서,상기 함수간 분석모듈은,현재 분석 지점의 함수 내부에 시스템콜이 있는지에 대해 확인하여, 프로그램의 입력과 관련이 있는지 확인하고, 상기 확인결과 관련이 있는 경우 상기 콜 트레이스를 바탕으로 해당 함수를 호출한 함수(caller function)을 모두 찾고, 상기 Caller 함수에서 callee함수의 호출 지점을 찾은 후, callee 함수의 입력을 넣어주는 지점을 모두 찾아 그 지점에 대해 역테인트 분석을 수행하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
7 |
7
제1항에 있어서,상기 동적 역방향 분석부는, 레지스터 값 및 메모리 정보에 기초하여, 상기 의존 그래프를 가지치기하고, 상기 가지치기된 의존 그래프를 동적 역방향 분석을 수행하는 것을 특징으로 하는 프로그램 동적 분석 장치
|
8 |
8
바이너리 프로그램을 동적 분석하여 콜 트레이스(call trace)를 획득하는 단계; 상기 콜 트레이스를 기반으로 상기 바이너리 프로그램의 테인트(taint)에 대한 정적 분석을 수행하여 의존 그래프를 생성하는 단계; 및상기 의존 그래프를 기반으로 상기 바이너리 프로그램을 동적 역방향 분석을 수행하여, 상기 바이너리 프로그램의 입력과 관련 여부에 대한 결과를 출력하는 단계를 포함하는 프로그램 동적 분석 방법
|
9 |
9
제8항에 있어서, 상기 의존 그래프를 생성하는 단계는, 오염된 데이터가 쓰인 지점의 주소를 입력하고 그 지점이 있는 함수부터 함수 내 분석(Intraprocedural analysis)을 수행하는 단계; 및현재 분석 지점의 함수 내부에 시스템콜이 있는지에 대해 확인하여, 프로그램의 입력과 관련이 있는지 확인하는 함수 단위 분석(Interprocedural analysis)을 수행하는 단계를 포함하는 것을 특징으로 하는 프로그램 동적 분석 방법
|