System and Method for Branch Target Tagging Extension on RISC-V

The present invention relates to a device and method for extending a RISC-V architecture command for extending a branch tag designation, which is able to guarantee the control-flow integrity of an Internet-of-things (IoT) device and block a control-flow hijacking attack, which is a representative se...

Full description

Saved in:
Bibliographic Details
Main Authors KWON DONGHYUN, PARK SEONGHWAN
Format Patent
LanguageEnglish
Korean
Published 13.07.2023
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:The present invention relates to a device and method for extending a RISC-V architecture command for extending a branch tag designation, which is able to guarantee the control-flow integrity of an Internet-of-things (IoT) device and block a control-flow hijacking attack, which is a representative security threat. The device comprises: a tag value storage command insertion unit inserting a set tag command for storing a tag value at an indirect branch previous location when compiling a source code; a tag value comparison command insertion unit inserting a check tag command for comparing a tag value right after performing the indirect branching; a tag value comparison unit comparing a value stored in a control status register at an entry point of a function with a value granted to a command at the entry point of the function, and determining whether the control flow transmission has conducted to a correct destination or not; and a command execution unit which, when the tag values match when compared by the tag value comparison unit, allows the execution of the command, and when the tag values do not match, processes the case as an exception. 본 발명은 사물 인터넷 기기의 제어 흐름 무결성(Control-flow integrity)를 보장하고 대표적인 보안 위협인 제어 흐름 탈취 공격(Control-flow hijacking attack)을 막아낼 수 있도록 한 분기 태그 지정 확장을 위한 리스크 파이브 아키텍처 명령어 확장을 위한 장치 및 방법에 관한 것으로, 소스 코드 컴파일시 간접 분기 직전위치에 태그 값 저장을 위한 setTag명령어를 삽입하는 태그값 저장 명령어 삽입부;간접분기 수행 직후 태그 값 비교를 위한 checkTag명령어를 삽입하는 태그값 비교 명령어 삽입부;함수의 진입 지점에서 제어 상태 레지스터에 저장된 값과 함수 진입지점의 명령어에 부여된 값을 비교함으로써 올바른 목적지로 제어 흐름 전송이 수행되었는지 판단하는 태그값 비교부;태그값 비교부의 태그 값 비교를 통해 일치시에는 명령어 실행 허용을 하고, 불일치시 예외처리를 하는 명령어 실행부;를 포함하는 것이다.
Bibliography:Application Number: KR20220002304