KR102161777B1 - Trusted execution environment system - Google Patents

Trusted execution environment system Download PDF

Info

Publication number
KR102161777B1
KR102161777B1 KR1020180161529A KR20180161529A KR102161777B1 KR 102161777 B1 KR102161777 B1 KR 102161777B1 KR 1020180161529 A KR1020180161529 A KR 1020180161529A KR 20180161529 A KR20180161529 A KR 20180161529A KR 102161777 B1 KR102161777 B1 KR 102161777B1
Authority
KR
South Korea
Prior art keywords
application unit
execution
region
application
execution region
Prior art date
Application number
KR1020180161529A
Other languages
Korean (ko)
Other versions
KR20200073413A (en
Inventor
호준원
Original Assignee
서울여자대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울여자대학교 산학협력단 filed Critical 서울여자대학교 산학협력단
Priority to KR1020180161529A priority Critical patent/KR102161777B1/en
Publication of KR20200073413A publication Critical patent/KR20200073413A/en
Application granted granted Critical
Publication of KR102161777B1 publication Critical patent/KR102161777B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 신뢰 실행 환경 시스템에 관한 것이다. 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템은 서로 독립적으로 운영되는 제 1 실행 영역과 제 2 실행 영역을 포함하는 신뢰 실행 환경(Trusted Execution Environment) 시스템에 있어서, 상기 제 1 실행 영역에 설치되어 사전에 정해진 기능을 실행하면서 상기 제 1 실행 영역을 감시하고, 상기 제 1 실행 영역에서 감지된 비정상적인 행위에 관한 정보를 상기 제 2 실행 영역으로 송신하는 제 1 애플리케이션부 및 상기 제 2 실행 영역에 설치되어 상기 제 1 애플리케이션부로부터 상기 비정상적인 행위에 관한 정보를 수신하고, 상기 수신된 정보를 기반으로 상기 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지 실행 여부를 결정하는 제 2 애플리케이션부를 포함한다.The present invention relates to a trusted execution environment system. A trusted execution environment system according to an embodiment of the present invention is a Trusted Execution Environment system including a first execution region and a second execution region operated independently from each other, and is installed in the first execution region. Installed in the first application unit and the second execution region, which monitors the first execution region while executing a predetermined function and transmits information on abnormal behavior detected in the first execution region to the second execution region And a second application unit configured to receive information on the abnormal behavior from the first application unit and determine whether to perform a scan or detection of a malicious behavior for the first execution region based on the received information.

Description

신뢰 실행 환경 시스템{TRUSTED EXECUTION ENVIRONMENT SYSTEM}Trusted execution environment system {TRUSTED EXECUTION ENVIRONMENT SYSTEM}

본 발명은 신뢰 실행 환경 시스템에 관한 것이다.The present invention relates to a trusted execution environment system.

종래기술에서는 안드로이드 스마트폰의 신뢰 실행 환경 아래에서 비보안 영역에 대한 다양한 검사(예를 들면, 메모리 무결성 검사, 안드로이드 커널 무결성 검사 등)를 수행할 때나 비보안 영역에서의 악성 행위를 탐지할 때 주기적인 방식 또는 인터럽트 버튼을 통한 매뉴얼 방식을 사용하였다. 비보안 영역에 대한 다양한 검사를 수행하거나 비보안 영역에서의 악성 행위를 탐지할 때, 주기적인 또는 매뉴얼 방식을 사용 한다는 점에서 이러한 종래기술은 효율적이지 못하다.In the prior art, a periodic method when performing various checks (eg, memory integrity check, Android kernel integrity check, etc.) for non-secure areas under the trusted execution environment of an Android smartphone or detecting malicious behavior in non-secure areas. Alternatively, the manual method through the interrupt button was used. When performing various tests on the non-security area or detecting malicious behavior in the non-security area, this conventional technique is not efficient in that a periodic or manual method is used.

또한, 비보안 영역에 있는 안드로이드 운영체제가 공격자의 제어 권한 아래에 놓이게 된다면, 이러한 종래 기술을 사용할 경우에 비보안 영역에 대한 다양한 검사와 비보안 영역에 대한 악성 행위 탐지가 공격자에 의해 무력화 될 수 있어서 종래기술은 안전성면에서도 좋지 못한 문제점이 있다.In addition, if the Android operating system in the non-security area is placed under the control of the attacker, when using such a conventional technology, various scans in the non-security area and detection of malicious behavior in the non-security area may be disabled by the attacker. There is also a problem that is not good in terms of safety.

본 발명은 안전하고 효율적인 방식으로 시스템 내에서 발생하는 악성 행위를 탐지할 수 있도록 별도의 통신 채널을 구축하기 위한 것이다.The present invention is to establish a separate communication channel to detect malicious behavior occurring in the system in a safe and efficient manner.

또한, 본 발명은 시스템이 공격자의 제어 아래에 놓이더라도 별도의 데이터 전송 규칙으로 구축된 통신 채널을 통해 시스템에 대한 다양한 검사와 시스템에서 발생하는 악성 행위를 탐지하기 위한 것이다.In addition, the present invention is to detect various scans of the system and malicious actions occurring in the system through a communication channel established with a separate data transmission rule even if the system is under the control of an attacker.

본 발명의 일 측면에 따르면, 신뢰 실행 환경 시스템은 서로 독립적으로 운영되는 제 1 실행 영역과 제 2 실행 영역을 포함하는 신뢰 실행 환경(Trusted Execution Environment) 시스템에 있어서, 상기 제 1 실행 영역에 설치되어 사전에 정해진 기능을 실행하면서 상기 제 1 실행 영역을 감시하고, 상기 제 1 실행 영역에서 감지된 비정상적인 행위에 관한 정보를 상기 제 2 실행 영역으로 송신하는 제 1 애플리케이션부; 및 상기 제 2 실행 영역에 설치되어 상기 제 1 애플리케이션부로부터 상기 비정상적인 행위에 관한 정보를 수신하고, 상기 수신된 정보를 기반으로 상기 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지 실행 여부를 결정하는 제 2 애플리케이션부를 포함할 수 있다.According to an aspect of the present invention, a trusted execution environment system is a Trusted Execution Environment (Trusted Execution Environment) system including a first execution region and a second execution region operated independently from each other, and is installed in the first execution region. A first application unit that monitors the first execution region while executing a predetermined function, and transmits information on abnormal behavior detected in the first execution region to the second execution region; And a second execution region installed in the second execution region, receiving information on the abnormal behavior from the first application unit, and determining whether to perform a scan or detection of a malicious behavior for the first execution region based on the received information. It may include 2 application units.

또한, 제 1 실행 영역은 비보안영역이고, 제 2 실행 영역은 보안영역일 수 있다.Also, the first execution region may be a non-security region, and the second execution region may be a security region.

또한, 상기 제 1 애플리케이션부는, 상기 제 1 실행 영역에서 상기 사전에 정해진 기능을 실행하여 애플리케이션 데이터를 생성하는 수행 모듈; 및 상기 제 1 실행 영역에서 동작하는 애플리케이션의 비정상적인 행위를 감지하는 감지 모듈을 포함할 수 있다.In addition, the first application unit may include an execution module configured to generate application data by executing the predetermined function in the first execution region; And a detection module for detecting an abnormal behavior of an application operating in the first execution region.

또한, 상기 제 1 애플리케이션부는, 상기 감지 모듈에서 감지된 비정상적인 행위에 관한 정보를 기반으로 상기 수행 모듈에서 생성된 애플리케이션 데이터 중 적어도 일부를 상기 제 2 애플리케이션부로 송신할 수 있다.In addition, the first application unit may transmit at least a portion of application data generated by the execution module to the second application unit based on information on abnormal behavior detected by the detection module.

또한, 상기 제 1 애플리케이션부는, 상기 감지 모듈에서 감지된 비정상적인 행위에 관한 정보에 따라 상기 수행 모듈에서 생성된 애플리케이션 데이터 중 타겟 애플리케이션 데이터를 선별하고, 상기 선별된 타겟 애플리케이션 데이터를 상기 제 2 애플리케이션부로 송신할 수 있다.In addition, the first application unit selects target application data among application data generated by the execution module according to information on abnormal behavior detected by the detection module, and transmits the selected target application data to the second application unit. can do.

또한, 상기 제 2 애플리케이션부는, 상기 제 1 애플리케이션부로부터 수신된 상기 타겟 애플리케이션 데이터의 크기를 기 설정된 임계값과 비교하고, 비교 결과에 따라 감시 정보 비트를 생성할 수 있다.In addition, the second application unit may compare the size of the target application data received from the first application unit with a preset threshold value, and generate a monitoring information bit according to the comparison result.

또한, 상기 제 2 애플리케이션부는, 상기 제 1 애플리케이션부로부터 수신된 애플리케이션 데이터의 크기가 상기 임계값보다 크거나 같은 경우, '1'에 해당하는 상기 감시 정보 비트를 생성하고, 상기 제 1 애플리케이션부로부터 수신된 애플리케이션 데이터의 크기가 상기 임계값보다 작은 경우, '0'에 해당하는 상기 감시 정보 비트를 생성할 수 있다.In addition, when the size of the application data received from the first application unit is greater than or equal to the threshold value, the second application unit generates the monitoring information bit corresponding to '1', and from the first application unit When the size of the received application data is smaller than the threshold value, the monitoring information bit corresponding to '0' may be generated.

또한, 상기 제 2 애플리케이션부는, 상기 생성된 감시 정보 비트를 기반으로 상기 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지의 실행 여부를 결정할 수 있다.In addition, the second application unit may determine whether to perform a scan for the first execution region or detect a malicious behavior based on the generated monitoring information bit.

본 발명의 일 실시 예에 의하면, 안전하고 효율적인 방식으로 시스템 내에서 발생하는 악성 행위를 탐지할 수 있도록 별도의 통신 채널을 구축할 수 있다.According to an embodiment of the present invention, a separate communication channel may be established to detect malicious behavior occurring in the system in a safe and efficient manner.

또한, 본 발명의 일 실시 예에 의하면, 시스템이 공격자의 제어 아래에 놓이더라도 별도의 데이터 전송 규칙으로 구축된 통신 채널을 통해 시스템에 대한 다양한 검사와 시스템에서 발생하는 악성 행위를 탐지할 수 있다.In addition, according to an embodiment of the present invention, even if the system is under the control of an attacker, various scans of the system and malicious behavior occurring in the system may be detected through a communication channel established with a separate data transmission rule.

도 1은 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 개념도이다.
도 2는 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 일 실시 예이다.
도 4는 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 다른 실시 예이다.
1 is a conceptual diagram of a trusted execution environment system according to an embodiment of the present invention.
2 is a block diagram of a trusted execution environment system according to an embodiment of the present invention.
3 is an embodiment of a trusted execution environment system according to an embodiment of the present invention.
4 is another embodiment of a trusted execution environment system according to an embodiment of the present invention.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Other advantages and features of the present invention, and a method of achieving them will become apparent with reference to embodiments to be described later in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only this embodiment is intended to complete the disclosure of the present invention, and to provide ordinary knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to those who have it, and the invention is only defined by the scope of the claims.

만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.Even if not defined, all terms (including technical or scientific terms) used herein have the same meaning as commonly accepted by universal technology in the prior art to which this invention belongs. Terms defined by general dictionaries may be construed as having the same meaning as the related description and/or the text of this application, and not conceptualized or excessively formalized, even if not clearly defined herein. Won't.

본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.The terms used in the present specification are for describing exemplary embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used in the specification,'includes' and/or various conjugated forms of this verb, for example,'includes','includes','includes','includes', etc. refer to the mentioned composition, ingredient, component, Steps, operations and/or elements do not preclude the presence or addition of one or more other compositions, components, components, steps, operations and/or elements. In the present specification, the term'and/or' refers to each of the listed components or various combinations thereof.

한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.Meanwhile, terms such as'~ unit','~ group','~ block', and'~ module' used throughout this specification may refer to a unit that processes at least one function or operation. For example, it can mean software, hardware components such as FPGAs or ASICs. However,'~bu','~gi','~block', and'~module' are not limited to software or hardware. The'~ unit','~ group','~ block', and'~ module' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors.

따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.Therefore, as an example,'~ unit','~ group','~ block', and'~ module' are components such as software components, object-oriented software components, class components, and task components. S, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays and Include variables. The functions provided in the components and'~Boo','~Gi','~Block', and'~Module' include a smaller number of elements and'~Boo','~Gi','~Block. It may be combined into','~modules' or further separated into additional components and'~unit','~group','~block', and'~module'.

이하, 본 발명은 ARM 주식회사의 ARM TrustZone 기술을 기초로 설명하며, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다.Hereinafter, the present invention will be described based on the ARM TrustZone technology of ARM Corporation, and an embodiment of the present invention will be described in detail with reference to the accompanying drawings in the present specification.

도 1은 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 개념도이다.1 is a conceptual diagram of a trusted execution environment system according to an embodiment of the present invention.

도 1을 참조하면, 제 1 실행 영역과 제 2 실행 영역을 포함하는 신뢰 실행 환경 환경을 이해할 수 있다. 신뢰 실행 환경은 하나의 물리 프로세서 코어가 보안영역(Secure world)과 비보안영역(Normal world)로 나누어져 있다. 각각의 영역은 CPU의 레지스터가 분리되어 있고, 보안영역에서만 접근이 가능한 디바이스나 메모리 영역을 지정할 수 있다. 비보안영역에서 보안영역에서만 접근이 가능한 메모리 영역을 접근하게 되면 신뢰 실행 환경 페이지폴트가 일어난다.Referring to FIG. 1, it is possible to understand a trusted execution environment environment including a first execution region and a second execution region. In a trusted execution environment, one physical processor core is divided into a secure world and a normal world. Each area has a separate CPU register, and a device or memory area that can only be accessed in the secure area can be designated. A trusted execution environment page fault occurs when a memory area accessible only from the secure area is accessed from the non-secure area.

또한, 인터럽트를 보안영역과 비보안영역으로 나눌 수 있다. 이는 현재 인터럽트가 보안영역일 때는 비보안영역에서 인터럽트는 발생하지 않고, 비보안영역일 때는 비보안영역 및 보안영역에서 인터럽트가 발생할 수 있다. 이와 같이 신뢰 실행 환경 기반의 제 1 실행 영역과 제 2 실행 영역을 포함하는 시스템은 CPU, 주소 공간, 메모리, 디바이스를 각 영역마다 고립시킬 수 있다.Also, the interrupt can be divided into a secure area and a non-secure area. This means that when the current interrupt is in the secure area, the interrupt does not occur in the non-secure area, and when the interrupt is in the non-secure area, the interrupt may occur in the non-secure area and in the secure area. In this way, the system including the first execution region and the second execution region based on the trusted execution environment may isolate the CPU, address space, memory, and device for each region.

또한, 신뢰 실행 환경은 별도의 CPU모드에 기존의 FIQ, IRQ, Abort, Undefined, Kernel, User에 모니터(Monitor) 모드를 추가 할 수 있다. 모니터 모드는 보안영역에만 존재한다. 여기서, 모니터 모드에 진입한다는 것은 보안영영역에 접근한다는 말이다.In addition, the trusted execution environment can add a monitor mode to the existing FIQ, IRQ, Abort, Undefined, Kernel, and User in a separate CPU mode. The monitor mode exists only in the security area. Here, entering the monitor mode means accessing the security zone.

도 1을 다시 참조하면, 모니터 모드로의 접근은 SMC(Secure Monitor Call)명령이 실행된 경우이거나 IRQ 및 FIQ 발생 시 성립된다. 또한, SMC 명령은 커널모드에서만 실행이 가능하므로 애플리케이션 레벨에서 영역 간의 전환은 할 수 없습니다.Referring back to FIG. 1, the access to the monitor mode is established when the Secure Monitor Call (SMC) command is executed or when IRQ and FIQ occur. Also, since SMC commands can only be executed in kernel mode, switching between areas at the application level is not possible.

정리하면, 하나의 영역은 다른 영역에 영향을 끼칠 수 없으며, 비보안영역은 보안영역의 실행을 인터럽트나 장치를 사용하더라도 방해할 수 없다. 그렇기 때문에 일반적으로 루트킷으로부터 안전하게 보호기가 위한 높은 신뢰성이 요구되는 프로그램은 보안영역에서 실행하고, 그 외의 프로그램은 비보안영역에서 실행한다.In summary, one area cannot affect another area, and the non-security area cannot interfere with the execution of the security area even if an interrupt or device is used. Therefore, in general, programs that require high reliability for a safe protector from rootkits are executed in the secure area, and other programs are executed in the non-security area.

도 2는 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 블록도이다.2 is a block diagram of a trusted execution environment system according to an embodiment of the present invention.

도 2를 참조하면, 신뢰 실행 환경 시스템(10)은 제 1 실행 영역과 제 2 실행 영역을 포함하는 신뢰 실행 환경 환경 시스템에 있어서, 제 1 애플리케이션부(100) 및 제 2 애플리케이션부(200)를 포함한다. 여기서, 제 1 애플리케이션부(100)는 제 1 실행 영역에 포함되고, 제 2 애플리케이션부(200)는 제 2 실행 영역에 포함된다.Referring to FIG. 2, the trusted execution environment system 10 includes a first application unit 100 and a second application unit 200 in a trusted execution environment system including a first execution region and a second execution region. Include. Here, the first application unit 100 is included in the first execution area, and the second application unit 200 is included in the second execution area.

본 발명에서 제 1 애플리케이션부(100)와 제 2 애플리케이션부(200)는 별도의 데이터 전송 규칙으로 구축된 통신 채널을 통하여 데이터를 송수신한다. 이와 같은 별도의 데이터 전송 규칙으로 구축된 통신 채널을 통하여 제 1 애플리케이션부(100)와 제 2 애플리케이션부(200)가 통신하게 되면 제 1 실행 영역의 시스템이 공격자 제어 아래에 놓이더라도, 제 2 실행 영역이 안전하게 제 1 실행 영역에 대한 다양한 검사와 제 1 실행 영역에서 발생하는 악성 행위 탐지가 가능하다.In the present invention, the first application unit 100 and the second application unit 200 transmit and receive data through a communication channel established with separate data transmission rules. When the first application unit 100 and the second application unit 200 communicate through a communication channel established with such a separate data transmission rule, even if the system in the first execution area is under attacker control, the second execution is performed. It is possible to safely scan the first execution region in the region and detect malicious behaviors occurring in the first execution region.

상기 제 1 애플리케이션부(100)는 제 1 실행 영역에 설치되어 사전에 정해진 기능을 실행하면서 제 1 실행 영역을 감시하고, 제 1 실행 영역에서 감지된 비정상적인 행위에 관한 정보를 제 2 실행 영역으로 송신한다. 또한, 제 1 애플리케이션부(100)는 수행 모듈(110) 및 감지 모듈(120)을 포함한다.The first application unit 100 is installed in the first execution region and monitors the first execution region while executing a predetermined function, and transmits information on the abnormal behavior detected in the first execution region to the second execution region. do. In addition, the first application unit 100 includes an execution module 110 and a detection module 120.

상기 수행 모듈(110)은 제 1 실행 영역에서 사전에 정해진 기능을 실행하여 애플리케이션 데이터를 생성한다. 예를 들면 센서 데이터(위치, 시간, 잡음) 처리, 은행, 게임 기능 등을 수행하면서 애플리케이션 데이터를 생성한다.The execution module 110 generates application data by executing a predetermined function in the first execution region. For example, it generates application data while processing sensor data (location, time, noise), banking, and gaming functions.

상기 감지 모듈(120)은 제 1 실행 영역에서 동작하는 애플리케이션의 비정상적인 행위를 감지한다. 구체적으로 제 1 실행 영역에서 동작하는 시스템 또는 동작 중인 다른 애플리케이션의 비정상적이거나 악의적인 행위를 감지한다. 예를 들면, 감지 모듈(120)에 대한 난독화(obfuscation), 패킹(packing), 다형성(polymorphism)등을 통해서 공격자에 의한 정적 분석을 회피할 수 있다.The detection module 120 detects an abnormal behavior of an application operating in the first execution area. Specifically, abnormal or malicious behavior of a system operating in the first execution region or another application in operation is detected. For example, static analysis by an attacker may be avoided through obfuscation, packing, polymorphism, etc. of the detection module 120.

상기 제 2 애플리케이션부(200)는 제 2 실행 영역에 설치되어 제 1 애플리케이션부로부터 비정상적인 행위에 관한 정보를 수신하고, 수신된 정보를 기반으로 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지 실행 여부를 결정한다. The second application unit 200 is installed in the second execution region, receives information on abnormal behavior from the first application unit, and determines whether to perform a scan or detection of malicious behavior on the first execution region based on the received information. Decide.

도 3은 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 일 실시 예이다.3 is an embodiment of a trusted execution environment system according to an embodiment of the present invention.

도 3을 참조하면, 제 1 애플리케이션부(100)는 감지 모듈(120)에서 감지된 비정상적인 행위에 관한 정보를 기반으로 수행 모듈(110)에서 생성된 애플리케이션 데이터 중 적어도 일부를 제 2 애플리케이션부(200)로 송신한다. 이후에, 제 1 애플리케이션부(100)는 감지 모듈(120)에서 감지된 비정상적인 행위에 관한 정보에 따라 수행 모듈(110)에서 생성된 애플리케이션 데이터 중 타겟 애플리케이션 데이터를 선별하고, 선별된 타겟 애플리케이션 데이터를 제 2 애플리케이션부(200)로 송신한다.Referring to FIG. 3, the first application unit 100 transfers at least some of the application data generated by the execution module 110 to the second application unit 200 based on information on abnormal behavior detected by the detection module 120. ). Thereafter, the first application unit 100 selects the target application data from the application data generated by the execution module 110 according to the information on the abnormal behavior detected by the detection module 120, and selects the selected target application data. It transmits to the second application unit 200.

제 2 애플리케이션부(200)는 제 1 애플리케이션부(100)로부터 수신된 타겟 애플리케이션 데이터의 크기를 기 설정된 임계값과 비교하고, 비교 결과에 따라 감시 정보 비트를 생성한다. 여기서, 제 1 애플리케이션부(100)와 제 2 애플리케이션부(200)는 기 설정된 임계값을 공유한다. 공유된 기 설정된 임계값을 통해 제 2 애플리케이션부(200)는 제 1 애플리케이션부(100)로부터 수신된 타겟 애플리케이션 데이터의 크기를 공유된 기 설정된 임계값과 비교하고, 비교 결과에 따라 감시 정보 비트를 생성한다.The second application unit 200 compares the size of the target application data received from the first application unit 100 with a preset threshold value, and generates a monitoring information bit according to the comparison result. Here, the first application unit 100 and the second application unit 200 share a preset threshold value. Through the shared preset threshold, the second application unit 200 compares the size of the target application data received from the first application unit 100 with a shared preset threshold, and determines the monitoring information bit according to the comparison result. Generate.

제 2 애플리케이션부(200)는 제 1 애플리케이션부(100)로부터 수신된 애플리케이션 데이터의 크기가 기 설정된 임계값보다 크거나 같은 경우 '1'에 해당하는 감시 정보 비트를 생성하고, 제 1 애플리케이션부(100)로부터 수신된 애플리케이션 데이터의 크기가 기 설정된 임계값보다 작은 경우 '0'에 해당하는 감시 정보 비트를 생성한다. 본 발명은 생성된 애플리케이션의 데이터 크기에 따라서 제 1 애플리케이션부(100)가 제 2 애플리케이션부(200)로 보내는 감시 정보 비트를 생성할 수 있다.The second application unit 200 generates a monitoring information bit corresponding to '1' when the size of the application data received from the first application unit 100 is greater than or equal to a preset threshold value, and the first application unit ( When the size of the application data received from 100) is smaller than a preset threshold, a monitoring information bit corresponding to '0' is generated. The present invention may generate a monitoring information bit transmitted from the first application unit 100 to the second application unit 200 according to the data size of the generated application.

