| 번호 | 청구항 |
|---|---|
| 1 | 컴퓨터로 구현되는 GOT(Global Offset Table) 보호 장치에 의해 수행되는 GOT 변조 공격 방지 방법에 있어서, 호출 프로그램과 라이브러리 간에 공유되는 동적 바인딩 심볼을 코드화하여 분기 식별자를 생성하는 단계;상기 호출 프로그램에 포함된 분기 테이블에서 상기 코드화된 분기 식별자 코드를 검사하기 위한 명령 코드를 통해 분기 유효성 검사를 수행하는 단계; 및 상기 수행된 분기 유효성 검사에 기초하여 상기 호출 프로그램에 포함된 분기 테이블로부터 함수 호출을 통해 호출 프로그램을 실행시키는 단계를 포함하고,상기 분기 식별자는 생성하는 단계는,상기 동적 바인딩 심볼을 이름 꾸밈(name mangling) 규칙 기반의 코드화를 수행하는 단계를 포함하고, 상기 분기 유효성 검사를 수행하는 단계는,프로그램의 실행 환경에 따라 호출 프로그램이나 라이브러리 중 어느 하나에 CFI 기반의 GOT 변조 공격 방지 방법이 적용된 채로 호출이 발생될 경우, 상기 분기 유효성 검사 수행 여부를 결정하고, 상기 라이브러리에 CFI 기반의 GOT 변조 공격 방지 방법이 적용되지 않을 경우, 상기 라이브러리에서 분기 식별자를 포함하고 있는지 여부를 체크하여 분기 유효성 검사 코드 추가 여부를 결정하고, 상기 라이브러리에 분기 식별자를 포함하고 있을 경우, 상기 호출 프로그램의 PLT 엔트리에 분기 식별자를 포함하는 명령 코드를 삽입하고, 상기 라이브러리에 분기 식별자를 포함하고 있지 않을 경우, 동적 링커에 의한 심볼 바인딩을 통해 호출 프로그램을 다이렉트로 호출하는 단계를 포함하는 GOT 변조 공격 방지 방법. |
| 2 | 제1항에 있어서,상기 분기 유효성 검사를 수행하는 단계는,상기 라이브러리에 상기 생성된 분기 식별자를 삽입하고, 상기 라이브러리에 삽입된 분기 식별자와 상기 호출 프로그램 PLT(Procedure Linkage Table) 엔트리에서 상기 코드화된 분기 식별자 코드를 검사하기 위하여 추가된 명령 코드를 통해 GOT 엔트리가 가리키는 분기 목표점에 위치한 값을 비교하고, 상기 비교한 결과값이 일치할 경우 분기를 진행하고, 상기 비교한 결과값이 일치하지 않을 경우, GOT 엔트리 값을 재설정하는 단계를 포함하는 GOT 변조 공격 방지 방법. |
| 3 | 삭제 |
| 4 | 제1항에 있어서,상기 분기 유효성 검사를 수행하는 단계는,상기 호출 프로그램에 CFI 기반의 GOT 변조 공격 방지 방법이 적용되지 않을 경우, 분기 식별자 검사를 미수행하는 단계를 포함하는 GOT 변조 공격 방지 방법. |
| 5 | 삭제 |
| 6 | 삭제 |
| 7 | 컴퓨터로 구현되는 GOT(Global Offset Table) 보호 장치에 있어서, 호출 프로그램과 라이브러리 간에 공유되는 동적 바인딩 심볼을 코드화하여 분기 식별자를 생성하는 식별자 생성부;상기 호출 프로그램에 포함된 분기 테이블에서 상기 코드화된 분기 식별자 코드를 검사하기 위한 명령 코드를 통해 분기 유효성 검사를 수행하는 유효성 검사부; 및 상기 수행된 분기 유효성 검사에 기초하여 상기 호출 프로그램에 포함된 분기 테이블로부터 함수 호출을 통해 호출 프로그램을 실행시키는 프로그램 실행부를 포함하고,상기 식별자 생성부는,상기 동적 바인딩 심볼을 이름 꾸밈(name mangling) 규칙 기반의 코드화를 수행하는 것을 포함하고, 상기 유효성 검사부는,프로그램의 실행 환경에 따라 호출 프로그램이나 라이브러리 중 어느 하나에 CFI 기반의 GOT 변조 공격 방지 방법이 적용된 채로 호출이 발생될 경우, 상기 분기 유효성 검사 수행 여부를 결정하고, 상기 라이브러리에 CFI 기반의 GOT 변조 공격 방지 방법이 적용되지 않을 경우, 상기 라이브러리에서 분기 식별자를 포함하고 있는지 여부를 체크하여 분기 유효성 검사 코드 추가 여부를 결정하고, 상기 라이브러리에 분기 식별자를 포함하고 있을 경우, 상기 호출 프로그램의 PLT 엔트리에 분기 식별자를 포함하는 명령 코드를 삽입하고, 상기 라이브러리에 분기 식별자를 포함하고 있지 않을 경우, 동적 링커에 의한 심볼 바인딩을 통해 호출 프로그램을 다이렉트로 호출하는 GOT 보호 장치. |
| 8 | 제7항에 있어서,상기 유효성 검사부는,상기 라이브러리에 상기 생성된 분기 식별자를 삽입하고, 상기 라이브러리에 삽입된 분기 식별자와 상기 호출 프로그램 PLT(Procedure Linkage Table) 엔트리에서 상기 코드화된 분기 식별자 코드를 검사하기 위하여 추가된 명령 코드를 통해 GOT 엔트리가 가리키는 분기 목표점에 위치한 값을 비교하고, 상기 비교한 결과값이 일치할 경우 분기를 진행하고, 상기 비교한 결과값이 일치하지 않을 경우, GOT 엔트리 값을 재설정하는 것을 특징으로 하는 GOT 보호 장치. |
| 9 | 삭제 |
| 10 | 제7항에 있어서,상기 유효성 검사부는,상기 호출 프로그램에 CFI 기반의 GOT 변조 공격 방지 방법이 적용되지 않을 경우, 분기 식별자 검사를 미수행하는 것을 특징으로 하는 GOT 보호 장치. |
| 11 | 삭제 |
| 12 | 삭제 |