1 |
1
소프트웨어 바이너리 파일을 역어셈블(disassemble)하여 상기 소프트웨어 바이너리 파일에 대한 어셈블리어 코드를 생성하는 역어셈블러;상기 어셈블리어 코드에 대한 제어 흐름 그래프(control flow graph)를 생성하고, 상기 어셈블리어 코드가 사전 정의된 의심 함수 리스트에 포함된 의심 함수들 중 적어도 하나를 포함하고 있는 경우, 상기 제어 흐름 그래프에서 상기 의심 함수를 호출한 노드 및 상기 노드의 부모 노드들의 주소를 의심 노드 집합으로 수집하는 정적 분석부; 및상기 의심 노드 집합에 포함된 노드를 기반으로 기호 실행을 수행함으로써 상기 소프트웨어 바이너리 파일의 이상을 유발하기 위한 입력값을 탐색하는 동적 분석부를 포함하고,상기 동적 분석부는,임의의 입력값을 생성하고, 이를 이용하여 상기 소프트웨어 바이너리 파일을 실행함으로써 상기 소프트웨어 바이너리 파일의 이상 발생 여부를 탐지하는 퍼저 모듈;상기 제어 흐름 그래프에 포함된 노드들 중, 상기 입력값에 의하여 실행되는 노드들의 주소를 수집하는 추적 모듈; 및상기 추적 모듈에서 수집된 주소를 이용하여 상기 제어 흐름 그래프의 진입점부터 기호 실행을 수행하는 기호 실행 모듈을 포함하며,상기 기호 실행 모듈은, 상기 기호 실행 도중 분기가 발견되는 경우 상기 추적 모듈에서 수집된 경로와 반대되는 경로에 해당하는 노드가 상기 의심 노드 집합에 포함되는지 여부를 판단하고, 판단 결과 포함되는 경우 해당 노드로 진입하기 위한 입력값을 상기 퍼저 모듈로 제공하는 것을 특징으로 하는, 소프트웨어 취약점 분석 장치
|
2 |
2
삭제
|
3 |
3
삭제
|
4 |
4
청구항 1에 있어서,상기 퍼저 모듈은, 상기 기호 실행 모듈로부터 획득한 상기 입력값을 이용하여 상기 소프트웨어 바이너리 파일을 실행함으로써 상기 소프트웨어 바이너리 파일의 이상 발생 여부를 탐지하는, 소프트웨어 취약점 분석 장치
|
5 |
5
청구항 1에 있어서,상기 기호 실행 모듈은, 상기 판단 결과 해당 노드가 상기 의심 노드 집합에 포함되지 않는 경우 해당 노드를 기호 실행 대상에서 제외하는, 소프트웨어 취약점 분석 장치
|
6 |
6
청구항 1에 있어서,상기 기호 실행 모듈은, 상기 기호 실행 도중 상기 의심 함수를 호출한 노드로 진입하기 위한 입력값이 생성되는 경우, 상기 기호 실행을 종료하고 생성된 입력값을 상기 퍼저 모듈로 제공하는, 소프트웨어 취약점 분석 장치
|
7 |
7
소프트웨어 바이너리 파일을 역어셈블(disassemble)하여 상기 소프트웨어 바이너리 파일에 대한 어셈블리어 코드를 생성하는 단계;상기 어셈블리어 코드에 대한 제어 흐름 그래프(control flow graph)를 생성하고, 상기 어셈블리어 코드가 사전 정의된 의심 함수 리스트에 포함된 의심 함수들 중 적어도 하나를 포함하고 있는 경우, 상기 제어 흐름 그래프에서 상기 의심 함수를 호출한 노드 및 상기 노드의 부모 노드들의 주소를 의심 노드 집합으로 수집하는 정적 분석 단계; 및상기 의심 노드 집합에 포함된 노드를 기반으로 기호 실행을 수행함으로써 상기 소프트웨어 바이너리 파일의 이상을 유발하기 위한 입력값을 탐색하는 동적 분석 단계를 포함하고,상기 동적 분석 단계는,임의의 입력값을 생성하고, 이를 이용하여 상기 소프트웨어 바이너리 파일을 실행함으로써 상기 소프트웨어 바이너리 파일의 이상 발생 여부를 탐지하는 단계;추적 모듈에서, 상기 제어 흐름 그래프에 포함된 노드들 중, 상기 입력값에 의하여 실행되는 노드들의 주소를 수집하는 단계; 및상기 추적 모듈에서 수집된 주소를 이용하여 상기 제어 흐름 그래프의 진입점부터 기호 실행을 수행하는 단계를 포함하며,상기 기호 실행 단계는, 상기 기호 실행 도중 분기가 발견되는 경우 상기 추적 모듈에서 수집된 경로와 반대되는 경로에 해당하는 노드가 상기 의심 노드 집합에 포함되는지 여부를 판단하고, 판단 결과 포함되는 경우 해당 노드로 진입하기 위한 입력값을 생성하는, 소프트웨어 취약점 분석 방법
|
8 |
8
삭제
|
9 |
9
삭제
|
10 |
10
청구항 7에 있어서,생성된 상기 입력값을 이용하여 상기 소프트웨어 바이너리 파일을 실행함으로써 상기 소프트웨어 바이너리 파일의 이상 발생 여부를 탐지하는 단계를 더 포함하는, 소프트웨어 취약점 분석 방법
|
11 |
11
청구항 7에 있어서,상기 기호 실행 단계는, 상기 판단 결과 해당 노드가 상기 의심 노드 집합에 포함되지 않는 경우 해당 노드를 기호 실행 대상에서 제외하는, 소프트웨어 취약점 분석 방법
|
12 |
12
청구항 7에 있어서,상기 기호 실행 단계는, 상기 기호 실행 도중 상기 의심 함수를 호출한 노드로 진입하기 위한 입력값이 생성되는 경우, 상기 기호 실행을 종료하는, 소프트웨어 취약점 분석 방법
|