[go: up one dir, main page]

KR102297476B1 - 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
KR102297476B1
KR102297476B1 KR1020140174293A KR20140174293A KR102297476B1 KR 102297476 B1 KR102297476 B1 KR 102297476B1 KR 1020140174293 A KR1020140174293 A KR 1020140174293A KR 20140174293 A KR20140174293 A KR 20140174293A KR 102297476 B1 KR102297476 B1 KR 102297476B1
Authority
KR
South Korea
Prior art keywords
application program
resource
memory page
operating system
application
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020140174293A
Other languages
Korean (ko)
Other versions
KR20160068480A (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
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Abstract

보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는, 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법이 개시된다.While the application program set as the protection target is running, the operating system determines whether the state can access the resource of the application program, and according to the determination result, controlling the access right to the resource of the application program, A method for a device to protect resources of an application program is disclosed.

Description

응용 프로그램의 자원을 보호하는 방법 및 장치{Method and apparatus for protecting resource of application program}Method and apparatus for protecting resource of application program}

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

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

그러나, 운영 체제의 보안 취약성을 이용하여, 악성 소프트웨어가 운영 체제에 침입하게 되면, 악성 소프트웨어는 운영 체제의 최상위 권한을 이용하여 응용 프로그램 및 컴퓨터의 자원에 침입할 수 있다. However, if malicious software invades the operating system by using the security vulnerability of the operating system, the malicious software may use the highest authority of the operating system to intrude into application programs and computer resources.

운영 체제의 기능이 확대되고 발전함에 따라 운영 체제의 크기가 커지고, 또한, 그에 따라 운영 체제의 보안 취약성이 증가하고 있다. 따라서, 해킹된 운영 체제가 응용 프로그램의 자원에 대해 접근하려고 하는 경우, 응용 프로그램의 자원을 보호할 수 있는 방법이 필요하다.As the function of the operating system expands and develops, the size of the operating system increases, and also, the security vulnerability of the operating system increases accordingly. Therefore, when the hacked operating system tries to access the resources of the application, a method for protecting the resources of the application is required.

본 발명은 응용 프로그램의 자원을 보호하는 방법 및 장치에 관한 것으로, 구체적으로, 응용 프로그램의 자원에 대한 운영 체제 또는 다른 프로그램의 접근으로부터 응용 프로그램의 자원을 보호하는 방법 및 장치에 관한 것이다.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 an operating system or other program's access to the resource of the application program.

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

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

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

더하여, 상기 판단하는 단계는 상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계를 포함한다.In addition, the determining includes determining whether the operating system is in a state capable of accessing 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; Based on the system call, the method further includes controlling access rights to the resource.

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

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

더하여, 상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록된다.In addition, when the application program is set as a protection target, a 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 as a resource of the application program by the operating system; The method further includes releasing the allocation of the new memory page when 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 modifies the page table of the application program, the method further includes registering or releasing a memory page allocated as a resource of the application program as a protection target according to the modified page table. .

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

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

일 실시 예에 의한 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체는 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함한다.A computer-readable recording medium in which a program for implementing a method for a device to protect a resource of an application program according to an embodiment is recorded is an operating system while an application program set as a protection target is executed Determining whether the state can access the; and controlling the access right to the resource of the application program according to the determination result.

일 실시 예에 의한 하드웨어와 결합되어 디바이스가 응용 프로그램의 자원을 보호하기 위한 방법을 실행시키는 컴퓨터 프로그램은 보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함한다.The computer program that is combined with the hardware according to an embodiment and executes the method for the device to protect the resource of the application program is a computer program that enables the operating system to access the resource of the application program while the application program set as the protection target is running. determining whether a state is present; and controlling the access right to the resource 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.
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.
3 is a flowchart illustrating a method of controlling an access right to a resource of an application program according to an embodiment.
4 is a flowchart illustrating a method of controlling an access right to a resource of an application program and a register value according to an embodiment.
5 is a flowchart illustrating a method in which an operating system accesses a resource of an application program and processes a system call according to an embodiment.

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

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

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

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

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art can easily carry out the embodiments of the present invention. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts 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.

도 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 program protection unit 130 , and hardware 140 . In the drawings and the embodiments to be described later, individual components included in the device 100 may be dispersed in a physical or logical form, or may be integrated.

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

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

