KR20130093804A - Apparatus and method for secure and consistent runtime based confidential execution of application services - Google Patents
Apparatus and method for secure and consistent runtime based confidential execution of application services Download PDFInfo
- Publication number
- KR20130093804A KR20130093804A KR1020120001957A KR20120001957A KR20130093804A KR 20130093804 A KR20130093804 A KR 20130093804A KR 1020120001957 A KR1020120001957 A KR 1020120001957A KR 20120001957 A KR20120001957 A KR 20120001957A KR 20130093804 A KR20130093804 A KR 20130093804A
- Authority
- KR
- South Korea
- Prior art keywords
- service
- application
- virtualization
- application service
- security
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000012795 verification Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 49
- 238000013519 translation Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 abstract description 2
- 238000007789 sealing Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 서비스 공급자에 의해서 사용자 기기로 전달되는 응용 서비스 또는 응용 서비스 데이터가 안전하고 일관된 실행 환경에서 수행 또는 소비될 수 있도록 보장하는 서비스 가상화, 가상화 인터페이스, 및 가상 머신 기술에 관한 것으로서, 보안 가상화 코드와 결합된 형태로 응용 서비스를 배포하고, 응용 서비스 프로세스 또는 응용 서비스 데이터를 소비하는 별도의 프로세스가 커널 서비스를 통해 내부 자원으로 접근 시 이의 신뢰된 접근을 보장하기 위해 가상 머신 상위에 별도의 보안 가상화 인터페이스 계층(Security Virtualization Interface Layer)을 제공하며, 단말의 운영체제 및 하드웨어 플랫폼에 무관하게 수신된 응용 서비스 또는 응용 서비스 데이터가 실행 또는 소비될 수 있도록 하는 가상 머신 기술을 포괄하는 런타임 제공 장치 및 방법에 관한 것이다.
The present invention relates to service virtualization, virtualization interface, and virtual machine technology to ensure that an application service or application service data delivered to a user device by a service provider can be performed or consumed in a secure and consistent execution environment. Separate secure virtualization on top of the virtual machine to deploy application services in conjunction with and to ensure that the application service processes or separate processes consuming application service data access to internal resources through kernel services. Apparatus and method for providing a runtime layer and including a virtual machine technology for allowing a received application service or application service data to be executed or consumed regardless of the operating system and hardware platform of the terminal. One will.
일반적으로 인터넷을 통한 응용 서비스는 그 실행의 주체, 즉 사용자가 해당 응용 서비스를 사용할 수 있는 적합한 권한을 가지고 있는지 유무를 판단하는 것에 초점을 맞추어 보호되어 왔다. 또한, 최근 응용 서비스를 수행할 수 있는 다양한 종류의 사용자 단말들이 폭발적으로 증가하면서, 종래의 응용 서비스 보안 기술은 응용 서비스 자체의 보호, 예컨대 암호화, 은닉 등을 위해 많은 기술개발 및 구현이 이뤄진 반면에, '단말 독립형 실행 일관성', '안전한 시스템 자원 접근', '응용 서비스의 기밀 실행 및 소비'와 같은 3가지 주요 문제에 있어서는 관련 연구 및 개발이 미비한 실정이며, 이와 같은 문제의 해결 없이는 궁극적으로 통합된 응용 서비스 이용 경험(Consolidated User Experience)을 사용자에게 제공할 수 없는 것이 현실이다.In general, application services over the Internet have been protected by focusing on determining the subject of execution, that is, whether a user has the proper authority to use the application service. In addition, with the explosion of various types of user terminals capable of performing application services in recent years, the conventional application service security technology has been developed and implemented a lot of technologies for the protection of the application service itself, such as encryption, concealment, etc. , The three main issues of 'terminal stand-alone execution consistency', 'secure system resource access', and 'confidential execution and consumption of application services' are inadequate research and development. The reality is that the Consolidated User Experience cannot be provided to the user.
한편, 단말의 운영체제 및 하드웨어 규격에 무관하게 응용 서비스 및 응용 서비스 데이터를 실행 또는 소비할 수 있도록 지원하기 위해서, 통상적으로 가상 머신에 의존한 응용 서비스 및 응용 서비스 데이터의 제공이 가능할 수 있으나, 프로세스의 실행 정보가 사용자 모드의 다른 프로세스, 예컨대 악성코드, 바이러스, Bytecode 추출기, 역공학 툴 등에 노출되기 쉽다는 치명적인 문제점이 여전히 존재하고 있다.On the other hand, in order to support the execution or consumption of application services and application service data regardless of the operating system and hardware specifications of the terminal, it is possible to provide the application service and application service data depending on the virtual machine in general, There is still a fatal problem that execution information is easily exposed to other processes in user mode, such as malware, viruses, byte extractors, reverse engineering tools, and the like.
더불어, 안전한 시스템 자원 접근을 보장하기 위해, 종래의 서비스 및 데이터 보호기술은 특정 운영체제 또는 하드웨어 플랫폼에서만 동작할 수 있도록 고안되었다. 실제로, 단말 제조 시에 탑재된 보안관련 정보, 예컨대 단말의 비밀키 또는 인증서로의 접근을 어렵게 만들기 위해 독자적인 보안 소프트웨어를 하드웨어 플랫폼, 예컨대 커널 또는 하드웨어 칩, 수준으로 설치하여, 사용자 응용 프로그램이 해당 보안 기술과의 연동 시 서비스 공급사가 별도로 정의한 고유한 프로토콜만을 이용하여 응용 서비스를 실행시키는 등의 방법을 통해 실행의 기밀성을 보장하고 있다. 그러나, 실행코드 업데이트 및 런타임 API 후킹(Application Programming Interface Hooking) 등을 이용하여 악의적으로 고안된 프로세스가 관리자 또는 특권 모드로 동작하는 특정 응용 서비스만이 접근할 수 보안영역으로 침투할 수 있는 문제가 해결되고 있지 못하다. 또한, 이와 같은 응용 서비스 보호 방법은 응용 서비스 및 응용 서비스 데이터의 실행 및 소비 일관성을 저해하는 요소로 크게 작용한다. In addition, to ensure secure system resource access, conventional services and data protection technologies are designed to operate only on specific operating systems or hardware platforms. Indeed, in order to make it difficult to access the security-related information, such as the secret key or certificate of the terminal, which is loaded at the time of manufacture of the terminal, the user's application can install the security software at the level of a hardware platform such as a kernel or a hardware chip. When interworking with technology, the confidentiality of execution is guaranteed by executing application services using only unique protocols defined by service providers. However, using the execution code update and runtime API application hooking (Application Programming Interface Hooking), the problem that the malicious design process can penetrate into the security domain can only be accessed by a specific application service operating in the administrator or privileged mode. There is no. In addition, such an application service protection method greatly acts as a deterrent to the consistency of execution and consumption of application services and application service data.
일반적으로, 운영체제는 운영체제의 관리 및 제어 하에 실행되는 응용 프로그램의 주요 기밀 데이터가 다른 응용 프로그램, 예컨대 해킹 프로그램, 악성 코드 등에 의해 접근될 수 없도록 하는 등과 같은 보안 기능을 제공해야 한다. 그러나, 최근 운영체제가 범용 PC 뿐만 아니라 다양한 기기(특수 목적)를 포괄해야 하고, 보다 많은 고도화된 기능들이 탑재됨에 따라 운영체제 내에서 해결할 수 있는 보안 문제 및 영역 또한 복잡화되고 있어, 충분한 보안성을 제공하기 어려워지고 있는 실정이다.In general, the operating system should provide security functions such as to prevent sensitive data of an application running under the management and control of the operating system from being accessed by other applications such as hacking programs, malicious code, and the like. However, as the operating system has to cover not only general purpose PCs but also various devices (special purpose), and as more advanced functions are loaded, security problems and areas that can be solved within the operating system are also complicated, providing sufficient security. The situation is getting harder.
그러므로, 응용 서비스 실행 또는 응용 서비스 데이터 소비에 적합한 사용자를 담보하는 종래의 기술을 뛰어넘어, '단말 독립형 실행 일관성', '안전한 시스템 자원 접근', '응용 서비스의 기밀 실행 및 소비'를 충족시킬 수 있는 신규 기술이 크게 요구된다.
Therefore, it is possible to meet 'terminal standalone execution consistency', 'secure system resource access', and 'secret execution and consumption of application services' beyond the conventional techniques for securing users suitable for application service execution or application service data consumption. There is a great demand for new technology.
상술한 바와 같은 요구에 맞춰 안출된 것으로서, 본 발명의 목적은 응용 서비스 또는 응용 서비스 데이터를 사용하는 프로세스가 인가된 방법에 의해서만 커널 서비스 또는 하드웨어 자원에 접근할 수 있도록 자원 접근을 제어하고, 사용자 단말의 규격에 무관하게 응용 서비스의 실행 또는 응용 서비스 데이터 소비의 일관성을 보장하며, 응용 서비스 및 응용 서비스 데이터의 실행 또는 소비의 기밀성을 지원할 수 있는 런타임 제공 장치 및 방법을 제공하는데 있다.In view of the above-described needs, an object of the present invention is to control resource access so that a process using an application service or application service data can access a kernel service or hardware resource only by an authorized method, and a user terminal. It is to provide a runtime providing apparatus and method that guarantees the consistency of the execution of application services or the consumption of application service data regardless of the specification, and can support the confidentiality of the execution or consumption of application services and application service data.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.
본 발명의 일 관점에 의하면, 본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치는 사용자 영역과 커널 영역을 연결시키며, 상기 사용자 영역을 통해 수신된응용 서비스가 상기 커널 영역 하부의 커널 서비스 및 하드웨어 자원을 이용하도록 하는 보안 가상화 인터페이스 계층과, 서비스 제공 서버로부터 가상화 보안 코드를 포함하는 서비스 컨테이너를 수신하면, 상기 서비스 컨테이너에서 가상화 보안 코드와 응용 서비스를 분리하는 컨테이너 파서와, 상기 용용 서비스와 관련된 서비스 정책을 정책 발급 서버에 요청하여 수신하며, 상기 가상화 보안 코드와 상기 서비스 정책을 이용하여 보안 가상화 인터페이스를 생성하는 보안 가상화 인터페이스 생성기와, 상기 보안 가상화 인터페이스에 기술된 규칙에 따라 상기 응용 서비스를 상기 보안 가상화 인터페이스 계층을 통해 가상 머신에 적재하는 가상화 서비스 인젝터를 구비하는 것을 특징으로 한다.According to an aspect of the present invention, the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention connects a user area and a kernel area, and an application service received through the user area has a kernel under the kernel area. A security virtualization interface layer for utilizing services and hardware resources, a container parser for separating virtualization security code and application services from the service container upon receiving a service container including a virtualization security code from a service providing server; A security virtualization interface generator for requesting and receiving a service policy related to a policy issuing server, and generating a security virtualization interface using the virtualization security code and the service policy, and the application server according to the rules described in the security virtualization interface; A scan through the secure virtual interface layer is characterized in that it comprises a virtualization service injectors for loading the virtual machine.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치는 상기 서비스 제공 서버로부터 상기 서비스 컨테이너를 수신하여 상기 컨테이너 파서에 제공하는 인플로우 이벤트 핸들러와, 상기 보안 가상화 인터페이스 생성기의 요청에 따라 상기 정책 발급 서버에 접속하여 서비스 정책을 수신하여 상기 보안 가상화 인터페이스 생성기에 제공하는 정책 검색 핸들러와, 상기 응용 서비스를 실행 또는 소비하기 위한 별도의 응용 프로그램이 요구될 경우 응용 프로그램 데이터베이스에서 검색을 수행하여 상기 별도의 응용 프로그램을 추출하는 응용 프로그램 검색 핸들러를 포함하는 것을 특징으로 한다.An apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention may include an inflow event handler for receiving the service container from the service providing server and providing the service container to the container parser, and at the request of the security virtualization interface generator. A policy search handler for accessing a policy issuing server, receiving a service policy, and providing the service policy to the secure virtualization interface generator, and performing a search in an application database when a separate application for executing or consuming the application service is required. And an application search handler for extracting a separate application.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 보안 가상화 인터페이스 생성기는, 상기 보안 가상화 코드를 이용하여 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 상기 보안 가상화 인터페이스 계층을 통해 상기 커널 영역의 커널 서비스 및 하드웨어 자원에 접속하는 인터페이스 규칙을 추출하며, 상기 서비스 정책으로부터 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 접속을 제어하는 제약 규칙을 추출한 후 상기 추출된 인터페이스 규칙 및 상기 제약 규칙을 이용하여 상기 보안 가상화 인터페이스를 생성하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present disclosure, the secure virtualization interface generator may include the application service or a specific application consuming the same using the secure virtualization code through the secure virtualization interface layer. Extracts an interface rule for accessing a kernel service and a hardware resource in a kernel region, extracts a constraint rule for controlling access of the application service or a specific application program consuming the same from the service policy, and then extracts the extracted interface rule and the constraint rule It is characterized in that for generating the secure virtualization interface.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 가상화 서비스 인젝터는, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 운영체제 또는 하드웨어 규격이 지원하는 네이티브 프로그래밍 언어 (Native Programming Language) 또는 규격으로 제작된 경우, 상기 보안 가상화 인터페이스 계층을 통해 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 상기 커널 서비스로 전달하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the virtualization service injector may be configured as a native programming language supported by an operating system or a hardware standard by the application service or a specific application program consuming the same. In the case of the specification, the application service or the specific application program consuming the same may be delivered to the kernel service through the security virtualization interface layer.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 가상 머신은, 상기 보안 가상화 인터페이스 계층을 통해 수신되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 해석에 필요한 라이브러리가 저장되어 있는 코어 라이브러리(Core Library)와, 상기 보안 가상화 인터페이스 계층을 통해 수신되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 상기 코어 라이브러리를 기반으로 해석하는 가상화 서비스 해석기를 포함하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the virtual machine may include a library for interpreting the application service received through the security virtualization interface layer or a specific application program consuming the same. And a virtual library and a virtualization service interpreter for interpreting the application service received through the security virtualization interface layer or a specific application program consuming the same based on the core library.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 가상화 서비스 인젝터는, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 운영체제 또는 하드웨어 규격이 지원하는 네이티브 프로그래밍 언어 (Native Programming Language) 또는 규격으로 제작되지 않은 경우, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 바이트코드 형태로 변환한 후 이를 상기 가상화 서비스 해석기로 전달하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the virtualization service injector may be configured as a native programming language supported by an operating system or a hardware standard by the application service or a specific application program consuming the same. If not produced in the standard, it is characterized in that the application service or a specific application program consuming it is converted to a bytecode form and then delivered to the virtualization service interpreter.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 가상화 서비스 해석기는, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 실행 시 상기 커널 서비스 또는 하드웨어 자원 접근이 필요한 경우 상기 네이티브 시스템 콜을 생성하여 상기 커널 영역에 전달하는 것을 특징으로 한다.In the apparatus for providing a runtime for secretly executing an application service according to an embodiment of the present invention, the virtualization service interpreter may call the native system call when the kernel service or hardware resource access is required when executing the application service or a specific application program consuming the application service. It generates and delivers to the kernel region.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 커널 영역은, 상기 가상화 서비스 해석기로부터 전달받은 네이티브 시스템 콜의 적합성여부를 검사하여 신뢰된 접근인지를 판단하며, 상기 판단 결과에 따라 상기 네이티브 시스템 콜의 상기 커널 서비스 또는 하드웨어 자원 접근을 허용하거나 차단하는 가상화 서비스 모니터를 포함하는 것을 특징으로 한다.In the runtime providing apparatus for executing the application service confidentiality according to an embodiment of the present invention, the kernel region determines whether the access is a trusted access by checking the suitability of the native system call received from the virtualization service interpreter. And a virtualization service monitor for allowing or blocking access to the kernel service or hardware resource of the native system call.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 커널 영역은, 상기 보안 가상화 인터페이스 생성기에 의해 생성된 상기 응용 서비스에 대한 보안 가상화 인터페이스를 저장하기 위한 캐시된 번역 저장소를 더 포함하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the kernel region further includes a cached translation store for storing a security virtualization interface for the application service generated by the security virtualization interface generator. Characterized in that.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 커널 영역은, 상기 보안 가상화 인터페이스 계층을 통해 수신되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 상기 보안 가상화 인터페이스 생성기에 의해 생성된 보안 가상화 인터페이스에 따라 권한이 주어진 특정 커널 서비스 또는 하드웨어 자원으로만 네이티브 시스템 콜을 발생시키는지를 모니터링하는 가상화 서비스 모니터를 더 포함하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the kernel region may be generated by the secure virtualization interface generator by the secure service application or the specific application program consuming the same. And a virtualization service monitor for monitoring whether to generate a native system call only to a specific kernel service or hardware resource authorized according to the secured virtualization interface.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치에서 상기 커널 영역은, 특정 응용 서비스 또는 응용 프로그램의 보안 가상화 인터페이스를 저장하는 캐시된 번역 저장소와, 상기 캐시된 번역 저장소에 저장된 보안 가상화 인터페이스를 기반으로 상기 응용 서비스 또는 이를 소비하기 위한 응용 프로그램의 커널 서비스 또는 하드웨어 자원 접근을 제어하는 가상화 서비스 모니터를 포함하는 것을 특징으로 한다.In the apparatus for providing a runtime for confidentially executing an application service according to an embodiment of the present invention, the kernel region may include a cached translation store that stores a secure virtualization interface of a specific application service or application, and secure virtualization stored in the cached translation store. And a virtualization service monitor for controlling access to a kernel service or a hardware resource of the application service or an application program for consuming the application based on an interface.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 장치는 상기 응용 서비스 또는 이를 소비하기 위한 응용 프로그램의 실행 결과가 하드웨어 자원을 통해 출력되도록 처리하는 아웃플로우 이벤트 핸들러를 더 포함하는 것을 특징으로 한다.The apparatus for providing a runtime for confidentially executing an application service according to an exemplary embodiment of the present invention may further include an outflow event handler that processes an execution result of the application service or an application program for consuming the same to be output through a hardware resource. do.
본 발명의 다른 관점에 따르면, 본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법은 외부의 서비스 제공 서버로부터 가상화 보안 코드를 포함하는 서비스 컨테이너를 수신하는 단계와, 상기 서비스 컨테이너에서 가상화 보안 코드와 응용 서비스를 분리하는 단계와, 상기 용용 서비스와 관련된 서비스 정책을 정책 발급 서버에 요청하여 수신하는 단계와, 상기 가상화 보안 코드와 상기 서비스 정책을 기반으로 보안 가상화 인터페이스를 생성하는 단계와, 상기 보안 가상화 인터페이스에 기술된 규칙에 따라 상기 응용 서비스를 보안 가상화 인터페이스 계층을 통해 가상 머신에 적재하는 단계를 포함할 수 있다.According to another aspect of the present invention, a method of providing a runtime for confidentiality of an application service according to an embodiment of the present invention comprises the steps of: receiving a service container including a virtualization security code from an external service providing server; Separating a security code from an application service, requesting and receiving a service policy related to the service, from a policy issuing server, generating a security virtualization interface based on the virtualization security code and the service policy; And loading the application service into the virtual machine through the security virtualization interface layer according to the rules described in the security virtualization interface.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법은 상기 생성된 보안 가상화 인터페이스를 통해서 해당 응용 서비스가 별도의 응용 프로그램이 필요한지를 판단하는 단계와, 상기 판단 결과, 상기 별도의 응용 프로그램이 필요한 경우 상기 별도의 응용 프로그램을 응용 프로그램 데이터베이스에서 검색하여 획득하는 단계를 더 포함하며, 상기 적재하는 단계는, 상기 획득한 응용 프로그램 또는 응용 서비스를 상기 가상 머신에 적재하는 것을 특징으로 한다.In accordance with another aspect of the present invention, there is provided a method of providing a runtime for confidentiality of an application service, including determining whether the application service requires a separate application program through the generated security virtualization interface, and as a result of the determination, the separate application program If necessary, the method may further include searching for and obtaining the separate application program from an application database, and the loading may include loading the obtained application program or application service on the virtual machine.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법에서 상기 보안 가상화 인터페이스를 생성하는 단계는, 상기 보안 가상화 코드를 이용하여 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그림이 상기 보안 가상화 인터페이스 계층을 통해 상기 커널 영역의 커널 서비스 및 하드웨어 자원에 접속하는 인터페이스 규칙을 추출하는 단계와, 상기 서비스 정책으로부터 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 접속을 제어하는 제약 규칙을 추출하는 단계와, 상기 추출된 인터페이스 규칙 및 상기 제약 규칙을 이용하여 상기 보안 가상화 인터페이스를 생성하는 단계를 포함하는 것을 특징으로 한다.The generating of the secure virtualization interface in the runtime providing method for executing the confidentiality of the application service according to an embodiment of the present invention may include the application service or a specific application program consuming the secure virtualization code using the secure virtualization code. Extracting an interface rule for accessing a kernel service and a hardware resource of the kernel region through a layer, extracting a constraint rule for controlling access of the application service or a specific application program consuming the same from the service policy; And generating the secure virtualization interface using the extracted interface rule and the constraint rule.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법에서 상기 적재하는 단계는, 상기 보안 가상화 인터페이스에 대한 코드 검증을 수행하여 보안 가상화 인터페이스의 이상 유무를 판단하는 단계와, 상기 보안 가상화 인터페이스에 이상이 없는 경우 상기 응용 서비스 또는이를 소비하는 응용 프로그램을 상기 가상 머신에 적재하는 단계와, 상기 보안 가상화 인터페이스에 이상이 있는 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램의 실행을 중단시키는 단계를 포함하는 것을 특징으로 한다.The loading in the runtime providing method for executing the confidentiality of the application service according to an embodiment of the present invention includes performing a code verification on the security virtualization interface to determine whether there is an abnormality of the security virtualization interface, and the security virtualization interface. Loading the application service or the application consuming the application into the virtual machine if there is no error, and stopping the execution of the application service or the application consuming the application if the security virtualization interface has an error. It is characterized by including.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법에서 상기 적재하는 단계는, 상기 응용 서비스 또는 이를 소비하는 응용 프로그램이 네이티브 프로그래밍 언어 또는 규격으로 작성되어 있는지를 판단하는 단계와, 상기 판단 결과, 네이티브 프로그래밍 언어 또는 규격으로 작성된 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램에 대한 네이티브 시스템 콜을 커널 영역에 전달하는 단계와, 상기 판단 결과, 네이티브 프로그래밍 언어 또는 규격으로 작성되지 않은 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램을 바이트코드 형태로 변환하여 상기 가상 머신을 통해 상기 커널 영역에 전달하는 단계를 포함한다.In the method of providing a runtime for confidentially executing an application service according to an embodiment of the present disclosure, the loading may include determining whether the application service or an application program consuming the same is written in a native programming language or standard, and determining the content. As a result, the step of delivering a native system call for the application service or the application that consumes it to a kernel region if it is written in a native programming language or standard, and if the result is not written in the native programming language or standard, the application service Or converting an application program consuming the same into a bytecode form and delivering the same to the kernel region through the virtual machine.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법에서 상기 가상 머신을 통해 상기 커널 영역에 응용 프로그램에 대한 네이티브 시스템 콜을 전달하는 단계는, 상기 바이트 코드 형태의 응용 서비스 또는 이를 소비하는 응용 프로그램을 기 저장된 코어 라이브러리를 기반으로 해석하는 단계와, 상기 응용 서비스 또는 이를 소비하는 응용 프로그램 실행 시 커널 서비스 또는 하드웨어 자원 접근이 필요한 경우 상기 커널 영역에 네이티브 시스템 콜을 요청하는 단계를 포함하는 것을 특징으로 한다.In the method of providing a runtime for confidentiality of an application service according to an embodiment of the present invention, the step of delivering a native system call for an application program to the kernel region through the virtual machine may include: Interpreting an application based on a pre-stored core library, and requesting a native system call to the kernel region when accessing a kernel service or a hardware resource is required when executing the application service or an application consuming the application. It features.
본 발명의 실시 예에 따른 응용 서비스 기밀 실행을 위한 런타임 제공 방법은 상기 네이티브 시스템 콜을 수신한 상기 커널 영역에서 상기 네이티브 시스템 콜의 적합성 검사를 통해 신뢰된 접근인지를 판단하는 단계와, 상기 신뢰된 접근인 경우에만 상기 네이티브 시스템 콜의 상기 커널 서비스 또는 하드웨어 자원 진입을 허용하는 단계를 포함하는 것을 특징으로 한다.
In accordance with another aspect of the present invention, there is provided a method of providing a runtime for confidentiality of an application service, including determining whether a trusted access is made through a suitability check of the native system call in the kernel region that receives the native system call, and the trusted Allowing access to the kernel service or hardware resource of the native system call only in the case of an access.
본 발명의 실시 예에 의하면, 기밀 실행이 요구되는 응용 서비스 또는 기밀 소비가 요구되는 응용 서비스 데이터를 위해 프로세스 및 데이터의 커널 모드로의 진입을 가능하게 하는 보안 가상화 인터페이스 계층을 제공함으로써, 응용 서비스 실행 또는 응용 서비스 데이터 소비의 기밀성을 극대화할 수 있다.According to an embodiment of the present invention, an application service execution is provided by providing a secure virtualization interface layer that allows a process and data to enter a kernel mode for application services requiring confidential execution or application service data requiring confidential consumption. Alternatively, the confidentiality of application service data consumption can be maximized.
또한, 본 발명은 가상화 서비스 모니터를 이용하여 응용 서비스의 실행 또는 응용 서비스 데이터의 소비를 가상화 보안 코드 및 서비스 정책에서 정의한 형태로 프로세스 실행 관점에서 제어함으로써, 무분별한 커널 서비스 또는 하드웨어 자원으로의 접근을 방지할 수 있을 뿐만 아니라 보다 안정화된 방법으로 프로세스의 자원 이용이 가능하다.In addition, the present invention by using the virtualization service monitor to control the execution of the application service or the consumption of application service data in the form of the process execution in the form defined in the virtualization security code and service policy, thereby preventing indiscriminate access to the kernel service or hardware resources Not only can we do this, but we can use the resources of the process in a more stable way.
본 발명은 가상 머신 위에 보안 가상화 인터페이스 계층을 정의하여 활용함으로써, 별도의 수정 없이 종래의 가상 머신을 이용할 수 있는 장점을 제공할 수 있다.The present invention may provide an advantage of using a conventional virtual machine without any modification by defining and utilizing a secure virtualization interface layer on the virtual machine.
결과적으로, 사업자는 제공되는 응용 서비스 또는 응용 서비스 데이터의 안전하고 일관된 사용에 대한 기술적 담보, 즉 보안 서비스 코드 생성 및 서비스 정책 생성 그리고 보안 가상 인터페이스 런타임 소프트웨어 제공할 수 있으며, 사용자 단말에서는 수신된 응용 서비스 또는 응용 서비스 데이터의 관련 프로세스가 보안 가상 코드 및 서비스 정책에서 정의한 내용에 따라 커널 서비스 및 하드웨어 자원에 신뢰적으로 접근할 수 있다.As a result, the operator can provide technical collateral for the secure and consistent use of the provided application services or application service data, that is, secure service code generation and service policy generation and secure virtual interface runtime software, and the received application services at the user terminal. Alternatively, the relevant process of application service data can reliably access kernel services and hardware resources as defined by secure virtual code and service policies.
또한, 사용자는 자바 가상 머신(Java Virtual Machine)과 같은 기존의 가상 머신을 이용하여, 단말의 운영체제 및 하드웨어 플랫폼에 독립적으로 응용 서비스 실행시키거나 응용 서비스를 데이터 소비할 수 있다.
In addition, a user may execute an application service or consume data of an application service independently of an operating system and a hardware platform of a terminal by using an existing virtual machine such as a Java virtual machine.
도 1은 본 발명의 실시 예에 따라 안전하고 일관된 런타임 환경 제공을 기반으로 응용 서비스 또는 응용 서비스 데이터가 서비스 컨테이너 형태로 배포되는 시스템 구조를 개념적으로 도시한 도면,
도 2는 본 발명의 실시 예에 적용되는 서비스 컨테이너 구조를 도시한 도면,
도 3은 커널 시스템 자원의 가상화 개념을 사용자 영역의 응용 서비스, 런타임 영역의 가상 머신 그리고 커널 영역의 시스템 자원간의 관계를 기반으로 설명하고, 런타임 관점에서 응용 서비스의 실행이 어떠한 구조로 이루어지는지를 설명하기 위한 개념도,
도 4는 본 발명의 실시 예에 따라 사용자 단말을 중심으로 응용 서비스 또는 응용 서비스 데이터의 안전하고 일관된 실행 및 소비를 지원하는 런타임 시스템 내부 구성을 도시한 블록도
도 5는 본 실시 예에 따라 응용 서비스가 보안 가상화 인터페이스 통해 가상 머신으로 인젝션되기 전까지의 과정을 도시한 흐름도,
도 6은 본 실시 예에 따라 보안 가상화 코드 및 정책으로부터 인터페이스 규칙 및 접근 제약 규칙을 각각 추출하여 보안 가상화 인터페이스를 생성하는 과정을 도시한 흐름도,
도 7은 본 실시 예에 따라 응용 서비스가 런타임 진입 이후 커널 서비스 또는 하드웨어 자원 요청 시 네이티브 시스템 콜에 대한 모니터링을 실시하는 과정을 도시한 흐름도이다.1 is a conceptual diagram illustrating a system structure in which an application service or application service data is distributed in a service container form based on providing a secure and consistent runtime environment according to an embodiment of the present invention;
2 is a diagram illustrating a service container structure applied to an embodiment of the present invention;
FIG. 3 illustrates the concept of virtualization of kernel system resources based on the relationship between application services in the user domain, virtual machines in the runtime domain, and system resources in the kernel domain, and illustrates how the execution of the application service is constructed from a runtime perspective. Conceptual diagram,
4 is a block diagram illustrating an internal configuration of a runtime system supporting safe and consistent execution and consumption of an application service or application service data centering on a user terminal according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a process before an application service is injected into a virtual machine through a secure virtualization interface according to the present embodiment;
6 is a flowchart illustrating a process of generating a security virtualization interface by extracting an interface rule and an access restriction rule from a security virtualization code and a policy according to the present embodiment;
7 is a flowchart illustrating a process of performing an application service monitoring for a native system call when a kernel service or a hardware resource is requested after entry into a runtime according to the present embodiment.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.
이하, 첨부된 도면을 참조하여 응용 서비스 또는 응용 서비스 데이터를 사용하는 프로세스가 인가된 방법에 의해서만 커널 서비스 또는 하드웨어 자원에 접근할 수 있도록 자원 접근을 제어하고, 사용자 단말의 규격, 예컨대 운영체제 또는 하드웨어 플랫폼에 무관하게 응용 서비스의 실행 또는 응용 서비스 데이터 소비의 일관성을 보장하며, 응용 서비스 및 응용 서비스 데이터의 실행 및 소비의 기밀성을 지원하기 위한 방법 및 장치에 대해 설명한다.Hereinafter, referring to the accompanying drawings, a resource access control is performed such that a process using an application service or application service data can access a kernel service or a hardware resource only by an authorized method, and specifications of a user terminal, such as an operating system or a hardware platform. It describes a method and apparatus for ensuring the consistency of execution of application services or consumption of application service data, and to support the confidentiality of application services and application service data.
본 발명의 실시 예의 설명에 앞서, 응용 서비스 도는 응용 서비스 데이터가 배포되는 시스템 구조에 대해 도 1을 참조하여 설명한다.Prior to the description of an embodiment of the present invention, a system structure in which an application service or application service data is distributed will be described with reference to FIG. 1.
도 1은 본 발명의 실시 예에 따라 안전하고 일관된 런타임 환경 제공을 기반으로 응용 서비스 또는 응용 서비스 데이터가 서비스 컨테이너 형태로 배포되는 시스템 구조를 개념적으로 도시한 도면으로서, 서비스 제공 서버(100), 서비스 컨테이너(110), IP 네트워크(120), 사용자 단말(130) 및 정책 발급 서버(140) 등을 포함할 수 있다.1 is a diagram conceptually illustrating a system structure in which an application service or application service data is distributed in the form of a service container based on providing a secure and consistent runtime environment according to an embodiment of the present invention. The
서비스 제공 서버(100)는 신뢰할 수 있는 서비스 공급자가 운용하는 서버로서, 서비스 컨테이너(110)의 각 요소들을 생성, 합성 및 배포하는 등의 기능을 수행할 수 있다.The
서비스 컨테이너(110)는 응용 서비스 또는 응용 서비스 데이터를 서비스 제공 서버(100)가 사용자 단말(130)에게 배포하기 위한 규격을 의미하는데, 특히 사용자 단말(130)에서 응용 서비스 또는 응용 서비스 데이터가 안전하고 일관되며, 기밀된 실행 또는 소비가 가능하도록 지원하는 응용 서비스 배포 구조체를 의미한다. 이러한 서비스 컨테이너(110)의 구체적인 포맷은, 도 2에 도시된 바와 같이, 보안 가상화 코드(SV Code: Security Virtualization Code, 150), 응용 서비스(또는 응용 서비스 데이터)(Service 또는 Service Data, 152), 메타 데이터(Metadata, 154) 및 확장 필드(Extension Fields, 156) 등을 포함할 수 있다.The
보안 가상화 코드(150)는 응용 서비스 또는 응용 서비스 데이터가 '안전한 커널 자원 접근, 일관된 실행 환경 보장, 기밀 실행 지원'의 세 가지 관점에서 실행 또는 소비될 수 있도록 하기 위해 가상화 서비스 인젝터가 보안 가상화 인터페이스 계층을 통해 가상화 서비스를 런타임 또는 커널 영역으로 인젝션할 때 연동 지침을 규정하고 있는 코드를 의미한다. 특히, 본 발명의 실시 예에서는 보안 가상화 인터페이스 계층을 통해 어떻게 가상화 서비스 인젝터가 응용 서비스의 프로세스 인스턴스 또는 응용 서비스 데이터를 이용하는 응용 프로그램의 프로세스 인스턴스를 가상 머신에 적재할 것인가에 대한 규격을 담고 있는 코드를 보안 가상화 코드(150)라고 정의한다. The
응용 서비스(152)는 응용프로그램, 프로그램 코드, 비디오, 음악파일, 텍스트파일, 이미지 등을 모두 포괄하는 개념으로 사용되는데, 특히, 보안 가상화 코드(150) 및 응용 서비스 (152)는 신뢰할 수 있는 서비스 제공 서버(100)에 의해 생성, 합성 및 발급된 것으로서, 기 설정된 암호학적 방법, 예컨대 Code Signing, Message Authentication 등으로 상호 결합된 것으로 가정한다.
메타 데이터(154)는 응용 서비스(152) 또는 응용 서비스 데이터와 관련한 부가적인 정보를 저장하는 필드(Field)로서, 서비스 공급자(100)의 응용 서비스 생성 및 배포 규칙에 따라 자유롭게 구성될 수 있다.The
확장 필드(156)는 언급한 메타 데이터(154) 필드 이외, 서비스 공급자(100)의 필요에 따라 추가적으로 이용할 수 있는 필드를 의미한다.The
IP 네트워크(120)는 인터넷과 같은 TCP/IP 기반의 유무선 통신망을 의미하며, 각 개체간의 통신 경로 및 방법을 제공할 수 있다.The
사용자 단말(130)은 서비스 가상화 소프트웨어(SVS: Service Virtualization Software)가 내장되어 있으며, 서비스 컨테이너 형태로 제공되지 않는 응용 서비스 및 응용 서비스 데이터를 일반적인 방법에 준하여 처리하거나 서비스 컨테이너(110)를 본 발명의 실시 예에 따라 처리할 수 있다.The
또한, 사용자 단말(130)은 커널 시스템을 이용하여 런타임 관점에서 응용 서비스를 실행할 수 있는데, 이에 대해 도 3을 참조하여 설명한다.In addition, the
도 3은 커널 시스템 자원의 가상화 개념을 사용자 영역의 응용 서비스, 런타임 영역의 가상 머신 그리고 커널 영역의 시스템 자원간의 관계를 기반으로 설명하고, 런타임 관점에서 응용 서비스의 실행이 어떠한 구조로 이루어지는지를 설명하기 위한 개념도이다.FIG. 3 illustrates the concept of virtualization of kernel system resources based on the relationship between application services in the user domain, virtual machines in the runtime domain, and system resources in the kernel domain, and illustrates how the execution of the application service is constructed from a runtime perspective. Conceptual diagram.
도 3에 도시된 바와 같이, 런타임 기반 응용 서비스 프로세스의 인스턴스 실행 개념도는 사용자 영역(User Space, 300), 보안 가상화 인터페이스 계층(310), 서비스 가상화 소프트웨어(320), 가상화 서비스 모니터(330), 커널 영역(340) 등의 구조를 포함할 수 있다.As shown in FIG. 3, the conceptual diagram of instance execution of a runtime based application service process includes a
사용자 영역(300)은 응용 서비스 또는 응용 서비스 데이터, 그 외 이를 수행하거나 소비하는데 필요한 기타 정보들이 프로세서 및 메모리 영역으로 적재되기 전에 위치하는 논리 영역을 의미한다. 따라서, 사용자 영역(300)은 서비스(302), 서비스 데이터(302) 및 응용 프로그램(Application Program, 304) 등을 포함할 수 있다.The
서비스(302)는 통상의 컴퓨팅 장치를 이용하여 실행하거나 소비할 수 있는 모든 유형의 단일 소프트웨어, 프로그램 코드, 데이터 또는 이들의 조합으로 이뤄진 논리 프로세스 등을 통칭하는 것으로 가정한다. 또한, 설명의 편의를 돕고자 크게 응용 서비스와 응용 서비스 데이터로 나누어 전자는 실행의 대상으로, 후자는 소비의 대상으로 후술한다.It is assumed that
서비스 데이터(304)는 실행 대상인 서비스(302)와 구분하기 위한 목적으로 소비의 대상이 되는 응용 서비스를 의미한다.The
응용 프로그램(304)은 응용 서비스 데이터(304)의 소비를 돕는 수단으로 이용될 수 있다.The
보안 가상화 인터페이스 계층(SVIF Layer: Security Virtualization Interface Layer, 310)은 응용 서비스(302) 및 응용 서비스 데이터(304)의 실행을 돕는 응용 프로그램(306)의 가상화된 실행을 위한 인터페이스 계층이다. 이러한 보안 가상화 인터페이스 계층(310)으로의 접근을 위해서는 서비스 컨테이너(150) 내의 보안 가상화 코드를 추출하고 서비스 정책으로부터 보안 가상화 인터페이스를 획득하는 절차가 선행되어야 하며, 이러한 보안 가상화 인터페이스 계층(310)은 자원접근 추상화 및 접근 코드 검증을 통해 응용 서비스(302) 및 응용 서비스 데이터(304)에게 런타임 기밀성을 제공할 수 있다.The Security Virtualization Interface Layer (SVIF Layer) 310 is an interface layer for the virtualized execution of the application 306 that facilitates the execution of the
서비스 가상화 소프트웨어(Runtime, Service Virtualization Software, 320)은 응용 서비스 (302) 또는 응용 서비스 데이터(304)의 실행을 돕는 응용 프로그램(306)을 프로세서 및 메모리상에 적재하여 실행하는 기능을 수행하는 런타임 영역을 의미하며, 사용자 영역(User Space, 300)과 커널 영역(Kernel Space, 340)과의 브릿지(Bridge) 역할을 수행할 수 있다.The
이러한 서비스 가상화 소프트웨어(320)는 프로세서(322), 가상 머신 프로세스(324), 서비스 인스턴스(326) 등으로 구성될 수 있다.The
프로세스(322)는 통상적인 컴퓨팅 장치에서 사용되는 범용 목적의 프로세서, 예컨대 CPU(Central Processing Unit) 및 보안 목적으로 제작된 특수 목적의 프로세서, 예컨대 MCU(Micro Control Unit), SC(Security Chip) 등을 포함할 수 있다.
가상 머신 프로세스(VM Process, 324)는 프로세스(322)에 적재되며, 복수개의 가상 머신 프로세스(324)가 프로세스(322)에 독립적으로 적재될 수 있다. The virtual machine process (VM Process) 324 is loaded into the
또한, 가상 머신 프로세스(324)는 응용 서비스(302) 및 응용 서비스 데이터(304)가 사용자 단말(130)의 운영체제 또는 하드웨어 규격에 무관하게 실행 및 소비될 수 있도록 런타임 일관성을 제공할 수 있다.In addition, the
서비스 인스턴스(SI: Service Instance, 326)는 응용 서비스(302) 및 응용 서비스 데이터(304)를 처리하는 별도의 응용 프로그램(306)이 가상 머신 프로세스(324)의 내부 인스턴스(Instance)로 적재되어 구동될 때의 논리적인 형태를 의미한다.The service instance SI (SI) is a separate application 306 for processing the
가상화 서비스 모니터(VS Monitor: Virtual Service Monitor, 330)는 가상 머신 프로세스(324)에 적재되어 실행되는 서비스 인스턴스(326)가 커널 영역(340)의 자원 요청 시 이의 접근 권한 적합성을 검사함으로써, 런타임 보안성을 제공한다.The Virtual Service Monitor (VS Monitor) 330 is a
커널 영역(Kernel Space, 340)은 운영체제에서 공통적으로 제공하는 시스템 라이브러리 (System Libraries)들이 존재하는 영역을 의미한다. Kernel space (Kernel Space, 340) refers to the area where the system libraries (System Libraries) commonly provided by the operating system.
가상화된 리소스(Virtualized Resources, 342)는 커널 영역(340)에 존재하는 시스템 라이브러리 형태로 이뤄진 커널 자원을 의미할 수 있다. 커널 자원의 예로는 파일 입출력, 네트워크 입출력, 메모리 관리, 프로세스 관리 등을 수행하는 서비스들을 들 수 있다.The
또한, 본 발명의 실시 예에서는 보안 가상화 인터페이스 계층(310), 가상 머신 프로세스(324) 기반의 서비스 가상화 소프트웨어(320) 및 가상화 서비스 모니터(330)를 통해 커널 하부의 자원들이 추상화되기 때문에, 커널 자원들을 특히 가상화 자원으로 정의할 수 있다.In addition, in the embodiment of the present invention, since resources under the kernel are abstracted through the secure
상기와 같은 런타임 시스템의 내부 구성에 대해 도 4를 참조하여 설명한다. An internal configuration of such a runtime system will be described with reference to FIG. 4.
도 4는 본 발명의 실시 예에 따라 사용자 단말을 중심으로 응용 서비스 또는 응용 서비스 데이터의 안전하고 일관된 실행 및 소비를 지원하는 런타임 시스템 내부 구성을 도시한 블록도로서, 인플로우 이벤트 핸들러(400), 컨테이너 파서(410), SVIF 생성기(412) 및 VS 인젝터(414)를 포함하는 사용자 영역(300), 사용자 영역과 런타임 영역을 연계 시켜주는 보안 가상화 인터페이스 계층(310), VS 해석기(422) 및 코어 라이브러리(424)를 포함하는 서비스 가상화 소프트웨어(320), 가상화 서비스 모니터(330), 캐시된 번역 저장소(430) 및 커널 서비스(432)를 포함하는 커널 영역(340), 운영체제(440), 하드웨어 자원(450) 및 아웃플로우 이벤트 핸들러(460) 등으로 구성될 수 있다.4 is a block diagram illustrating an internal configuration of a runtime system supporting secure and consistent execution and consumption of an application service or application service data centering on a user terminal according to an embodiment of the present invention.
도 4에 도시된 바와 같이, 인플로우 이벤트 핸들러(Inflow Event Handler, 400)는 IP네트워크(120)을 통해 유입된 응용 서비스 또는 응용 서비스 데이터를 감지하고 이를 컨테이너 파서(410)에 알리고, 수신된 응용 서비스 또는 응용 서비스 데이터를 전달하는 기능을 수행할 수 있다.As shown in FIG. 4, the
정책 검색 핸들러(Policy Retrieval Handler, 402)는 SVIF 생성기(412)가 정책 명세서를 요청하면, IP 네트워크(120)을 통해 정책 발급 서버(140)에 접속하여, 정책 명세서(서비스 정책)를 검색하고 이를 수신하는 역할을 수행할 수 있다.When the
응용 프로그램 데이터베이스(Application Database, 404)는 응용 프로그램들을 관리하는 저장소 역할을 수행하며, 도 4에 도시한 바와 같이 사용자 단말(130) 외부의 개체로서 동작하거나, 또는 사용자 단말(130) 내부의 저장소로 기능할 수 있다.The
응용 프로그램 검색 핸들러(Application Retrieval Handler, 406)는 수신한 응용 서비스 또는 응용 서비스 데이터를 실행 또는 소비하기 위해 별도의 응응 프로그램이 요구될 경우 응용 프로그램 데이터베이스(404)의 검색을 통해 이에 적절한 응용 프로그램을 검색하여 VS 인젝터(414)에 제공할 수 있다.The Application Retrieval Handler (406) retrieves the appropriate application by searching the application database (404) when a separate application is required to execute or consume the received application service or application service data. To the
아웃플로우 이벤트 핸들러(Outflow Event Handler, 408)는 응용 서비스 또는 응용 프로그램의 실행 결과가 하드웨어 출력장치(450)를 통해 출력될 경우 이를 처리하는 기능을 수행할 수 있다.The
컨테이너 파서(Container Parser, 410)는 인플로우 이벤트 핸들러(400)를 통해 수신된 상기의 도 2와 같은 서비스 컨테이너를 구성하는 내부 정보들을 분리하여 인식하고, 메타데이터를 해석하며, 보안 가상화 코드(150)를 SVIF생성기(412)에 전달하고, 응용서비스 또는 응용 서비스 데이터(152)를 VS 인젝터(414)에 전달할 수 있는 기능 블록이다. 따라서, 컨테이너 파서(410)는 응용 서비스 또는 응용 서비스 데이터 실행 및 소비에 요구되는 사전 처리(Pre-Processing)를 담당한다.The
SVIF 생성기(412)는 컨테이너 파서(410)로부터 보안 가상화 코드를 수신하고, 이후 정책 검색 핸들러(402)에게 관련 서비스 정책 명세서를 요청하여 수신할 수 있다. 이러한 SVIF생성기(412)는 보안 가상화 코드로부터 응용 서비스 또는 응용 서비스 데이터를 소비하는 특정 응용 프로그램이 보안 가상화 인터페이스 계층(310)을 통해 커널 서비스 및 시스템 자원에 접속하는 인터페이스 규칙을 추출하고, 서비스 정책 명세서로부터 응용 서비스 또는 특정 응용 프로그램의 접속을 제어하는 제약 규칙을 추출한 후 상기 추출된 두 규칙을 합성하여 보안 가상화 인터페이스를 생성할 수 있다. 다시 말해서, SVIF생성기(412)는 응용 서비스 또는 특정 응용 프로그램에게 허락된 특정 커널 서비스 또는 하드웨어 자원으로 통신하는 방법을 보안 가상화 인터페이스의 형태로 생성할 수 있다. The
이러한 보안 가상화 인터페이스를 통해 일관되고 기밀된 커널 자원 접근을 보장할 수 있을 뿐만 아니라 응용 서비스 및 응용 서비스 데이터의 신뢰된 실행 및 소비를 지원한다. This secure virtualization interface not only ensures consistent and confidential access to kernel resources, but also supports the trusted execution and consumption of application services and application service data.
VS 인젝터(414)는 SVIF생성기(412)로부터 보안 가상화 인터페이스를 수신하면, 컨테이너 파서(410) 또는 응용 프로그램 검색 핸들러(406)으로부터 응용 서비스 또는 응용 서비스 데이터와 관련된 특정 응용 프로그램을 요청하여 수신한다. 이후, 보안 가상화 인터페이스에 기술된 제약적 규칙에 따라 응용 서비스 또는 응용 프로그램이 보안 가상화 인터페이스 계층(310)을 통해 가상 머신(420)의 VS 해석기(422)에 주입되게 한다. 즉, 실행 관점에서 응용 서비스 또는 응용 프로그램이 가상 머신(420)에 적재되도록 하기 위한 기능을 가상화 서비스 인젝션 상에 구현할 수 있다. When the
또한, VS 인젝터(414)는 응용 서비스 또는 응용 프로그램이 운영체제(440) 또는 하드웨어 자원(450) 규격이 지원하는 네이티브 프로그래밍 언어(Native Programming Language) 또는 규격으로 제작되어 있을 경우, 이를 가상 머신(420)의 VS 해석기(422)로 적재시키지 않고, 보안 가상화 인터페이스 계층(310)을 통해 바로 커널 서비스(432)로 네이티브 시스템 콜을 전달할 수 있다. 단, 이와 같은 경로를 통해 커널 서비스(432) 및 하드웨어 자원(450)의 접근이 이뤄지더라도, 본 발명의 실시 예에서는 가상화 서비스 모니터(330)을 통해 이의 접근을 감시하고 제어할 수 있다.In addition, the
보안 가상화 인터페이스 계층(330)는 소프트웨어 형태로 구현될 수 있는 프로그램으로서, 사용자 영역(300)과 커널 영역(340)간의 중계자 역할을 수행하는데, 특히 사용자 영역(300)의 응용 서비스 또는 응용 프로그램에게 커널 영역(340) 하부의 커널 서비스(432) 및 하드웨어 자원(450)을 추상화되어 제공되는 기능을 수행할 수 있다.The security
또한, 보안 가상화 인터페이스 계층(330)은 SVIF생성기(412)에 의해 발급된 보안 가상화 인터페이스를 가지고 있는 응용 서비스 또는 응용 프로그램만이 커널 하부로 주입될 수 있도록 제어하는 기능을 수행할 수 있다.In addition, the security
가상 머신(Virtual Machine, 420)는 일반적인 자바 가상 머신(Java Virtual Machine)과 같은 프로세스 타입(Process type)으로 구현 될 수 있다. 즉, 응용 서비스 또는 응용 프로그램의 실행(해석)을 요청 받으면 가상 머신(420)는 해당 응용 서비스 또는 응용 프로그램을 적재한 형태의 가상 머신 프로세스 인스턴스를 특권모드(Privileged Mode)로 실행시킨다. 따라서, 가상 머신(420)는 요청에 따라 여러 개가 독립적으로 프로세서(Processor, 322) 상에 로드될 수 있으며, 각 가상 머신(420)은 독립적으로 동작하기 때문에 개별 가상 머신 프로세스가 처리하는 응용 서비스 또는 용용 프로그램은 실행에 있어서 기밀성이 유지될 수 있다. The
본 발명의 실시 예에서는 후술할 VS 해석기(VS Interpreter: Virtual Service Interpreter, 420) 및 코어 라이브러리(Core Library, 424)를 포함한 가상 머신(420)을 런타임 또는 서비스 가상화 소프트웨어 (Service Virtualization Software)로 지칭한다.In an embodiment of the present invention, a
VS해석기(422)는 응용 서비스 또는 응용 프로그램을 바이트 코드(Bytecode) 행태로 보안 가상화 인터페이스 계층(310)을 통해 수신하고, 이를 해석하여 실제로 수행할 수 있는 가상 머신(420)의 가장 핵심이 되는 서브 기능 블록이다. The
코어 라이브러리(424)는 VS 해석기(422)의 수행에 있어 필수적으로 요구되는 라이브러리 집합을 의미한다. 즉, VS 해석기(422)는 보안 가상화 인터페이스 계층(310)을 통해 수신되는 응용 서비스 또는 응용 프로그램을 코어 라이브러리(424)를 기반으로 해석하여 실제로 수행할 수 있다. 상술 하자면, 상기 VS 해석기(422)는 각 응용 서비스 또는 응용 프로그램의 서비스 인스턴스(326)를 포함하고 있는 개별 가상 머신 프로세스(324)를 도 3에서 언급한 바와 같이 프로세스(322) 상에 로드시킴으로써 각 응용 서비스 또는 응용 프로그램을 실제로 실행시키게 된다.The
가상화 서비스 모니터(330)는 VS 인젝터(414)에 의해 주입된 응용 서비스 또는 응용 프로그램이 SVIF생성기(412)에 의해 발급된 보안 가상화 인터페이스에 따라 권한이 주어진 특정 커널 서비스(432) 또는 하드웨어 자원(450)으로만 네이티브 시스템 콜(Native System Calls)을 발생시키는지를 모니터링할 수 있다.The virtualization service monitor 330 is a
또한, 가상화 서비스 모니터(330)는 임의 시간 동안 필요하다면 특정 응용 서비스 또는 응용 프로그램에 대한 보안 가상화 인터페이스를 캐시된 번역 저장소(430)에 저장하여 관리할 수 있다. 다시 말해서, 가상화 서비스 모니터(330)는 보안 견고화 지침(Security Hardening Guide)으로 기능하는 보안 가상화 인터페이스를 참조하여 응용 서비스 또는 응용 프로그램의 시스템 자원 접근을 제어할 수 있다.In addition, the virtualization service monitor 330 may store and manage a secure virtualization interface for a specific application service or application in the cached
캐시된 번역 저장소(cached Translation Repository, 430)는 자주 사용되는 응용 서비스 또는 응용 프로그램의 보안 가상화 인터페이스를 저장하는 기밀 공간을 의미한다. 가상화 서비스 모니터(330)의 요청이 있을 시, 캐시된 번역 저장소(430)는 적합한 보안 가상화 인터페이스를 반환할 수 있다.
커널 서비스(Kernel Services, 432)는 일반적인 운영체제에서 공통적으로 제공하는 파일 입출력, 네트워크 입출력, 메모리 관리, 프로세스 관리 등의 집합을 의미한다.
운용체제(Operating System, 440)는 윈도우, 리눅스, 안드로이드, 유닉스 등과 같이 통상적으로 시스템 하드웨어를 관리하고, 응용 소프트웨어를 실행하기 위한 시스템 소프트웨어의 공통된 기능이 구현된 논리 집합을 의미한다.
하드웨어 자원(450)은 컴퓨팅 장치의 운용에 필요한 입력 장치, 출력 장치, 저장 장치, 네트워크 장치, 버스 장치, 메모리 장치, 프로세서 장치 등을 포괄하는 개념이다.The
상기에서는 본 발명의 실시 예에서 신뢰할 수 있는 서비스 제공 서버(100)가 서비스 컨테이너를 생성한다고 가정하고 있으므로, 상기와 같은 도 4에서는 보안 가상화 인터페이스 및 가상 머신(420)를 통한 응용 서비스 및 응용 서비스 데이터의 처리 속도를 높이기 위해 보안 가상화 코드 및 응용 서비스 또는 응용 서비스 데이터에 대한 코드 검증(Code Verification) 절차는 수행하지 않는 것으로 전제하였다. 그러나, 서비스 컨테이너 배포 이후 보안 가상화 코드 또는 서비스(서비스 데이터)의 위-변조가 가능할 수 있으므로, 필요에 따라서는 코드 검증 절차를 보안 가상화 인터페이스 계층(310)에 추가하여 운용할 수 있다.In the above embodiment, since the trusted
본 발명의 실시 예에서 언급한 컨테이너 파서(410), SVIF생성기(412), VS 인젝터(414), 가상 머신(420), 가상화 서비스 모니터(330)의 집합을 서비스 가상화 시스템 (Service Virtualization System)로 정의하고, 약식으로 런타임 시스템으로 지칭한다.The set of
또한, 도 4에서는 런타임 시스템이 커널 영역(340) 상단에 위치하는 구조를 가정하였으나, 보다 특수한 목적의 기밀 실행 환경 제공이 필요한 경우 가상 머신(420)가 커널 영역(340) 내부에 구현되어 탑재될 수 있다.In addition, although FIG. 4 assumes a structure in which the runtime system is located at the top of the
상술한 바와 같은 구조를 갖는 서비스 런타임 시스템이 동작하는 과정에 대해 도 5 내지 도 7을 참조하여 설명한다.A process of operating the service runtime system having the above-described structure will be described with reference to FIGS. 5 to 7.
도 5 내지 도 7은 서비스 가상화 시스템이 탑재된 사용자 단말에서 응용 서비스 또는 응용 서비스 데이터를 수신한 이후, 이의 안전하고, 일관되며, 기밀성이 보장되는 실행 또는 소비를 위한 일련의 과정을 도시한 흐름도이다.5 to 7 are flowcharts illustrating a series of processes for safe or consistent execution or consumption thereof after receiving an application service or application service data from a user terminal equipped with a service virtualization system. .
도 5는 본 실시 예에 따라 응용 서비스가 보안 가상화 인터페이스 통해 가상 머신으로 인젝션되기 전까지의 과정을 도시한 흐름도이다. 단, 본 실시 예는 응용 서비스 또는 응용 서비스 데이터를 이용하는 응용 프로그램이 가상 머신에서 실행되는 경우만을 가정하여 도시한 것이며, 네이티브 프로그래밍 언어 또는 규격으로 작성된 응용 서비스 또는 응용 프로그램의 경우에도 본 실시 예에 준하여 수행될 수 있다. 5 is a flowchart illustrating a process before an application service is injected into a virtual machine through a secure virtualization interface according to the present embodiment. However, the present embodiment is illustrated on the assumption that only an application using an application service or application service data is executed in a virtual machine, and in the case of an application service or an application written in a native programming language or standard, Can be performed.
도 5에 도시된 바와 같이, 컨테이너 파서(410)는 신규 응용 서비스, 즉 서비스 컨테이너(110)를 수신하며(S500), 수신한 서비스 컨테이너로부터 메타데이터를 추출한 후 이를 해석하여, 도 2에 도시된 바와 같은 보안 가상화 코드, 서비스(서비스 데이터), 및 추가 정보들을 추출하여 분류(S502)한다. As shown in FIG. 5, the
컨테이너 파서(410)는 보안 가상화 코드 및 관련 정보(메타데이터 및 추가정보 등)를 SVIF생성기(412)에 전달(S504)함과 더불어 서비스(서비스 데이터)를 VS 인젝터(414)에 전달(S506)한다.The
SVIF생성기(412)은 정책 검색 핸들러(402)에게 관련 서비스 정책을 요청하여 수신하고, 서비스 정책과 보안 가상화 코드로부터 보안 가상화 인터페이스를 생성 (S508)한다. 이렇게 생성된 보안 가상화 인터페이스는 VS 인젝터(414)에 전달된다.The
VS 인젝터(414)는 생성된 보안 가상화 인터페이스를 통해서 해당 응용 서비스가 별도의 응용 프로그램이 필요한지 여부를 판단(S510)한다.The VS injector 414 determines whether the corresponding application service requires a separate application through the generated security virtualization interface (S510).
S510의 판단 결과, 응용 서비스가 별도의 응용 프로그램을 필요로 하는 경우, 즉 응용 서비스 데이터를 단말에서 소비하고자 하는 경우 VS 인젝터(414)는 응용 프로그램 검색 핸들러(406)에게 응용 서비스 데이터와 관련된 별도의 프로그램 검색 요청을 의뢰하면, 응용 프로그램 검색 핸들러(406)는 응용 프로그램 데이터베이스(360)에서 해당 응용 프로그램을 검색한 후 이를 VS 인젝터(414)에게 반환(S512)한다.As a result of the determination of S510, when the application service requires a separate application, that is, when the application service data is to be consumed by the terminal, the
VS 인젝터(414)은 상기 과정을 통해 생성된 보안 가상화 인터페이스를 참조하여 응용 서비스 또는 프로그램을 가상 머신(420)에 인젝션하기 위해 보안 가상화 인터페이스 계층 (310)으로 이를 전달한다. 이에 따라, 보안 가상화 인터페이스 계층(310)는 응용 서비스 또는 응용 프로그램을 가상 머신(420)에 인젝션(S514)한다.The VS injector 414 refers to the security virtualization interface generated through the above process and transfers it to the security
한편, 보안 가상화 인터페이스 계층(310)은 수신된 보안 가상화 인터페이스에 대한 코드 검증을 수행하여 보안 가상화 인터페이스의 이상 유무를 판단(S516)한다.Meanwhile, the security
S516의 판단 결과, 보안 가상화 인터페이스에 이상이 없는 경우, 즉 코드 검증이 성공한 경우 가상 머신(420)는 응용 서비스 또는 응용 프로그램의 실행 또는 소비 요청을 수신(S518)한다.As a result of the determination in S516, when there is no error in the security virtualization interface, that is, when the code verification is successful, the
S516의 판단 결과, 보안 가상화 인터페이스에 이상이 있는 경우, 즉 보안 가상화 인터페이스의 코드 검증이 실패한 경우 가상 머신(420)는 응용 서비스 또는 응용 프로그램의 실행-소비 요청을 거절하여 실행을 중단(S520)시킨다. As a result of the determination in S516, when there is an error in the security virtualization interface, that is, when the code verification of the security virtualization interface fails, the
도 6은 본 실시 예에 따라 보안 가상화 코드 및 정책으로부터 인터페이스 규칙 및 접근 제약 규칙을 각각 추출하여 보안 가상화 인터페이스를 생성하는 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of generating a security virtualization interface by extracting an interface rule and an access restriction rule from a security virtualization code and a policy according to the present embodiment.
도 6에 도시된 바와 같이, SVIF생성기(412)는 서비스 정책 및 보안 가상화 코드를 정책 검색 핸들러(402) 및 컨테이너 파서 (410)으로부터 각각 수신한다(S600).As shown in FIG. 6, the
그런 다음, SVIF생성기(412)는 보안 가상화 코드로부터 커널 서비스 또는 하드웨어 자원 인터페이싱 규칙을 추출(S602)하고, 서비스 정책으로부터 커널 서비스 또는 하드웨어 자원 접근 제약 규칙을 획득(S604)한다.Next, the
그리고 나서, SVIF생성기(412)는 먼저 서비스 정책으로부터 추출한 접근 권한 내역을 이해하고, 이를 바탕으로 가상화 코드로부터 추출한 인터페이싱 규칙에서 접근이 허용되는 부분과 그렇지 않는 부분을 구분할 수 있는 가상화 서비스 인터페이싱 명세서, 즉 보안 가상화 인터페이스를 생성한다(S606). Then, the
도 7은 본 실시 예에 따라 응용 서비스가 런타임 진입 이후 커널 서비스 또는 하드웨어 자원 요청 시 네이티브 시스템 콜에 대한 모니터링을 실시하는 과정을 도시한 흐름도이다.7 is a flowchart illustrating a process of performing an application service monitoring for a native system call when a kernel service or a hardware resource is requested after entry into a runtime according to the present embodiment.
도 7에 도시된 바와 같이, VS 인젝터(414)는 응용 서비스 또는 응용 프로그램이 네이티브 프로그래밍 언어 또는 규격으로 작성된 것인지 여부를 판단(S700)한다.As illustrated in FIG. 7, the
S700의 판단 결과, 응용 서비스 또는 응용 프로그램이 네이티브 프로그래밍 언어 또는 규격으로 작성된 것이라면, VS 인젝터(414)는 네이티브 응용 서비스 또는 응용 프로그램을 사용자 모드의 런타임 환경에서 독자적으로 수행될 수 있도록 지원(S702)하며, 네이티브 응용 서비스 또는 응용 프로그램의 요청이 있을 시 네이티브 시스템 콜을 커널 서비스(432)에 전달(S704)한다. If the S700 determines that the application service or application is written in the native programming language or standard, the
S700의 판단 결과, 응용 서비스 또는 응용 프로그램이 네이티브 프로그래밍 언어 또는 규격으로 작성된 것이 아니라면, 가상 머신(420)의 VS 해석기(422)는 응용 서비스 또는 응용 서비스 데이터 수행을 위한 별도의 응용 프로그램을 바이트코드 형태로 수신(S706)한다.If the S700 determines that the application service or application is not written in the native programming language or standard, the
그런 다음, VS 해석기(422)는 응용 서비스 또는 응용 서비스 데이터 수행에 필요한 필수 라이브러리를 코어 라이브러리(424)에 호출하여 사용(S708)한다.Then, the
VS 해석기(422)는 응용 서비스 또는 응용 서비스 데이터 수행 시 커널 서비스(432) 또는 하드웨어 자원(450) 접근이 필요한 경우 네이티브 시스템 콜을 요청(S710)한다.The
가상화 서비스 모니터(330)는 필요 시 보안 가상화 인터페이스를 캐쉬된 번역 저장소(430)에 저장 및 관리(S712)한 후 VS 해석기(422)로부터 발생된 네이티브 시스템 콜의 적합성을 검사(S714)하여 신뢰된 접근인지를 판단(S716)한다.The virtualization service monitor 330 stores and manages the secure virtualization interface in the cached
S716의 판단 결과, 신뢰된 접근으로 판단되면 가상화 서비스 모니터(330)는 네이티브 시스템 콜의 커널 서비스(432) 자원 진입을 허용(S718)하며, 신뢰되지 않은 접근으로 판단되면, 네이티브 시스템 콜의 커널 서비스(432) 자원 진입을 차단하고, 응용 서비스 중단 명령을 상기 VS 해석기(422)에 전달함으로써, 응용 서비스 실행을 중단(S720)한다.If it is determined in S716 that the
상술한 바와 같이, 본 발명의 실시 예에 따르면, 기밀 실행이 요구되는 응용 서비스 또는 기밀 소비가 요구되는 응용 서비스 데이터를 위해 프로세스 및 데이터의 커널 모드로의 진입을 가능하게 하는 보안 가상화 인터페이스 계층을 제공함으로써, 응용 서비스 실행 또는 응용 서비스 데이터 소비의 기밀성을 극대화할 수 있다.As described above, according to an embodiment of the present invention, a security virtualization interface layer is provided to enable the process and data to enter the kernel mode for application services requiring confidential execution or application service data requiring confidential consumption. Thus, the confidentiality of application service execution or application service data consumption can be maximized.
또한, 본 발명의 실시 예에 따르면, 가상화 서비스 모니터를 이용하여 응용 서비스의 실행 또는 응용 서비스 데이터의 소비를 가상화 보안 코드 및 서비스 정책에서 정의한 형태로 프로세스 실행 관점에서 제어함으로써, 무분별한 커널 서비스 또는 하드웨어 자원으로의 접근을 방지할 수 있다. In addition, according to an embodiment of the present invention, by using the virtualization service monitor to control the execution of the application service or the consumption of the application service data in the form of the process execution in the form defined in the virtualization security code and service policy, indiscriminate kernel service or hardware resources To prevent access.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성 요소 등을 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. For example, those skilled in the art can change each component, etc. according to the application field, or combine or substitute the disclosed embodiment in the form which is not expressly disclosed in the Example of this invention, This also limits the scope of this invention. It does not escape. Therefore, it should be understood that the above-described embodiments are to be considered in all respects as illustrative and not restrictive, and that these modified embodiments are included in the technical idea described in the claims of the present invention.
100 : 서비스 제공 서버 110 : 서비스 컨테이너
120 : IP 네트워크 130 : 사용자 단말
140 : 정책 발급 서버 300 : 사용자 영역
310 : 보안 가상화 인터페이스 계층 320 : 서비스 가상화 소프트웨어
330 : 가상화 서비스 모니터 340 : 커널 영역
400 : 인플로우 이벤트 핸들러 402 : 정책 검색 핸들러
404 : 응용 프로그램 데이터베이스 406 : 응용프로그램 검색 핸들러
408 : 아웃플로우 이벤트 핸들러 410 : 컨테이너 파서
412 : SVIF 생성기 414 : VS 인젝터
420 : 가상 머신 422 : VS 해석기
424 : 코어 라이브러리 430 : 캐시된 번역 저장소
432 : 커널 서비스 440 : 운영체제
450 : 하드웨어 자원100: service providing server 110: service container
120: IP network 130: user terminal
140: policy issuing server 300: user area
310: secure virtualization interface layer 320: service virtualization software
330: virtualization service monitor 340: kernel area
400: Inflow Event Handler 402: Policy Search Handler
404: Application database 406: Application search handler
408: outflow event handler 410: container parser
412
420: virtual machine 422: VS interpreter
432
450: hardware resources
Claims (19)
서비스 제공 서버로부터 가상화 보안 코드를 포함하는 서비스 컨테이너를 수신하면, 상기 서비스 컨테이너에서 가상화 보안 코드와 응용 서비스를 분리하는 컨테이너 파서와,
상기 용용 서비스와 관련된 서비스 정책을 정책 발급 서버에 요청하여 수신하며, 상기 가상화 보안 코드와 상기 서비스 정책을 이용하여 보안 가상화 인터페이스를 생성하는 보안 가상화 인터페이스 생성기와,
상기 보안 가상화 인터페이스에 기술된 규칙에 따라 상기 응용 서비스를 상기 보안 가상화 인터페이스 계층을 통해 가상 머신에 적재하는 가상화 서비스 인젝터를 구비하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.A security virtualization interface layer that connects a user domain and a kernel domain, and enables an application service received through the user domain to use kernel services and hardware resources under the kernel domain;
Receiving a service container including a virtualization security code from a service providing server, the container parser separating the virtualization security code and an application service from the service container;
A security virtualization interface generator for requesting and receiving a service policy related to the service for use by a policy issuing server, and generating a security virtualization interface using the virtualization security code and the service policy;
And a virtualization service injector for loading the application service into the virtual machine through the secure virtualization interface layer according to the rules described in the secure virtualization interface.
Device that provides runtime for running application service confidentiality.
상기 서비스 제공 서버로부터 상기 서비스 컨테이너를 수신하여 상기 컨테이너 파서에 제공하는 인플로우 이벤트 핸들러와,
상기 보안 가상화 인터페이스 생성기의 요청에 따라 상기 정책 발급 서버에 접속하여 서비스 정책을 수신하여 상기 보안 가상화 인터페이스 생성기에 제공하는 정책 검색 핸들러와,
상기 응용 서비스를 실행 또는 소비하기 위한 별도의 응용 프로그램이 요구될 경우 응용 프로그램 데이터베이스에서 검색을 수행하여 상기 별도의 응용 프로그램을 추출하는 응용 프로그램 검색 핸들러를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
An inflow event handler for receiving the service container from the service providing server and providing the service container to the container parser;
A policy search handler for accessing the policy issuing server to receive a service policy and providing the service policy to the security virtualization interface generator according to a request of the security virtualization interface generator;
And an application search handler for extracting the separate application by performing a search in an application database when a separate application for executing or consuming the application service is required.
Device that provides runtime for running application service confidentiality.
상기 보안 가상화 인터페이스 생성기는,
상기 보안 가상화 코드를 이용하여 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 상기 보안 가상화 인터페이스 계층을 통해 상기 커널 영역의 커널 서비스 및 하드웨어 자원에 접속하는 인터페이스 규칙을 추출하며, 상기 서비스 정책으로부터 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 접속을 제어하는 제약 규칙을 추출한 후 상기 추출된 인터페이스 규칙 및 상기 제약 규칙을 이용하여 상기 보안 가상화 인터페이스를 생성하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
The secure virtualization interface generator,
By using the security virtualization code, the application service or a specific application program consuming the same extracts an interface rule for accessing a kernel service and a hardware resource of the kernel region through the security virtualization interface layer, and from the service policy, the application service. Or after extracting a constraint rule for controlling a connection of a specific application program consuming the same, generating the security virtualization interface using the extracted interface rule and the constraint rule.
Device that provides runtime for running application service confidentiality.
상기 가상화 서비스 인젝터는,
상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 운영체제 또는 하드웨어 규격이 지원하는 네이티브 프로그래밍 언어 (Native Programming Language) 또는 규격으로 제작된 경우, 상기 보안 가상화 인터페이스 계층을 통해 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 상기 커널 서비스로 전달하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
The virtualization service injector,
When the application service or a specific application consuming the same is produced in a native programming language or standard supported by an operating system or a hardware standard, the application service or the specific application consuming the same through the secure virtualization interface layer. To deliver to the kernel service
Device that provides runtime for running application service confidentiality.
상기 가상 머신은,
상기 보안 가상화 인터페이스 계층을 통해 수신되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 해석에 필요한 라이브러리가 저장되어 있는 코어 라이브러리와,
상기 보안 가상화 인터페이스 계층을 통해 수신되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 상기 코어 라이브러리를 기반으로 해석하는 가상화 서비스 해석기를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
The virtual machine includes:
A core library storing a library required for interpretation of the application service received through the secure virtualization interface layer or a specific application consuming the same;
And a virtualization service interpreter that interprets the application service received through the secure virtualization interface layer or a specific application consuming the same based on the core library.
Device that provides runtime for running application service confidentiality.
상기 가상화 서비스 인젝터는,
상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 운영체제 또는 하드웨어 규격이 지원하는 네이티브 프로그래밍 언어 (Native Programming Language) 또는 규격으로 제작되지 않은 경우, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램을 바이트코드 형태로 변환한 후 이를 상기 가상화 서비스 해석기로 전달하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 5, wherein
The virtualization service injector,
If the application service or a specific application consuming the same is not produced in a native programming language or standard supported by an operating system or a hardware standard, converting the application service or the specific application consuming the same into bytecode form. And then forwarding it to the virtualization service interpreter.
Device that provides runtime for running application service confidentiality.
상기 가상화 서비스 해석기는, 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 실행 시 상기 커널 서비스 또는 하드웨어 자원 접근이 필요한 경우 상기 네이티브 시스템 콜을 생성하여 상기 커널 영역에 전달하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 5, wherein
The virtualization service analyzer may generate the native system call and deliver the generated native system call to the kernel region when the kernel service or hardware resource access is required when executing the application service or a specific application program consuming the application service.
Device that provides runtime for running application service confidentiality.
상기 커널 영역은,
상기 가상화 서비스 해석기로부터 전달받은 네이티브 시스템 콜의 적합성여부를 검사하여 신뢰된 접근인지를 판단하며, 상기 판단 결과에 따라 상기 네이티브 시스템 콜의 상기 커널 서비스 또는 하드웨어 자원 접근을 허용하거나 차단하는 가상화 서비스 모니터를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 7, wherein
The kernel region is,
A virtualization service monitor that checks whether the native system call received from the virtualization service interpreter is a trusted access, and permits or blocks access to the kernel service or hardware resource of the native system call according to the determination result Characterized in that it comprises
Device that provides runtime for running application service confidentiality.
상기 커널 영역은,
상기 보안 가상화 인터페이스 생성기에 의해 생성된 상기 응용 서비스에 대한 보안 가상화 인터페이스를 저장하기 위한 캐시된 번역 저장소를 더 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 8,
The kernel region is,
And a cached translation store for storing a secure virtualization interface for the application service generated by the secure virtualization interface generator.
Device that provides runtime for running application service confidentiality.
상기 커널 영역은,
상기 보안 가상화 인터페이스 계층을 통해 주입되는 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 상기 보안 가상화 인터페이스 생성기에 의해 생성된 보안 가상화 인터페이스에 따라 권한이 주어진 특정 커널 서비스 또는 하드웨어 자원으로만 네이티브 시스템 콜을 발생시키는지를 모니터링하는 가상화 서비스 모니터를 더 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
The kernel region is,
The application service injected through the secure virtualization interface layer or a specific application consuming it generates a native system call only to a specific kernel service or hardware resource authorized according to the secure virtualization interface generated by the secure virtualization interface generator. Further comprising a virtualization service monitor for monitoring whether
Device that provides runtime for running application service confidentiality.
상기 커널 영역은,
특정 응용 서비스 또는 응용 프로그램의 보안 가상화 인터페이스를 저장하는 캐시된 번역 저장소와,
상기 캐시된 번역 저장소에 저장된 보안 가상화 인터페이스를 기반으로 상기 응용 서비스 또는 이를 소비하기 위한 응용 프로그램의 커널 서비스 또는 하드웨어 자원 접근을 제어하는 가상화 서비스 모니터를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
The kernel region is,
A cached translation store that stores a secure virtualization interface for a specific application service or application,
And a virtualization service monitor controlling access to a kernel service or a hardware resource of the application service or an application program for consuming the application based on a secure virtualization interface stored in the cached translation store.
Device that provides runtime for running application service confidentiality.
상기 응용 서비스 또는 이를 소비하기 위한 응용 프로그램의 실행 결과가 하드웨어 자원을 통해 출력되도록 처리하는 아웃플로우 이벤트 핸들러를 더 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 장치.The method of claim 1,
And an outflow event handler that processes an execution result of the application service or an application program for consuming the same to be output through a hardware resource.
Device that provides runtime for running application service confidentiality.
상기 서비스 컨테이너에서 가상화 보안 코드와 응용 서비스를 분리하는 단계와,
상기 용용 서비스와 관련된 서비스 정책을 정책 발급 서버에 요청하여 수신하는 단계와,
상기 가상화 보안 코드와 상기 서비스 정책을 기반으로 보안 가상화 인터페이스를 생성하는 단계와,
상기 보안 가상화 인터페이스에 기술된 규칙에 따라 상기 응용 서비스를 보안 가상화 인터페이스 계층을 통해 가상 머신에 적재하는 단계를 포함하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.Receiving a service container including a virtualization security code from an external service provision server;
Separating the virtualized security code and the application service from the service container;
Requesting and receiving a service policy related to the service provided to a policy issuing server;
Generating a secure virtualization interface based on the virtualization security code and the service policy;
Loading the application service into a virtual machine via a secure virtualization interface layer according to the rules described in the secure virtualization interface;
How to provide a runtime for running application service confidentiality.
상기 생성된 보안 가상화 인터페이스를 통해서 해당 응용 서비스가 별도의 응용 프로그램이 필요한지를 판단하는 단계와,
상기 판단 결과, 상기 별도의 응용 프로그램이 필요한 경우 상기 별도의 응용 프로그램을 응용 프로그램 데이터베이스에서 검색하여 획득하는 단계를 더 포함하며,
상기 적재하는 단계는, 상기 획득한 응용 프로그램 또는 응용 서비스를 상기 가상 머신에 적재하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법. The method of claim 13,
Determining whether the application service requires a separate application through the generated security virtualization interface;
In response to the determination, if the separate application is required, the method may further include searching for and obtaining the separate application from an application database.
The loading may include loading the obtained application program or application service on the virtual machine.
How to provide a runtime for running application service confidentiality.
상기 보안 가상화 인터페이스를 생성하는 단계는,
상기 보안 가상화 코드를 이용하여 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램이 상기 보안 가상화 인터페이스 계층을 통해 상기 커널 영역의 커널 서비스 및 하드웨어 자원에 접속하는 인터페이스 규칙을 추출하는 단계와,
상기 서비스 정책으로부터 상기 응용 서비스 또는 이를 소비하는 특정 응용 프로그램의 접속을 제어하는 제약 규칙을 추출하는 단계와,
상기 추출된 인터페이스 규칙 및 상기 제약 규칙을 이용하여 상기 보안 가상화 인터페이스를 생성하는 단계를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.The method of claim 13,
Generating the secure virtualization interface,
Extracting an interface rule for accessing a kernel service and a hardware resource of the kernel region through the secure virtualization interface layer by the secured virtualization interface layer using the secure virtualization code;
Extracting a constraint rule from the service policy to control access of the application service or a specific application program consuming the application service;
Generating the secure virtualization interface by using the extracted interface rule and the constraint rule.
How to provide a runtime for running application service confidentiality.
상기 적재하는 단계는,
상기 보안 가상화 인터페이스에 대한 코드 검증을 수행하여 보안 가상화 인터페이스의 이상 유무를 판단하는 단계와,
상기 보안 가상화 인터페이스에 이상이 없는 경우 상기 응용 서비스 또는이를 소비하는 응용 프로그램을 상기 가상 머신에 적재하는 단계와,
상기 보안 가상화 인터페이스에 이상이 있는 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램의 실행을 중단시키는 단계를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.The method of claim 13,
The loading step,
Performing code verification on the security virtualization interface to determine whether there is an abnormality of the security virtualization interface;
Loading the application service or an application consuming the application into the virtual machine when the secure virtualization interface is intact;
Stopping the execution of the application service or the application program consuming the abnormality in the security virtualization interface.
How to provide a runtime for running application service confidentiality.
상기 적재하는 단계는,
상기 응용 서비스 또는 이를 소비하는 응용 프로그램이 네이티브 프로그래밍 언어 또는 규격으로 작성되어 있는지를 판단하는 단계와,
상기 판단 결과, 네이티브 프로그래밍 언어 또는 규격으로 작성된 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램에 대한 네이티브 시스템 콜을 커널 영역에 전달하는 단계와,
상기 판단 결과, 네이티브 프로그래밍 언어 또는 규격으로 작성되지 않은 경우 상기 응용 서비스 또는 이를 소비하는 응용 프로그램을 바이트코드 형태로 변환하여 상기 가상 머신을 통해 상기 커널 영역에 전달하는 단계를 포함하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.The method of claim 13,
The loading step,
Determining whether the application service or the application program consuming the application service is written in a native programming language or standard;
As a result of the determination, when a native programming language or standard is written, delivering a native system call for the application service or an application consuming the same to a kernel region;
If it is not written in a native programming language or standard, converting the application service or an application program consuming the same into a bytecode form and delivering the same to a kernel region through the virtual machine;
How to provide a runtime for running application service confidentiality.
상기 가상 머신을 통해 상기 커널 영역에 상기 응용 서비스 또는 이를 소비하는 응용 프로그램에 대한 네이티브 시스템 콜을 전달하는 단계는,
상기 바이트 코드 형태의 응용 서비스 또는 이를 소비하는 응용 프로그램을 기 저장된 코어 라이브러리를 기반으로 해석하는 단계와,
상기 응용 서비스 또는 이를 소비하는 응용 프로그램 실행 시 커널 서비스 또는 하드웨어 자원 접근이 필요한 경우 상기 커널 영역에 네이티브 시스템 콜을 요청하는 단계를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.The method of claim 17,
Delivering a native system call for the application service or an application consuming the same to the kernel region through the virtual machine,
Interpreting the application service in the form of byte code or an application consuming the same based on a pre-stored core library;
Requesting a native system call to the kernel region when accessing a kernel service or a hardware resource is required when executing the application service or the application program consuming the application service.
How to provide a runtime for running application service confidentiality.
상기 네이티브 시스템 콜을 수신한 상기 커널 영역에서 상기 네이티브 시스템 콜의 적합성 검사를 통해 신뢰된 접근인지를 판단하는 단계와,
상기 신뢰된 접근인 경우에만 상기 네이티브 시스템 콜의 상기 커널 서비스 또는 하드웨어 자원 진입을 허용하는 단계를 포함하는 것을 특징으로 하는
응용 서비스 기밀 실행을 위한 런타임 제공 방법.The method of claim 18,
Determining whether it is a trusted access by checking suitability of the native system call in the kernel region that receives the native system call;
Allowing the native system call to enter the kernel service or hardware resource only in the case of the trusted access.
How to provide a runtime for running application service confidentiality.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120001957A KR20130093804A (en) | 2012-01-06 | 2012-01-06 | Apparatus and method for secure and consistent runtime based confidential execution of application services |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120001957A KR20130093804A (en) | 2012-01-06 | 2012-01-06 | Apparatus and method for secure and consistent runtime based confidential execution of application services |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130093804A true KR20130093804A (en) | 2013-08-23 |
Family
ID=49217838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120001957A KR20130093804A (en) | 2012-01-06 | 2012-01-06 | Apparatus and method for secure and consistent runtime based confidential execution of application services |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20130093804A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796909A (en) * | 2020-06-24 | 2020-10-20 | 浙江大学 | Lightweight mobile application virtualization system |
-
2012
- 2012-01-06 KR KR1020120001957A patent/KR20130093804A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796909A (en) * | 2020-06-24 | 2020-10-20 | 浙江大学 | Lightweight mobile application virtualization system |
CN111796909B (en) * | 2020-06-24 | 2024-04-02 | 浙江大学 | Lightweight mobile application virtualization system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Smalley et al. | Security enhanced (se) android: bringing flexible mac to android. | |
Sirer et al. | Logical attestation: An authorization architecture for trustworthy computing | |
US5841870A (en) | Dynamic classes of service for an international cryptography framework | |
US10496824B2 (en) | Trusted language runtime on a mobile platform | |
Arden et al. | Sharing mobile code securely with information flow control | |
Hunt et al. | Confidential computing for OpenPOWER | |
KR102275827B1 (en) | Method and apparatus for data encryption | |
CN110874468B (en) | Application program security protection method and related equipment | |
Singh et al. | Analysis of malicious behavior of android apps | |
KR101665894B1 (en) | Mandatory protection control in virtual machines | |
WO2017016231A1 (en) | Policy management method, system and computer storage medium | |
Zegzhda et al. | Use of Intel SGX to ensure the confidentiality of data of cloud users | |
Brasser et al. | Trusted container extensions for container-based confidential computing | |
Hua et al. | TZ-container: Protecting container from untrusted OS with ARM TrustZone | |
Moshchuk et al. | Content-based isolation: rethinking isolation policy design on client systems | |
CN110597496B (en) | Method and device for acquiring bytecode file of application program | |
Bousquet et al. | Mandatory access control for the android dalvik virtual machine | |
Koved et al. | The evolution of Java security | |
KR20130093804A (en) | Apparatus and method for secure and consistent runtime based confidential execution of application services | |
Buchner et al. | Survey on trusted execution environments | |
Watson | New approaches to operating system security extensibility | |
Nazar et al. | Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service | |
Fong | Viewer's discretion: Host security in mobile code systems | |
Zhu et al. | Investigating TrustZone: A Comprehensive Analysis | |
Iannillo et al. | An REE-independent Approach to Identify Callers of TEEs in TrustZone-enabled Cortex-M Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |