KR101049916B1 - Virtualization Security System and Methods - Google Patents
Virtualization Security System and Methods Download PDFInfo
- Publication number
- KR101049916B1 KR101049916B1 KR1020090109139A KR20090109139A KR101049916B1 KR 101049916 B1 KR101049916 B1 KR 101049916B1 KR 1020090109139 A KR1020090109139 A KR 1020090109139A KR 20090109139 A KR20090109139 A KR 20090109139A KR 101049916 B1 KR101049916 B1 KR 101049916B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual
- database
- virtualization
- stored
- resource
- Prior art date
Links
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
프로세스를 가상화하여, 실제 프로세스와 격리되도록 함으로써, 사용 중 악성 코드 등에 의한 감염을 방지하여 보안을 유지할 수 있도록 하는 시스템 및 방법이 제공된다. 본 발명은 가상화 보안 시스템에 관한 것으로, 운영체제에서 제공하는 실제 자원(resource)과 구별되는 가상 자원을 제공하고, 가상 프로세스를 구동시킨 뒤 이를 가상 프로세스 데이터베이스에 저장하여 관리하면서, 가상 프로세스에서 자원을 요청하는 경우 상기 가상 자원을 이용하도록 제어함으로써, 가상 프로세스와 실제 프로세스를 격리하여 시스템의 보안을 유지할 수 있도록 하는 시스템 및 방법에 관한 것이다.A system and method are provided to virtualize a process so that it is isolated from an actual process, thereby preventing infection by malicious code during use and maintaining security. The present invention relates to a virtualization security system, and provides a virtual resource that is distinguished from the actual resources (resource) provided by the operating system, running the virtual process and storing it in a virtual process database, while managing the request, the virtual resource The present invention relates to a system and a method for maintaining security of a system by isolating a virtual process and a real process by controlling to use the virtual resource.
보안, 가상, 가상화, 가상 자원, 가상 프로세스 Security, Virtualization, Virtualization, Virtual Resources, Virtual Processes
Description
본 발명은 컴퓨터 시스템에서 악성 코드 감염 등을 방지하고 보안을 유지할 수 있도록 하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for preventing malicious code infection and maintaining security in a computer system.
최근 인터넷 환경이 발달하면서 바이러스 등의 악성 코드의 전파가 활발해지고, 이에 의한 피해가 늘어남에 따라 보안 문제에 대한 관심이 높아지고 있다. 바이러스 등의 악성 코드는 프로세스, 파일 시스템, 레지스트리 등에 감염되어 개인 정보를 유출시키거나 시스템을 파괴하고, 다른 시스템에 대한 DDOS 공격 등을 수행하도록 하는 것이다.Recently, with the development of the Internet environment, the propagation of malicious codes such as viruses is active, and as the damage is increased, interest in security issues is increasing. Malware, such as viruses, infects processes, file systems, and registries to leak personal information, destroy systems, and perform DDOS attacks on other systems.
도 1은 종래 기술에 따른 악성 코드의 전염 과정을 도시하는 도면이다.1 is a diagram illustrating a process of transmitting malicious code according to the prior art.
도면에 도시한 바와 같이, 기존의 컴퓨터 시스템(101)에서는 웹 브라우저(110)를 통하여 웹 사이트(102)에 접속하였을 때, 웹 사이트에서 악성 코드(150)가 웹 브라우저(110)를 감염시키게 되고, 웹 브라우저(110)에 복사된 악성 코드(151)는 웹 브라우저와 데이터를 주고 받을 수 있는 다른 프로세스(120)에 복사 되어 다른 프로세스(120)를 감염시키거나, 파일시스템(130) 및 레지스트리(140)를 감염시킴으로써, 웹 브라우저(110)뿐 아니라 다른 다양한 기능들에까지 영향을 미치게 된다.As shown in the drawing, in the conventional computer system 101, when accessing the web site 102 through the
이와 같이 악성 코드에 감염되게 되면 악성 코드에 처음 접근한 웹 브라우저(110) 등의 프로그램을 통해 다른 모든 프로세스 및 자원들도 악성 코드에 오염되게 되므로, 이를 복구하기가 어렵고, 중요한 시스템 자원이 감염되는 경우 중요 데이터가 손실되거나, 시스템 자체가 파괴되는 등의 커다란 문제가 발생할 수 있다.As such, when infected with malicious code, all other processes and resources are also contaminated with malicious code through a program such as a
특히 PC방에서와 같이 하나의 컴퓨터 시스템을 복수의 사용자들이 이용하는 경우에는 타인의 사용으로 인하여 감염된 악성 코드에 의해서 시스템이 손상되거나, 중요한 개인정보가 유출되는 등의 문제가 발생할 수 있는 가능성이 매우 높다.In particular, when a single computer system is used by a plurality of users, such as in a PC room, it is very likely that problems may occur due to the use of other people, such as damage to the system or leakage of important personal information. .
따라서, 컴퓨터 시스템이 악성 코드에 노출되는 경우에도 시스템에서 중요한 부분들까지 감염되는 것을 방지하고, 감염 이전의 상태로 간단하게 복구할 수 있도록 하는 시스템 및 방법이 요구된다.Therefore, there is a need for a system and method that prevents infection of critical parts of the system even when the computer system is exposed to malicious code, and enables a simple recovery to a state before infection.
본 발명은 악성 코드의 감염 등 보안상 문제를 방지할 수 있도록 하는 가상화 보안 시스템 및 방법을 제공할 수 있다.The present invention can provide a virtualization security system and method for preventing a security problem such as infection of malicious code.
본 발명은 컴퓨터 시스템을 가상 영역과 실제 영역으로 구분하여 두 영역을 서로 차단함으로써, 가상 영역에서 보안상 문제가 발생하더라도 실제 영역에 영향을 주지 않도록 하는 가상화 보안 시스템 및 방법을 제공할 수 있다.The present invention can provide a virtualization security system and method by dividing a computer system into a virtual area and a real area so as to block two areas from each other, so that a security problem in the virtual area does not affect the real area.
본 발명은 미리 등록된 프로그램에 대해서만 가상 프로세스로 구동할 수 있도록 함으로써, 보다 안전하게 시스템을 관리할 수 있도록 하는 가상화 보안 시스템 및 방법을 제공할 수 있다.The present invention can provide a virtualization security system and method for managing a system more securely by allowing only a pre-registered program to run as a virtual process.
본 발명은 가상 프로세스가 실제 프로세스와 IPC를 수행할 수 없도록 방지함으로써, 가상 프로세스가 악성 코드에 감염되더라도 이것이 실제 프로세스에 전염되지 않도록 하는 가상화 보안 시스템 및 방법을 제공할 수 있다.The present invention can provide a virtualization security system and method by preventing a virtual process from performing an IPC with a real process, so that even if the virtual process is infected with malicious code, it is not transmitted to the real process.
본 발명은 가상 파일 시스템을 제공하고, 가상 프로세스의 데이터를 암호화하여 가상 파일 시스템에 저장하도록 함으로써, 실제 영역에서는 가상 영역에서 작성된 데이터에 접근할 수 없도록 하는 가상화 보안 시스템 및 방법을 제공할 수 있다.The present invention provides a virtual file system, and by encrypting the data of the virtual process to be stored in the virtual file system, it is possible to provide a virtualization security system and method that makes the data created in the virtual area inaccessible.
본 발명의 일실시예에 따른 가상화 보안 시스템은 컴퓨터의 운영체제에서 제공하는 실제 자원(resource)과 구별되며, 가상 프로세스(virtual process) 동작에 필요한 자원을 제공하는 가상 자원, 실행중인 가상 프로세스의 목록을 저장하는 가상 프로세스 데이터베이스, 가상 프로세스를 구동시키고 상기 구동된 가상 프로세스에 대한 정보를 상기 가상 프로세스 데이터베이스에 저장하는 가상화 에이전트 및 상기 가상 프로세스 데이터베이스에 저장된 프로세스들이 상기 실제 자원에 접근하지 못하고, 상기 가상 자원만을 이용할 수 있도록 제어하는 가상화 엔진을 포함하여 구성될 수 있다.The virtualization security system according to an embodiment of the present invention is distinguished from actual resources provided by an operating system of a computer, and provides a list of virtual resources and running virtual processes that provide resources necessary for the operation of a virtual process. The virtual process database for storing, the virtualization agent for driving the virtual process and stores information about the driven virtual process in the virtual process database and the processes stored in the virtual process database do not have access to the real resource, only the virtual resource It can be configured to include a virtualization engine that controls its availability.
이 때, 상기 가상화 보안 시스템은 가상 프로세스로 구동될 수 있는 프로그램의 목록을 저장하는 가상화 프로그램 목록 데이터베이스를 더 포함하고, 상기 가상화 에이전트는 상기 가상화 프로그램 목록 데이터베이스에 저장되어 있는 가상 프로세스로 구동될 수 있는 프로그램만을 상기 가상 프로세스로 구동시키도록 구성될 수 있다.At this time, the virtualization security system further includes a virtualization program list database that stores a list of programs that can be run as a virtual process, the virtualization agent may be driven by a virtual process stored in the virtualization program list database Only programs can be configured to run in the virtual process.
이 때, 상기 가상화 프로그램 목록 데이터베이스는 상기 가상 프로세스로 구동될 수 있는 프로그램에 대응하여 상기 프로그램 파일이 저장되어 있는 위치 정보를 저장할 수 있다.In this case, the virtualization program list database may store location information in which the program file is stored, corresponding to a program that can be driven by the virtual process.
또한, 상기 가상화 에이전트는 상기 컴퓨터에서 새로운 프로세스가 구동되면, 상기 구동된 프로세스의 부모 프로세스(parent process)가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하고, 상기 부모 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있으면, 상기 구동된 새로운 프로세스도 상기 가상 프로세스 데이터베이스에 저장할 수 있다.In addition, when a new process is started in the computer, the virtualization agent checks whether a parent process of the driven process is stored in the virtual process database, and the parent process is stored in the virtual process database. If so, the started new process can be stored in the virtual process database.
또한, 상기 가상화 엔진은 상기 컴퓨터에서 구동되는 프로세스의 자원 요청을 확인하고 상기 자원을 요청한 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하여, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 자원을 요청한 프로세스에게 상기 가상 자원을 제공하고, 그렇지 않은 경우에는 상기 자원을 요청한 프로세스에게 상기 실제 자원을 제공할 수 있다.In addition, the virtualization engine checks a resource request of a process running in the computer and checks whether the process requesting the resource is stored in the virtual process database, and if the resource is stored in the virtual process database, The virtual resource may be provided to the requesting process, or the actual resource may be provided to the process requesting the resource.
그리고, 상기 가상 자원은 상기 컴퓨터의 파일 시스템에 가상 디스크 이미지 파일 형태로 저장되어 상기 가상화 엔진의 제어에 따라 데이터를 읽고 기록하는 가상 파일 시스템을 포함하여 구성될 수 있다.The virtual resource may be configured to include a virtual file system stored in a file system of the computer in the form of a virtual disk image file to read and write data under the control of the virtualization engine.
이 때, 상기 가상화 엔진은 상기 가상 파일 시스템에 데이터를 기록할 때에는 상기 데이터를 암호화 하여 기록하고, 상기 가상 파일 시스템에서 데이터를 읽을 때에는 상기 읽은 데이터를 복호화할 수 있다.At this time, the virtualization engine encrypts and records the data when writing data to the virtual file system, and decrypts the read data when reading data from the virtual file system.
또한, 상기 가상 자원은 가상 레지스트리를 포함할 수 있다.In addition, the virtual resource may include a virtual registry.
또한, 상기 가상화 보안 시스템은 상기 가상 프로세스에 COM (Component Object Model) 객체를 제공하는 가상 COM 서버를 더 포함하고, 상기 가상화 엔진은 상기 컴퓨터에서 구동되는 프로세스에서 COM 서버를 찾는 경우 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하여, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 가상 COM 서버의 포트(port)를 상기 프로세스에 알려주고, 그렇지 않은 경우에는 운영체제의 COM 서버의 포트를 상기 프로세스에 알려줄 수 있다.The virtualization security system may further include a virtual COM server that provides a COM (Component Object Model) object to the virtual process, and the virtualization engine searches for the COM server in a process running on the computer. It checks whether or not it is stored in the process database, and informs the process of the port of the virtual COM server if it is stored in the virtual process database. I can tell you.
또한, 상기 가상화 엔진은 상기 컴퓨터에서 구동되는 프로세스가 윈도우 핸들 목록 데이터베이스로부터 윈도우 핸들 목록을 검색하는 경우, 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하여, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 가상 프로세스들의 윈도우 핸들 목록을 전달하고, 그렇지 않은 경우에는 가상 프로세스가 아닌 프로세스들의 윈도우 핸들 목록을 전달할 수 있다.In addition, when the process running on the computer retrieves the window handle list from the window handle list database, the virtualization engine checks whether the process is stored in the virtual process database, and is stored in the virtual process database. In this case, the window handle list of the virtual processes may be transferred. Otherwise, the window handle list of the non-virtual processes may be transferred.
또한, 상기 가상화 엔진은 상기 컴퓨터에서 구동되는 프로세스가 전역 훅 DLL 목록 데이터베이스로부터 DLL을 검색하는 경우, 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하여, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 가상 프로세스에서 입력한 DLL만을 제공하고, 그렇지 않은 경우에는 가상 프로세스가 아닌 프로세스들에서 입력한 DLL만을 전달할 수 있다.In addition, when the process running on the computer searches for a DLL from a global hook DLL list database, the virtualization engine checks whether the process is stored in the virtual process database, and if the process is stored in the virtual process database. Only DLLs input by the virtual process are provided, otherwise only DLLs input by processes other than the virtual process can be delivered.
본 발명의 일실시예에 따른 가상화 보안 방법은 컴퓨터의 운영체제에서 제공하는 실제 자원(resource)과 구별되며, 가상 프로세스(virtual process) 동작에 필요한 가상 자원을 설정하는 단계, 가상 프로세스를 구동시키는 단계, 상기 구동된 가상 프로세스에 대한 정보를 상기 가상 프로세스 데이터베이스에 저장하는 단계 및 상기 가상 프로세스 데이터베이스에 저장된 프로세스들이 상기 실제 자원에 접근하지 못하고, 상기 가상 자원만을 이용할 수 있도록 제어하는 단계를 포함하여 구성될 수 있다.The virtualization security method according to an embodiment of the present invention is distinguished from actual resources provided by an operating system of a computer, setting a virtual resource required for a virtual process operation, driving a virtual process, And storing information about the driven virtual process in the virtual process database and controlling the processes stored in the virtual process database to use only the virtual resource without accessing the real resource. have.
이 때, 상기 가상화 보안 방법은 가상 프로세스로 구동될 수 있는 프로그 램의 목록을 가상화 프로그램 목록 데이터베이스에 저장하는 단계를 더 포함하고, 상기 가상 프로세스를 구동시키는 단계는 상기 가상화 프로그램 목록 데이터베이스에 저장되어 있는 가상 프로세스로 구동될 수 있는 프로그램만을 상기 가상 프로세스로 구동시킬 수 있다.At this time, the virtualization security method further comprises the step of storing a list of programs that can be run as a virtual process in the virtualization program list database, the step of running the virtual process is stored in the virtualization program list database Only a program that can be driven by a virtual process can be driven by the virtual process.
이 때, 상기 가상화 프로그램 목록 데이터베이스는 상기 가상 프로세스로 구동될 수 있는 프로그램에 대응하여 상기 프로그램 파일이 저장되어 있는 위치 정보를 저장할 수 있다.In this case, the virtualization program list database may store location information in which the program file is stored, corresponding to a program that can be driven by the virtual process.
또한, 상기 구동된 가상 프로세스에 대한 정보를 저장하는 단계는 상기 컴퓨터에서 새로운 프로세스가 구동되면, 상기 구동된 프로세스의 부모 프로세스(parent process)가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하고, 상기 부모 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있으면, 상기 구동된 새로운 프로세스도 상기 가상 프로세스 데이터베이스에 저장할 수 있다.The storing of the information on the driven virtual process may include checking whether a parent process of the driven process is stored in the virtual process database when a new process is started in the computer. If a parent process is stored in the virtual process database, the started new process may also be stored in the virtual process database.
또한, 상기 제어하는 단계는 상기 컴퓨터에서 구동되는 프로세스의 자원 요청을 확인하는 단계, 상기 자원을 요청한 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하는 단계, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 자원을 요청한 프로세스에게 상기 가상 자원을 제공하는 단계 및 상기 가상 프로세스 데이터베이스에 저장되어 있지 않은 경우에는 상기 자원을 요청한 프로세스에게 상기 실제 자원을 제공하는 단계를 포함하여 구성될 수 있다.In addition, the controlling may include checking a resource request of a process running on the computer, checking whether the process requesting the resource is stored in the virtual process database, or when storing in the virtual process database. The method may include providing the virtual resource to the process requesting the resource, and providing the actual resource to the process requesting the resource if it is not stored in the virtual process database.
또한, 상기 가상 자원은 상기 컴퓨터의 파일 시스템에 가상 디스크 이미지 파일 형태로 저장되어 상기 가상 프로세스의 데이터를 읽고 기록하는 가상 파일 시스템을 포함할 수 있다.The virtual resource may include a virtual file system stored in a file system of the computer in the form of a virtual disk image file to read and write data of the virtual process.
이 때, 상기 제어하는 단계는 상기 가상 파일 시스템에 데이터를 기록할 때에는 상기 데이터를 암호화 하여 기록하고, 상기 가상 파일 시스템에서 데이터를 읽을 때에는 상기 읽은 데이터를 복호화할 수 있다.In this case, the controlling may encrypt and record the data when recording the data in the virtual file system, and decrypt the read data when reading the data in the virtual file system.
또한, 상기 가상 자원은 가상 레지스트리를 포함할 수 있다.In addition, the virtual resource may include a virtual registry.
또한, 상기 가상화 보안 방법은 상기 컴퓨터에서 구동되는 프로세스에서 COM 서버를 찾는 경우 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하는 단계, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 가상 COM 서버의 포트(port)를 상기 프로세스에 알려주는 단계 및 상기 가상 프로세스 데이터베이스에 저장되어 있지 않은 경우에는 COM 서버의 포트를 상기 프로세스에 알려주는 단계를 더 포함하여 구성될 수 있다.The virtual security method may further include determining whether the process is stored in the virtual process database when the COM server is found by a process running on the computer, and if the process is stored in the virtual process database, And notifying a process of a port of a COM server if not stored in the virtual process database.
또한, 상기 가상화 보안 방법은 상기 컴퓨터에서 구동되는 프로세스가 윈도우 핸들 목록 데이터베이스로부터 윈도우 핸들 목록을 검색하는 경우, 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하는 단계, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 가상 프로세스들의 윈도우 핸들 목록을 전달하는 단계 및 상기 가상 프로세스 데이터베이스에 저장되어 있지 않은 경우에는 가상 프로세스가 아닌 프로세스들의 윈도우 핸들 목록을 전달하는 단계를 더 포함하여 구성될 수 있다.The virtual security method may further include determining whether the process is stored in the virtual process database when the process running on the computer retrieves the window handle list from the window handle list database. The method may further include transmitting a window handle list of the virtual processes if the information is stored, and a window handle list of the non-virtual processes if the information is not stored in the virtual process database.
또한, 상기 가상화 보안 방법은 상기 컴퓨터에서 구동되는 프로세스가 전역 훅 DLL 목록 데이터베이스로부터 DLL을 검색하는 경우, 상기 프로세스가 상기 가상 프로세스 데이터베이스에 저장되어 있는지 여부를 확인하는 단계, 상기 가상 프로세스 데이터베이스에 저장되어 있는 경우에는 상기 가상 프로세스에서 입력한 DLL만을 제공하는 단계 및 상기 가상 프로세스 데이터베이스에 저장되어 있지 않은 경우에는 가상 프로세스가 아닌 프로세스들에서 입력한 DLL만을 전달하는 단계를 더 포함하여 구성될 수 있다.In addition, the virtualization security method, if a process running on the computer retrieves a DLL from the global hook DLL list database, checking whether the process is stored in the virtual process database, stored in the virtual process database The method may further include providing only the DLL input by the virtual process if there is one, and delivering only the DLL input by the processes other than the virtual process if it is not stored in the virtual process database.
그리고, 본 발명은 상기 가상화 보안 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다.In addition, the present invention may include a computer-readable recording medium, characterized in that a program for executing the virtualization security method is recorded.
본 발명에 따르면 악성 코드의 감염 등 보안상 문제를 방지할 수 있도록 하는 효과가 있다.According to the present invention is effective to prevent security problems, such as infection of malicious code.
본 발명에 따르면 컴퓨터 시스템을 가상 영역과 실제 영역으로 구분하여 두 영역을 서로 차단함으로써, 가상 영역에서 보안상 문제가 발생하더라도 실제 영역에 영향을 주지 않도록 하는 효과가 있다.According to the present invention, the computer system is divided into a virtual area and a real area to block the two areas from each other, so that even if a security problem occurs in the virtual area, the real area is not affected.
본 발명에 따르면 미리 등록된 프로그램에 대해서만 가상 프로세스로 구동할 수 있도록 함으로써, 보다 안전하게 시스템을 관리할 수 있도록 하는 효과가 있다.According to the present invention, only a pre-registered program can be driven as a virtual process, thereby making it possible to more safely manage the system.
본 발명에 따르면 가상 프로세스가 실제 프로세스와 IPC를 수행할 수 없도록 방지함으로써, 가상 프로세스가 악성 코드에 감염되더라도 이것이 실제 프로세스에 전염되지 않도록 하는 효과가 있다.According to the present invention, by preventing the virtual process from performing the IPC with the real process, even if the virtual process is infected with malicious code, it is effective to prevent it from being transmitted to the real process.
본 발명에 따르면 가상 파일 시스템을 제공하고, 가상 프로세스의 데이터를 암호화하여 가상 파일 시스템에 저장하도록 함으로써, 실제 영역에서는 가상 영역에서 작성된 데이터에 접근할 수 없도록 하는 효과가 있다.According to the present invention, by providing a virtual file system and encrypting the data of the virtual process and storing the data in the virtual file system, the data created in the virtual area cannot be accessed in the real area.
이하에서, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
본 발명에서 가상 영역(Virtual Area)라 함은 실제 컴퓨터 시스템 상에서 논리적 또는 물리적으로 구분되어 있는 영역은 아니지만, 컴퓨터 시스템 내에서 특정 프로세스들만 접근 가능한 시스템 자원, 프로세스 등을 포괄적으로 의미하는 용어이다.In the present invention, the term "virtual area" is not an area that is logically or physically divided on an actual computer system. However, the term "virtual area" refers to a system resource, a process, and the like that are accessible only to specific processes within the computer system.
또한 가상 프로세스(Virtual Process)라 함은 상기 가상 영역(Virtual Area)에 속하는 프로세스로, 상기 가상 영역 내에 있는 시스템 자원 및 다른 가상 프로세스들에 접근이 가능한 프로세스를 의미한다. 이 때, 가상 프로세스는 일반적인 프로세스와 동일한 동작을 하며, 단지 별도의 모듈 등에 의하여 가상 영역 내에 있는 자원 및 프로세스 등에만 접근이 가능하도록 제한된다. 본 발명에서는 가 상 프로세스도 실제 프로세스와 동일한 동작을 수행하고, 단지 가상 프로세스의 자원 요청 등에 대응하여 가상 영역 내의 가상 자원만 사용할 수 있도록 제어한다.In addition, the virtual process refers to a process belonging to the virtual area, and means a process accessible to system resources and other virtual processes in the virtual area. In this case, the virtual process operates in the same manner as the general process, and is limited to access only to resources and processes within the virtual area by a separate module. In the present invention, the virtual process performs the same operation as the actual process, and controls only the virtual resources in the virtual area to be used in response to a resource request of the virtual process.
도 2는 본 발명의 일실시예에 따른 가상화 보안 시스템의 내부 구성을 도시하는 구성도이다. 도면에 도시한 바와 같이, 본 발명의 일실시예에 다른 가상화 보안 시스템은 컴퓨터 시스템에 설치되며, 가상 자원(210), 가상 프로세스 데이터베이스(220), 가상화 에이전트(230), 가상화 엔진(240), 가상화 프로그램 목록 데이터베이스(250) 및 가상 COM 서버(260)를 포함하여 구성될 수 있다. 또한, 상기 구성요소들은 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어가 결합된 형태로 구현되는 것이 가능하며, 서로 물리적 또는 논리적으로 연결되어 데이터를 주고 받을 수 있도록 구성될 수 있다.2 is a block diagram showing an internal configuration of a virtualization security system according to an embodiment of the present invention. As shown in the figure, the virtualization security system according to one embodiment of the present invention is installed in a computer system, the
도면에서와 같이 본 발명에 따른 가상화 보안 시스템은 가상 영역(201; Virtual Area)과 실제 영역(Real Area)으로 나눌 수 있는데, 가상 영역(201)에서는 가상 자원(210), 가상화 엔진(240) 및 가상 COM 서버(260)등이 존재하며, 가상 프로세스(203)들이 존재한다. 실제 영역에는 가상 프로세스 데이터베이스(220), 가상화 에이전트(230) 및 가상화 프로그램 목록 데이터베이스(250)가 존재하며, 실제 프로세스(202)들과 실제 자원(204)이 존재한다.As shown in the figure, the virtualization security system according to the present invention may be divided into a virtual area 201 and a real area. In the virtual area 201, a
또한, 본 발명에 따른 가상화 보안 시스템은 유저모드(User Mode) 및 커널모드(Kernel Mode)로 구분될 수 있는데, 유저모드에서는 가상 프로세스 데이터베이스(220), 가상화 에이전트(230), 가상화 프로그램 목록 데이터베이스(250) 및 가상 COM 서버(260) 등이 동작하며, 실제 프로세스(202)들과 가상 프로세스(203)들이 구 동된다. 또한 커널모드에서는 가상 자원(210) 및 가상화 엔진(240)이 존재하며, 실제 컴퓨터 시스템의 자원(204)도 커널모드에 존재하게 된다. 이하 각각의 구성요소 별로 구체적으로 기술하도록 한다.In addition, the virtualization security system according to the present invention can be divided into a user mode (User Mode) and kernel mode (Kernel Mode), in the user mode virtual process database 220,
가상 자원(210)은 컴퓨터 운영체제(OS; Operating System)에서 제공하는 실제 자원(204)과 구별되며, 가상 프로세스(Virtual Process) 동작에 필요한 자원을 제공한다. 컴퓨터 시스템에서 사용되는 시스템 자원은 파일 시스템, 레지스트리, 객체 자원 등을 포함할 수 있는데, 이와 같은 시스템 자원은 여러 프로세스가 공유하여 사용하기 때문에 악성 코드가 복사되어 다른 프로세스로의 전염 매개체가 될 가능성이 높다. 따라서, 본원 발명에서는 실제 자원(204)과 구별되는 가상 자원(210)을 구비하고, 가상 프로세스(203)들은 가상 자원(210)만 사용하도록 제어함으로써, 가상 프로세스(203)가 악성 코드 등에 감염되는 경우에도 실제 자원(204)에 악성 코드가 감염되지 않고, 가상 자원(210)만 감염되도록 하여, 추후 가상 영역(201)을 제거하는 것만으로 용이하게 악성 코드를 제거할 수 있는 효과를 얻을 수 있다.The
가상 자원(210)은 가상 파일시스템, 가상 레지스트리, 가상 객체 등을 포함하여 구성될 수 있는데, 이 밖에도 가상 프로세스가 동작하면서 사용하기 위한 시스템 자원들이 포함될 수 있다.The
가상 자원(210)에 포함되는 가상 파일 시스템은 실제 자원(204)에 포함되는 실제 파일 시스템에 가상 디스크 이미지 파일 형태로 저장되어 가상화 엔진(240)의 제어에 따라 데이터를 읽고 기록하도록 구성될 수 있다. 이 때, 실제 프로세스(202)로부터의 접근이 불가능하도록, 가상화 엔진(240)은 데이터를 기록할 때에는 암호화 하여 가상 파일 시스템에 기록하고, 데이터를 읽을 때에는 다시 가상 파일 시스템의 데이터를 복호화하여 읽어 들일 수 있다.The virtual file system included in the
또한 가상 자원(210)은 가상 COM 서버(260)를 포함하여 구성될 수 있는데, 가상 COM 서버는 가상 프로세스(203)에 COM(Component Object Model) 객체를 제공한다. COM 객체는 프로세스간의 IPC(Inter Process Communication)를 위하여 사용되는데 이와 같이 실제 COM 서버 및 가상 COM 서버를 구분함으로써, 실제 프로세스(202) 및 가상 프로세스(203) 사이의 IPC를 원천적으로 차단하여 프로세스 간의 통신에 의한 악성 코드의 감염을 방지할 수 있는 효과가 있다.In addition, the
가상 프로세스 데이터베이스(220)는 실행중인 가상 프로세스(203) 목록을 저장한다. 가상 프로세스(203)는 실제로 운영체제에서 볼 때에는 실제 프로세스(202)와 구분되지 않고 동일한 성질을 가지고 있다. 따라서, 이를 별도로 격리하여 가상 영역(201) 내에서만 동작을 수행할 수 있도록 제어하기 위해서는 가상 프로세스(203)에 대한 목록을 별도로 관리해야 한다. 따라서 가상 프로세스 데이터베이스(220)는 가상 프로세스(203)로 구동중인 프로세스들에 대한 정보를 저장한다. 이를 위하여 가상 프로세스 데이터베이스(220)가상 프로세스(203)들을 식별하기 위한 정보가 저장될 수 있는데, 프로세스 식별자인 PID(Process IDentifier)의 목록으로 저장되는 것이 가능하다. 이 밖에도 각각의 가상 프로세스(203)를 식별하기 위한 정보라면 어떤 형태의 변형도 가능하다.The virtual process database 220 stores a list of running
가상 프로세스 데이터베이스(220)는 오라클, MySQL, DB2 등의 상용 DBMS를 이용하여 구성할 수도 있으나, 이와 같은 형태에 의하여 제한되지는 아니하며, 이 밖에도 데이터를 저장하고 검색할 수 있는 모든 저장 장치 또는 상기 저장장치에 상기 데이터를 저장하고 관리하는 모든 프로그램을 이용하여 구성할 수 있다.The virtual process database 220 may be configured using a commercial DBMS such as Oracle, MySQL, DB2, etc., but is not limited thereto. In addition, the virtual process database 220 may be any storage device capable of storing and retrieving data or the storage. It can be configured using any program that stores and manages the data on the device.
가상화 에이전트(230)는 가상 프로세스(203)를 구동시키고 구동된 가상 프로세스(203)에 대한 정보를 가상 프로세스 데이터베이스(220)에 저장한다. 사용자가 일반적으로 프로그램을 실행시켜서 구동되는 프로세스는 실제 프로세스(202)로 실제 자원(204)을 사용하여 실제 영역에서 구동되게 된다. 이와 구별하여 가상 프로세스(203)를 구동하기 위해서는 구동 역할을 수행하는 별도의 모듈이 필요한데, 가상화 에이전트(230)은 이와 같은 역할을 수행한다.The
가상화 에이전트(230)는 가상 프로세스(203)로 구동시킬 프로그램을 동작시키고, 상기 프로그램을 구동하는 프로세스의 PID를 상기 가상 프로세스 데이터베이스(220)에 저장함으로써, 상기 구동된 프로세스를 가상 프로세스(203)로 관리하도록 할 수 있다. 이 때, 가상화 에이전트(230)는 스스로 구동시키는 프로세스만을 가상 프로세스(203)로 관리하는 것이 아니라, 다른 프로세스가 구동시키는 프로세스 들 중에서 가상 프로세스(203)가 구동시키는 프로세스들은 모두 가상 프로세스(203)로 관리하기 위하여 상기 가상 프로세스 데이터베이스(220)에 그 PID를 저장하도록 할 수 있다.The
따라서, 가상화 에이전트(230)는 새로 구동되는 프로세스가 있을 때에, 새로 구동되는 프로세스의 부모 프로세스(Parent Process)의 PID를 확인하여, 부모 프로세스의 PID가 상기 가상 프로세스 데이터베이스(220)에 저장되어 있는 경우라 면 가상 프로세스(203)가 다른 프로세스를 생성한 경우이므로, 새로이 구동된 프로세스의 PID 정보도 상기 가상 프로세스 데이터베이스(220)에 저장한다. 이와 같은 가상화 에이전트(230)의 동작에 대해서는 도 4에서 보다 구체적으로 설명하도록 한다.Therefore, when there is a newly started process, the
또한, 가상화 에이전트(230)는 구동되는 가상 프로세스(203)들이 화면에 표시될 때에 가상 프로세스(203)에서 실행되는 프로그램임을 알리는 표시를 부가하도록 할 수 있다. 일례로 가상 프로세스(203)에서 구동되는 프로그램은 프로그램 실행 창의 외부가 붉은색 선으로 표시되도록 구성할 수 있다. 이와 같은 구성을 통하여 사용자가 가상 프로세스(203)에서 구동되는 프로그램과 실제 프로세스(202)에서 구동되는 프로그램을 구분하여 보다 편리하게 사용할 수 있도록 한다.In addition, the
가상화 엔진(240)은 가상 프로세스 데이터베이스(220)에 저장된 프로세스들이 실제 자원(204)에 접근하지 못하고 상기 가상 자원(210)만을 이용할 수 있도록 제어한다. 본 발명은 가상 프로세스(203)에 악성 코드가 감염되는 경우에도 실제 영역에 존재하는 실제 자원(204) 및 실제 프로세스(202)에는 악성 코드가 감염되지 않도록 하는 것을 목적으로 한다. 따라서, 가상 프로세스(203)에서 실제 자원(204)에 악성 코드를 전염시키는 것을 막기 위하여 가상 프로세스(203)가 실제 자원(204)에 접근하는 것을 방지한다.The virtualization engine 240 controls the processes stored in the virtual process database 220 to use only the
가상화 엔진(240)은 가상 프로세스(203)가 가상 자원(204)에 접근하는 것을 방지하기 위하여 모든 프로세스로부터 자원 이용에 관한 요청을 확인하고, 자원을 이용하기 위하여 요청한 프로세스가 상기 가상 프로세스 데이터베이스(220)에 저장되어 있는 프로세스 인지 여부를 확인한다. 만일 가상 프로세스 데이터베이스(220)에 저장된 경우라면 가상 프로세스(203)에 해당되므로, 상기 프로세스로부터의 자원 요청에 대응하여 상기 가상 자원(210)을 이용할 수 있도록 가상 자원(210)을 제공한다. 또한 만일 확인 결과 자원을 요청한 프로세스에 대한 정보가 상기 가상 프로세스 데이터베이스(220)에 저장되어 있지 않은 경우라면 상기 프로세스가 실제 프로세스(202)에 해당하므로 실제 자원(204)을 사용하도록 이를 제공한다. 이와 같은 구성을 통하여, 실제 프로세스(202)와 가상 프로세스(203)는 시스템 자원을 이용하는데 있어서 엄격하게 분리되기 때문에, 가상 프로세스(202)가 악성 코드에 감염되는 경우에도 실제 자원(204)에 악성 코드가 감염되는 것을 방지할 수 있고, 가상 영역(201)은 쉽게 제거하고 재설치가 가능하므로, 실제 자원(204)에 전혀 영향을 주지 않고 악성 코드를 근본적으로 제거하는 것이 가능하게 된다.The virtualization engine 240 confirms a request regarding resource usage from all processes in order to prevent the
이와 같이 가상화 엔진(240)에서 실제 프로세스(202) 및 가상 프로세스(203)의 자원 요청을 확인하여 이용할 수 있는 자원을 구분함으로써, 프로세스 구동에 필요한 자원은 엄격하게 분리되면서도, 프로세스 자신은 정상적으로 자원을 요청하고 사용할 수 있도록 함으로써, 프로세스에서 동작하는 프로그램에 별다른 기능 등이 추가되지 않고도 가상 프로세스(203)를 용이하게 관리할 수 있는 효과가 있다. 따라서, 기존의 프로그램들을 가상 프로세스(203)에서 모두 그대로 동작시킬 수 있어, 호환성이 매우 뛰어나게 된다.In this way, the virtualization engine 240 identifies the resource requests of the
가상화 엔진(240)은 상술한 바와 같이 가상 프로세스(203)로부터 파일 시 스템에 데이터를 읽고 쓰도록 하는 요청을 수신하여 처리할 수 있는데, 가상 프로세스(203)의 데이터는 가상 파일 시스템에 쓰거나 읽게 된다. 이 때, 실제 프로세스(202) 등에서 가상 파일 시스템에 접근하는 것을 방지하기 위하여, 가상화 엔진(240)은 가상 프로세스(203)의 데이터를 암호화하여 가상 파일 시스템에 기록하고, 데이터를 읽을 때에는 읽은 데이터를 복호화하여 가상 프로세스(203)에 전달하도록 구성될 수 있다. 이를 통하여 가상 프로세스(203)의 실제 자원(204) 접근뿐 아니라, 실제 프로세스(202)의 가상 자원(210) 접근까지 방지할 수 있는 효과를 얻을 수 있다. 이와 같이 가상화 엔진(240)에서 가상 파일 시스템에 데이터를 기록하는 구성은 도 5에 보다 상세히 설명되어 있다.As described above, the virtualization engine 240 may receive and process a request to read and write data from the
가상화 엔진(240)은 컴퓨터 시스템(101)에서 구동되는 프로세스에서 IPC를 위하여 COM 서버를 찾는 경우, 상기 프로세스가 가상 프로세스 데이터베이스(220)에 저장되어 있는지 여부를 확인한 뒤, 프로세스가 가상 프로세스 데이터베이스(220)에 저장되어 있는 경우라면 가상 COM 서버의 포트(port)를 상기 프로세스에 알려주고, 그렇지 않은 경우에는 운영체제의 COM 서버 포트를 상기 프로세스에 알려준다. 이를 통하여 상술한 바와 같이 COM 서버를 실제 영역 및 가상 영역(201)에서 각각 구분하여 사용하도록 하여 실제 프로세스(202) 및 가상 프로세스(203) 사이의 IPC를 방지하고, IPC를 통한 악성 코드의 감염을 막을 수 있다. 이와 같이 프로세스에게 COM 서버 포트를 알려주는 구성은 도 6에 보다 상세히 설명되어 있다.When the virtualization engine 240 finds a COM server for IPC in a process running on the computer system 101, the virtualization engine 240 checks whether the process is stored in the virtual process database 220, and then the process is virtual process database 220. If it is stored in), it informs the process of the port of the virtual COM server. Otherwise, it informs the process of the COM server port of the operating system. As a result, as described above, the COM server is separately used in the real area and the virtual area 201 to prevent IPC between the
또한 가상화 엔진(240)은 컴퓨터 시스템(101)에서 구동하고 있는 프로세스 가 윈도우 핸들 목록 데이터베이스로부터 윈도우 핸들 목록을 검색하고자 하는 경우, 상기 프로세스가 가상 프로세스 데이터베이스(220)에 저장되어 있는지 확인하고, 저장되어 있으면 가상 프로세스들의 윈도우 핸들 목록만을 제공하고, 그렇지 않으면 실제 프로세스들의 윈도우 핸들 목록만을 제공하도록 제어할 수 있다. 이와 같은 구성을 통하여 프로세스가 IPC를 위하여 message, ATOM, DDE 등을 다른 프로세스로 보내고자 하는 경우에, 실제 프로세스(202)는 실제 프로세스(202)로, 가상 프로세스(203)는 가상 프로세스(203)로만 보낼 수 있도록 하여 프로세스간의 통신을 방지하고 악성 코드의 전염을 막을 수 있다. 이와 같은 구성에 대해서는 도 7에 보다 상세히 설명되어 있다.In addition, when the process running on the computer system 101 wants to retrieve the window handle list from the window handle list database, the virtualization engine 240 checks whether the process is stored in the virtual process database 220 and is stored. If so, you can control to provide only the list of window handles of the virtual processes, otherwise provide only the list of window handles of the actual processes. In this configuration, when a process wants to send a message, ATOM, DDE, etc. to another process for IPC, the
그리고 가상화 엔진(240)은 컴퓨터에서 구동되는 프로세스가 전역 훅 DLL 목록 데이터베이스로부터 DLL을 검색하는 경우, 상기 프로세스가 가상 프로세스 데이터베이스(220)에 저장되어 있는지 여부를 확인하고, 상기 프로세스가 가상 프로세스 데이터베이스(220)에 저장되어 있는 경우에는 가상 프로세스(203)들이 입력한 DLL들만 제공하고, 그렇지 않은 경우에는 실제 프로세스(202)들이 입력한 DLL만을 제공하도록 제어할 수 있다. 프로세스는 자신의 DLL을 타 프로세스에 삽입함으로써, 타 프로세스와 데이터를 주고 받을 수 있다. 이를 위해서는 자신의 DLL을 전역 훅 DLL 목록 데이터베이스에 저장하고, 타 프로세스에서 이를 확인하여 DLL을 로드하게 된다. 따라서, 실제 프로세스(202) 및 가상 프로세스(203) 사이에 데이터를 주고 받고, 모듈을 설치하는 것을 방지하기 위해서, 본 발명에서는 실제 프로세스(202)에서 DLL 목록을 요구하는 경우에는 실제 프로세스(202)의 DLL 목록만을 제공하고, 가상 프로세스(203)에서 DLL 목록을 요구하는 경우에는 가상 프로세스(203)의 DLL 목록만을 제공하도록 구성한 것이다. 이와 같은 구성은 도 8에 보다 상세하게 설명되어 있다.When the process running on the computer retrieves the DLL from the global hook DLL list database, the virtualization engine 240 checks whether the process is stored in the virtual process database 220, and the process is a virtual process database ( If it is stored in the 220, only the DLLs input by the virtual process (203), otherwise it can be controlled to provide only the DLL input by the actual process (202). A process can exchange data with another process by inserting its DLL into another process. To do this, it saves its own DLL in the global hook DLL list database, and other processes check it and load the DLL. Thus, in order to prevent data from being exchanged between the
가상화 프로그램 목록 데이터베이스(250)는 가상 프로세스(203)로 구동될 수 있는 프로그램의 목록을 저장한다. 상술한 바와 같이 가상화 에이전트(230)의 구동이 있으면 어떤 프로그램이라도 가상 프로세스(203)로 구동하여 가상 영역(201)에서 실행이 가능하다. 그러나, 보다 안전한 사용을 위하여, 미리 사전에 사용자가 등록해 둔 프로그램만이 가상 프로세스(203)에서 구동되도록 정의할 수 있다.The virtualization
가상화 프로그램 목록 데이터베이스(250)는 이와 같이 가상 프로세스(203)에서 구동될 수 있는 프로그램 파일이 저장되어 있는 위치 정보를 저장하도록 구성될 수 있다. 가상화 프로그램 목록 데이터베이스(250)는 별도의 데이터베이스로 구성될 수도 있으나, 상기 가상화 에이전트(230)에 포함되어 단순히 실행 가능한 프로그램의 파일이 저장되어 있는 위치 정보만을 목록으로 관리하도록 구성될 수도 있다. 가상화 에이전트(230)는 프로그램의 실행 시 상기 가상화 프로그램 목록 데이터베이스(250)에 저장되어 있는 프로그램인 경우에만 구동시키도록 함으로써, 안전하게 사용자가 등록한 프로그램만 실행할 수 있도록 할 수 있다. 특히 다수의 사용자가 이용하는 컴퓨터의 경우, 특정 사용자가 사용할 수 있는 프로그램의 종류를 제한하는 등의 용도로도 활용이 가능하다.The virtualization
도 3은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 등록된 프로그 램들을 가상 프로세스로 구동시키는 방법을 도시하는 도면이다.3 is a diagram illustrating a method of driving registered programs as a virtual process in a virtualization security system according to an embodiment of the present invention.
일반적으로 컴퓨터 시스템(101)은 구동할 수 있는 프로그램들의 목록(310)을 관리하는데, 윈도우 시스템의 경우 "C\Program Files\" 경로 아래에 실행되는 프로그램들의 폴더가 위치하게 된다. 운영 체제는 이와 같은 프로그램 목록(310)에 있는 프로그램들을 구동 모듈(320)을 통하여 구동시켜 프로세스(202)들을 생성하여 각각의 프로그램들이 동작할 수 있도록 한다.In general, the computer system 101 manages a
본 발명에 따른 가상화 보안 시스템은 이와 같은 프로그램 목록(310)에 저장된 프로그램들 중에서 가상 프로세스(203)로 동작할 프로그램들을 가상화 프로그램 목록 데이터베이스(250)에 저장해 두고, 가상화 에이전트(230)에서 사용자의 명령에 따라 상기 저장된 프로그램들을 구동시킨다. 구동된 프로그램은 가상 프로세스(203)로 구동되어, 가상 영역(201) 내에서 동작을 수행하게 되는데, 도면에서와 같이 가상 프로세스(203)가 자식 프로세스를 생성하게 되면 그 자식 프로세스 역시 가상 프로세스(203)로 관리되도록 하여, 가상 프로세스(203) 및 실제 프로세스(202)를 엄격하게 분리할 수 있다.The virtualization security system according to the present invention stores programs to be operated as the
도 4는 본 발명의 일실시예에 따른 가상화 보안 시스템에서 새로 구동되는 프로세스를 확인하여 가상 프로세스를 등록하는 방법의 흐름을 도시하는 흐름도이다.4 is a flowchart illustrating a method of registering a virtual process by checking a newly started process in a virtualization security system according to an embodiment of the present invention.
단계 S401에서는 새로이 프로세스가 구동되면 가상화 에이전트(230)에서 그 구동 여부를 탐지한다. 단계 S402에서는 가상화 에이전트(230)가 새로운 프로세스가 구동된 것을 탐지하면, 새로 구동된 프로세스의 부모 프로세스의 PID(Process IDentifier)를 획득한다.In operation S401, when the process is newly started, the
단계 S403에서는 상기 가상화 에이전트(203)가 획득한 상기 구동된 프로세스의 부모 프로세스의 PID를 확인하여 가상 프로세스 데이터베이스(220)에 상기 부모 프로세스의 PID 정보가 존재하는지를 점검한다. 상기 부모 프로세스의 PID가 가상 프로세스 데이터베이스(220)에 존재하는 경우에는 상기 부모 프로세스가 가상 프로세스(203)에 해당되는 경우이므로, 가상 프로세스 데이터베이스(220)에 새로 구동된 프로세스를 입력하여, 새로 구동된 프로세스를 가상 프로세스(203)로 관리하도록 한다(S404).In step S403, the
만일, 상기 부모 프로세스의 PID가 상기 가상 프로세스 데이터베이스(220)에 존재하지 않는다면, 상기 부모 프로세스는 실제 프로세스(202)이므로, 새로 구동된 프로세스도 실제 프로세스(202)로 관리되어야 한다. 따라서, 가상 프로세스 데이터베이스에 그 정보를 기록하지 않고 넘어가게 된다.If the PID of the parent process does not exist in the virtual process database 220, since the parent process is the
이와 같은 절차를 통하여, 새로 구동되는 프로세스들을 가상 프로세스(203)인지, 실제 프로세스(202)인지 모두 구분하여 가상 프로세스(203)인 경우 별도로 관리하도록 구성함으로써, 가상 프로세스(203)를 보다 용이하게 제어할 수 있는 효과를 얻을 수 있다.Through such a procedure, the
도 5는 본 발명의 일실시예에 따른 가상화 보안 시스템에서 가상 파일 시스템에 데이터를 기록하고 쓰는 방법을 도시하는 도면이다.5 is a diagram illustrating a method of writing and writing data to a virtual file system in a virtualization security system according to an embodiment of the present invention.
도면에 도시한 바와 같이, 가상 프로세스(203)에서 파일 시스템에 접근하여 파일을 기록하거나 읽으려고 하는 경우에는 가상화 엔진(240)에서 이를 확인하 여 상기 프로세스가 가상 프로세스(203)인지 먼저 점검하고, 가상 프로세스(203)인 경우에는 가상 파일 시스템(510)에 데이터를 기록하거나 읽도록 제어할 수 있다. 가상화 엔진(240)는 상기 가상 파일 시스템(510)을 실제 파일 시스템에 생성하는데, 가상 디스크 이미지 파일(520) 형태로 상기 가상 파일 시스템(510)을 생성할 수 있다.As shown in the figure, when the
따라서, 실제 프로세스(202)에서는 가상 디스크 이미지 파일로만 상기 가상 파일 시스템(510)이 확인되므로, 가상 파일 시스템(510)에 저장되어 있는 데이터들을 확인하는 것이 어렵다. 특히 가상화 엔진(240)에서 가상 프로세스(203)의 데이터를 기록하거나 읽을 때에 데이터를 암호화 및 복호화하여 기록하거나 읽도록 함으로써, 실제 프로세스에 의한 가상 파일 시스템(510)의 접근을 방지하는 것이 가능하다.Therefore, since the
이와 같이 가상 파일 시스템(510)을 실제 파일 시스템의 내부에 구성시키면서도 둘을 분리하여 구성함으로써, 가상 프로세스(203)에서 악성 코드에 감염되어 악성 코드가 가상 파일 시스템(510)에 저장되게 되는 경우라도, 실제 파일 시스템에 영향을 주지 못하는 형태로 저장되기 때문에, 보다 안전하게 시스템을 관리할 수 있다. 또한, 상기 가상 영역(201)이 악성 코드에 감염되어 가상 영역(201)을 제거할 때에 가상 디스크 이미지 파일(520)을 삭제하는 것만으로 악성 코드에 감염된 데이터들을 손쉽게 삭제할 수 있어서, 시스템을 복구하는 것도 용이하게 된다.In this way, even when the
도 6은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 COM 서버를 찾는 경우를 도시하는 도면이다.6 is a diagram illustrating a case where a process finds a COM server in a virtualization security system according to an embodiment of the present invention.
일반적으로 프로세스간의 통신(IPC)의 하나로 COM 통신이 사용되는데 이를 위해서는 COM 서버가 있어야 한다. 그러나, 본 발명에서는 가상 프로세스(203) 및 실제 프로세스(202) 사이에 통신이 이루어지게 되면 악성 코드의 전염 가능성이 있으므로 이를 방지한다. 따라서, 실제 COM 서버(610)와 별개로 가상 COM 서버(260)를 구비하고, 프로세스로부터 COM 서버에 대한 요청이 있는 경우 가상화 엔진(240)에서 이를 확인하여, 프로세스가 실제 프로세스(202)인 경우에는 실제 COM 서버의 포트를 제공하여 실제 프로세스(202)들끼리 통신이 이루어질 수 있도록 한다.In general, COM communication is used as an interprocess communication (IPC), which requires a COM server. However, in the present invention, if communication is made between the
또한, 만일 COM 서버를 요청한 프로세스가 가상 프로세스(203)인 경우에는 가상화 엔진(240)에서 가상 COM 서버 포트를 제공하여 가상 COM 서버로 연결되도록 한다. 따라서 가상 프로세스(203)들은 가상 프로세스(203)와 통신이 가능하며, 실제 프로세스(202)와는 COM 통신을 할 수 없다. 따라서, COM 통신을 통하여 악성 코드가 가상 프로세스(203)로부터 실제 프로세스(202)로 전염되는 것을 방지할 수 있는 효과가 있다.In addition, if the process requesting the COM server is a
도 7은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 윈도우 핸들 목록 데이터베이스를 찾는 경우를 도시하는 도면이다.7 is a diagram illustrating a case where a process finds a window handle list database in a virtualization security system according to an embodiment of the present invention.
프로세스가 IPC를 위하여 message, ATOM, DDE 등을 다른 프로세스로 보내고자 하는 경우에, FindWindow, EnumWindow 등의 명령을 이용하여 윈도우 핸들 목록 데이터베이스로부터 윈도우 핸들 목록을 확인하고, 이를 통하여 다른 프로세스와 IPC를 수행하게 된다.When a process wants to send a message, ATOM, or DDE to another process for IPC, it checks the list of window handles from the window handle list database using commands such as FindWindow and EnumWindow, and executes IPC with other processes. Done.
본 발명에서는 이와 같이 프로세스가 윈도우 핸들 목록 데이터베이스(710) 로부터 윈도우 핸들 목록을 확인하는 경우, 가상화 엔진(240)에서 이를 점검하여, 윈도우 핸들 목록을 요구하는 프로세스가 실제 프로세스(202)인 경우에는 실제 프로세스(202)들에 대한 윈도우 핸들 목록을 제공하고, 만일 상기 프로세스가 가상 프로세스(203)인 경우에는 가상 프로세스(203)들에 대한 윈도우 핸들 목록을 제공한다.In the present invention, when the process checks the window handle list from the window
이와 같은 구성을 통하여 실제 프로세스(202)는 실제 프로세스(202)들에 대한 윈도우 핸들 목록을 획득할 수 있고 가상 프로세스(203)는 가상 프로세스(203)들에 대한 윈도우 핸들 목록을 획득할 수 있어, 실제 프로세스(202)와 가상 프로세스(203) 사이의 IPC를 원천적으로 방지할 수 있는 효과를 얻을 수 있다.This configuration allows the
도 8은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 전역 훅을 수행하는 경우를 도시하는 도면이다.8 is a diagram illustrating a case where a process performs a global hook in a virtualization security system according to an embodiment of the present invention.
프로세스는 자신의 DLL을 다른 프로세스에 삽입하여 동작을 수행하도록 하기 위해서 전역 훅을 수행한다. 전역 훅을 수행하면, 전역 훅 DLL 이름을 운영체제의 전역 훅 DLL 목록 데이터베이스(810)에 저장하게 되고, 모든 프로세스들은 전역 훅 DLL 목록 데이터베이스(810)을 지속적으로 확인하여 해당 DLL을 로드한다. 따라서, 모든 프로세스들이 전역 훅 DLL 목록 데이터베이스(810)을 확인할 때에 실제 프로세스(202)의 경우 실제 프로세스의 DLL만이 확인되고, 가상 프로세스(203)들은 가상 프로세스(203)에서 입력한 DLL만이 확인되어야 실제 프로세스(202) 및 가상 프로세스(203) 사이에서 모듈을 삽입하는 것을 방지할 수 있다.The process executes a global hook to inject its DLL into another process to perform the operation. When performing a global hook, the global hook DLL name is stored in the global hook DLL list database 810 of the operating system, and all processes continuously check the global hook DLL list database 810 and load the corresponding DLL. Therefore, when all processes check the global hook DLL list database 810, only the real process's DLL is identified for the
따라서, 본 발명에서는 가상화 엔진(240)에서 프로세스들의 DLL 목록 확인 요청을 수신하고, 상기 프로세스가 실제 프로세스(202)인지 가상 프로세스(203)인지 여부를 확인하여, 실제 프로세스(202)인 경우에는 전역 훅 DLL 목록 데이터베이스(810)에 기록된 DLL 목록 중에서 실제 프로세스(202)에서 입력한 DLL 목록만을 제공하고, 만일 상기 프로세스가 가상 프로세스(203)인 경우에는 상기 전역 훅 DLL 목록 데이터베이스(810)에 기록된 DLL 목록 중에서 가상 프로세스(203)에서 입력한 DLL 목록만을 제공한다.Accordingly, in the present invention, the virtualization engine 240 receives a request for checking the list of DLLs of the processes and checks whether the process is the
이와 같이 구성함으로써, 가상 프로세스(203)는 언제나 가상 프로세스(203)의 DLL만을 로드할 수 있고, 실제 프로세스(202)는 언제나 실제 프로세스(202)의 DLL만을 로드할 수 있도록 하여 가상 프로세스(203)가 악성 코드에 감염되었을 때, 가상 프로세스(203)가 전역 훅을 통하여 자신의 악성 코드를 실제 프로세스(202)에 삽입하고자 하는 것을 원천적으로 방지할 수 있어 악성 코드로부터 컴퓨터 시스템(101)의 실제 영역을 보호할 수 있는 효과를 얻을 수 있다.By doing so, the
도 9는 본 발명의 일실시예에 따른 가상화 보안 방법의 흐름을 도시하는 흐름도이다. 본 발명에 따른 가상화 보안 방법은 도 9의 설명에 의하여만 한정되는 것은 아니고, 상술한 가상화 보안 시스템의 구성이 모두 적용될 수 있으며, 그 밖의 다양한 변형도 가능하다.9 is a flowchart illustrating a flow of a virtualization security method according to an embodiment of the present invention. The virtualization security method according to the present invention is not limited only to the description of FIG. 9, all of the above-described configurations of the virtualization security system may be applied, and various other modifications are possible.
단계 S901에서는 컴퓨터의 운영체제에서 제공하는 실제 자원(204)과 구별되며, 가상 프로세스(203) 동작에 필요한 가상 자원(210)을 설정한다. 컴퓨터 시스템에서 사용되는 시스템 자원은 파일 시스템, 레지스트리, 객체 자원 등을 포함할 수 있는데, 이와 같은 시스템 자원은 여러 프로세스가 공유하여 사용하기 때문 에 악성 코드가 복사되어 다른 프로세스로의 전염 매개체가 될 가능성이 높다. 따라서, 본원 발명에서는 실제 자원(204)과 구별되는 가상 자원(210)을 구비하고, 가상 프로세스(203)들은 가상 자원(210)만 사용하도록 제어함으로써, 가상 프로세스(203)가 악성 코드 등에 감염되는 경우에도 실제 자원(204)에 악성 코드가 감염되지 않고, 가상 자원(210)만 감염되도록 하여, 추후 가상 영역(201)을 제거하는 것만으로 용이하게 악성 코드를 제거할 수 있는 효과를 얻을 수 있다. 가상 자원(210)은 가상 파일시스템, 가상 레지스트리, 가상 객체 등을 포함하여 구성될 수 있는데, 이 밖에도 가상 프로세스가 동작하면서 사용하기 위한 시스템 자원들이 포함될 수 있다.In operation S901, the
단계 S902에서는 가상 프로세스(203)를 구동한다. 상기 가상 프로세스(203)는 상기 가상화 에이전트(230)를 통하여 구동될 수 있는데, 실제 프로세스 구동은 일반적인 실제 프로세스(202)의 구동과 마찬가지로 구동되며, 가상 프로세스(203)로 관리하기 위하여 가상 프로세스 데이터베이스(220)에 가상 프로세스(203)에 대한 정보를 저장할 수 있다.In step S902, the
단계 S903에서는 상술한 바와 같이 구동된 프로세스에 대한 정보를 가상 프로세스 데이터베이스(220)에 저장하여 상기 프로세스를 가상 프로세스(203)로 관리할 수 있도록 한다. 상기 가상 프로세스 데이터베이스(220)에 저장되는 가상 프로세스(203)에 대한 정보는 가상 프로세스(203)들의 PID(Process IDentifier)에 관한 정보일 수 있으며, 이 밖에도 프로세스를 식별할 수 있는 정보라면 어떤 형태의 정보라도 가능하다.In operation S903, the virtual process database 220 may store information about the process driven as described above, so that the process may be managed by the
단계 S904에서는 단계 S903에서 가상 프로세스 데이터베이스(220)에 저장한 가상 프로세스(203)들을 제어한다. 상기 가상 프로세스(203)들은 가상 자원(210)만을 사용하여 동작하며, 실제 자원(204)에 접근하거나 실제 프로세스(202)와 통신할 수 없도록 제어될 수 있다. 이를 통하여 가상 프로세스(203)들이 악성 코드에 감염되는 경우라도 실제 자원(204) 또는 실제 프로세스(202)가 이에 감염되는 것을 방지할 수 있으며, 가상 영역(201)을 제거하고 재설치 하는 것만으로 용이하게 악성 코드에 감염된 시스템을 복구할 수 있는 효과를 얻을 수 있다.In step S904, the
본 발명의 일실시예에 따른 가상화 보안 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The virtualization security method according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed by 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. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
도 1은 종래의 기술에 따른 악성 코드의 전염 과정을 도시하는 도면이다.1 is a diagram illustrating a process of infecting malicious code according to the related art.
도 2는 본 발명의 일실시예에 따른 가상화 보안 시스템의 내부 구성을 도시하는 구성도이다.2 is a block diagram showing an internal configuration of a virtualization security system according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 등록된 프로그램들을 가상 프로세스로 구동시키는 방법을 도시하는 도면이다.3 is a diagram illustrating a method of driving registered programs in a virtual process in a virtualization security system according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 따른 가상화 보안 시스템에서 새로 구동되는 프로세스를 확인하여 가상 프로세스를 등록하는 방법의 흐름을 도시하는 흐름도이다.4 is a flowchart illustrating a method of registering a virtual process by checking a newly started process in a virtualization security system according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 따른 가상화 보안 시스템에서 가상 파일 시스템에 데이터를 기록하고 쓰는 방법을 도시하는 도면이다.5 is a diagram illustrating a method of writing and writing data to a virtual file system in a virtualization security system according to an embodiment of the present invention.
도 6은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 COM 서버를 찾는 경우를 도시하는 도면이다.6 is a diagram illustrating a case where a process finds a COM server in a virtualization security system according to an embodiment of the present invention.
도 7은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 윈도우 핸들 목록 데이터베이스를 찾는 경우를 도시하는 도면이다.7 is a diagram illustrating a case where a process finds a window handle list database in a virtualization security system according to an embodiment of the present invention.
도 8은 본 발명의 일실시예에 따른 가상화 보안 시스템에서 프로세스가 전역 훅을 수행하는 경우를 도시하는 도면이다.8 is a diagram illustrating a case where a process performs a global hook in a virtualization security system according to an embodiment of the present invention.
도 9는 본 발명의 일실시예에 따른 가상화 보안 방법의 흐름을 도시하는 흐름도이다.9 is a flowchart illustrating a flow of a virtualization security method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
201: 가상영역 (Virtual Area)201: virtual area
202: 실제 프로세스 (Real Process)202: Real Process
203: 가상 프로세스 (Virtual Process)203: Virtual Process
210: 가상자원 (Virtual Resource)210: virtual resource
220: 가상 프로세스 데이터베이스 (Virtual Process Database)220: Virtual Process Database
230: 가상화 에이전트 (Virtualization Agent)230: Virtualization Agent
240: 가상화 엔진 (Virtualization Engine)240: Virtualization Engine
250: 가상화 프로그램 목록 데이터베이스 (Virtualization Program List Database)250: Virtualization Program List Database
260: 가상 COM 서버 (Virtual COM Server)260: Virtual COM Server
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090109139A KR101049916B1 (en) | 2009-11-12 | 2009-11-12 | Virtualization Security System and Methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090109139A KR101049916B1 (en) | 2009-11-12 | 2009-11-12 | Virtualization Security System and Methods |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110052194A KR20110052194A (en) | 2011-05-18 |
KR101049916B1 true KR101049916B1 (en) | 2011-07-15 |
Family
ID=44362350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090109139A KR101049916B1 (en) | 2009-11-12 | 2009-11-12 | Virtualization Security System and Methods |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101049916B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150278512A1 (en) | 2014-03-28 | 2015-10-01 | Intel Corporation | Virtualization based intra-block workload isolation |
KR102130807B1 (en) * | 2020-01-29 | 2020-07-06 | 주식회사 두두아이티 | Apparatus and method for providing cyber security training content |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090048293A (en) * | 2008-06-17 | 2009-05-13 | (주)노애드 | Apparatus and method of managing system resources of computer and processes |
KR20090100614A (en) * | 2008-03-20 | 2009-09-24 | 삼성전자주식회사 | Virtual environment system and operating method of the system |
-
2009
- 2009-11-12 KR KR1020090109139A patent/KR101049916B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090100614A (en) * | 2008-03-20 | 2009-09-24 | 삼성전자주식회사 | Virtual environment system and operating method of the system |
KR20090048293A (en) * | 2008-06-17 | 2009-05-13 | (주)노애드 | Apparatus and method of managing system resources of computer and processes |
Also Published As
Publication number | Publication date |
---|---|
KR20110052194A (en) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9852001B2 (en) | Compliance-based adaptations in managed virtual systems | |
US9477520B2 (en) | Registering and accessing virtual systems for use in a managed system | |
US10353724B2 (en) | Automatic optimization for virtual systems | |
US9710482B2 (en) | Enforcement of compliance policies in managed virtual systems | |
US9563460B2 (en) | Enforcement of compliance policies in managed virtual systems | |
US8234640B1 (en) | Compliance-based adaptations in managed virtual systems | |
US9697019B1 (en) | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine | |
US8839246B2 (en) | Automatic optimization for virtual systems | |
US8949826B2 (en) | Control and management of virtual systems | |
US9038062B2 (en) | Registering and accessing virtual systems for use in a managed system | |
US8495750B2 (en) | Filesystem management and security system | |
KR101049916B1 (en) | Virtualization Security System and Methods | |
US20220129593A1 (en) | Limited introspection for trusted execution environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140701 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151113 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160620 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |