1 |
1
적어도 하나의 프로그램이 기록된 메모리; 및프로그램을 실행하는 프로세서를 포함하며,프로세서는,분기 타겟의 식별자를 기록하는 복수의 분기 식별자 레지스터들(Branch ID Registers);복수의 분기 식별자 레지스터들 중 소정 순번의 분기 식별자 레지스터에 분기 타겟의 식별자의 기록 명령인 설정 분기 식별자 인스트럭션(setBID Instruction); 및 소정 순번의 분기 식별자 레지스터에 기록된 값과 소정 순번의 분기 타겟의 식별자의 동일성 여부를 기반으로 제어 흐름의 하이재킹 공격 탐지 신호의 발생 명령인 체크 분기 식별자 인스트럭션(chkBID Instruction)이 추가되고, 프로그램은, 추가된 복수의 분기 식별자 레지스터들을 기반으로 제어 흐름의 하이재킹 여부를 탐지하는, 제어 흐름 무결성 위반 탐지 장치
|
2 |
2
제1 항에 있어서, 설정 분기 식별자 인스트럭션(setBID Instruction)은, 피연산자로 분기 식별자 레지스터 순번(BIDR_id x), 분기 식별자 베이스(BID_base) 및 분기 식별자 오프셋(BID_offset)를 피연산자로 포함하는, 제어 흐름 무결성 위반 탐지 장치
|
3 |
3
제1 항에 있어서, 체크 분기 식별자 인스트럭션(chkBID Instruction)은, 피연산자로 분기 식별자 레지스터 순번(BIDR_id x) 및 분기 식별자 (BID)를포함하는, 제어 흐름 무결성 위반 탐지 장치
|
4 |
4
제1 항에 있어서, 프로그램은, 설정 분기 식별자 인스트럭션(setBID Instruction)에 따라 소정 제어 흐름에서의 복수의 분기 타겟들 각각에 할당된 상이한 식별자를 복수의 복수의 분기 식별자 레지스터들 각각에 순번대로 기록하는 단계; 및체크 분기 식별자 인스트럭션(chkBID Instruction)에 따라 호출된 분기 타겟의 식별자와 호출된 분기 타겟에 상응하는 소정 순번의 분기 식별자 레지스터에 기록된 식별자의 동일성 여부를 기반으로 제어 흐름의 하이재킹 공격 여부를 탐지하는 단계를 포함하는, 제어 흐름 무결성 위반 탐지 장치
|
5 |
5
제1 항에 있어서, 프로그램은, 둘 이상의 제1 함수들 각각이 둘 이상의 제2 함수들 중 적어도 하나로 분기되는 제어 흐름일 경우, 제2 함수들 각각에 상이한 식별자를 할당하고, 둘 이상의 제1 함수들 중 적어도 하나가 제어 흐름에 상응하지 않는 제2 함수의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는, 제어 흐름 무결성 위반 탐지 장치
|
6 |
6
제1 항에 있어서, 프로그램은, 함수 포인터 배열로 둘 이상의 함수들 중 하나를 호출하는 제어 흐름일 경우, 함수 포인터 배열의 인덱스를 기반으로 둘 이상의 함수들 각각에 서로 상이한 식별자를 할당하고, 함수 포인터 배열의 인덱스에 상응하지 않는 함수의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는, 제어 흐름 무결성 위반 탐지 장치
|
7 |
7
제1 항에 있어서, 프로그램은, 조건 분기문에 의해 둘 이상의 타겟들 중 하나로 분기하는 제어 흐름일 경우, 조건 분기문의 조건 변수를 기반으로 둘 이상의 타겟들 각각에 서로 상이한 식별자를 할당하고, 조건 분기문의 조건 변수에 상응하지 않는 타겟의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는, 제어 흐름 무결성 위반 탐지 장치
|
8 |
8
적어도 하나의 프로그램이 기록된 메모리; 및프로그램을 실행하는 프로세서를 포함하는 장치에서의 제어 흐름 무결성 위반 탐지 방법에 있어서, 프로세서는, 복수의 분기 식별자 레지스터들 중 소정 순번의 분기 식별자 레지스터에 분기 타겟의 식별자의 기록 명령인 설정 분기 식별자 인스트럭션(setBID Instruction); 및 소정 순번의 분기 식별자 레지스터에 기록된 값과 소정 순번의 분기 타겟의 식별자의 동일성 여부를 기반으로 제어 흐름의 하이재킹 공격 탐지 신호의 발생 명령인 체크 분기 식별자 인스트럭션(chkBID Instruction)이 추가되고, 추가된 복수의 분기 식별자 레지스터들을 기반으로 제어 흐름의 하이재킹 여부를 탐지하는, 제어 흐름 무결성 위반 탐지 방법
|
9 |
9
제8 항에 있어서, 설정 분기 식별자 인스트럭션(setBID Instruction)은, 피연산자로 분기 식별자 레지스터 순번(BIDR_id x), 분기 식별자 베이스(BID_base) 및 분기 식별자 오프셋(BID_offset)를 피연산자로 포함하는, 제어 흐름 무결성 위반 탐지 방법
|
10 |
10
제8 항에 있어서, 체크 분기 식별자 인스트럭션(chkBID Instruction)은, 피연산자로 분기 식별자 레지스터 순번(BIDR_id x) 및 분기 식별자(BID)를 포함하는, 제어 흐름 무결성 위반 탐지 방법
|
11 |
11
제8 항에 있어서, 설정 분기 식별자 인스트럭션(setBID Instruction)에 따라 소정 제어 흐름에서의 복수의 분기 타겟들 각각에 할당된 상이한 식별자를 복수의 복수의 분기 식별자 레지스터들 각각에 순번대로 기록하는 단계; 및체크 분기 식별자 인스트럭션(chkBID Instruction)에 따라 호출된 분기 타겟의 식별자와 호출된 분기 타겟에 상응하는 소정 순번의 분기 식별자 레지스터에 기록된 식별자의 동일성 여부를 기반으로 제어 흐름의 하이재킹 공격 여부를 탐지하는 단계를 포함하는, 제어 흐름 무결성 위반 탐지 방법
|
12 |
12
제8 항에 있어서, 둘 이상의 제1 함수들 각각이 둘 이상의 제2 함수들 중 적어도 하나로 분기되는 제어 흐름일 경우, 제2 함수들 각각에 상이한 식별자를 할당하는 단계; 및 둘 이상의 제1 함수들 중 적어도 하나가 제어 흐름에 상응하지 않는 제2 함수의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는 단계를 포함하는, 제어 흐름 무결성 위반 탐지 방법
|
13 |
13
제8 항에 있어서, 함수 포인터 배열로 둘 이상의 함수들 중 하나를 호출하는 제어 흐름일 경우, 함수 포인터 배열의 인덱스를 기반으로 둘 이상의 함수들 각각에 서로 상이한 식별자를 할당하는 단계; 및 함수 포인터 배열의 인덱스에 상응하지 않는 함수의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는 단계를 포함하는, 제어 흐름 무결성 위반 탐지 방법
|
14 |
14
제8 항에 있어서, 조건 분기문에 의해 둘 이상의 타겟들 중 하나로 분기하는 제어 흐름일 경우, 조건 분기문의 조건 변수를 기반으로 둘 이상의 타겟들 각각에 서로 상이한 식별자를 할당하는 단계; 및조건 분기문의 조건 변수에 상응하지 않는 타겟의 식별자를 호출하는지의 여부를 판단하여 하이재킹 여부를 탐지하는 단계를 포함하는, 제어 흐름 무결성 위반 탐지 방법
|