이후에, 제 2 애플리케이션부(200)는 생성된 감시 정보 비트를 기반으로 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지의 실행 여부를 결정한다.Thereafter, the second application unit 200 determines whether to perform a scan for the first execution region or detect a malicious behavior based on the generated monitoring information bit.

예를 들면, 기 설정된 임계값이 100이고, 제 1 애플리케이션부(100)가 1, 1, 0, 0, 1, 0의 감시 정보 비트들을 제 2 애플리케이션부(200)에 송신하고자 한다면, 제 1 애플리케이션부(100)는 제 2 애플리케이션부(200)로 크기가 200, 500, 60, 30, 120, 20 바이트인 타겟 애플리케이션 데이터들을 송신한다. 제 2 애플리케이션부(200)는 각각의 수신 받은 타겟 애플리케이션 데이터들의 크기와 기 설정된 임계값을 비교함으로써 1, 1, 0, 0, 1, 0으로 감시 정보 비트들을 생성한다. 이후에, 감시 정보 비트들을 분석하여 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지가 필요한지를 결정한다.For example, if the preset threshold is 100 and the first application unit 100 wants to transmit the monitoring information bits of 1, 1, 0, 0, 1, 0 to the second application unit 200, the first The application unit 100 transmits target application data having sizes of 200, 500, 60, 30, 120, and 20 bytes to the second application unit 200. The second application unit 200 generates monitoring information bits as 1, 1, 0, 0, 1, 0 by comparing the size of each received target application data with a preset threshold value. Thereafter, the monitoring information bits are analyzed to determine whether the first execution region needs to be inspected or malicious behavior detected.

