KR100931518B1 - How to Protect Programs Using Virtual Desktops - Google Patents

How to Protect Programs Using Virtual Desktops Download PDF

Info

Publication number
KR100931518B1
KR100931518B1 KR1020080037258A KR20080037258A KR100931518B1 KR 100931518 B1 KR100931518 B1 KR 100931518B1 KR 1020080037258 A KR1020080037258 A KR 1020080037258A KR 20080037258 A KR20080037258 A KR 20080037258A KR 100931518 B1 KR100931518 B1 KR 100931518B1
Authority
KR
South Korea
Prior art keywords
program
virtual desktop
desktop
switching
default
Prior art date
Application number
KR1020080037258A
Other languages
Korean (ko)
Other versions
KR20090111576A (en
Inventor
정상민
남성일
Original Assignee
주식회사 안철수연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 안철수연구소 filed Critical 주식회사 안철수연구소
Priority to KR1020080037258A priority Critical patent/KR100931518B1/en
Publication of KR20090111576A publication Critical patent/KR20090111576A/en
Application granted granted Critical
Publication of KR100931518B1 publication Critical patent/KR100931518B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 가상 데스크탑을 이용한 컴퓨터 프로그램 보호방법에 관한 것이다. 즉, 본 발명에서는 가상 데스크탑을 이용하여 컴퓨터 프로그램을 보호하는 방법에 있어서, 프로그램이 수행되는 과정 중에 동일 디폴트 데스크탑상 존재하는 악성 프로그램에 의해서 온라인 게임이나 온라인 뱅킹 등의 프로그램에서 화면 정보 또는 사용자 입력 데이터를 빼내가거나 비정상적인 입력 데이터가 생성되는 문제와 무인 발권기 등의 단일 프로그램 수행환경에서 비인가된 사용자의 입력을 처리하는 프로그램들이 수행되는 문제를 해결하기 위해서, 별도의 논리적으로 격리된 가상 데스크탑에서 보호가 필요한 프로그램만이 실행되도록 함으로써 비인가된 접근을 차단하여 프로그램의 정보를 보다 안전하게 보호할 수 있도록 한다.The present invention relates to a computer program protection method using a virtual desktop. That is, in the present invention, in the method of protecting a computer program using a virtual desktop, screen information or user input data in a program such as an online game or online banking by a malicious program existing on the same default desktop during the process of executing the program. In order to solve the problem of extracting or generating abnormal input data and executing programs that process unauthorized user inputs in a single program execution environment such as an unattended ticketing machine, protection is required in a separate logically isolated virtual desktop. By allowing only programs to run, you can block unauthorized access to make your program more secure.

가상 데스크탑, 보안, 해킹, 윈도우, 오브젝트 Virtual desktop, security, hacking, windows, objects

Description

가상 데스크탑을 이용한 프로그램 보호 방법{METHOD FOR PROTECTING PROGRAM USING VIRTUAL DESKTOP}How to protect programs using virtual desktops {METHOD FOR PROTECTING PROGRAM USING VIRTUAL DESKTOP}

본 발명은 컴퓨터 프로그램(computer program)의 보안기술에 관한 것으로, 특히 가상 데스크탑(virtual desktop)을 이용하여 보호가 필요한 컴퓨터 프로그램의 동작 공간을 디폴트 데스크탑(default desktop)으로부터 논리적으로 분리시킴으로써, 디폴트 데스크탑 상에서 불법적으로 접근하려는 시도로부터 컴퓨터 프로그램을 보호하는 가상 데스크탑을 이용한 컴퓨터 프로그램 보호방법에 관한 것이다.The present invention relates to a security technology of a computer program, and in particular, by using a virtual desktop to logically separate the operating space of the computer program that needs protection from the default desktop, The present invention relates to a method of protecting a computer program using a virtual desktop that protects the computer program from an illegal access attempt.

최근 들어, 정보 통신망과 PC(Personal Computer)의 발달 및 보급의 대중화에 인터넷(internet)이 결합되면서 기존에 오프라인(off-line)으로 처리하였던 각종 정보 제공 서비스 및 상거래 행위들이 온라인(on-line) 방식으로 시간과 장소에 관계없이 처리가 가능하게 되었다. 이에 따라 시스템 서버(system server)와 클라이언트(client) 사이에 실시간 멀티미디어(multimedia) 통신이 가능해짐에 따라 온라인 네트워크(network)을 이용한 각종 네트워크 게임(network game)이나, 은행, 관공서 등에서의 온라인 입출금, 무인 발권 등의 서비스가 가능하여 급속도로 확산 되고 있다.Recently, as the Internet has been combined with the development and popularization of information and communication networks and personal computers, various information providing services and commerce activities that were previously processed off-line are on-line. In this way, it can be processed regardless of time and place. As a result, real-time multimedia communication is possible between the system server and the client, such as online game deposit and withdrawal from various network games, banks, and public offices. Unmanned ticketing and other services are available and are rapidly spreading.

그러나, 위와 같은 온라인 서비스를 위한 컴퓨터 프로그램들의 대부분은 그 특성상 사용자의 입력을 받아서 동작하게 되어 있다. 이에 따라 이 과정에서 사용자가 입력하는 내용 또는 화면에 표시하는 정보 등을 해당 프로그램과 동일한 디폴트 데스크탑에서 동작하는 다른 악성 프로그램 등이 쉽게 접근해서 가져가거나 변경할 수 있는 등의 여지가 있어 보안상 취약한 문제점이 있다.However, most of the computer programs for the online service as described above are operated by the user input. Accordingly, in this process, the contents entered by the user or the information displayed on the screen can be easily accessed and changed or changed by other malicious programs running on the same default desktop as the corresponding program. have.

위와 같이, 클라이언트 컴퓨터로부터 개인의 정보를 빼내가는 악성 프로그램으로는 대표적으로 키 로거(key logger)라는 해킹 툴(hacking tool)이 있다. 키 로거는 사용자의 키보드 입력 정보를 가로채 파일로 저장하거나 네트워크를 통해 원격으로 전송하는 등의 역할을 수행하는 악성 프로그램으로, 운영체제 레벨(operating system level), 드라이버 레벨(driver level), 응용 어플리케이션 레벨(application level) 등 다양한 계층(layer)에서 존재하여 자신의 존재를 사용자에게 드러내지 않고 개인 정보를 수집한다.As described above, a malicious program that extracts personal information from a client computer includes a hacking tool called a key logger. A key logger is a malicious program that intercepts the user's keyboard input information and saves it as a file or transmits it remotely over a network. It is an operating system level, driver level, and application level It exists in various layers such as application level to collect personal information without revealing its existence to the user.

따라서 악의적인 사용자가 위와 같은 키 로거 등의 해킹 툴을 이용하는 경우 온라인 게임 등에서는 게임의 화면 정보를 쉽게 얻어와서 그 데이터를 분석하는 과정과 게임 상에서 필요한 동작을 자동으로 입력하도록 처리하여 사용자의 개입 없이 게임이 수행되도록 해주는 등의 해킹 동작으로 악용할 수 있으며, 무인 발권기 등에서는 사용자의 입력을 처리하는 단말기 프로그램에 접근하여 프로그램이 비정상적으로 동작되도록 하거나 사용자로부터 입력되는 중요한 개인 정보를 빼내는 해킹동작으로 악용할 수 있어 컴퓨터 프로그램의 보안상 매우 심각한 문제점이 있었다.Therefore, when a malicious user uses a hacking tool such as a key logger, the online game can easily obtain the screen information of the game, analyze the data, and automatically input necessary actions in the game without user intervention. It can be exploited as a hacking operation such as allowing a game to be executed.In an unmanned ticket machine, such as a hacking operation that accesses a terminal program that processes a user's input and causes the program to operate abnormally or extracts important personal information input from the user. There was a very serious problem in the security of computer programs.

상술한 목적을 달성하기 위한 본 발명은 컴퓨터 프로그램 보호 방법으로서, 디폴트 데스크탑 상에서 보호가 필요한 프로그램 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와, 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와, 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of protecting a computer program, the method comprising: creating a virtual desktop for executing a corresponding program when a program execution request is required on a default desktop, and generating all threads for executing the program. And executing the program by the thread on the virtual desktop.

또한, 본 발명은 컴퓨터 프로그램 보호 방법으로서, 디폴트 데스크탑 상에서 보호가 필요한 프로그램 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와, 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와, 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계와, 상기 프로그램 실행 중 상기 가상 데스크탑 상 생성되는 모든 윈도우를 검사하는 단계와, 상기 검사결과 비정상 윈도우 발견 시 해당 윈도우를 삭제하거나 보안 위험을 통지하는 단계를 포함한다.In addition, the present invention provides a method for protecting a computer program, the method comprising: creating a virtual desktop for executing a corresponding program when a program execution request is required on a default desktop; switching all threads for executing the program to the virtual desktop; Executing the program by the thread on the virtual desktop; inspecting all windows created on the virtual desktop during execution of the program; deleting the window or deleting a security risk when an abnormal window is found. Informing.

또한, 본 발명은 컴퓨터 프로그램 보호 방법으로서, 디폴트 데스크탑 상에서 보호가 필요한 프로그램 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와, 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와, 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계와, 상기 프로그램 실행 중 상기 디폴트 데스크탑 상 모든 프로그램의 커널 오브젝트를 검사하는 단계와, 상기 커널 오브젝트 검사결과 상기 보호 프로그램이 아닌 다른 프로그램이 생성한 가상 데스크탑 오브젝트 핸들 발견 시 상기 가상 데스크탑의 보안 위험을 통지시키는 단계를 포함한다.In addition, the present invention provides a method for protecting a computer program, the method comprising: creating a virtual desktop for executing a corresponding program when a program execution request is required on a default desktop; switching all threads for executing the program to the virtual desktop; Executing the program by the thread on the virtual desktop; inspecting kernel objects of all programs on the default desktop during execution of the program; and generating a program other than the protected program as a result of the kernel object inspection. Notifying the security risk of the virtual desktop upon discovery of a virtual desktop object handle.

본 발명에서는 가상 데스크탑을 이용하여 컴퓨터 프로그램을 보호하는 방법에 있어서, 프로그램이 수행되는 과정 중에 동일 디폴트 데스크탑상 존재하는 악성 프로그램에 의해서 온라인 게임이나 온라인 뱅킹 등의 프로그램에서 화면 정보 또는 사용자 입력 데이터를 빼내가거나 비정상적인 입력 데이터가 생성되는 문제와 무인 발권기 등의 단일 프로그램 수행환경에서 비인가된 사용자의 입력을 처리하는 프로그램들이 수행되는 문제를 해결하기 위해서, 별도의 논리적으로 격리된 가상 데스크탑에서 보호가 필요한 프로그램만이 실행되도록 함으로써 비인가된 접근을 차단하여 프로그램의 정보를 보다 안전하게 보호할 수 있는 이점이 있다.In the present invention, a method of protecting a computer program using a virtual desktop, screen information or user input data is extracted from a program such as an online game or an online banking by a malicious program existing on the same default desktop during the execution of the program. In order to solve the problem of generating input or abnormal input data and executing programs that process input from unauthorized users in a single program execution environment such as an unmanned ticketing machine, only programs that need protection in a separate logically isolated virtual desktop are executed. By having it run, you have the advantage of keeping your program's information safer by blocking unauthorized access.

따라서 본 발명은 컴퓨터 프로그램의 보호에 있어서, 보호하고자 하는 정상 프로그램이 실행 중에 사용자의 입력정보나 화면정보의 유출 또는 인위적인 잘못된 데이터의 입력을 위한 악성 프로그램의 접근을 차단시키며, 또한 단일의 정상 프로그램만 수행되어야 하는 시스템 상에서 정상 프로그램에 대한 악성 프로그램의 접근을 차단시킬 수 있도록 하는 가상 데스크탑을 이용한 컴퓨터 프로그램 보호방법을 제공하고자 한다.Accordingly, in the protection of a computer program, the present invention prevents access to malicious programs for leaking user input information or screen information or input of artificially invalid data while a normal program to be protected is executed, and only a single normal program. It is intended to provide a computer program protection method using a virtual desktop that can block malicious programs from accessing normal programs on a system to be executed.

이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the present invention.

아래에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted when it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.

도 1은 본 발명의 실시 예에 따른 컴퓨터 프로그램 보호를 위한 가상 데스크 탑(virtual desktop)(190) 구현 개념을 도시한 것으로, 통상의 컴퓨터 OS 운영체제(100)에서는 도 1에서 보여지는 바와 같이, 디폴트 데스크탑(default desktop)(180) 상에 사용자에 의해 실행 요청된 다양한 프로그램(110)을 포함하여 로그온(logon)(114), 스크린 세이버(screen saver)(112) 등의 프로그램이 존재하며, 동일 디폴트 데스크탑(180) 상에서는 프로그램간 정보의 공유가 가능하다.FIG. 1 illustrates a concept of implementing a virtual desktop 190 for protecting a computer program according to an embodiment of the present invention. In a typical computer OS operating system 100, as shown in FIG. Programs such as logon 114, screen saver 112, and the like, including various programs 110 requested to be executed by the user on the default desktop 180, have the same default value. Information may be shared between programs on the desktop 180.

이에 따라, 디폴트 데스크탑(180)상 다른 프로그램들에 불법적으로 접근하여 프로그램의 화면 정보나 사용자로부터 입력되는 중요한 개인 정보를 해킹하고자 하는 디폴트 데스크탑 해킹 모듈(hacking module)(116)이 설치되어 있는 경우, 사용자에 의해 실행된 프로그램(110)의 화면 정보나 키입력 정보 등이 쉽게 해킹 당할 수 있는 위험에 노출되어 있음은 전술한 바와 같다.Accordingly, when a default desktop hacking module 116 is installed that illegally accesses other programs on the default desktop 180 and attempts to hack screen information of a program or important personal information input from a user, As described above, the screen information or the key input information of the program 110 executed by the user is exposed to a risk of being easily hacked.

따라서, 본 발명에서는 위와 같은 디폴트 데스크탑(180) 상에서의 해킹을 방지하고자 도 1에서 보여지는 바와 같이, 가상 데스크탑 보안모듈(118)을 통해 보호가 필요한 프로그램(110)에 대해서는 디폴트 데스크탑 해킹 모듈(116)이 설치된 디폴트 데스크탑(180)과 논리적으로 분리된 가상 데스크탑(190)으로 이동시켜 가상 데스크탑(190)에서 프로그램(110)만을 실행시킴으로써, 해킹을 방지시키도록 한다.Therefore, in the present invention, as shown in FIG. 1 to prevent hacking on the default desktop 180 as described above, the default desktop hacking module 116 for the program 110 that requires protection through the virtual desktop security module 118. ) Is moved to the virtual desktop 190 logically separated from the installed default desktop 180 to execute only the program 110 in the virtual desktop 190, thereby preventing hacking.

