KR100960358B1 - Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security - Google Patents
Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security Download PDFInfo
- Publication number
- KR100960358B1 KR100960358B1 KR1020080028976A KR20080028976A KR100960358B1 KR 100960358 B1 KR100960358 B1 KR 100960358B1 KR 1020080028976 A KR1020080028976 A KR 1020080028976A KR 20080028976 A KR20080028976 A KR 20080028976A KR 100960358 B1 KR100960358 B1 KR 100960358B1
- Authority
- KR
- South Korea
- Prior art keywords
- security
- security level
- category information
- subject
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 컴퓨터 운영체제(OS: Operating System) 내에서 실행중인 프로세스가 프로세스 메모리에 접근하는 것을 제어하여 프로세스 메모리를 보호하는 방법에 관한 것이다.The present invention relates to a method of protecting a process memory by controlling a process running in a computer operating system (OS) to access the process memory.
본 발명에 따르면, (a) 시스템 보안관리자로 하여금 시스템에 설치되는 응용프로그램에 보안 등급과 카테고리 정보를 배정하여 설정하도록 하는 단계; (b) 시스템 내에 설치된 응용프로그램이 실행되어 프로세스가 생성될 때 프로세스 구조체에 필드를 할당하고 해당 응용프로그램에 설정된 보안 등급과 카테고리 정보를 수록하는 단계; 및 (c) 실행중인 프로세스가 주체가되고 다른 실행중인 프로세스를 객체로 하여 주체가 객체의 프로세스 메모리를 액세스할 때, 상기 객체의 프로세스 구조체에 수록된 보안 등급과 카테고리 정보를 서로 비교하여 수정된 BLP 모델에 따라 객체의 프로세스 메모리에 대한 주체의 접근 권한을 커널모드에서 결정하는 단계;를 포함하는 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법이 개시된다.According to the present invention, (a) allowing the system security manager to assign and set security level and category information to an application installed in the system; (b) when the application installed in the system is executed to allocate a field to the process structure when the process is created, and to include the security level and category information set for the application; And (c) the modified BLP model by comparing the security level and category information contained in the process structure of the object when the running process becomes the subject and the subject accesses the process memory of the object using another running process as the object. In accordance with the present invention, a mandatory process memory access control method based on a multi-class security method is disclosed.
프로세스, 메모리, 보안정보, BLP모델 Process, memory, security information, BLP model
Description
본 발명은 컴퓨터 운영체제(OS: Operating System)에서의 보안 방법에 대한 것으로서, 보다 상세하게는 운영체제 내에서 실행중인 프로세스가 프로세스 메모리에 접근하는 것을 제어하여 프로세스 메모리를 보호하는 방법에 관한 것이다.The present invention relates to a security method in a computer operating system (OS), and more particularly, to a method of protecting a process memory by controlling a process running in an operating system to access the process memory.
예전에 이루어진 컴퓨터 시스템의 보안기술 연구로는 컴퓨터 시스템에 암호화, 접근제어, 감사 추적 등의 하드웨어, 소프트웨어를 추가하는 애드온(Add-on) 방식이 진행되어 왔다. 그러나 이러한 방식으로는 기존에 알려진 우회, 수정 등의 문제점 및 새로운 보안상의 문제점인 트로이 목마, covert channel 등의 신종 컴퓨터 범죄를 해결할 수 없었고, 이러한 문제점이 발생할 때마다 새로운 보안 업데이트를 계속해서 추가해야하는 문제가 있었다.In the past, security technology research on computer systems has been conducted with an add-on method of adding hardware and software such as encryption, access control, and audit trail to computer systems. However, this approach did not solve the known problems of bypass, modification, and new security issues such as Trojan horses and covert channels, and the need to continue to add new security updates whenever such problems occur. There was.
또한, 최근 들어 정보화 분야가 비약적으로 확대됨에 따라 컴퓨터에 저장된 비밀 수준의 정보들에 대한 접근 권한이 없는 내부 및 외부 사용자, 또는 프로세스 주체가 객체인 비밀 파일 또는 장치에 임의적으로 접근하여 불법적으로 객체를 읽고 쓰거나 수행하는 등의 보안 문제가 발생하고 있다. 특히, 웹을 통한 콘텐츠 서비스에 있어서는, 해커 등에 의한 시스템 루트 권한의 도용과 접근 권한이 없는 사용자 등에 의한 홈 페이지 및 관련 콘텐츠의 불법 변조 문제가 사회적 물의를 일으키고 있다.In addition, with the recent rapid expansion of the information field, illegally accessing internal or external users who do not have access to confidential levels of information stored on a computer, or secret files or devices whose process subjects are objects There are security issues such as reading and writing or performing. In particular, in the content service via the web, problems of theft of the system root authority by hackers and the like and illegal alteration of the home page and related contents by users who do not have access rights cause social controversy.
이에 따라, 최근에는 컴퓨터 시스템의 운영체제의 내부 커널에 보안 기능을 포함시키는 보안 커널의 연구 개발이 진행되고 있다. 이런 보안 커널의 개발에 따라 최근에는 사용자 또는 프로세스인 주체가 객체인 비밀 파일 또는 장치에 접근시에 보안성이 강화되었다.Accordingly, recently, research and development of a security kernel including a security function in an internal kernel of an operating system of a computer system has been in progress. With the development of such a secure kernel, in recent years, when a user or process subject accesses a secret file or a device that is an object, security is enhanced.
기존에 개발된 보안 커널 또는 운영체제의 경우에는 객체를 크게 디스크에 저장된 정규 파일, 디렉터리, 특수 파일인 장치파일 등으로 구성하였다. 따라서, 사용자 또는 프로세스의 주체가 파일, 디렉터리 또는 장치파일에 접근할 경우에는 강화된 접근제어 방식으로 보안성을 유지할 수 있었다. 그러나 프로세스가 소유하고 있는 프로세스 메모리에 대한 접근 제어 및 보안 기술은 그 연구 및 개발이 부족한 점이 많았다.In the case of the previously developed security kernel or operating system, the object is largely composed of regular files, directories, and special file devices stored on disk. Therefore, when a user or a subject of a process accesses a file, a directory, or a device file, security can be maintained by an enhanced access control method. However, the access control and security technology for process memory owned by a process was lacking in research and development.
따라서, 프로세스 메모리에 대한 해킹 및 덤프로 프로세스 메모리상에 적재된 정보들이 외부로 유출될 수 있는 보안상의 문제점이 발생할 수 있고, 기존의 보안 커널 및 운영체제로는 이러한 문제를 원천적으로 해결하기 힘든 문제가 있다.Therefore, a security problem may occur in which information loaded on the process memory may leak to the outside due to hacking and dumping of the process memory, and it is difficult to solve such problems with the existing security kernel and operating system. have.
본 발명은 상기와 같은 문제점을 해결하기 위해 창안한 것으로서, 컴퓨터 시스템에서 일정한 보안 등급을 보유하는 주체, 즉 프로세스가 비밀 수준의 보안 등급 객체 즉, 프로세스 메모리를 읽거나(read), 쓰거나(write) 하려고 할 때, 주체와 객체 사이의 등급과 카테고리 관계에 수정된 BLP(Bell & Lapadula) 보안모델을 적용하여 접근을 제어함으로써, 보안 등급을 가지는 프로세스가 타 프로세스에 의해 프로세스 메모리의 정보가 유출 또는 변형되지 않도록 보호될 수 있는 강제적 프로세스 메모리 접근 제어 방법을 제공하는 데 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, wherein a subject having a certain security level in a computer system, i.e., a process reads or writes a secret security level object, i.e., a process memory. When attempting to control the access by applying the modified BLP (Bell & Lapadula) security model to the class and category relationship between the subject and the object, the process having the security level is leaked or modified by other processes. Its purpose is to provide a compulsory process memory access control method that can be protected from being prevented.
나아가, 본 발명은 컴퓨터 시스템에 응용프로그램이 설치될 때에 보안관리자로 하여금 보안 등급 및 카테고리 정보를 배정하고 이를 설정하도록 하여, 응용프 로그램이 실행되어 생성되는 프로세스와, 프로세스에 의해서 생성되는 자식 프로세스에 보안관리자가 설정한 보안 등급 및 카테고리 정보가 계속 상속될 수 있도록 하는 방법을 제공하는 데 다른 목적이 있다.Furthermore, the present invention allows the security manager to assign security level and category information when the application program is installed on the computer system, and to set the security level and category information so that the application is executed and the child process generated by the process. Another purpose is to provide a method to allow the security level and category information set by the security manager to continue to be inherited.
본 발명의 다른 목적 및 장점들은 하기에 설명될 것이며, 본 발명의 실시예에 의해 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 첨부된 특허 청구 범위에 나타낸 수단 및 조합에 의해 실현될 수 있다.Other objects and advantages of the invention will be described below and will be appreciated by the embodiments of the invention. Further, objects and advantages of the present invention can be realized by the means and the combination shown in the appended claims.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법은, (a) 시스템 보안관리자로 하여금 시스템에 설치되는 응용프로그램에 보안 등급과 카테고리 정보를 배정하여 설정하도록 하는 단계; (b) 시스템 내에 설치된 응용프로그램이 실행되어 프로세스가 생성될 때 프로세스 구조체에 필드를 할당하고 해당 응용프로그램에 설정된 보안 등급과 카테고리 정보를 수록하는 단계; 및 (c) 실행중인 프로세스가 주체가되고 다른 실행중인 프로세스를 객체로 하여 주체가 객체의 프로세스 메모리를 액세스할 때, 상기 객체의 프로세스 구조체에 수록된 보안 등급과 카테고리 정보를 서로 비교하여 수정된 BLP 모델에 따라 객체의 프로세스 메모리에 대한 주체의 접근 권한을 커널모드에서 결정하는 단계;를 포함한다.In order to achieve the above object, the mandatory process memory access control method based on the multi-class security method according to the present invention, (a) the system security administrator assigns the security level and category information to the application installed in the system Setting up; (b) when the application installed in the system is executed to allocate a field to the process structure when the process is created, and to include the security level and category information set for the application; And (c) the modified BLP model by comparing the security level and category information contained in the process structure of the object when the running process becomes the subject and the subject accesses the process memory of the object using another running process as the object. And determining, in kernel mode, the subject's access rights to the object's process memory.
본 발명의 다른 측면에 따르면, 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법을 제공하는 프로그램이 기록된 기록매체로서, (1) 시스템 보안관리자로 하여금 시스템에 설치되는 응용프로그램에 보안 등급과 카테고 리 정보를 배정하여 설정하도록 하는 절차와, (2) 시스템 내에 설치된 응용프로그램이 실행되어 프로세스가 생성될 때 프로세스 구조체에 필드를 할당하고 해당 응용프로그램에 설정된 보안 등급과 카테고리 정보를 수록하는 절차 및 (3) 실행중인 프로세스가 주체가되고 다른 실행중인 프로세스를 객체로 하여 주체가 객체의 프로세스 메모리를 액세스할 때, 상기 객체의 프로세스 구조체에 수록된 보안 등급과 카테고리 정보를 서로 비교하여 수정된 BLP 모델에 따라 객체의 프로세스 메모리에 대한 주체의 접근 권한을 커널모드에서 결정하는 절차를 실행하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체가 제공된다.According to another aspect of the present invention, there is provided a recording medium on which a program for providing a forced process memory access control method based on a multi-class security method is recorded. (2) assigning fields to a process structure when an application installed in the system is executed to create a process, and including security level and category information set for the application; (3) When a running process becomes a subject and another running process becomes an object, and the subject accesses the object's process memory, the security level and category information contained in the process structure of the object are compared with each other to modify the BLP model. Subject's access to the object's process memory The computer-readable medium storing a program for executing a procedure for determining the kernel mode is provided.
본 발명에 따르면, 종래의 보안 등급이 없는 프로세스 또는 보안 등급이 맞지 않는 프로세스가 임의적으로 보안 등급을 갖는 프로세스에 대하여 프로세스가 소유한 프로세스 메모리에 읽기, 쓰기 등의 접근을 시도할 경우 수정된 BLP 모델이 기초하여 커널모드에서 원천적으로 차단할 수 있는 효과를 제공한다.According to the present invention, a modified BLP model when a process without a security level or a process that does not meet the security level arbitrarily attempts to access a process memory owned by a process to a process memory owned by a process, such as read or write. Based on this, it provides the effect of blocking natively in kernel mode.
또한, 애초에 응용프로그램 설치시나 프로세스 생성시에 보안관리자로부터 배정되고 부여된 보안 등급이 계속해서 상속되므로, 접근하려는 프로세스에 유사한 프로세스로 변형하거나, 유사한 프로세스로 우회하여 프로세스 메모리에 접근하려 해도 상속된 보안 등급에 의해 접근이 차단되는 효과를 제공한다.In addition, since the security level assigned and assigned by the security officer is continuously inherited at the time of application installation or process creation, the inherited security even if the user attempts to access the process memory by transforming it into a similar process or bypassing the similar process. Provides the effect of blocking access by class.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거 나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, the terms or words used in this specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly introduce the concept of terms in order to best explain their invention. It should be interpreted as meanings and concepts in accordance with the technical spirit of the present invention based on the principle that it can be defined. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.
이하에서는 먼저 본 발명이 채용하고 있는 수정된 BLP 모델을 상세하게 설명한 다음, 이를 바탕으로 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하기로 한다. 그러나 이하에서 설명되는 본 발명의 바람직한 실시예는 본 발명의 기술적 범위를 한정하려는 것이 아니고, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 명확하고 용이하게 설명하려고 하는 것이다. 도면상에서 동일한 도면부호는 동일한 요소를 지칭한다.Hereinafter, the modified BLP model employed by the present invention will be described in detail, and then the preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the preferred embodiments of the present invention described below are not intended to limit the technical scope of the present invention, but are intended to explain the present invention more clearly and easily to those skilled in the art. Like reference numerals in the drawings refer to like elements.
본 발명에 따른 다중 등급 보안 방식에 의한 강제적 프로세스 메모리 접근 제어 방법에 적용된 BLP 모델에 있어서는, 주체가 객체에 대해 읽기(read, execute), 쓰기(write, create, append, delete)를 수행할 수 있는지에 대한 여부를 판단하기 위해 아래와 같은 방식의 판단조건을 부가하게 된다.In the BLP model applied to the mandatory process memory access control method according to the multi-class security method according to the present invention, whether the subject can read, execute, write (write, create, append, delete) the object. In order to determine whether or not to add a judgment condition as follows.
(1) 주체는 아래와 같은 조건이 모두 만족되는 경우에만 객체에 대해 읽기(read, execute) 권한이 부여된다.(1) The subject is granted read (execute) permission on the object only when all of the following conditions are met.
조건1: 주체의 보안 등급이 객체의 보안 등급보다 같거나 높을 것Condition 1: The subject's security level is equal to or higher than the object's security level
조건2: 주체의 카테고리가 객체의 카테고리를 지배(포함)할 것Condition 2: The subject's category dominates (includes) the category of the object
여기에서, 보안 등급이라 함은 0급, 1급, 2급 등과 같은 정보의 등급을 말하는 것이고, 카테고리라 함은 인사, 군수, 행정 등 정보의 범주를 의미하는 것이다.Here, the security level refers to the level of information such as 0, 1, 2, etc., the category refers to the category of information, such as personnel, logistics, administration.
상기와 같은 조건 1 및 2가 부여된 경우, 주체는 자신의 보안 등급보다 낮은 보안 등급과 자신의 카테고리와 포함관계에 있는 카테고리를 가진 객체에 대해서는 읽기 권한을 가진다. 그리고, 자신의 보안 등급보다 높은 보안 등급을 가지고 있거나, 자신의 카테고리와 포함관계에 있지 않은 객체에 대해서는 읽을 수 있는 권한을 가질 수 없다.If the
(2) 주체는 아래와 같은 조건이 모두 만족되는 경우에만 객체에 대해 쓰기(write, create, append, delete)권한을 가지게 된다.(2) The subject has write (write, create, append, delete) permission on the object only when all of the following conditions are met.
조건3: 주체의 보안 등급이 객체의 보안 등급과 같을 것Condition 3: The subject's security level is the same as the object's security level
조건4: 객체의 카테고리가 주체의 카테고리와 같을 것Condition 4: The object's category is the same as the subject's category
상기와 같은 조건3 및 4가 주어진 경우, 주체의 보안 등급보다 낮거나 높은 보안 등급을 가지는 객체에 대해서는 주체가 생성, 수정, 삭제할 수 있는 권한을 가질 수 없고, 주체와 객체의 등급과 카테고리가 같은 경우에만 주체가 객체를 생성, 수정, 삭제할 수 있게 된다.Given the
이상에서와 같은 수정된 BLP 모델에 따라 다중 등급 보안 방식에 의한 강제적 프로세스 메모리 접근 제어 방법을 구현하기 위해, 본 발명에서는 주체를 프로세스 메모리에 접근하려는 프로세스로 객체를 주체가 접근하려는 프로세스 메모리 를 소유하고 있는 프로세스로 각각 정의한다. 또한, 주체와 객체인 프로세스에 대해 보안 등급과 카테고리 정보를 부가하는 대상으로 커널 메모리에 저장된 프로세스 구조체를 채택한다. 상기 프로세스 구조체는 윈도우즈 기반의 운영체제에서는 EPROCESS(Executive Process) 구조체인 것이 바람직하다.In order to implement a mandatory process memory access control method using a multi-class security method according to the modified BLP model as described above, the present invention owns the process memory to which the subject accesses the object as the process to access the subject process memory. Define each as a process. In addition, the process structure stored in the kernel memory is adopted to add security level and category information to the process which is the subject and the object. The process structure is preferably an EPROCESS (Executive Process) structure in a Windows-based operating system.
도 1은 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법에서 구현한 프로세스 구조체의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a process structure implemented in a mandatory process memory access control method based on a multi-class security scheme according to an embodiment of the present invention.
도 1을 참조하면, 본 발명에 따른 프로세스 구조체(10)의 구성은 기존의 윈도우즈 운영체제에서 정의된 프로세스 구조체에 다중 등급 보안 정보의 수록을 위한 2개의 필드(clearance 및 category; 20 및 30)를 추가로 정의하여 사용한다. 본 발명에 따라 프로세스 구조체(10)에 추가된 2개의 필드 중 보안 등급 필드(20)의 세부 구성은 도 2에 도시된 바와 같고, 카테고리 정보 필드(30)의 세부 구성은 도 3에 도시된 바와 같다.Referring to FIG. 1, the configuration of the
도 2를 참조하면, 보안 등급 필드(20)는 보안 등급 수록부(40)를 포함하도록 구성된다. 필요에 따라, 상기 보안 등급 필드(20)는 예약부(50), 암호화 플래그(70) 등이 포함되도록 구성될 수도 있다. 본 발명의 실시예에 따른 보안 등급 필드(20)를 도시한 도 2의 경우, 총 비트수가 32비트로 할당되어 있고 그 중 8비트가 보안 등급의 수록을 위해 사용되었고; 그 중 22비트가 타 용도를 위해 예약되었고; 그 중 1비트가 암호화 플래그를 위해 사용되었다. 이처럼, 8비트가 보안 등급의 수록을 위해 사용될 경우, 256가지의 등급을 프로세스에게 부여할 수 있다. 물론, 보 안 등급 필드(20)를 구성하는 총 비트수와 그 구성요소인 보안 등급 수록부(40), 예약부(50) 및 암호화 플래그(70)를 이루는 비트수는 변경가능하다. 또한, 보안 등급 필드(20)를 구성함에 있어서, 암호화 플래그(70)를 위한 비트수는 경우에 따라서 할당되지 않아도 무방하다. 예를 들어, 암호화 플래그(70)의 경우 주체인 경우에는 사용되지 않을 수 있다.2, the
도 3을 참조하면, 카테고리 정보 필드(30)는 카테고리 표시부(80)를 포함하도록 구성된다. 본 발명에 따른 실시예를 도시한 도 3에 있어서는, 카테고리 정보 필드(30)가 32비트로 할당되었고, 전체 비트가 카테고리 표시부(80)로 사용되고 있다. 하지만, 카테고리 정보 필드(30)의 총 비트수와 그 안에 포함되는 카테고리 표시부(80)의 비트수는 필요에 따라서 변경될 수 있다.Referring to FIG. 3, the
본 발명에 있어서 카테고리 정보 필드(30)에 카테고리 정보를 부여하는 방법은, 배정되거나 상속받은 카테고리 정보를 이에 해당하는 소정 위치의 비트에 1로 세팅하는 것이다. 예를 들어, 배정된 카테고리 정보가 AB인 경우는 A 및 B에 해당하는 특정 비트부에 1을 세팅하면 된다. 따라서, 카테고리 표시부 내의 여러 개 비트가 1로 세팅되어 있으면, 1로 세팅된 비트수 만큼의 복수 카테고리 정보를 가지게 된다. 이러한 카테고리 정보 표시 방법은 카테고리 표시부(80)로 할당된 비트수 만큼의 카테고리를 주체 또는 객체가 가질 수 있도록 해 준다. 도 3에 도시된 카테고리 정보 필드(30)의 경우 32비트 전체가 카테고리 표시부(80)로 예약되어 사용되므로 주체 및 객체가 최대 32개까지의 카테고리를 갖도록 할 수 있게 된다.In the present invention, a method of assigning category information to the
본 발명에 있어서, 시스템 내에서 프로세스를 생성하는 응용프로그램에 보안 정보 즉 보안 등급 및 카테고리 정보를 부여하는 방법을 설명하기로 한다. 상기 응용프로그램에 보안정보를 부여할 때에는 시스템 관리자나 시스템 보안관리자로 하여금 시스템 내에서 응용프로그램이 설치될 시에 보안 정보를 부여하도록 할 수 있고, 또는 설치된 응용프로그램에 보안 정보를 부여할 수도 있다. 이와 같은 응용프로그램에 보안정보를 부여하기 위해서는 응용프로그램의 실행파일에 파일정보 영역 또는 헤더영역 등에 따로 필드를 할당하여 상기 보안 등급 및 카테고리 정보를 부가하게 된다.In the present invention, a method of assigning security information, that is, security level and category information, to an application creating a process in the system will be described. When assigning security information to the application program, a system administrator or a system security manager may grant security information when the application program is installed in the system, or may provide security information to the installed application program. In order to provide security information to such an application program, the security level and category information is added by allocating fields separately to a file information area or a header area to an executable file of the application program.
구체적으로 윈도우즈 계열의 운영체제의 경우 응용프로그램의 실행파일에 대한 정보가 저장된 영역은 확장 파일 속성이라는 데이터 구조에 위치한다. 따라서, 해당 실행파일의 확장 파일 속성의 예약 필드 중 2개의 필드를 새롭게 할당하고 여기에 보안 등급과 카테고리 정보를 각각 수록하여 보안 정보를 부가하게 된다. 또한, 이때에는 2개의 필드를 새롭게 할당하되, 각 필드의 비트수를 32비트로 할당하고 그 중 한 필드는 보안 등급을 수록하고 나머지 한 필드에는 카테고리 정보를 수록하기 위해 사용하게 된다. 물론, 보안 등급과 카테고리 정보의 수록을 위해 사용하는 필드에 할당되는 총 비트수와 이들 필드간의 상대적인 위치는 경우에 따라 변동될 수 있다. 아울러, 응용프로그램에 보안 등급과 카테고리 정보를 수록하기 위해 확장 파일 속성에 할당된 2개의 필드의 세부 구성은, 프로세스의 보안 등급과 카테고리 정보를 수록하기 위해 프로세스 구조체에 할당된 필드(도 2 및 도 3 참조)의 그것과 실질적으로 동일하다. 따라서, 확장 파일 속성에 할당된 보안 등급과 카테고리 정보 수록용 필드의 세부구성은 도 2 및 도 3에 도시된 보안 등급 필 드(20)와 카테고리 정보 필드(30)의 세부구성을 참조할 수 있다. 따라서, 확장 파일 속성의 보안 등급 필드에 보안 등급을 수록하기 위해 8비트가 할당된 경우 최대 256개까지의 보안 등급을 부여할 수 있다. 그리고, 확장 파일 속성의 카테고리 정보 필드에 카테고리 정보를 수록하기 위해 32비트가 할당된 경우 최대 32개까지의 카테고리를 부여할 수 있다. 이처럼, 확장 파일 속성에 보안 등급과 카테고리 정보를 부가하는 것은 시스템 보안관리자에 의하여 이루어질 수 있다.Specifically, in the case of a Windows-based operating system, an area in which information on an executable file of an application program is stored is located in a data structure called an extended file attribute. Accordingly, two fields of the reserved fields of the extended file attribute of the corresponding executable file are newly allocated, and the security information and category information are respectively added to the security information. In this case, two fields are newly allocated, and the number of bits of each field is allocated to 32 bits, and one of them is used to store security level and the other field to contain category information. Of course, the total number of bits allocated to the fields used for the recording of security level and category information and the relative positions between these fields may vary depending on the case. In addition, the detailed configuration of the two fields assigned to the extended file attribute to include the security level and category information in the application, the fields assigned to the process structure to contain the security level and category information of the process (Fig. 2 and Fig. Substantially identical to that of 3). Therefore, the detailed configuration of the security level and category information recording field assigned to the extended file attribute may refer to the detailed configuration of the
다만, 확장 파일 속성의 보안 등급 필드의 경우는 암호화된 파일임을 표시하기 위해 한 비트를 암호화 플래그인 MSB(Most Significant Bit)로 할당하여 사용할 수 있다. 예를 들어, 암호화 플래그인 MSB가 1로 세팅되어 있으면 이는 응용프로그램의 실행 파일이 암호화된 파일임을 의미하게 된다. However, in the case of the security level field of the extended file attribute, one bit may be allocated to the most significant bit (MSB), which is an encryption flag, to indicate that the file is encrypted. For example, if the encryption flag MSB is set to 1, this means that the executable file of the application is an encrypted file.
상술한 바와 같은 방식으로 본 발명에 따라 응용프로그램에 대해 보안 정보 즉, 보안 등급과 카테고리 정보를 부가한 다음, 응용프로그램이 실행되어 프로세스가 생성되면 보안 정보를 상속시켜 프로세스에서 프로세스 메모리의 접근을 시도할 경우 다중 등급 보안 방식의 강제적 프로세스 메모리 접근 제어 방법을 구현하게 된다. According to the present invention, as described above, security information, that is, security level and category information is added to an application, and when the application is executed to generate a process, the security information is inherited and the process attempts to access the process memory. In this case, a mandatory process memory access control method of multi-class security is implemented.
도 4는 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법의 전체적인 흐름을 도시한 순서도이다.4 is a flowchart illustrating the overall flow of a mandatory process memory access control method based on a multi-class security scheme according to an embodiment of the present invention.
도 4를 참조하여, 본 발명에 따른 다중 등급 보안 방식의 강제적 프로세스 메모리 접근 제어 방법을 구현한 예를 설명하기로 한다.4, an example of implementing a mandatory process memory access control method of a multi-class security method according to the present invention will be described.
먼저, 시스템 보안관리자로 하여금 시스템 내의 응용프로그램에 대하여 보안 정보를 배정하도록 하고, 각 응용프로그램에 배정된 보안 정보를 부여하는 절차가 진행된다. 이때에는 응용프로그램이 시스템에 설치될 때에 보안 정보를 설정하는 것이 바람직하다. 아울러, 보안 정보를 배정할 때에도 보안 등급 및 카테고리 정보로 구분하며 상술한 확장 파일 속성의 할당된 필드에 배정된 보안 정보를 각각 수록하여 보안 정보를 설정하는 처리를 진행한다. 여기에서, 보안 등급이라 함은 0급, 1급, 2급 등과 같은 정보의 등급을 말하는 것이고, 카테고리라 함은 인사, 군수, 행정 등 정보의 범주를 의미하는 것이다.(S10)First, a system security manager assigns security information to an application program in a system, and a procedure of assigning the security information assigned to each application program is performed. At this time, it is desirable to set security information when the application program is installed in the system. In addition, when allocating security information, the security information is classified into security level and category information, and the security information assigned to the above-mentioned assigned field of the extended file attribute is recorded to set security information. Here, the security level refers to the level of information, such as 0, 1, 2, etc., the category refers to the category of information, such as personnel, logistics, administration, etc. (S10)
이렇게 보안 정보가 설정되어 설치된 응용프로그램은 사용자 또는 실행 중인 다른 프로세스에 의해 실행이 된다. 응용프로그램의 실행은 응용프로그램의 실행 파일을 실행함으로써 이루어진다. 또한, 사용자(또는 관리자)에 의해 실행될 수도 있고, 실행 중인 다른 프로세스에 의해 실행될 수도 있으며, 네트워크를 통해 외부로부터 실행 명령을 전달받아 실행될 수도 있다.(S20)The application installed with this security information is executed by the user or other running process. Execution of an application is accomplished by executing the executable file of the application. In addition, it may be executed by a user (or an administrator), may be executed by another running process, or may be executed by receiving an execution command from the outside through a network (S20).
응용프로그램이 실행되면, 프로세스가 생성된다. 구체적으로 말하면, 프로그램 로더에 의해 실행 파일이 로드되어 응용프로그램과 그에 링크된 DLL들이 함께 메모리에 적재되어 운영체제의 제어를 받는 상태인 프로세스가 생성된다. 아울러, 응용프로그램의 실행에 의해 생성되는 프로세스는 하나 또는 그 이상이 될 수도 있다. 즉, 하나의 응용프로그램 실행으로도 시스템 내에 다수의 프로세스가 생성될 수도 있다.(S30)When the application runs, it creates a process. Specifically, an executable file is loaded by a program loader to generate a process in which an application and DLLs linked thereto are loaded together in memory and under the control of an operating system. In addition, there may be one or more processes created by the execution of an application. That is, a plurality of processes may be created in the system even by executing one application program (S30).
응용프로그램의 실행에 의해 프로세스가 생성되기도 하지만, 생성되어 실행중인 프로세스에 의해서도 또 다른 프로세스가 생성될 수도 있다. 이를 자식 프로 세스라고 한다. 즉, 실행중인 프로세스가 계속해서 다른 자식 프로세스를 생성할 수 있다.(S35)Although a process may be created by the execution of an application program, another process may be created by the created and running process. This is called a child process. That is, the running process can continue to create another child process (S35).
이와 같이, 시스템 내에 프로세스가 생성되면, 프로세스 메모리에 프로그램이 적재되며, 이와 함께 커널 메모리에는 생성된 프로세스에 대한 정보들이 프로세스 구조체에 수록된다. 이 커널 메모리는 커널모드에서만 액세스할 수 있는 메모리 영역이고 시스템 내의 프로세스들에 대한 관리와 구분을 할 수 있도록 한다. 이처럼 프로세스 생성과 함께 프로세스 구조체에 정보를 수록할 때에 상기 응용프로그램에서 설정된 보안정보가 상속되어 수록된다. 즉, 도 1 내지 도 3을 통해 설명한 프로세스 구조체의 보안 등급 필드(20)와 카테고리 정보 필드(30)에 상속받은 보안 정보가 각각 복사되어 수록된다. 아울러, S35 단계에서처럼 프로세스에 의해 프로세스가 생성된 경우에도, 부모 프로세스의 보안 정보를 상속받아 자식 프로세스의 프로세스 구조체에 수록한다.(S40)As such, when a process is created in the system, a program is loaded into the process memory, and information about the created process is stored in the process structure in the kernel memory. This kernel memory is a region of memory that can only be accessed in kernel mode and allows for management and separation of processes within the system. As such, when the information is recorded in the process structure together with the process generation, the security information set in the application is inherited and stored. That is, the security information inherited in the
다음으로, 실행중인 프로세스에서(이때의 각 프로세스들은 각각 부모 프로세스 또는 실행된 응용프로그램의 보안정보를 상속받은 상태임) 프로세스 메모리에 대한 접근을 시도하는 이벤트가 발생한다. 이때에는 다른 프로세스가 소유하고 있는 프로세스 메모리에 대한 접근 시도인 경우와, 자신이 소유하고 있는 프로세스 메모리에 대한 접근 시도인 경우를 모두 포함할 수 있다. 여기서, 프로세스 메모리의 접근을 시도하는 프로세스를 주체로 정의하고, 상기 주체에 의해 접근 시도를 받은 프로세스 메모리를 소유한 프로세스를 객체로 정의한다. 이때 역시, 주체와 객체가 동일할 수도 있고 다를 수도 있다.(S50)Next, an event occurs that attempts to access process memory in the running process (each process inherits the security information of the parent process or the running application). At this time, it may include both an attempt to access process memory owned by another process and an attempt to access process memory owned by another process. Here, the process that attempts to access the process memory is defined as a subject, and the process that owns the process memory that has been accessed by the subject is defined as an object. In this case, the subject and the object may be the same or may be different (S50).
접근 시도가 발생하면 커널 모드에서는 주체와 객체 프로세스의 보안 정보를 추출하는 절차를 진행한다. 즉, 주체, 객체 프로세스의 프로세스 구조체에서 보안 등급과 카테고리 정보를 추출한다. 이때 역시, 상술한 바와 같이 프로세스 구조체에 할당된 2개의 필드에서 각각 보안 등급과 카테고리 정보를 조회하여 추출하게 된다.(S60)When an access attempt occurs, kernel mode proceeds to extract the security information of the subject and object process. That is, the security level and category information is extracted from the process structure of the subject and object process. At this time, the security level and the category information are respectively searched and extracted from the two fields allocated to the process structure as described above (S60).
이렇게 주체와 객체의 보안 정보가 각각 추출되면, 수정된 BLP 모델을 이용하여 각각의 보안 정보를 비교하는 절차를 진행한다. 이 절차는 BLP 모델에 기초하여 위에 정의한 주체와 객체에 대하여 각각의 보안 등급과 카테고리 정보를 비교하게 된다. 구체적으로 주체의 보안 등급이 객체의 보안 등급과 같은가 또는 높은가를 비교하고, 주체의 카테고리가 객체의 카테고리와 같은가 또는 포함하는가를 비교하는 등의 절차가 진행된다.(S70)When the security information of the subject and the object is extracted, the procedure of comparing the security information with the modified BLP model is performed. This procedure compares the security level and category information for each subject and object defined above based on the BLP model. In detail, a procedure of comparing whether the subject's security level is equal to or higher than the object's security level and whether the subject's category is the same as or includes the object's category is performed (S70).
BLP 모델에 기초한 보안정보의 비교 절차를 거친 후에, 주체의 객체에 대한 접근 권한을 결정하게 된다. 이 역시, 상술한 수정된 BLP 모델을 적용하여 접근 권한을 결정한다. 즉, 주체가 객체에 대해 읽기(read, execute), 쓰기(write, create, append, delete)를 할 수 있는지의 여부를 확인하고 이를 권한으로 결정한다. 예를 들면, 주체가 자신의 보안 등급보다 낮은 보안 등급과 포함관계에 있는 카테고리를 가진 객체에 대한 접근을 시도한 경우에는 읽기 권한을 부여해주고, 자신의 보안 등급보다 높은 등급을 가지거나 포함관계가 없는 카테고리를 가진 객체에 대해 접근을 시도한 경우라면, 읽기 권한을 부여하지 않는다. 또한, 주체가 자신의 보안 등급보다 낮거나 높은 보안 등급을 가지는 객체에 쓰기를 시도하면 그 권한을 부여해주지 않고, 객체의 보안 등급과 카테고리가 주체의 보안 정보와 같은 경우에만 쓰기 권한을 부여한다. 이때의, 읽기, 쓰기의 대상은 객체 프로세스가 소유한 프로세스 메모리이다.(S80)After comparing the security information based on the BLP model, the access rights of the subject's objects are determined. Again, the access right is determined by applying the modified BLP model described above. That is, it checks whether the subject can read (execute), write (write, create, append, delete) the object, and decides this as an authority. For example, if a subject attempts to access an object that has a category with a security level lower than its own security level, it grants read permission and has a level higher or higher than its security level. If you attempt to access an object with a category, do not grant read permission. In addition, if a subject attempts to write to an object with a security level lower or higher than its own security level, the authority is not granted. Only when the object's security level and category are the same as the principal's security level, the write right is granted. At this time, the target of reading and writing is the process memory owned by the object process (S80).
운영체제 또는 커널모드에서는 상술한 절차에 따라 접근 권한이 결정되면 그에 따라 주체의 프로세스 메모리에 대한 접근을 제어한다. 즉, 주체가 객체에 대한 접근(읽기, 쓰기) 권한이 부여된 경우라면, 상기 S50 단계에서 주체가 객체의 프로세스 메모리에 대한 접근 시도는 허가되어 주체는 객체의 프로세스 메모리에 접근(읽기, 쓰기)하고 작업을 수행한다. 반면, 주체가 객체에 대한 접근 권한이 부여되지 않은 경우라면, 주체의 프로세스 메모리에 대한 접근 시도는 거절되어 주체의 객체에 대한 프로세스 메모리 접근은 실패하게 된다.(S90)In operating system or kernel mode, if access authority is determined according to the above-described procedure, access to the process memory of the subject is controlled accordingly. That is, if the subject is granted access (read, write) access to the object, in step S50 the subject is attempted to access the object's process memory is allowed, the subject accesses (read, write) the object's process memory And do the work. On the other hand, if the subject has not been granted access to the object, the access attempt to the subject's process memory is rejected and the process memory access to the subject's object fails (S90).
이하에서는 도 4의 S10 단계부터 S40 단계까지의 절차인 응용프로그램에 설정된 보안정보가 생성되는 프로세스와 그 자식 프로세스까지 계속적으로 상속되도록 구현하는 구체적인 방법을 설명한다.Hereinafter, a specific method of implementing the security information set in the application program, which is the procedure from step S10 to step S40 of FIG. 4, and its child processes are continuously inherited will be described.
도 5를 참조하면, 먼저 저장영역의 디스크에는 P1 프로그램 실행 파일이 저장되어 있고, 이 프로그램 실행 파일(100)의 파일 정보가 기록된 영역인 확장 파일 속성에는 시스템 보안관리자로부터 부여된 보안정보가 2개의 필드에 구분되어 보안 등급과 카테고리 정보로 수록되어 있다.Referring to FIG. 5, first, a P1 program executable file is stored in a disk of a storage area, and an extended file attribute, which is an area in which file information of the program executable file 100 is recorded, contains security information granted from a system security manager. It is divided into three fields and is included as security level and category information.
이렇게 보안정보가 설정된 P1 응용프로그램이 실행영역에서 실행되는 절차(S150)를 거치게 된다. 응용프로그램 실행에 따라 프로세스가 생성(250)된다. 즉, 프로그램 로더에 의해 응용프로그램이 링크된 DLL과 함께 저장 영역의 프로세 스 메모리에 적재되고, 커널 메모리에는 생성되는 프로세스의 정보를 담은 프로세스 구조체가 생성된다. 이와 같이 P1 응용프로그램이 실행되면 프로세스 메모리에는 P1 프로세스(200)가 적재되고 커널 메모리에는 P1 프로세스 구조체(300)가 생성된다.The P1 application program with the security information set up goes through the procedure of being executed in the execution region (S150). The process is generated 250 as the application executes. That is, the program loader loads the application program together with the linked DLL into the process memory of the storage area, and a process structure containing information about the generated process is generated in the kernel memory. As such, when the P1 application program is executed, the
P1 프로세스(200)에 따라 프로세스 메모리에 프로그램이 적재되는 구조를 살펴보면, 각각 텍스트, 데이터, 힙, 스택으로 구분된 구조인 네 개의 영역으로 적재되며 이를 각각 세그먼트라 한다. 각 세그먼트에 대해 간단히 살펴보면, 텍스트는 프로그램의 실행 코드인 기계어 코드와 읽기 전용 데이터 등을 가진다. 데이터는 전역 변수, 정적 변수 등으로 선언된 변수 영역이다. 힙은 프로그램 수행 중 시스템 콜로 할당되고, 해지되는 메모리 영역이다. 스택은 함수 호출시 지역 변수와 인수, 함수의 수행이 끝났을 때 리턴할 주소를 푸시한다.Looking at the structure in which the program is loaded in the process memory according to the
다음, 커널 메모리에 저장된 P1 프로세스 구조체(300)는 도 1 내지 도 3에서 설명한 바와 같으며, 응용프로그램의 확장 파일 속성에 수록된 보안 정보인 보안 등급과 카테고리 정보(101)를 그대로 상속받아 수록하고 있다.Next, the
이와 같이 생성되어 실행중인 P1 프로세스에서 추가로 다른 프로세스를 생성(260)할 수도 있다. 이때 P1 프로세스에 의해 추가로 생성되는 프로세스를 자식 프로세스인 P2 프로세스라 하겠다. 이렇게 프로세스에 의해 추가로 프로세스가 생성(270)되면, 상술한 바와 동일하게 프로세스 메모리와 커널 메모리에 각각 프로그램이 적재되고 프로세스 구조체가 생성된다. 이렇게 생성된 P2 프로세스(210)는 프로세스 메모리에 프로그램이 적재되고, P2 프로세스 구조체(310)는 커널 메모리에 생성되어 저장된다. 이때에 P2 프로세스 구조체(310)의 보안 정보는 역시 P1 프로세스 구조체에 할당되어 수록된 보안 등급과 카테고리 정보(102)를 그대로 상속받아 수록한다.Another process may be generated 260 in addition to the P1 process generated and executed in this manner. At this time, the process additionally created by the P1 process will be referred to as a P2 process as a child process. When a process is additionally generated 270 by the process, the program is loaded into the process memory and the kernel memory as described above, and a process structure is generated. The
따라서, 최초 시스템 보안관리자가 설정한 보안 정보는 계속해서 프로세스 내에 유지되어(정확하게는 커널 메모리 내의 프로세스 구조체) 본 발명에 따른 강제적 접근 제어에 적용할 수 있게 된다.Therefore, the security information set up by the initial system security manager is continuously maintained in the process (exactly, the process structure in the kernel memory) so that it can be applied to the mandatory access control according to the present invention.
다음으로, 아래에서는 도 4의 S50 단계부터 S90 단계까지의 절차인 수정된 BLP 모델을 적용하여 프로세스에서 시도한 프로세스 메모리 접근에 대한 강제적 접근 제어를 구현하는 구체적인 방법을 설명한다.Next, a specific method of implementing mandatory access control on a process memory access attempted by a process by applying the modified BLP model, which is a procedure from step S50 to step S90 of FIG. 4, will be described.
참고로, 이하에서 설명하는 실시예는 윈도우즈 기반의 운영체제에서 처리되는 절차이며, 유닉스 계열 또는 다른 계열에서 이루어지는 처리 절차와 다소 차이가 있을 수 있으나 그 개념은 동일한 것으로 이해하여야 한다.For reference, the embodiment described below is a procedure that is processed in a Windows-based operating system, and may be somewhat different from the procedure that is performed in the Unix-based or other series, but the concept is to be understood to be the same.
도 6을 참조하면, 먼저 시스템 내에서 실행중인 프로세스의 접근 요청(이벤트)이 발생한다. 이러한 접근 요청 중 프로세스 메모리에 대한 접근 요청이 발생한다.(1) 구체적으로 프로세스 메모리에 대한 접근 요청으로는 API 중 Kernel32.dll의 ReadProcessMemory 또는 WriteProcessMemory 함수의 호출을 예로 들 수 있다. 여기서, ReadProcessMemory 함수는 프로세스 메모리에 액세스하여 읽기 작업을 수행하는 함수이고, WriteProcessMemory 함수는 프로세스 메모리에 액세스하여 쓰기 작업을 수행하는 함수이다.Referring to FIG. 6, first, an access request (event) of a process running in a system occurs. An access request for process memory occurs during this access request. (1) Specifically, an access request for process memory is an example of calling Kernel32.dll's ReadProcessMemory or WriteProcessMemory function API. Here, the ReadProcessMemory function is a function that accesses process memory to perform a read operation, and the WriteProcessMemory function is a function that accesses process memory and performs a write operation.
이와 같은 프로세스 메모리에 대한 접근 요청이 발생하면 이를 포착하여 후 킹하는 절차가 이루어진다.(2) 이때에 상술한 ReadProcessMemory 또는 WriteProcessMemory 함수를 후킹하는 함수를 HookReadProcessMemory 또는 HookWriteProcessMemory 함수로 정의한다. 여기서, 후킹은 코드를 실행하는 특정 섹션을 가로채는 기술을 의미한다. 즉, 특정 목적으로 파일의 생성이나 혹은 메모리 접근 등의 이벤트를 추적하고자 할 때 해당 이벤트 관련 API를 후킹할 수 있다. 후킹은 운영체제의 동작을 수정하기 위한 유용한 방법으로 이용되고 있다. 주어진 인자 또는 리턴값을 수정하여 프로그램의 동작을 제어하거나 API 호출을 로그에 남길 수 있다. 이런 식으로 API 후킹을 가로챈 뒤에 어떠한 작업을 해주는 함수 즉, API 후킹 프로시저를 선언, 정의하여 API 후킹을 시도할 수 있다. 본 발명에서는 프로세스 메모리에 접근을 요청(이벤트)하는 함수를 후킹하는 함수를 정의한다.When such a request for access to the process memory occurs, a procedure of capturing and hooking the process is performed. Here, hooking refers to the technique of intercepting a specific section that executes code. In other words, when you want to track an event such as file creation or memory access for a specific purpose, you can hook the event-related API. Hooking is used as a useful way to modify the behavior of the operating system. You can modify the given arguments or return values to control the behavior of the program or to log API calls. In this way, API hooking can be attempted by declaring and defining a function that does something after API hooking. In the present invention, a function for hooking a function for requesting (eventing) access to the process memory is defined.
이렇게 프로세스 메모리 접근 요청에 해당하는 함수를 후킹하여 접근 권한을 체크하는 절차를 진행한다.(3) 여기서 도면에 도시된 MAC는 Mandatory Access Control의 약자이다. 이때에는 주체 및 객체의 보안 등급, 카테고리 정보가 저장된 데이터베이스를 참조(4)하여 권한 체크 절차를 진행한다. 구체적인 권한 체크 절차는 이상에서 설명한 내용에 다수 포함되므로 생략하기로 한다.In this way, the procedure of hooking a function corresponding to a process memory access request and checking access authority is performed. (3) In the figure, MAC is an abbreviation of Mandatory Access Control. At this time, the authority check procedure is performed by referring to a database (4) in which the security level and category information of the subject and the object are stored. Since a detailed authority check procedure is included in the above description, it will be omitted.
권한 체크 절차 이후에 그 결과 정보를 다시 후킹 함수로 되돌린다.(5) 후킹 함수는 반환된 권한 체크 결과 정보를 기초로 후킹한 함수 즉, ReadProcessMemory 또는 WriteProcessMemory 함수에 대한 처리를 허용할 것인지 차단할 것인지를 판단한다.After the permission check procedure, the result is returned to the hooking function. (5) The hooking function determines whether to allow or block the processing of the hooked function, that is, the ReadProcessMemory or WriteProcessMemory function, based on the returned permission check result information. To judge.
허용하는 경우(6)에는 윈도우즈 시스템에 후킹한 함수를 그대로 되돌려 주어 함수 처리를 수행하도록 한다. 이를 통해 프로세스 메모리에 접근을 시도하는 함수는 HAL(Hardware Abstraction Layer)과 정상적인 작업을 처리한다.(7,8) 윈도우즈 시스템은 정상적으로 처리된 결과를 프로세스 메모리 접근을 시도한 함수로 되돌려 주고(9,10) 이 함수는 정상적으로 작업(프로세스의 접근 요청에 따른 작업)을 마치게 된다.(11)If allowed (6), the function hooked back to the Windows system is returned to the function processing. Through this, the function that attempts to access the process memory handles the hardware abstraction layer (HAL) and normal work. (7, 8) The Windows system returns the processed result back to the function that attempted to access the process memory (9,10). This function normally completes the task (the task according to the process's request for access).
반면에, 후킹 함수에서 권한 체크 결과 프로세스 메모리에 대한 접근 권한이 없는 것으로 판단되는 경우에는 해당 API 함수를 호출하지 않고 연산 결과로 실패 값을 리턴하여 돌리보내게 된다.(12) 이를 통해 프로세스 접근 요청에 따른 ReadProcessMemory 또는 WriteProcessMemory 함수의 호출은 실패하고 프로세스 접근 역시 차단된다.On the other hand, if it is determined that the access function does not have access to the process memory as a result of the authority check, the hooking function returns a failure value as a result of the operation without calling the API function. Calls to the ReadProcessMemory or WriteProcessMemory functions will fail and the process will be blocked as well.
아울러, 프로세스 접근 요청이 프로세스 메모리의 접근에 관련된 ReadProcessMemory 또는 WriteProcessMemory 함수와 관련되지 않은 경우라면, 기타 API를 호출(13)하고 이에 따라 윈도우즈 시스템에서 이를 HAL과 정상적으로 처리한 후(14,15,16) 그 결과를 돌려주어(17) 최종 프로세스 접근 요청에 따른 작업이 완료(18)되는 절차가 진행된다.In addition, if the process access request is not related to the ReadProcessMemory or WriteProcessMemory functions related to accessing process memory, then after calling other APIs (13) and processing them accordingly with the HAL on the Windows system (14,15,16) The result is returned (17), and the procedure according to the final process access request is completed (18).
도면에서와 같이 수정된 BLP에 기초한 권한 체크는 커널 모드에서 진행되고 API 호출 및 후킹은 어플리케이션 모드에서 진행된다.As shown in the figure, the permission check based on the modified BLP proceeds in kernel mode, and API calling and hooking proceeds in application mode.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상 의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in detail any more.
이상에서 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.Although the present invention has been described above by means of limited embodiments and drawings, the present invention is not limited thereto and will be described below by the person skilled in the art to which the present invention pertains. Of course, various modifications and variations are possible within the scope of the claims.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 전술된 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.The following drawings, which are attached to this specification, illustrate exemplary embodiments of the present invention, and together with the detailed description of the present invention serve to further understand the technical spirit of the present invention, the present invention includes matters described in such drawings. It should not be construed as limited to.
도 1은 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법에서 구현한 프로세스 구조체의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a process structure implemented in a mandatory process memory access control method based on a multi-class security scheme according to an embodiment of the present invention.
도 2는 보안 등급이 부여된 프로세스 구조체의 필드에 대한 세부 구조도이다.2 is a detailed structural diagram of a field of a process structure to which a security level is assigned.
도 3은 카테고리 정보가 부여된 프로세스 구조체의 필드에 대한 세부 구조도이다.3 is a detailed structural diagram of a field of a process structure to which category information is assigned.
도 4는 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법의 전체적인 흐름을 도시한 순서도이다.4 is a flowchart illustrating the overall flow of a mandatory process memory access control method based on a multi-class security scheme according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법에 따라 설정된 보안 정보가 상속되는 원리를 개략적으로 도시한 개념도이다.5 is a conceptual diagram schematically illustrating a principle of inheriting security information set according to a mandatory process memory access control method based on a multi-class security method according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리 접근 제어 방법에 따라 프로세스 메모리 접근에 대한 강제적 접근 제어가 수행되는 처리 절차를 나타낸 구성도이다.6 is a block diagram illustrating a processing procedure in which a mandatory access control on a process memory access is performed according to a mandatory process memory access control method based on a multi-class security method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
10 : 프로세스 구조체10: process structure
20 : 보안 등급 필드20: security level field
30 : 카테고리 정보 필드30: Category Information Field
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080028976A KR100960358B1 (en) | 2008-03-28 | 2008-03-28 | Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080028976A KR100960358B1 (en) | 2008-03-28 | 2008-03-28 | Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090103396A KR20090103396A (en) | 2009-10-01 |
KR100960358B1 true KR100960358B1 (en) | 2010-05-28 |
Family
ID=41532940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080028976A KR100960358B1 (en) | 2008-03-28 | 2008-03-28 | Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100960358B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200032413A (en) * | 2018-09-18 | 2020-03-26 | 이화여자대학교 산학협력단 | Method of application processing in linux containers environments, recording medium and apparatus for performing the method |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101414580B1 (en) * | 2013-01-24 | 2014-07-16 | 한남대학교 산학협력단 | A Secured Linux Operationg System Using Multi-level Security |
US9628279B2 (en) * | 2014-09-30 | 2017-04-18 | Microsoft Technology Licensing, Llc | Protecting application secrets from operating system attacks |
CN106341369A (en) * | 2015-07-06 | 2017-01-18 | 深圳市中兴微电子技术有限公司 | Security control method and device |
CN112182558B (en) * | 2020-09-28 | 2024-09-24 | 大唐高鸿信安(浙江)信息科技有限公司 | Process protection method, marking method, device and equipment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020016711A (en) * | 2000-08-26 | 2002-03-06 | 박태규 | Mandatory Object Access Control Method Using Multi-Level Security, and Computer Readable Recording Medium Having thereon Programmed Mandatory Object Access Control Method Using Multi-Level Security |
-
2008
- 2008-03-28 KR KR1020080028976A patent/KR100960358B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020016711A (en) * | 2000-08-26 | 2002-03-06 | 박태규 | Mandatory Object Access Control Method Using Multi-Level Security, and Computer Readable Recording Medium Having thereon Programmed Mandatory Object Access Control Method Using Multi-Level Security |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200032413A (en) * | 2018-09-18 | 2020-03-26 | 이화여자대학교 산학협력단 | Method of application processing in linux containers environments, recording medium and apparatus for performing the method |
KR102130504B1 (en) | 2018-09-18 | 2020-08-05 | 이화여자대학교 산학협력단 | Method of application processing in linux containers environments, recording medium and apparatus for performing the method |
Also Published As
Publication number | Publication date |
---|---|
KR20090103396A (en) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6430561B1 (en) | Security policy for protection of files on a storage device | |
Karger | Limiting the damage potential of discretionary Trojan horses | |
US9836608B2 (en) | System, method and apparatus for simultaneous definition and enforcement of access-control and integrity policies | |
US20180189300A1 (en) | Method and system for providing restricted access to a storage medium | |
KR100877650B1 (en) | Implementation and use of a pii data access control facility emlploying personally identifying information labels and purpose serving function sets | |
US5414852A (en) | Method for protecting data in a computer system | |
US20090271586A1 (en) | Method and system for providing restricted access to a storage medium | |
US20070226773A1 (en) | System and method for using sandboxes in a managed shell | |
US10417179B2 (en) | Method for managing files and apparatus using the same | |
US20050091658A1 (en) | Operating system resource protection | |
US8452740B2 (en) | Method and system for security of file input and output of application programs | |
WO2005081115A1 (en) | Application-based access control system and method using virtual disk | |
JPH06103058A (en) | Data structure for program authorization information | |
GB2398134A (en) | Applying a data handing policy to predetermined system calls | |
US9516031B2 (en) | Assignment of security contexts to define access permissions for file system objects | |
KR100960358B1 (en) | Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security | |
Jaeger et al. | Managing the risk of covert information flows in virtual machine systems | |
JP6670318B2 (en) | Classification and IRM implementation in software applications | |
KR980010772A (en) | How to prevent copying of computer software | |
KR100343069B1 (en) | Mandatory Object Access Control Method Using Multi-Level Security, and Computer Readable Recording Medium Having thereon Programmed Mandatory Object Access Control Method Using Multi-Level Security | |
US20050119902A1 (en) | Security descriptor verifier | |
KR101967663B1 (en) | A system for access control based on the role of process in the white list | |
KR101227187B1 (en) | Output control system and method for the data in the secure zone | |
US7454788B2 (en) | Method for adding and enforcing enhanced authorization policy on devices in computer operation systems | |
Petkovic et al. | A host based method for data leak protection by tracking sensitive data flow |
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: 20130520 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140520 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150520 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160520 Year of fee payment: 7 |