도 4는 본 발명의 일 실시 예에 따른 신뢰 실행 환경 시스템의 다른 실시 예이다.4 is another embodiment of a trusted execution environment system according to an embodiment of the present invention.

도 4를 참조하여 설명하면, 제 1 애플리케이션부(100)가 제 2 애플리케이션부(200)에 송신하고자 하는 애플리케이션 데이터를 송신하고자 하는 감시 정보 비트들 값에 맞추어서 조절할 수 있다. 예를 들면, 기 설정된 임계값이 100이고, 제 1 애플리케이션부(100)는 제 2 애플리케이션부(200)에게 1, 0, 1의 감시 정보 비트를 보내고자 한다. 이러한 경우 생성된 타겟 애플리케이션 데이터들의 크기가 200, 250, 70, 120 바이트 일 때, 제 1 애플리케이션부(100)는 생성된 타겟 애플리케이션 데이터들 중 크기가 200, 70, 120 바이트에 대응되는 애플리케이션 데이터들만 전송함으로써 제 2 애플리케이션부(200)가 1, 0, 1의 감시 정보 비트들을 생성할 수 있게 할 수 있다.Referring to FIG. 4, the first application unit 100 may adjust application data to be transmitted to the second application unit 200 according to values of the monitoring information bits to be transmitted. For example, the preset threshold is 100, and the first application unit 100 attempts to send 1, 0, and 1 monitoring information bits to the second application unit 200. In this case, when the size of the generated target application data is 200, 250, 70, 120 bytes, the first application unit 100 only applies application data corresponding to the size of 200, 70, 120 bytes among the generated target application data. By transmitting, the second application unit 200 may generate 1, 0, and 1 monitoring information bits.