이하, 도 1을 참조하여, 가상 데스크탑을 이용한 컴퓨터 프로그램의 보호를 위한 동작을 상세히 설명하기로 한다.Hereinafter, an operation for protecting a computer program using a virtual desktop will be described in detail with reference to FIG. 1.

먼저, 사용자가 온라인 게임이나 온라인 뱅킹, 또는 무인 발권기 등에서 해당 서비스를 위한 프로그램(110)을 실행시키는 경우, 위와 같은 프로그램(110)은 OS 운영체제(100)상 디폴트 데스크탑(180)에서 실행되게 된다. 그러면, 본 발명에 따라 디폴트 데스크탑(180)상에 구현되는 가상 데스크탑 보안모듈(118)에서는 위 사용자에 의해 요청된 프로그램(110)이 온라인 게임이나, 온라인 뱅킹 또는 무인 발권기 등 외부로부터의 해킹에 대비해 보호가 필요하도록 설정된 프로그램인지를 검사한다.First, when a user executes a program 110 for a corresponding service in an online game, online banking, or an unattended ticketing machine, the program 110 as described above is executed in the default desktop 180 on the OS operating system 100. Then, in the virtual desktop security module 118 implemented on the default desktop 180 according to the present invention, the program 110 requested by the user is prepared for hacking from the outside such as an online game, online banking or an unmanned ticket machine. Check if the program is configured to require protection.

이어, 가상 데스크탑 보안모듈(118)은, 검사결과 사용자에 의해 실행된 프로그램(110)이 보호가 필요한 프로그램인 경우에는 디폴트 데스크탑 해킹 모듈(116)이 설치된 디폴트 데스크탑(180)과 논리적으로 분리된 가상 데스크탑(190)으로 이동시켜 가상 데스크탑(190)에서 프로그램(110)만이 안정적으로 실행될 수 있도록 한다. 이때, 프로그램(110)을 가상 데스크탑(190)으로 이동시키는 시점이 중요한데, 프로그램(110)이 디폴트 데스크탑(180)에서 실행되어 사용자의 I/O(Input/Output) 입력 처리가 이루어지거나 그에 따른 윈도우(window) 화면이 생성되는 경우에는 해당 프로그램(110)의 실행이 디폴트 데스크탑(180)으로 고정되기 때문이다.Subsequently, when the program 110 executed by the user is a program that requires protection, the virtual desktop security module 118 is a virtually separated virtual from the default desktop 180 on which the default desktop hacking module 116 is installed. Moving to the desktop 190 allows only the program 110 to be stably executed in the virtual desktop 190. At this time, it is important to move the program 110 to the virtual desktop 190. The program 110 is executed in the default desktop 180 to process input / output (I / O) input of the user or a window accordingly. This is because the execution of the program 110 is fixed to the default desktop 180 when a window screen is generated.

