1 |
1
취약점 탐색 시스템에서 대상 프로그램의 취약점을 탐색하는 방법에 있어서,테스트 케이스에 대하여 상기 대상 프로그램을 바이너리(binary) 실행하여, 상기 테스트 케이스의 실행 경로 정보를 포함하는 바이너리 정보를 생성하고, 크래시(crash) 발생에 응답하여 크래시 정보를 획득하는 취약점 탐색 단계;상기 바이너리 정보를 기초로 상기 대상 프로그램의 제어 흐름 그래프(control flow graph)를 복구하고, 상기 제어 흐름 그래프를 기초로 상기 실행 경로에 대한 복잡도를 산출하며, 상기 복잡도가 임계값 미만이라는 판정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행하기로 결정하는 바이너리 분석 단계; 및상기 경로 탐색의 수행 결정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행함으로써, 신규 테스트 케이스를 생성하는 경로 탐색 단계를 포함하되,상기 크래시 정보는 상기 크래시를 유발한 제1 테스트 케이스 및 상기 제1 테스트 케이스의 제1 실행 경로를 포함하고,상기 경로 탐색 단계는,상기 제1 실행 경로에 대한 경로 탐색을 수행함으로써, 제2 테스트 케이스를 생성하는 단계를 포함하는 것을 특징으로 하는,취약점 탐색 방법
|
2 |
2
제1 항에 있어서,상기 취약점 탐색 단계는,퍼징(fuzzing) 기법을 적용하여 상기 테스트 케이스를 생성하는 단계를 포함하는 것을 특징으로 하는,취약점 탐색 방법
|
3 |
3
제1 항에 있어서,상기 바이너리 분석 단계는,상기 복잡도가 제1 임계값 미만이고, 상기 제어 흐름 그래프에 포함된 분기점(Branch)의 개수가 제2 임계값 미만이라는 판정에 응답하여, 상기 경로 탐색을 수행하기로 결정하는 단계를 포함하는 것을 특징으로 하는,취약점 탐색 방법
|
4 |
4
제1 항에 있어서,상기 바이너리 분석 단계는,상기 실행 경로에 대한 위험도를 산출하는 단계를 더 포함하되,상기 위험도는,상기 실행 경로 상에서 보안이 취약한 함수가 많이 호출될수록 높은 값으로 산출되는 것을 특징으로 하는,취약점 탐색 방법
|
5 |
5
제4 항에 있어서,상기 위험도를 산출하는 단계는,상기 산출된 복잡도를 더 이용하여 상기 위험도를 산출하는 단계를 포함하되,상기 위험도는,상기 산출된 복잡도가 높을수록 높은 값으로 산출되는 것을 특징으로 하는,취약점 탐색 방법
|
6 |
6
제4 항에 있어서,상기 실행 경로는 복수개이고,상기 신규 테스트 케이스를 이용하여 상기 복수개의 실행 경로에 대하여 상기 취약점 탐색 단계를 다시 수행하는 단계를 더 포함하되,상기 취약점 탐색 단계를 수행하는 단계는,상기 산출된 위험도에 기초하여 상기 복수개의 실행 경로의 우선순위를 결정하는 단계; 및상기 결정된 우선순위에 따라 상기 취약점 탐색 단계를 다시 수행하는 단계를 포함하는 것을 특징으로 하는,취약점 탐색 방법
|
7 |
7
제4 항에 있어서,상기 위험도를 산출하는 단계는,하기 수학식에 기초하여 상기 위험도를 산출하는 단계를 포함하되,Exp는 경로의 위험도, n은 취약한 함수를 호출한 카운트, vi는 상기 카운트와 상기 취약한 함수가 호출하는 시스템 호출(system call)의 잠재적 위험도의 곱인 것을 특징으로 하는,취약점 탐색 방법
|
8 |
8
제1 항에 있어서,상기 바이너리 분석 단계는,하기 수학식에 기초하여 상기 복잡도를 산출하는 단계를 포함하되,H
|
9 |
9
제1 항에 있어서,상기 경로 탐색 단계는,기호 실행(Symbolic Execution)을 수행하여 상기 실행 경로에 대한 경로식을 생성하는 단계;상기 생성된 경로식에 기초하여 추상 구문 트리(Abstract Syntax Tree)를 생성하는 단계; 및SMT 문제 풀이기를 통해 상기 추상 구문 트리에 대한 제약 조건 풀이를 수행함으로써 상기 신규 테스트 케이스를 생성하는 단계를 포함하는 것을 특징으로 하는,취약점 탐색 방법
|
10 |
10
삭제
|
11 |
11
테스트 케이스에 대하여 대상 프로그램을 바이너리(binary) 실행하여, 상기 테스트 케이스의 실행 경로 정보를 포함하는 바이너리 정보를 생성하고, 크래시(crash) 발생에 응답하여 크래시 정보를 획득하는 취약점 탐색 모듈;상기 바이너리 정보를 기초로 상기 대상 프로그램의 제어 흐름 그래프(control flow graph)를 복구하고, 상기 제어 흐름 그래프를 기초로 상기 실행 경로에 대한 복잡도를 산출하며, 상기 복잡도가 임계값 미만이라는 판정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행하기로 결정하는 바이너리 분석 모듈; 및상기 경로 탐색의 수행 결정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행함으로써, 신규 테스트 케이스를 생성하는 경로 탐색 모듈을 포함하되,상기 크래시 정보는 상기 크래시를 유발한 제1 테스트 케이스 및 상기 제1 테스트 케이스의 제1 실행 경로를 포함하고,상기 경로 탐색 모듈은,상기 제1 실행 경로에 대한 경로 탐색을 수행함으로써, 제2 테스트 케이스를 생성하는 것을 특징으로 하는,취약점 탐색 시스템
|
12 |
12
제11 항에 있어서,상기 취약점 탐색 모듈은,퍼징(fuzzing) 기법을 적용하여 상기 테스트 케이스를 생성하는 것을 특징으로 하는,취약점 탐색 시스템
|
13 |
13
제11 항에 있어서,상기 바이너리 분석 모듈은,상기 복잡도가 제1 임계값 미만이고, 상기 제어 흐름 그래프에 포함된 분기점(Branch)의 개수가 제2 임계값 미만이라는 판정에 응답하여, 상기 경로 탐색을 수행하기로 결정하는 것을 특징으로 하는,취약점 탐색 시스템
|
14 |
14
제11 항에 있어서,상기 바이너리 분석 모듈은,상기 실행 경로에 대한 위험도를 더 산출하되,상기 위험도는,상기 실행 경로 상에서 보안이 취약한 함수가 많이 호출될수록 높은 값으로 산출되는 것을 특징으로 하는,취약점 탐색 시스템
|
15 |
15
제14 항에 있어서,상기 바이너리 분석 모듈은,상기 산출된 복잡도를 더 이용하여 상기 위험도를 산출하되,상기 위험도는,상기 산출된 복잡도가 높을수록 높은 값으로 산출되는 것을 특징으로 하는,취약점 탐색 시스템
|
16 |
16
제14 항에 있어서,상기 실행 경로는 복수개이고,상기 바이너리 분석 모듈은,상기 산출된 위험도에 기초하여 상기 복수개의 실행 경로의 우선순위를 결정하고,상기 취약점 탐색 모듈은,상기 신규 테스트 케이스를 이용하여 상기 복수개의 실행 경로에 대한 크래시 발생 여부를 탐색하되, 상기 결정된 우선순위에 따라 상기 크래시 발생 여부를 탐색하는 것을 특징으로 하는,취약점 탐색 시스템
|
17 |
17
제14 항에 있어서,상기 바이너리 분석 모듈은,하기 수학식에 기초하여 상기 위험도를 산출하되,Exp는 경로의 위험도, n은 취약한 함수를 호출한 카운트, vi는 상기 카운트와 상기 취약한 함수가 호출하는 시스템 호출(system call)의 잠재적 위험도의 곱인 것을 특징으로 하는,취약점 탐색 시스템
|
18 |
18
제11 항에 있어서,상기 바이너리 분석 모듈은,하기 수학식에 기초하여 상기 복잡도를 산출하되,H
|
19 |
19
제11 항에 있어서,상기 경로 탐색 모듈은,기호 실행(Symbolic Execution)을 수행하여 상기 실행 경로에 대한 경로식을 생성하고, 상기 생성된 경로식에 기초하여 추상 구문 트리(Abstract Syntax Tree)를 생성하며, SMT 문제 풀이기를 통해 상기 추상 구문 트리에 대한 제약 조건 풀이를 수행함으로써 상기 신규 테스트 케이스를 생성하는 것을 특징으로 하는,취약점 탐색 시스템
|
20 |
20
삭제
|
21 |
21
하드웨어와 결합하여,테스트 케이스에 대하여 대상 프로그램을 바이너리(binary) 실행하여, 상기 테스트 케이스의 실행 경로 정보를 포함하는 바이너리 정보를 생성하고, 크래시(crash) 발생에 응답하여 크래시 정보를 획득하는 취약점 탐색 단계;상기 바이너리 정보를 기초로 상기 대상 프로그램의 제어 흐름 그래프(control flow graph)를 복구하고, 상기 제어 흐름 그래프를 기초로 상기 실행 경로에 대한 복잡도를 산출하며, 상기 복잡도가 임계값 미만이라는 판정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행하기로 결정하는 바이너리 분석 단계; 및상기 경로 탐색의 수행 결정에 응답하여, 상기 실행 경로에 대한 경로 탐색을 수행함으로써, 신규 테스트 케이스를 생성하는 경로 탐색 단계를 실행시키되,상기 크래시 정보는 상기 크래시를 유발한 제1 테스트 케이스 및 상기 제1 테스트 케이스의 제1 실행 경로를 포함하고,상기 경로 탐색 단계는,상기 제1 실행 경로에 대한 경로 탐색을 수행함으로써, 제2 테스트 케이스를 생성하는 단계를 포함하는, 컴퓨터로 판독가능한 기록 매체에 저장된,컴퓨터 프로그램
|