다시 말하면, 제 1 애플리케이션부(100)는 Spy Application으로써 제 2 애플리케이션부(200)에게 필요한 감시 정보 비트를 별도의 데이터 전송 규칙으로 구축된 통신 채널을 통해서 전달하는 것이 목적이기 때문에, 필요한 감시 정보 비트에 대응하는 애플리케이션 데이터를 제 2 애플리케이션부(200)에 전송하고 대응하지 않는 애플리케이션 데이터는 전송하지 않아도 제 1 애플리케이션부(100)가 동작하는데 문제가 없다. 또한, 공격자 제어 아래에 있는 커널도 제 1 애플리케이션부(100)와 제 2 애플리케이션부(200)가 통신하는 별도의 데이터 전송 규칙으로 구축된 채널이 아닌 공개 채널을 통해 통신을 하기 때문에, 위와 같은 제 1 애플리케이션부(100)의 동작을 정상적으로 볼 것이다.In other words, since the purpose of the first application unit 100 as a Spy Application is to transmit the necessary monitoring information bits to the second application unit 200 through a communication channel established with a separate data transmission rule, the necessary monitoring information bits There is no problem in operating the first application unit 100 even if application data corresponding to is transmitted to the second application unit 200 and application data that does not correspond to is not transmitted. In addition, since the kernel under attacker control communicates through an open channel instead of a channel built with a separate data transmission rule that the first application unit 100 and the second application unit 200 communicate with, 1 The operation of the application unit 100 will be viewed normally.

