1 |
1
컴퓨팅 장치에서 바이너리 취약점을 분석하는 방법에 있어서,분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대해 크래쉬(crash)를 유발한 실행 흐름 경로(execution flow path) 상에서 테인트된 피연산자를 검출하는 단계;상기 검출된 피연산자의 값을 추적하여, 상기 크래쉬 발생에 의해 강제 종료될 때의 피연산자 값인 크래쉬 유발 값이 변화하는지 여부를 판정하는 단계;상기 추적 과정에서 상기 크래쉬 유발 값이 변화한다는 판정에 응답하여, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 변화 지점의 위치를 상기 바이너리의 취약점 원인 위치로 결정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
2 |
2
제1 항에 있어서,상기 테인트된 피연산자를 검출하는 단계는,상기 크래쉬를 유발하는 실행 파라미터를 이용하여 상기 테인트 분석을 위한 테인트 소스를 세팅하는 단계; 및상기 세팅된 테인트 소스로부터 테인트된 피연산자를 검출하는 단계를 포함하되,상기 테인트 소스의 세팅 위치는, 상기 바이너리의 디버그 심볼(debug symbol)에 "main" 심볼이 존재하는지 여부에 따라 달라지는 것인,바이너리 취약점 분석 방법
|
3 |
3
제2 항에 있어서,상기 테인트 소스를 세팅하는 단계는,상기 디버그 심볼에 "main" 심볼이 존재하는 경우, "main" 심볼에 대응되는 인스트럭션(instruction)들 중에 상기 실행 파라미터를 로드하는 인스트럭션의 위치를 상기 테인트 소스로 세팅하는 단계를 포함하는,바이너리 취약점 분석 방법
|
4 |
4
제2 항에 있어서,상기 테인트 소스를 세팅하는 단계는,상기 디버그 심볼에 "main" 심볼이 존재하지 않는 경우, 상기 바이너리의 실행 과정에서, 최초로 외부 값을 로드하는 인스트럭션의 위치를 상기 테인트 소스로 세팅하는 단계를 포함하는,바이너리 취약점 분석 방법
|
5 |
5
제1 항에 있어서,상기 크래쉬 유발 값에 변화가 존재하는지 여부를 판정하는 단계는,상기 강제 종료 지점부터 역순으로 상기 검출된 피연산자의 값을 추적하는 단계를 포함하는,바이너리 취약점 분석 방법
|
6 |
6
제1 항에 있어서,상기 검출된 피연산자를 포함하는 인스트럭션 중에서 기 저장된 의심 패턴과 매칭되는 인스트럭션을 의심 요소로 결정하는 단계를 더 포함하는,바이너리 취약점 분석 방법
|
7 |
7
제6 항에 있어서,상기 결정된 의심 요소와 관련된 취약점에 대응되는 기호 제약 조건을 조회하는 단계;상기 실행 흐름 경로에 대하여 기호 실행(symbolic execution)을 수행하는 단계; 및상기 기호 실행의 결과로, 상기 기호 제약 조건을 만족하는 인스트럭션 발견 시, 상기 발견된 인스트럭션과 상기 의심 요소의 비교 결과에 기반하여 상기 바이너리에 취약점이 존재하는지 여부를 판정하는 단계를 더 포함하는,바이너리 취약점 분석 방법
|
8 |
8
제7 항에 있어서,상기 발견된 인스트럭션의 위치가 상기 의심 요소의 위치와 일치하는 경우, 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
9 |
9
제7 항에 있어서,상기 발견된 인스트럭션이 상기 의심 요소로 결정된 인스트럭션이 실행된 후에 실행된 것이라면, 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
10 |
10
제6 항에 있어서,상기 추적 과정에서 상기 크래쉬 유발 값이 변화하지 않는다는 판정에 응답하여, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 의심 요소의 위치를 상기 취약점 원인 위치로 결정하는 단계를 더 포함하는,바이너리 취약점 분석 방법
|
11 |
11
제1 항에 있어서,상기 테인트된 피연산자를 검출하는 단계는,테인트된 메모리 주소 및 테인트된 레지스터를 더 검출하는 단계를 포함하는,바이너리 취약점 분석 방법
|
12 |
12
하나 이상의 인스트럭션들(instructions) 및 분석 대상인 바이너리(binary)를 저장하는 메모리; 및상기 하나 이상의 인스트럭션들을 실행함으로써,상기 바이너리의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대해 크래쉬(crash)를 유발한 실행 흐름 경로(execution flow path) 상에서 테인트된 피연산자를 검출하고, 상기 검출된 피연산자의 값을 추적하여, 상기 크래쉬 발생에 의해 강제 종료될 때의 피연산자 값인 크래쉬 유발 값이 변화하는지 여부를 판정하며, 상기 추적 과정에서 상기 크래쉬 유발 값이 변화한다는 판정에 응답하여, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 변화 지점의 위치를 상기 바이너리의 취약점 원인 위치로 결정하는 프로세서를 포함하는,바이너리 취약점 분석 장치
|
13 |
13
컴퓨팅 장치와 결합하여,분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대해 크래쉬(crash)를 유발한 실행 흐름 경로(execution flow path) 상에서 테인트된 피연산자를 검출하는 단계;상기 검출된 피연산자의 값을 추적하여, 상기 크래쉬 발생에 의해 강제 종료될 때의 피연산자 값인 크래쉬 유발 값이 변화하는지 여부를 판정하는 단계;상기 추적 과정에서 상기 크래쉬 유발 값이 변화한다는 판정에 응답하여, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 변화 지점의 위치를 상기 바이너리의 취약점 원인 위치로 결정하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장된,컴퓨터 프로그램
|
14 |
14
삭제
|