1 |
1
컴퓨팅 장치에서 수행되는 방법으로서,대상 바이너리로부터 테인트 영역을 식별하는 단계; 및상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
2 |
2
제1항에 있어서,상기 테인트 영역을 식별하는 단계는,상기 대상 바이너리의 실행 중에, 상기 대상 바이너리의 제1 지점 및 제2 지점 중 어느 하나의 지점으로 제어 흐름을 점프하는 조건부 분기문을 식별하는 단계; 및상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점 및 상기 제2 지점으로 순차적으로 점프하여 각 지점으로부터 상기 대상 바이너리의 실행을 계속하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
3 |
3
제2항에 있어서,상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점 및 상기 제2 지점으로 순차적으로 점프하여 각 지점으로부터 상기 대상 바이너리의 실행을 계속하는 단계는,상기 조건부 분기문의 실행에 따라 상기 제1 지점으로 상기 제어 흐름을 점프하기 전에, 상기 대상 바이너리의 실행 상태에 관한 스냅샷을 저장하는 단계;상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점으로 점프하는 단계;상기 저장된 스냅샷을 복원하는 단계; 및상기 대상 바이너리의 상기 제어 흐름을 상기 제2 지점으로 점프하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
4 |
4
제3항에 있어서,상기 대상 바이너리의 실행 상태에 관한 스냅샷을 저장하는 단계는, 프로세서의 레지스터 상태 및 메모리 상태를 저장하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
5 |
5
제3항에 있어서,상기 저장된 스냅샷을 복원하는 단계는,상기 제어 흐름이 상기 제1 지점으로 점프된 이후 상기 대상 바이너리의 실행 종료 조건이 충족되면, 상기 저장된 스냅샷을 복원하는 단계를 포함하고,상기 대상 바이너리의 실행 종료 조건은, 상기 제어 흐름이 상기 대상 바이너리의 main 함수의 종료점에 도달, 및 상기 대상 바이너리의 실행 중에 상기 제어 흐름이 점프된 회수가 임계치에 도달 중에 적어도 하나를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
6 |
6
제3항에 있어서,상기 저장된 스냅샷을 복원하는 단계는,상기 스냅샷 저장 당시의 프로세서의 레지스터 상태 및 메모리 상태를 복원하는 단계; 및상기 프로세서의 점프 플래그 레지스터 값을 반전하는 단계를 포함하는바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
7 |
7
제1항에 있어서,상기 비교문은, 테인트된 피연산자와 비교 대상 피연산자를 서로 비교하는 인스트럭션이고,상기 비교 결과에 따라 상기 대상 바이너리의 제어 흐름이 분기되는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
8 |
8
제7항에 있어서,상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 단계는,상기 비교 대상 피연산자가 상수일 경우, 상기 상수를 저장하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
9 |
9
제7항에 있어서,상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 단계는,상기 비교 대상 피연산자가 레지스터일 경우, 상기 레지스터의 값을 판독하여 저장하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
10 |
10
제7항에 있어서,상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 단계는,상기 비교 대상 피연산자가 메모리에 저장된 값일 경우, 상기 메모리에 저장된 값을 판독하여 저장하는 단계를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
11 |
11
제1항에 있어서,상기 테인트 영역을 식별하는 단계 및 상기 비교문으로부터 비교 대상 값을 식별하는 단계는 동시에 병렬적으로 수행되는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
12 |
12
제1항에 있어서,상기 식별된 비교 대상 값에 기초하여, 상기 대상 바이너리에 대한 퍼징을 수행하는 단계를 더 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 방법
|
13 |
13
바이너리 취약점 탐색을 위한 입력 값 생성 장치로서,대상 바이너리로부터 테인트 영역을 식별하는 테인트 영역 분석부; 및상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 비교문 분석부를 포함하는,바이너리 취약점 탐색을 위한 입력 값 생성 장치
|
14 |
14
제13항에 있어서,상기 테인트 영역 분석부는 제어 흐름 조정부를 포함하고,상기 제어 흐름 조정부는,상기 대상 바이너리의 실행 중에, 상기 대상 바이너리의 제1 지점 및 제2 지점 중 어느 하나의 지점으로 제어 흐름을 점프하는 조건부 분기문을 식별하고, 상기 대상 바이너리의 상기 제어 흐름이 상기 제1 지점 및 상기 제2 지점으로 순차적으로 점프하도록 상기 제어 흐름을 조정하는,바이너리 취약점 탐색을 위한 입력 값 생성 장치
|
15 |
15
제14항에 있어서,상기 제어 흐름 조정부는 스냅샷 관리부를 포함하고,상기 스냅샷 관리부는,상기 대상 바이너리의 상기 제어 흐름이 상기 조건부 분기문에 의해 상기 제1 지점으로 점프하기 이전에 상기 대상 바이너리의 실행 상태에 관한 스냅샷을 저장하고,상기 대상 바이너리의 상기 제어 흐름이 상기 제1 지점으로 점프된 이후 상기 대상 바이너리의 실행 종료 조건이 충족되면 상기 저장된 스냅샷을 복원하는,바이너리 취약점 탐색을 위한 입력 값 생성 장치
|
16 |
16
제13항에 있어서,상기 비교문은, 테인트된 피연산자와 비교 대상 피연산자를 서로 비교하는 인스트럭션이고,상기 비교문 분석부는,상기 비교 대상 피연산자가 상수일 경우, 상기 상수를 상기 바이너리 취약점 탐색을 위한 입력 값으로서 저장하고,상기 비교 대상 피연산자가 레지스터일 경우, 상기 레지스터의 값을 판독하여 상기 바이너리 취약점 탐색을 위한 입력 값으로서 저장하며,상기 비교 대상 피연산자가 메모리에 저장된 값일 경우, 상기 메모리에 저장된 값을 판독하여 상기 바이너리 취약점 탐색을 위한 입력 값으로서 저장하는,바이너리 취약점 탐색을 위한 입력 값 생성 장치
|
17 |
17
컴퓨팅 장치에서 수행되는 방법으로서,대상 바이너리를 실행하여 상기 대상 바이너리에 대한 테인트 분석을 개시하는 단계;상기 대상 바이너리의 실행 중에 상기 대상 바이너리의 제1 지점 및 제2 지점 중 어느 하나의 지점으로 제어 흐름을 점프하는 조건부 분기문을 식별하는 단계; 및상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점 및 상기 제2 지점으로 순차적으로 점프하여 각 지점으로부터 테인트 분석을 계속하는 단계를 포함하는,바이너리의 테인트 분석 방법
|
18 |
18
제17항에 있어서,상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점 및 상기 제2 지점으로 순차적으로 점프하여 각 지점으로부터 테인트 분석을 계속하는 단계는,상기 조건부 분기문의 실행에 따라 상기 제1 지점으로 상기 제어 흐름을 점프하기 전에, 상기 대상 바이너리의 실행 상태에 관한 스냅샷을 저장하는 단계;상기 대상 바이너리의 상기 제어 흐름을 상기 제1 지점으로 점프하는 단계;상기 저장된 스냅샷을 복원하는 단계; 및상기 대상 바이너리의 상기 제어 흐름을 상기 제2 지점으로 점프하는 단계를 포함하는,바이너리의 테인트 분석 방법
|
19 |
19
제18항에 있어서,상기 저장된 스냅샷을 복원하는 단계는,상기 스냅샷 저장 당시의 프로세서의 레지스터 상태 및 메모리 상태를 복원하는 단계; 및상기 프로세서의 점프 플래그 레지스터 값을 반전하는 단계를 포함하는바이너리의 테인트 분석 방법
|
20 |
20
명령어를 포함하는 컴퓨터 판독 가능한 비일시적 저장 매체로서,상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,대상 바이너리로부터 테인트 영역을 식별하는 단계; 및상기 테인트 영역 내의 비교문으로부터 비교 대상 값을 식별하는 단계를 포함하는 동작들을 수행하도록 하는, 컴퓨터 판독 가능한 비일시적 저장 매체
|