맞춤기술찾기

이전대상기술

취약점이 존재하는 바이너리 패치 방법 및 그 장치

  • 기술번호 : KST2019015449
  • 담당센터 :
  • 전화번호 :
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 취약점이 존재하는 바이너리 패치 방법이 제공 된다. 본 발명의 일 실시예에 따른 취약점이 존재하는 바이너리 패치 방법은, 패치(patch) 대상인 제1 바이너리를 메모리에 로드 하는 단계와 상기 제1 바이너리의 취약 함수에서 스택 프레임 초기화 함수가 호출 되도록 패치하여 제2 바이너리를 생성하는 단계 및 상기 제2 바이너리 실행시, 상기 취약 함수가 호출되는 것을 통해 상기 스택 프레임 초기화 함수가 실행됨으로써, 상기 취약 함수의 스택 프레임 영역이 초기화 되는 것에 의하여 자동적으로 상기 취약 함수에서 선언된 변수가 초기화 되도록 하는 단계 또는 패치(patch) 대상인 제1 바이너리를 메모리에 로드 하는 단계와 상기 제1 바이너리의 취약 함수가 호출되는 대신 버퍼 크기 검증 함수가 호출 되도록 패치하여 제2 바이너리를 생성하는 단계 및 상기 제2 바이너리 실행시, 상기 취약 함수 실행 보다 버퍼 크기 검증 함수가 먼저 실행됨으로써, 상기 취약 함수의 버퍼 크기가 검증된 후 상기 취약 함수가 실행되는 것에 의하여 자동적으로 상기 취약 함수에서의 버퍼 오버플로우 발생이 방지되도록 하는 단계를 포함한다.
Int. CL G06F 21/57 (2013.01.01) G06F 21/52 (2013.01.01)
CPC G06F 21/577(2013.01) G06F 21/577(2013.01)
출원번호/일자 1020180131473 (2018.10.31)
출원인 한국인터넷진흥원
등록번호/일자 10-1995285-0000 (2019.06.26)
공개번호/일자
공고번호/일자 (20190702) 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 등록
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2018.10.31)
심사청구항수 13

출원인

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

발명자

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

대리인

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

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 한국인터넷진흥원 전라남도 나주시
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2018.10.31 수리 (Accepted) 1-1-2018-1076215-72
2 [우선심사신청]심사청구(우선심사신청)서
[Request for Preferential Examination] Request for Examination (Request for Preferential Examination)
2018.10.31 수리 (Accepted) 1-1-2018-1076257-89
3 [우선심사신청]선행기술조사의뢰서
[Request for Preferential Examination] Request for Prior Art Search
2018.11.05 수리 (Accepted) 9-1-9999-9999999-89
4 [우선심사신청]선행기술조사보고서
[Request for Preferential Examination] Report of Prior Art Search
2018.11.14 수리 (Accepted) 9-1-2018-0062619-61
5 의견제출통지서
Notification of reason for refusal
2019.02.22 발송처리완료 (Completion of Transmission) 9-5-2019-0131579-57
6 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2019.04.05 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2019-0350580-83
7 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2019.04.05 수리 (Accepted) 1-1-2019-0350581-28
8 등록결정서
Decision to grant
2019.06.10 발송처리완료 (Completion of Transmission) 9-5-2019-0412956-25
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
컴퓨팅 장치에 의해 수행되는 방법에 있어서,패치(patch) 대상인 제1 바이너리를 메모리에 로드 하는 단계;상기 제1 바이너리의 취약 함수의 기본 블록에서 상기 취약 함수의 스택 프레임 사이즈를 획득한 후, 상기 제1 바이너리의 취약 함수의 기본 블록에 스택 프레임 초기화 함수가 호출 되도록 패치하여 제2 바이너리를 생성하는 단계; 및상기 제2 바이너리 실행시, 상기 취약 함수가 호출되는 것을 통해 상기 스택 프레임 초기화 함수가 실행됨으로써, 상기 취약 함수의 스택 프레임 사이즈 만큼 상기 취약 함수의 스택 프레임 영역이 초기화 되는 것에 의하여 자동적으로 상기 취약 함수에서 선언된 변수가 초기화 되도록 하는 단계를 포함하는, 취약점이 존재하는 바이너리 패치 방법
2 2
제1 항에 있어서,제2 바이너리를 생성하는 단계는,상기 패치 수행시 생성되는 복수개의 데이터를 데이터베이스(database)에 저장하는 단계를 포함하되,상기 데이터베이스의 키(Key)는 스택 프레임 초기화 패처의 인식번호이고, 상기 데이터베이스의 값(value)은 상기 제1 바이너리의 해시(hash) 값, 상기 제1 바이너리의 경로, 상기 제2 바이너리의 해시 값, 상기 제2 바이너리의 경로, 상기 스택 프레임 초기화 패처가 적용한 상기 패치의 유형 인식번호, 상기 패치 수행시 사용된 입력값 및 상기 패치의 성공 여부에 관한 정보를 포함하는,취약점이 존재하는 바이너리 패치 방법
3 3
제1 항에 있어서,제2 바이너리를 생성하는 단계는,제1 바이너리에서, 상기 취약 함수의 기본 블록(basic block)에 포함되는 제1 분석대상 블록을 명령어 단위로 분석하여 상기 취약 함수의 스택 프레임 사이즈를 획득하는 단계; 상기 스택 프레임 사이즈를 실행 설정 파일에 저장하는 단계; 및상기 제1 분석대상 블록의 바로 뒷부분에 패치 포인트를 생성하고, 상기 패치 포인트에 상기 스택 프레임 초기화 함수 호출부 블록을 삽입하는 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
4 4
제3 항에 있어서,상기 제1 분석대상 블록을 명령어 단위로 분석하여 상기 취약 함수의 스택 프레임 사이즈를 획득하는 단계는,상기 제1 분석대상 블록의 스택 포인터(stack pointer) 레지스터 값을 이용하여 상기 스택 프레임 사이즈를 획득하는 단계를 포함하는,취약점이 존재하는 바이너리 패치 방법
5 5
제3 항에 있어서,상기 제1 분석대상 블록을 명령어 단위로 분석하여 상기 취약 함수의 스택 프레임 사이즈를 획득하는 단계는,상기 제1 바이너리에, 버퍼 오버플로우(buffer overflow)를 방지하기 위해 카나리(canary) 영역을 생성하는 SSP(Stack Smashing Protector)가 적용되었는지 확인하는 단계; 및상기 카나리 영역을 초기화 하지 않기 위해, 상기 스택 프레임 사이즈에서 상기 카나리 영역의 사이즈를 제외하는 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
6 6
제5 항에 있어서,상기 제1 바이너리에 상기 SSP가 적용되었는지 확인하는 단계는,상기 제1 바이너리에 상기 SSP가 적용되었는지를 검증하는 스크립트를 이용하여 상기 바이너리의 상기 SSP의 적용 여부를 확인하는 1차 검증 단계; 및상기 취약 함수의 제2 분석대상 블록을 분석하여 상기 취약 함수의 상기 카나리 영역의 존재 여부를 확인하는 2차 검증 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
7 7
제3 항에 있어서,상기 취약 함수의 스택 프레임 영역이 초기화 되는 것에 의하여 자동적으로 상기 취약 함수에서 선언된 변수가 초기화 되도록 하는 단계는,상기 스택 프레임 초기화 함수가 상기 스택 프레임 초기화 함수의 지역 변수가 저장된 지점에서 상기 취약 함수의 상기 스택 프레임의 시작 지점까지 거리를 연산한 값과 상기 스택 프레임 사이즈를 이용하여 상기 취약 함수의 상기 스택 프레임을 초기화 하는 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
8 8
컴퓨팅 장치에 의해 수행되는 방법에 있어서,패치(patch) 대상인 제1 바이너리를 메모리에 로드 하는 단계;상기 제1 바이너리의 취약 함수의 호출부 블록에서 상기 취약 함수의 스택 가용 최대값을 획득한 후, 상기 취약 함수가 호출되는 대신 버퍼 크기 검증 함수가 호출 되도록 패치하여 제2 바이너리를 생성하는 단계; 및상기 제2 바이너리 실행시, 상기 취약 함수 실행 보다 버퍼 크기 검증 함수가 먼저 실행됨으로써, 상기 스택 가용 최대값을 이용하여 취약 함수의 버퍼 크기가 변경된 후 상기 취약 함수가 실행되는 것에 의하여 자동적으로 상기 취약 함수에서의 버퍼 오버플로우 발생이 방지되도록 하는 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
9 9
제8 항에 있어서,상기 제2 바이너리를 생성하는 단계는,제1 바이너리에서, 상기 취약 함수의 호출부 블록을 분석하여 상기 취약 함수의 스택 가용 최대값을 획득하는 단계; 상기 스택 가용 최대값을 실행 설정 파일에 저장하는 단계; 및상기 취약 함수의 호출부 블록을 상기 버퍼 크기 검증 함수의 호출부 블록으로 치환하는 단계를 포함하는취약점이 존재하는 바이너리 패치 방법
10 10
제9 항에 있어서,상기 취약 함수의 호출부 블록을 분석하여 상기 취약 함수의 스택 가용 최대값을 획득하는 단계는,상기 취약 함수의 매개변수 구조를 분석하여, 상기 취약 함수의 상기 매개변수 중 목적지 매개변수의 순서를 획득하는 단계; 및상기 목적지 매개변수를 저장하는 레지스터 값을 이용하여 상기 스택 가용 최대값을 획득하는 단계를 포함하는,취약점이 존재하는 바이너리 패치 방법
11 11
제9 항에 있어서,상기 취약 함수의 호출부 블록을 분석하여 상기 취약 함수의 스택 가용 최대값을 획득하는 단계는,상기 제1 바이너리에, 버퍼 오버플로우(buffer overflow)를 방지하기 위해 카나리(canary) 영역을 생성하는 SSP(Stack Smashing Protector)가 적용되었는지 확인하는 단계; 및상기 카나리 영역에 버퍼 쓰기 행위를 허용하지 않기 위해, 상기 스택 가용 최대값에서 상기 카나리 영역의 사이즈를 제외하는 단계를 포함하는,취약점이 존재하는 바이너리 패치 방법
12 12
제11 항에 있어서,상기 바이너리에 상기 SSP가 적용되었는지 확인하는 단계는,상기 제1 바이너리에 상기 SSP가 적용되었는지를 검증하는 스크립트를 이용하여 상기 바이너리의 SSP적용 여부를 확인하는 1차 검증 단계; 및상기 취약 함수의 제2 분석대상 블록을 분석하여 상기 취약 함수의 카나리 영역의 존재 여부를 확인하는 2차 검증 단계를 포함하는,취약점이 존재하는 바이너리 패치 방법
13 13
제8 항에 있어서,상기 취약 함수의 버퍼 크기가 검증된 후 상기 취약 함수가 실행되는 것에 의하여 자동적으로 상기 취약 함수에서의 버퍼 오버플로우 발생이 방지되도록 하는 단계는,상기 버퍼 크기 검증 함수가 호출되어, 상기 취약 함수의 버퍼 크기가 스택 가용 최대값을 초과하는지 검증하는 단계; 및상기 취약 함수의 버퍼 크기가 상기 스택 가용 최대값을 초과하는 경우, 상기 취약 함수의 버퍼 크기를 상기 스택 가용 최대값을 이용하여 변경한 후 상기 취약 함수를 호출하는 단계를 포함하는,취약점이 존재하는 바이너리 패치 방법
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
패밀리 정보가 없습니다

DOCDB 패밀리 정보

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