이에 따라 가상 데스크탑 보안모듈(118)은, 프로그램(110)의 실행에 따른 메인 쓰레드(main thread)의 시작 시점을 검출하여 메인 쓰레드와 프로그램(110)의 다양한 기능을 위한 멀티 쓰레드(multi thread)를 차례로 가상 데스크탑(190)으로 스위칭(switching) 이동시키는 것에 의해 프로그램(110)에 대한 가상 데스크탑(190) 이동을 수행하게 된다.Accordingly, the virtual desktop security module 118 detects a start time of the main thread according to the execution of the program 110, thereby generating a multi thread for various functions of the main thread and the program 110. In turn, the virtual desktop 190 moves with respect to the program 110 by switching to the virtual desktop 190.

즉, 메인 쓰레드라 함은 프로그램이 실행될 때 최초로 만들어져 프로그램의 최초 시작을 처리하는 쓰레드로, 가상 데스트탑 보안모듈(118)은, 위 메인 쓰레드 가 최초로 시작되는 시점을 검출하여 메인 쓰레드에 의해 디폴트 데스크탑(180)상 해당 프로그램(110)의 I/O 입력이나 윈도우 화면 처리가 만들어 지기전에 가상 데스크탑(190)으로 스위칭 이동시키게 된다. 이때 모든 쓰레드에 대한 가상 데스크탑(190) 상으로의 스위칭을 위해서 가상 데스크탑 보안 모듈(118)은 각 쓰레드가 실행 시 참조하도록 되어 있는 OS(Operating System) DLL(Dynamic Linking Library) 함수모듈내 DLL 메인 함수의 내용을 가상 데스크탑(190)으로의 스위칭을 명령하는 내용으로 변경하는 것을 통해 수행하도록 한다.In other words, the main thread is a thread that is created first when the program is executed to handle the initial start of the program. The virtual desktop security module 118 detects when the main thread is first started, and then executes the default desktop by the main thread. On 180, before the I / O input or window screen processing of the corresponding program 110 is made, the switching is performed to the virtual desktop 190. At this time, in order to switch to the virtual desktop 190 for all threads, the virtual desktop security module 118 is a DLL main function in an operating system (OS) dynamic linking library (OS) function module that each thread is referred to when executing. It is to be performed by changing the contents of the command to the contents to switch to the virtual desktop 190.

이에 따라 가상 데스크탑(190)에서 실행되는 프로그램(110)은 OS운영체제(100) 상 디폴트 데스크탑(180)에 구현되어 동일한 디폴트 데스크탑(180)에서 실행되는 다른 프로그램의 정보를 해킹하도록 구현되는 디폴트 데스크탑 해킹 모듈(116)에 의한 접근이 원천적으로 차단되어 보안상 안전하게 실행될 수 있게 되는 것이다.Accordingly, the program 110 executed in the virtual desktop 190 is implemented in the default desktop 180 on the OS operating system 100, and the default desktop hack implemented to hack information of other programs executed in the same default desktop 180. Access by the module 116 is essentially blocked so that it can be safely executed.

도 2는 본 발명의 실시 예에 따른 컴퓨터 상에서 가상 데스크탑을 이용한 프로그램 보호 제어 흐름을 도시한 것이다. 이하, 도 1 및 도 2를 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.2 illustrates a program protection control flow using a virtual desktop on a computer according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 1 and 2.

먼저, 사용자가 키입력을 통해 온라인 게임이나 온라인 뱅킹 또는 무인 발권기 등에서 해당 서비스를 위한 컴퓨터 프로그램의 실행을 요청하는 경우 해당 프로그램이 OS운영체제(100)의 디폴트 데스크탑(180)에서 실행된다. First, when a user requests execution of a computer program for a corresponding service in an online game, online banking or an unattended ticketing machine through a key input, the corresponding program is executed in the default desktop 180 of the OS operating system 100.

그러면, 가상 데스크탑 보안 모듈(118)은 (S200)단계에서 동일한 디폴트 데스크탑(180)에 위치하여 사용자의 키입력에 따른 프로그램(110)의 실행 요청을 수 신하고, (S202)단계에서 사용자에 의해 실행 요청된 프로그램(110)이 온라인 게임이나, 온라인 뱅킹 또는 무인 발권기 등에서 실행되는 외부로부터의 해킹에 대비해 보호가 필요하도록 설정된 프로그램인지 여부를 검사한다.Then, the virtual desktop security module 118 is located in the same default desktop 180 in step (S200) and receives a request to execute the program 110 according to the user's key input, and in step (S202) by the user It is checked whether the requested program 110 is a program that is required to be protected against hacking from an external game executed in an online game or an online banking or an unmanned ticketing machine.

이때, 실행 요청된 프로그램(110)이 보호가 필요하도록 설정된 프로그램이 아닌 경우 가상 데스크탑 보안 모듈(118)은 (S204)단계로 진행해서 디폴트 데스크탑(180) 상에서 요청된 프로그램(110)이 정상적으로 실행되도록 해당 프로그램(110)의 구동에 관여하지 않는다.In this case, when the program 110 requested to be executed is not a program set to require protection, the virtual desktop security module 118 proceeds to step S204 to allow the requested program 110 to be normally executed on the default desktop 180. It does not participate in the operation of the program 110.

그러나, 이와 달리, 사용자에 의해 실행 요청된 프로그램(110)이 온라인 게임이나, 온라인 뱅킹 또는 무인 발권기 등에서 실행되는 외부로부터의 해킹에 대비해 보호가 필요하도록 설정된 프로그램인 경우 가상 데스크탑 보안 모듈(118)은 (S202)단계에서 (S206)단계로 진행해서 요청된 프로그램(110)의 실행에 따른 메인 쓰레드의 시작을 검출하게 된다.However, in contrast, when the program 110 requested to be executed by the user is a program that is required to be protected against hacking from an external game executed in an online game or an online banking or an unattended ticketing machine, the virtual desktop security module 118 The operation proceeds from step S202 to step S206 to detect the start of the main thread according to the execution of the requested program 110.

통상, 프로그램이 실행되기 위해서는 프로그램의 코드를 실제로 수행하는 쓰레드가 만들어져 동작하게 되는데, 프로그램이 실행될 때 최초로 만들어져 프로그램의 최초 시작을 처리하는 메인 쓰레드가 존재한다. 이때 위 메인 쓰레드가 최초로 시작되는 시점을 검출하여 메인 쓰레드에 의해 디폴트 데스크탑(180)상 해당 프로그램의 I/O 입력이나 윈도우 화면 처리가 만들어지기 전 가상 데스크탑으로 전환하는 것이 필요하다. 이는 임의의 프로그램이 디폴트 데스크탑(180) 상에서 실행되어 사용자의 I/O 입력 처리가 이루어지거나, 그에 따른 윈도우 화면이 생성되는 경우 해당 프로그램의 실행은 디폴트 데스크탑(180)으로 고정되기 때문이다.In general, a program is created to run a program that actually executes the program code. There is a main thread that is created when the program is executed and handles the initial start of the program. At this time, it is necessary to detect when the main thread is started for the first time and switch to the virtual desktop before the I / O input or window screen processing of the corresponding program is made on the default desktop 180 by the main thread. This is because if a program is executed on the default desktop 180 and a user's I / O input processing is performed or a window screen is generated accordingly, execution of the program is fixed to the default desktop 180.

이에 따라, 가상 데스크탑 보안 모듈(118)은 (S208)단계에서, 실행 요청된 프로그램(110)의 메인 쓰레드가 시작되어 사용자의 I/O 입력 처리나 프로그램(110)과 관련된 윈도우 화면이 생성되기 전 프로그램(110)의 실행 논리적 기반을 디폴트 데스크탑(180)에서 가상 데스크탑(190)으로 이동시킨다. Accordingly, in step S208, the virtual desktop security module 118 starts a main thread of the program 110 requested to be executed before the user's I / O input processing or a window screen related to the program 110 is generated. The execution logical base of the program 110 is moved from the default desktop 180 to the virtual desktop 190.

