KR20160068480A - Method and apparatus for protecting resource of application program - Google Patents

Method and apparatus for protecting resource of application program Download PDF

Info

Publication number
KR20160068480A
KR20160068480A KR1020140174293A KR20140174293A KR20160068480A KR 20160068480 A KR20160068480 A KR 20160068480A KR 1020140174293 A KR1020140174293 A KR 1020140174293A KR 20140174293 A KR20140174293 A KR 20140174293A KR 20160068480 A KR20160068480 A KR 20160068480A
Authority
KR
South Korea
Prior art keywords
application program
operating system
resource
access
memory page
Prior art date
Application number
KR1020140174293A
Other languages
Korean (ko)
Other versions
KR102297476B1 (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 KR1020140174293A priority Critical patent/KR102297476B1/en
Publication of KR20160068480A publication Critical patent/KR20160068480A/en
Application granted granted Critical
Publication of KR102297476B1 publication Critical patent/KR102297476B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed is a method for allowing a device to protect the resource of an application program. The method includes determining whether an operation system is accessible to the resource of the application program, and controlling access authority for the resource of the application program.

Description

응용 프로그램의 자원을 보호하는 방법 및 장치{Method and apparatus for protecting resource of application program}FIELD OF THE INVENTION [0001] The present invention relates to a method and apparatus for protecting resources of an application program,

본 발명은 응용 프로그램의 자원을 운영 체제 또는 다른 프로그램으로부터 보호하는 방법 및 장치에 대한 것이다.The present invention is directed to a method and apparatus for protecting an application's resources from an operating system or other programs.

운영 체제는 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하면서, CPU, 주기억 장치, 입출력 장치 등의 컴퓨터 자원을 관리한다. 운영 체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하기 위하여 응용 프로그램보다 높은 권한을 가지고 동작할 수 있다.The operating system manages computer resources such as CPU, main memory, and input / output devices while serving as an interface between hardware and application programs. The operating system can operate with higher privileges than the application to control hardware and manage computer resources.

그러나, 운영 체제의 보안 취약성을 이용하여, 악성 소프트웨어가 운영 체제에 침입하게 되면, 악성 소프트웨어는 운영 체제의 최상위 권한을 이용하여 응용 프로그램 및 컴퓨터의 자원에 침입할 수 있다. However, when exploiting the security vulnerabilities of the operating system, malicious software can infiltrate the applications and computer resources by using the top level privileges of the operating system when malicious software enters the operating system.

운영 체제의 기능이 확대되고 발전함에 따라 운영 체제의 크기가 커지고, 또한, 그에 따라 운영 체제의 보안 취약성이 증가하고 있다. 따라서, 해킹된 운영 체제가 응용 프로그램의 자원에 대해 접근하려고 하는 경우, 응용 프로그램의 자원을 보호할 수 있는 방법이 필요하다.As the functionality of the operating system expands and evolves, the size of the operating system increases, and as a result, security vulnerabilities of the operating system are increasing. Therefore, if a hacked operating system attempts to access an application's resources, a method is needed to protect the resources of the application.

본 발명은 응용 프로그램의 자원을 보호하는 방법 및 장치에 관한 것으로, 구체적으로, 응용 프로그램의 자원에 대한 운영 체제 또는 다른 프로그램의 접근으로부터 응용 프로그램의 자원을 보호하는 방법 및 장치에 관한 것이다.FIELD OF THE INVENTION The present invention relates to a method and apparatus for protecting resources of an application program, and more particularly, to a method and apparatus for protecting resources of an application program from accessing an operating system or another program with respect to an application program resource.

일 실시 예에 의한 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법은, 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함한다.The method for protecting a resource of an application program according to an embodiment includes the steps of: determining whether an operating system is in a state of being able to access a resource of the application program while an application program set as a protection target is executed; And controlling access rights to resources of the application program according to the determination result.

더하여, 상기 자원에 대한 접근 권한을 제어하는 단계는 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하는 단계; 상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는 단계를 포함한다.In addition, the step of controlling access rights to the resources may include access rights information on a memory page allocated as a resource of the application program and access privilege information on a memory page allocated to the application program when the operating system can access resources of the application program. Backing up the register value of the register; Resetting the access right to the memory page, and deleting the register value.

더하여, 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는 단계를 더 포함한다.In addition, when at least one of the access right information and the register value for the memory page is backed up, if the operating system is changed into a state in which the operating system can not access the resource of the application program, Recovering at least one of access privilege information for the memory page and the register value.

더하여, 상기 판단하는 단계는 상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계를 포함한다.In addition, the determining step may include determining whether the operating system is in a state in which the operating system can access the resource of the application program, based on whether the execution mode of the application program is a kernel mode or a user mode.

더하여, 상기 운영 체제가 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하는 단계; 상기 시스템 호출에 기초하여, 상기 자원에 대한 접근 권한을 제어하는 단계를 더 포함한다.In addition, the operating system attempts to access the resource of the application program to process the system call; And controlling access rights to the resource based on the system call.

더하여, 상기 자원에 대한 접근 권한을 제어하는 단계는 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화할 지 여부를 결정하는 단계; 상기 결정된 결과에 따라, 상기 데이터를 암호화한 후, 상기 운영 체제의 상기 메모리 페이지에 대한 접근을 허용하거나, 상기 데이터를 상기 운영 체제에 제공하는 단계를 더 포함한다. In addition, controlling access to the resource may include determining whether to encrypt data stored in a memory page allocated to the resource of the application program, In accordance with the determined result, encrypting the data and then allowing access to the memory page of the operating system, or providing the data to the operating system.

더하여, 상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하는 단계; 상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하는 단계; 상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하는 단계; 상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는 단계를 더 포함한다.In addition, detecting that the operating system attempts to access a memory page allocated to a resource of the application program to process a system call; Obtaining original data of data to be processed by the system call; When the processing for the system call is completed by the operating system, obtaining the processed data according to the system call; And verifying the integrity of the data processed according to the system call by comparing the hash value of the original data with the hash value of the processed data according to the system call.

더하여, 상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록된다.In addition, if the application program is set as a protection target, the memory page to which the resource of the application program is allocated is registered as a protection target.

더하여, 상기 운영 체제에 의해 상기 응용 프로그램의 자원으로 새로운 메모리 페이지가 할당됨을 감지하는 단계; 상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 메모리 페이지와 동일하다고 판단되면, 상기 새로운 메모리 페이지에 대한 할당을 해제하는 단계를 더 포함한다.In addition, detecting that a new memory page is allocated to the resource of the application program by the operating system; And releasing the allocation of the new memory page if it is determined that the allocated new memory page is the same as the memory page registered as the protection target.

더하여, 상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는 단계를 더 포함한다.In addition, when the operating system corrects the page table of the application program, the step of registering or releasing the memory page allocated as the resource of the application program as a protection target according to the modified page table .

더하여, 상기 운영 체제 대신 다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라 상기 응용 프로그램의 자원에 대한 접근 권한을 수행한다.In addition, it determines whether or not another application program can access the resource of the application program in place of the operating system, and performs an access right to the resource of the application program according to the determination result.

일 실시 예에 의한 응용 프로그램의 자원을 보호하기 위한 디바이스는 보호 대상으로 설정되어 실행 중인 응용 프로그램; 상기 응용 프로그램에서 발생된 시스템 호출을 처리하는 운영 체제; 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 응용 프로그램 보호부; 상기 응용 프로그램의 자원을 포함하는 하드웨어를 포함한다.A device for protecting a resource of an application program according to an exemplary embodiment includes an application program set as a protection target and running; An operating system for processing a system call generated in the application program; An application program protection unit for determining whether the operating system is in a state of being able to access resources of the application program and controlling an access right to resources of the application program according to the determination result; And hardware comprising the resources of the application program.

일 실시 예에 의한 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체는 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함한다.A computer-readable recording medium on which a program for implementing a method for protecting a resource of an application program according to an exemplary embodiment of the present invention is recorded includes a program code for causing an operating system to execute a program The method comprising: determining whether the mobile terminal is in a state capable of accessing the mobile terminal; And controlling access rights to resources of the application program according to the determination result.

일 실시 예에 의한 하드웨어와 결합되어 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법을 실행시키는 컴퓨터 프로그램은 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함한다.A computer program that, when combined with hardware in accordance with one embodiment, executes a method for a device to protect the resources of an application program may cause the operating system to access resources of the application program while the protected application is running Determining whether the state is a state; And controlling access rights to resources of the application program according to the determination result.

도 1은 일 실시 예에 의한 응용 프로그램 보호부를 포함하는 디바이스의 내부 구성을 나타낸 블록도이다.
도 2는 일 실시 예에 의한 가상화 기술을 기반으로 구동되는 응용 프로그램 보호부를 포함하는 디바이스의 내부 구성을 나타낸 블록도이다.
도 3은 일 실시 예에 의한 응용 프로그램의 자원에 대한 접근 권한을 제어하는 방법을 나타낸 순서도이다.
도 4는 일 실시 예에 의한 응용 프로그램의 자원에 대한 접근 권한 및 레지스터 값을 제어하는 방법을 나타낸 순서도이다.
도 5는 일 실시 예에 의한 운영 체제가 응용 프로그램의 자원에 접근하여 시스템 호출을 처리하는 방법을 나타낸 순서도이다.
1 is a block diagram illustrating an internal configuration of a device including an application program protection unit according to an embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of a device including an application program protection unit driven based on a virtualization technology according to an embodiment.
FIG. 3 is a flowchart illustrating a method for controlling access rights to resources of an application program according to an embodiment.
4 is a flowchart illustrating a method of controlling an access right and a register value of an application program according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a method for an operating system to access a resource of an application program and process a system call according to an exemplary embodiment of the present invention.

다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.The terms and words used in the present specification and claims should not be construed in an ordinary or dictionary sense, and the inventor shall properly define the terms of his invention in the best way possible It should be construed as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.

첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 본 발명은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되어지지 않는다.In the accompanying drawings, some of the elements are exaggerated, omitted or schematically shown, and the size of each element does not entirely reflect the actual size. The invention is not limited by the relative size or spacing depicted in the accompanying drawings.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.When an element is referred to as "including" an element throughout the specification, it is to be understood that the element may include other elements as well, without departing from the spirit or scope of the present invention. Also, as used herein, the term "part " refers to a hardware component such as software, FPGA or ASIC, and" part " However, "part" is not meant to be limited to software or hardware. "Part" may be configured to reside on an addressable storage medium and may be configured to play back one or more processors. Thus, by way of example, and not limitation, "part (s) " refers to components such as software components, object oriented software components, class components and task components, and processes, Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functions provided in the components and "parts " may be combined into a smaller number of components and" parts " or further separated into additional components and "parts ".

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 일 실시 예에 의한 응용 프로그램 보호부를 포함하는 디바이스의 내부 구성을 나타낸 블록도이다.1 is a block diagram illustrating an internal configuration of a device including an application program protection unit according to an embodiment of the present invention.

도 1을 참조하면, 디바이스(100)는 응용 프로그램(110), 운영 체제(120), 응용 프로그램 보호부(130) 및 하드웨어(140)를 포함하여 구성될 수 있다. 도면들과 후술되어 있는 실시예에서, 디바이스(100)에 포함되어 있는 개개의 구성 요소는 물리적 형태 또는 논리적 형태로 분산되어 배치될 수도 있고, 통합될 수도 있다.Referring to FIG. 1, a device 100 may include an application program 110, an operating system 120, an application protection unit 130, and hardware 140. In the drawings and in the embodiments described below, the individual components included in the device 100 may be distributed and arranged in physical or logical form and may be integrated.

일 실시 예에 의한 디바이스(100)는 예를 들어, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자, 네비게이션 장치, 디지털 TV, 손목 시계(Wrist watch), 스마트 글라스(smart glass)와 같은 웨어러블 기기(Wearable device) 등의 다양한 유형의 장치일 수 있다.The device 100 according to one embodiment may be, for example, a mobile phone, a tablet PC, a PDA, an MP3 player, a kiosk, an electronic frame, a navigation device, a digital TV, a wrist watch, And a wearable device.

응용 프로그램(110)은 특정한 작업을 처리하기 위해 디바이스(100)에서 실행될 수 있는 프로그램이다. 응용 프로그램(110)은 운영 체제(120)에 의해 할당된 하드웨어 자원을 기반으로 동작할 수 있다. 또한, 응용 프로그램(110)은 코드 영역, 텍스트 영역, 데이터 파일, 라이브러리 등을 포함하는 다양한 컴포넌트들로 구성될 수 있다. 예를 들면, 응용 프로그램(110)은 운영 체제(120)를 기반으로 수행되는 소프트웨어, 프로세스, 쓰레드(thread), 가상 머신 등일 수 있으나, 이에 한정되는 것은 아니다.Application program 110 is a program that can be executed on device 100 to process a specific task. The application program 110 may operate based on hardware resources allocated by the operating system 120. Also, the application program 110 may be composed of various components including a code area, a text area, a data file, a library, and the like. For example, application program 110 may be, but is not limited to, software, process, thread, virtual machine, etc., performed on operating system 120.

운영 체제(120)는 응용 프로그램(110)의 실행에 필요한 자원을 할당하거나 해제할 수 있다. 또한, 운영 체제(120)는 복수 개의 응용 프로그램(110)들이 원활히 동작할 수 있도록 스케줄링(scheduling)을 수행함으로써, 복수 개의 응용 프로그램(110)들이 동시에 동작할 수 있다. 운영 체제(120)는 응용 프로그램(110)보다 높은 권한을 가지고 하드웨어 및 하나 이상의 응용 프로그램(110)을 제어할 수 있다.The operating system 120 may allocate or deallocate resources required for execution of the application program 110. [ In addition, the operating system 120 performs scheduling so that a plurality of application programs 110 can operate smoothly, so that a plurality of application programs 110 can operate simultaneously. The operating system 120 can control the hardware and one or more application programs 110 with higher privileges than the application programs 110. [

응용 프로그램(110)은 운영 체제(120)에 의해 할당된 하드웨어 영역, 예를 들면, 응용 프로그램(110)의 자원으로 할당된 일부 메모리 영역에만 직접 접근할 수 있고, 이외 자신에게 할당되지 않은 하드웨어 영역에는 직접 접근할 수 없을 수 있다. 반면에, 운영 체제(120)는 응용 프로그램(110)보다 높은 권한을 가지고 있으므로, 응용 프로그램(110)의 자원으로 할당되지 않은 영역에도 접근할 수 있다. 따라서, 응용 프로그램(110)은 운영 체제(120)에 의해 실행 가능한 작업을 운영 체제(120)에 요청하기 위한 시스템 호출(system call)을 이용하여, 운영 체제(120)를 통해 자신에게 할당되지 않은 하드웨어 영역에 접근할 수 있다. 응용 프로그램(110)은 운영 체제(120)를 통해 자신에게 할당되지 않은 하드웨어 영역에 접근하여, 데이터를 획득하거나, 자신의 자원으로 새롭게 할당할 수 있다.The application program 110 can directly access only a memory area allocated by the operating system 120, for example, a memory area allocated as a resource of the application program 110, You may not be able to access it directly. On the other hand, since the operating system 120 has a higher privilege than the application program 110, the operating system 120 can access the unallocated area of the application program 110 as well. Accordingly, the application program 110 may use a system call to request an operation that is executable by the operating system 120 to the operating system 120, You can access the hardware area. The application program 110 can access the hardware area not allocated to itself through the operating system 120, acquire data, or newly allocate the resource as its own resource.

그러나, 응용 프로그램(110)에서 발생된 시스템 호출을 처리하는 운영 체제(120)는 응용 프로그램(110)의 자원으로 할당되지 않은 하드웨어 영역뿐만 아니라 응용 프로그램(110)의 자원으로 할당된 하드웨어 영역에도 접근할 수 있다. 따라서, 운영 체제(120)가 악성 소프트웨어에 의해 감염되어 있는 경우, 시스템 호출에 따라 운영 체제(120)가 응용 프로그램(110)의 자원으로 할당된 하드웨어 영역에 접근하게 되면, 응용 프로그램(110)의 자원에 존재하는 데이터가 유출되거나 위변조될 수 있다.However, the operating system 120 that processes the system call generated by the application program 110 may access the hardware area not allocated to the resource of the application program 110 as well as the hardware area allocated to the resource of the application program 110 can do. Accordingly, when the operating system 120 is infected by malicious software, when the operating system 120 accesses the hardware area allocated as the resource of the application program 110 according to the system call, Data present in the resource may be leaked or forged.

응용 프로그램 보호부(130)는 디바이스(100)에서 실행될 수 있는 응용 프로그램(110)의 자원을 보호할 수 있다. 응용 프로그램(110)의 자원은 디바이스(100)의 리소스(예를 들면, 메모리, 저장 장치, CPU 등) 중에서 응용 프로그램(110)에게 할당된 영역을 의미할 수 있다. 응용 프로그램 보호부(130)는 보호 대상으로 설정된 응용 프로그램(110)의 자원에 대한 접근 권한을 제어함으로써 운영 체제(120)로부터 응용 프로그램(110)의 자원을 보호할 수 있다. 예를 들면, 응용 프로그램 보호부(130)는 보호 대상으로 설정된 응용 프로그램(110)의 자원에 대한 접근 권한 정보를 설정함으로써 자원에 대한 운영 체제(120)의 접근을 차단하거나 부분적으로 허용할 수 있다. The application protection unit 130 can protect the resources of the application program 110 that can be executed in the device 100. [ The resource of the application program 110 may mean an area allocated to the application program 110 among resources (e.g., memory, storage device, CPU, etc.) of the device 100. [ The application protection unit 130 may protect the resources of the application program 110 from the operating system 120 by controlling access rights to resources of the application program 110 set as a protection target. For example, the application protection unit 130 may block or partially allow the access of the operating system 120 to the resource by setting access authority information on the resource of the application program 110 set as a protection target .

응용 프로그램 보호부(130)는 운영 체제(120)에 한하지 않고, 다른 응용 프로그램 또는 외부 장치로부터 보호 대상으로 설정된 응용 프로그램(110)의 자원을 보호할 수 있다. 따라서, 응용 프로그램 보호부(130)는 다른 응용 프로그램 또는 외부 장치로부터 응용 프로그램(110)의 자원에 접근할 수 있는 상태이면, 응용 프로그램(110)의 자원에 대한 접근 권한 정보를 설정할 수 있다. 이로써, 응용 프로그램 보호부(130)는 자원에 대한 다른 응용 프로그램 또는 외부 장치의 접근을 차단하거나 부분적으로 허용할 수 있다.The application protection unit 130 may protect the resources of the application program 110 set as a protection target from other application programs or external devices without being limited to the operating system 120. [ Accordingly, the application program protection unit 130 can set access authority information on the resource of the application program 110 when the application program 110 can access the resource of the application program 110 from another application program or an external device. Accordingly, the application program protection unit 130 may block or partially allow access to other application programs or external devices with respect to resources.

응용 프로그램 보호부(130)는 운영 체제(120)와 독립적으로 구성되고, 독립적으로 동작함으로써, 악성 소프트웨어에 의해 해킹될 가능성이 있는 운영 체제(120)로부터 응용 프로그램(110)의 자원을 보호할 수 있다. 응용 프로그램 보호부(130)는 Intel VT-x, AMD-V, ARM TrustZone 등을 이용하여 운영 체제(120)와 독립적으로 동작할 수 있다. 예를 들면, 응용 프로그램 보호부(130)는 ARM TrustZone의 안전 영역(secure world)에서 운영 체제(120)와 독립적으로 동작할 수 있다.The application protection unit 130 is configured independently of the operating system 120 and operates independently to protect the resources of the application program 110 from the operating system 120 that may be hacked by malicious software have. The application protection unit 130 may operate independently of the operating system 120 using Intel VT-x, AMD-V, and ARM TrustZone. For example, the application protection unit 130 may operate independently of the operating system 120 in the secure world of ARM TrustZone.

구체적으로, 운영 체제(120)가 보호 대상으로 설정된 응용 프로그램(110)의 자원에 접근할 수 있는 상태가 되면, 응용 프로그램 보호부(130)는 보호 대상으로 설정된 응용 프로그램(110)의 자원에 대한 접근 권한 정보를 재설정할 수 있다. 예를 들면, 응용 프로그램 보호부(130)는 운영 체제(120)가 접근할 수 없도록 자원에 대한 접근 권한 정보를 재설정할 수 있다. 더하여, 운영 체제(120)에 의해 응용 프로그램(110)이 사용하던 레지스터 값이 유출되거나 위변조되는 것을 방지하기 위하여, 응용 프로그램 보호부(130)는 응용 프로그램(110)이 사용하던 레지스터 값을 삭제할 수 있다. Specifically, when the operating system 120 becomes able to access the resources of the application program 110 set as the protection target, the application protection unit 130 deletes the resources of the application program 110 set as the protection target The access authority information can be reset. For example, the application protection unit 130 may reset the access authority information on the resource so that the operating system 120 can not access the resource. In addition, the application protection unit 130 may delete the register value used by the application program 110 in order to prevent the register value used by the application program 110 from being leaked or forged by the operating system 120 have.

하드웨어(140)는 운영 체제(120) 및 응용 프로그램(110)이 실행되기 위해 필요한 메모리, 저장 장치, CPU(central processing unit), 레지스터, 입출력 기기 등을 포함할 수 있다. 이에 한하지 않고, 하드웨어(140)는 운영 체제(120) 및 응용 프로그램(110)의 실행을 위한 구성 요소를 더 포함할 수 있다.The hardware 140 may include a memory, a storage device, a central processing unit (CPU), a register, an input / output device, and the like necessary for the operating system 120 and the application program 110 to be executed. The hardware 140 may further include components for the execution of the operating system 120 and the application program 110. [

운영 체제(120)는 하드웨어(140)에 포함된 구성 요소 중 일부를 응용 프로그램(110)의 자원으로 할당할 수 있다. 응용 프로그램(110)은 자신의 자원으로 할당된 하드웨어(140)의 일부 영역을 이용하여 필요한 작업을 수행할 수 있다. The operating system 120 may allocate some of the components included in the hardware 140 as resources of the application program 110. [ The application program 110 can perform a necessary operation using a part of the hardware 140 allocated as its own resource.

이하 도 2를 참조하여, 응용 프로그램 보호부에서 응용 프로그램의 자원을 보호하는 구체적인 방법에 대해 설명하기로 한다.Hereinafter, referring to FIG. 2, a concrete method for protecting resources of an application program in an application program protection unit will be described.

도 2는 일 실시 예에 의한 가상화 기술을 기반으로 구동되는 응용 프로그램 보호부를 포함하는 디바이스의 내부 구성을 나타낸 블록도이다.2 is a block diagram illustrating an internal configuration of a device including an application program protection unit driven based on a virtualization technology according to an embodiment.

도 2를 참조하면, 디바이스(100)는 응용 프로그램(110), 운영 체제(120), 응용 프로그램 보호부(130)가 구동되는 가상화 머신 모니터(150), 하드웨어(140)를 포함하여 구성될 수 있다. 도면들과 후술되어 있는 실시예에서, 디바이스(100)에 포함되어 있는 개개의 구성 요소는 물리적 형태 또는 논리적 형태로 분산되어 배치될 수도 있고, 통합될 수도 있다.2, the device 100 may comprise an application program 110, an operating system 120, a virtual machine monitor 150 where the application protection unit 130 is driven, hardware 140, have. In the drawings and in the embodiments described below, the individual components included in the device 100 may be distributed and arranged in physical or logical form and may be integrated.

운영 체제(120)는 페이지 테이블(121)과 시스템 호출 처리부(122)를 포함할 수 있다. The operating system 120 may include a page table 121 and a system call processing unit 122.

페이지 테이블(121)은 실행 중인 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 관한 정보를 포함한다. 메모리 페이지란, 미리 설정된 크기로 나뉘어진 메모리 영역의 각 부분을 의미할 수 있다. 응용 프로그램(110)의 자원으로 할당된 메모리 페이지는 응용 프로그램(110)의 실행 중 발생된 데이터를 저장할 수 있다. 운영 체제(120)는 메모리 페이지들을 응용 프로그램(110)의 자원으로 할당하거나 해제함에 따라 페이지 테이블(121)에 포함된 메모리 페이지에 관한 정보를 갱신할 수 있다. 페이지 테이블(121)은 각 메모리 페이지에 관한 식별 정보와, 게스트 물리 주소를 포함한다. 운영 체제(120)는 게스트 물리 주소를 이용하여 가상화 머신 모니터(150)를 통해 하드웨어(140)에 접근할 수 있다.The page table 121 contains information about the memory pages allocated as resources of the application program 110 being executed. The memory page may refer to each part of the memory area divided by a predetermined size. A memory page allocated as a resource of the application program 110 may store data generated during execution of the application program 110. [ The operating system 120 may update the information about the memory page included in the page table 121 by allocating or releasing the memory pages as resources of the application program 110. [ The page table 121 includes identification information about each memory page and a guest physical address. The operating system 120 may access the hardware 140 via the virtual machine monitor 150 using the guest physical address.

시스템 호출 처리부(122)는 응용 프로그램(110)에서 발생된 시스템 호출(system call)을 처리한다. 시스템 호출 처리부(122)는 시스템 호출에 따라 페이지 테이블(121)의 게스트 물리 주소를 이용하여, 접근하고자 하는 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 접근할 수 있다. 시스템 호출 처리부(122)는 응용 프로그램(110)의 자원에 접근하여 시스템 호출에 따른 동작, 예를 들면, 읽기, 쓰기 등의 동작을 수행할 수 있다. 시스템 호출 처리부(122)는 시스템 호출에 따른 작업을 수행한 후, 작업 수행에 대한 결과 값을 응용 프로그램(110) 및 응용 프로그램 보호부(130) 중 적어도 하나로 전달할 수 있다.The system call processing unit 122 processes a system call generated in the application program 110. The system call processing unit 122 can access the memory page allocated as the resource of the application program 110 to access using the guest physical address of the page table 121 according to the system call. The system call processing unit 122 accesses the resource of the application program 110 and can perform an operation according to the system call, for example, read, write, and the like. The system call processing unit 122 may perform a task according to the system call and then transfer the result of the task execution to at least one of the application program 110 and the application program protection unit 130. [

응용 프로그램 보호부(130)는 가상화 머신 모니터(150)의 가상화 기술을 이용하여 운영 체제(120)와 독립된 공간에서 운영 체제(120)의 권한 보다 높은 최상위 권한으로 동작할 수 있다. 가상화 머신 모니터(150)는 하드웨어(140)와 운영 체제(120) 사이에 위치하고, 운영 체제(120)는 가상화 머신 모니터(150)를 통하여 하드웨어(140)에 접근할 수 있다. 응용 프로그램 보호부(130)는 중첩 페이지 테이블(151)을 이용하여, 응용 프로그램(110)의 자원으로 할당된 영역에 대한 운영 체제(120)의 접근 권한을 제어할 수 있다.The application protection unit 130 can operate at a higher privilege than the privilege of the operating system 120 in a space independent of the operating system 120 using the virtualization technology of the virtual machine monitor 150. [ The virtual machine monitor 150 is located between the hardware 140 and the operating system 120 and the operating system 120 can access the hardware 140 via the virtual machine monitor 150. The application program protection unit 130 may control the access rights of the operating system 120 to the area allocated as the resource of the application program 110 by using the overlapped page table 151. [

중첩 페이지 테이블(151, nested page table)은 게스트 물리 주소와 호스트 물리 주소 간의 사상(mapping) 정보 및 호스트 물리 주소와 대응되는 메모리 페이지에 대한 접근 권한 정보를 포함한다. 운영 체제(120)는 접근하고자 하는 메모리 페이지의 게스트 물리 주소를 이용하여 호스트 물리 주소와 대응되는 메모리 페이지에 접근할 수 있다.The nested page table 151 includes mapping information between the guest physical address and the host physical address and access privilege information on the memory page corresponding to the host physical address. The operating system 120 can access the memory page corresponding to the host physical address using the guest physical address of the memory page to be accessed.

구체적으로, 응용 프로그램 보호부(130)는 운영 체제(120)가 접근하고자 하는 메모리 페이지의 게스트 물리 주소를 중첩 페이지 테이블(151)을 이용하여 호스트 물리 주소로 변환할 수 있다. 응용 프로그램 보호부(130)는 중첩 페이지 테이블(151)에 포함된 호스트 물리 주소와 대응되는 메모리 페이지에 대한 접근 권한 정보를 재설정 할 수 있다. 재설정된 접근 권한 정보에 따라 운영 체제(120)의 메모리 페이지에 대한 접근이 제어될 수 있다. 중첩 페이지 테이블(151)에 포함된 접근 권한 정보에 따라, 호스트 물리 주소와 대응되는 메모리 페이지에서 운영 체제(120)의 읽기, 쓰기 또는 실행 동작이 제어될 수 있다. Specifically, the application program protection unit 130 may convert the guest physical address of the memory page to be accessed by the operating system 120 into the host physical address using the overlaid page table 151. [ The application protection unit 130 may reset the access right information for the memory page corresponding to the host physical address included in the overlapped page table 151. [ Access to the memory page of the operating system 120 may be controlled according to the reset access privilege information. According to the access authority information included in the nested page table 151, the read, write, or execute operations of the operating system 120 can be controlled in the memory page corresponding to the host physical address.

중첩 페이지 테이블(151)에 포함된 접근 권한 정보는 호스트 물리 주소와 대응되는 메모리 페이지에 대한 읽기, 쓰기 및 실행 동작에 대한 권한 비트(permission bits)를 포함한다. 읽기 동작은 메모리 페이지에 저장된 데이터를 읽는 동작을 의미한다. 쓰기 동작은 메모리 페이지에 소정의 데이터를 저장하는 동작을 의미한다. 실행 동작은 메모리 페이지에 저장된 데이터를 실행시키는 동작을 의미한다. 권한 비트는 각 동작 별로 존재할 수 있으며, 0 또는 1의 값을 가질 수 있다. 예를 들어, 읽기 동작에 대한 권한 비트 값이 0의 값을 가지는 경우, 해당 메모리 페이지에서의 읽기 동작은 허여되지 않는다. 반면, 읽기 동작에 대하여 권한 비트 값이 1의 값을 가지는 경우, 해당 메모리 페이지에서의 읽기 동작은 허여된다. 메모리 페이지에 대한 접근 권한 정보는 접근하는 주체를 구분하지 않고, 메모리 페이지에 대한 동작 별로 다르게 설정될 수 있다. 다만, 이에 한하지 않고, 접근 권한 정보는 메모리 페이지에 접근하는 주체 별로 다르게 설정될 수도 있다.The access right information included in the nested page table 151 includes permission bits for read, write, and execute operations on the memory page corresponding to the host physical address. A read operation means an operation of reading data stored in a memory page. A write operation means an operation of storing predetermined data in a memory page. Execution operation means an operation to execute data stored in a memory page. The privilege bit may exist for each action and may have a value of 0 or 1. For example, when the right bit value of the read operation has a value of 0, the read operation in the corresponding memory page is not granted. On the other hand, when the right bit value of the read operation has a value of 1, the read operation in the corresponding memory page is granted. The access privilege information for the memory page does not discriminate the accessing subject, but can be set differently for the operation on the memory page. However, the access authority information may be set differently for each subject accessing the memory page.

중첩 페이지 테이블(151)은 가상화 머신 모니터(150) 내에 위치하여, 운영 체제(120)와 독립적으로 구성될 수 있고, 운영 체제(120)의 접근으로부터 보호될 수 있다.The nested page table 151 is located within the virtual machine monitor 150 and can be configured independently of the operating system 120 and protected from access by the operating system 120.

응용 프로그램 보호부(130)는 응용 프로그램 관리부(132), 자원 보호부(133) 및 커널 수행 검증부(134)를 포함한다.The application protection unit 130 includes an application program management unit 132, a resource protection unit 133, and a kernel execution verification unit 134.

응용 프로그램 관리부(132)는 응용 프로그램(110)을 보호 대상으로 설정할 수 있다. 응용 프로그램 관리부(132)는 응용 프로그램(110)의 요청에 따라 응용 프로그램(110)을 보호 대상으로 등록할 수 있다. 이에 한하지 않고 응용 프로그램 관리부(132)는 응용 프로그램(110) 이외 다른 응용 프로그램의 요청 또는 미리 설정된 이벤트의 발생을 감지함에 따라 응용 프로그램(110)을 보호 대상으로 등록할 수 있다. The application program manager 132 may set the application program 110 as a protection target. The application program manager 132 may register the application program 110 as a protection target according to a request of the application program 110. [ The application program management unit 132 may register the application program 110 as a protection target by detecting a request of an application program other than the application program 110 or occurrence of a preset event.

응용 프로그램 관리부(132)는 응용 프로그램(110)의 고유 식별 정보를 이용하여 응용 프로그램(110)을 보호하고자 하는 응용 프로그램으로 등록할 수 있다. 고유 식별 정보는 응용 프로그램(110)에 부여될 수 있는 프로세스 식별자(PID, process identifier) 또는 응용 프로그램(110)과 대응되는 페이지 디렉토리(page directory) 주소를 포함할 수 있다. 또는, 고유 식별 정보는 응용 프로그램 관리부(132)에 의해 보호하고자 하는 응용 프로그램(110)에 대하여 부여된 식별 정보를 포함할 수 있다. 고유 식별 정보는 상술된 예에 한하지 않고 다양한 형태의 식별 정보를 포함할 수 있다.The application program manager 132 may register the application program 110 as an application program to protect the application program 110 using the unique identification information of the application program 110. [ The unique identification information may include a process identifier (PID) that can be assigned to the application program 110 or a page directory address corresponding to the application program 110. [ Alternatively, the unique identification information may include identification information given to the application program 110 to be protected by the application program management unit 132. [ The unique identification information is not limited to the above-described examples and may include various types of identification information.

응용 프로그램 관리부(132)는 보호 대상으로 설정된 응용 프로그램(110)을 감시하여, 운영 체제(120)가 응용 프로그램(110)의 자원에 접근하는 것을 제어할 수 있다. 구체적으로, 응용 프로그램 관리부(132)는 고유 식별 정보에 기초하여 현재 실행 중인 응용 프로그램(110)이 보호 대상인지 여부를 판단할 수 있다. 그리고, 응용 프로그램 관리부(132)는 보호 대상으로 설정된 응용 프로그램(110)의 실행 모드에 따라 운영 체제가 응용 프로그램(110)의 자원에 접근할 수 있는지 여부를 판단할 수 있다. 응용 프로그램 관리부(132)는 보호 대상으로 설정된 응용 프로그램(110)의 프로세스 또는 쓰레드 등을 보호 대상으로 등록하여, 등록된 보호 대상에 대한 운영 체제(120)의 접근을 제어할 수 있다. The application program manager 132 may monitor the application program 110 set as a protection target and control access of the operating system 120 to the resources of the application program 110. [ Specifically, the application program manager 132 can determine whether the application program 110 currently being executed is a protection target based on the unique identification information. The application program manager 132 may determine whether the operating system can access the resources of the application program 110 according to the execution mode of the application program 110 set as a protection target. The application program manager 132 registers a process or a thread of the application program 110 set as a protection target as a protection target and controls the access of the operating system 120 to the registered protection target.

응용 프로그램 관리부(132)는 보호 대상으로 설정된 응용 프로그램(110)에서 프로세스 또는 쓰레드가 새롭게 생성되면, 새롭게 생성된 프로세스 또는 쓰레드를 보호 대상으로 등록할 수 있다. 또한, 보호 대상으로 등록되어 있던 프로세스 또는 쓰레드가 소멸되면, 소멸된 프로세스 또는 쓰레드를 보호 대상에서 해제할 수 있다. The application program manager 132 may register a newly created process or thread as a protection target when a new process or thread is created in the application program 110 set as a protection target. Also, if a process or thread registered as a protection target is destroyed, the destroyed process or thread can be released from the protection target.

응용 프로그램(110)이 응용 프로그램 관리부(132)에 의하여 보호 대상으로 설정되는 경우, 자원 보호부(133)는 응용 프로그램(110)의 페이지 테이블(121)에 기초하여, 응용 프로그램(110)의 자원으로 할당된 메모리 페이지의 게스트 물리 주소를 획득할 수 있다. 그리고, 자원 보호부(133)는 중첩 페이지 테이블(151)을 이용하여, 게스트 물리 주소를 호스트 물리 주소로 변환한다. 자원 보호부(133)는 호스트 물리 주소 및 응용 프로그램(110)의 고유 식별 정보에 기초하여, 응용 프로그램(110)의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록할 수 있다.When the application program 110 is set as a protection target by the application program management unit 132, the resource protection unit 133 determines the resources of the application program 110 based on the page table 121 of the application program 110 To obtain the guest physical address of the memory page allocated to the memory page. Then, the resource protection unit 133 converts the guest physical address into the host physical address using the overlapping page table 151. [ The resource protection unit 133 can register a memory page allocated as a resource of the application program 110 as a protection target based on the host physical address and the unique identification information of the application program 110. [

자원 보호부(133)는 중첩 페이지 테이블(151)에 포함된 보호 대상으로 등록된 메모리 페이지의 권한 정보를 재설정할 수 있다. 예를 들어, 운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 있는 상태임을 응용 프로그램 관리부(132)가 감지하면, 자원 보호부(133)는, 보호 대상으로 등록된 메모리 페이지에 대한 접근 권한 정보를 재설정할 수 있다. 자원 보호부(133)는 읽기, 쓰기, 실행 동작에 대한 권한 비트를 0으로 설정함으로써 메모리 페이지에 대한 운영 체제(120)의 접근을 제어할 수 있다. The resource protection unit 133 can reset the rights information of the memory page registered as the protection target contained in the overlapping page table 151. [ For example, when the application program management unit 132 detects that the operating system 120 can access the resource of the application program 110, the resource protection unit 133 reads the memory page registered as a protection target You can reset the access privilege information for. The resource protection unit 133 can control the access of the operating system 120 to the memory page by setting the right bit for the read, write, and execute operations to zero.

운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 있는 상태는 응용 프로그램(110)의 실행 모드가 유저(user) 모드에서 커널(kernel) 모드로 전환되어, 커널 모드로 응용 프로그램(110)이 실행되는 경우를 포함할 수 있다. The state in which the operating system 120 can access the resource of the application program 110 is a state in which the execution mode of the application program 110 is switched from the user mode to the kernel mode, 110) is executed.

유저 모드는 응용 프로그램(110)이 응용 프로그램(110)의 자원으로 할당된 하드웨어 영역에 접근할 수 있고, 운영 체제(120) 또는 다른 응용 프로그램은 접근할 수 없는 응용 프로그램(110)의 실행 모드를 의미할 수 있다. 커널 모드는 응용 프로그램(110)에서 발생된 시스템 호출 또는 이벤트에 따라서, 응용 프로그램(110)의 자원으로 할당된 하드웨어(140) 영역에 운영 체제(120)가 접근할 수 있는 응용 프로그램(110)의 실행 모드를 의미할 수 있다.The user mode is a mode in which the application program 110 can access a hardware area allocated as a resource of the application program 110 and the operating system 120 or another application program can execute the execution mode of the inaccessible application program 110 It can mean. The kernel mode is a mode in which the operating system 120 can access the application program 110 in the area of the hardware 140 allocated as a resource of the application program 110 according to a system call or an event generated in the application program 110 May mean an execution mode.

응용 프로그램(110)이 유저 모드로 동작하는 경우, 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에는 응용 프로그램(110)만 접근할 수 있고, 다른 응용 프로그램이나 운영 체제(120)는 접근할 수 없다. 그러나, 응용 프로그램(110)이 커널 모드로 동작하는 경우, 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 운영 체제(120) 또는 다른 응용 프로그램이 접근할 수 있다. 따라서, 일 실시 예에 의한 응용 프로그램 관리부(132)는 응용 프로그램(110)의 실행 모드가 유저 모드인지 커널 모드인지를 모니터링하고, 응용 프로그램(110)의 실행 모드가 커널 모드로 전환되면, 응용 프로그램의 자원에 대한 접근 권한을 제어할 수 있다.When the application program 110 operates in the user mode, only the application program 110 can access the memory page allocated as the resource of the application program 110, and other applications or the operating system 120 can access the memory page none. However, when the application program 110 operates in the kernel mode, the operating system 120 or another application program can access a memory page allocated as a resource of the application program 110. [ Accordingly, the application program manager 132 according to the embodiment monitors whether the execution mode of the application program 110 is the user mode or the kernel mode, and when the execution mode of the application program 110 is switched to the kernel mode, To control the access rights of the resource.

또한, 응용 프로그램 관리부(132)가 운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 있는 상태임을 감지하면, 자원 보호부(133)는 응용 프로그램(110)이 사용하던 범용 레지스터(general purpose registers)(144)에 저장된 값을 제거할 수 있다. 범용 레지스터(144)에는 응용 프로그램(110)이 실행 중일 때 사용된 데이터들이 저장될 수 있다. 응용 프로그램(110)의 자원으로 할당된 범용 레지스터(144) 영역에 응용 프로그램(110)과 관련된 데이터들이 저장될 수 있다. 예를 들면, 응용 프로그램(110)에서 발생된 이벤트, 프로세스, 쓰레드 등과 관련된 데이터들이 범용 레지스터(144)에 저장될 수 있다. 자원 보호부(133)는 운영 체제(120)가 범용 레지스터(144)에 저장된 값에 접근하는 것을 방지하기 위하여, 운영 체제(120)가 범용 레지스터(144)에 접근하기 전에 범용 레지스터의 값을 삭제할 수 있다. When the application program manager 132 detects that the operating system 120 is able to access the resources of the application program 110, the resource protection unit 133 registers the general-purpose register the value stored in the general purpose registers 144 may be removed. The general register 144 may store data used when the application program 110 is running. The data related to the application program 110 may be stored in the area of the general register 144 allocated as the resource of the application program 110. [ For example, data related to events, processes, threads, and the like, generated in the application program 110, may be stored in the general purpose register 144. The resource protection unit 133 deletes the value of the general purpose register 144 before the operating system 120 accesses the general purpose register 144 to prevent the operating system 120 from accessing the value stored in the general purpose register 144 .

악성 소프트웨어, 악성 코드 등에 감염된 운영 체제(120)가 범용 레지스터(144)에 접근하는 경우, 응용 프로그램(110)이 사용하던 값이 운영 체제(120)에 의해 유출되거나 위변조될 수 있다. 따라서, 자원 보호부(133)는 운영 체제(120)로부터 범용 레지스터(144)에 저장된 값을 보호하기 위하여, 운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 있는 상태가 되면, 범용 레지스터(144)에 저장된 값을 삭제할 수 있다.When the operating system 120 infected with malicious software, malicious code, or the like accesses the general purpose register 144, the value used by the application program 110 may be leaked or forged by the operating system 120. Accordingly, when the operating system 120 becomes accessible to the resource of the application program 110 in order to protect the value stored in the general-purpose register 144 from the operating system 120, The value stored in the general purpose register 144 can be deleted.

자원 보호부(133)는 운영 체제(120)가 응용 프로그램(110)의 접근할 수 있는 상태가 됨에 따라, 권한 정보를 재설정하고 범용 레지스터(144)에 저장된 값을 삭제하기 전에, 권한 정보와 범용 레지스터(144)에 저장된 값을 백업해둘 수 있다. 그리고 이후에, 자원 보호부(133)는 운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 없는 상태가 되면, 미리 백업해둔 데이터를 이용하여, 권한 정보 및 범용 레지스터(144)에 저장된 값을 복구할 수 있다. The resource protection unit 133 resets the privilege information and deletes the value stored in the general register 144 as the operating system 120 becomes accessible to the application program 110, The value stored in the register 144 can be backed up. Then, when the operating system 120 can not access the resource of the application program 110, the resource protection unit 133 uses the previously backed up data to access the rights information and the general register 144 The stored value can be recovered.

운영 체제(120)가 응용 프로그램(110)의 자원에 접근할 수 없는 상태는 응용 프로그램(110)의 실행 모드가 커널(kernel) 모드에서 유저(user) 모드로 전환되어, 유저 모드로 응용 프로그램(110)이 실행되는 경우를 포함할 수 있다. 따라서, 응용 프로그램(110)의 실행 모드가 유저 모드가 되면, 운영 체제(120)는 응용 프로그램(110)의 자원에 접근할 수 없으므로, 자원 보호부(133)는 백업된 데이터를 이용하여 권한 정보 및 범용 레지스터(144)에 저장된 값을 복구할 수 있다. 권한 정보 및 범용 레지스터(144)에 저장된 값이 복구됨에 따라, 응용 프로그램(110)은 복구된 데이터를 이용하여 정상적으로 실행될 수 있다.A state in which the operating system 120 can not access the resources of the application program 110 is a state in which the execution mode of the application program 110 is switched from a kernel mode to a user mode, 110) is executed. Accordingly, when the execution mode of the application program 110 is changed to the user mode, the operating system 120 can not access the resources of the application program 110. Therefore, the resource protection unit 133 may use the backed- And the value stored in the general purpose register 144 can be recovered. As the rights information and the value stored in the general purpose register 144 are restored, the application program 110 can be normally executed using the recovered data.

자원 보호부(133)에 의하여, 보호 대상으로 등록된 메모리 페이지에 대한 접근 권한 정보가 재설정되고, 범용 레지스터의 값이 제거된 이후, 운영 체제(120)의 시스템 호출 처리부(122)는 시스템 호출을 처리할 수 있다. 응용 프로그램(110)에서 발생된 시스템 호출을 처리하기 위하여, 시스템 호출 처리부(122)는 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 대한 접근을 시도할 수 있다. After the access right information for the memory page registered as the protection target is reset by the resource protection unit 133 and the value of the general purpose register is removed, the system call processing unit 122 of the operating system 120 executes the system call Can be processed. In order to process the system call generated by the application program 110, the system call processing unit 122 may attempt to access the memory page allocated as the resource of the application program 110. [

구체적으로, 시스템 호출 처리부(122)는 접근하고자 하는 메모리 페이지에 대한 게스트 물리 주소를 페이지 테이블(121)로부터 획득한다. 그리고, 시스템 호출 처리부(122)는 중첩 페이지 테이블(151)을 이용하여 게스트 물리 주소와 대응되는 호스트 물리 주소를 획득할 수 있다. 시스템 호출 처리부(122)는 중첩 페이지 테이블(151)로부터 획득된 호스트 물리 주소를 이용하여 접근하고자 하는 메모리 페이지에 대한 접근을 시도할 수 있다. 그러나, 시스템 호출 처리부(122)가 메모리 페이지에 접근할 수 없도록 접근 권한 정보가 자원 보호부(133)에 의해 재설정된 상태이므로, 시스템 호출 처리부(122)의 메모리 페이지에 대한 접근은 즉시 허용되지 않는다.Specifically, the system call processing unit 122 obtains the guest physical address of the memory page to be accessed from the page table 121. [ The system call processing unit 122 can obtain the host physical address corresponding to the guest physical address by using the overlapped page table 151. [ The system call processing unit 122 may attempt to access a memory page to be accessed using the host physical address obtained from the overlapping page table 151. [ However, since the access right information is reset by the resource protection unit 133 so that the system call processing unit 122 can not access the memory page, access to the memory page of the system call processing unit 122 is not immediately permitted .

자원 보호부(133)는 시스템 호출 처리부(122)가 보호 대상으로 등록된 메모리 페이지에 접근하려고 하는 경우, 기약정된 보안 규칙에 따라 메모리 페이지에 저장된 데이터를 암호화한 후, 시스템 호출 처리부(122)에 암호화된 데이터를 제공할 수 있다. 자원 보호부(133)는 시스템 호출 처리부(122)가 처리하고자 하는 시스템 호출에 따라서 데이터를 암호화한 후, 시스템 호출 처리부(122)가 메모리 페이지에 접근할 수 있도록 접근 권한 정보를 다시 설정할 수 있다.When the system call processing unit 122 attempts to access a memory page registered as a protection target, the resource protection unit 133 encrypts the data stored in the memory page according to the predefined security rule, Lt; / RTI > The resource protection unit 133 may reset the access right information so that the system call processing unit 122 can access the memory page after the system call processing unit 122 encrypts data according to the system call to be processed.

시스템 호출 처리부(122)가 보호 대상으로 등록된 메모리에 접근하는 시점에서, 보호 대상으로 등록된 메모리 페이지의 각 동작에 대한 권한 비트는 0으로 세팅된 상태이다. 따라서, 시스템 호출 처리부(122)는 보호 대상으로 등록된 메모리 페이지에 접근하여도, 접근 권한이 없으므로, 시스템 호출을 처리할 수 없다. 자원 보호부(133)는 기약정된 보안 규칙에 따라 메모리 페이지에 저장된 데이터를 암호화한 후, 시스템 호출 처리부(122)에 암호화된 데이터를 제공할 수 있다.At the time when the system call processing unit 122 accesses the memory registered as a protection target, the permission bit for each operation of the memory page registered as a protection target is set to zero. Therefore, even if the system call processing unit 122 accesses the memory page registered as a protection target, the system call processing unit 122 can not process the system call because the access right is not available. The resource protection unit 133 may encrypt the data stored in the memory page according to the predefined security rule and then provide the encrypted data to the system call processing unit 122. [

예를 들면, 시스템 호출 처리부(122)가 파일 열기 시스템 호출(file open system call)을 처리하는 경우, 열고자 하는 파일에 관한 정보(파일 이름 또는 경로)를 획득하는 것이 필요하다. 그러나, 파일 정보는 응용 프로그램(110)의 실행 중 사용된 정보이므로 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 저장되어 있다. 응용 프로그램(110)이 보호 대상으로 설정된 경우이면, 메모리 페이지도 보호 대상으로 등록되므로, 시스템 호출 처리부(122)가 메모리 페이지에 접근하는 시점에서, 메모리 페이지의 각 동작에 대한 권한 비트는 자원 보호부(133)에 의해 0으로 설정된 상태이다.For example, when the system call processing unit 122 processes a file open system call, it is necessary to acquire information (file name or path) about a file to be opened. However, since the file information is information used during execution of the application program 110, the file information is stored in a memory page allocated as a resource of the application program 110. [ When the application program 110 is set as a protection target, the memory page is also registered as a protection target. Therefore, at the time when the system call processing unit 122 accesses the memory page, And is set to 0 by the control unit 133.

시스템 호출 처리부(122)가 파일 열기 시스템 호출의 처리를 위해 파일 이름 및 경로를 포함하는 파일 정보를 보호 대상으로 등록된 메모리 페이지로부터 획득하고자 하는 경우, 자원 보호부(133)는 메모리 페이지에 저장된 파일 정보를 암호화하지 않을 수 있다. 파일 이름이나 파일 경로는 보안상 중요한 정보에 해당되지 않으므로 자원 보호부(133)는 데이터를 암호화하지 않고 시스템 호출 처리부(122)에 제공할 수 있다. 자원 보호부(133)는 시스템 호출 처리부(122)가 파일 정보를 획득할 수 있도록 메모리 페이지에 대한 접근 권한 정보를 다시 설정하거나 암호화되지 않은 파일 정보를 시스템 호출 처리부(122)에 제공할 수 있다.When the system call processing unit 122 intends to acquire file information including a file name and a path from a memory page registered as a protection target for processing of a file open system call, the resource protection unit 133 stores the file Information may not be encrypted. Since the file name or the file path does not correspond to security-important information, the resource protection unit 133 can provide the system call processing unit 122 with the data without encrypting it. The resource protection unit 133 may reset the access authority information for the memory page or provide the unencrypted file information to the system call processing unit 122 so that the system call processing unit 122 can acquire the file information.

또 다른 예를 들면, 시스템 호출 처리부(122)가 파일 쓰기 시스템 호출(write system call)을 처리하는 경우, 소정의 저장 영역에서 쓰기 동작을 수행하기 위한 데이터를 획득하는 것이 필요하다. 그러나, 파일 쓰기 시스템 호출 처리에 필요한 데이터는 응용 프로그램(110)의 실행 중 사용된 정보이므로 응용 프로그램(110)의 자원으로 할당된 메모리 페이지에 저장되어 있다. 응용 프로그램(110)이 보호 대상으로 설정된 경우이면, 메모리 페이지도 보호 대상으로 등록되므로, 시스템 호출 처리부(122)가 메모리 페이지에 접근하는 시점에서, 메모리 페이지의 각 동작에 대한 권한 비트는 자원 보호부(133)에 의해 0으로 설정된 상태이다.As another example, when the system call processing unit 122 processes a file write system call, it is necessary to acquire data for performing a write operation in a predetermined storage area. However, the data required for the file writing system call processing is stored in the memory page allocated as the resource of the application program 110, since it is information used during execution of the application program 110. [ When the application program 110 is set as a protection target, the memory page is also registered as a protection target. Therefore, at the time when the system call processing unit 122 accesses the memory page, And is set to 0 by the control unit 133.

파일 쓰기 시스템 호출 처리에 필요한 데이터는 파일 이름 및 경로를 포함하는 파일 정보와는 달리, 응용 프로그램(110)의 데이터가 포함되어 있으므로, 보안상 중요한 정보를 포함할 수 있다. 따라서, 자원 보호부(133)는 파일 쓰기 시스템 호출 처리에 필요한 데이터를 암호화한 후, 시스템 호출 처리부(122)가 암호화된 데이터를 획득할 수 있도록 메모리 페이지에 대한 읽기 권한을 허여할 수 있다. 또는, 자원 보호부(133)는 암호화된 데이터를 시스템 호출 처리부(122)에 제공하여 줄 수 있다. Unlike the file information including the file name and the path, the data required for the file writing system call processing may include information of security importance because the data of the application program 110 is included. Accordingly, the resource protection unit 133 can grant read permission to the memory page so that the system call processing unit 122 can acquire the encrypted data after encrypting the data necessary for the file write system call processing. Alternatively, the resource protection unit 133 may provide the encrypted data to the system call processing unit 122.

시스템 호출 처리부(122)는 암호화된 데이터에 대한 정당한 권리를 가지고 있지 않아 암호화 키를 획득할 수 없으므로, 암호화된 데이터를 복호화할 수 없다. 따라서, 시스템 호출 처리부(122) 및 운영 체제(120)에 의해 응용 프로그램(110)의 데이터가 유출되거나 위변조되는 것이 방지될 수 있다. The system call processing unit 122 can not decrypt the encrypted data because it can not obtain the encryption key because it does not have the right to the encrypted data. Therefore, data of the application program 110 can be prevented from being leaked or forged by the system call processing unit 122 and the operating system 120. [

더하여, 메모리 페이지가 응용 프로그램(110)의 자원으로 할당되거나 해제됨에 따라, 자원 보호부(133)는 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제할 수 있다. 운영 체제(120)에 의해 메모리 페이지는 응용 프로그램(110)의 자원으로 할당되거나 해제될 수 있다. 운영 체제(120)는 메모리 페이지를 응용 프로그램(110)의 자원으로 할당하거나 해제함에 따라 페이지 테이블(121)을 갱신할 수 있다.In addition, as the memory page is allocated or released as a resource of the application program 110, the resource protection unit 133 can register the memory page as a protection target or release it from the protection target. The memory page may be allocated or released by the operating system 120 as resources of the application program 110. [ The operating system 120 may update the page table 121 by allocating or releasing the memory page as a resource of the application program 110. [

자원 보호부(133)는 보호 대상으로 등록된 응용 프로그램(110)의 페이지 테이블(121)을 보호 대상으로 등록해 두고, 운영 체제(120)에 의해 페이지 테이블(121)이 수정되는지 여부를 감시할 수 있다. The resource protection unit 133 registers the page table 121 of the application program 110 registered as a protection target as a protection target and monitors whether or not the page table 121 is modified by the operating system 120 .

예를 들어, 운영 체제(120)에 의해 메모리 페이지가 새롭게 할당되면, 페이지 테이블(121)에 새롭게 할당된 메모리 페이지에 대한 게스트 가상 주소와 게스트 물리 주소 간 사상 정보가 저장된다. 그리고, 중첩 페이지 테이블(151)에는 새롭게 할당된 메모리 페이지에 대한 게스트 물리 주소와 호스트 물리 주소간 사상 정보가 저장된다. 페이지 테이블(121) 및 중첩 페이지 테이블(151)에는 새롭게 할당된 메모리 페이지에 관한 정보가 저장될 수 있다.For example, when a memory page is newly allocated by the operating system 120, mapping information between the guest virtual address and the guest physical address for the memory page newly allocated to the page table 121 is stored. In the overlapping page table 151, mapping information between the guest physical address and the host physical address for the newly allocated memory page is stored. The page table 121 and the superimposed page table 151 may store information on newly allocated memory pages.

반면에, 운영 체제(120)에 의해 할당되어 있던 메모리 페이지가 해제되면, 페이지 테이블(121) 및 중첩 페이지 테이블(151)에 저장된 해제된 메모리 페이지에 대한 정보와 메모리 페이지에 저장되어 있던 정보가 삭제된다. 자원 보호부(133)는 페이지 테이블(121)에서 수정된 값을 확인하고, 새롭게 할당되거나 해제된 메모리 페이지에 관한 정보를 획득할 수 있다. 그리고, 자원 보호부(133)는 페이지 테이블(121)에서 수정된 값에 따라, 중첩 페이지 테이블(151)과 보호 대상으로 등록된 메모리 페이지에 관한 정보를 갱신할 수 있다.On the other hand, when the memory page allocated by the operating system 120 is released, information about the released memory page stored in the page table 121 and the overlapped page table 151 and the information stored in the memory page are deleted do. The resource protection unit 133 can confirm the modified value in the page table 121 and obtain information about the newly allocated or released memory page. The resource protection unit 133 may update the information about the overlapped page table 151 and the memory page registered as a protection target according to the value modified in the page table 121. [

자원 보호부(133)는 보호 대상으로 설정된 응용 프로그램에 대한 자원으로 메모리 페이지가 새롭게 할당되면 새로 할당된 메모리 페이지를 보호 대상으로 등록할 수 있다. 또한, 보호 대상으로 등록된 메모리 페이지의 할당이 해제되면, 할당이 해제된 메모리 페이지에 저장된 데이터가 삭제된 이후, 할당이 해제된 메모리 페이지가 보호 대상에서 해제될 수 있다. 데이터 삭제가 보호 대상에서의 해제보다 선행됨으로써, 할당이 해제된 메모리 페이지가 보호 대상에서 해제됨에 따라 발생될 수 있는 데이터 유출 또는 위변조가 방지될 수 있다.The resource protection unit 133 can register a newly allocated memory page as a protection target when a memory page is newly allocated as a resource for an application program set as a protection target. In addition, when the memory page registered as the protection target is deallocated, the memory page that has been deallocated can be released from protection after the data stored in the deallocated memory page is deleted. Data deletion precedes release on the protected object, thereby preventing data leakage or forgery that may occur as the deallocated memory page is released from protection.

커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의해 시스템 호출이 처리된 이후 시스템 호출의 처리 결과에 대하여 검증한다. 운영 체제(120)가 악성 코드에 의해 감염된 상태인 경우, 운영 체제(120)의 시스템 호출 처리부(122)에 의해 수행된 시스템 호출에 따라 처리된 데이터는 위변조될 수 있는 가능성이 있다. 따라서, 커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의해 처리되는 데이터의 원본 데이터와, 시스템 호출에 따라 처리된 데이터를 비교하여 데이터의 무결성을 검증할 수 있다. 예를 들면, 커널 수행 검증부(134)는 원본 데이터의 해시값(hash value)과 시스템 호출에 따라 처리된 데이터의 해시값을 비교하여, 데이터의 무결성을 검증할 수 있다.The kernel execution verification unit 134 verifies the processing result of the system call after the system call is processed by the system call processing unit 122. [ If the operating system 120 is infected by malicious code, the data processed according to the system call made by the system call processing unit 122 of the operating system 120 may be forged. Therefore, the kernel execution verifying unit 134 can verify the integrity of the data by comparing the original data of the data processed by the system call processing unit 122 with the data processed according to the system call. For example, the kernel execution verification unit 134 may verify the integrity of the data by comparing the hash value of the original data with the hash value of the processed data according to the system call.

예를 들어, 시스템 호출 처리부(122)가 읽기 시스템 호출(read system call)을 수행하는 경우, 시스템 호출 처리부(122)는 다른 메모리 영역 또는 저장 장치에 저장된 데이터를 읽고, 읽은 데이터를 보호 대상으로 등록된 메모리 페이지에 저장할 수 있다. 커널 수행 검증부(134)는 읽기 시스템 호출이 처리되기 전에, 시스템 호출 처리부(122)가 시스템 호출 처리를 위해 읽으려는 데이터를 원본 데이터로써 획득할 수 있다. 그리고, 읽기 시스템 호출이 처리됨에 따라 시스템 호출 처리부(122)는 보호 대상으로 등록된 메모리 페이지에 데이터를 저장할 수 있다. 커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의하여 저장된 데이터의 해시 값과, 원본 데이터를 해시 값을 비교함으로써, 데이터의 무결성을 검증할 수 있다.For example, when the system call processing unit 122 performs a read system call, the system call processing unit 122 reads data stored in another memory area or storage device and registers the read data as a protection target Can be stored in a memory page. The kernel execution verification unit 134 may acquire data that the system call processing unit 122 reads as the original data before processing the read system call. Then, as the read system call is processed, the system call processing unit 122 can store the data in the memory page registered as the protection target. The kernel execution verification unit 134 can verify the integrity of the data by comparing the hash value of the data stored by the system call processing unit 122 with the hash value of the original data.

또한, 시스템 호출 처리부(122)가 쓰기 시스템 호출을 수행하는 경우, 시스템 호출 처리부(122)는 보호 대상으로 등록된 메모리 페이지에 저장된 데이터를 읽고, 읽은 데이터를 다른 메모리 영역 또는 저장 장치에 저장할 수 있다. 커널 수행 검증부(134)는 쓰기 시스템 호출이 처리되기 전에, 보호 대상으로 등록된 메모리 페이지로부터 시스템 호출 처리부(122)가 시스템 호출 처리를 위해 읽으려는 데이터를 원본 데이터로써 획득할 수 있다. 그리고, 쓰기 시스템 호출이 처리됨에 따라 시스템 호출 처리부(122)는 다른 메모리 영역 또는 저장 장치에 데이터를 저장할 수 있다. 쓰기 시스템 호출에 대한 처리가 완료된 이후, 커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의하여 저장된 데이터의 해시 값과, 원본 데이터를 해시 값을 비교함으로써, 데이터의 무결성을 검증할 수 있다.In addition, when the system call processing unit 122 performs a write system call, the system call processing unit 122 may read data stored in a memory page registered as a protection target and store the read data in another memory area or a storage device . The kernel execution verifying unit 134 can obtain data to be read by the system call processing unit 122 from the memory page registered as a protection target for system call processing as original data before the write system call is processed. And, as the write system call is processed, the system call processing unit 122 can store data in another memory area or storage device. After completing the processing for the write system call, the kernel execution verification unit 134 can verify the integrity of the data by comparing the hash value of the data stored by the system call processing unit 122 with the hash value of the original data .

더하여, 시스템 호출 처리부(122)가 응용 프로그램의 자원으로 새로운 메모리 페이지를 할당하기 위한 시스템 호출을 수행하는 경우, 커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의한 시스템 호출의 처리 결과를 검증할 수 있다. 응용 프로그램의 자원으로 새로운 메모리 페이지를 할당하기 위한 시스템 호출은 예를 들면, mmap 시스템 호출을 포함할 수 있다.In addition, when the system call processing unit 122 performs a system call to allocate a new memory page as a resource of an application program, the kernel execution verification unit 134 obtains the processing result of the system call by the system call processing unit 122 Can be verified. A system call to allocate a new memory page as a resource of an application may include, for example, a mmap system call.

시스템 호출 처리부(122)에 의하여, 기존에 보호 대상으로 등록된 메모리 페이지가 새로운 메모리 페이지로서 할당되면, 응용 프로그램은 할당된 메모리 페이지에 대하여 읽기, 쓰기 등의 동작을 수행할 수 있다. 따라서, 이전에 저장되어 있던 데이터가 삭제되거나 변조될 수 있다. When the memory page registered as a protection target is allocated as a new memory page by the system call processing unit 122, the application program can perform operations such as reading and writing on the allocated memory page. Thus, previously stored data can be erased or modulated.

커널 수행 검증부(134)는 새로운 메모리 페이지를 실행 중인 응용 프로그램의 자원으로 할당하기 위한 시스템 호출이 처리된 이후, 새롭게 할당된 메모리 페이지가 기존에 응용 프로그램의 자원으로 할당되어 있는 메모리 페이지와 동일한지 확인한다. 동일한 경우, 커널 수행 검증부(134)는 새롭게 할당된 메모리 페이지에 대한 할당이 해제되도록 처리할 수 있다. 기존에 할당된 메모리 페이지는 자원 보호부(133)에 의해 보호 대상으로 등록된 메모리 페이지를 포함할 수 있다. After the system call for allocating a new memory page as a resource of an executing application program is processed, the kernel execution verifying unit 134 checks whether the newly allocated memory page is the same as the memory page allocated as a resource of the application program Check. If they are the same, the kernel execution verification unit 134 can process the allocation of the newly allocated memory page to be released. The previously allocated memory page may include a memory page registered as a protection target by the resource protection unit 133. [

이하 도 3 및 도 4를 참조하여, 응용 프로그램의 자원에 대한 접근 권한을 제어하는 방법에 대하여 설명하기로 한다.Hereinafter, a method for controlling access rights to resources of an application program will be described with reference to FIGS. 3 and 4. FIG.

도 3은 일 실시 예에 의한 응용 프로그램의 자원에 대한 접근 권한을 제어하는 방법을 나타낸 순서도이다.FIG. 3 is a flowchart illustrating a method for controlling access rights to resources of an application program according to an embodiment.

도 3을 참조하면, 단계 S301에서 디바이스(100)는 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 보호 대상으로 설정된 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단한다. 구체적으로, 디바이스(100)는 실행 중인 응용 프로그램 중에, 보호 대상으로 설정된 응용 프로그램을 판별하고, 보호 대상으로 설정된 응용 프로그램의 자원에 운영 체제가 접근할 수 있는 상태인지를 지속적으로 모니터링할 수 있다. Referring to FIG. 3, in operation S301, the device 100 determines whether an operating system can access a resource of an application program set as a protection target while an application program set as a protection target is executed. Specifically, the device 100 can identify an application program set as a protection target among the application programs being executed and continuously monitor whether the operating system can access the resources of the application program set as a protection target.

단계 S303에서, 디바이스(100)는 보호 대상으로 설정된 응용 프로그램의 자원에 운영 체제가 접근 가능한 상태인지 판단할 수 있다. 예를 들면, 디바이스(100)는 응용 프로그램의 실행 모드가 유저 모드에서 커널 모드로 전환되는 경우, 운영 체제가 응용 프로그램의 자원에 접근할 수 있는 상태에 있는 것으로 판단할 수 있다. 응용 프로그램의 실행 모드가 커널 모드인 경우, 응용 프로그램에서 발생된 시스템 호출 또는 이벤트에 따라, 응용 프로그램의 자원으로 할당된 하드웨어 영역에 운영 체제가 접근할 수 있다.In step S303, the device 100 may determine whether the operating system is accessible to the resource of the application program set as the protection target. For example, the device 100 may determine that the operating system is in a state where it can access the resources of the application program when the execution mode of the application program is switched from the user mode to the kernel mode. If the execution mode of the application is in kernel mode, the operating system can access the hardware area allocated by the resource of the application according to the system call or event generated by the application program.

단계 S303에서, 보호 대상으로 설정된 응용 프로그램의 자원에 운영 체제가 접근 가능한 상태인 것으로 판단된 경우, 단계 S305에서, 디바이스(100)는 보호 대상으로 설정된 응용 프로그램의 자원에 대한 접근 권한을 제어할 수 있다. 보호 대상으로 설정된 응용 프로그램의 자원에 운영 체제가 접근하여, 응용 프로그램의 자원에 존재하는 데이터를 유출시키거나 위변조하는 것을 막기 위해, 디바이스(100)는 자원에 대한 접근 권한을 제어할 수 있다. 자원에 대한 접근 권한은 읽기, 쓰기, 실행 등의 동작 별로 허용 여부에 관해 설정될 수 있으며, 접근 주체를 구별하여 설정되지는 않을 수 있다. 이에 한하지 않고, 접근 주체 별로 자원에 대한 접근 권한이 설정될 수도 있다.If it is determined in step S303 that the operating system is accessible to the resource of the application program set as the protection target, the device 100 controls the access right to the resource of the application program set as the protection target in step S305 have. The device 100 can control the access right to the resource in order to prevent the operating system from accessing the resource of the application program set as the protection target and to prevent leakage or forgery of data existing in the resource of the application program. Access rights to resources can be set for each operation such as read, write, and execution, and may not be set by distinguishing access subjects. However, access rights to resources may be set for each access subject.

디바이스(100)는 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호하고자 하는 경우, 보호하고자 하는 메모리 페이지를 보호 대상으로 등록할 수 있다. 그리고, 디바이스(100)는 중첩 페이지 테이블(151)에 저장된 메모리 페이지에 대한 접근 권한을 재설정할 수 있다.When the device 100 wants to protect a memory page allocated as a resource of an application program, the device 100 can register the memory page to be protected as a protection target. Then, the device 100 can reset the access right to the memory page stored in the overlapping page table 151. [

이하 도 4를 참조하여, 응용 프로그램의 자원에 대한 접근 권한을 제어하는 일 예로, 메모리 페이지의 접근 권한과 레지스터의 데이터 값을 제거하는 방법에 대하여 더 자세히 설명하기로 한다.Referring to FIG. 4, a method of removing an access right of a memory page and a data value of a register will be described in detail as an example of controlling an access right to an application program resource.

도 4는 일 실시 예에 의한 응용 프로그램의 자원에 대한 접근 권한 및 레지스터 값을 제어하는 방법을 나타낸 순서도이다.4 is a flowchart illustrating a method of controlling an access right and a register value of an application program according to an exemplary embodiment of the present invention.

도 4를 참조하면, 단계 S401에서, 디바이스(100)는 보호 대상으로 설정된 응용 프로그램의 실행 모드를 판단할 수 있다. 응용 프로그램의 실행 모드에 따라서, 운영 체제가 보호 대상으로 설정된 응용 프로그램의 자원에 접근이 가능한지 여부가 결정될 수 있다. 디바이스(100)는 응용 프로그램의 실행 모드에 따라 응용 프로그램의 자원에 대한 접근 권한을 제어할 수 있다.Referring to FIG. 4, in step S401, the device 100 may determine an execution mode of an application program set as a protection target. Depending on the execution mode of the application program, it may be determined whether or not the operating system is able to access the resource of the application program set as the protection target. The device 100 may control the access rights to the resources of the application program according to the execution mode of the application program.

단계 S403에서, 디바이스(100)는 보호 대상으로 설정된 응용 프로그램이 커널 모드로 동작하는지 여부를 판단할 수 있다. 디바이스(100)는 보호 대상으로 설정된 응용 프로그램이 유저 모드로 동작하다가 커널 모드로 전환되어 동작하는지 여부를 판단할 수 있다. In step S403, the device 100 can determine whether an application program set as a protection target operates in a kernel mode. The device 100 can determine whether an application program set as a protection target operates in a user mode and is switched to a kernel mode and operates.

유저 모드에서 커널 모드로의 전환은 응용 프로그램에서 인터럽트(interrupt), 예외(exception), 시스템 호출(system call) 등의 이벤트가 발생됨에 따라 이루어질 수 있다. 또한, 커널 모드에서 유저 모드로의 전환은 응용 프로그램에서 스케줄링, 시스템 호출 반환(system call return) 등의 이벤트가 발생됨에 따라 이루어질 수 있다. 상술된 이벤트들은 예시에 불과하며, 이에 한정되지는 않는다.Switching from user mode to kernel mode can be done as an application generates an interrupt, an exception, or a system call event. In addition, switching from the kernel mode to the user mode may be performed when an event such as a scheduling or a system call return is generated in an application program. The above-described events are merely examples, and the present invention is not limited thereto.

또 다른 예로, 디바이스(100)는 응용 프로그램의 실행 모드를 전환 시키는 이벤트에 의하여 발생될 수 있는 VM exit, EPT violation 등의 특정 이벤트들을 이용하여 응용 프로그램의 실행 모드가 전환됨을 감지할 수 있다. VM exit는 응용 프로그램의 실행 모드를 사용자 모드에서 커널 모드로 전환시키는 이벤트들에 의해 발생될 수 있는 이벤트이다. EPT violation은 커널 모드에서, 운영 체제(120) 또는 다른 응용 프로그램이 보호 대상으로 등록된 응용 프로그램의 메모리 페이지에 접근할 때 운영 체제(120) 또는 다른 응용 프로그램의 접근 권한이 없어 발생될 수 있는 이벤트이다.As another example, the device 100 may detect switching of an execution mode of an application program by using specific events such as a VM exit, an EPT violation, etc., which may be generated by an event for switching an execution mode of an application program. A VM exit is an event that can be triggered by events that cause an application to change its execution mode from user mode to kernel mode. EPT violation is an event that occurs in the kernel mode when an operating system 120 or another application accesses a memory page of an application registered as protected, to be.

따라서, 디바이스(100)는 응용 프로그램에서 발생된 이벤트를 감지함으로써 응용 프로그램의 실행 모드가 커널 모드로 전환되었는지 여부를 판단할 수 있다.Accordingly, the device 100 can determine whether the execution mode of the application program is switched to the kernel mode by detecting an event generated in the application program.

예를 들면, 디바이스(100)는 응용 프로그램의 실행 모드를 전환 시키는 이벤트의 발생을 감지할 수 있도록 하는 수정된 라이브러리를 이용할 수 있다. 디바이스(100)는 응용 프로그램의 실행 모드를 전환시키는 이벤트를 처리하기 위한 기존의 진입점(entry)이 특정 진입점으로 교체된 라이브러리를 이용할 수 있다. 따라서, 디바이스(100)는 수정된 라이브러리를 이용함으로써 응용 프로그램의 실행 모드를 전환시키거나 실행 모드가 전환될 때 발생 가능한 이벤트가 발생되면, 특정 진입점으로 이벤트가 처리될 수 있다. 디바이스(100)는 특정 진입점으로 이벤트가 처리됨에 따라 이용함으로써 응용 프로그램의 실행 모드를 전환시키거나 실행 모드가 전환될 때 발생 가능한 이벤트의 발생을 감지할 수 있다. 예를 들면, 디바이스(100)가 수정된 라이브러리를 이용함에 따라, 발생된 이벤트를 감지할 수 있는 신호가 생성될 수 있다.For example, the device 100 may utilize a modified library to enable detection of the occurrence of an event that switches the execution mode of an application program. The device 100 may use a library in which an existing entry point for processing an event that switches the execution mode of an application program has been replaced with a specific entry point. Thus, the device 100 can process an event to a particular entry point when an event occurs that can occur when the execution mode of the application is switched or the application mode is switched by using the modified library. The device 100 may use an event as it is processed at a particular entry point to switch the execution mode of the application program or to detect the occurrence of an event that may occur when the execution mode is switched. For example, as the device 100 utilizes the modified library, a signal that can detect the generated event can be generated.

단계 S403에서, 보호 대상으로 설정된 응용 프로그램의 실행 모드가 커널 모드인 것으로 판단된 경우, 단계 S405에서, 응용 프로그램 보호부(130)는 응용 프로그램의 자원으로 할당된 메모리 페이지의 접근 권한 정보와 레지스터 값을 백업해 둘 수 있다. 백업될 수 있는 레지스터 값은 응용 프로그램이 실행 중에 범용 레지스터에 저장해둔 데이터를 포함한다. 응용 프로그램 보호부(130)는 응용 프로그램의 실행 모드가 유저 모드로 전환되었을 때, 단계 S405에서 백업된 값을 이용하여 접근 권한 정보 및 레지스터 값을 복구할 수 있다.If it is determined in step S403 that the execution mode of the application program set as the protection target is the kernel mode, in step S405, the application program protection unit 130 stores the access right information of the memory page allocated as the resource of the application program, Can be backed up. The register values that can be backed up contain data that is stored in the general-purpose registers while the application is running. When the execution mode of the application program is switched to the user mode, the application program protection unit 130 may recover the access right information and the register value using the value backed up in step S405.

단계 S405에서 백업이 완료되면, 단계 S407에서, 응용 프로그램 보호부(130)는 응용 프로그램의 자원으로 할당된 메모리 페이지의 접근 권한 정보와 레지스터 값을 제거할 수 있다. 응용 프로그램 보호부(130)는 운영 체제(120)가 응용 프로그램의 메모리 페이지에 접근할 수 없도록 메모리 페이지의 접근 권한 정보를 재설정할 수 있다. 또한, 응용 프로그램 보호부(130)는 운영 체제(120)가 응용 프로그램의 레지스터 값을 유출할 수 없도록 응용 프로그램이 저장해둔 레지스터 값을 제거할 수 있다.When the backup is completed in step S405, in step S407, the application program protection unit 130 may remove the access right information and the register value of the memory page allocated as the resource of the application program. The application protection unit 130 can reset the access privilege information of the memory page so that the operating system 120 can not access the memory page of the application program. In addition, the application program protection unit 130 may remove a register value stored by the application program so that the operating system 120 can not export the register value of the application program.

단계 S411에서, 운영 체제(120)는 응용 프로그램(110)에서 발생된 시스템 호출을 처리할 수 있다. 일 실시 예에 의하면 운영 체제(120)가 시스템 호출을 처리하기 위해 응용 프로그램(110)의 자원에 접근하기 전에, 응용 프로그램 보호부(130)는 단계 S407에서 메모리 페이지의 접근 권한을 재설정하고, 레지스터의 데이터 값을 제거할 수 있다. 따라서, 디바이스(100)는 악성 코드, 악성 소프트웨어 등에 감염된 운영 체제(120)가 응용 프로그램(110)의 자원에 접근하여 데이터를 유출하거나 위변조하는 것을 미리 방지할 수 있다.In step S411, the operating system 120 may process the system call generated in the application program 110. [ According to one embodiment, before the operating system 120 accesses the resources of the application program 110 to process the system call, the application program protection unit 130 resets the access right of the memory page in step S407, Can be removed. Accordingly, the device 100 can prevent the operating system 120 infected with malicious code, malicious software, etc. from accessing the resources of the application program 110 to leak or forge data.

더하여, 응용 프로그램 보호부(130)는 단계 S401에서 보호 대상으로 설정된 응용 프로그램의 실행 모드를 지속적으로 판단할 수 있다. 응용 프로그램 보호부(130)는 응용 프로그램의 실행 모드가 커널 모드에서 유저 모드로 전환되는지 여부를 지속적으로 모니터링할 수 있다.In addition, the application program protection unit 130 may continuously determine the execution mode of the application program set as a protection target in step S401. The application protection unit 130 may continuously monitor whether the execution mode of the application program is switched from the kernel mode to the user mode.

유저 모드에서는 운영 체제(120) 또는 다른 응용 프로그램에서 응용 프로그램의 자원에 접근하는 것이 가능하지 않다. 따라서, 유저 모드에서는 운영 체제(120) 다른 외부 응용 프로그램에서 응용 프로그램의 자원에 접근함에 따라 발생될 수 있는 데이터의 유출 및 위변조가 발생되지 않는다. 그러므로, 응용 프로그램의 실행 모드가 유저 모드로 전환되면, 응용 프로그램 보호부(130)는 응용 프로그램의 내부에서 응용 프로그램의 자원에 접근할 수 있도록 자원에 대한 접근 권한을 제어할 수 있다. 응용 프로그램이 자신의 작업을 수행하기 위해 자신의 자원에 접근할 수 있음이 바람직하다. 그러므로, 응용 프로그램 보호부(130)는 응용 프로그램의 실행 모드가 유저 모드로 전환되면, 응용 프로그램이 자원에 접근할 수 있도록 자원에 대한 접근 권한을 제어할 수 있다.In the user mode it is not possible to access the application's resources in the operating system 120 or other applications. Accordingly, in the user mode, there is no leakage or forgery of data that may occur as the operating system 120 accesses an application program resource from another external application program. Therefore, when the execution mode of the application program is switched to the user mode, the application program protection unit 130 can control the access rights to the resources so as to access the resources of the application program within the application program. It is desirable for an application to be able to access its resources in order to perform its tasks. Therefore, when the execution mode of the application program is switched to the user mode, the application program protection unit 130 can control the access right to the resource so that the application program can access the resource.

단계 S403에서, 응용 프로그램의 실행 모드가 유저 모드인 것으로 판단되면, 단계 S413에서, 응용 프로그램 보호부(130)는 메모리 페이지에 대한 접근 권한 정보와 레지스터 값에 대하여 미리 백업된 값이 존재하는지 여부를 판단할 수 있다. If it is determined in step S403 that the execution mode of the application program is the user mode, in step S413, the application program protection unit 130 determines whether access rights information on the memory page and a value previously backed up for the register value exist It can be judged.

응용 프로그램(110)의 실행 모드가 커널 모드일 때, 응용 프로그램 보호부(130)는 단계 S405에서 메모리 페이지에 대한 접근 권한 정보와 레지스터 값을 백업해 둘 수 있다. 그리고, 응용 프로그램(110)의 실행 모드가 커널 모드에서 유저 모드로 전환되면, 단계 S415에서, 응용 프로그램 보호부(130)는 단계 S405에서 백업해 둔 값을 이용하여 메모리 페이지에 대한 접근 권한 정보와 레지스터 값을 복구할 수 있다.When the execution mode of the application program 110 is the kernel mode, the application program protection unit 130 may back up the access privilege information and the register value for the memory page in step S405. When the execution mode of the application program 110 is switched from the kernel mode to the user mode, in step S415, the application program protection unit 130 uses the values backed up in step S405 to access the memory page, The register value can be recovered.

단계 S413에서, 백업된 값이 존재하지 않는 경우, 데이터 복구를 수행할 수 없으므로, 응용 프로그램 보호부(130)는 단계 S415의 데이터 복구를 수행하지 않는다.If the backup value does not exist in step S413, the application program protection unit 130 does not perform the data recovery in step S415 because the data recovery can not be performed.

단계 S417에서, 응용 프로그램은 실행 모드가 커널 모드로 전환되기 전에 유저 모드에서 수행하던 작업을 단계 S415에서 복구된 값에 기초하여 계속 수행할 수 있다. 또한, 단계 S415에서 복구된 값에 기초하여, 응용 프로그램은 자신의 자원으로 할당된 메모리 페이지에 접근함으로써 응용 프로그램에서 작업을 수행할 수 있다.In step S417, the application program can continue to perform the operation performed in the user mode before the execution mode is switched to the kernel mode, based on the value recovered in step S415. Further, based on the recovered value in step S415, the application program can perform an operation in the application program by accessing the memory page allocated to the resource.

단계 S413에서 백업된 값이 존재하지 않아 단계 S415의 데이터 복구가 수행되지 않은 경우, 메모리 페이지에 대한 접근 권한 정보는 디폴트 값으로 설정되거나 응용 프로그램에서 수행되는 작업에 따라 새롭게 설정될 수 있다.If there is no backup value in step S413 and the data recovery in step S415 is not performed, the access right information for the memory page may be set to a default value or newly set according to an operation performed in the application program.

이하 도 5를 참조하여, 운영 체제가 시스템 호출을 처리하는 방법에 대하여 상세히 설명하기로 한다.Hereinafter, with reference to FIG. 5, a detailed description will be given of how an operating system processes a system call.

도 5는 일 실시 예에 의한 운영 체제가 응용 프로그램의 자원에 접근하여 시스템 호출을 처리하는 방법을 나타낸 순서도이다. 5 is a flowchart illustrating a method for an operating system to access a resource of an application program and process a system call according to an exemplary embodiment of the present invention.

도 5를 참조하면, 단계 S501에서, 응용 프로그램 보호부(130)는 운영 체제(120)가 보호 대상인 응용 프로그램의 자원에 접근함을 감지할 수 있다. 응용 프로그램의 실행 모드가 커널 모드인 경우, 응용 프로그램 보호부(130)는 운영 체제(120)가 응용 프로그램의 자원에 접근할 수 없도록 자원에 대한 접근 권한을 제어한다. 따라서, 운영 체제(120)의 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근은 허용되지 않는다. 운영 체제(120)에 의한 응용 프로그램의 자원에 대한 접근 시도가 발생하면, 응용 프로그램 보호부(130)는 발생된 접근 시도를 감지하고, 분석하여, 접근 시도가 감지된 자원에 대한 접근 권한을 제어할 수 있다.Referring to FIG. 5, in operation S501, the application protection unit 130 may detect that the operating system 120 accesses a resource of an application program to be protected. When the execution mode of the application program is the kernel mode, the application program protection unit 130 controls access rights to the resources so that the operating system 120 can not access the application program resources. Accordingly, access to the memory page allocated to the application program of the operating system 120 is not permitted. When an attempt is made to access an application program resource by the operating system 120, the application program protection unit 130 detects and analyzes the generated access attempt, and controls access rights to the detected resource can do.

단계 S503에서, 운영 체제(120)가 시스템 호출을 처리함에 따라 페이지 테이블에 접근한 것으로 판단한 경우, 단계 S505에서, 응용 프로그램 보호부(130)는 운영 체제(120)에 의해 수정된 페이지 테이블을 확인할 수 있다. 그리고, 수정된 페이지 테이블에 따라 응용 프로그램 보호부(130)는 보호 대상으로 등록된 메모리 페이지를 해제하거나 새로운 메모리 페이지를 보호 대상으로 등록할 수 있다. 운영 체제(120)가 새로운 메모리 페이지를 응용 프로그램의 자원으로 할당한 경우, 응용 프로그램 보호부(130)는 새로운 메모리 페이지를 보호 대상으로 등록할 수 있다. 운영 체제(120)가 메모리 페이지에 대한 할당을 해제하는 경우, 응용 프로그램 보호부(130)는 보호 대상으로 등록된 메모리 페이지를 보호 대상에서 해제할 수 있다.If it is determined in step S503 that the operating system 120 has accessed the page table by processing the system call, in step S505, the application protection unit 130 checks the page table modified by the operating system 120 . According to the modified page table, the application program protection unit 130 may release the memory page registered as a protection target or register a new memory page as a protection target. When the operating system 120 allocates a new memory page as a resource of an application program, the application protection unit 130 can register a new memory page as a protection target. When the operating system 120 releases the allocation of the memory page, the application protection unit 130 can release the protected memory page from the protection target.

단계 S503에서, 운영 체제(120)가 페이지 테이블이 아닌 응용 프로그램의 자원으로 할당된 메모리 페이지에 접근하는 것으로 판단한 경우, 단계 S507에서 응용 프로그램 보호부(130)는 기 약정된 보안 규칙에 따라 운영 체제(120)가 접근한 메모리 페이지에 저장된 데이터를 암호화할지 여부를 결정할 수 있다.If it is determined in step S503 that the operating system 120 accesses the memory page allocated as the resource of the application program other than the page table, the application program protection unit 130, in step S507, (120) may decide whether to encrypt the data stored in the accessed memory page.

응용 프로그램 보호부(130)는 운영 체제(120)가 수행하는 시스템 호출 또는 운영 체제(120)가 접근한 메모리 페이지에 저장된 데이터의 종류에 따라 암호화 여부를 결정할 수 있다. 예를 들어, 운영 체제(120)가 파일 열기 시스템 호출을 수행함에 따라 메모리 페이지에 접근하였거나, 메모리 페이지에 저장된 데이터가 보안상 중요하지 않은 경우, 응용 프로그램 보호부(130)는 데이터를 암호화하지 않을 수 있다. 반면에, 운영 체제(120)가 파일 쓰기 시스템 호출을 수행함에 따라 메모리 페이지에 접근하였거나, 메모리 페이지에 저장된 데이터가 보안상 중요한 데이터를 포함하는 경우, 응용 프로그램 보호부(130)는 데이터를 암호화할 수 있다.The application protection unit 130 may determine whether to encrypt the data according to the type of data stored in the system call performed by the operating system 120 or the memory page accessed by the operating system 120. [ For example, if the operating system 120 has accessed the memory page as a result of performing a file open system call, or if the data stored in the memory page is not important for security, the application protection unit 130 may not encrypt the data . On the other hand, if the operating system 120 accesses the memory page as a result of performing the file writing system call, or if the data stored in the memory page includes security-sensitive data, the application protection unit 130 encrypts the data .

단계 S509에서 응용 프로그램 보호부(130)는 단계 S507에서의 결정에 따라, 운영 체제(120)에 의해 접근된 메모리 페이지에 저장된 데이터를 암호화할 수 있다. 그리고, 단계 S511에서, 응용 프로그램 보호부(130)는 암호화된 데이터 또는 암호화되지 않은 데이터에 접근할 수 있도록 메모리 페이지에 대한 접근 권한을 제어할 수 있다. 운영 체제(120)는 접근이 허용된 메모리 페이지에 접근하여 암호화된 데이터 또는 암호화되지 않은 데이터를 획득할 수 있다. 또는, 응용 프로그램 보호부(130)는 단계 S511에서 운영 체제(120)에 암호화된 데이터 또는 암호화되지 않은 데이터를 제공할 수도 있다. In step S509, the application protection unit 130 may encrypt the data stored in the memory page accessed by the operating system 120, in accordance with the determination in step S507. In step S511, the application program protection unit 130 may control the access authority to the memory page so as to access the encrypted data or the unencrypted data. The operating system 120 may access the memory page to which access is permitted to obtain encrypted data or unencrypted data. Alternatively, the application protection unit 130 may provide encrypted data or unencrypted data to the operating system 120 in step S511.

단계 S513에서, 운영 체제(120)는 단계 S511에서 획득한 데이터를 이용하여 시스템 호출을 처리할 수 있다. 운영 체제(120)의 시스템 호출 처리에 따라 단계 S511에서 획득한 암호화된 데이터는 응용 프로그램, 다른 응용 프로그램, 외부 장치 등으로 전달될 수 있다. 암호화된 데이터는 암호화 키에 의해 복호화될 수 있다. In step S513, the operating system 120 can process the system call using the data obtained in step S511. The encrypted data acquired in step S511 according to the system call processing of the operating system 120 may be transferred to an application program, another application program, an external device, or the like. The encrypted data can be decrypted by the encryption key.

암호화된 데이터에 대하여 정당한 권한을 가지는 프로그램 또는 장치가 암호화 키를 보유할 수 있다. 예를 들면, 암호화 키는 암호화된 데이터에 대하여 정당한 권한을 가지는 응용 프로그램 또는 응용 프로그램 보호부(130)에 존재할 수 있다. 응용 프로그램 보호부(130)가 암호화 키를 가지는 경우, 암호화 키를 응용 프로그램에 전달하여 응용 프로그램이 암호화 키를 획득할 수 있다.A program or device having a legitimate right to encrypted data may have an encryption key. For example, the encryption key may exist in the application program or the application program protection unit 130, which has a right to the encrypted data. If the application protection unit 130 has an encryption key, the application program can acquire the encryption key by transmitting the encryption key to the application program.

단계 S513에서 운영 체제(120)의 시스템 호출에 대한 처리가 완료되면, 단계 S515에서, 응용 프로그램 보호부(130)는 운영 체제(120)에 처리된 결과물에 대하여 검증할 수 있다. 응용 프로그램 보호부(130)는 운영 체제(120)에 의해 처리된 데이터에 대한 원본 데이터와 운영 체제(120)에 의해 처리된 데이터를 획득할 수 있다. 그리고, 응용 프로그램 보호부(130)는 운영 체제(120)에 의해 처리된 데이터의 해시값과 원본 데이터의 해시값을 비교함으로써 데이터의 무결성을 검증할 수 있다.When the processing for the system call of the operating system 120 is completed in step S513, the application protection unit 130 can verify the processed result to the operating system 120 in step S515. The application protection unit 130 may obtain the original data for the data processed by the operating system 120 and the data processed by the operating system 120. [ The application program protection unit 130 can verify the integrity of the data by comparing the hash value of the data processed by the operating system 120 with the hash value of the original data.

일 실시 예에 의하면, 악성 소프트웨어에 의해 해킹될 가능성이 있는 운영 체제 또는 다른 응용 프로그램으로부터 응용 프로그램의 자원을 보호할 수 있다.According to one embodiment, the resources of an application program can be protected from operating systems or other applications that may be hacked by malicious software.

일부 실시 예에 의한 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to some embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

비록 상기 설명이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들에 초점을 맞추어 설명되었지만, 본 기술 분야에 숙달된 기술을 가진 사람은 본 발명의 범위를 벗어나지 않으면서도 상기 설명된 장치 및 방법의 형태 및 세부 사항에서 다양한 삭제, 대체, 및 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 범위는 상기 설명에서보다는 첨부된 특허청구범위에 의해 정의된다. 특허청구범위의 균등 범위 안의 모든 변형은 본 발명의 범위에 포섭된다.Although the foregoing is directed to novel features of the present invention that are applicable to various embodiments, those skilled in the art will appreciate that the apparatus and method described above, without departing from the scope of the present invention, It will be understood that various deletions, substitutions, and alterations can be made in form and detail without departing from the spirit and scope of the invention. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description. All variations within the scope of the appended claims are embraced within the scope of the present invention.

Claims (24)

디바이스가 응용 프로그램의 자원을 보호하기 위한 방법에 있어서,
보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함하는, 방법.
A method for a device to protect an application's resources,
Determining whether the operating system is in a state in which the operating system can access the resource of the application program while the application program set as the protection target is executed; And
And controlling access rights to resources of the application program according to the determination result.
제1항에 있어서, 상기 자원에 대한 접근 권한을 제어하는 단계는
상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하는 단계;
상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는 단계를 포함하는, 방법.
2. The method of claim 1, wherein controlling access rights to the resource comprises:
Backing up access rights information on a memory page allocated as a resource of the application program and a register value of the application program when the operating system can access the resource of the application program;
Resetting access rights to the memory page, and deleting the register value.
제2항에 있어서,
상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는 단계를 더 포함하는, 방법.
3. The method of claim 2,
If at least one of the access privilege information for the memory page and the register value is backed up and the operating system is in a state in which the operating system can not access the resource of the application program, And recovering at least one of the access rights information and the register value.
제1항에 있어서, 상기 판단하는 단계는
상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계를 포함하는, 방법.
2. The method of claim 1, wherein the determining comprises:
Determining whether the operating system is in a state of being able to access resources of the application program based on whether the execution mode of the application program is a kernel mode or a user mode.
제1항에 있어서,
상기 운영 체제가 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하는 단계;
상기 시스템 호출에 기초하여, 상기 자원에 대한 접근 권한을 제어하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Attempting access to resources of the application program for the operating system to process a system call;
And controlling access rights to the resource based on the system call.
제5항에 있어서, 상기 자원에 대한 접근 권한을 제어하는 단계는
상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화할 지 여부를 결정하는 단계;
상기 결정된 결과에 따라, 상기 데이터를 암호화한 후, 상기 운영 체제의 상기 메모리 페이지에 대한 접근을 허용하거나, 상기 암호화된 데이터를 상기 운영 체제에 제공하는 단계를 더 포함하는, 방법.
6. The method of claim 5, wherein controlling access rights to the resource comprises:
Determining whether to encrypt data stored in a memory page allocated as a resource of the application program;
In accordance with the determined result, encrypting the data and then allowing access to the memory page of the operating system, or providing the encrypted data to the operating system.
제1항에 있어서,
상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하는 단계;
상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하는 단계;
상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하는 단계;
상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Detecting that the operating system attempts to access a memory page allocated to a resource of the application program to process a system call;
Obtaining original data of data to be processed by the system call;
When the processing for the system call is completed by the operating system, obtaining the processed data according to the system call;
Further comprising verifying the integrity of the processed data according to the system call by comparing the hash value of the original data with a hash value of the processed data in accordance with the system call.
제1항에 있어서,
상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록되는, 방법.
The method according to claim 1,
Wherein when the application program is set as a protection target, a memory page to which a resource of the application program is allocated is registered as a protection target.
제8항에 있어서,
상기 운영 체제에 의해 상기 응용 프로그램의 자원으로 새로운 메모리 페이지가 할당됨을 감지하는 단계;
상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 메모리 페이지와 동일하다고 판단되면, 상기 새로운 메모리 페이지에 대한 할당을 해제하는 단계를 더 포함하는, 방법.
9. The method of claim 8,
Detecting by the operating system that a new memory page is allocated as a resource of the application program;
Further comprising: releasing the allocation of the new memory page if it is determined that the allocated new memory page is the same as the memory page registered as the protection target.
제8항에 있어서,
상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는 단계를 더 포함하는, 방법.
9. The method of claim 8,
Further comprising the step of registering or releasing a memory page allocated as a resource of the application program as a protection target according to the modified page table when the operating system corrects the page table of the application program .
제1항에 있어서,
상기 운영 체제 대신 다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라 상기 응용 프로그램의 자원에 대한 접근 권한을 수행하는, 방법.
The method according to claim 1,
Determining whether or not another application program can access the resource of the application program in place of the operating system, and performing an access right to the resource of the application program according to the determination result.
응용 프로그램의 자원을 보호하기 위한 디바이스에 있어서,
보호 대상으로 설정되어 실행 중인 응용 프로그램;
상기 응용 프로그램에서 발생된 시스템 호출을 처리하는 운영 체제;
상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 응용 프로그램 보호부;
상기 응용 프로그램의 자원을 포함하는 하드웨어를 포함하는 디바이스.
A device for protecting a resource of an application program,
An application being protected and running;
An operating system for processing a system call generated in the application program;
An application program protection unit for determining whether the operating system is in a state of being able to access resources of the application program and controlling an access right to resources of the application program according to the determination result;
And hardware comprising the resources of the application program.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하고, 상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는, 디바이스.
13. The system of claim 12, wherein the application protection unit
Backing up the access privilege information of the memory page allocated to the resource of the application program and the register value of the application program when the operating system can access the resource of the application program, Reset the privilege, and delete the register value.
제13항에 있어서, 상기 응용 프로그램 보호부는
상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는, 디바이스.
14. The apparatus of claim 13, wherein the application protection unit
If at least one of the access privilege information for the memory page and the register value is backed up and the operating system is in a state in which the operating system can not access the resource of the application program, And at least one of the access authority information and the register value.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는, 디바이스.
13. The system of claim 12, wherein the application protection unit
And determine whether the operating system is in a state of being able to access resources of the application program, based on whether the execution mode of the application program is a kernel mode or a user mode.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하면, 상기 시스템 호출에 기초하여, 상기 자원에 대한 접근 권한을 제어하는, 디바이스.
13. The system of claim 12, wherein the application protection unit
Wherein the operating system controls access to the resource based on the system call when an attempt is made to access resources of the application program to process a system call.
제16항에 있어서, 상기 응용 프로그램 보호부는
상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화할 지 여부를 결정하고, 상기 결정된 결과에 따라, 상기 데이터를 암호화한 후, 상기 운영 체제의 상기 메모리 페이지에 대한 접근을 허용하거나, 상기 데이터를 상기 운영 체제에 제공하는, 디바이스.
17. The apparatus of claim 16, wherein the application protection unit
Determining whether to encrypt data stored in a memory page allocated as a resource of the application program, encrypting the data according to the determined result, and then allowing access to the memory page of the operating system; And provides data to the operating system.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하면, 상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하고, 상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하고, 상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는, 디바이스.
13. The system of claim 12, wherein the application protection unit
When the operating system detects that it attempts to access a memory page allocated to a resource of the application program to process a system call, acquires original data of data to be processed by the system call, Acquiring data processed according to the system call and comparing a hash value of the original data with a hash value of the processed data according to the system call, And verifies the integrity of the processed data.
제12항에 있어서,
상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록되는, 디바이스.
13. The method of claim 12,
Wherein, when the application program is set as a protection target, a memory page to which a resource of the application program is allocated is registered as a protection target.
제19항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제에 의해 상기 응용 프로그램의 자원으로 새로운 메모리 페이지가 할당됨을 감지하고, 상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 메모리 페이지와 동일하다고 판단되면, 상기 새로운 메모리 페이지에 대한 할당을 해제하는, 디바이스.
20. The apparatus of claim 19, wherein the application protection unit
Detecting that a new memory page is allocated to the resource of the application program by the operating system; and when it is determined that the allocated new memory page is the same as the memory page registered as the protection target, Device.
제19항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는, 디바이스.
20. The apparatus of claim 19, wherein the application protection unit
And when the operating system modifies a page table of the application program, registers a memory page allocated as a resource of the application program according to the modified page table as a protection target or releases the protection target.
제17항에 있어서,
상기 운영 체제 대신 다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라 상기 응용 프로그램의 자원에 대한 접근 권한을 수행하는, 디바이스.
18. The method of claim 17,
Wherein the application program determines whether or not another application program can access the resource of the application program in place of the operating system, and performs an access right to the resource of the application program according to the determination result.
제1항 내지 제11항 중 어느 한 항에 있어서, 상기 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.The computer-readable recording medium according to any one of claims 1 to 11, wherein a program for implementing the method is recorded. 제1항 내지 제11항 중 어느 한 항에 있어서, 하드웨어와 결합되어 상기 방법을 실행시키는 컴퓨터 프로그램.12. A computer program according to any one of the preceding claims, in combination with hardware for executing the method.
KR1020140174293A 2014-12-05 2014-12-05 Method and apparatus for protecting resource of application program KR102297476B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140174293A KR102297476B1 (en) 2014-12-05 2014-12-05 Method and apparatus for protecting resource of application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140174293A KR102297476B1 (en) 2014-12-05 2014-12-05 Method and apparatus for protecting resource of application program

Publications (2)

Publication Number Publication Date
KR20160068480A true KR20160068480A (en) 2016-06-15
KR102297476B1 KR102297476B1 (en) 2021-09-02

Family

ID=56135153

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140174293A KR102297476B1 (en) 2014-12-05 2014-12-05 Method and apparatus for protecting resource of application program

Country Status (1)

Country Link
KR (1) KR102297476B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
KR20140068964A (en) * 2011-09-12 2014-06-09 마이크로소프트 코포레이션 Resource access authorization
KR101460451B1 (en) * 2013-09-06 2014-11-12 포항공과대학교 산학협력단 Apparatus and method for controlling process address space

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
KR20140068964A (en) * 2011-09-12 2014-06-09 마이크로소프트 코포레이션 Resource access authorization
KR101460451B1 (en) * 2013-09-06 2014-11-12 포항공과대학교 산학협력단 Apparatus and method for controlling process address space

Also Published As

Publication number Publication date
KR102297476B1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US9753865B2 (en) System and methods for executing encrypted code
RU2703156C2 (en) Computer security systems and methods using asynchronous introspection exceptions
KR102189296B1 (en) Event filtering for virtual machine security applications
CN107066311B (en) Kernel data access control method and system
EP3238070B1 (en) Memory protection with non-readable pages
US8689212B2 (en) Information processing device for controlling an application able to access a predetermined device, and control method using an information processing device for controlling an application able to access a predetermined device
KR20180124048A (en) Data Protection with Virtual Resource Views
KR101920866B1 (en) An auxiliary memory device having independent recovery region
US20160094555A1 (en) System and methods for executing encrypted managed programs
KR101213572B1 (en) Hypervisor-assisted User Application Memory Protection Method
KR101323858B1 (en) Apparatus and method for controlling memory access in virtualized system
WO2011076464A1 (en) Method and system for protecting an operating system against unauthorized modification
CN112818327A (en) TrustZone-based user-level code and data security credibility protection method and device
EP3080945B1 (en) Obfuscating in memory encryption keys
Ren et al. Appsec: A safe execution environment for security sensitive applications
KR102494167B1 (en) A Electronic Device And Method For Protecting The Kernel Space of the Memory
KR100704721B1 (en) method for computer protection with real-time monitoring and thereby computer and thereby system
KR102584506B1 (en) State information protection for virtual machines
US10592663B2 (en) Technologies for USB controller state integrity protection
KR101467877B1 (en) System and method for securing process memory using Hypervisor
KR102297476B1 (en) Method and apparatus for protecting resource of application program
Vaduva et al. Observations over SPROBES mechanism on the TrustZone architecture
RU119910U1 (en) BUILT-IN TSM SECURITY MODULE
KR102675729B1 (en) Data protection methods and Apparatus in Linux-based OS
US20220374534A1 (en) File system protection apparatus and method in auxiliary storage device

Legal Events

Date Code Title Description
A201 Request for examination
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)