맞춤기술찾기

이전대상기술

BinTyper: C++ 프로그램 바이너리 대상의 타입 컨퓨전 버그 탐지

  • 기술번호 : KST2022001932
  • 담당센터 : 서울동부기술혁신센터
  • 전화번호 : 02-2155-3662
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 개시의 몇몇 실시예에 따라, 컴퓨팅 장치의 프로세서를 이용한 객체지향형 프로그래밍 언어의 바이너리 코드 대상의 타입 컨퓨전 버그(type confusion bug) 탐지 방법이 개시된다. 상기 방법은: 객체지향형 프로그래밍 언어의 바이너리 코드를 분석하여, 적어도 하나의 클래스 및 상기 적어도 하나의 클래스의 상속 관계를 복원하는 단계; 상기 적어도 하나의 클래스 및 상기 상속 관계를 이용하여, 상기 적어도 하나의 클래스의 레이아웃을 인식하는 단계; 및 상기 적어도 하나의 클래스의 레이아웃을 이용하여, 상기 타입 컨퓨전 버그를 탐지하는 단계;를 포함할 수 있다.
Int. CL G06F 21/56 (2013.01.01)
CPC
출원번호/일자 1020200150127 (2020.11.11)
출원인 고려대학교 산학협력단
등록번호/일자
공개번호/일자 10-2022-0018391 (2022.02.15) 문서열기
공고번호/일자
국제출원번호/일자
국제공개번호/일자
우선권정보 대한민국  |   1020200098768   |   2020.08.06
법적상태 공개
심사진행상태 수리
심판사항
구분 국내출원/신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2020.11.11)
심사청구항수 7

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 고려대학교 산학협력단 대한민국 서울특별시 성북구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 김승주 서울특별시 강남구
2 김동주 서울특별시 관악구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 이대호 대한민국 서울특별시 강남구 강남대로 *** (논현동,어반하이브빌딩) **층(파이특허법률사무소)
2 박건홍 대한민국 서울특별시 강남구 강남대로 *** (논현동,어반하이브빌딩) **층(파이특허법률사무소)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
최종권리자 정보가 없습니다
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2020.11.11 수리 (Accepted) 1-1-2020-1206633-63
2 의견제출통지서
Notification of reason for refusal
2021.12.27 발송처리완료 (Completion of Transmission) 9-5-2021-1012493-09
3 [거절이유 등 통지에 따른 의견]의견서·답변서·소명서
2022.02.14 수리 (Accepted) 1-1-2022-0161679-19
4 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2022.02.14 1-1-2022-0161678-63
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
컴퓨팅 장치의 프로세서를 이용한 객체지향형 프로그래밍 언어의 바이너리 코드 대상의 타입 컨퓨전 버그(type confusion bug) 탐지 방법으로서, 상기 방법은:객체지향형 프로그래밍 언어의 바이너리 코드를 분석하여, 적어도 하나의 클래스 및 상기 적어도 하나의 클래스의 상속 관계를 복원하는 단계;상기 적어도 하나의 클래스 및 상기 상속 관계를 이용하여, 상기 적어도 하나의 클래스의 레이아웃을 인식하는 단계; 및상기 적어도 하나의 클래스의 레이아웃을 이용하여, 상기 타입 컨퓨전 버그를 탐지하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
2 2
제 1 항에 있어서,상기 객체지향형 프로그래밍 언어의 바이너리 코드를 분석하여, 적어도 하나의 클래스 및 상기 적어도 하나의 클래스의 상속 관계를 복원하는 단계는,적어도 하나의 다형성 클래스(polymorphic class) 각각에 대한 적어도 하나의 가상 함수 테이블(virtual function table)을 추출하는 단계;상기 적어도 하나의 가상 함수 테이블을 이용하여, 상기 적어도 하나의 다형성 클래스 각각에 대한 생성자(constructor) 및 소멸자(destructor)를 인식하는 단계; 및상기 생성자 및 상기 소멸자를 이용한 덮어쓰기(overwrite) 분석을 통해 상기 적어도 하나의 클래스의 상속 관계를 복원하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
3 3
제 2 항에 있어서,상기 생성자는,상기 적어도 하나의 클래스에서 오브젝트가 생성될 때 이용되는 메소드(method)이고,상기 소멸자는,상기 적어도 하나의 클래스에서 상기 오브젝트가 파괴될 때 이용되는 메소드인,타입 컨퓨전 버그 탐지 방법
4 4
제 1 항에 있어서,상기 적어도 하나의 클래스 및 상기 상속 관계를 이용하여, 상기 적어도 하나의 클래스의 레이아웃을 인식하는 단계는,상기 적어도 하나의 클래스 각각의 크기를 인식하는 단계; 및상기 적어도 하나의 클래스 각각의 크기 및 상기 상속 관계를 이용하여, 상기 적어도 하나의 클래스의 레이아웃을 인식하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
5 5
제 4 항에 있어서,상기 적어도 하나의 클래스 각각의 크기를 인식하는 단계는,CPU의 레지스터로부터 상기 적어도 하나의 클래스에 대한 시작 오프셋(start offset)을 인식하는 단계;상기 적어도 하나의 클래스의 오브젝트의 크기를 인식하여, 상기 적어도 하나의 클래스에 대한 종료 오프셋(end offset)을 인식하는 단계; 및상기 시작 오프셋 및 상기 종료 오프셋을 이용하여, 상기 적어도 하나의 클래스 각각의 크기를 인식하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
6 6
제 1 항에 있어서,상기 적어도 하나의 클래스의 레이아웃을 이용하여, 상기 타입 컨퓨전 버그를 탐지하는 단계는,적어도 하나의 정상 바이너리 코드를 실행하여, 상기 적어도 하나의 클래스와 관련된 오브젝트에 대한 적어도 하나의 타겟 영역(target area)을 식별하는 단계; 및상기 타겟 영역에 기초하여, 상기 바이너리 코드의 상기 타입 컨퓨전 버그를 탐지하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
7 7
제 6 항에 있어서,상기 적어도 하나의 정상 바이너리 코드를 실행하여, 상기 적어도 하나의 클래스와 관련된 오브젝트에 대한 적어도 하나의 타겟 영역을 식별하는 단계는,상기 적어도 하나의 정상 바이너리 코드의 어셈블리 인스트럭션이 메모리에 접근할 때, 상기 메모리에 저장된 오브젝트에 대한 접근인지 여부를 판단하는 단계;상기 어셈블리 인스트럭션이 상기 메모리에 저장된 상기 오브젝트에 대한 접근이라고 판단한 경우, 접근 대상의 주소를 인식하는 단계;상기 접근 대상의 주소와 상기 오브젝트의 시작 지점의 차이 값을 산출하여, 상기 오브젝트의 오프셋을 인식하는 단계; 및상기 오브젝트의 오프셋 및 상기 적어도 하나의 클래스의 레이아웃을 이용하여, 상기 오브젝트의 상기 오프셋에 대한 타겟 영역을 식별하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
8 8
제 6 항에 있어서,상기 타겟 영역에 기초하여, 상기 바이너리 코드의 상기 타입 컨퓨전 버그를 탐지하는 단계는,타겟 바이너리가 실행되어, 클래스 생성자가 호출될 때, 타겟 오브젝트의 메모리 주소 및 클래스 타입을 기록하는 단계; 및상기 타겟 오브젝트에 대한 접근이 발생할 경우, 상기 타겟 오브젝트와 관련된 상기 타겟 영역의 존재 여부에 따라, 상기 타입 컨퓨전 버그의 발생 여부를 판단하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
9 9
제 8 항에 있어서,상기 타겟 오브젝트에 대한 접근이 발생할 경우, 상기 타겟 오브젝트와 관련된 상기 타겟 영역의 존재 여부에 따라, 상기 타입 컨퓨전 버그의 발생 여부를 판단하는 단계는,상기 기록된 클래스 타입에 상기 타겟 오브젝트와 관련된 상기 타겟 영역이 존재하지 않는 경우, 상기 타입 컨퓨전 버그가 발생됐다고 판단하는 단계;를 포함하는,타입 컨퓨전 버그 탐지 방법
지정국 정보가 없습니다
패밀리정보가 없습니다
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 과학기술정보통신부 고려대학교 산학협력단 정보보호핵심원천기술개발 고등급(EAL6 이상) 보안 마이크로커널 개발