KR101434794B1 - The method and system for defending program hacking - Google Patents

The method and system for defending program hacking Download PDF

Info

Publication number
KR101434794B1
KR101434794B1 KR1020130059979A KR20130059979A KR101434794B1 KR 101434794 B1 KR101434794 B1 KR 101434794B1 KR 1020130059979 A KR1020130059979 A KR 1020130059979A KR 20130059979 A KR20130059979 A KR 20130059979A KR 101434794 B1 KR101434794 B1 KR 101434794B1
Authority
KR
South Korea
Prior art keywords
operating system
hacking
memory area
user
program
Prior art date
Application number
KR1020130059979A
Other languages
Korean (ko)
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 KR1020130059979A priority Critical patent/KR101434794B1/en
Application granted granted Critical
Publication of KR101434794B1 publication Critical patent/KR101434794B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to a method and a system for defending program hacking. The present invention provides a method for defending program hacking, which is configured to control access of a hacking process to a user process executed by a first operating system (OS). The method comprises the steps of: executing a second OS that is a virtual OS; setting the second OS as a host OS; setting the first OS as a client OS to be controlled by the host OS; and allowing the second OS to control the first OS to block the hacking process from accessing a first memory area where data on the user process is recorded. By the configuration as described above, the method and the system for defending program hacking according to the present invention can fundamentally block program hacking by controlling access of a hacking process to a memory.

Description

프로그램 해킹 방어 방법 및 시스템{THE METHOD AND SYSTEM FOR DEFENDING PROGRAM HACKING}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and system for defending a program,

본 발명은 프로그램 해킹 방어 방법 및 시스템에 관한 것으로, 보다 구체적으로는 운영체제 가상화(OS Virtualization) 기술을 이용하여, 해킹 프로그램이 메모리에 접근하는 것을 제어하는 프로그램 해킹 방어 방법 및 시스템에 관한 것이다.The present invention relates to a program hacking defense method and system, and more particularly, to a program hacking defense method and system for controlling access of a hacking program to a memory using OS virtualization technology.

최근 전자분야의 발전으로 인해 다양한 하드웨어(Hardware) 기기들이 전자화, 디지털화 되고 있고, 이에 따라 소프트웨어(Software) 프로그램에 의해 동작되는 하드웨어 기기들이 점차 늘어나고 있다.2. Description of the Related Art [0002] Recently, various hardware devices are being digitized and digitized due to the development of the electronic field, and accordingly, hardware devices operated by software programs are increasing.

그중 대표적인 것이 컴퓨터(Computer)로, 컴퓨터에는 운영체제(OS, Operating System)이 설치되어 있고, 각종 어플리케이션이 별도의 프로그램으로 컴퓨터에 설치되어 동작된다. 이러한 컴퓨터는 비단 데스크톱과 같은 개인용 컴퓨터(Personal Computer) 뿐만 아니라 스마트폰(Smart Phone)과 같은 통신 단말기도 해당된다.Among them, a computer is a representative example, and an operating system (OS) is installed in a computer, and various applications are installed in a computer as a separate program and operated. Such a computer corresponds not only to a personal computer such as a desktop but also to a communication terminal such as a smart phone.

그러나, 이처럼 소프트웨어에 의해 프로그래밍된 어플리케이션들이 이용됨에 따라 가장 크게 문제가 되는 것은 해당 프로그램의 해킹(Hacking)이다.However, the most problematic as the applications programmed by the software are used is the hacking of the program.

일반적으로 해킹은 컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하거나 정보 시스템 또는 특정 단말기 상의 동작에 유해한 영향을 끼치는 제반 행위를 일컫는 것으로서, 결국 어플리케이션의 프로그램 코드를 임의로 조작하여 해당 어플리케이션을 개발한 개발자가 의도하지 않은 형태로 어플리케이션이 동작하도록 하는 것을 말한다.Generally, hacking refers to all kinds of activities that illegally access a vulnerable security network of a computer network or have a detrimental effect on the operation of an information system or a specific terminal. In the end, a developer who has developed a corresponding application by arbitrarily manipulating the program code of the application, And to make the application operate in a non-existent form.

프로그램의 해킹의 일례로는, 인증되지 않은 다수의 사용자에게 어플리케이션을 배포하기 위하여 프로그램 코드를 복사(Copy)하거나, 해커(Hacker)가 원하는 기능을 어플리케이션이 수행하도록 프로그램 코드를 조작(Manipulate)하는 경우가 있다.As an example of program hacking, when copying program code to distribute an application to a plurality of unauthorized users or manipulating program code so that an application performs a function desired by a hacker .

이와 같은 프로그램의 해킹은, 개발자의 저작권을 해치거나 어플리케이션이 실행되는 시스템 전반에 큰 영향을 미치는 것으로서 결코 무시하거나 간과할 수 없는 중요한 문제에 해당한다.Hacking such a program is a major problem that can never be ignored or overlooked, as it has a large impact on the system in which the copyright of the developer is violated or the application is executed.

그리고, 최근 사용자의 컴퓨터에 설치된 응용 프로그램 또는 운영체제를 다른 컴퓨터에서도 사용 가능하도록 하는 기술이 활발히 연구되는 추세이다. 예를 들어, 운영체제 가상화(OS Virtualization) 기술, 프로세스 마이그레이션(Process Migration) 기술, 서버 관리자에 의한 패키징 기술 등이 있다.Recently, there is a trend of researching an application program or an operating system installed in a user's computer to be used in other computers. For example, OS virtualization technology, process migration technology, and packaging technology by server administrators.

운영체제 가상화 기술은 시스템 가상화 기술과는 달리 컴퓨터의 운영체제와 사용자 응용 프로그램 사이에 가상 운영체제 계층을 설치하여, 가상 운영체제 계층과 사용자 응용 프로그램, 데이터만을 저장 및 마이그레이션함으로써 다른 컴퓨터에서도 동일한 컴퓨팅 환경을 보장하는 방법이다.Operating system virtualization technology, unlike system virtualization technology, installs a virtual operating system layer between computer operating system and user application to store and migrate only virtual operating system layer, user application, and data to guarantee same computing environment in other computer to be.

이러한 운영체제 가상화 기술은 하드웨어 가상화에 비하여 경량화된 마이그레이션을 지원하며, 유틸리티 컴퓨팅(Utility Computing)이나 클라우드 컴퓨팅(Cloud Computin) 등 사용자에게 애플리케이션을 서비스 형태로 제공하는 환경에서 서비스 업자의 자원을 효율적으로 관리할 수 있는 필수적인 기술로 자리매김하고 있다.These operating system virtualization technologies support lightweight migration compared to hardware virtualization, and efficiently manage resources of service providers in an environment that provides applications as services to users such as Utility Computing and Cloud Computing. Has become a necessary technology to be able to.

본 발명은 이러한 운영체제 가상화 기술을 이용하여, 프로그램 해킹을 원천 차단하는 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for blocking program hacking using such operating system virtualization techniques.

본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로, 운영체제 가상화 기술을 이용하여, 프로그램 해킹을 방어하는 방법 및 시스템을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method and system for defending against program hacking using an operating system virtualization technology.

상기 목적을 달성하기 위하여, 본 발명은 제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하도록 구성된 프로그램 해킹 방어 방법으로, 가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하는 단계; 상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하는 단계; 상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하는 단계; 및 상기 제 2 운영체제는 상기 제 1 운영체제를 제어하여, 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하는 단계를 포함하는 프로그램 해킹 방어 방법을 제공한다.According to an aspect of the present invention, there is provided a program hacking defensive method configured to control access to a hacking process to a user process executed in a first operating system, the method comprising: executing a second operating system that is a virtual operating system; Setting the second operating system as a host operating system; Setting the first operating system as a client operating system under the control of the host operating system; And the second operating system controls the first operating system to prevent the hacking process from accessing a first memory area where data of the user process is recorded.

또한, 본 발명은 상기 해킹 프로세스 접근 차단 단계는, 상기 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 상기 제 2 운영체제가 상기 제 1 운영체제를 제어하는 실시예를 제공한다.In addition, the present invention provides an embodiment in which the second operating system controls the first operating system such that the hacking process accesses a predetermined second memory area.

또한, 본 발명은 상기 제 1 운영체제에서 실행되는 프로세스를 제어하는 방어 프로세스를 상기 제 2 운영체제에서 실행하는 단계를 더 포함하고, 상기 해킹 프로세스 접근 차단 단계는, 상기 방어 프로세스가 상기 해킹 프로세스를 제어하여, 상기 해킹 프로세스가 상기 제 1 메모리 영역에 접근하는 것을 차단하는 실시예를 제공한다.Further, the present invention may further comprise executing a defensive process for controlling a process executed in the first operating system in the second operating system, wherein the blocking process accessing step is a step in which the defensive process controls the hacking process And preventing the hacking process from accessing the first memory area.

또한, 본 발명은 상기 해킹 프로세스 접근 차단 단계는, 상기 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하는 실시예를 제공한다.In addition, the present invention provides an embodiment wherein the hacking process access blocking step blocks switching of a third memory area in which data of the hacking process is recorded to the first memory area.

또한, 본 발명은 상기 제 2 운영체제가 상기 해킹 프로세스를 모니터링하여, 상기 해킹 프로세스의 동작을 사용자에게 출력하는 단계를 더 포함하는 실시예를 제공한다.The present invention further provides an embodiment including the step of the second operating system monitoring the hacking process and outputting the operation of the hacking process to the user.

또한, 본 발명은 상기 제 1 메모리 영역은 상기 사용자 프로세스의 ".data" 영역이고, 상기 해킹 프로세스는 동적 생성 프로세스인 "DLL" 프로세스인 실시예를 제공한다.Further, the present invention provides an embodiment wherein the first memory area is a ".data" area of the user process, and the hacking process is a "DLL"

또한, 본 발명은 데이터를 저장하도록 구성된 메모리; 및 제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하고, 상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하고, 상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하고, 상기 제 2 운영체제가 상기 제 1 운영체제를 제어하여 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하도록 구성된 프로그램 해킹 방어 시스템을 제공한다.The present invention also relates to a memory configured to store data; And a processor configured to control access of a hacking process to a user process running in a first operating system, wherein the processor executes a second operating system that is a virtual operating system, and the second operating system is a host, The first operating system is set as a client operating system under the control of the host operating system and the second operating system controls the first operating system to set a first memory area in which data of the user process is recorded, And to prevent the hacking process from accessing the computer system.

또한, 본 발명은 상기 프로세서는, 상기 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 상기 제 2 운영체제가 상기 제 1 운영체제를 제어하도록 구성된 실시예를 제공한다.Further, the present invention provides an embodiment wherein the second operating system is configured to control the first operating system such that the hacking process accesses a predetermined second memory area.

또한, 본 발명은 상기 프로세서는, 상기 제 1 운영체제에서 실행되는 프로세스를 제어하는 방어 프로세스를 상기 제 2 운영체제에서 실행하고, 상기 방어 프로세스가 상기 해킹 프로세스를 제어하여 상기 해킹 프로세스가 상기 제 1 메모리 영역에 접근하는 것을 차단하도록 구성된 실시예를 제공한다.Further, the present invention is characterized in that the processor executes a defensive process in the second operating system for controlling a process executed in the first operating system, and the defensive process controls the hacking process so that the hacking process is performed in the first memory area To prevent access to the device.

또한, 본 발명은 상기 프로세서는, 상기 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하도록 구성된 실시예를 제공한다.In addition, the present invention provides an embodiment wherein the processor is configured to block a third memory area in which data of the hacking process is recorded from being switched to the first memory area.

또한, 본 발명은 사용자에게 데이터를 출력하는 출력부를 더 포함하고, 상기 프로세서는, 상기 제 2 운영체제가 상기 해킹 프로세스를 모니터링하도록 제어하고, 상기 해킹 프로세스의 동작을 사용자에게 출력하도록 상기 출력부를 제어하는 실시예를 제공한다.Further, the present invention further includes an output unit outputting data to a user, wherein the processor controls the second operating system to monitor the hacking process, and controls the output unit to output the operation of the hacking process to a user An embodiment is provided.

또한, 본 발명은 상기 제 1 메모리 영역은 상기 사용자 프로세스의 ".data" 영역이고, 상기 해킹 프로세스는 동적 생성 프로세스인 "DLL" 프로세스인 실시예를 제공한다.Further, the present invention provides an embodiment wherein the first memory area is a ".data" area of the user process, and the hacking process is a "DLL"

또한, 본 발명은 컴퓨터로 실행 가능하고, 제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하는 프로그램이 기록된 기록매체로, 상기 프로그램은, 가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하는 단계; 상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하는 단계; 상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하는 단계; 및 상기 제 2 운영체제는 상기 제 1 운영체제를 제어하여, 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하는 단계로 구성된 기록매체를 제공한다.According to another aspect of the present invention, there is provided a recording medium on which a program that can be executed by a computer and controls access to a hacking process to a user process executed in a first operating system is recorded. The program includes a second operating system that is a virtual operating system Executing; Setting the second operating system as a host operating system; Setting the first operating system as a client operating system under the control of the host operating system; And the second operating system controls the first operating system to block the hacking process from accessing a first memory area where data of the user process is recorded.

본 발명은 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가진 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속함을 밝혀둔다.It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. I will reveal.

상기와 같은 구성을 통하여, 본 발명에 따른 프로그램 해킹 방어 방법 및 시스템은 해킹 프로세스의 메모리 접근을 제어하여, 프로그램 해킹을 원천 차단할 수 있다. 그리고, 기존 메모리에 저장된 사용자 프로세스의 데이터를 인코딩 또는 암호화할 필요가 없어 프로세서의 작업 부하가 적다. 또한, 해킹 프로세스의 동작을 실시간으로 파악할 수 있어, 해킹 프로세스를 분석하여 이후 프로그램 해킹에 대한 대응 정책을 세울 수 있다.Through the above-described configuration, the program hacking defense method and system according to the present invention can control the memory access of the hacking process, thereby blocking the program hacking. In addition, there is no need to encode or encrypt the data of the user process stored in the existing memory, thereby reducing the workload of the processor. In addition, the operation of the hacking process can be grasped in real time, and the hacking process can be analyzed to set up a response policy for the program hacking.

도 1은 본 발명의 실시예에 따른 사용자 프로세스의 해킹에 대한 개념도이다.
도 2는 본 발명의 실시예에 따른 프로그램 해킹 방어 시스템의 소프트웨어 구성도이다.
도 3은 본 발명의 실시예에 따른 프로그램 해킹 방어 시스템의 하드웨어 구성도이다.
도 4는 본 발명의 실시예에 따른 프로그램 해킹 방어 방법의 순서도이다.
도 5는 본 발명의 다른 실시예에 따른 프로그램 해킹 방어 방법의 순서도이다.
도 6 내지 8은 본 발명의 실시예에 따른 사용자 프로세스에 대한 해킹 프로세서의 접근 제어를 도시한 도면이다.
1 is a conceptual diagram for hacking a user process according to an embodiment of the present invention.
2 is a software configuration diagram of a program hacking defense system according to an embodiment of the present invention.
3 is a hardware block diagram of a program hacking defense system according to an embodiment of the present invention.
4 is a flowchart of a program hacking protection method according to an embodiment of the present invention.
5 is a flowchart of a program hacking protection method according to another embodiment of the present invention.
6 to 8 are views showing access control of a hacking processor for a user process according to an embodiment of the present invention.

이하 첨부된 도면을 참조하여 본 발명의 실시예를 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세하게 설명한다. 이하 설명에서 동일한 구성 요소에는 설명의 편의상 동일 명칭 및 동일 부호를 부여한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. In the following description, the same constituent elements are given the same names and the same symbols for convenience of explanation.

본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우는 해당되는 발명의 설명부분에서 상세히 그 의미를 기재하였으므로, 단순한 용어의 명칭이 아닌 용어가 가지는 의미로서 본 발명을 파악하여야 한다.The term used in the present invention is selected from general terms that are widely used at present. However, in some cases, some terms selected arbitrarily by the applicant, and in this case, the meaning is described in detail in the description of the relevant invention. The present invention should be understood as meaning with respect to a term other than a name.

이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
The suffix "module" and " part "for the components used in the following description are given or mixed in consideration of ease of specification, and do not have their own meaning or role.

도 1은 본 발명의 실시예에 따른 사용자 프로세스의 해킹에 대한 개념도이다.1 is a conceptual diagram for hacking a user process according to an embodiment of the present invention.

우선, 사용자 프로세스는 운영체제에서 실행되는 사용자 어플리케이션의 동작을 수행하는 프로그램 단위이다.First, a user process is a program unit that performs an operation of a user application executed in an operating system.

사용자 어플리케이션은 게임 프로그램, 인터넷 탐색 프로그램, 워드 프로그램, 보안 프로그램과 같이 다양한 서비스를 제공하는 소프트웨어(Software)로, 사용자 프로세스는 프로세서(Processor)에서 사용자 어플리케이션의 서비스 동작을 수행하는 프로그램 단위를 의미한다.A user application is software that provides various services such as a game program, an Internet search program, a word program, and a security program, and a user process refers to a program unit that performs a service operation of a user application in a processor.

해킹 프로세스는 해커에 의해 작성된 해킹 어플리케이션의 동작을 수행하는 프로그램 단위로, 해킹 프로세스는 사용자 프로세스가 해커가 원하는 기능 수행하도록 사용자 프로세스의 동작을 조작(Manipulate)한다.The hacking process is a program unit that performs the operation of a hacking application written by a hacker. The hacking process manipulates the operation of the user process so that the user process performs a desired function of the hacker.

해킹 프로세스가 사용자 프로세스의 동작을 조작하기 위해서, 해킹 프로세스는 사용자 프로세스에 접근하여, 해킹 프로세스가 사용자 프로세스로 동작하여야 한다. 즉, 해킹 프로세스는 메모리에서 사용자 프로세스의 코드(Code) 정보, 변수 값 등의 데이터를 읽어와, 사용자 프로세스와 같이 동작하는 것이다.In order for the hacking process to manipulate the operation of the user process, the hacking process must access the user process, and the hacking process must operate as a user process. That is, the hacking process reads data such as code information and variable values of a user process from a memory, and operates as a user process.

구체적으로, 해킹 프로세스는 사용자 프로세스에 접근하기 위해, 운영체제의 커널(Kernel)에서 명령어 "KeStackProcessAttach"를 실행시켜, 해킹 프로세스가 사용자 프로세스로 "Context Switching"이 발생되도록 한다. Specifically, the hacking process executes the command "KeStackProcessAttach" in the operating system kernel to access the user process, and causes the hacking process to generate "Context Switching" as a user process.

"Context Switching"은 해킹 프로세스가 사용자 프로세스의 메모리 데이터를 읽어와, 해킹 프로세스의 구동 환경을 사용자 프로세스의 구동 환경으로 바꾸는 것이다. 이에 따라, 해킹 프로세스는 사용자 프로세스와 같이 동작하게 되는 것이다."Context Switching" is a process in which the hacking process reads the memory data of the user process and changes the operating environment of the hacking process into the operating environment of the user process. Thus, the hacking process will operate like a user process.

따라서, 해킹 프로세스가 사용자 프로세스에 접근하기 위해서는, 해킹 프로세스는 사용자 프로세스가 사용하는 메모리 영역에 접근해, 사용자 프로세스의 메모리 데이터를 읽어야한다.Therefore, in order for the hacking process to access the user process, the hacking process must access the memory area used by the user process and read the memory data of the user process.

그러므로, 해킹 프로세스가 사용자 프로세스에 접근하지 못하도록 하기 위해서, 해킹 프로세스가 사용자 프로세스의 메모리 영역에 접근하는 것을 차단해야 한다.Therefore, to prevent the hacking process from accessing the user process, the hacking process should block access to the memory area of the user process.

본 발명은 해킹 프로세스의 메모리 영역 접근을 제어할 수 있도록 구성된 의 프로그램 해킹 방어 방법 및 시스템으로, 이하에서 자세히 설명하도록 한다.
The present invention is a program hacking prevention method and system configured to control access to a memory area of a hacking process, which will be described in detail below.

도 2는 본 발명의 실시예에 따른 프로그램 해킹 방어 시스템(10)의 소프트웨어 구성도이다.2 is a software configuration diagram of the program hacking defense system 10 according to the embodiment of the present invention.

우선, 프로그램 해킹 방어 시스템(10)에 대하여 설명하기 앞서, 운영체제 가상화(OS Virtualization) 기술에 대하여 설명하도록 한다.First, before describing the program hacking defense system 10, an operating system virtualization technology will be described.

가상화(Virtualization)는 컴퓨터 자원을 추상화(Abstraction)해 실제 물리적인 자원과 분리시키는 기술이다.Virtualization is a technology that abstracts computer resources from physical resources.

기존에는, 중앙처리장치(CPU)나 메모리 같은 물리적인 컴퓨터 자원은 운영체제와 연결되어 하나의 컴퓨터 시스템을 구성하였다. 즉, 하나의 하드웨어 세트(Set)에는 하나의 컴퓨터 시스템만이 구성 가능하였다. 그러나, 가상화는 기존의 개념과 달리, 하나의 물리적인 하드웨어 상에 다수의 운영체제 및 이에 기반한 컴퓨터 시스템을 구축하는 것이다.In the past, physical computer resources such as central processing unit (CPU) and memory were connected to the operating system to form a computer system. That is, only one computer system can be configured in one hardware set (Set). However, unlike the conventional concept, virtualization is the construction of a plurality of operating systems and a computer system based thereon on one physical hardware.

운영체제 가상화(OS Virtualization)는 하나의 하드웨어 상에 다수의 운영체제를 구동시키는 것으로, 다수의 운영체제는 사용자에 의해 구동되는 실제 운영체제(Real OS)와 실제 운영체제 상에서 실행되는 가상 운영체제(Virtual OS)로 구분된다.Operating system virtualization (OS virtualization) runs a number of operating systems on one hardware. Many operating systems are divided into real operating systems (OS) driven by users and virtual operating systems (OS) running on actual operating systems .

여기서, 실제 운영체제를 호스트 운영체제(Host OS)로, 가상 운영체제를 클라이언트 운영체제(Client OS)로 설정될 수 있으며, 클라이언트 운영체제는 호스트 운영체제의 제어를 받아 실행된다. 이에 따라, 호스트 운영체제는 클라이언트 운영체제의 모든 동작을 모니터링 및 제어할 수 있게 된다.Here, the actual operating system may be set as a host operating system and the virtual operating system may be set as a client operating system, and the client operating system is executed under the control of the host operating system. Accordingly, the host operating system can monitor and control all operations of the client operating system.

도 2는 운영체제 가상화 기술이 구현된 프로그램 해킹 방어 시스템(10)의 소프트웨어 구성도로, 프로그램 해킹 방어 시스템(10)은 하드웨어 플랫폼(Hardware Platform, 11), 호스트 운영체제(Host OS, 20), 어플리케이션(21, 31), 가상 제어부(Virtualization Controller, 22), 클라이언트 운영체제(Client OS, 30)을 포함한다.2 shows a software configuration of the program hacking defense system 10 in which an operating system virtualization technology is implemented. The program hacking defense system 10 includes a hardware platform 11, a host operating system 20, an application 21 31, a virtualization controller 22, and a client operating system (OS) 30.

하드웨어 플랫폼(Hardware Platform, 11)은 운영체제와 하드웨어의 중간자 역할로, 하드웨어를 제어할 수 있는 하드웨어 입출력 명령어를 지원하도록 구성된다. 따라서, 운영체제는 하드웨어 플랫폼(11)을 통하여 하드웨어를 제어할 수 있는 것이다.A hardware platform 11 serves as an intermediary between an operating system and hardware, and is configured to support hardware input / output instructions for controlling the hardware. Therefore, the operating system can control the hardware through the hardware platform 11.

호스트 운영체제(Host OS, 20)은 실제 사용자에 의해 구동되는 사용자 운영체제이다. 전술한 바와 같이, 호스트 운영체제(20)는 클라이언트 운영체제(30)의 모든 동작을 제어할 수 있다. 즉, 호스트 운영체제(20)는 클라이언트 운영체제(30)의 하드웨어 제어, 프로세스 실행, 쓰레드(Thread) 실행, 메모리 사용 등의 동작을 모니터링 및 제어할 수 있다.The host operating system 20 is a user operating system driven by an actual user. As described above, the host operating system 20 can control all operations of the client operating system 30. That is, the host operating system 20 can monitor and control operations of the client operating system 30 such as hardware control, process execution, thread execution, memory use, and the like.

가상 제어부(Virtualization Controller, 22)는 호스트 운영체제(20)의 제어에 따라, 클라이언트 운영체제(30)의 실행 및 동작을 수행한다. 가상 제어부(22)는 가상화 기술을 구현하는 Virtual Machine 또는 Hypervisor로 구성될 수 있다.The virtualization controller 22 performs execution and operation of the client operating system 30 under the control of the host operating system 20. [ The virtual control unit 22 may be configured as a virtual machine or a hypervisor that implements virtualization technology.

클라이언트 운영체제(Client OS, 30)는 가상 운영체제(Virtual OS)로, 호스트 운영체제(20)의 제어에 따라 실행 및 구동되는 운영체제이다.The client OS 30 is a virtual OS and is an operating system that is executed and driven under the control of the host operating system 20. [

어플리케이션(21, 31)은 호스트 운영체제(20) 또는 클라이언트 운영체제(30)에서 실행되는 프로그램으로, 사용자의 명령에 따라 실행된다. 전술한 바와 같이,클라이언트 운영체제(30)는 호스트 운영체제(20)의 제어를 받게 되므로, 클라이언트 운영체제(30)에서 실행되는 어플리케이션(31) 또한 클라이언트 운영체제(30) 뿐만 아니라, 호스트 운영체제(20)의 제어를 받아 구동될 수 있다.
The applications 21 and 31 are programs executed in the host operating system 20 or the client operating system 30, and executed according to a command of the user. The client operating system 30 is controlled by the host operating system 20 so that the application 31 executed in the client operating system 30 can be controlled not only by the client operating system 30 but also by the control of the host operating system 20. [ Lt; / RTI >

도 3은 본 발명의 실시예에 따른 프로그램 해킹 방어 시스템(100)의 하드웨어 구성도이다.3 is a hardware block diagram of a program hacking defense system 100 according to an embodiment of the present invention.

도면과 같이, 프로그램 해킹 방어 시스템(100)은 프로세서(101), 메모리(102), 사용자 인터페이스부(103), 출력부(104)를 포함한다.As shown in the figure, the program hacking defense system 100 includes a processor 101, a memory 102, a user interface unit 103, and an output unit 104.

우선, 프로세서(101)는 메모리(102), 사용자 인터페이스부(103), 출력부(104)를 제어하여, 프로그램 해킹 방어 방법을 수행하는 제어부(Controller) 역할을 수행한다.The processor 101 functions as a controller for controlling the memory 102, the user interface 103 and the output unit 104 to perform a program hacking protection method.

프로세서(101)는 실제 운영체제(Real OS)인 제 1 운영체제와 가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하고, 사용자 프로세스를 제 1 운영체제에서 실행한다.The processor 101 executes a first operating system, which is a real operating system (Real OS), and a second operating system, which is a virtual operating system, and executes the user process in the first operating system.

그리고, 프로세서(101)는 제 2 운영체제를 호스트 운영체제(Host OS, 20)로 설정하고, 제 1 운영체제를 클라이언트 운영체제(Client OS, 30)로 설정한다.The processor 101 sets the second operating system as a host operating system (OS) 20 and sets the first operating system as a client operating system (OS) 30.

호스트 운영체제(20)로 설정된 제 2 운영체제는 클라이언트 운영체제(30)로 설정된 제 1 운영체제의 모든 동작을 모니터링 및 제어할 수 있다. 즉, 호스트 운영체제(20)인 제 2 운영체제는 클라이언트 운영체제(30)인 제 1 운영체제의 하드웨어 제어, 프로세스 실행, 쓰레드(Thread) 실행, 메모리 사용 등의 동작을 모니터링 및 제어할 수 있다.The second operating system set in the host operating system 20 can monitor and control all operations of the first operating system set in the client operating system 30. [ That is, the second operating system, which is the host operating system 20, can monitor and control operations such as hardware control, process execution, thread execution, and memory use of the first operating system, which is the client operating system 30.

따라서, 프로세서(101)는 제 2 운영체제를 통해 제 1 운영체제를 제어하게 된다.Accordingly, the processor 101 controls the first operating system through the second operating system.

그리고, 프로세서(101)는 호스트 운영체제(20)인 제 2 운영체제를 제어하여, 클라이언트 운영체제(30)인 제 1 운영체제에서 실행 중인 해킹 프로세스를 모니터링하여, 출력부(104)를 통해 해킹 프로세스의 구동 정보를 사용자에게 출력할 수 있다. 프로세서(101)는 해킹 프로세스가 어느 서비스를 수행하는지, 어느 메모리 영역에 접근하지 등에 대한 구동 정보를 사용자에게 출력할 수 있다.The processor 101 controls the second operating system that is the host operating system 20 to monitor the hacking process running in the first operating system that is the client operating system 30 and outputs the driving information of the hacking process through the output unit 104 To the user. The processor 101 can output driving information to the user such as which service the hacking process performs, access to which memory area, and the like.

그리고, 프로세서(101)는 해킹 프로세스가 사용자 프로세스의 데이터가 기록된 메모리 영역인 제 1 메모리 영역에 접근하는 것을 차단한다.Then, the processor 101 blocks the hacking process from accessing the first memory area, which is a memory area where data of the user process is recorded.

전술한 바와 같이, 해킹 프로세스가 사용자 프로세스의 동작을 조작하기 위해, 해킹 프로세스는 제 1 메모리 영역에서 사용자 프로세스의 코드(Code) 정보, 변수 값 등의 데이터를 읽어온다. 그리고, 해킹 프로세스의 구동 환경을 사용자 프로세스의 구동 환경으로 설정하여, 사용자 프로세스와 같이 구동한다.As described above, in order for the hacking process to operate the operation of the user process, the hacking process reads data such as code information and variable values of the user process in the first memory area. Then, the drive environment of the hacking process is set as the drive environment of the user process, and the drive is driven like a user process.

따라서, 프로세서(101)는 해킹 프로세스가 사용자 프로세스로 동작하는 것을 차단하기 위하여, 프로세서(101)는 해킹 프로세스가 제 1 메모리 영역에서 접근하지 못하도록 한다. 해킹 프로세스가 사용자 프로세스의 코드(Code) 정보, 변수 값 등의 데이터를 읽어와, 해킹 프로세스의 구동 환경을 사용자 프로세스의 구동 환경으로 설정하지 못하도록 하는 것이다.Accordingly, the processor 101 prevents the hacking process from accessing the first memory area in order to block the hacking process from operating as a user process. The hacking process reads data such as code information and variable values of the user process and prevents the hacking process operating environment from being set as the driving environment of the user process.

그리고, 프로세서(101)는 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 제 1 운영체제를 제어한다. 해킹 프로세스가 사용자 프로세스의 데이터가 저장된 제 1 메모리 영역이 아닌 기 설정된 제 2 메모리 영역에 저장된 데이터를 읽도록 하여, 해킹 프로세스가 사용자 프로세스에 접근하는 것을 차단하는 것이다.Then, the processor 101 controls the first operating system so that the hacking process approaches the predetermined second memory area. The hacking process causes the data stored in the second memory area, which is not the first memory area storing the data of the user process, to be read, thereby blocking the hacking process from accessing the user process.

기 설정된 제 2 메모리 영역에는 사용자 프로세스의 데이터가 아닌 가상의 프로세스의 데이터가 저장된다. 이에 따라, 해킹 프로세스는 사용자 프로세스가 아닌 기 설정된 가상 프로세스에 접근하게 되는 것이다.Data of a virtual process other than the data of the user process is stored in the pre-set second memory area. Accordingly, the hacking process accesses the predetermined virtual process, not the user process.

이와 같은 메모리 접근 제어 방법은, 프로세서(101)가 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하는 것이다.In this memory access control method, the processor 101 blocks the third memory area in which the data of the hacking process is recorded from being switched to the first memory area.

메모리(102)는 데이터를 저장하는 데이터 저장소(Data Storage)로, 메모비(120)는 하드디스크와 같은 비휘발성 저장매체 또는 램(RAM)과 같은 휘발성 저장매체로 구성될 수 있다.The memory 102 may be a data storage for storing data and the memo ratio 120 may be a nonvolatile storage medium such as a hard disk or a volatile storage medium such as a RAM.

사용자 인터페이스부(103)는 사용자로부터 사용자 명령을 입력받도록 구성된다. 사용자 인터페이스부(140)는 키보드, 마우스, 음성 입력 장치 등으로 구성되어, 사용자로부터 사용자 프로세스의 실행 등의 명령를 입력받고, 입력받은 사용자 명령을 프로세서(101)에 전달한다.The user interface unit 103 is configured to receive a user command from a user. The user interface unit 140 includes a keyboard, a mouse, a voice input device, and the like. The user interface unit 140 receives commands such as execution of a user process from a user, and transmits the received user commands to the processor 101.

출력부(104)는 사용자에게 데이터를 출력하는 장치로, 출력부(104)는 모니터와 같은 디스플레이 장치, 스피커와 같은 음성 출력장치, 프린터 장치 등과 같은 다양한 출력장치로 구성될 수 있다. 따라서, 프로세서(101)는 출력부(104)의 구성에 따라, 다양한 방법으로 해킹 프로세스의 구동 정보를 사용자에게 출력할 수 있는 것이다.
The output unit 104 may be a device for outputting data to a user, and the output unit 104 may be composed of various output devices such as a display device such as a monitor, a sound output device such as a speaker, and a printer device. Accordingly, the processor 101 can output the driving information of the hacking process to the user in various ways according to the configuration of the output unit 104. [

도 4는 본 발명의 실시예에 따른 프로그램 해킹 방어 방법의 순서도이다.4 is a flowchart of a program hacking protection method according to an embodiment of the present invention.

도면과 같이, 프로그램 해킹 방어 방법은 제 1 운영체제에서 사용자 프로세스를 실행하는 단계(S100), 가상 운영체제인 제 2 운영체제를 실행하는 단계(S200), 제 2 운영체제를 호스트 운영체제로 설정하는 단계(S300), 제 1 운영체제를 클라이언트 운영체제로 설정하는 단계(S400), 제 2 운영체제가 제 1 운영체제를 제어하는 단계(S500), 제 1 운영체제에서 실행 중인 해킹 프로세스를 모니터링하는 단계(S600), 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 해킹 프로세스가 접근하는 것을 차단하는 단계(S700)를 포함한다.As shown in the figure, the program hacking protection method includes a step (S100) of executing a user process in a first operating system, a step S200 of executing a second operating system which is a virtual operating system, a step S300 of setting a second operating system as a host operating system, (S400) of setting the first operating system as a client operating system, controlling the first operating system (S500) of the second operating system, monitoring a hacking process running in the first operating system (S600) (S700) blocking access of the hacking process to the first memory area in which the first memory area is recorded.

우선, 프로세서(101)는 제 1 운영체제에서 사용자 프로세스를 실행한다.(S100) 사용자 인터페이스부(103)를 통해 입력된 사용자 명령에 따라, 사용자 프로세스를 실행하는 것이다.First, the processor 101 executes a user process in the first operating system (S100). In response to a user command input through the user interface unit 103, a user process is executed.

그리고, 프로세서(101)는 가상 운영체제인 제 2 운영체제를 실행한다.(S200)Then, the processor 101 executes a second operating system that is a virtual operating system (S200)

그리고, 프로세서(101)는 제 2 운영체제를 호스트 운영체제(20)로 설정하고,(S300) 제 1 운영체제를 클라이언트 운영체제(30)로 설정한다.(S400)The processor 101 sets the second operating system to the host operating system 20 and sets the first operating system to the client operating system 30 in operation S300.

전술한 바와 같이, 호스트 운영체제(20)로 설정된 제 2 운영체제는 클라이언트 운영체제(30)로 설정된 제 1 운영체제의 모든 동작을 모니터링 및 제어할 수 있다. 즉, 호스트 운영체제(20)인 제 2 운영체제는 클라이언트 운영체제(30)인 제 1 운영체제의 하드웨어 제어, 프로세스 실행, 쓰레드(Thread) 실행, 메모리 사용 등의 동작을 모니터링 및 제어할 수 있다.As described above, the second operating system set in the host operating system 20 can monitor and control all operations of the first operating system set in the client operating system 30. [ That is, the second operating system, which is the host operating system 20, can monitor and control operations such as hardware control, process execution, thread execution, and memory use of the first operating system, which is the client operating system 30.

따라서, 프로세서(101)는 제 2 운영체제를 통해 제 1 운영체제를 제어한다.(S500)Accordingly, the processor 101 controls the first operating system through the second operating system (S500)

그리고, 프로세서(101)는 제 1 운영체제에서 실행 중인 해킹 프로세스를 모니터링한다.(S600) 프로세서(101)는 호스트 운영체제(20)인 제 2 운영체제를 제어하여, 클라이언트 운영체제(30)인 제 1 운영체제에서 실행 중인 해킹 프로세스를 모니터링하여, 출력부(104)를 통해 해킹 프로세스의 구동 정보를 사용자에게 출력할 수 있다.The processor 101 monitors the hacking process running in the first operating system (S600). The processor 101 controls the second operating system, which is the host operating system 20, so that the first operating system, which is the client operating system 30, It can monitor the hacking process being executed and output the driving information of the hacking process to the user through the output unit 104. [

그리고, 프로세서(101)는 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 해킹 프로세스가 접근하는 것을 차단한다.(S700)The processor 101 blocks the hacking process from accessing the first memory area in which the data of the user process is written (S700)

전술한 바와 같이, 해킹 프로세스가 사용자 프로세스의 동작을 조작하기 위해, 해킹 프로세스는 제 1 메모리 영역에서 사용자 프로세스의 코드(Code) 정보, 변수 값 등의 데이터를 읽어온다. 그리고, 해킹 프로세스의 구동 환경을 사용자 프로세스의 구동 환경으로 설정하여, 사용자 프로세스와 같이 구동한다.As described above, in order for the hacking process to operate the operation of the user process, the hacking process reads data such as code information and variable values of the user process in the first memory area. Then, the drive environment of the hacking process is set as the drive environment of the user process, and the drive is driven like a user process.

따라서, 프로세서(101)는 해킹 프로세스가 사용자 프로세스로 동작하는 것을 차단하기 위하여, 프로세서(101)는 해킹 프로세스가 제 1 메모리 영역에서 접근하지 못하도록 한다. 해킹 프로세스가 사용자 프로세스의 코드(Code) 정보, 변수 값 등의 데이터를 읽어와, 해킹 프로세스의 구동 환경을 사용자 프로세스의 구동 환경으로 설정하지 못하도록 하는 것이다.
Accordingly, the processor 101 prevents the hacking process from accessing the first memory area in order to block the hacking process from operating as a user process. The hacking process reads data such as code information and variable values of the user process and prevents the hacking process operating environment from being set as the driving environment of the user process.

도 5는 본 발명의 다른 실시예에 따른 프로그램 해킹 방어 방법의 순서도이다.5 is a flowchart of a program hacking protection method according to another embodiment of the present invention.

도면과 같이, 프로그램 해킹 방어 방법은 해킹 프로세스를 기 설정된 제 2 메모리 영역에 접근하도록 설정하는 단계(S800)을 더 포함한다.As shown in the figure, the program hacking protection method further includes a step (S800) of setting a hacking process to access a predetermined second memory area.

프로세서(101)는 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 제 1 운영체제를 제어한다. 해킹 프로세스가 사용자 프로세스의 데이터가 저장된 제 1 메모리 영역이 아닌 기 설정된 제 2 메모리 영역에 저장된 데이터를 읽도록 하여, 해킹 프로세스가 사용자 프로세스에 접근하는 것을 차단하는 것이다.The processor 101 controls the first operating system so that the hacking process approaches a predetermined second memory area. The hacking process causes the data stored in the second memory area, which is not the first memory area storing the data of the user process, to be read, thereby blocking the hacking process from accessing the user process.

기 설정된 제 2 메모리 영역에는 사용자 프로세스의 데이터가 아닌 가상의 프로세스의 데이터가 저장된다. 이에 따라, 해킹 프로세스는 사용자 프로세스가 아닌 기 설정된 가상 프로세스에 접근하게 되는 것이다.Data of a virtual process other than the data of the user process is stored in the pre-set second memory area. Accordingly, the hacking process accesses the predetermined virtual process, not the user process.

이와 같은, 해킹 프로세스의 메모리 접근 제어 방법은, 프로세서(101)가 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하는 것이다.
In this manner, the memory access control method of the hacking process is such that the processor 101 blocks the third memory area in which the data of the hacking process is recorded from being switched to the first memory area.

관련하여, 프로세서(101)는 전술한 프로그램 해킹 방어 방법을 수행하기 위하여, 제 1 운영체제에서 실행되는 프로세스를 제어하는 방어 프로세스를 제 2 운영체제에서 실행하고, 방어 프로세스가 해킹 프로세스를 제어하여, 해킹 프로세스가 제 1 메모리 영역에 접근하는 것을 차단하도록 할 수 있다.
The processor 101 executes a defensive process for controlling a process executed in the first operating system in the second operating system in order to execute the program hacking defensive method described above and the defensive process controls the hacking process, May be prevented from approaching the first memory area.

전술한 프로그램 해킹 방어 방법은 해킹 프로세스의 메모리(102) 접근을 제어하여, 프로그램 해킹을 원천 차단할 수 있고, 기존 메모리(102)에 저장된 사용자 프로세스의 데이터를 인코딩 또는 암호화할 필요가 없어 프로세서(101)의 작업 부하를 낮출 수 있다. 또한, 해킹 프로세스의 동작을 실시간으로 파악할 수 있어, 해킹 프로세스를 분석하여 이후 프로그램 해킹에 대한 대응 정책을 세울 수 있는 효과가 있다.
The above-described program hacking prevention method controls the access of the hacking process to the memory 102 to prevent the program hacking from occurring and does not need to encode or encrypt the data of the user process stored in the existing memory 102, Can be reduced. Also, since the operation of the hacking process can be grasped in real time, the hacking process can be analyzed and a policy for responding to the program hacking can be established.

도 6 내지 8은 본 발명의 실시예에 따른 사용자 프로세스에 대한 해킹 프로세서의 접근 제어를 도시한 도면이다.6 to 8 are views showing access control of a hacking processor for a user process according to an embodiment of the present invention.

도 6은 프로세서(101)가 제 2 운영체제를 통해 제 1 운영체제를 제어하여, 해킹 프로세스가 사용자 프로세스에 접근하지 못하도록 하는 것을 도시하고 있다. 이는, 프로세서(101)가 해킹 프로세스를 제 1 메모리 영역에 접근하지 못하도록 제어하는 것이다.6 illustrates that the processor 101 controls the first operating system via the second operating system to prevent the hacking process from accessing the user process. This is to prevent the processor 101 from accessing the first memory area for the hacking process.

도 7은 프로세서(101)가 제 2 운영체제를 통해 제 1 운영체제를 제어하여, 해킹 프로세스가 가상 프로세스에 접근하도록 하는 것을 도시하고 있다. 이는, 프로세서(101)가 해킹 프로세스를 기 설정된 제 2 메모리 영역에 접근하도록 제어하는 것이다.FIG. 7 illustrates that the processor 101 controls the first operating system via the second operating system, allowing the hacking process to access the virtual process. This is to control the processor 101 to access the predetermined second memory area of the hacking process.

도 8은 프로세서(101)가 제 2 운영체제를 통해 제 1 운영체제를 제어하여, 동적으로 생성된 해킹 프로세스가 사용자 프로세스의 메모리 영역에 접근하지 못하도록 하는 것을 도시하고 있다. 이는, 프로세스(101)가 "DLL" 프로세스와 같이, 동적으로 생성되는 해킹 프로세스를 사용자 프로세스의 데이터가 저장되는 ".data" 영역에 접근하지 못하도록 제어하는 것이다.
Figure 8 illustrates that processor 101 controls the first operating system via the second operating system to prevent the dynamically generated hacking process from accessing the memory area of the user process. This is to prevent the process 101 from accessing the ".data" area where the user process data is stored, such as the "DLL"

상기에서 본 발명의 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명의 범위에 속하는 것은 당연하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Of course.

Claims (13)

제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하도록 구성된 프로그램 해킹 방어 방법으로,
가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하는 단계;
상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하는 단계;
상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하는 단계; 및
상기 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 상기 제 2 운영체제는 상기 제 1 운영체제를 제어하여, 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하는 단계를 포함하는 프로그램 해킹 방어 방법.
A program hacking defensive method configured to control access of a hacking process to a user process running in a first operating system,
Executing a second operating system that is a virtual OS;
Setting the second operating system as a host operating system;
Setting the first operating system as a client operating system under the control of the host operating system; And
The second operating system controls the first operating system so that the hacking process accesses the predetermined second memory area to prevent the hacking process from accessing the first memory area in which the data of the user process is written Include a program hacking defense method.
삭제delete 제 1 항에 있어서,
상기 제 1 운영체제에서 실행되는 프로세스를 제어하는 방어 프로세스를 상기 제 2 운영체제에서 실행하는 단계를 더 포함하고,
상기 해킹 프로세스 접근 차단 단계는,
상기 방어 프로세스가 상기 해킹 프로세스를 제어하여, 상기 해킹 프로세스가 상기 제 1 메모리 영역에 접근하는 것을 차단하는 프로그램 해킹 방어 방법.
The method according to claim 1,
Further comprising executing, in the second operating system, a defensive process for controlling a process executed in the first operating system,
The hacking process access blocking step includes:
Wherein the defensive process controls the hacking process to block the hacking process from accessing the first memory area.
제 1 항에 있어서,
상기 해킹 프로세스 접근 차단 단계는,
상기 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하는 프로그램 해킹 방어 방법.
The method according to claim 1,
The hacking process access blocking step includes:
And blocking a third memory area in which data of the hacking process is recorded from being switched to the first memory area.
제 1 항에 있어서,
상기 제 2 운영체제가 상기 해킹 프로세스를 모니터링하여, 상기 해킹 프로세스의 동작을 사용자에게 출력하는 단계를 더 포함하는 프로그램 해킹 방어 방법.
The method according to claim 1,
And the second operating system monitors the hacking process and outputs the operation of the hacking process to the user.
제 1 항에 있어서,
상기 제 1 메모리 영역은 상기 사용자 프로세스의 ".data" 영역이고,
상기 해킹 프로세스는 동적 생성 프로세스인 "DLL" 프로세스인 프로그램 해킹 방어 방법.
The method according to claim 1,
Wherein the first memory area is a ". Data" area of the user process,
Wherein the hacking process is a "DLL" process that is a dynamic creation process.
데이터를 저장하도록 구성된 메모리; 및
제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하도록 구성된 프로세서를 포함하고,
상기 프로세서는,
가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하고, 상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하고, 상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하고, 상기 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 상기 제 2 운영체제가 상기 제 1 운영체제를 제어하여 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하도록 구성된 프로그램 해킹 방어 시스템.
A memory configured to store data; And
A processor configured to control access of a hacking process to a user process running on a first operating system,
The processor comprising:
A second operating system that is a virtual operating system (Virtual OS), sets the second operating system as a host operating system, sets the first operating system as a client operating system under the control of the host operating system, Wherein the second operating system controls the first operating system so that the hacking process accesses the predetermined second memory area to prevent the hacking process from accessing the first memory area in which the data of the user process is written. system.
삭제delete 제 7 항에 있어서,
상기 프로세서는,
상기 제 1 운영체제에서 실행되는 프로세스를 제어하는 방어 프로세스를 상기 제 2 운영체제에서 실행하고, 상기 방어 프로세스가 상기 해킹 프로세스를 제어하여 상기 해킹 프로세스가 상기 제 1 메모리 영역에 접근하는 것을 차단하도록 구성된 프로그램 해킹 방어 시스템.
8. The method of claim 7,
The processor comprising:
Configured to execute a defensive process in the second operating system to control a process executed in the first operating system and to prevent the defensive process from accessing the first memory area by controlling the hacking process, Defense system.
제 7 항에 있어서,
상기 프로세서는,
상기 해킹 프로세스의 데이터가 기록된 제 3 메모리 영역이 상기 제 1 메모리 영역으로 전환(Switching)되는 것을 차단하도록 구성된 프로그램 해킹 방어 시스템.
8. The method of claim 7,
The processor comprising:
And to prevent switching of a third memory area in which data of the hacking process is recorded to the first memory area.
제 7 항에 있어서,
출력부를 더 포함하고,
상기 프로세서는,
상기 제 2 운영체제가 상기 해킹 프로세스를 모니터링하도록 제어하고, 상기 해킹 프로세스의 동작을 사용자에게 출력하도록 상기 출력부를 제어하는 프로그램 해킹 방어 시스템.
8. The method of claim 7,
Further comprising an output section,
The processor comprising:
The second operating system to monitor the hacking process and to control the output unit to output the operation of the hacking process to the user.
제 7 항에 있어서,
상기 제 1 메모리 영역은 상기 사용자 프로세스의 ".data" 영역이고,
상기 해킹 프로세스는 동적 생성 프로세스인 "DLL" 프로세스인 프로그램 해킹 방어 시스템.
8. The method of claim 7,
Wherein the first memory area is a ". Data" area of the user process,
Wherein the hacking process is a "DLL" process that is a dynamic creation process.
컴퓨터로 실행 가능하고, 제 1 운영체제에서 실행되는 사용자 프로세스에 해킹 프로세스의 접근을 제어하는 프로그램이 기록된 기록매체로,
상기 프로그램은,
가상 운영체제(Virtual OS)인 제 2 운영체제를 실행하는 단계; 상기 제 2 운영체제를 호스트(Host) 운영체제로 설정하는 단계; 상기 제 1 운영체제를 상기 호스트 운영체제의 제어를 받는 클라이언트(Client) 운영체제로 설정하는 단계; 및 상기 해킹 프로세스가 기 설정된 제 2 메모리 영역에 접근하도록 상기 제 2 운영체제는 상기 제 1 운영체제를 제어하여, 상기 사용자 프로세스의 데이터가 기록된 제 1 메모리 영역에 상기 해킹 프로세스가 접근하는 것을 차단하는 단계로 구성된 기록매체.
A recording medium on which a program executable by a computer and controlling access to a hacking process to a user process executed in a first operating system is recorded,
The program includes:
Executing a second operating system that is a virtual OS; Setting the second operating system as a host operating system; Setting the first operating system as a client operating system under the control of the host operating system; And the second operating system controls the first operating system so that the hacking process accesses a predetermined second memory area, thereby blocking access of the hacking process to a first memory area in which data of the user process is recorded .
KR1020130059979A 2013-05-27 2013-05-27 The method and system for defending program hacking KR101434794B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130059979A KR101434794B1 (en) 2013-05-27 2013-05-27 The method and system for defending program hacking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130059979A KR101434794B1 (en) 2013-05-27 2013-05-27 The method and system for defending program hacking

Publications (1)

Publication Number Publication Date
KR101434794B1 true KR101434794B1 (en) 2014-08-27

Family

ID=51751436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130059979A KR101434794B1 (en) 2013-05-27 2013-05-27 The method and system for defending program hacking

Country Status (1)

Country Link
KR (1) KR101434794B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030777A1 (en) * 2020-08-04 2022-02-10 삼성전자 주식회사 Memory protection method and electronic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262545A (en) 2009-05-08 2010-11-18 Ntt Data Corp Monitoring management device of virtual machine, monitoring management method, and computer program
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
JP2012190446A (en) 2011-03-10 2012-10-04 Safenet Inc Protection of guest virtual machine memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262545A (en) 2009-05-08 2010-11-18 Ntt Data Corp Monitoring management device of virtual machine, monitoring management method, and computer program
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
JP2012190446A (en) 2011-03-10 2012-10-04 Safenet Inc Protection of guest virtual machine memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030777A1 (en) * 2020-08-04 2022-02-10 삼성전자 주식회사 Memory protection method and electronic device

Similar Documents

Publication Publication Date Title
CN110651269B (en) Isolated container event monitoring
US10664592B2 (en) Method and system to securely run applications using containers
EP3017392B1 (en) Process evaluation for malware detection in virtual machines
CN110199271B (en) Method and apparatus for field programmable gate array virtualization
RU2432605C1 (en) Method of extending server-based desktop virtual machine architecture to client machines and machine-readable medium
US8839228B2 (en) System and method for updating an offline virtual machine
US9111089B1 (en) Systems and methods for safely executing programs
US8468600B1 (en) Handling instruction received from a sandboxed thread of execution
US20120089650A1 (en) System and method for a storage system
US8799898B2 (en) Methods and apparatus for binding applications to a cloud computing environment
US8271995B1 (en) System services for native code modules
JP2022522678A (en) Secure execution guest owner environment control
US11636228B2 (en) Policy based persistence
US10803167B1 (en) Systems and methods for executing application launchers
CN105740413A (en) File movement method by FUSE on Linux platform
JP2006164266A (en) Improvement in performance of operating system
US10817600B2 (en) Protecting stack memory in computer systems
KR101434794B1 (en) The method and system for defending program hacking
WO2011021340A1 (en) Virtual thin client making device, virtual thin client making system, virtual thin client making program, and virtual thin client making method
US11520866B2 (en) Controlling processor instruction execution
James et al. The mobile execution environment: A secure and non-intrusive approach to implement a bring you own device policy for laptops
US7587722B2 (en) Extending operating system subsystems
US7409691B2 (en) Extending operating system subsystems
JP2011040044A (en) Device, system, program and method for integrating virtual thin client
US9239729B1 (en) Sidecar file framework for managing virtual disk plug-in data and metadata

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170607

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190802

Year of fee payment: 6