운영 체제(120)는 응용 프로그램(110)의 실행에 필요한 자원을 할당하거나 해제할 수 있다. 또한, 운영 체제(120)는 복수 개의 응용 프로그램(110)들이 원활히 동작할 수 있도록 스케줄링(scheduling)을 수행함으로써, 복수 개의 응용 프로그램(110)들이 동시에 동작할 수 있다. 운영 체제(120)는 응용 프로그램(110)보다 높은 권한을 가지고 하드웨어 및 하나 이상의 응용 프로그램(110)을 제어할 수 있다.The operating system 120 may allocate or release resources necessary for the execution of the application program 110 . In addition, the operating system 120 performs scheduling so that the plurality of application programs 110 can operate smoothly, so that the plurality of application programs 110 can operate simultaneously. The operating system 120 may control hardware and one or more application programs 110 with higher authority 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 hardware area allocated by the operating system 120 , for example, some memory area allocated as a resource of the application program 110 , and a hardware area not allocated to itself. may not be directly accessible. On the other hand, since the operating system 120 has a higher authority than the application program 110 , it can access an area that is not allocated as a resource of the application program 110 . Accordingly, the application program 110 uses a system call to request the operating system 120 for a task executable by the operating system 120 , which is not assigned to itself through the operating system 120 . You can access the hardware area. The application program 110 may access a hardware area that is not allocated to the application program 110 through the operating system 120 to acquire data or newly allocate it 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 accesses not only the hardware area not allocated as the resource of the application program 110 but also the hardware area allocated as 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 a resource of the application program 110 according to a system call, the Data existing in the resource may be leaked or forged.

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

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

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

구체적으로, 운영 체제(120)가 보호 대상으로 설정된 응용 프로그램(110)의 자원에 접근할 수 있는 상태가 되면, 응용 프로그램 보호부(130)는 보호 대상으로 설정된 응용 프로그램(110)의 자원에 대한 접근 권한 정보를 재설정할 수 있다. 예를 들면, 응용 프로그램 보호부(130)는 운영 체제(120)가 접근할 수 없도록 자원에 대한 접근 권한 정보를 재설정할 수 있다. 더하여, 운영 체제(120)에 의해 응용 프로그램(110)이 사용하던 레지스터 값이 유출되거나 위변조되는 것을 방지하기 위하여, 응용 프로그램 보호부(130)는 응용 프로그램(110)이 사용하던 레지스터 값을 삭제할 수 있다. Specifically, when the operating system 120 is in a state in which it can access the resource of the application program 110 set as the protection target, the application protection unit 130 provides information about the resource of the application program 110 set as the protection target. You can reset access right information. For example, the application protection unit 130 may reset the access right information for the resource so that the operating system 120 cannot access it. In addition, in order to prevent the register value used by the application program 110 from being leaked or forged by the operating system 120 by the operating system 120 , the application program protection unit 130 may delete the register value used by the application program 110 . 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, etc. necessary for the operating system 120 and the application program 110 to be executed. However, the hardware 140 may further include components for executing 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 may perform a necessary task by using a partial area of the hardware 140 allocated as its resource.

이하 도 2를 참조하여, 응용 프로그램 보호부에서 응용 프로그램의 자원을 보호하는 구체적인 방법에 대해 설명하기로 한다.Hereinafter, with reference to FIG. 2, a detailed method for protecting the resource of the application program by the 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)에 포함되어 있는 개개의 구성 요소는 물리적 형태 또는 논리적 형태로 분산되어 배치될 수도 있고, 통합될 수도 있다.Referring to FIG. 2 , the device 100 may include an application program 110 , an operating system 120 , a virtual machine monitor 150 in which the application program protection unit 130 is driven, and hardware 140 . have. In the drawings and the embodiments to be described later, individual components included in the device 100 may be dispersed in a physical or logical form, or 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 includes information on memory pages allocated as resources of the running application program 110 . A memory page may mean each part of a memory area divided into a preset 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 information on memory pages included in the page table 121 as memory pages are allocated or released as resources of the application program 110 . The page table 121 includes identification information for each memory page and a guest physical address. The operating system 120 may access the hardware 140 through 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 by the application program 110 . The system call processing unit 122 may access a memory page allocated as a resource of the application program 110 to be accessed by using the guest physical address of the page table 121 according to the system call. The system call processing unit 122 may access the resource of the application program 110 to perform an operation according to the system call, for example, read and write operations. After performing the operation according to the system call, the system call processing unit 122 may transmit a result value for performing the operation 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 program protection unit 130 may operate with the highest authority higher than that of the operating system 120 in a space independent from the operating system 120 by 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 may access the hardware 140 through the virtual machine monitor 150 . The application program protection unit 130 may control the access right of the operating system 120 to an area allocated as a resource of the application program 110 by using the overlapping page table 151 .

중첩 페이지 테이블(151, nested page table)은 게스트 물리 주소와 호스트 물리 주소 간의 사상(mapping) 정보 및 호스트 물리 주소와 대응되는 메모리 페이지에 대한 접근 권한 정보를 포함한다. 운영 체제(120)는 접근하고자 하는 메모리 페이지의 게스트 물리 주소를 이용하여 호스트 물리 주소와 대응되는 메모리 페이지에 접근할 수 있다.The nested page table 151 includes mapping information between a guest physical address and a host physical address and access right information on a memory page corresponding to the host physical address. The operating system 120 may access a memory page corresponding to the host physical address by 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 a guest physical address of a memory page to be accessed by the operating system 120 into a host physical address by using the overlapping page table 151 . The application protection unit 130 may reset access right information for a memory page corresponding to a host physical address included in the overlapping page table 151 . Access to the memory page of the operating system 120 may be controlled according to the reset access right information. According to the access right information included in the overlapping page table 151 , a read, write, or execution operation of the operating system 120 may be controlled in a memory page corresponding to a host physical address.

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

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

응용 프로그램 보호부(130)는 응용 프로그램 관리부(132), 자원 보호부(133) 및 커널 수행 검증부(134)를 포함한다.The application program protection unit 130 includes an application program management unit 132 , a resource protection unit 133 , and a kernel performance 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 the request of the application program 110 . Not limited to this, the application program manager 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 the 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 be protected by using the unique identification information of the application program 110 . The unique identification information may include a process identifier (PID) that can be given 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 assigned 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 example 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 the operating system 120 to access resources of the application program 110 . Specifically, the application program manager 132 may determine whether the currently running application program 110 is a protection target based on the unique identification information. In addition, 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 may register a process or thread of the application program 110 set as a protection target as a protection target, and control access of the operating system 120 to the registered protection target.

응용 프로그램 관리부(132)는 보호 대상으로 설정된 응용 프로그램(110)에서 프로세스 또는 쓰레드가 새롭게 생성되면, 새롭게 생성된 프로세스 또는 쓰레드를 보호 대상으로 등록할 수 있다. 또한, 보호 대상으로 등록되어 있던 프로세스 또는 쓰레드가 소멸되면, 소멸된 프로세스 또는 쓰레드를 보호 대상에서 해제할 수 있다. When a process or thread is newly created in the application program 110 set as a protection target, the application program manager 132 may register the newly created process or thread as a protection target. Also, when a process or thread registered as a protection target is destroyed, the destroyed process or thread may 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 sets the resource of the application program 110 based on the page table 121 of the application program 110 . to obtain the guest physical address of the allocated memory page. Then, the resource protection unit 133 converts the guest physical address into a host physical address by using the overlapping page table 151 . The resource protection unit 133 may register a memory page allocated as a resource of the application program 110 as a protection target based on the host physical address and unique identification information of the application program 110 .

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

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

유저 모드는 응용 프로그램(110)이 응용 프로그램(110)의 자원으로 할당된 하드웨어 영역에 접근할 수 있고, 운영 체제(120) 또는 다른 응용 프로그램은 접근할 수 없는 응용 프로그램(110)의 실행 모드를 의미할 수 있다. 커널 모드는 응용 프로그램(110)에서 발생된 시스템 호출 또는 이벤트에 따라서, 응용 프로그램(110)의 자원으로 할당된 하드웨어(140) 영역에 운영 체제(120)가 접근할 수 있는 응용 프로그램(110)의 실행 모드를 의미할 수 있다.In the user mode, the application program 110 can access the hardware area allocated as the resource of the application program 110, and the operating system 120 or other applications cannot access the execution mode of the application program 110. can mean Kernel mode is the operation of the application program 110 in which the operating system 120 can access the hardware 140 area allocated as a resource of the application program 110 according to a system call or event generated in the application program 110 . It can mean run 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 cannot access it. none. However, when the application program 110 operates in the kernel mode, the operating system 120 or another application program may access a memory page allocated as a resource of the application program 110 . Therefore, the application management unit 132 according to an 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, the application program You can control access rights to resources.

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

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

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

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

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

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

