1 |
1
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래쉬(crash)를 유발하는 실행 흐름 경로(execution flow path) 및 상기 실행 흐름 경로 상의 의심 요소(suspicious element)와 관련된 취약점의 기호 제약조건(symbolic constraint)을 기록하는 1차 실행 단계; 및상기 바이너리의 상기 실행 흐름 경로에 대하여 기호 실행(symbolic execution) 방식의 2차 실행을 수행하되, 상기 기호 제약조건을 만족하는 인스트럭션(instruction) 발견 시, 상기 발견된 인스트럭션과 상기 의심 요소의 비교 결과에 기반하여 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 2차 실행 단계를 포함하되,상기 2차 실행 단계는,상기 기호 제약조건을 만족하는 인스트럭션 발견 시, 상기 발견된 인스트럭션이 상기 의심 요소와 같은 위치의 것이라면, 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
2 |
2
삭제
|
3 |
3
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래쉬(crash)를 유발하는 실행 흐름 경로(execution flow path) 및 상기 실행 흐름 경로 상의 의심 요소(suspicious element)와 관련된 취약점의 기호 제약조건(symbolic constraint)을 기록하는 1차 실행 단계; 및상기 바이너리의 상기 실행 흐름 경로에 대하여 기호 실행(symbolic execution) 방식의 2차 실행을 수행하되, 상기 기호 제약조건을 만족하는 인스트럭션(instruction) 발견 시, 상기 발견된 인스트럭션과 상기 의심 요소의 비교 결과에 기반하여 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 2차 실행 단계를 포함하되,상기 2차 실행 단계는,상기 기호 제약조건을 만족하는 인스트럭션 발견 시, 상기 발견된 피연산자가 상기 의심 요소의 인스트럭션이 실행된 후에 실행된 피연산자라면, 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
4 |
4
제1 항에 있어서,상기 2차 실행 단계는,상기 바이너리의 상기 실행 흐름 경로에 한정하여 상기 2차 실행을 수행하는 단계를 포함하는,바이너리 취약점 분석 방법
|
5 |
5
제1 항에 있어서,상기 1차 실행 단계는,상기 테인트 분석의 결과 출력된 정보를 이용하여 테인트 된 요소를 기록하되, 상기 테인트 된 요소는 테인트 된 피연산자, 테인트 된 메모리 주소 및 테인트 된 레지스터를 포함하는 단계; 및상기 테인트 된 요소 중 적어도 일부를 의심 요소로 결정하는 의심 요소 판정 단계를 포함하되,상기 의심 요소 판정 단계는,상기 바이너리를 수도 코드(pseudo code)로 변환하는 단계; 및상기 변환 된 바이너리의 수도 코드 중 상기 테인트 된 요소에 대응되는 부분 중에서, 기 저장된 의심 수도 코드 패턴에 매치되는 부분의 테인트 된 요소를 의심 요소로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
6 |
6
제1 항에 있어서,상기 1차 실행 단계는,상기 테인트 분석의 결과 출력된 정보를 이용하여 테인트 된 요소를 기록하되, 상기 테인트 된 요소는 테인트 된 피연산자, 테인트 된 메모리 주소 및 테인트 된 레지스터를 포함하는 단계; 및상기 테인트 된 요소 중 일부를 의심 요소로 결정하는 의심 요소 판정 단계를 포함하되,상기 의심 요소 판정 단계는,상기 테인트 된 요소 중에서, 기 저장된 의심 피연산자 패턴에 매치되는 부분의 테인트 된 요소를 의심 요소로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
7 |
7
제1 항에 있어서,상기 1차 실행 단계는,상기 테인트 분석의 결과 출력된 정보를 이용하여 테인트 된 요소를 기록하되, 상기 테인트 된 요소는 테인트 된 피연산자, 테인트 된 메모리 주소 및 테인트 된 레지스터를 포함하는 단계; 및상기 테인트 된 요소 중 일부를 의심 요소로 결정하는 의심 요소 판정 단계를 포함하되,상기 의심 요소 판정 단계는,상기 테인트 된 요소 중에서, 기 저장된 의심 인스트럭션 패턴에 매치되는 부분의 테인트 된 요소의 인스트럭션을 의심 요소로 판정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
8 |
8
제1 항에 있어서,상기 1차 실행 단계는,상기 바이너리의 실행을 위한 실행 파라미터를 이용하여 상기 바이너리를 실행하는 단계; 및상기 실행 파라미터를 이용하여 상기 테인트 분석을 위한 테인트 소스를 세팅하는 단계를 포함하되,상기 테인트 소스를 세팅하는 단계는,상기 바이너리의 디버그 심볼(debug symbol)에 "main"이 존재하지 않는 경우, 상기 바이너리의 실행 과정에서 상기 실행 파라미터를 로드하는 위치를 테인트 소스로 세팅하는 단계를 포함하는,바이너리 취약점 분석 방법
|
9 |
9
제1 항에 있어서,상기 크래쉬의 발생에 따라 강제 종료될 때의 피연산자 값인 크래쉬 유발 값의 상기 테인트 분석에 따른 테인트 기록에 따를 때 상기 크래쉬 유발 값이 변화되지 않는 경우, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 의심 요소의 위치를 상기 취약점의 원인 위치로 결정하는 취약점 원인 위치 파악 단계를 더 포함하는,바이너리 취약점 분석 방법
|
10 |
10
제9 항에 있어서,상기 위치 파악 단계는,상기 취약점의 원인 위치의 타입을 상기 강제 종료 지점에서 가장 가까운 상기 크래쉬 유발 값의 변화 지점인 제1 타입과, 상기 강제 종료 지점에서 가장 가까운 의심 요소의 위치인 제2 타입으로 구별하여 출력하는 단계를 포함하는,바이너리 취약점 분석 방법
|
11 |
11
컴퓨팅 장치와 결합하여, 제1 항 및 제3 항 내지 제10 항 중 어느 한 항의 방법을 실행시키기 위하여,컴퓨터로 읽을 수 있는 기록 매체에 저장된 소프트웨어
|
12 |
12
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래쉬(crash)를 유발하는 실행 흐름 경로(execution flow path) 및 상기 실행 흐름 경로 상의 의심 요소(suspicious element)를 기록하는 단계; 및상기 크래쉬의 발생에 따라 강제 종료될 때의 피연산자 값인 크래쉬 유발 값의 상기 테인트 분석에 따른 테인트 기록에 따를 때 상기 크래쉬 유발 값이 변화되지 않는 경우, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 의심 요소의 위치를 크래쉬 원인 위치로 결정하는 단계를 포함하는,바이너리 취약점 분석 방법
|
13 |
13
프로세서; 및상기 프로세서에 의하여 실행되는 컴퓨터 프로그램 및 하나 이상의 분석 대상 바이너리를 저장하는 메모리를 포함하되,상기 컴퓨터 프로그램은,상기 분석 대상 바이너리에 실행 현황을 파악하는 코드를 삽입하여 상기 분석 대상 바이너리를 실행하는 제1 동작;상기 분석 대상 바이너리의 1차 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 분석 대상 바이너리에 대하여 크래쉬를 유발하는 실행 흐름 경로에 대한 정보를 출력하는 제2 동작;상기 실행 흐름 경로 상의 의심 요소를 판정하고, 상기 의심 요소와 관련된 취약점의 기호 제약조건을 생성하는 제3 동작; 및상기 분석 대상 바이너리의 상기 실행 흐름 경로에 대하여 기호 실행 방식의 2차 실행을 수행하고, 상기 기호 제약조건을 만족하는 인스트럭션 발견 시 상기 발견된 인스트럭션과 상기 의심 요소의 비교 결과에 기반하여 상기 분석 대상 바이너리에 상기 취약점이 존재하는 것으로 판정하는 제4 동작을 수행하도록 하는 인스트럭션들을 포함하고,상기 제4 동작은,상기 기호 제약조건을 만족하는 인스트럭션 발견 시, 상기 발견된 인스트럭션이 상기 의심 요소와 같은 위치의 것이라면, 상기 분석 대상 바이너리에 상기 취약점이 존재하는 것으로 판정하는 동작을 포함하는,전자 장치
|
14 |
14
제13 항에 있어서,상기 컴퓨터 프로그램은, 상기 크래쉬의 발생에 따라 강제 종료될 때의 피연산자 값인 크래쉬 유발 값의 상기 테인트 분석에 따른 테인트 기록에 따를 때 상기 크래쉬 유발 값이 변화되지 않는 경우, 상기 실행 흐름 경로 상의 상기 강제 종료 지점에서 가장 가까운 의심 요소의 위치를 상기 취약점의 원인 위치로 결정하는 제5 동작을 수행하도록 하는 인스트럭션들을 더 포함하는,전자 장치
|