이때 가상 데스크탑(190)이라 함은 OS 운영체제(100)상 디폴트 데스크탑(180)과 논리적으로 분리된 데스크탑을 말하는 것으로, 본 발명에서는 이에 더하여 가상 데스크탑을 생성하는 커널 오브젝트의 접근 권한 리스트(ACL)를 널(Null)로 설정하여 다른 논리적 공간에 위치하는 디폴트 데스크탑 해킹 모듈(116)로부터의 접근 차단성을 더 높일 수 있도록 한다.In this case, the virtual desktop 190 refers to a desktop logically separated from the default desktop 180 on the OS operating system 100. In addition, in the present invention, the access authority list (ACL) of the kernel object generating the virtual desktop is added. Set to null to further increase access blocking from the default desktop hacking module 116 located in another logical space.

한편, 프로그램(110)의 실행 기반이 가상 데스크탑(190)으로 이동되도록 함에 있어서는 프로그램(110)의 메인 쓰레드를 먼저 가상 데스크탑(190)으로 스위칭시킨 후, 프로그램(110)에 필요한 멀티 쓰레드를 각각 차례로 가상 데스크탑(190)으로 스위칭시켜 구현하게 된다. 이때 쓰레드에 대한 가상 데스크탑(190) 상으로의 스위칭을 위해서 가상 데스크탑 보안 모듈(118)은 각 쓰레드가 실행 시 참조하도록 되어 있는 OS DLL 함수모듈내 DLL 메인 함수의 내용을 가상 데스크탑(190)으로의 스위칭을 명령하는 내용으로 변경하는 것을 통해 수행하도록 한다.In the meantime, in order to move the execution base of the program 110 to the virtual desktop 190, the main thread of the program 110 is first switched to the virtual desktop 190, and then the multi-threads required for the program 110 are sequentially turned on. It is implemented by switching to the virtual desktop 190. At this time, in order to switch the thread to the virtual desktop 190, the virtual desktop security module 118 transfers the contents of the DLL main function in the OS DLL function module to which the thread is referred to at execution time. This is done by changing the switching to the command.

이어, 가상 데스크탑 보안 모듈(118)은 (S210)단계에서 가상 데스크탑(190)으로 스위칭된 프로그램(110)의 쓰레드들을 실행시켜 요청된 프로그램(110)을 가상 데스크탑(190)에서 실행시키게 된다. 이에 따라 가상 데스크탑(190)에서 실행되는 프로그램(110)은 OS운영체제(100) 상 디폴트 데스크탑(180)에 설치되어 동일한 디 폴트 데스크탑(180)에서 실행되는 다른 프로그램의 정보를 해킹하도록 구현된 디폴트 데스크탑 해킹 모듈(116)에 의한 접근이 차단되어 보안상 안전하게 실행될 수 있게 된다.Subsequently, the virtual desktop security module 118 executes the threads of the program 110 switched to the virtual desktop 190 in step S210 to execute the requested program 110 on the virtual desktop 190. Accordingly, the program 110 running on the virtual desktop 190 is installed on the default desktop 180 on the OS operating system 100 and is configured to hack information of other programs running on the same default desktop 180. Access by the hacking module 116 is blocked so that it can be safely executed.

한편, 위와 같이 프로그램(110)이 가상 데스크탑(190)에서 실행되므로 디폴트 데스크탑(180)에서는 프로그램(110) 실행에 따른 어떤 윈도우 화면도 생성되지 않는 바, 이를 해킹하고자 하는 디폴트 데스크탑(180)상 디폴트 데스크탑 해킹 모듈(116)은 해당 프로그램(110)이 다른 논리적 기반의 데스크탑에서 실행되고 있음을 의심하여 가상 데스크탑(190)을 공격하도록 강화될 수 있다. Meanwhile, since the program 110 is executed in the virtual desktop 190 as described above, no window screen is generated in the default desktop 180 according to the execution of the program 110. The default on the default desktop 180 to be hacked is the default. The desktop hacking module 116 may be enhanced to attack the virtual desktop 190 by suspecting that the program 110 is running on another logically based desktop.

이에 따라 본 발명의 가상 데스크탑 보안 모듈(118)은 (S212)단계에서 도 3에서 보여지는 바와 같이 가상 데스크탑(190) 상에서 프로그램(110)의 실행에 따른 윈도우 화면(152, 154)을 생성하는 윈도우 생성 쓰레드(150)를 통해 디폴트 데스크탑(180) 상에도 동일한 프로그램(110) 이름의 훼이크(fake) 윈도우 화면(152')을 생성하여 줌으로써, 디폴트 데스크탑 해킹 모듈(116)이 디폴트 데스크탑(180) 상 존재하는 프로그램(110)이 가상 데스크탑(190) 상에서 실행 중인 사실 자체를 모르도록 하여 보안성을 더 높일 수 있도록 한다.Accordingly, the virtual desktop security module 118 of the present invention generates the window screens 152 and 154 according to the execution of the program 110 on the virtual desktop 190 as shown in FIG. 3 in step S212. By creating a fake window screen 152 'having the same program 110 name on the default desktop 180 through the creation thread 150, the default desktop hacking module 116 is configured on the default desktop 180. The existing program 110 does not know the fact that it is running on the virtual desktop 190 to further increase the security.

이어, 가상 데스크탑 보안 모듈(118)은 (S214)단계에서 가상 데스크탑(190) 상에서 실행중인 프로그램(110)의 실행이 종료되는지 여부를 검사하고, 실행이 종료되는 경우 (S216)단계에서 프로그램(110)을 디폴트 데스크탑(180)으로 이동시킨다.Subsequently, the virtual desktop security module 118 checks whether execution of the program 110 running on the virtual desktop 190 is terminated in step S214, and if the execution ends, the program 110 in step S216. ) To the default desktop 180.

도 4는 본 발명의 다른 실시 예에 따른 컴퓨터 상에서 가상 데스크탑을 이용 한 프로그램 보호 제어 흐름을 도시한 것이다. 이하, 도 1 및 도 4를 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.4 illustrates a program protection control flow using a virtual desktop on a computer according to another embodiment of the present invention. Hereinafter, an embodiment of the present invention will be described in detail with reference to FIGS. 1 and 4.

먼저, 사용자가 키입력을 통해 온라인 게임이나 온라인 뱅킹 또는 무인 발권기 등에서 해당 서비스를 위한 컴퓨터 프로그램을 실행을 요청하는 경우 해당 프로그램이 OS운영체제(100)의 디폴트 데스크탑(180)에서 실행된다. First, when a user requests to execute a computer program for a corresponding service in an online game, online banking or an unattended ticketing machine through a key input, the corresponding program is executed in the default desktop 180 of the OS operating system 100.

그러면, 가상 데스크탑 보안 모듈(118)은 (S400)단계에서 동일한 디폴트 데스크탑(180)에 위치하여 사용자의 키입력에 따른 프로그램(110)의 실행 요청을 수신하고, (S402)단계에서 사용자에 의해 실행 요청된 프로그램(110)이 온라인 게임이나, 온라인 뱅킹 또는 무인 발권기 등에서 실행되는 외부로부터의 해킹에 대비해 보호가 필요하도록 설정된 프로그램인지 여부를 검사한다.Then, the virtual desktop security module 118 is located in the same default desktop 180 in step (S400) and receives a request for execution of the program 110 according to the user's key input, and is executed by the user in step (S402) It is checked whether the requested program 110 is a program that is required to be protected against hacking from an external game executed in an online game or an online banking or an unmanned ticket machine.

이때, 실행 요청된 프로그램(110)이 보호가 필요하도록 설정된 프로그램이 아닌 경우 가상 데스크탑 보안 모듈(118)은 (S404)단계로 진행해서 디폴트 데스크탑(180) 상에서 요청된 프로그램(110)이 정상적으로 실행되도록 해당 프로그램(110)의 실행에 관여하지 않는다.In this case, if the program 110 requested to be executed is not a program set to require protection, the virtual desktop security module 118 proceeds to step S404 to allow the requested program 110 to be normally executed on the default desktop 180. It is not involved in the execution of the program 110.

그러나, 이와 달리, 사용자에 의해 실행 요청된 프로그램(110)이 보호가 필요하도록 설정된 프로그램인 경우 가상 데스크탑 보안 모듈(118)은 (S402)단계에서 (S406)단계로 진행해서 요청된 프로그램(110)의 실행에 따른 메인 쓰레드의 시작을 검출하게 된다.However, in contrast, if the program 110 requested to be executed by the user is a program set to require protection, the virtual desktop security module 118 proceeds from step S402 to step S406 and the requested program 110. Detect the start of the main thread following execution of.

이어, 가상 데스크탑 보안 모듈(118)은 (S408)단계에서, 프로그램(110)의 메인 쓰레드가 시작되어 사용자의 I/O 입력 처리나 프로그램과 관련된 윈도우 화면이 생성되기 전 프로그램(110)의 실행 논리적 기반을 디폴트 데스크탑(180)에서 가상 데스크탑(190)으로 이동시킨다. 그런 후, 가상 데스크탑 보안 모듈(118)은 (S410)단계에서 가상 데스크탑(190)으로 스위칭된 프로그램(110)의 쓰레드들을 실행시켜 요청된 프로그램(110)을 가상 데스크탑(190)에서 실행시키게 된다. Subsequently, in step S408, the virtual desktop security module 118 starts the main thread of the program 110 and executes the execution logic of the program 110 before the user's I / O input processing or the window screen associated with the program is generated. Move the base from the default desktop 180 to the virtual desktop 190. Thereafter, the virtual desktop security module 118 executes the threads of the program 110 switched to the virtual desktop 190 in step S410 to execute the requested program 110 on the virtual desktop 190.

이에 따라 가상 데스크탑(190)에서 실행되는 프로그램(110)은 OS운영체제(100) 상 디폴트 데스크탑(180)에 설치됨으로써, 동일한 디폴트 데스크탑(180)에서 실행되는 다른 프로그램의 정보를 해킹하도록 구현된 디폴트 데스크탑 해킹 모듈(116)에 의한 접근이 차단되어 보안상 안전하게 실행될 수 있게 된다.Accordingly, the program 110 that is executed in the virtual desktop 190 is installed in the default desktop 180 on the OS operating system 100, so that the default desktop implemented to hack information of other programs executed in the same default desktop 180. Access by the hacking module 116 is blocked so that it can be safely executed.

한편, 위와 같이 온라인 게임이나 온라인 뱅킹 또는 무인 발권기 등에서 수행되는 보호가 필요하도록 설정된 프로그램(110)이 가상 데스크탑(190)에서 수행되어 더 이상 해킹이 불가능해 지는 경우, 이를 해킹하고자 하는 디폴트 데스크탑(180)상 디폴트 데스크탑 해킹 모듈(116)은 해당 프로그램(110)이 다른 논리적 기반의 데스크탑에서 실행되고 있음을 의심하여 가상 데스크탑(190) 상으로 진입하도록 강화될 수 있다. On the other hand, when the program 110, which is set to require protection performed in an online game, online banking or an unattended ticketing machine as described above, is performed in the virtual desktop 190, and no more hacking is possible, the default desktop 180 to be hacked is required. The default desktop hacking module 116 may be enhanced to enter onto the virtual desktop 190 in doubt that the program 110 is running on another logically based desktop.

이에 따라 본 발명의 가상 데스크탑 보안 모듈(118)은 (S412)단계에서 가상 데스크탑(190) 상 이동된 프로그램(110)의 실행 중 가상 데스크탑(190) 상에 생성되는 모든 윈도우를 검사하여 프로그램(110)과 관련되지 않는 비정상 윈도우가 존재하는지 여부를 검사한다. Accordingly, the virtual desktop security module 118 of the present invention examines all the windows created on the virtual desktop 190 during the execution of the program 110 moved on the virtual desktop 190 in step S412. Check whether there is an abnormal window that is not related to).

이때, 비정상 윈도우의 식별을 위해 가상 데스크탑 보안 모듈(118)은 가상 데스크탑(190)내 윈도우를 생성한 모든 쓰레드를 검사하여 가상 데스크탑(190)으로 이동되어 실행중인 프로그램(110)에 의해 생성된 쓰레드가 아닌 비정상 쓰레드가 있는지를 검사하고, 비정상 쓰레드에 의해 생성된 윈도우를 비정상 윈도우로 식별하게 된다.At this time, in order to identify an abnormal window, the virtual desktop security module 118 examines all the threads that created the window in the virtual desktop 190 and moves to the virtual desktop 190 to create a thread generated by the running program 110. It checks whether there is an abnormal thread, and identifies the window created by the abnormal thread as an abnormal window.

위와 같은 방법을 통해 비정상 윈도우의 존재를 검사한 결과, 가상 데스크탑(190)상 비정상 윈도우가 존재하는 것으로 검사되는 경우 가상 데스크탑 보안 모듈(118)은 (S414)단계에서 (S416)단계로 진행해서 가상 데스크탑(190)의 보안 위험을 컴퓨터 화면상 경고 메시지 표시 등으로 사용자에게 통보 또는 경고하여 사용자가 신속히 보안 위험에 대처할 수 있도록 한다.As a result of checking the existence of the abnormal window through the above method, when it is determined that the abnormal window exists on the virtual desktop 190, the virtual desktop security module 118 proceeds from step S414 to step S416 The security risk of the desktop 190 is notified or warned to the user by displaying a warning message on a computer screen so that the user can quickly cope with the security risk.

이때, 만일 보호 프로그램이 온라인 게임인 경우에는 비정상 윈도우를 생성한 프로그램이 해킹 모듈일 가능성이 매우 높고, 이는 사용자 자신에 의해 실행되었을 가능성이 높으므로, 해킹 위험에 대해 사용자에게 통지함 없이, 해당 비정상 윈도우를 자동으로 삭제하여 게임 프로그램에 대한 해킹을 방지시키도록 구현할 수도 있다. At this time, if the protection program is an online game, it is very likely that the program that generated the abnormal window is a hacking module, and this is most likely executed by the user, so that the abnormality is not noticed without notifying the user of the hacking risk. It can also be implemented to automatically delete windows to prevent hacking of game programs.

이어, 가상 데스크탑 보안 모듈(118)은 (S418)단계에서 가상 데스크탑(190) 상에서 실행중인 프로그램(110)의 실행이 종료되는지 여부를 검사하고, 실행이 종료되는 경우 (S420)단계에서 프로그램(110)을 디폴트 데스크탑(180)으로 이동시킨다.Subsequently, the virtual desktop security module 118 checks whether the execution of the program 110 running on the virtual desktop 190 is terminated in step S418, and if the execution ends, the program 110 in step S420. ) To the default desktop 180.

도 5는 본 발명의 다른 실시 예에 따른 컴퓨터 상에서 가상 데스크탑을 이용한 프로그램 보호 제어 흐름을 도시한 것이다. 이하, 도 1 및 도 5를 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.5 illustrates a program protection control flow using a virtual desktop on a computer according to another embodiment of the present invention. Hereinafter, an embodiment of the present invention will be described in detail with reference to FIGS. 1 and 5.

먼저, 사용자가 키입력을 통해 온라인 게임이나 온라인 뱅킹 또는 무인 발권기 등에서 해당 서비스를 위한 컴퓨터 프로그램을 실행을 요청하는 경우 해당 프로그램이 OS운영체제(100)의 디폴트 데스크탑(180)에서 실행된다. First, when a user requests to execute a computer program for a corresponding service in an online game, online banking or an unattended ticketing machine through a key input, the corresponding program is executed in the default desktop 180 of the OS operating system 100.

그러면, 가상 데스크탑 보안 모듈(118)은 (S500)단계에서 동일한 디폴트 데스크탑(180)에 위치하여 사용자의 키입력에 따른 프로그램(110)의 실행 요청을 수신하고, (S502)단계에서 사용자에 의해 실행 요청된 프로그램(110)이 온라인 게임이나, 온라인 뱅킹 또는 무인 발권기 등에서 실행되는 외부로부터의 해킹에 대비해 보호가 필요하도록 설정된 프로그램인지 여부를 검사한다.Then, the virtual desktop security module 118 is located in the same default desktop 180 in step S500 to receive a request for execution of the program 110 according to a user's key input, and is executed by the user in step S502. It is checked whether the requested program 110 is a program that is required to be protected against hacking from an external game executed in an online game or an online banking or an unmanned ticket machine.

이때, 실행 요청된 프로그램(110)이 보호가 필요하도록 설정된 프로그램이 아닌 경우 가상 데스크탑 보안 모듈(118)은 (S504)단계로 진행해서 디폴트 데스크탑(180) 상에서 요청된 프로그램(110)이 정상적으로 실행되도록 해당 프로그램(110)의 실행에 관여하지 않는다.In this case, if the program 110 requested to be executed is not a program set to require protection, the virtual desktop security module 118 proceeds to step S504 to allow the requested program 110 to be normally executed on the default desktop 180. It is not involved in the execution of the program 110.

그러나, 이와 달리, 사용자에 의해 실행 요청된 프로그램(110)이 보호가 필요하도록 설정된 프로그램인 경우 가상 데스크탑 보안 모듈(118)은 (S502)단계에서 (S506)단계로 진행해서 요청된 프로그램(110)의 실행에 따른 메인 쓰레드의 시작을 검출하게 된다.However, in contrast, if the program 110 requested to be executed by the user is a program set to require protection, the virtual desktop security module 118 proceeds from step S502 to step S506 and the requested program 110. Detect the start of the main thread following execution of.

이어, 가상 데스크탑 보안 모듈(118)은 (S508)단계에서, 프로그램(110)의 메인 쓰레드가 시작되어 사용자의 I/O 입력 처리나 프로그램과 관련된 윈도우 화면이 생성되기 전 프로그램(110)의 실행 논리적 기반을 디폴트 데스크탑(180)에서 가상 데스크탑(190)으로 이동시킨다. 그런 후, 가상 데스크탑 보안 모듈(118)은 (S510) 단계에서 가상 데스크탑(190)으로 스위칭된 프로그램(110)의 쓰레드들을 실행시켜 요청된 프로그램(110)을 가상 데스크탑(190)에서 실행시키게 된다. Subsequently, in step S508, the virtual desktop security module 118 starts the main thread of the program 110 and executes the execution logic of the program 110 before the user's I / O input processing or the window screen associated with the program is generated. Move the base from the default desktop 180 to the virtual desktop 190. Thereafter, the virtual desktop security module 118 executes the threads of the program 110 switched to the virtual desktop 190 at step S510 to execute the requested program 110 on the virtual desktop 190.

이에 따라 가상 데스크탑(190)에서 실행되는 프로그램(110)은 OS운영체제(100) 상 디폴트 데스크탑(180)에 설치됨으로써, 동일한 디폴트 데스크탑(180)에서 실행되는 다른 프로그램의 정보를 해킹하도록 구현된 디폴트 데스크탑 해킹 모듈(116)에 의한 접근이 차단되어 보안상 안전하게 실행될 수 있게 된다.Accordingly, the program 110 that is executed in the virtual desktop 190 is installed in the default desktop 180 on the OS operating system 100, so that the default desktop implemented to hack information of other programs executed in the same default desktop 180. Access by the hacking module 116 is blocked so that it can be safely executed.

한편, 위와 같이 온라인 게임이나 온라인 뱅킹 또는 무인 발권기 등에서 수행되는 보호가 필요하도록 설정된 프로그램(110)이 가상 데스크탑(190)에서 수행되어 더 이상 해킹이 불가능해 지는 경우, 이를 해킹하고자 하는 디폴트 데스크탑(180)상 디폴트 데스크탑 해킹 모듈(116)은 해당 프로그램(110)이 다른 논리적 기반의 데스크탑에서 실행되고 있음을 의심하여 가상 데스크탑(190) 상으로 진입하도록 강화될 수 있다. On the other hand, when the program 110, which is set to require protection performed in an online game, online banking or an unattended ticketing machine as described above, is performed in the virtual desktop 190, and no more hacking is possible, the default desktop 180 to be hacked is required. The default desktop hacking module 116 may be enhanced to enter onto the virtual desktop 190 in doubt that the program 110 is running on another logically based desktop.

이에 따라 본 발명의 가상 데스크탑 보안 모듈(118)은 (S512)단계에서 디폴트 데스크탑(180)상 실행되고 있는 모든 프로그램의 오브젝트(object) 객체를 검사하여, 프로그램(110)이 아닌 다른 프로그램에 의해 생성된 가상 데스크탑 오브젝트 핸들(object handle)이 존재하는지 여부를 검사한다.Accordingly, the virtual desktop security module 118 of the present invention examines the object objects of all programs running on the default desktop 180 in step S512, and generates them by a program other than the program 110. Checks whether a virtual desktop object handle exists.

위 검사결과 프로그램(110)이 아닌 디폴트 데스크탑(180) 상 다른 프로그램에 의해 생성된 가상 데스크탑(190)의 오브젝트 핸들이 존재하는 경우 가상 데스크탑 보안 모듈(118)은 (S514)단계에서 (S516)단계로 진행해서 가상 데스크탑(190)의 보안 위험을 사용자에게 알려 사용자가 신속히 보안 위험에 대처할 수 있도록 한 다.If there is an object handle of the virtual desktop 190 generated by another program on the default desktop 180 instead of the program 110, the virtual desktop security module 118 performs the step S516 in step S514. Proceeds to inform the user of the security risks of the virtual desktop 190 so that the user can quickly cope with the security risks.

이때, 만일 보호 프로그램이 온라인 게임인 경우에는 도 4의 실시 예 설명에서와 마찬가지로, 가상 데스크탑 오브젝트를 생성한 다른 프로그램이 해킹 모듈일 가능성이 매우 높고, 이는 사용자 자신에 의해 실행되었을 가능성이 높으므로, 해킹 위험에 대해 사용자에게 통지함 없이, 해당 비정상 윈도우를 자동으로 삭제하여 게임 프로그램에 대한 해킹을 방지시키도록 구현할 수도 있다. In this case, if the protection program is an online game, as in the description of the embodiment of FIG. 4, it is very likely that the other program that creates the virtual desktop object is a hacking module, which is most likely executed by the user. It may be implemented to prevent hacking of the game program by automatically deleting the abnormal window without notifying the user about the hacking risk.

이어, 가상 데스크탑 보안 모듈(118)은 (S418)단계에서 가상 데스크탑(190) 상에서 실행중인 프로그램(110)의 실행이 종료되는지 여부를 검사하고, 실행이 종료되는 경우 (S420)단계에서 프로그램(110)을 디폴트 데스크탑(180)으로 이동시킨다.Subsequently, the virtual desktop security module 118 checks whether the execution of the program 110 running on the virtual desktop 190 is terminated in step S418, and if the execution ends, the program 110 in step S420. ) To the default desktop 180.

한편, 가상 데스크탑을 이용한 프로그램 보호 방법의 또 다른 실시 예로써, 보호 대상 프로그램이 처음부터 가상 데스크탑에서 실행되도록 구현할 수도 있다. 즉, 보호 대상 프로그램에 대한 실행 요청이 있는 경우 보호 대상 프로그램보다 가상 데스크탑 보안모듈이 먼저 실행되도록 구현하여, 가상 데스크탑 보안모듈이 보호대상 프로그램 실행 전에 미리 가상 데스크탑을 생성한 후, 보호 대상 프로그램이 처음부터 위와 같이 미리 생성된 가상 데스크탑에서 실행되도록 할 수도 있다.Meanwhile, as another embodiment of the program protection method using the virtual desktop, the protected target program may be implemented to be executed on the virtual desktop from the beginning. In other words, if there is a request for execution of a protected program, the virtual desktop security module is executed before the protected program.The virtual desktop security module generates the virtual desktop before executing the protected program. You can also run it on a pre-created virtual desktop as shown above.

이때, 위와 같은 보호 대상 프로그램이 처음부터 가상 데스크탑에서 실행되는 경우에는 쓰레드를 일일이 스위칭할 필요가 없어져 가상 데스크탑 전환 작업이 보다 효율적으로 이루어질 수 있다.In this case, when the above-described protected program is executed in the virtual desktop from the beginning, it is not necessary to switch threads individually so that the virtual desktop switching operation can be performed more efficiently.

상기한 바와 같이 본 발명에서는 가상 데스크탑을 이용하여 컴퓨터상 프로그 램을 보호하는 방법에 있어서, 프로그램이 수행되는 과정 중에 동일 디폴트 데스크탑상 존재하는 악성 프로그램에 의해서 온라인 게임이나 온라인 뱅킹 등의 프로그램에서 화면 정보 또는 사용자 입력 데이터를 빼내가거나 비정상적인 입력 데이터가 생성되는 문제와 무인 발권기 등의 단일 프로그램 수행환경에서 비인가된 사용자의 입력을 처리하는 프로그램들이 수행되는 문제를 해결하기 위해서, 별도의 논리적으로 격리된 가상 데스크탑에서 보호가 필요한 프로그램만이 실행되도록 함으로써 비인가된 접근을 차단하여 프로그램의 정보를 보다 안전하게 보호할 수 있도록 한다.As described above, in the present invention, in a method of protecting a program on a computer using a virtual desktop, screen information is displayed in a program such as an online game or an online bank by a malicious program existing on the same default desktop during the execution of the program. In order to solve the problem of extracting user input data or generating abnormal input data and executing a program that processes unauthorized user input in a single program execution environment such as an unmanned ticketing machine, a separate logically isolated virtual desktop By ensuring that only programs that need protection are run, you can block unauthorized access so that the program's information is more secure.

한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.

도 1은 본 발명의 실시 예에 따른 컴퓨터 OS 운영체제내 가상 데스크탑 구현 예시도,1 is a diagram illustrating an implementation of a virtual desktop in a computer OS operating system according to an embodiment of the present invention;

도 2는 본 발명의 실시 예에 따른 가상 데스크탑을 이용한 컴퓨터 프로그램 보호 제어 흐름도, 2 is a flowchart of a computer program protection control using a virtual desktop according to an embodiment of the present invention;

도 3은 본 발명의 실시 예에 따른 디폴트 데스크탑내 가상 윈도우 생성 예시도,3 illustrates an example of creating a virtual window in a default desktop according to an embodiment of the present invention.

도 4는 본 발명의 다른 실시 예에 따른 가상 데스크탑을 이용한 컴퓨터 프로그램 보호 제어 흐름도, 4 is a flowchart for controlling a computer program protection using a virtual desktop according to another embodiment of the present invention;

도 5는 본 발명의 다른 실시 예에 따른 가상 데스크탑을 이용한 컴퓨터 프로그램 보호 제어 흐름도.5 is a flowchart of a computer program protection control using a virtual desktop according to another embodiment of the present invention.

<도면의 주요 부호에 대한 간략한 설명><Brief description of the major symbols in the drawings>

100 : OS 운영체제 180 : 디폴트 데스크탑100: OS operating system 180: default desktop

190 : 가상 데스크탑 118 : 가상 데스크탑 보안모듈190: virtual desktop 118: virtual desktop security module

116 : 디폴트 데스크탑 해킹 모듈116: default desktop hacking module

Claims (28)

삭제delete 컴퓨터의 프로그램을 보호하는 방법으로서,As a way to protect programs on your computer, 디폴트 데스크탑 상에서 기 설정된 보호 대상 프로그램의 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와,Creating a virtual desktop to execute the preset protected program on the default desktop to execute the corresponding program; 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching all threads for executing the program to the virtual desktop; 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계를 포함하되,Executing the program by the thread on the virtual desktop, 상기 스위칭 단계는, The switching step, 상기 프로그램의 실행에 따른 메인 쓰레드의 시작 시점을 검출하는 단계와,Detecting a start time of a main thread according to execution of the program; 상기 메인 쓰레드가 시작되어 해당 프로그램의 윈도우 화면 생성 전 상기 메인 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching the main thread to the virtual desktop before starting the main thread and generating a window screen of the program; 상기 메인 쓰레드의 스위칭 후, 상기 프로그램에 필요한 멀티 쓰레드를 차례로 상기 가상 데스크탑으로 스위칭시키는 단계After switching of the main thread, sequentially switching the multi-threads required for the program to the virtual desktop. 를 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop comprising a. 제 2 항에 있어서,The method of claim 2, 상기 쓰레드에 대한 상기 가상 데스크탑 상으로의 스위칭은, Switching onto the virtual desktop for the thread, OS DLL 함수모듈내 상기 쓰레드 실행 시 참조하도록 설정된 DLL 메인 함수의 내용을 상기 가상 데스크탑으로의 스위칭을 명령하도록 하는 것을 통해 수행되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.And executing the switching of the contents of the DLL main function set to be referred to when the thread is executed in the OS DLL function module to the virtual desktop. 제 2 항에 있어서,The method of claim 2, 상기 가상 데스크탑 생성 시, 상기 가상 데스크탑을 생성하는 커널 오브젝트의 접근 권한 리스트(ACL)를 아무도 접근할 수 없도록 널(Null)로 설정하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.When the virtual desktop is created, the access authority list (ACL) of the kernel object generating the virtual desktop is set to null so that no one can access the program protection method using the virtual desktop. 제 2 항에 있어서,The method of claim 2, 상기 가상 데스크탑은,The virtual desktop, 상기 디폴트 데스크탑에서 수행되는 다른 프로그램들에 의해 접근이 불가능하도록 상기 디폴트 데스크탑과 논리적으로 분리되게 형성되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.The method of claim 1, wherein the program is logically separated from the default desktop to prevent access by other programs executed on the default desktop. 제 2 항에 있어서,The method of claim 2, 상기 보호 방법은,The protection method, 상기 프로그램 실행 중, 상기 디폴트 데스크탑 상에 상기 가상 데스크탑에서 실행되는 프로그램과 동일한 이름의 훼이크(fake) 윈도우 화면을 생성시키는 단계While the program is running, creating a fake window screen having the same name as a program executed in the virtual desktop on the default desktop. 를 더 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop further comprising a. 제 6 항에 있어서,The method of claim 6, 상기 디폴트 데스크탑 상 훼이크 윈도우 화면 생성은, To create a fake window screen on the default desktop, 상기 프로그램 실행 시 상기 가상 데스크탑 상에서 생성되는 윈도우 화면 생성 쓰레드를 통해 수행되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.The program protection method using a virtual desktop, characterized in that performed through the window screen creation thread generated on the virtual desktop when the program is executed. 제 2 항에 있어서,The method of claim 2, 상기 보호 방법은,The protection method, 상기 가상 데스크탑 상 상기 프로그램의 실행 종료 후, 상기 디폴트 데스크탑으로 전환시키는 단계After the execution of the program on the virtual desktop, switching to the default desktop 를 더 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop further comprising a. 제 2 항에 있어서,The method of claim 2, 상기 보호 대상 프로그램은, The protected program, 온라인 뱅킹, 온라인 게임 또는 무인 발권을 처리하는 프로그램인 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호방법.Program protection method using a virtual desktop, characterized in that the program processing online banking, online games or unattended ticketing. 삭제delete 삭제delete 컴퓨터의 프로그램을 보호하는 방법으로서,As a way to protect programs on your computer, 디폴트 데스크탑 상에서 보호가 필요한 프로그램 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와,Creating a virtual desktop for executing the program when a request to run a program that requires protection is performed on the default desktop; 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching all threads for executing the program to the virtual desktop; 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계와,Executing the program by the thread on the virtual desktop; 상기 프로그램 실행 중 상기 가상 데스크탑 상 생성되는 모든 윈도우를 검사하는 단계와,Inspecting all windows created on the virtual desktop while the program is running; 상기 검사결과 비정상 윈도우 발견 시 해당 윈도우를 차단하거나 보안 위험을 알리는 단계를 포함하되,Blocking the window or notifying the security risk when the abnormal window is found as a result of the scan, 상기 스위칭 단계는, The switching step, 상기 프로그램의 실행에 따른 메인 쓰레드의 시작 시점을 검출하는 단계와,Detecting a start time of a main thread according to execution of the program; 상기 메인 쓰레드가 시작되어 해당 프로그램의 윈도우 화면 생성 전 상기 메인 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching the main thread to the virtual desktop before starting the main thread and generating a window screen of the program; 상기 메인 쓰레드의 스위칭 후, 상기 프로그램에 필요한 멀티 쓰레드를 차례로 상기 가상 데스크탑으로 스위칭시키는 단계After switching of the main thread, sequentially switching the multi-threads required for the program to the virtual desktop. 를 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법. Program protection method using a virtual desktop comprising a. 제 12 항에 있어서,The method of claim 12, 상기 쓰레드에 대한 상기 가상 데스크탑 상으로의 스위칭은, Switching onto the virtual desktop for the thread, OS DLL 함수모듈내 상기 쓰레드 실행 시 참조하도록 설정된 DLL 메인 함수의 내용을 상기 가상 데스크탑으로의 스위칭을 명령하도록 하는 것을 통해 수행되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.And executing the switching of the contents of the DLL main function set to be referred to when the thread is executed in the OS DLL function module to the virtual desktop. 제 12 항에 있어서,The method of claim 12, 상기 가상 데스크탑 생성 시, 상기 가상 데스크탑을 생성하는 커널 오브젝트의 접근 권한 리스트(ACL)를 아무도 접근할 수 없도록 널(Null)로 설정하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.When the virtual desktop is created, the access authority list (ACL) of the kernel object generating the virtual desktop is set to null so that no one can access the program protection method using the virtual desktop. 제 12 항에 있어서,The method of claim 12, 상기 가상 데스크탑은,The virtual desktop, 상기 디폴트 데스크탑에서 수행되는 다른 프로그램들에 의해 접근이 불가능하도록 상기 디폴트 데스크탑과 논리적으로 분리되게 형성되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.The method of claim 1, wherein the program is logically separated from the default desktop to prevent access by other programs executed on the default desktop. 제 12 항에 있어서,The method of claim 12, 상기 보호 방법은,The protection method, 상기 가상 데스크탑 상 상기 프로그램의 실행 종료 후, 상기 디폴트 데스크탑으로 전환시키는 단계After the execution of the program on the virtual desktop, switching to the default desktop 를 더 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop further comprising a. 제 12 항에 있어서,The method of claim 12, 상기 보호 대상 프로그램은, The protected program, 온라인 뱅킹, 온라인 게임 또는 무인 발권을 처리하는 프로그램인 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호방법.Program protection method using a virtual desktop, characterized in that the program processing online banking, online games or unattended ticketing. 삭제delete 컴퓨터의 프로그램을 보호하는 방법으로서,As a way to protect programs on your computer, 디폴트 데스크탑 상에서 보호가 필요한 프로그램 실행 요청 시 해당 프로그램 실행을 위한 가상 데스크탑을 생성하는 단계와,Creating a virtual desktop for executing the program when a request to run a program that requires protection is performed on the default desktop; 상기 프로그램 실행을 위한 모든 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching all threads for executing the program to the virtual desktop; 상기 가상 데스크탑 상에서 상기 쓰레드에 의해 상기 프로그램을 실행시키는 단계와,Executing the program by the thread on the virtual desktop; 상기 프로그램 실행 중 상기 디폴트 데스크탑 상 모든 프로그램의 커널 오브젝트를 검사하는 단계와,Examining kernel objects of all programs on the default desktop while the program is running; 상기 커널 오브젝트 검사결과 상기 보호 프로그램이 아닌 다른 프로그램이 생성한 가상 데스크탑 오브젝트 핸들 발견 시 상기 가상 데스크탑의 보안 위험을 알리는 단계를 포함하되,When the kernel object check result is found a virtual desktop object handle generated by a program other than the protected program, including the step of notifying the security risk of the virtual desktop, 상기 스위칭 단계는, The switching step, 상기 프로그램의 실행에 따른 메인 쓰레드의 시작 시점을 검출하는 단계와,Detecting a start time of a main thread according to execution of the program; 상기 메인 쓰레드가 시작되어 해당 프로그램의 윈도우 화면 생성 전 상기 메인 쓰레드를 상기 가상 데스크탑으로 스위칭시키는 단계와,Switching the main thread to the virtual desktop before starting the main thread and generating a window screen of the program; 상기 메인 쓰레드의 스위칭 후, 상기 프로그램에 필요한 멀티 쓰레드를 차례로 상기 가상 데스크탑으로 스위칭시키는 단계After switching of the main thread, sequentially switching the multi-threads required for the program to the virtual desktop. 를 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop comprising a. 제 19 항에 있어서,The method of claim 19, 상기 쓰레드에 대한 상기 가상 데스크탑 상으로의 스위칭은, Switching onto the virtual desktop for the thread, OS DLL 함수모듈내 상기 쓰레드 실행 시 참조하도록 설정된 DLL 메인 함수의 내용을 상기 가상 데스크탑으로의 스위칭을 명령하도록 하는 것을 통해 수행되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.And executing the switching of the contents of the DLL main function set to be referred to when the thread is executed in the OS DLL function module to the virtual desktop. 제 19 항에 있어서,The method of claim 19, 상기 가상 데스크탑 생성 시, 상기 가상 데스크탑을 생성하는 커널 오브젝트의 접근 권한 리스트(ACL)를 아무도 접근할 수 없도록 널(Null)로 설정하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.When the virtual desktop is created, the access authority list (ACL) of the kernel object generating the virtual desktop is set to null so that no one can access the program protection method using the virtual desktop. 제 19 항에 있어서,The method of claim 19, 상기 가상 데스크탑은,The virtual desktop, 상기 디폴트 데스크탑에서 수행되는 다른 프로그램들에 의해 접근이 불가능하도록 상기 디폴트 데스크탑과 논리적으로 분리되게 형성되는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.The method of claim 1, wherein the program is logically separated from the default desktop to prevent access by other programs executed on the default desktop. 제 19 항에 있어서,The method of claim 19, 상기 보호 방법은,The protection method, 상기 가상 데스크탑 상 상기 프로그램의 실행 종료 후, 상기 디폴트 데스크탑으로 전환시키는 단계After the execution of the program on the virtual desktop, switching to the default desktop 를 더 포함하는 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호 방법.Program protection method using a virtual desktop further comprising a. 제 19 항에 있어서,The method of claim 19, 상기 보호 대상 프로그램은, The protected program, 온라인 뱅킹, 온라인 게임 또는 무인 발권을 처리하는 프로그램인 것을 특징으로 하는 가상 데스크탑을 이용한 프로그램 보호방법.Program protection method using a virtual desktop, characterized in that the program processing online banking, online games or unattended ticketing. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080037258A 2008-04-22 2008-04-22 How to Protect Programs Using Virtual Desktops KR100931518B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080037258A KR100931518B1 (en) 2008-04-22 2008-04-22 How to Protect Programs Using Virtual Desktops

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080037258A KR100931518B1 (en) 2008-04-22 2008-04-22 How to Protect Programs Using Virtual Desktops