자원 보호부(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 data stored in the memory page according to a predefined security rule, and then the system call processing unit 122 . can provide encrypted data to After encrypting data according to a system call that the system call processing unit 122 intends to process, the resource protection unit 133 may reset access authority information so that the system call processing unit 122 can access the memory page.

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

예를 들면, 시스템 호출 처리부(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 obtain information about a file to be opened (file name or path). However, since the file information is information used during execution of the application program 110 , it is stored in a memory page allocated as a resource of the application program 110 . If the application program 110 is set as the protection target, the memory page is also registered as the protection target, so when the system call processing unit 122 accesses the memory page, the permission bit for each operation of the memory page is set by the resource protection unit It is set to 0 by (133).

시스템 호출 처리부(122)가 파일 열기 시스템 호출의 처리를 위해 파일 이름 및 경로를 포함하는 파일 정보를 보호 대상으로 등록된 메모리 페이지로부터 획득하고자 하는 경우, 자원 보호부(133)는 메모리 페이지에 저장된 파일 정보를 암호화하지 않을 수 있다. 파일 이름이나 파일 경로는 보안상 중요한 정보에 해당되지 않으므로 자원 보호부(133)는 데이터를 암호화하지 않고 시스템 호출 처리부(122)에 제공할 수 있다. 자원 보호부(133)는 시스템 호출 처리부(122)가 파일 정보를 획득할 수 있도록 메모리 페이지에 대한 접근 권한 정보를 다시 설정하거나 암호화되지 않은 파일 정보를 시스템 호출 처리부(122)에 제공할 수 있다.When the system call processing unit 122 intends to obtain file information including a file name and a path from a memory page registered as a protection target for processing a file open system call, the resource protection unit 133 is a file stored in the memory page. Information may not be encrypted. Since the file name or file path does not correspond to important information for security, the resource protection unit 133 may provide the data to the system call processing unit 122 without encrypting it. The resource protection unit 133 may reset access right information for a memory page or provide unencrypted file information to the system call processing unit 122 so that the system call processing unit 122 can obtain 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, since the data required for file writing system call processing is information used during execution of the application program 110 , it is stored in a memory page allocated as a resource of the application program 110 . If the application program 110 is set as the protection target, the memory page is also registered as the protection target, so when the system call processing unit 122 accesses the memory page, the permission bit for each operation of the memory page is set by the resource protection unit It is set to 0 by (133).

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

시스템 호출 처리부(122)는 암호화된 데이터에 대한 정당한 권리를 가지고 있지 않아 암호화 키를 획득할 수 없으므로, 암호화된 데이터를 복호화할 수 없다. 따라서, 시스템 호출 처리부(122) 및 운영 체제(120)에 의해 응용 프로그램(110)의 데이터가 유출되거나 위변조되는 것이 방지될 수 있다. Since the system call processing unit 122 does not have a legitimate right to the encrypted data and cannot obtain the encryption key, it cannot decrypt the encrypted data. Accordingly, it is possible to prevent data of the application program 110 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 may register the memory page as a protection target or release it from the protection target. A memory page may be allocated or released as a resource of the application program 110 by the operating system 120 . The operating system 120 may update the page table 121 by allocating or releasing a 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 the page table 121 is modified by the operating system 120 . can

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

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

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

커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의해 시스템 호출이 처리된 이후 시스템 호출의 처리 결과에 대하여 검증한다. 운영 체제(120)가 악성 코드에 의해 감염된 상태인 경우, 운영 체제(120)의 시스템 호출 처리부(122)에 의해 수행된 시스템 호출에 따라 처리된 데이터는 위변조될 수 있는 가능성이 있다. 따라서, 커널 수행 검증부(134)는 시스템 호출 처리부(122)에 의해 처리되는 데이터의 원본 데이터와, 시스템 호출에 따라 처리된 데이터를 비교하여 데이터의 무결성을 검증할 수 있다. 예를 들면, 커널 수행 검증부(134)는 원본 데이터의 해시값(hash value)과 시스템 호출에 따라 처리된 데이터의 해시값을 비교하여, 데이터의 무결성을 검증할 수 있다.The kernel execution verification unit 134 verifies the result of the system call after the system call is processed by the system call processing unit 122 . When the operating system 120 is infected by malicious code, there is a possibility that data processed according to a system call performed by the system call processing unit 122 of the operating system 120 may be forged or forged. Accordingly, the kernel performance verification unit 134 may 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 performance 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 data processed 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 a storage device, and registers the read data as a protection target. can be stored in the specified memory page. Before the read system call is processed, the kernel performance verification unit 134 may acquire data that the system call processing unit 122 intends to read for system call processing as original data. And, as the read system call is processed, the system call processing unit 122 may store data in a memory page registered as a protection target. The kernel performance verification unit 134 may verify the integrity of 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 reads data stored in a memory page registered as a protection target, and stores the read data in another memory area or a storage device. . Before the write system call is processed, the kernel execution verification unit 134 may acquire data that the system call processing unit 122 intends to read for system call processing as original data from a memory page registered as a protection target. And, as the write system call is processed, the system call processing unit 122 may store data in another memory area or a storage device. After the processing of the write system call is completed, the kernel performance verification unit 134 may 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 for allocating a new memory page as a resource of the application program, the kernel execution verification unit 134 checks the result of the system call processing by the system call processing unit 122 . can be verified. The system call for allocating a new memory page as a resource of the application program may include, for example, the mmap system call.

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

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

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

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

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

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

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

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

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

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

도 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 the operating system can access the resource of the application program set as a protection target. The device 100 may control access rights to resources of the application program according to the execution mode of the application program.

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

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

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

따라서, 디바이스(100)는 응용 프로그램에서 발생된 이벤트를 감지함으로써 응용 프로그램의 실행 모드가 커널 모드로 전환되었는지 여부를 판단할 수 있다.Accordingly, the device 100 may 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 use a modified library capable of detecting the occurrence of an event for changing the execution mode of the application program. The device 100 may use a library in which an existing entry point for processing an event for changing an execution mode of an application program is replaced with a specific entry point. Accordingly, when the device 100 switches the execution mode of the application program by using the modified library or an event that can occur when the execution mode is switched occurs, the event may be processed as a specific entry point. The device 100 may switch the execution mode of the application program or detect the occurrence of an event that may occur when the execution mode is switched by using it as an event is processed to a specific entry point. For example, as the device 100 uses the modified library, a signal capable of detecting a generated event may be generated.

단계 S403에서, 보호 대상으로 설정된 응용 프로그램의 실행 모드가 커널 모드인 것으로 판단된 경우, 단계 S405에서, 응용 프로그램 보호부(130)는 응용 프로그램의 자원으로 할당된 메모리 페이지의 접근 권한 정보와 레지스터 값을 백업해 둘 수 있다. 백업될 수 있는 레지스터 값은 응용 프로그램이 실행 중에 범용 레지스터에 저장해둔 데이터를 포함한다. 응용 프로그램 보호부(130)는 응용 프로그램의 실행 모드가 유저 모드로 전환되었을 때, 단계 S405에서 백업된 값을 이용하여 접근 권한 정보 및 레지스터 값을 복구할 수 있다.In step S403, if it is determined that the execution mode of the application program set as the protection target is the kernel mode, in step S405, the application protection unit 130 access rights information and register values of memory pages allocated as resources of the application program can be backed up. Register values that can be backed up include data stored in general-purpose registers while the application program is running. When the execution mode of the application program is switched to the user mode, the application program protection unit 130 may restore the access right information and the register value by 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 access right information and register values of a memory page allocated as a resource of the application program. The application program protection unit 130 may reset the access right information of the memory page so that the operating system 120 cannot access the memory page of the application program. Also, the application program protection unit 130 may remove the register value stored by the application program so that the operating system 120 cannot leak 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 a system call generated by the application program 110 . According to an embodiment, before the operating system 120 accesses the resource 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, and registers data values can be removed. Accordingly, the device 100 may 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 in advance.

더하여, 응용 프로그램 보호부(130)는 단계 S401에서 보호 대상으로 설정된 응용 프로그램의 실행 모드를 지속적으로 판단할 수 있다. 응용 프로그램 보호부(130)는 응용 프로그램의 실행 모드가 커널 모드에서 유저 모드로 전환되는지 여부를 지속적으로 모니터링할 수 있다.In addition, the application program protection unit 130 may continuously determine the execution mode of the application program set as the protection target in step S401. The application program 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 for the operating system 120 or other application programs to access the resources of the application program. Accordingly, in the user mode, data leakage and forgery that may occur when the operating system 120 accesses the resource of the application program from another external application does not occur. Therefore, when the execution mode of the application program is switched to the user mode, the application program protection unit 130 may control the access authority to the resource so that the resource of the application program can be accessed from within the application program. It is desirable that applications have access to their own resources to perform their tasks. Therefore, when the execution mode of the application program is switched to the user mode, the application protection unit 130 may control access rights to the resource so that the application program can access the resource.

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

응용 프로그램(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 right information for the memory page and the register value in step S405 . And, when the execution mode of the application program 110 is switched from the kernel mode to the user mode, in step S415, the application protection unit 130 uses the value backed up in step S405 to access right information on the memory page and Register values can be restored.

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

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

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

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

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

도 5를 참조하면, 단계 S501에서, 응용 프로그램 보호부(130)는 운영 체제(120)가 보호 대상인 응용 프로그램의 자원에 접근함을 감지할 수 있다. 응용 프로그램의 실행 모드가 커널 모드인 경우, 응용 프로그램 보호부(130)는 운영 체제(120)가 응용 프로그램의 자원에 접근할 수 없도록 자원에 대한 접근 권한을 제어한다. 따라서, 운영 체제(120)의 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근은 허용되지 않는다. 운영 체제(120)에 의한 응용 프로그램의 자원에 대한 접근 시도가 발생하면, 응용 프로그램 보호부(130)는 발생된 접근 시도를 감지하고, 분석하여, 접근 시도가 감지된 자원에 대한 접근 권한을 제어할 수 있다.Referring to FIG. 5 , in step S501 , the application program protection unit 130 may detect that the operating system 120 accesses the resource of the protected application program. When the execution mode of the application program is the kernel mode, the application program protection unit 130 controls access rights to the resource so that the operating system 120 cannot access the resource of the application program. Accordingly, access to the memory page allocated as a resource of the application program of the operating system 120 is not permitted. When an attempt to access the resource of the application program by the operating system 120 occurs, the application protection unit 130 detects and analyzes the generated access attempt, and controls the access right to the resource for which the access attempt is detected. 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 . can Also, according to the modified page table, the application program protection unit 130 may release a 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 program protection unit 130 may register the new memory page as a protection target. When the operating system 120 releases the allocation of the memory page, the application program protection unit 130 may release the memory page registered as the protection target from the protection target.

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

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

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

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

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

단계 S513에서 운영 체제(120)의 시스템 호출에 대한 처리가 완료되면, 단계 S515에서, 응용 프로그램 보호부(130)는 운영 체제(120)에 처리된 결과물에 대하여 검증할 수 있다. 응용 프로그램 보호부(130)는 운영 체제(120)에 의해 처리된 데이터에 대한 원본 데이터와 운영 체제(120)에 의해 처리된 데이터를 획득할 수 있다. 그리고, 응용 프로그램 보호부(130)는 운영 체제(120)에 의해 처리된 데이터의 해시값과 원본 데이터의 해시값을 비교함으로써 데이터의 무결성을 검증할 수 있다.When the processing of the system call of the operating system 120 is completed in step S513 , in step S515 , the application program protection unit 130 may verify the result processed by the operating system 120 . The application program protection unit 130 may acquire original data for data processed by the operating system 120 and data processed by the operating system 120 . In addition, the application program protection unit 130 may 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 an embodiment, it is possible to protect the resource of the application program from the operating system or other application programs that are likely to 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 in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

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

Claims (24)

디바이스가 응용 프로그램의 자원을 보호하기 위한 방법에 있어서,
보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 상기 응용 프로그램의 실행 모드에 기초하여, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 응용 프로그램의 자원을 보호하기 위한 적어도 하나의 동작을 수행하는 단계를 포함하고,
상기 응용 프로그램이 상기 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 상기 보호 대상으로 등록되고, 상기 적어도 하나의 동작은, 상기 보호 대상으로 등록된 적어도 하나의 메모리 페이지에 대하여 수행되고,
상기 적어도 하나의 동작을 수행하는 단계는,
상기 운영 체제에 의해 상기 응용 프로그램의 자원으로서 새로운 메모리 페이지가 할당됨을 감지하는 단계; 및
상기 할당된 새로운 메모리 페이지가 보호 대상으로 등록된 적어도 하나의 메모리 페이지 중 하나의 페이지와 동일한 경우, 상기 응용 프로그램의 자원으로서의 상기 새로운 메모리 페이지에 대한 할당을 해제하는 단계를 더 포함하고,
상기 보호 대상으로 등록된 적어도 하나의 메모리 페이지 중 하나의 메모리 페이지가 상기 응용 프로그램의 자원으로서의 할당이 해제되면, 상기 할당이 해제된 메모리 페이지에 저장된 데이터가 삭제된 후, 상기 할당이 해제된 메모리 페이지가 상기 보호 대상에서 해제되는, 방법.
A method for a device to protect an application resource, the method comprising:
while an application program set as a protection target is being executed, based on an execution mode of the application program, determining whether an operating system is in a state capable of accessing resources of the application program; and
In accordance with the determination result, comprising the step of performing at least one operation for protecting the resource of the application,
When the application program is set as the protection target, the memory page to which the resource of the application program is allocated is registered as the protection target, and the at least one operation is performed on at least one memory page registered as the protection target become,
Performing the at least one operation comprises:
detecting that a new memory page is allocated as a resource of the application program by the operating system; and
When the allocated new memory page is the same as one of the at least one memory page registered as a protection target, releasing the allocation of the new memory page as a resource of the application program;
When one of the at least one memory page registered as the protection target is deallocated as a resource of the application program, data stored in the deallocated memory page is deleted, and then the deallocated memory page is released from the protected subject.
제1항에 있어서, 상기 자원을 보호하기 위한 적어도 하나의 동작을 수행하는 단계는
상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하는 단계;
상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는 단계를 포함하는, 방법.
The method of claim 1, wherein performing at least one operation for protecting the resource comprises:
backing up access right information for a memory page allocated as a resource of the application program and a register value of the application program when the operating system is in a state in which the resource of the application program can be accessed;
resetting access to the memory page and deleting the register value.
제2항에 있어서,
상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 응용 프로그램의 실행 모드에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환된 것으로 판단되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는 단계를 더 포함하는, 방법.
3. The method of claim 2,
When at least one of the access right information for the memory page and the register value is backed up, it is assumed that the operating system is switched to a state in which the resource of the application program cannot be accessed, based on the execution mode of the application program. If it is determined, the method further comprising the step of restoring at least one of the access right information and the register value for the memory page by using the backed-up value.
제1항에 있어서, 상기 응용 프로그램의 실행 모드가, 커널 모드이면, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 것으로 판단되고,
상기 응용 프로그램의 실행 모드가, 유저 모드이면, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태인 것으로 판단되는, 방법.
The method according to claim 1, wherein if the execution mode of the application program is a kernel mode, it is determined that the operating system is in a state in which the resource of the application program can be accessed,
When the execution mode of the application program is a user mode, it is determined that the operating system is in a state in which the resource of the application program cannot be accessed.
제1항에 있어서,
상기 운영 체제가 상기 응용 프로그램에 의해 발생된 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하는 경우,
상기 시스템 호출에 따라 상기 운영 체제에 의하여 접근될 수 있는 상기 응용 프로그램의 자원에 대해 상기 적어도 하나의 동작이 수행되는, 방법.
According to claim 1,
When the operating system attempts to access the resource of the application program in order to process a system call made by the application program,
wherein the at least one operation is performed on a resource of the application program that can be accessed by the operating system according to the system call.
제5항에 있어서,
상기 적어도 하나의 동작은, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화하는 동작을 포함하는, 방법.
6. The method of claim 5,
The at least one operation includes encrypting data stored in a memory page allocated as a resource of the application program.
제1항에 있어서,
상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하는 단계;
상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하는 단계;
상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하는 단계;
상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는 단계를 더 포함하는, 방법.
According to claim 1,
detecting that the operating system attempts to access a memory page allocated as a resource of the application program to process a system call;
acquiring original data of data to be processed by the system call;
acquiring data processed according to the system call when processing for the system call is completed by the operating system;
The method further comprising the step of verifying the integrity of the data processed according to the system call by comparing the hash value of the original data and the hash value of the data processed according to the system call.
삭제delete 삭제delete 제1항에 있어서,
상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는 단계를 더 포함하는, 방법.
According to claim 1,
When the operating system modifies the page table of the application program, the method further comprising: registering a memory page allocated as a resource of the application program as a protection target or releasing it from a protection target according to the modified page table .
제1항에 있어서,
다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부에 기초하여, 상기 응용 프로그램의 자원을 상기 다른 응용 프로그램으로부터 보호하기 위한 상기 적어도 하나의 동작이 수행되는, 방법.
According to claim 1,
The at least one operation for protecting the resource of the application program from the other application program is performed based on whether another application program is in a state in which the resource of the application program can be accessed.
응용 프로그램의 자원을 보호하기 위한 디바이스에 있어서,
보호 대상으로 설정되어 실행 중인 응용 프로그램;
상기 응용 프로그램에서 발생된 시스템 호출을 처리하는 운영 체제;
상기 응용 프로그램의 실행 모드에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라, 상기 응용 프로그램의 자원 보호하기 위한 적어도 하나의 동작을 수행하는 응용 프로그램 보호부; 및
상기 응용 프로그램의 자원을 포함하는 하드웨어를 포함하고,
상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록되고, 상기 적어도 하나의 동작은, 상기 보호 대상으로 등록된 적어도 하나의 메모리 페이지에 대하여 수행되고,
상기 응용 프로그램 보호부는,
상기 운영 체제에 의해 상기 응용 프로그램의 자원으로서 새로운 메모리 페이지가 할당됨을 감지하고,
상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 적어도 하나의 메모리 페이지 중 하나의 메모리 페이지와 동일한 경우, 상기 응용 프로그램의 자원으로서의 상기 새로운 메모리 페이지에 대한 할당을 해제하고,
상기 보호 대상으로 등록된 적어도 하나의 메모리 페이지 중 하나의 메모리 페이지가 상기 응용 프로그램의 자원으로서의 할당이 해제되면, 상기 할당이 해제된 메모리 페이지에 저장된 데이터가 삭제된 후, 상기 할당이 해제된 메모리 페이지가 상기 보호 대상에서 해제되는 디바이스.
In the device for protecting the resource of the application,
applications running as protected targets;
an operating system that processes a system call generated by the application program;
Based on the execution mode of the application program, it is determined whether the operating system is in a state capable of accessing the resource of the application program, and according to the determination result, at least one operation for protecting the resource of the application program is performed. Application Protection Department to perform; and
hardware including the resource of the application program;
When the application program is set as a protection target, a memory page to which the resource of the application program is allocated is registered as a protection target, and the at least one operation is performed on at least one memory page registered as the protection target,
The application protection unit,
detecting that a new memory page is allocated as a resource of the application program by the operating system;
When the allocated new memory page is the same as one of the at least one memory page registered as the protection target, release the allocation of the new memory page as a resource of the application program;
When one of the at least one memory page registered as the protection target is deallocated as a resource of the application program, data stored in the deallocated memory page is deleted, and then the deallocated memory page is released from the protection target.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하고, 상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는, 디바이스.
The method of claim 12, wherein the application protection unit
When the operating system is in a state capable of accessing the resource of the application program, it backs up access right information on the memory page allocated as the resource of the application program and the register value of the application program, and accesses the memory page A device that resets permissions and clears the register value.
제13항에 있어서, 상기 응용 프로그램 보호부는
상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 응용 프로그램의 실행 모드에 기초하여 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환된 것으로 판단되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는, 디바이스.
The method of claim 13, wherein the application protection unit
When at least one of the access right information for the memory page and the register value is backed up, it is determined that the operating system has switched to a state in which the resource of the application program cannot be accessed based on the execution mode of the application program If it is, the device for restoring at least one of the access right information for the memory page and the register value by using the backed-up value.
제12항에 있어서,
상기 응용 프로그램의 실행 모드가, 커널 모드이면, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 것으로 판단되고,
상기 응용 프로그램의 실행 모드가, 유저 모드이면, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태인 것으로 판단되는, 디바이스.
13. The method of claim 12,
If the execution mode of the application program is the kernel mode, it is determined that the operating system is in a state in which the resource of the application program can be accessed,
When the execution mode of the application program is a user mode, it is determined that the operating system is in a state in which the resource of the application program cannot be accessed.
제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 상기 응용 프로그램에 의해 발생된 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하면, 상기 시스템 호출에 따라 상기 운영 체제에 의하여 접근될 수 있는 상기 응용 프로그램의 자원에 대해 상기 적어도 하나의 동작이 수행되는, 디바이스.
The method of claim 12, wherein the application protection unit
When the operating system attempts to access a resource of the application program in order to process a system call generated by the application program, the operating system accesses resources of the application program that can be accessed by the operating system according to the system call. The at least one operation is performed for a device.
제16항에 있어서, 상기 적어도 하나의 동작은, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화하는 동작을 포함하는, 디바이스.The device of claim 16 , wherein the at least one operation comprises encrypting data stored in a memory page allocated as a resource of the application program. 제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하면, 상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하고, 상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하고, 상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는, 디바이스.
The method of claim 12, wherein the application protection unit
When the operating system detects that an attempt is made to access a memory page allocated as a resource of the application program in order to process the system call, it acquires original data of data to be processed by the system call, and sends it to the operating system. When processing for the system call is completed by the system call, data processed according to the system call is obtained, A device that verifies the integrity of the processed data.
삭제delete 삭제delete 제12항에 있어서, 상기 응용 프로그램 보호부는
상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는, 디바이스.
The method of claim 12, wherein the application protection unit
When the operating system modifies the page table of the application program, the device registers or releases a memory page allocated as a resource of the application program as a protection target according to the modified page table.
제17항에 있어서,
다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부에 기초하여, 상기 응용 프로그램의 자원을 상기 다른 응용 프로그램으로부터 보호하기 위한 상기 적어도 하나의 동작이 수행되는, 디바이스.
18. The method of claim 17,
The at least one operation for protecting the resource of the application from the other application is performed based on whether another application is in a state in which the resource of the application can be accessed.
제1항 내지 제7항 또는 제10항 내지 제11항 중 어느 한 항에 있어서, 상기 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.[12] The computer-readable recording medium according to any one of claims 1 to 7 or 10 to 11, wherein a program for implementing the method is recorded. 삭제delete
KR1020140174293A 2014-12-05 2014-12-05 Method and apparatus for protecting resource of application program Active 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 KR20160068480A (en) 2016-06-15
KR102297476B1 true KR102297476B1 (en) 2021-09-02

Family

ID=56135153

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140174293A Active 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102698638B1 (en) * 2022-05-20 2024-08-26 고려대학교 산학협력단 Micro-architecture that provides hardware-based isolated execution

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460451B1 (en) * 2013-09-06 2014-11-12 포항공과대학교 산학협력단 Apparatus and method for controlling process address space

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101213572B1 (en) * 2010-12-03 2012-12-18 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
US9183361B2 (en) * 2011-09-12 2015-11-10 Microsoft Technology Licensing, Llc Resource access authorization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460451B1 (en) * 2013-09-06 2014-11-12 포항공과대학교 산학협력단 Apparatus and method for controlling process address space

Also Published As

Publication number Publication date
KR20160068480A (en) 2016-06-15

Similar Documents

Publication Publication Date Title
US9753865B2 (en) System and methods for executing encrypted code
EP3238070B1 (en) Memory protection with non-readable pages
CN103955438B (en) Proceeding internal memory guard method based on hardware auxiliary Intel Virtualization Technology
JP4447977B2 (en) Secure processor and program for secure processor.
US9756048B2 (en) System and methods for executing encrypted managed programs
KR101054981B1 (en) Computer-implemented methods, information processing systems, and computer-readable recording media for securely storing the context of a program
KR20180124048A (en) Data Protection with Virtual Resource Views
KR101920866B1 (en) An auxiliary memory device having independent recovery region
KR101323858B1 (en) Apparatus and method for controlling memory access in virtualized system
CN112818327A (en) TrustZone-based user-level code and data security credibility protection method and device
CN110069935A (en) Inside protecting sensitive data method and system based on label memory
EP3080945B1 (en) Obfuscating in memory encryption keys
KR102584506B1 (en) State information protection for virtual machines
KR20220080126A (en) Handling hypervisor security events on the processor
KR102297476B1 (en) Method and apparatus for protecting resource of application program
JP5316592B2 (en) Secure processor program
US10592663B2 (en) Technologies for USB controller state integrity protection
JP5365664B2 (en) Secure processor
RU119910U1 (en) BUILT-IN TSM SECURITY MODULE
KR20210107386A (en) Electronic apparatus and method for controlling thereof
CN119862551B (en) Anti-cracking method, electronic device, storage medium and program product
US20240220295A1 (en) Event interception control by a trusted layer of a virtual machine
TW201710942A (en) Execution control device, execution control method, and execution control program
JP2009301565A (en) Secure processor

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

AMND Amendment
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E601 Decision to refuse application
PE0601 Decision on rejection of patent

St.27 status event code: N-2-6-B10-B15-exm-PE0601

X091 Application refused [patent]
AMND Amendment
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PX0901 Re-examination

St.27 status event code: A-2-3-E10-E12-rex-PX0901

PX0701 Decision of registration after re-examination

St.27 status event code: A-3-4-F10-F13-rex-PX0701

X701 Decision to grant (after re-examination)
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P14-X000 Amendment of ip right document requested

St.27 status event code: A-5-5-P10-P14-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5