본 발명의 일 실시 예에 따르면, 제 2 애플리케이션부(200)는 생성된 감시 정보 비트를 기초로 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지가 필요한지를 결정한다. 제 1 애플리케이션부(100)가 제 2 애플리케이션부(200)로 보내고자하는 감시 정보 비트를 기초로 제 2 실행 영역에서 제 2 애플리케이션부(200)가 생성한 감시 정보 비트를 비교하여 제 1 실행 영역에 대한 검사 및 악성 행위 탐지가 필요한지를 판단한다.According to an embodiment of the present invention, the second application unit 200 determines whether it is necessary to scan the first execution region or detect malicious behavior based on the generated monitoring information bit. The first execution region by comparing the monitoring information bit generated by the second application unit 200 in the second execution region based on the monitoring information bit that the first application unit 100 wants to send to the second application unit 200 Determine whether it is necessary to scan for and detect malicious behavior.

이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당 업계의 기술 또는 지식의 범위 내에서 변경 또는 수정이 가능하다. 저술한 실시 예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.The detailed description above is illustrative of the present invention. In addition, the above description shows and describes preferred embodiments of the present invention, and the present invention can be used in various other combinations, modifications and environments. That is, changes or modifications may be made within the scope of the concept of the invention disclosed in the present specification, the scope equivalent to the disclosed content, and/or within the scope of technology or knowledge in the art. The embodiment described above describes the best state for implementing the technical idea of the present invention, and various changes required in the specific application fields and uses of the present invention are possible. Therefore, the detailed description of the invention is not intended to limit the invention to the disclosed embodiment. In addition, the appended claims should be construed as including other embodiments.