Publications (2)

Publication Number Publication Date
KR20090111576A KR20090111576A (en) 2009-10-27
KR100931518B1 true KR100931518B1 (en) 2009-12-14

Family

ID=41539337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080037258A KR100931518B1 (en) 2008-04-22 2008-04-22 How to Protect Programs Using Virtual Desktops

Country Status (1)

Country Link
KR (1) KR100931518B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101249764B1 (en) * 2010-08-10 2013-04-03 주식회사 잉카인터넷 method for detecting and blocking game-hack process
CN102609299B (en) * 2012-01-13 2015-03-11 深圳市深信服电子科技有限公司 Virtualizing system, and creating method and creating device thereof
KR102328193B1 (en) 2015-06-24 2021-11-18 한국전자통신연구원 Apparatus and method for virtual desktop service
KR101929048B1 (en) 2015-06-24 2018-12-13 한국전자통신연구원 Apparatus and method for virtual desktop service based on in-memory
KR101977726B1 (en) 2015-11-17 2019-05-14 한국전자통신연구원 APPARATUS AND METHOD FOR Virtual Desktop Services
KR101946862B1 (en) 2017-06-08 2019-04-29 (주)필라웨어 Management system for virtual desktop environment and virtual application environment based on personnel information of user

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060071308A (en) * 2004-12-21 2006-06-26 마이크로소프트 코포레이션 Computer security management, such as in a virtual machine or hardened operating system
WO2008027564A2 (en) * 2006-08-31 2008-03-06 Vir2Us, Inc. Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy-ware

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060071308A (en) * 2004-12-21 2006-06-26 마이크로소프트 코포레이션 Computer security management, such as in a virtual machine or hardened operating system
WO2008027564A2 (en) * 2006-08-31 2008-03-06 Vir2Us, Inc. Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy-ware

Also Published As

Publication number Publication date
KR20090111576A (en) 2009-10-27

Similar Documents

Publication Publication Date Title
RU2703156C2 (en) Computer security systems and methods using asynchronous introspection exceptions
US7565535B2 (en) Systems and methods for demonstrating authenticity of a virtual machine using a security image
CN105393255B (en) Process assessment for the malware detection in virtual machine
US8756696B1 (en) System and method for providing a virtualized secure data containment service with a networked environment
CN102667794B (en) The method and system of unauthorized update is avoided for the protection of operating system
US7661126B2 (en) Systems and methods for authenticating a user interface to a computer user
US8271803B2 (en) Anti-debugging protection of binaries with proxy code execution
US7721094B2 (en) Systems and methods for determining if applications executing on a computer system are trusted
CN101405705B (en) System and method for foreign code detection
US8984629B2 (en) Apparatus and method for preemptively protecting against malicious code by selective virtualization
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
KR100931518B1 (en) How to Protect Programs Using Virtual Desktops
EP1512057B1 (en) Trusted user interface for a secure mobile wireless device
JP2016129071A (en) System and method for kernel rootkit protection in hypervisor environment
Ray et al. Virtualization security
WO2018031178A1 (en) Multi-modal memory hierarchical management for mitigating side-channel attacks in the cloud
CN118013586A (en) Protecting selected disks on a computer system
US20220067195A1 (en) Controlling installation of unauthorized drivers on a computer system
CN109997138A (en) For detecting the system and method for calculating the malicious process in equipment
KR101089157B1 (en) System and method for logically separating servers from clients on network using virtualization of client
TW202121211A (en) Method and system for detecting web shell using process information
CN110659478B (en) Method for detecting malicious files preventing analysis in isolated environment
KR20090111577A (en) Method for protecting on-line electronic transaction program
JP2019008503A (en) Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus
Caillat et al. Prison: Tracking process interactions to contain malware

Legal Events

Date Code Title Description
A201 Request for 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: 20130131

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141204

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151204

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161205

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171204

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181204

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191204

Year of fee payment: 11