1 |
1
분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래시(crash)를 발생시킨 명령어들 각각에 의해 영향을 받는 모든 명령어를 정적 분석하여 해당 크래시의 위험도를 분석하는 위험도 분석기를 포함하되, 상기 위험도 분석기는, 상기 크래시들을 발생시킨 명령어들 각각에 대하여 상기 명령어들의 도달지점들과 사용가능성(available)을 식별하고, 상기 도달지점들과 사용가능성에 기초하여 프로그램의 제어권을 옮길 수 있는 명령어를 식별하며, 상기 식별된 명령어가 저장(store) 계열 명령어이거나, 분기(branch) 계열 명령어인 경우 공격 가능성을 분석하고, 그 분석 결과에 기초하여 위험도의 단계로 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
2 |
2
제1항에 있어서,상기 도달지점들 식별은 아래 수학식을 이용하되, 미트 연산자(meet operator)로 합집합을 이용하여 In을 획득하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
3 |
3
제1항에 있어서,상기 사용가능성은 아래 수학식을 이용하여 식별하되, 미트 연산자(meet operator)로 교집합(∩)을 이용하여 In을 획득하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
4 |
4
제1항에 있어서,상기 위험도의 단계는, SE(Strongly Exploitable), E(Exploitable), PE(Probably Exploitable), NE(Not Exploitable)를 포함하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
5 |
5
제4항에 있어서,상기 위험도 분석기는, 상기 프로그램의 제어권을 옮길 수 있는 명령어가 분기(branch) 계열 명령어이고, 상기 분기 계열 명령어의 목적 주소(Target Address)가 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우, 해당 크래시를 공격 가능한 것으로 결정하되, 해당 명령어가 도달지점들에 기초하여 식별된 분기 계열 명령어인 경우, 위험도를 E(exploitable) 단계로 분류하고, 해당 명령어가 사용가능성에 기초하여 식별된 분기 계열 명령어인 경우 위험도를 SE(Strongly Exploitable) 단계로 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
6 |
6
제4항에 있어서,상기 위험도 분석기는, 상기 프로그램의 제어권을 옮길 수 있는 명령어가 저장 계열 명령어이고, 상기 저장 계열 명령어의 저장할 데이터를 가진 레지스터 또는 저장할 메모리 위치가 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우, 해당 크래시를 공격 가능한 것으로 결정하되, 해당 명령어가 도달지점들에 기초하여 식별된 저장 계열 명령어인 경우, 위험도를 E(exploitable) 또는 PE(probably exploitable)의 단계로 분류하고, 해당 명령어가 사용가능성에 기초하여 식별된 저장 계열 명령어인 경우 위험도를 SE(Strongly Exploitable) 단계로 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
7 |
7
제6항에 있어서,상기 위험도 분석기는,상기 명령어가 도달지점들에 기초하여 식별된 저장 계열 명령어이고, 상기 저장 계열 명령어의 저장할 데이터를 가진 레지스터만이 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우 또는 상기 저장 계열 명령어의 저장할 메모리 위치만이 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우, 위험도를 PE(probably exploitable)의 단계로 분류하고, 상기 저장 계열 명령어의 저장할 데이터를 가진 레지스터와 저장할 메모리 위치가 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우 위험도를 E(exploitable) 단계로 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
8 |
8
제6항에 있어서,상기 위험도 분석기는,상기 명령어가 사용가능성에 기초하여 식별된 저장 계열 명령어이고, 상기 저장 계열 명령어의 저장할 데이터를 가진 레지스터와 저장할 메모리 위치가 상기 크래시를 발생시킨 명령어로부터 영향을 받은 경우 위험도를 SE(Strongly Exploitable) 단계로 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
9 |
9
분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래시(crash)를 발생시킨 명령어들 각각에 의해 영향을 받는 모든 명령어를 정적 분석하여, 상기 크래시들을 발생시킨 명령어들 각각에 대하여 상기 명령어들의 도달지점들과 사용가능성(available)을 식별하는 정적 분석부;상기 식별된 도달지점들과 사용가능성에 기초하여 프로그램의 제어권을 옮길 수 있는 명령어를 식별하는 익스플로이터블 포인트 분석부; 및 상기 식별된 명령어가 저장(store) 계열 명령어이거나, 분기(branch) 계열 명령어인 경우 공격 가능성을 분석하고, 그 분석 결과에 기초하여 위험도의 단계로 분류하는 위험도 분석부를 포함하는 크래시 위험도 분석 장치
|
10 |
10
제9항에 있어서, 상기 크래시들을 발생시킨 명령어들의 도달지점들을 식별하는 리칭-데프(Reaching Definition) 분석모듈; 크래시들을 발생시킨 명령어들의 사용가능성(available)을 식별하는 사용 가능성-데프(Avaliable Definition) 분석모듈; 및 메모리를 레지스터처럼 보고 kill하는 메모리 사용가능성-데프 분석모듈을 포함하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
11 |
11
제10항에 있어서,상기 리칭-데프 분석모듈은, 아래 수학식을 이용하여 도달지점들을 식별하되, 미트 연산자(meet operator)로 합집합을 이용하여 In을 획득하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
12 |
12
제10항에 있어서,상기 사용 가능성-데프 분석모듈은,아래 수학식을 이용하여 상기 사용가능성을 식별하되, 미트 연산자(meet operator)로 교집합(∩)을 이용하여 In을 획득하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
13 |
13
제10항에 있어서, 상기 위험도 분석부는,SE(Strongly Exploitable), E(Exploitable), PE(Probably Exploitable), NE(Not Exploitable) 중 적어도 하나로 위험도의 단계를 분류하는 것을 특징으로 하는 크래시 위험도 분석 장치
|
14 |
14
크래시 위험도 분석 장치가 크래시 위험도를 분석하는 방법에 있어서, 분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래시들를 발생시킨 명령어들 각각에 대하여 도달지점들과 사용가능성(available)을 식별하는 단계;상기 도달지점들과 사용가능성에 기초하여 프로그램의 제어권을 옮길 수 있는 명령어를 식별하는 단계;상기 식별된 명령어가 저장(store) 계열 명령어이거나, 분기(branch) 계열 명령어인 경우 공격 가능성을 분석하고, 그 분석 결과에 기초하여 위험도의 단계로 분류하는 단계를 포함하는 크래시 위험도 분석 방법
|