10 : 신뢰 실행 환경 시스템
100 : 제 1 애플리케이션부
110 : 수행 모듈
120 : 감지 모듈
200 : 제 2 애플리케이션부
10: Trusted execution environment system
100: first application unit
110: execution module
120: detection module
200: second application unit

Claims (8)

서로 독립적으로 운영되는 제 1 실행 영역과 제 2 실행 영역을 포함하는 신뢰 실행 환경(Trusted Execution Environment) 시스템에 있어서,
상기 제 1 실행 영역에 설치되어 상기 제 1 실행 영역을 감시하고, 상기 제 1 실행 영역에서 사전에 정해진 기능을 실행하여 애플리케이션 데이터를 생성하는 수행모듈, 및 상기 제 1 실행 영역에서 동작하는 애플리케이션의 비정상적인 행위를 감지하는 감지 모듈을 포함하고, 상기 감지된 비정상적인 행위에 관한 정보를 상기 제 2 실행 영역으로 송신하는 제 1 애플리케이션부; 및
상기 제 2 실행 영역에 설치되어 상기 제 1 애플리케이션부로부터 상기 비정상적인 행위에 관한 정보를 수신하고, 상기 수신된 정보를 기반으로 상기 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지 실행 여부를 결정하는 제 2 애플리케이션부를 포함하되,
상기 제 1 애플리케이션부는,
상기 감지 모듈에서 감지된 비정상적인 행위에 관한 정보에 따라 상기 수행 모듈에서 생성된 애플리케이션 데이터 중 타겟 애플리케이션 데이터를 선별하며, 상기 선별된 타겟 애플리케이션 데이터를 상기 제 2 애플리케이션부로 송신하고,
상기 제 2 애플리케이션부는,
상기 제 1 애플리케이션부로부터 수신된 상기 타겟 애플리케이션 데이터의 크기를 기 설정된 임계값과 비교하고, 비교 결과에 따라 감시 정보 비트를 생성하는 신뢰 실행 환경 시스템.
In the Trusted Execution Environment (Trusted Execution Environment) system including a first execution region and a second execution region operated independently of each other,
An execution module installed in the first execution region to monitor the first execution region and to generate application data by executing a predetermined function in the first execution region, and abnormality of an application operating in the first execution region. A first application unit including a detection module for detecting an action, and transmitting information on the detected abnormal action to the second execution area; And
A second installed in the second execution region to receive information on the abnormal behavior from the first application unit, and to determine whether to perform a scan or detection of a malicious behavior for the first execution region based on the received information Including the application unit,
The first application unit,
Selecting target application data among application data generated by the execution module according to information on abnormal behavior detected by the detection module, and transmitting the selected target application data to the second application unit,
The second application unit,
A trusted execution environment system for comparing the size of the target application data received from the first application unit with a preset threshold value, and generating a monitoring information bit according to the comparison result.
제 1 항에 있어서,
제 1 실행 영역은 비보안영역이고, 제 2 실행 영역은 보안영역인 신뢰 실행 환경 시스템.
The method of claim 1,
The first execution region is a non-security region, and the second execution region is a security region.
삭제delete 제 1 항에 있어서,
상기 제 1 애플리케이션부는,
상기 감지 모듈에서 감지된 비정상적인 행위에 관한 정보를 기반으로 상기 수행 모듈에서 생성된 애플리케이션 데이터 중 적어도 일부를 상기 제 2 애플리케이션부로 송신하는 신뢰 실행 환경 시스템.
The method of claim 1,
The first application unit,
A trusted execution environment system that transmits at least some of application data generated by the execution module to the second application unit based on information on abnormal behavior detected by the detection module.
삭제delete 삭제delete 제 1 항에 있어서,
상기 제 2 애플리케이션부는,
상기 제 1 애플리케이션부로부터 수신된 애플리케이션 데이터의 크기가 상기 임계값보다 크거나 같은 경우, '1'에 해당하는 상기 감시 정보 비트를 생성하고,
상기 제 1 애플리케이션부로부터 수신된 애플리케이션 데이터의 크기가 상기 임계값보다 작은 경우, '0'에 해당하는 상기 감시 정보 비트를 생성하는 신뢰 실행 환경 시스템.
The method of claim 1,
The second application unit,
When the size of the application data received from the first application unit is greater than or equal to the threshold value, the monitoring information bit corresponding to '1' is generated, and
When the size of the application data received from the first application unit is smaller than the threshold value, the trusted execution environment system generates the monitoring information bit corresponding to '0'.
제 1 항에 있어서,
상기 제 2 애플리케이션부는,
상기 생성된 감시 정보 비트를 기반으로 상기 제 1 실행 영역에 대한 검사 또는 악성 행위 탐지의 실행 여부를 결정하는 신뢰 실행 환경 시스템.
The method of claim 1,
The second application unit,
A trusted execution environment system that determines whether to perform a scan for the first execution region or detect malicious behavior based on the generated monitoring information bit.
KR1020180161529A 2018-12-14 2018-12-14 Trusted execution environment system KR102161777B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180161529A KR102161777B1 (en) 2018-12-14 2018-12-14 Trusted execution environment system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180161529A KR102161777B1 (en) 2018-12-14 2018-12-14 Trusted execution environment system

