맞춤기술찾기

이전대상기술

바이너리에 대한 보안 취약점 및 그 원인 위치의 식별 방법 및 그 장치

  • 기술번호 : KST2019036855
  • 담당센터 :
  • 전화번호 :
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 바이너리에 존재하는 취약점 및 그 취약점의 원인이 되는 위치를 판정하는 자동화 된 방법이 제공된다. 본 발명의 일 실시예에 따른 바이너리 취약점 분석 방법은, 분석 대상인 바이너리(binary)의 실행을 통한 테인트 분석(taint analysis)을 수행하여, 상기 바이너리에 대하여 크래쉬(crash)를 유발하는 실행 흐름 경로(execution flow path) 및 상기 실행 흐름 경로 상의 의심 요소(suspicious element)와 관련된 취약점의 기호 제약조건(symbolic constraint)을 기록하는 1차 실행 단계와, 상기 바이너리의 상기 실행 흐름 경로에 대하여 기호 실행(symbolic execution) 방식의 2차 실행을 수행하되, 상기 기호 제약조건을 만족하는 인스트럭션 발견 시, 상기 발견된 인스트럭션과 상기 의심 요소의 비교 결과에 기반하여 상기 바이너리에 상기 취약점이 존재하는 것으로 판정하는 2차 실행 단계를 포함한다.
Int. CL G06F 21/57 (2013.01.01) G06F 21/56 (2013.01.01)
CPC G06F 21/577(2013.01) G06F 21/577(2013.01)
출원번호/일자 1020170152288 (2017.11.15)
출원인 한국인터넷진흥원
등록번호/일자 10-1921052-0000 (2018.11.16)
공개번호/일자
공고번호/일자 (20181122) 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 등록
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호 1020180141200;
심사청구여부/일자 Y (2017.11.15)
심사청구항수 13

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 한국인터넷진흥원 대한민국 전라남도 나주시

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 김환국 전라남도 나주시 진흥길
2 김태은 전라남도 나주시 진흥길
3 오상환 전라남도 나주시 진흥길
4 윤수진 전라남도 나주시 진흥길
5 전지수 전라남도 나주시 진흥길
6 나건배 전라남도 나주시 진흥길

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 특허법인가산 대한민국 서울 서초구 남부순환로 ****, *층(서초동, 한원빌딩)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 한국인터넷진흥원 전라남도 나주시
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2017.11.15 수리 (Accepted) 1-1-2017-1135347-73
2 [우선심사신청]심사청구(우선심사신청)서
[Request for Preferential Examination] Request for Examination (Request for Preferential Examination)
2018.03.14 수리 (Accepted) 1-1-2018-0254484-33
3 [우선심사신청]선행기술조사의뢰서
[Request for Preferential Examination] Request for Prior Art Search
2018.03.16 수리 (Accepted) 9-1-9999-9999999-89
4 [우선심사신청]선행기술조사보고서
[Request for Preferential Examination] Report of Prior Art Search
2018.03.22 수리 (Accepted) 9-1-2018-0011991-46
5 의견제출통지서
Notification of reason for refusal
2018.07.09 발송처리완료 (Completion of Transmission) 9-5-2018-0464184-13
6 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2018.09.03 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2018-0871403-17
7 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2018.09.03 수리 (Accepted) 1-1-2018-0871404-52
8 등록결정서
Decision to grant
2018.10.26 발송처리완료 (Completion of Transmission) 9-5-2018-0727803-13
9 [분할출원]특허출원서
[Divisional Application] Patent Application
2018.11.16 수리 (Accepted) 1-1-2018-1139560-19
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
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 동작을 수행하도록 하는 인스트럭션들을 더 포함하는,전자 장치
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 KR102090229 KR 대한민국 FAMILY
2 US10339322 US 미국 FAMILY
3 US20190147168 US 미국 FAMILY

DOCDB 패밀리 정보

순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - DOCDB 패밀리 정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 US10339322 US 미국 DOCDBFAMILY
2 US2019147168 US 미국 DOCDBFAMILY
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 과학기술정보통신부 한국인터넷진흥원 정보보호핵심원천기술개발사업 자기학습형 사이버 면역 기술 개발