Publications (2)

Publication Number Publication Date
KR20200073413A KR20200073413A (en) 2020-06-24
KR102161777B1 true KR102161777B1 (en) 2020-10-05

Family

ID=71408134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180161529A KR102161777B1 (en) 2018-12-14 2018-12-14 Trusted execution environment system

Country Status (1)

Country Link
KR (1) KR102161777B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102236761B1 (en) 2020-12-22 2021-04-06 주식회사 유니온플레이스 Internet of things device, and system and method of managing internet of things devices
CN115037482A (en) * 2022-06-10 2022-09-09 维沃移动通信有限公司 Fraud detection method and device, electronic equipment and readable storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140111943A (en) * 2013-03-12 2014-09-22 삼성전자주식회사 Secure environment apparatus and method thereof
KR102327782B1 (en) * 2015-05-29 2021-11-18 한국과학기술원 Electronic device and method for approaching to kernel data
KR101837678B1 (en) * 2016-06-20 2018-03-12 주식회사 씨오티커넥티드 Computing apparatus based on trusted execution environment
KR101880689B1 (en) * 2016-10-25 2018-07-20 주식회사 안랩 Apparatus and method for detecting malicious code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
He Sun et al, "TrustDump: Reliable Memory Acquisition on Smartphones", 19th European Symposium on Research in Computer Security(2014.09.)*

Also Published As

Publication number Publication date
KR20200073413A (en) 2020-06-24

Similar Documents

Publication Publication Date Title
US8627458B2 (en) Detecting malicious computer program activity using external program calls with dynamic rule sets
US6507909B1 (en) Method for executing trusted-path commands
CN106682497B (en) The system and method for secure execution code under supervisor mode
RU2566329C2 (en) Method of protecting computer system from malware
US10318730B2 (en) Detection and prevention of malicious code execution using risk scoring
US7665138B2 (en) Detecting method and architecture thereof for malicious codes
US7721333B2 (en) Method and system for detecting a keylogger on a computer
JP3657179B2 (en) Method and system for monitoring the integrity of executable modules and associated protection service provider modules
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
MXPA04007483A (en) Projection of trustworthiness from a trusted environment to an untrusted environment.
US11288362B2 (en) System and method for creating antivirus records for antivirus applications
US20180046798A1 (en) Mining Sandboxes
KR20060047897A (en) System and method for protected operating system boot using state validation
US20110296526A1 (en) Apparatus and method for preemptively protecting against malicious code by selective virtualization
KR102161777B1 (en) Trusted execution environment system
US10339305B2 (en) Sub-execution environment controller
US7975298B1 (en) System, method and computer program product for remote rootkit detection
Wood et al. Keyloggers in Cybersecurity Education.
US8499351B1 (en) Isolated security monitoring system
US20160335439A1 (en) Method and apparatus for detecting unsteady flow in program
Bousquet et al. Mandatory access control for the android dalvik virtual machine
KR102161770B1 (en) System and method for obtaining memory information
US11907411B2 (en) Secure operating modes for computing devices
Wang et al. IMSC: Instruction set architecture monitor and secure cache for protecting processor systems from undocumented instructions
Caillat et al. Prison: Tracking process interactions to contain malware

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant