KR100396308B1 - Linux System and Operating Method of the Linux System having improved access control function - Google Patents

Linux System and Operating Method of the Linux System having improved access control function Download PDF

Info

Publication number
KR100396308B1
KR100396308B1 KR10-2001-0015693A KR20010015693A KR100396308B1 KR 100396308 B1 KR100396308 B1 KR 100396308B1 KR 20010015693 A KR20010015693 A KR 20010015693A KR 100396308 B1 KR100396308 B1 KR 100396308B1
Authority
KR
South Korea
Prior art keywords
access
capability
file
server
rule
Prior art date
Application number
KR10-2001-0015693A
Other languages
Korean (ko)
Other versions
KR20020075601A (en
Inventor
배강호
성재모
황장희
Original Assignee
주식회사데이콤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사데이콤 filed Critical 주식회사데이콤
Priority to KR10-2001-0015693A priority Critical patent/KR100396308B1/en
Publication of KR20020075601A publication Critical patent/KR20020075601A/en
Application granted granted Critical
Publication of KR100396308B1 publication Critical patent/KR100396308B1/en

Links

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 접근통제기능을 개선한 리눅스 시스템 및 리눅스 시스템의 운영방법에 관한 것이다.The present invention relates to a Linux system and an operating method of the Linux system with improved access control.

본 발명에 따른 리눅스 시스템에 있어서, 각 호스트는 각 프로세스(process)별로 시스템 자원(resource)에의 접근규칙을 설정할 수 있도록 하되, 설정된 접근규칙에 따라 시스템 자원에의 접근허용여부를 결정하는 기능을 가진 리눅스 운영체제(Linux OS)를 탑재한다. 이러한 각 호스트는 로그서버와 연동하는데, 로그서버는 각 호스트에서 전송한 로그정보를 저장하고, 자신과 연동하는 관리자 서버에서 로그 정보를 기 규정된 규칙에 따라 검색할 수 있도록 해준다. 또한, 각 호스트와 로그서버는 관리자 서버와 서로 연동하는데, 관리자 서버는 각 호스트에서의 접근규칙을 설정하고, 로그서버에 있는 로그 정보를 검색한다.In the Linux system according to the present invention, each host can set access rules to system resources for each process, but has a function of determining whether to allow access to system resources according to the set access rules. It is equipped with Linux OS. Each of these hosts works with a log server, which stores the log information sent from each host, and allows you to retrieve log information from a manager server that works with it according to a predefined rule. In addition, each host and log server interwork with an administrator server, which sets access rules for each host and retrieves log information in the log server.

본 발명을 사용하면, 접근통제기능이 강화되고 시스템의 목적에 특화된 운영체제를 구성할 수 있다. 즉, 웹서버 전용이나 파일서버 전용 등 각각의 목적에 맞는 보안 환경 설정이 가능하고, 이를 정형화하여 이용하는 것이 가능하다.Using the present invention, an access control function can be enhanced and an operating system specialized for the purpose of the system can be configured. That is, it is possible to set up a security environment for each purpose, such as dedicated web server or dedicated file server.

Description

접근통제기능을 개선한 리눅스 시스템 및 리눅스 시스템의 운영방법{Linux System and Operating Method of the Linux System having improved access control function}Linux system and operating method of the Linux system having improved access control function

본 발명은 접근통제기능을 개선한 리눅스 시스템 및 리눅스 시스템의 운영방법에 관한 것으로서, 특히 슈퍼 유저의 권한 분산과 규칙기반 접근통제(MAC: Mandatory Access Control) 개념을 도입하여 해커가 시스템 침입에 성공하더라도 해커가 궁극적으로 하고자 하는 행동을 차단할 수 있는 리눅스 시스템 및 그 운영방법에 관한 것이다.The present invention relates to a Linux system and a method of operating the Linux system with improved access control. In particular, even if a hacker succeeds in introducing the system by introducing the concept of super user authority distribution and rule-based access control (MAC), It's about Linux systems and how they operate that can block hackers' ultimate actions.

현재 인터넷의 역할이 단순한 정보 공유의 차원에서 인트라넷, 전자상거래 등으로 확대되어 감에 따라 해킹 및 정보보호에 대한 관심과 중요도는 더욱 가중되고 있다. 해킹의 발생은 프라이버시의 침해, 재산상의 손실, 기업 이미지의 실추, 기밀 정보의 유출, 서비스의 중단 등으로 이어지고 있어 그 피해규모가 빠른 속도로 증가하고 있다. 특히 기업의 경우에 있어, 해킹을 막느냐 막지 못하느냐의 문제는 기업의 생존과 직결된다고 할 수 있을 것이다.As the role of the Internet is expanded from intranet and electronic commerce to simple information sharing, the interest and importance of hacking and information protection are increasing. The incidence of hacking has resulted in invasion of privacy, loss of property, loss of corporate image, leakage of confidential information, and discontinuance of services, and the magnitude of the damage is increasing rapidly. Especially in the case of companies, the question of whether or not to prevent hacking is directly related to the survival of the company.

일반적인 유닉스(UNIX) 운영체제는 접근제어 방식으로 신분기반 접근통제 (DAC:Discretionary Access Control) 방식을 사용하고 있다. 또한, TCSEC(Trusted Computer System Evaluation Criteria)에서는 신분기반 접근통제 정책과 동일한 개념을 DAC로 정의하고 있다. 즉, 주체나 또는 그들이 속해 있는 그룹 등의 신분에 근거하여 객체에 대한 접근을 제한 하는 방법을 DAC라고 정의하는 것이다.In general, UNIX operating systems use identity-based access control (DAC) as an access control method. In addition, the Trusted Computer System Evaluation Criteria (TCSEC) defines the same concept as the DAC as an identity-based access control policy. In other words, the DAC defines a method of restricting access to an object based on the identity of a subject or a group to which they belong.

이러한 신분기반 접근통제(DAC) 방식에 있어서의 보안상 가장 큰 문제는 슈퍼 유저의 권한이 분산되어 있지 않고 너무 막강하다는 것이다. 즉 슈퍼 유저의 신분이면 시스템의 모든 환경 설정이 가능하고, 모든 프로세스(process)를 죽이는 것도 가능하다는 것이다. 그러므로, 해커가 취약점을 이용하여 슈퍼 유저가 되면 슈퍼 유저가 할 수 있는 모든 일을 할 수 있게 된다.The biggest security problem in this identity-based access control (DAC) scheme is that the superuser privileges are not distributed and are too powerful. In other words, if you are a superuser, you can configure all of the system configuration and kill all processes. Thus, if a hacker takes advantage of a vulnerability to become a superuser, he can do everything a superuser can do.

현재 신분기반 접근통제(DAC) 방식을 이용하고 있는 유닉스 운영체제가 가지고 있는 문제점을 정리하면 다음과 같다.The problems with the Unix operating system currently using identity-based access control (DAC) are as follows.

1. 슈퍼 유저(root)의 권한 남용이 가능하다.1. Superuser (root) abuse is possible.

2. 많은 시스템 파일이 쉽게 변경될 수 있다.2. Many system files can be changed easily.

3. 커널을 인터셉트하는데 모듈이 쉽게 이용될 수 있다.3. Modules can easily be used to intercept the kernel.

4. 커널(kernel)이 대형화 되고 지원 기능이 많아지면서 커널의 모듈화가 이루어 지고 있으며, 모듈이 커널에 삽입된 이후에는 커널의 일부가 되어 작업을 수행한다. 따라서 악의적 코드가 커널에 삽입되면 심각한 문제를 야기시킬 수 있다.4. Kernel modularization of the kernel as the size of the kernel and the support functions increase, and after the module is inserted into the kernel, it becomes part of the kernel and performs work. As a result, malicious code can cause serious problems.

5. 프로세스가 보호되지 않는다.5. The process is not protected.

한편, 신분기반 접근통제(DAC) 방식과 함께 주로 논의되고 있는 접근제어방식으로 MAC(Mandatory Access Control) 방식이 있다. TCSEC에서는 규칙기반 접근통제 정책과 동일한 개념으로 MAC를 정의하고 있다. 즉, 객체에 포함된 정보의 비밀성(레이블로 표현된 허용등급)과 이러한 비밀성의 접근정보에 대하여 주체가 갖는 권한(clearance))에 근거하여 객체에 대한 접근을 제한하는 방식을 MAC라 한다.Meanwhile, MAC (Mandatory Access Control) is an access control method that is mainly discussed along with ID-based access control (DAC). In TCSEC, MAC is defined with the same concept as rule-based access control policy. That is, MAC is a method of restricting access to an object based on the confidentiality of information included in the object (a permission level expressed by a label) and the subject's authority to access information of such confidentiality.

본 발명은 상기와 같은 문제점을 해결하기 위하여 고안된 것으로서, 슈퍼 유저의 권한 분산과 규칙기반 접근통제(MAC: Mandatory Access Control) 개념을 도입하여 보안성을 강화한 리눅스 시스템 및 그 운영방법을 제공하는데 그 목적이 있다.The present invention has been devised to solve the above problems, and provides a Linux system and a method of operating the security of which are enhanced by introducing the concept of super user authority distribution and rule-based access control (MAC). There is this.

상기와 같은 목적을 달성하기 위하여 본 발명에 따른 리눅스 시스템은,Linux system according to the present invention to achieve the above object,

각 프로세스(process)별로 시스템 자원(resource)에의 접근규칙을 설정할 수 있도록 하되, 상기 프로세스가 특정 자원에 접근하려고 할 때는 상기 접근규칙을 만족시키는지를 판단하여, 상기 접근규칙을 만족시키는 경우에는 상기 자원에의 접근을 허용하지만, 상기 접근규칙을 만족시키지 못하는 경우에는 상기 자원에의 접근을 차단하고 이에 관한 로그(LOG) 정보를 로그서버로 통보하도록 구성된 리눅스 운영체제(LINUX OS:Operating System)를 탑재한 하나 이상의 호스트; 상기 각 호스트와 연동하여 상기 각 호스트에서 전송한 로그정보를 저장하고, 자신과 연동하는 관리자 서버에서 상기 저장된 로그 정보를 기 규정된 규칙에 따라 검색할 수 있도록 해주는 로그서버; 및 상기 각 호스트와 연동하여 상기 접근규칙을 설정하고, 또한 상기 로그서버와 연동하여 상기 로그 정보를 검색하는 관리자 서버를 포함하여 구성되는 것을 특징으로 한다.It is possible to set an access rule to a system resource for each process, and when the process tries to access a specific resource, it is determined whether the access rule is satisfied, and if the access rule is satisfied, the resource If the access rule is allowed, but the access rule is not satisfied, the Linux operating system (LINUX OS: Operating System) is configured to block access to the resource and notify the log server of the log information. One or more hosts; A log server for storing log information transmitted from each host in association with each host, and retrieving the stored log information according to a predetermined rule from an administrator server interworking with the host; And an administrator server for setting the access rule in association with each host and retrieving the log information in association with the log server.

상기 접근규칙은 커널(kernel) 자체에 부여되는 캐퍼빌리티 (capability)를 기록하는 캐퍼빌리티 파일, 및 각 프로세스에 부여되는 접근규칙을 기록하는 접근제어목록(ACL:Access Control List) 파일을 통해 관리하도록 구성하여 바람직하게실시할 수 있다.The access rule is managed through a capability file that records the capabilities granted to the kernel itself, and an access control list (ACL) file that records the access rules granted to each process. It can be implemented preferably.

상기 운영체제는, 상기 접근제어목록 파일의 내용은 부팅(Booting)시에 메모리에 로드하되, 부팅 후 접근제어목록 파일의 내용이 변경되면 이를 상기 메모리에 반영하여 이용하고, 상기 캐퍼빌리티 파일의 내용은 상기 캐퍼빌리티 파일의 내용을 그대로 가지고 있되 상기 커널에 그 내용을 전달할 때와 그 내용이 변경될 때를 구분하는 기능을 수행하는 캐퍼빌리티 중계파일에서 읽어 이용하도록 구성하는 것이 바람직하다.The operating system loads the contents of the access control list file into a memory at the time of booting, and if the contents of the access control list file are changed after booting, reflects them in the memory and uses the contents of the capability file. It is preferable to configure the content file to read and use the capability relay file, which retains the contents of the capability file as it is, but which performs the function of distinguishing the contents from when the contents are transferred to the kernel and when the contents are changed.

이러한 운영체제는, 상기 프로세스가 특정 자원에 접근하려고 할 때는 상기 메모리에 로드된 접근제어목록 정보 혹은 상기 캐퍼빌리티 중계파일의 정보를 통해 접근규칙을 만족시키는지를 판단하여, 상기 접근규칙을 만족시키는 경우에는 상기 자원에의 접근을 허용하지만, 상기 접근규칙을 만족시키지 못하는 경우에는 상기 자원에의 접근을 차단하고 이에 관한 로그(LOG) 정보를 로그서버로 통보하는 커널; 상기 관리자 서버와의 인터페이스 수단; 및 상기 인터페이스 수단을 통해 상기 관리자 서버가 상기 접근제어목록 파일 혹은 캐퍼빌리티 파일을 변경시킬 수 있도록 해주는 접근규칙 갱신수단을 포함하도록 구성할 수 있다.The operating system determines whether the access rule is satisfied through the access control list information or the capability relay file loaded in the memory when the process attempts to access a specific resource. A kernel that allows access to the resource but fails to satisfy the access rule, and blocks access to the resource and notifies log information about the resource to a log server; Interface means with the manager server; And access rule updating means for allowing the manager server to change the access control list file or the capability file through the interface means.

상기 커널의 기능은 소스코드(source code) 레벨에서 구현하도록 구성하여 더욱 바람직하게 실시할 수 있다.The function of the kernel can be implemented more preferably by implementing to implement at the source code level.

상기 인터페이스 수단은 커맨드 라인 인터페이스(CLI:Command Line Interface)와 웹 그래픽 사용자 인터페이스(Web GUI:Graphic User Interface) 중 하나 이상을 포함하도록 구성하여 바람직하게 실시할 수 있다.The interface means may be preferably implemented by including one or more of a command line interface (CLI) and a web user interface (Web GUI).

상기 접근제어목록 파일은 각 프로세스 명칭, 상기 각 프로세스가 접근하려는 객체(Object), 및 상기 객체에 대한 접근유형(Access Type)에 관한 정보로서 그 카테고리를 구성하는 것이 바람직하다.The access control list file preferably configures a category as information about each process name, an object that each process is to access, and an access type for the object.

이 때, 상기 객체는 파일/디렉토리 혹은 캐퍼빌리티이고, 상기 접근유형은 상기 파일/디렉토리에 대해서는 읽기 및 쓰기 금지(DENY), 수정금지(READ), 추가만 가능(APPEND), 및 쓰기가능(WRITE) 중 하나 이고, 상기 캐퍼빌리티에 대해서는 상속(INHERIT)과 불상속(NO_INHERIT) 중 하나 이도록 구성하여 바람직하게 실시할 수 있다.In this case, the object is a file / directory or capability, and the access type is read / write prohibited, read only, append only, and writable for the file / directory. ) And one of the inheritance (INHERIT) and the discontinuity (NO_INHERIT) can be preferably implemented.

상기 운영체제는, 상기 커널로부터 상기 접근규칙을 만족시키지 못한 로그정보를 받고, 이 로그정보를 이메일(e-mail)을 통해 상기 관리자 서버로 전송해주는 경보전송수단을 추가로 구비하도록 구성하여 더욱 바람직하게 실시할 수 있다.The operating system is further configured to further include an alarm transmission means for receiving log information that does not satisfy the access rule from the kernel and transmitting the log information to the administrator server through an e-mail. It can be carried out.

한편, 상기 운영체제는 프로세스 자체의 보안 기능을 추가로 구비하도록 구성하는 것이 바람직하다. 즉, 특정 프로세스의 캐퍼빌리티가 중단금지(un-killable)를 나타내는 캐퍼빌리티인 경우에는 해당 프로세스를 중단시키려는 시도를 무시하는 기능; 특정 프로세스의 캐퍼빌리티가 감추기를 나타내는 캐퍼빌리티인 경우에는 프로세스 목록의 디스플레이 기능 수행 중 해당 프로세스를 나타내지 않는 기능; 및 특정 프로세스의 캐퍼빌리티가 모듈삽입제한을 의미하는 캐퍼빌리티인 경우에는 커널에의 모듈 삽입 시도가 있을 때 이를 무시하는 기능 중 하나 이상의 기능을 포함하도록 구성할 수 있다.On the other hand, the operating system is preferably configured to further include a security function of the process itself. That is, if the capability of a particular process is a capability indicating un-killable, the function may ignore an attempt to stop the process; When the capability of a specific process is a capability indicating hiding, a function not indicating a corresponding process while performing a display function of a process list; And when the capability of a specific process is a capability that implies a module insertion restriction, it may be configured to include one or more functions of ignoring when attempting to insert a module into the kernel.

또한, 상기 운영체제는 상기 호스트에서 송수신되는 데이터 패킷을 검사하여 통과가 허용된 패킷일 경우에만 통과시키는 기능을 수행하는 네트워크 보안처리수단을 추가로 포함하도록 구성하여 바람직하게 실시할 수 있다.In addition, the operating system may be preferably configured to further include a network security processing means for performing a function of inspecting the data packet transmitted and received from the host to pass only if the packet is allowed to pass.

상기 네트워크 보안처리수단은, 상기 관리자 서버로부터 커맨드 라인 인터페이스(CLI) 혹은 웹 그래픽 사용자 인터페이스(Web GUI)를 통해 상기 데이터 패킷의 통과에 관한 규칙을 설정받되, 이 규칙은 별도의 파일에 기록하여 관리하도록 구성하는 것이 바람직하다.The network security processing means receives a rule regarding the passage of the data packet from the administrator server through a command line interface (CLI) or a web graphical user interface (Web GUI), and the rule is recorded and managed in a separate file. It is preferable to configure so that.

상기 운영체제는, 기 규정된 시간동안 해당 호스트에서 이루어지는 열려있지 않은 포트로의 접속시도가 기 규정된 회수를 넘는 경우에는 그 리스트를 작성하여 상기 로그서버로 전송하는 기능을 추가로 포함하도록 구성하여 더욱 바람직하게 실시할 수 있다.The operating system may further include a function of creating a list and transmitting the list to the log server when a connection attempt to an unopened port of the host for a predetermined time exceeds a predetermined number. It can implement preferably.

상기 로그서버는 상기 관리용 서버와 웹 그래픽 사용자 인터페이스(Web GUI)를 통해 연동하도록 구성하되, 자신이 저장하고 있는 로그정보를 검색하는데 있어서, AND, NOT, OR 중 하나 이상의 검색옵션을 이용하여 검색할 수 있도록 해주는 기능을 포함하도록 구성하여 바람직하게 실시할 수 있다.The log server is configured to interwork with the management server through a web graphical user interface (Web GUI), and in searching log information stored therein, the search is performed using one or more search options of AND, NOT, and OR. It can be preferably implemented by configuring to include a function that allows.

본 발명에 따라 리눅스 시스템의 접근통제기능을 강화하기 위한 운영방법은, 각 프로세스별 접근규칙을 설정할 수 있도록 하는 제1 절차; 시스템 자원(resource)에 접근하려는 프로세스(process)가 있는지를 조사하는 제2 절차;상기 조사 결과, 상기 자원에 접근하려는 프로세스가 있는 경우에는 상기 접근규칙을 참조하여 상기 프로세스에게 상기 자원에의 접근이 허용되었는지를 판단하는 제3 절차; 상기 제3 절차에서의 판단 결과, 접근이 허용되어 있으면 상기 프로세스가 해당 자원에 접근할 수 있도록 허용하는 제4 절차; 및 상기 제3 절차에서의 판단 결과, 접근이 허용되어 있지 않은 경우에는 상기 프로세스의 동작을 중단시키고 이에 관한 로그정보를 기록하는 제5 절차를 포함하여 구성되는 것을 특징으로 한다. 이러한 절차는 각 호스트에 탑재되는 리눅스 운영체제에서 수행하는 것이다.According to the present invention, an operating method for enhancing the access control function of the Linux system includes: a first procedure for setting an access rule for each process; A second procedure for investigating whether there is a process for accessing a system resource; if the process finds that there is a process for accessing the resource, the process may be referred to the process by referring to the access rule. A third procedure of determining whether it is allowed; A fourth procedure for allowing the process to access the resource if access is granted as a result of the determination in the third procedure; And a fifth procedure of stopping the operation of the process and recording log information thereof when access is not permitted as a result of the determination in the third procedure. This procedure is performed by the Linux operating system on each host.

상기 제1 절차에서 설정하는 접근규칙은, 커널(kernel) 자체에 부여되는 캐퍼빌리티(capability)를 기록하는 캐퍼빌리티 파일, 및 각 프로세스에 부여되는 접근규칙을 기록하는 접근제어목록(ACL:Access Control List) 파일에 설정하도록 구성하는 것이 바람직하다.The access rule set in the first procedure may include a capability file that records the capability granted to the kernel itself, and an access control list that records the access rules granted to each process. List) file is preferably configured.

상기 접근규칙은 타 컴퓨터 시스템(관리자 서버)으로부터 설정받도록 구성하되, 상기 관리자 서버와의 인터페이스는 커맨드 라인 인터페이스(CLI) 혹은 웹 스래픽 사용자 인터페이스(Web GUI)를 통해 이루어지도록 구성하여 바람직하게 실시할 수 있다.The access rule is configured to be set from another computer system (administrator server), but the interface with the manager server is configured through a command line interface (CLI) or a web traffic user interface (Web GUI). Can be.

이때 상기 제3 절차는, 상기 제2 절차에서 시스템 자원에 접근하고자 하는 프로세스가 커널 자체의 프로세스인지 혹은 개별적인 프로세스인지를 판단하는 단계; 상기 판단 결과 커널 자체의 프로세스인 경우에는 상기 캐퍼빌리티 중계파일에 기록된 접근규칙을 만족시키는지를 판단하는 단계; 및 상기 판단 결과 개별적인 프로세스인 경우에는 상기 메모리에 로드된 접근제어목록 정보에 규정된 접근규칙을 만족시키는지를 판단하는 단계를 포함하도록 구성하여 바람직하게 실시할 수 있다.In this case, the third procedure may include: determining whether a process to access system resources is a process of the kernel itself or an individual process; Determining whether the access rule recorded in the capability relay file is satisfied in the case of a process of the kernel itself; And in the case of a separate process as a result of the determination, determining whether the access rule specified in the access control list information loaded in the memory is satisfied.

위에서 설명한 바와 같이, 상기 접근제어목록 파일은 각 프로세스 명칭, 상기 각 프로세스가 접근하려는 객체(Object), 및 상기 객체에 대한 접근유형(Access Type) 정보를 포함하도록 구성하는 것이 바람직하다.As described above, the access control list file is preferably configured to include each process name, an object that each process is to access, and access type information about the object.

여기서, 상기 객체는 파일/디렉토리 혹은 캐퍼빌리티이고, 상기 접근유형은 상기 파일/디렉토리에 대해서는 읽기 및 쓰기 금지(DENY), 수정금지(READ), 추가만 가능(APPEND), 및 쓰기가능(WRITE) 중 하나 이고, 상기 캐퍼빌리티에 대해서는 상속(INHERIT)과 불상속(NO_INHERIT) 중 하나 이도록 구성할 수 있다.Here, the object is a file / directory or a capability, and the access type is read / write prohibited, read only, append only, and writable for the file / directory. The capability may be configured to be one of inheritance (INHERIT) and discontinuity (NO_INHERIT).

상기 제5 절차는, 상기 접근규칙을 만족시키지 못한 로그정보를 이메일(e-mail)을 통해 관리자 서버로 전송해주는 절차를 추가로 구비하도록 구성하여 보다 바람직하게 실시할 수 있다.The fifth procedure may be preferably implemented by additionally providing a procedure for transmitting log information that does not satisfy the access rule to an administrator server through an e-mail.

한편, 상기 리눅스 시스템의 운영방법은 네트워크 보안절차를 추가로 포함하도록 하여 더욱 바람직하게 실시할 수 있다.On the other hand, the operating method of the Linux system can be more preferably implemented to further include a network security procedure.

이러한, 상기 네트워크 보안 절차는 데이터 패킷의 통과 규칙을 설정하는 단계; 송수신되는 데이터 패킷이 있는지를 조사하는 단계; 상기 조사 결과, 송수신되는 데이터 패킷이 있는 경우에는 상기 설정된 규칙을 참조하여 통과시킬 것인지를 판단하는 단계; 및 상기 판단 결과, 통과가 허용된 경우에는 해당 데이터 패킷을그 방향으로 통과시키되, 그렇지 않은 경우에는 드롭(drop) 시키는 단계를 포함하도록 구성하여 바람직하게 실시할 수 있다.This network security procedure comprises the steps of: setting a pass rule of a data packet; Examining whether there is a data packet being transmitted or received; Determining whether to pass the data packet transmitted or received with reference to the set rule as a result of the investigation; And passing the data packet in the direction if the pass is permitted, but dropping the data packet in the direction, otherwise dropping the data packet.

또한, 상기 네트워크 보안절차는 열려있지 않은 포트로의 접속시도가 있는지를 조사하는 단계; 상기 조사 결과 접속시도가 있는 경우에는 이 접속시도가 기 규정된 시간동안 기 규정된 회수를 넘는지를 판단하는 단계; 및 상기 판단 결과, 그 회수를 넘는 경우에는 규정된 로그서버로 이를 통보하는 단계를 추가로 포함하도록 구성하여 더욱 바람직하게 실시할 수 있다.The network security procedure may also include examining whether there is a connection attempt to a port that is not open; Determining whether the connection attempt exceeds a predetermined number of times for a predetermined time when there is a connection attempt as a result of the investigation; And if it is determined that the number is exceeded, it may be configured to further include the step of notifying it to the prescribed log server can be carried out more preferably.

도 1은 본 발명에 따른 리눅스 시스템의 일 실시예에 관한 구성도,1 is a configuration diagram of an embodiment of a Linux system according to the present invention;

도 2는 본 발명에 따른 리눅스 운영체제의 동작에 관한 일 실시예의 흐름도,2 is a flowchart of an embodiment of an operation of a Linux operating system according to the present invention;

도 3은 로그서버의 동작에 관한 일 실시예의 흐름도,3 is a flowchart of an embodiment of the operation of a log server;

도 4는 관리자 서버의 동작에 관한 일 실시예의 흐름도,4 is a flowchart of an embodiment of the operation of a manager server;

도 5는 본 발명에 따른 리눅스 시스템의 바람직한 상세 구성도,5 is a detailed detailed configuration diagram of a Linux system according to the present invention;

도 6은 캐퍼빌리티의 예,6 is an example of capability;

도 7은 접근제어목록(ACL) 파일의 카테고리에 관한 구성예,7 is a configuration example of a category of an access control list (ACL) file;

도 8은 접근제어목록(ACL) 파일의 구성예,8 is a configuration example of an access control list (ACL) file;

도 9는 접근규칙 반영 과정에 관한 일 실시예의 흐름도,9 is a flowchart illustrating an embodiment of a process of applying an access rule;

도 10은 프로세스 보안기능에 관한 제1 실시예의 흐름도,10 is a flowchart of a first embodiment related to a process security function;

도 11은 프로세스 보안기능에 관한 제2 실시예의 흐름도,11 is a flowchart of a second embodiment related to a process security function;

도 12는 프로세스 보안기능에 관한 제3 실시예의 흐름도,12 is a flowchart of a third embodiment of a process security function;

도 13은 네트워크 보안기능에 관한 제1 실시예의 흐름도,13 is a flowchart of a first embodiment related to a network security function;

도 14는 네트워크 보안기능에 관한 제2 실시예의 흐름도,14 is a flowchart of a second embodiment related to a network security function;

도 15는 로그서버의 구성에 관한 일 실시예,15 is an embodiment of a configuration of a log server;

도 16은 로그서버의 GUI 구성에 관한 실시예를 도시한 것이다.16 illustrates an embodiment of a GUI configuration of a log server.

* 도면의 주요 부호에 관한 설명* Description of the main symbols in the drawings

10-1 내지 10-3: 호스트 11: 리눅스 운영체제10-1 to 10-3: Host 11: Linux Operating System

12: 커널 12-1: 프로세스12: Kernel 12-1: Process

12-2: 접근규칙 검사수단 12-3: 접근제어목록(메모리)12-2: access rule check means 12-3: access control list (memory)

12-4: 접근제어목록 파일 12-5: 캐퍼빌리티 중계화일12-4: Access Control List File 12-5: Capability Relay File

12-6: 캐퍼빌리티 파일 12-7: 로그 처리수단12-6: Capability File 12-7: Log Processing Means

13: 접근규칙 갱신수단 14-1: CLI 처리수단13: Access rule update means 14-1: CLI processing means

14-2: Web GUI 수단 15: 네트워크 보안처리수단14-2: Web GUI means 15: Network security processing means

16: 경보전송수단 20: 로그서버16: alarm transmission means 20: log server

21: Web GUI 수단 22-1: 수신 IP 리스트 파일21: Web GUI means 22-1: Receive IP list file

22-2: 초기화 수단 22-3: 로그수신수단22-2: Initialization means 22-3: Log receiving means

22-4: 로그필터수단 22-5: 로그저장수단22-4: log filter means 22-5: log storage means

22-6: 로그 테이블 30: 관리자 서버22-6: Log Table 30: Manager Server

이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

도 1은 본 발명에 따른 리눅스 시스템의 일 실시예에 관한 구성도로서, 하나 이상의 호스트(10-1 내지 10-3), 각 호스트(10-1 내지 10-3)와 연동하는 로그서버(20)와 관리자 서버(30)로 이루어지는데, 관리자 서버(30)와 로그서버(20)도 서로 연동한다. 각 호스트(10-1 내지 10-3)에는 본 발명에 따른 리눅스(LINUX) 운영체제(OS:Operating System)가 탑재된다. 이하에서의 "리눅스 운영체제"라 함은 본 발명에 따른 기능을 수행하도록 설계된 운영체제를 의미하는 것으로 사용한다.1 is a configuration diagram of an embodiment of a Linux system according to the present invention, wherein at least one host 10-1 to 10-3 and a log server 20 interworking with each host 10-1 to 10-3 are provided. ) And the manager server 30, the manager server 30 and the log server 20 also interlock with each other. Each host 10-1 to 10-3 is equipped with a Linux operating system (OS) according to the present invention. Hereinafter, the "Linux operating system" is used to mean an operating system designed to perform a function according to the present invention.

도 2를 참조하여 리눅스 운영체제의 기능을 구체적으로 설명하기로 한다.Referring to Figure 2 will be described in detail the function of the Linux operating system.

먼저, 리눅스 운영체제는 시스템 자원(resource)에 접근할 수 있는 접근규칙을 설정할 수 있도록 한다(S210). 그리고, 어느 프로세스(process)가 특정 시스템자원에 접근하려고 하는지를 조사하고 있다가 자원에 접근하려고 시도하는 프로세스가 있는 경우에는(S211), 설정된 접근규칙을 검색하여 해당 자원에의 접근이 허용되어 있는지를 판단한다(S212). 이 판단결과, 접근이 허용되어 있는 경우에는 자원에의 접근을 허용하고(S214) 프로세스가 계속 수행되도록 처리한다(S215). 그러나, 접근이 허용되어 있지 않은 경우에는 자원에의 접근을 차단하고 프로세스를 중단한 후(S216), 이에 관한 로그(LOG) 정보를 로그서버(20)로 전송한다(S217).First, the Linux operating system allows to set an access rule to access the system resources (S210). If there is a process that attempts to access a resource while investigating which process is trying to access a specific system resource (S211), it searches for the set access rule to determine whether access to the resource is permitted. Determine (S212). As a result of this determination, if access is allowed, access to the resource is allowed (S214) and the process is continued to be performed (S215). However, if the access is not allowed, the access to the resource is blocked and the process is stopped (S216), and log (LOG) information related thereto is transmitted to the log server 20 (S217).

도 3을 참조하여 로그서버(20)의 기능을 설명하자면, 로그서버(20)는 각 호스트(10-1 내지 10-3)로부터의 로그정보 수신을 대기하다가 로그정보를 수신하면 이를 데이터베이스에 저장한다(S310,S311). 또한, 로그서버(20)는 관리자 서버(30)로부터의 로그정보 검색요청이 있으면(s312), 데이터베이스를 검색하여(S313) 관리자 서버(30)에게 제공한다(S314).Referring to FIG. 3, the function of the log server 20 will be described. The log server 20 waits for receiving log information from each host 10-1 to 10-3 and stores the log information in a database. (S310, S311). In addition, if there is a log information search request from the manager server 30 (s312), the log server 20 searches the database (S313) and provides the manager server 30 (S314).

한편, 관리자 서버(30)는 각 호스트(10-1 내지 10-3)에서 사용할 접근규칙을 설정하는 역할과 로그서버(20)를 통해 각 호스트(10-1 내지 10-3)에서 발생한 비정상적 접근정보를 검색하는 역할을 수행한다.On the other hand, the administrator server 30 is a role to set the access rules to be used by each host (10-1 to 10-3) and abnormal access occurred in each host (10-1 to 10-3) through the log server 20 Retrieve information.

도 4를 참조하자면, 관리자 서버(30)는 각 호스트(10-1 내지 10-3)의 접근규칙을 변경하고자 하는 경우에는(S410), 해당 호스트(예:10-1)에 접속하여(S411) 접근규칙을 변경하게 되며(S413), 변경된 내용은 호스트(10-1)에 저장된다(S413). 또한, 관리자 서버(30)는 로그정보의 검색이 필요한 경우에는(S420), 로그서버(20)에접속하여(S421) 필요한 로그정보를 검색해줄 것을 요청하며(S422), 로그서버(20)는 요청된 로그정보를 검색하여(S423) 관리자 서버(30)로 전송해준다(S424).Referring to FIG. 4, when the administrator server 30 wants to change an access rule of each host 10-1 to 10-3 (S410), the manager server 30 accesses the corresponding host (eg, 10-1) (S411). The access rule is changed (S413), and the changed contents are stored in the host 10-1 (S413). In addition, when the search of the log information is required (S420), the manager server 30 accesses the log server 20 (S421) and requests to search for necessary log information (S422), and the log server 20 The requested log information is retrieved (S423) and transmitted to the manager server 30 (S424).

도 5는 본 발명에 따른 리눅스 시스템의 바람직한 실시예에 관한 상세 구성도로서, 이를 참조하여 본 발명을 더욱 상세히 설명하기로 한다.5 is a detailed configuration diagram of a preferred embodiment of a Linux system according to the present invention, with reference to this will be described in more detail the present invention.

각 호스트(10-1 내지 10-3)에 탑재되는 리눅스 운영체제(11)는 커널(12), 접근규칙 갱신수단(13), 관리자 서버와의 인터페이스 수단(14-1,14-2), 네트워크 보안처리수단(15), 경보전송수단(16) 등을 포함하고 있다.The Linux operating system 11 mounted on each of the hosts 10-1 to 10-3 includes a kernel 12, an access rule updating means 13, interface means 14-1 and 14-2 with an administrator server, and a network. Security processing means 15, alarm transmission means 16 and the like.

여기서, 커널(12)은 리눅스 시스템의 기본 기능 이외에도, 프로세스(12-1)가 특정 자원에 접근하려고 할 때는 메모리에 로드된 접근제어목록(ACL:Access Control List) 정보(12-3) 혹은 캐퍼빌리티 중계파일(12-5)의 캐퍼빌리티 정보를 통해 접근규칙을 만족시키는지 판단한다. 그리고, 접근규칙을 만족시키는 경우에는 자원에의 접근을 허용하지만, 접근규칙을 만족시키지 못하는 경우에는 자원에의 접근을 차단하고 이에 관한 로그(LOG) 정보를 로그서버(20)로 통보하는 기능을 수행하는 유닉스 운영체제의 핵심부분이다. 이러한 판단은 접근규칙 검사수단(12-2)에서 이루어진다.Here, in addition to the basic functions of the Linux system, the kernel 12 may have access control list (ACL) information 12-3 or capper loaded in memory when the process 12-1 tries to access a specific resource. It is determined whether the access rule is satisfied through the capability information of the capability relay file 12-5. If the access rule is satisfied, access to the resource is allowed. If the access rule is not satisfied, the access to the resource is blocked and the log server 20 is notified of the log information. It is an integral part of the UNIX operating system it runs. This determination is made by the access rule checking means 12-2.

또한, 접근규칙 검사수단(12-2)은 접근규칙을 만족시키지 않는 비정상 접근시도에 관한 정보를 로그처리수단(12-7)으로 보내 로그서버(20)로 전송하도록 한다. 이 때, 더욱 신속하게 호스트의 상태의 파악하기 위하여, 커널(12)의 로그처리수단(12-7)은 경보전송수단(16)으 비정상 접근정보를 보내주어 경보전송수단(16)이이메일(e-mail)을 통해 관리자 서버(30)로 이를 알리도록 한다. 전자메일의 발송과 관련한 정보는 경보관련정보 파일(16-1)에 기록하도록 한다.In addition, the access rule inspecting means 12-2 transmits information about an abnormal access attempt that does not satisfy the access rule to the log processing means 12-7 to transmit it to the log server 20. At this time, in order to more quickly grasp the state of the host, the log processing means 12-7 of the kernel 12 sends the abnormal access information to the alarm transmission means 16, so that the alarm transmission means 16 email ( e-mail) to notify the administrator server (30). Information related to the sending of the e-mail is recorded in the alarm related information file 16-1.

경보관련정보 파일(16-1)의 구성예를 다음의 표 1에 나타내었다.An example of the configuration of the alarm related information file 16-1 is shown in Table 1 below.

MAIL_SWITCH=1# MAIL_REPLAY=hex IP:portMAIL_RELAY=210.73.88.149:25# MAIL_SOURCE=source machine :MAIL_SOURCE=pandora.domain_name.comMAIL_SWITCH = 1 # MAIL_REPLAY = hex IP: portMAIL_RELAY = 210.73.88.149: 25 # MAIL_SOURCE = source machine: MAIL_SOURCE = pandora.domain_name.com

즉, MAIL_SWITCH 값이 1로 설정되면, 보안 경고 발생시 그 내용이 설정 내용에 따른 주소로 이메일에 의해 발송된다. 위의 예에서 메일을 전달할 서버의 주소와 포트 번호는 각각 210.73.88.149와 25이다. 그리고 MAIL_SORUECE는 호스트 확인에 이용되는 정보를 명시하는 것이다.That is, if the MAIL_SWITCH value is set to 1, the contents of the security alert are sent by e-mail to the address according to the setting contents. In the above example, the address and port number of the server to which mail will be delivered are 210.73.88.149 and 25, respectively. MAIL_SORUECE specifies the information used to identify the host.

이 때, 위에서 설명한 커널(12)의 기능은 소스코드(source code) 레벨에서 구현하도록 구성하는 것이 바람직하다.In this case, the function of the kernel 12 described above is preferably configured to be implemented at the source code level.

관리자 서버와의 인터페이스 수단은 호스트(10-1)의 리눅스 운영체제(11)와 관리자 서버(30)와의 인터페이스를 위한 구성요소로서, 커맨드 라인 인터페이스 (CLI)와 웹 그래픽 사용자 인터페이스(Web GUI)로 이루어지도록 하는 것이 바람직하다. 이 때 커맨드 라인 인터페이스는 CLI 처리수단(14-1)에서 제공하고, 웹 그래픽 사용자 인터페이스는 Web GUI 처리수단(14-2)에서 제공한다.The interface means with the manager server is a component for the interface between the Linux operating system 11 of the host 10-1 and the manager server 30, and is composed of a command line interface (CLI) and a web graphical user interface (Web GUI). It is desirable to lose. At this time, the command line interface is provided by the CLI processing means 14-1, and the web graphic user interface is provided by the Web GUI processing means 14-2.

여기서, 커맨드 라인 인터페이스(CLI)는 관리자가 원하는 접근제어 규칙을 설정하고 확인하는 작업을 터미널에서 할 수 있도록 하는 기능을 의미한다. 또한, Web GUI를 위해서 호스트(10-1)와 로그서버(20)는 웹 서버(Web Server), 사용자가 입력한 접근규칙의 설정 내용이나 로그서버 검색 내용을 처리하기 위한 CGI(Common Gateway Interface) 프로그램들을 가지고 있다. 이러한 인터페이스 수단(14-1,14-2)을 통해 관리자 서버(30)는 각 호스트(10-1 내지 10-3)에서의 접근규칙을 설정할 수 있게 되며, 접근규칙은 접근규칙 갱신수단(13)을 통해 커널(12)에 전달된다.Here, the command line interface (CLI) refers to a function for allowing an administrator to set and confirm a desired access control rule in a terminal. In addition, for the Web GUI, the host 10-1 and the log server 20 are a web server, a CGI (Common Gateway Interface) for processing the contents of setting access rules or log server search contents input by a user. I have programs. Through the interface means 14-1 and 14-2, the administrator server 30 can set an access rule at each host 10-1 to 10-3, and the access rule is an access rule update means 13. Is passed to the kernel 12).

한편, 본 발명의 가장 중요한 핵심은 각 프로세스의 자원접근 허용 여부를 결정하는 접근규칙인데, 이 접근규칙에 대하여 상세히 설명하기로 한다.On the other hand, the most important point of the present invention is an access rule for determining whether to allow resource access to each process, this access rule will be described in detail.

접근규칙은 커널(kernel:12) 자체에 부여될 접근규칙과 개별적인 프로세스에 부여될 접근규칙으로 나눌 수 있다. 커널 자체에 부여되는 접근규칙은 캐퍼빌리티 (capability)로서 표시하여 캐퍼빌리티 파일(12-6)에 기록하며, 개별적인 프로세스에 부여되는 접근규칙은 접근제어목록(ACL:Access Control List) 파일(12-4)을 통해 관리하도록 하는 것이 바람직하다.An access rule can be divided into an access rule to be given to the kernel itself and an access rule to an individual process. The access rules granted to the kernel itself are marked as capabilities and recorded in the capability file 12-6, and the access rules granted to individual processes are stored in the Access Control List (ACL) file (12-). It is desirable to manage through 4).

여기서, 캐퍼빌리티란 "POSIX draft 1003.1e"에서 출발하였으며, 기본적으로는 슈퍼 유저의 권한을 나누기 위한 것이다. 리눅스 운영체제에서 이용할 수 있는 캐퍼빌리티의 예를 도 6에 도시하였다. 이하에서 설명하는 바와 같이, 이러한 캐퍼빌리티는 커널 전반에 적용되는 접근규칙으로서 사용되고, 또한 개별 프로세스에 대한 접근규칙에서의 객체로서도 사용된다.Here, "capability" starts from "POSIX draft 1003.1e" and is basically for dividing the authority of the super user. An example of the capacities available in the Linux operating system is shown in FIG. 6. As described below, this capability is used as an access rule applied throughout the kernel, and also as an object in the access rule for an individual process.

캐퍼빌리티 파일에의 캐퍼빌리티 등록으로서, 커널 전반에 걸쳐 슈퍼 유저에 부여되는 권한을 제한할 수 있다.As a capability registration in the capability file, it is possible to limit the privileges granted to superusers throughout the kernel.

예를 들어, 캐퍼빌리티 파일에서 CAP_SYS_ADMIN 캐퍼빌리티를 제거하면 슈퍼 유저도 CAP_SYS_ADMIN 캐퍼빌리티를 사용할 수 없다. 즉, 슈퍼 유저도 시스템의 도메인 이름이나 호스트 이름을 바꿀 수 없게 되는 것이다. 다른 예로서 CAP_NET_BIND_SERVICE 캐퍼빌리티가 제거되면, 슈퍼 유저도 1024이하의 포트를 사용하는 네트워크 데몬을 구동시킬 수 없게 된다.For example, if you remove the CAP_SYS_ADMIN capability from the capabilities file, super users will not be able to use the CAP_SYS_ADMIN capability. This means that even the superuser will not be able to change the system's domain name or host name. As another example, if the CAP_NET_BIND_SERVICE capability is removed, super users will not be able to run network daemons that use ports below 1024.

커널 전반에 걸쳐 부여되는 접근규칙 이외에 각 프로세스별로 접근규칙이 설정될 수 있는데, 위에서 설명한 바와 같이 개별적인 프로세스의 접근규칙은 접근제어목록(ACL) 화일(12-4)에 저장되어 관리된다.In addition to the access rules granted throughout the kernel, access rules may be set for each process. As described above, the access rules of individual processes are stored and managed in an access control list (ACL) file 12-4.

도 7은 접근제어목록(ACL) 파일의 카테고리에 관한 구성예로서, 접근제어목록 파일(12-4)은 각 프로세스 명칭(subject), 각 프로세스가 접근하려는 객체(Object), 및 객체에 대한 접근유형(Access Type)에 관한 정보를 포함하도록 구성하는 것이 바람직하다.7 is a configuration example of a category of an access control list (ACL) file, and the access control list file 12-4 includes each process name, an object that each process is to access, and an access to the object. It is preferable to configure to include information about the Access Type.

여기서, 객체는 파일/디렉토리(File/Dir.) 혹은 캐퍼빌리티(Capability)이다. 또한, 다음의 표 2에 보인 바와 같이 접근유형은 파일/디렉토리에 대해서는 읽기 및 쓰기 금지(DENY), 수정금지(READ), 추가만 가능(APPEND), 및 쓰기가능(WRITE) 중 하나 일 수 있으며, 캐퍼빌리티에 대해서는 상속(INHERIT)과 불상속(NO_INHERIT) 중 하나일 수 있다.Here, the object is a file / directory or a capability. In addition, as shown in Table 2 below, the access type can be one of read / write prohibited, READ, APPEND, and WRITE for a file / directory. For the capability, one may be one of inheritance (INHERIT) and disinheritance (NO_INHERIT).

객체종류Object type Acess TypeAccess type 내용Contents file/directoryfile / directory DENYDENY 읽기 및 수정금지No read or edit READREAD 수정금지Do not modify APPENDAPPEND 추가만 가능, 이전내용의 삭제나 수정금지Add only, do not delete or modify previous contents WRITEWRITE 쓰기도 가능Can also write capabilitycapability INHERITINHERIT 주체 프로세스가 실행시키는 프로세스에도 이 capability가 부여됨This capability is also granted to processes that are run by the subject process. NO_INHERITNO_INHERIT 주체 프로세스가 실행시키는 프로세스에는 이 capability가 부여되지 않음.This capability is not granted to processes executed by the subject process.

표 2의 내용을 구체적으로 설명하기로 한다.The contents of Table 2 will be described in detail.

DENY : 객체가 파일 또는 디렉토리인 경우 적용되는 접근유형으로서 누구도 객체를 읽거나 수정할 수 없도록 설정한다. 중요한 시스템 파일 등에 적용가능하며, CLI 처리수단(14-1)을 이용한 설정 예는 다음과 같다. 여기서 #pandoradm은 CLI 처리수단(14-1)의 구동 명령을 의미하는 것으로 가정한다.DENY: An access type applied when an object is a file or directory, so that no one can read or modify the object. Applicable to important system files and the like, a setting example using the CLI processing means 14-1 is as follows. Herein, it is assumed that #pandoradm means a driving command of the CLI processing unit 14-1.

#pandoradm -A -o /etc/shadow -j DENY#pandoradm -A -o / etc / shadow -j DENY

CLI 처리수단(14-1)은 다음의 표 3에 도시한 예와 같은 옵션을 설정할 수 있도록 하여 바람직하게 실시할 수 있다.The CLI processing means 14-1 can be preferably implemented by enabling the setting of options such as the example shown in Table 3 below.

-A : 접근제어 규칙이 추가됨을 알림-s : 주체(subject)가 이어짐을 알림-o : 객체(object)가 이어짐을 알림-j : 접근유형(Access Type)이 이어짐을 알림-A: Notifies the access control rule is added -s: Notifies the subject is continued -o: Notifies the object is continued -j: Notifies the access type is continued

READ : 객체가 파일 또는 디렉토리인 경우 적용되는 접근유형으로서 누구도 객체를 수정할 수 없도록 설정한다. 중요한 시스템 실행파일이 트로이 목마 등으로 수정되는 것을 방지하는 것 등에 이용될 수 있다. CLI 처리수단(14-1)을 이용한 설정 예는 다음과 같다.READ: An access type applied when an object is a file or a directory. Nobody can modify the object. It can be used to prevent important system executable files from being modified by Trojan horses. An example of setting using the CLI processing means 14-1 is as follows.

#pandoradm -A -o /sbin/ -j READ#pandoradm -A -o / sbin / -j READ

WRITE : 객체가 파일 또는 디렉토리인 경우 적용되는 접근유형으로서 객체에 대한 수정이 가능하도록 설정한다. 접근제어목록(ACL)에 특별히 접근규칙이 명시되지 않은 객체에 대한 접근은 기존의 신분기반 접근통제(DAC) 방식의 접근제어를 따르도록 한다. 따라서, DENY, READ, APPEND가 미리 설정되어 있지 않은 객체에 대하여 WRITE 접근 형태를 허용할 필요는 없는 것이다. WRITE는 특정 주체, 즉 프로세스에게 DENY, READ, APPNED로 설정되어 있는 객체에 대하여 WRITE가 가능하도록 설정하기 위한 것이다. 이는 주로 특정 어플리케이션 프로세스가 실행을 위하여 접근하는 객체에 대해서 이용한다. CLI 처리수단(14-1)을 이용한 설정 예는 다음과 같다.WRITE: An access type that is applied when an object is a file or a directory, so that the object can be modified. Access to objects whose access rules are not specified in the access control list (ACL) follows the existing identity-based access control (DAC) access control. Therefore, it is not necessary to allow the WRITE access type for objects for which DENY, READ, and APPEND are not set in advance. WRITE is for enabling WRITE on a specific subject, that is, an object whose process is set to DENY, READ, and APPNED. This is mainly used for objects accessed by a particular application process for execution. An example of setting using the CLI processing means 14-1 is as follows.

#pandoradm -A -o /var/log/wtmp -j DENY#pandoradm -A -o / var / log / wtmp -j DENY

APPEND : 객체가 파일 또는 디렉토리인 경우 적용되는 접근유형으로서 누구도 객체에 대한 추가만 가능하도록 설정한다. 빈번히 쓰기가 이루어지지만, 내용을 보존하여야 하는 경우에 이용 가능할 것이다. 주로 로그 파일이 중요한 적용 예라 할 수 있을 것이다. CLI 처리수단(14-1)을 이용한 설정 예는 다음과 같다.APPEND: An access type applied when an object is a file or directory, so that no one can add to the object. Writing is done frequently, but will be available if the content needs to be preserved. Log files are an important application. An example of setting using the CLI processing means 14-1 is as follows.

#pandoradm -A -o /var/log/messages -j APPEND#pandoradm -A -o / var / log / messages -j APPEND

상속/불상속(INHERIT/NO_INHERIT) : 객체가 캐퍼빌리티(capability)일 때 사용 가능한 접근유형(Access Type)으로서, 주체에 부여된 캐퍼빌리티가 주체가 실행시키는 프로그램에도 상속되어 부여되느냐의 여부를 설정한다. 프로세스가 실행을 위해서 다른 프로세스를 실행하고, 실행된 프로세스에도 그 캐퍼빌리티가 필요한 경우에는 INHERIT으로 설정하고 그렇지 않은 경우에는 NO_INHERIT로 설정한다. 안전성을 고려하면, 캐퍼빌리티의 상속이 필요 없는 경우에는 NO_INHERIT로 설정하는 것이 바람직하다.INHERIT / NO_INHERIT: Access type that can be used when an object is a capability.Set whether or not the capability granted to the subject is inherited to the program executed by the subject. do. If a process executes another process for execution, and the executed process also needs its capabilities, it is set to INHERIT, otherwise it is set to NO_INHERIT. In consideration of safety, it is preferable to set to NO_INHERIT when capability inheritance is not required.

접근제어목록(ACL) 파일의 구성예를 도 8에 도시하였다.8 shows an example of the structure of an access control list (ACL) file.

여기서, 각 프로세스별로 부여되는 캐퍼빌리티의 의미를 보다 구체적으로 설명하기로 한다.Here, the meaning of the capacities granted to each process will be described in more detail.

프로세스가 구동되기 위해서는 특정 캐퍼빌리티가 요구되는 경우가 많이 있다. 예를 들어 웹서버를 구동시키기 위해서는 80번 TCP 포트를 이용하여야 하므로, CAP_NET_BIND_SERVICE 캐퍼빌리티가 필요하다.There are many cases where certain capabilities are required for a process to run. For example, to run the web server, TCP port 80 must be used, so the CAP_NET_BIND_SERVICE capability is required.

그런데 기존에는 슈퍼 유저가 CAP_NET_BIND_SERVICE 캐퍼빌리티를 가지고 있으므로, 슈퍼 유저만이 웹서버를 80번 포트로 구동시킬 수 있었다. 그러나, CAP_NET_BIND_SERVICE 캐퍼빌리티는 웹서버가 이용하는 80번 포트에 한정되는 것이 아니라 1024이하의 모든 포트의 바인딩을 가능하게 하는 캐퍼빌리티이다. 그러므로 슈퍼 유저 계정을 해킹한 해커가 다른 위험한 데몬 프로그램을 구동시킬 수도 있는 것이다.By the way, since the super user has the CAP_NET_BIND_SERVICE capability, only the super user could run the web server on port 80. However, the CAP_NET_BIND_SERVICE capability is not limited to port 80 used by the web server, but is a capability that enables binding of all ports below 1024. Therefore, a hacker who hacked a super user account could run other dangerous daemon programs.

이에 대한 해결책으로 http 데몬 프로세스에 개별적으로 CAP_NET_BIND_SERVICE 캐퍼빌리티를 부여한다면, 해커가 슈퍼 유저의 권한을 획득하더라도 CAP_NET_BIND_SERVICE 캐퍼빌리티를 이용해서 할 수 있는 것이 웹서버 구동으로 제한되어 진다. 즉, 프로세스별로 그 프로세스의 구동에 꼭 필요한 캐퍼빌리티만을 부여함으로써, 해킹시 해커가 할 수 있는 권한을 최소한으로 한정시켜 버릴 수 있다.As a workaround, if you individually assign CAP_NET_BIND_SERVICE capability to the http daemon process, even if a hacker gains superuser privileges, what you can do with the CAP_NET_BIND_SERVICE capability is limited to running a web server. In other words, by granting only the capabilities necessary for running the processes for each process, it is possible to limit the authority that a hacker can have at the time of hacking to a minimum.

도 9는 접근규칙 반영 과정에 관한 일 실시예의 흐름도로서, 이를 참조하여 리눅스 운영체제(11)가 설정된 접근규칙을 어떻게 반영하는가를 보다 구체적으로 설명하기로 한다.FIG. 9 is a flowchart of an embodiment of a process of reflecting an access rule, and how the Linux operating system 11 reflects the set access rule will be described in more detail with reference to the flowchart.

리눅스 운영체제(11)는 해당 호스트(10-1)가 부팅(BOOTING)될 때(S510), 접근제어목록 파일(12-4)의 내용을 메모리(12-3)에 로드하여 이용한다(S511). 또한, 관리자 서버(30)를 통해 개별 프로세스에 대한 접근규칙이 변경되면 그 변경내용은 접근제어목록 파일(12-4)에 저장되고(S512), 메모리 영역(12-3)에 있는 접근제어목록 정보에 반영된다(S513).When the host 10-1 is booted (S510), the Linux operating system 11 loads and uses the contents of the access control list file 12-4 into the memory 12-3 (S511). In addition, when the access rule for an individual process is changed through the manager server 30, the change is stored in the access control list file 12-4 (S512), and the access control list in the memory area 12-3. It is reflected in the information (S513).

만일, 관리자 서버(30)를 통한 커널 자체의 캐퍼빌리티 변경이 이루어지면 캐퍼빌리티 파일(12-6)이 변경되며(S514), 이 파일의 변경 사항은 캐퍼빌리티 파일(12-6)의 내용을 그대로 가지고 있되 커널(12)에 그 내용을 전달할 때와 그 내용이 변경될 때를 구분하는 기능을 수행하는 캐퍼빌리티 중계파일 (예:/proc/sys/pandora /locks)에 반영한다(S515).If the capability change of the kernel itself through the manager server 30 is made, the capability file 12-6 is changed (S514), and the change of this file changes the contents of the capability file 12-6. It is retained as it is, but is reflected in the capability relay file (eg, / proc / sys / pandora / locks) that performs a function of distinguishing when the contents are transferred to the kernel 12 and when the contents are changed (S515).

즉, 외부에서의 개별적인 프로세스에 대한 접근규칙의 변경과 커널 자체의 캐퍼빌리티 변경은 각각 접근제어목록 파일(12-4)과 캐퍼빌리티 파일(12-6)에서 이루어지지만, 리눅스 커널(12)에의 반영은 각각 메모리 영역(12-3)과 캐퍼빌리티 중계파일(12-5)을 통해 이루어지는 것이다.That is, the change of access rules for individual external processes and the capability of the kernel itself are made in the access control list file 12-4 and the capability file 12-6, respectively. The reflection is made through the memory area 12-3 and the capability relay file 12-5, respectively.

또한, 커널(12)은 부팅이 종료된 후 새로이 생성된 프로세스에는 기 규정된 기본 캐퍼빌리티를 일단 할당한다. 물론, 기본적으로 할당된 캐퍼빌리티는 관리자 서버(30)에 의하여 변경될 수 있다.In addition, the kernel 12 once allocates a predetermined default capability to the newly created process after the booting is finished. Of course, the basically assigned capabilities may be changed by the manager server 30.

프로세스 생성시 부여되는 기본적인 캐퍼빌리티(capability)라 함은 원래 일반적인 유닉스 운영체제의 신분기반 접근통제(DAC)에 기반을 둔 접근제어가 제공하는 캐퍼빌리티와 본 발명에 따른 유닉스 운영체제에서 기본적으로 허용시켜준 캐퍼빌리티중 공통되는 것들을 의미한다.The basic capability granted at process creation is basically the capability provided by access control based on the identity-based access control (DAC) of the general Unix operating system, and basically allowed by the Unix operating system according to the present invention. It means the common ones of the capabilities.

예로서, CAP_NET_BIND_SERVICE 캐퍼빌리티는 1024이하의 TCP/UDP 포트를 열어 서비스가 가능하게 하는 캐퍼빌리티이다. 이 캐퍼빌리티는 일반적인 유닉스에서는 슈퍼 유저만이 사용할 수 있는 것이다. 만약 리눅스 운영체제가 이 캐퍼빌리티를 기본적으로 제한하였다면, 슈퍼 유저도 1024 이하의 포트에 대한 바인딩을 할 수 없게 되는 것이다. 그러나 리눅스 운영체제에서 이 캐퍼빌리티에 대한 기본 설정값을 허용하였다고 하여도, 일반 사용자가 1024이하의 포트에 대한 바인딩을 할 수 없는 것이다. 접근제어목록(ACL) 정보에는 프로세스의 파일이나 캐퍼빌리티에 대한 허용 여부가 정의되어 있어 이를 통한 접근제어가 가능하기 때문이다.For example, the CAP_NET_BIND_SERVICE capability is a capability that enables a service by opening a TCP / UDP port of 1024 or less. This capability is only available to superusers on ordinary Unixes. If the Linux operating system restricts this capability by default, super users will not be able to bind to ports below 1024. However, even if the Linux operating system allows the default setting for this capability, ordinary users cannot bind to ports below 1024. This is because the access control list (ACL) information defines whether or not the process's file or capability is allowed.

한편, 본 발명에 따른 리눅스 운영체제는 프로세스 자체의 보안 기능을 제공하도록 하여 더욱 바람직하게 실시할 수 있는데, 그 바람직한 실시예로서 Un-Killable 프로세스 만들기, 프로세스 숨기기, 커널 모듈 삽입 제한이라는 세가지 기능을 제공한다.On the other hand, the Linux operating system according to the present invention can be implemented more preferably by providing a security function of the process itself, the preferred embodiment provides three functions of creating an Un-Killable process, hiding a process, restriction of kernel module insertion .

먼저, Un-Killable 프로세스 만들기 기능은 중요한 프로세스의 실행을 중지시킬 수 없게 설정하는 것이다. 해커가 슈퍼 유저의 권한을 획득하더라도 중요 프로세스를 중단시키지 못하도록 하여 서비스의 중단 등과 같은 사태가 일어나지 못하도록 하는 것이다.First, the ability to create an Un-Killable process is designed to disable the execution of important processes. Even if a hacker obtains the super user's authority, it prevents the critical process from being interrupted and prevents a service interruption.

도 10을 참조하여 Un-Killable 프로세스 만들기 기능을 구체적으로 설명하자면, 커널(12)은 특정 프로세스에 대한 kill 시도가 있으면(S611), 이 프로세스의 캐퍼빌리티를 검사하여(S612), kill이 가능하게 설정되어 있는 경우에만(S613) 해당 프로세스를 kill 시킨다(S614). 그렇지 않은 경우에는 kill 시도를 차단한다.Referring to FIG. 10, the kernel 12 performs a kill attempt for a specific process (S611), and checks the capability of the process (S612) to enable killing. Only if it is set (S613) to kill the process (S614). Otherwise, block kill attempts.

프로세스 숨기기 기능은 특정 프로세스의 동작 여부가 ps 명령어를 실행시켜도 나타나지 않도록 하는 것이다. 이는 침입탐지시스템 등 특정 프로세스의 운영 여부를 숨기기 위해서도 이용되며, 프로세스 아이디(ID)를 알지 못하게 하여 해커가 프로세스를 kill 하는 것을 방지할 목적으로도 사용 가능하다.The process hiding feature prevents a particular process from running even if you run the ps command. It is also used to hide the operation of a specific process, such as an intrusion detection system, and can be used to prevent hackers from killing a process by not knowing the process ID.

도 11을 참조하여 프로세스 숨기기 기능을 구체적으로 설명하자면, 커널(12)은 특정 프로세스에 대한 ps 요구가 있으면(S621), 이 프로세스의 캐퍼빌리티를 확인하여(S622), 감추기로 설정되어 있지 않은 경우에만(S623), 해당 프로세스를 디스플레이한다(S624). 그렇지 않은 경우에는 디스플레이하지 않는다.Referring to FIG. 11 to specifically describe the process hiding function, if there is a ps request for a particular process (S621), the process checks the capability of this process (S622), if not set to hide Only (S623), the process is displayed (S624). Otherwise it does not display.

그리고 다양하고 복잡해진 커널 기능의 효과적인 동작을 위하여 커널의 모듈화가 많이 이용되고 있는데, 이 모듈 속에 악성 코드가 숨어 있을 가능성이 있다. 커널 모듈 삽입 제한이란 함부로 모듈을 커널 속에 삽입할 수 없도록 하는 기능을 말한다.In addition, kernel modularization is widely used for the effective operation of various and complicated kernel functions. There is a possibility that malicious code is hidden in this module. Kernel module insertion restriction refers to the function that prevents the module from being inserted into the kernel.

도 12를 참조하여 커널 모듈 삽입 제한 기능을 구체적으로 설명하자면, 커널(12)은 특정 모듈의 커널 삽입 시도가 있으면(S631), 이 프로세스의 캐퍼빌리티를 확인하여(S632), 모듈 삽입이 가능하게 되어 있는 경우에만(S633) 해당 프로세스를 커널에 삽입할 수 있게 한다(S634). 그렇지 않은 경우에는 모듈 삽입 시도를 차단한다.To describe the kernel module insertion restriction function in detail with reference to FIG. 12, if the kernel 12 attempts to insert a kernel of a specific module (S631), the capability of the process is checked (S632), so that the module can be inserted. If it is (S633), the process can be inserted into the kernel (S634). Otherwise, block the module insertion attempt.

또한, 리눅스 운영체제는 네트워크 보안기능을 제공하여 더욱 바람직하게 실시할 수 있다. 도 5에 도시한 실시예에서 보면 이 기능은 네트워크 보안 처리수단(15)에서 수행하는데, 보안기능을 위한 설정은 인터페이스 수단(14-1,14-2)을 통해 설정된다. 네트워크 보안 처리수단(15)은 네트워크 보안기능으로서의 바람직한 실시예로서 방화벽(Firewall) 기능과 포트 스캐닝(Port Scanning) 기능을 제공한다.In addition, the Linux operating system provides a network security function can be more preferably implemented. In the embodiment shown in Fig. 5, this function is performed by the network security processing means 15. The setting for the security function is set via the interface means 14-1 and 14-2. The network security processing means 15 provides a firewall function and a port scanning function as a preferred embodiment as a network security function.

방화벽 기능은 호스트(10-1)에서 송수신되는 데이터 패킷을 검사하여 통과가 허용된 패킷일 경우에만 통과시키는 기능이다.The firewall function is a function of inspecting data packets transmitted and received from the host 10-1 and passing them only if the packet is allowed to pass.

이를 통해 허용되지 않은 곳으로부터의 네트워크 서비스 요청을 차단하여 해커의 침입을 미연에 차단하는 기능을 수행한다. 즉, 보호 대상 네트워크와 인터넷의 연결 길목에서 왕래하는 패킷의 헤더 정보를 이용하여 패킷의 통과 여부를 결정하는 시스템이라 할 수 있다. 여기서 패킷의 헤더 정보를 활용한다는 것은 패킷 헤더에서 다음의 정보를 추출하여 패킷의 통과여부를 결정한다는 것이다.This function blocks network service requests from unauthorized places and prevents hackers. That is, it can be said that the system determines whether the packet passes using the header information of the packet coming and going on the connection between the protected network and the Internet. In this case, the use of the header information of the packet means that the following information is extracted from the packet header to determine whether the packet passes.

- 패킷의 출발지 주소(source address)Source address of the packet

- 패킷의 출발지 포트(source port)Source port of the packet

- 패킷의 도착지 주소(destination address)Destination address of the packet

- 패킷의 도착지 포트(destination port)Destination port of the packet

도 13을 참조하여 방화벽 기능의 바람직한 실시예를 구체적으로 설명하자면, 네트워크 보안처리수단(15)은 송수신될 데이터 패킷이 있는 경우에는(S711), 먼저 해당 데이터 패킷이 정상적인 데이터 패킷인지를 검사한다(S712). 이 검사에는 체크섬(Checksum) 검사와 정상성 테스트(Sanity)가 있다.Referring to FIG. 13, a preferred embodiment of the firewall function will be described in detail. When there are data packets to be transmitted and received (S711), the network security processing unit 15 first checks whether the corresponding data packet is a normal data packet ( S712). This check includes a checksum test and a sanity test.

단계 S712에서의 검사결과 정상적인 데이터 패킷이 아닌 경우에는(S713), 이를 무시하되(S717) 정상적인 데이터 패킷인 경우에는 기 규정된 통과규칙을 만족하는지를 판단한다(S714). 그리고, 통과규칙을 만족하는 경우(S715), 데이터 패킷을 그 다음 경로로 통과시키되 (S716), 그렇지 않은 경우에는 이에 관한 로그정보를 기록한다(S718).If the result of the check in step S712 is not a normal data packet (S713), it is ignored (S717). If it is a normal data packet, it is determined whether a predetermined pass rule is satisfied (S714). When the pass rule is satisfied (S715), the data packet is passed through the next path (S716). Otherwise, log information about the pass is recorded (S718).

단계 S714에서의 통과규칙은 데이터 패킷 헤더의 내용에 따른 처리규정을 의미하며, 인터페이스 수단(14-1, 14-2)을 통해 관리자 서버(30)에서 설정한다. 예를 들어 기본적인 정책을 모든 패킷을 차단한다 로 설정하고, telnet 서비스만 허용하고자 한다면, 방화벽 접근제어 규칙에 패킷의 도착지 포트가 23인 패킷만 통과시키도록 설정하면 되는 것이다. 그리고 CAP_NET_ADMIN 캐퍼빌리티를 슈퍼 유저 권한에서 제거시킨다면, 해커가 슈퍼 유저 권한을 해킹하더라도 이 방화벽 접근제어 규칙을 수정할 수 없게 된다.The passing rule in step S714 means processing rules according to the contents of the data packet header, and is set by the manager server 30 via the interface means 14-1 and 14-2. For example, if the default policy is set to block all packets, and you want to allow only telnet services, you can set the firewall access control rules to pass only packets with a destination port of 23. If you remove the CAP_NET_ADMIN capability from superuser privileges, you will not be able to modify this firewall access control rule even if the hacker hacks the superuser privileges.

또한, 캐퍼빌리티(capability)를 이용해서 네트워크 보안을 향상시킬 수 있다. 즉 다음의 캐퍼빌리티를 제거하거나, 꼭 필요한 프로세스에만 부여함으로써 네트워크 보안을 강화할 수 있다.In addition, network security can be improved by using the capability (capability). In other words, network security can be enhanced by removing the following capabilities or by assigning only those processes that are necessary.

CAP_NET_ADMIN: 이는 방화벽의 관리, 라우팅 테이블의 수정, NIC(Network Interface Card)의 promiscuous 모드 설정 등을 가능하게 하는 캐퍼빌리티이다. 따라서 이 캐퍼빌리티를 제거한다면, 해커가 방화벽 접근 제어 규칙을 변경하거나 라우팅 테이블의 임의 수정, 그리고 스니퍼(sniffer) 프로그램을 구동시키는 것을 방지할 수 있다.CAP_NET_ADMIN: This is the capability to manage the firewall, modify the routing table, and set the promiscuous mode of the network interface card (NIC). Thus, removing this capability prevents hackers from changing firewall access control rules, arbitrarily modifying routing tables, and running sniffer programs.

CAP_NET_BIND_SERVER: 이는 TCP/UDP 소켓에 1024이하의 포트 바인딩을 가능하게 하는 캐퍼빌리티이다. 이 캐퍼빌리티를 제거한다면, 해커가 포트번호 1024이하의 서비스를 악의의 목적으로 구동시키는 것을 방지할 수 있다.CAP_NET_BIND_SERVER: This is a capability that enables port bindings below 1024 for TCP / UDP sockets. Removing this capability can prevent hackers from running services below port number 1024 for malicious purposes.

이러한 방화벽 기능의 주요 목적은 본 발명에 따른 리눅스 운영체제가 장착된 호스트로 오는 패킷을 통제하는데 있다.The main purpose of this firewall function is to control packets coming to the host equipped with the Linux operating system according to the present invention.

포트 스캐닝 기능은 기 규정된 시간동안 해당 호스트에서 이루어지는 열려있지 않은 포트로의 접속시도가 기 규정된 회수를 넘는 경우에는 그 리스트를 작성하여 로그서버(20)로 통보하는 기능을 의미한다. 즉, 해킹을 위한 수단으로 많이 이용되고 있는 포트 스캐닝 도구가 유닉스 시스템에 적용되면, 이 사실을 탐지하여 통보하는 기능이다.The port scanning function means a function of creating a list and notifying the log server 20 when a connection attempt to an unopened port made in a corresponding host for a predetermined time exceeds a predetermined number. In other words, if a port scanning tool, which is widely used as a means for hacking, is applied to a Unix system, it detects and notifies this fact.

포트 스캐닝(Port Scanning)을 하는 것은 주로 짧은 시간에 많은 수의 포트에 대하여 연결시도를 행함으로써 이루어진다. 이에 착안하여 유닉스 운영체제는 짧은 시간동안에 특정 호스트에서 이루어지는 열려있지 않은 포트로의 접속시도에 대한 값을 바탕으로 탐지하게 된다. 단지 리스트만을 유지하도록 하면 성능 저하의 문제를 차단할 수 있다. 그리고, DoS(Denial of Service)에 대한 대응책으로 유지되는 리스트의 값을 제한하고, 이에 대한 보완책으로 일정 시간(예:3초)에 한번씩 리스트를 삭제하도록 구성하는 것이 바람직하다.Port scanning is usually done by connecting to a large number of ports in a short time. With this in mind, the Unix operating system detects in a short time based on the value of a connection attempt to an open port on a particular host. Just keeping the list will prevent the problem of poor performance. In addition, it is preferable to limit the value of the list maintained as a countermeasure against the Denial of Service (DoS) and to delete the list once every predetermined time (for example, 3 seconds) as a countermeasure.

도 14를 참조하여 포트 스캐닝 기능을 구체적으로 설명하자면, 먼저 관리자 서버(30)는 인터페이스 수단(14-1,14-2)을 통해 검사 시간과 접근시도회수를 설정한다(S721). 이 정보는 네트워크 보안관련 정보를 저장하는 파일에 기록되어 참조된다. 네트워크 보안 처리수단(15)은 접근이 허용되지 않은 포트로의 접속시도가 있는지를 조사하고 있다가(S722), 이러한 접속시도가 있는 경우에는 규정된 시간동안 규정된 회수의 접근시도가 이루어지는지 경우에는(S723), 리스트를 만들고 이를 로그서버(20)로 통보한다(S724).Referring to FIG. 14, the port scanning function will be described in detail. First, the manager server 30 sets the inspection time and the access attempt frequency through the interface means 14-1 and 14-2 (S721). This information is recorded and referenced in a file that stores network security related information. The network security processing means 15 checks whether there is a connection attempt to a port to which access is not permitted (S722), and if there is such a connection attempt, if a predetermined number of access attempts are made for a prescribed time. In S723, a list is created and notified to the log server 20 (S724).

이제, 로그서버(20)에 대하여 보다 구체적으로 설명하기로 한다.Now, the log server 20 will be described in more detail.

먼저, 로그서버는 각 호스트(10-1 내지 10-3)로부터 오는 로그를 데이터베이스에 저장하는 역할을 한다. 그리고 데이터가 디스크의 용량을 초과하지 않도록 적절한 분배작업이 이루어지며, 데이터의 백업이 용이하도록 데이터베이스를 관리한다. 이 때, DBMS를 활용하는 것이 바람직하다.First, the log server is responsible for storing the logs from each host (10-1 to 10-3) in the database. Proper distribution is done so that data does not exceed the capacity of the disk, and the database is managed to facilitate data backup. At this time, it is preferable to use a DBMS.

도 15를 참조하여 보다 상세하게 설명하자면, 로그서버의 초기화 수단(22-2)은 설정 파일(22-1)에서 수신 IP 주소 리스트와 Drop 로그 패턴 리스트를 읽어 들인 후, 일정 포트(예: UDP 514 포트)를 열고 각 호스트(10-1 내지 10-3)로부터 전송되는 로그 메시지의 수신을 대기한다.In more detail with reference to FIG. 15, the log server initialization unit 22-2 reads a list of received IP addresses and a drop log pattern list from the configuration file 22-1, and then selects a predetermined port (for example, UDP). Open port 514) and wait for reception of log messages sent from each of the hosts 10-1 to 10-3.

로그수신수단(22-3)은 로그 메시지가 수신되면 로그 메시지를 보낸 호스트의 IP 주소가 수신 허용 IP 주소 리스트에 있는지를 조사한다. 그리고, 수신 허용 IP 주소 리스트에 있는 경우에는 이를 받아들여서 로그필터수단(22-4)으로 로그 메시지를 전송한다. 그러나, 수신 허용 IP 주소 리스트에 없는 경우는 해당 메시지를 드롭(drop) 한다.When the log receiving means 22-3 receives the log message, it checks whether the IP address of the host that sent the log message is in the list of allowable IP addresses. If it is in the reception allowable IP address list, it is accepted and the log message is sent to the log filter means 22-4. However, if it is not in the list of allowed IP addresses, the message is dropped.

로그필터수단(22-4)은 로그수신수단(22-3)으로부터 받은 로그 메시지에 Drop 로그 패턴 리스트의 항목이 존재하는지를 조사하여, Drop 로그 패턴 리스트의 항목이 존재하는 경우에는 메시지를 드롭(drop) 하고, 존재하지 않는 경우에는 로그저장수단(22-5)으로 로그 메시지를 전송한다.The log filter means 22-4 checks whether an item of the Drop log pattern list exists in the log message received from the log receiving means 22-3, and drops the message if an item of the Drop log pattern list exists. If it does not exist, the log message is sent to the log storage means 22-5.

로그저장수단(22-5)은 로그 메시지를 DBMS의 로그 테이블(22-6)에 저장한다. 이 때, 로그 메시지의 저장은 설정 파일에서 정해진 최대 행(Row)의 개수만큼 저장되고 그 이상 로그가 들어오면 처음부터 다시 저장하게 된다. 예로서, 총 6 개의 로그 테이블로 구성할 수 있으며, 일정 주기(예: 1개월)마다 로그 테이블(22-6)을 변경하는 것이 바람직하다. 이 과정에서 이용되는 DBMS 테이블로는 로그 테이블과 시스템 테이블이 있다. 로그 테이블은 로그 메시지를 저장하기 위한 것이고, 시스템 테이블은 로그 저장과 관계된 전역변수를 저장하기 위해 사용할 수 있다.The log storage means 22-5 stores the log message in the log table 22-6 of the DBMS. At this time, the log message is stored as many as the maximum number of rows specified in the configuration file, and when more logs are entered, the log message is stored again from the beginning. For example, a total of six log tables can be configured, and it is preferable to change the log table 22-6 every certain period (for example, one month). DBMS tables used in this process include log tables and system tables. The log table is for storing log messages, and the system table can be used for storing global variables related to log storage.

또한, 로그서버(20)는 관리자가 원하는 조건에 따라 로그를 검색할 수 있는 검색기능을 제공한다. 보다 바람직하게는 로그가 발생한 시스템이나 발생일자 등에 대하여 AND, OR 와 NOT 조건을 부가하여 검색하는 기능을 제공하도록 한다.In addition, the log server 20 provides a search function that allows the administrator to search the log according to a desired condition. More preferably, a search function is provided by adding AND, OR and NOT conditions to the system or date of occurrence of the log.

로그서버(20)는 관리자의 로그 검색을 용이하게 하기 위하여 관리자 서버(30)와의 사이에서 Web GUI 수단(21)을 통해 웹 기반의 그래픽 사용자 인터페이스(GUI)를 제공한다. 이를 위해서 로그서버(20)는 HTML 생성 및 데이터베이스 검색을 위한 CGI 프로그램을 이용한다. 여기서, CGI 프로그램은 관리자가 입력한 검색조건을 기반으로 로그를 찾아주는 작업을 하며, 검색결과가 HTML 파일로 생성되면 로그서버(20)는 이 내용을 웹서버를 통해 관리자에게 제공하게 되는 것이다.The log server 20 provides a web-based graphical user interface (GUI) through the Web GUI means 21 with the manager server 30 to facilitate the administrator's log search. To this end, the log server 20 uses a CGI program for HTML generation and database search. In this case, the CGI program searches for a log based on a search condition input by an administrator. When a search result is generated as an HTML file, the log server 20 provides the contents to the administrator through a web server.

로그서버를 위한 GUI 구성의 실시예를 도 16을 참조하여 설명하자면, GUI 메뉴(23-1)는 크게 전체로그를 보기 위한 것과 로그검색을 위한 것으로 나눌 수 있다. 관리자가 전체로그의 검색을 선택하면, 로그 전체 리스트 창(23-2)이 나타나 전체 리스트를 볼 수 있다. 이 때, 검색의 용이성을 위하여 이전 리스트와 이후 리스트를 이동하는 버튼을 구비한다.An embodiment of a GUI configuration for a log server will be described with reference to FIG. 16. The GUI menu 23-1 can be broadly divided into one for viewing the entire log and one for searching the log. When the administrator selects to search the entire log, the log full list window 23-2 appears to view the entire list. In this case, for ease of searching, a button for moving the previous list and the following list is provided.

또한, 관리자가 조건별 로그검색을 선택하면 로그검색옵션 창(23-3)이 나타나 검색옵션(예: AND, OR, Not)과 검색문을 입력할 수 있도록 한다. 그리고, 검색수행을 지시하면 조건에 맞는 로그기록을 검색하여 제공한다.In addition, if the administrator selects a log search by condition, the log search option window 23-3 appears to allow the user to enter a search option (eg, AND, OR, Not) and a search statement. When instructed to perform a search, a log record matching the condition is searched and provided.

이상에서 설명한 바와 같이, 본 발명을 올바르게 사용하는 방법은 캐퍼빌리티(capability)와 접근제어목록(ACL:Access Control List)을 얼마나 잘 활용하느냐에 달려 있다. 즉, 본 발명에 따른 유닉스 시스템 내에서 운영되는 어플리케이션 프로그램은 모두 캐퍼빌리티(capability)와 접근제어목록(ACL)이 설정되어 운영되므로, 잘못된 설정은 어플리케이션 프로그램의 동작에 치명적인 오류를 줄 수 있다. 그리고 시스템 파일에 대한 잘못된 접근제어목록(ACL) 설정 등은 운영체제 자체의 동작에 치명적인 오류를 가져올 수 있다.As described above, the method of correctly using the present invention depends on how well the capability and access control list (ACL) are utilized. That is, since all application programs operated in the Unix system according to the present invention operate with the capability and the access control list (ACL) set, wrong setting may cause a fatal error in the operation of the application program. Incorrect access control lists (ACLs) for system files can cause fatal errors in the operating system itself.

이러한 오류가 발생할 수 있다고 해서 캐퍼빌리티와 접근제어목록(ACL)을 모두 허용한다면, 이는 안전한 운영체제 이용의 의미가 없어지게 된다. 따라서 관리자는 지속적인 관심을 가지고 다음의 사항을 준수하는 것이 바람직하다.If this error can occur and allows both capability and access control lists (ACLs), then this makes no sense to use a secure operating system. It is therefore advisable for managers to have the following concerns with constant attention:

- 커널 전반에 적용되는 캐퍼빌리티를 최소화한다.Minimize the capacity across the kernel.

- 시스템 환경 설정 파일과 로그 파일에 대한 접근 제어 규칙을 설정한다.-Set access control rules for system configuration file and log file.

- 커널 모듈의 추가가 불가능하도록 커널을 실링하고, CAP_SYS_ MODULE 캐퍼빌리티를 꼭 필요한 프로세스에만 부여한다.Seal the kernel to prevent the addition of kernel modules, and give the CAP_SYS_ MODULE capability only to those processes that need it.

- 중요 프로세스에 Un-Killable 기능과 프로세스 숨기기 기능을 설정한다.Set Un-Killable and Hide Processes on critical processes.

- 이용하고자 하는 프로세스의 구동시 요구되는 캐퍼빌리티를 찾아내어 해당 프로세스만 부여한다.-It finds the capability required to run the process to use and assigns only that process.

- 이용하고자 하는 프로세스가 접근하는 파일에 대하여 이 프로세스만 접근할 수 있도록 접근 제어 규칙을 설정한다.Set access control rules so that only this process can access files accessed by the process you want to use.

- 불필요한 서비스에 대한 방화벽(Firewall) 기능을 설정한다.-Set up firewall function for unnecessary services.

- 침입이 의심되는 사항에 대해 즉각적인 전자 우편 통보가 가능 하도록 설정한다.-Enable instant e-mail notification of suspected intrusions.

- 로그 내용을 수시로 확인한다.-Check the log contents from time to time.

본 발명을 사용하면, 접근통제기능이 강화되고 시스템의 목적에 특화된 운영체제를 구성할 수 있다. 즉, 웹서버 전용이나 파일서버 전용 등 각각의 목적에 맞는 보안 환경 설정이 가능하고, 이를 정형화하여 이용하는 것이 가능하다.Using the present invention, an access control function can be enhanced and an operating system specialized for the purpose of the system can be configured. That is, it is possible to set up a security environment for each purpose, such as dedicated web server or dedicated file server.

특히, 각각의 시스템 목적에 맞는 유닉스 시스템의 환경 설정 내용과 이의 정형화 과정에서 획득한 노하우를 이용하면, 보다 안전한 시스템의 운영과 편리한 이용이 가능해질 수 있다.In particular, by using the configuration settings of Unix systems for each system purpose and the know-how acquired during the formalization process, it is possible to operate the system more safely and conveniently.

Claims (27)

각 프로세스(process)별로 시스템 자원(resource)에의 접근규칙을 설정할 수 있도록 하되, 상기 프로세스가 특정 자원에 접근하려고 할 때는 상기 접근규칙을 만족시키는지를 판단하여, 상기 접근규칙을 만족시키는 경우에는 상기 자원에의 접근을 허용하지만, 상기 접근규칙을 만족시키지 못하는 경우에는 상기 자원에의 접근을 차단하고 이에 관한 로그(LOG) 정보를 로그서버로 통보하도록 구성된 리눅스 운영체제(LINUX OS:Operating System)를 탑재한 하나 이상의 호스트;It is possible to set an access rule to a system resource for each process, and when the process tries to access a specific resource, it is determined whether the access rule is satisfied, and if the access rule is satisfied, the resource If the access rule is allowed, but the access rule is not satisfied, the Linux operating system (LINUX OS: Operating System) is configured to block access to the resource and notify the log server of the log information. One or more hosts; 상기 각 호스트와 연동하여 상기 각 호스트에서 전송한 로그정보를 저장하고, 자신과 연동하는 관리자 서버에서 상기 저장된 로그 정보를 기 규정된 규칙에 따라 검색할 수 있도록 해주는 로그서버; 및A log server for storing log information transmitted from each host in association with each host, and retrieving the stored log information according to a predetermined rule from an administrator server interworking with the host; And 상기 각 호스트와 연동하여 상기 접근규칙을 설정하고, 또한 상기 로그서버와 연동하여 상기 로그 정보를 검색하는 관리자 서버를 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템.And an administrator server for setting the access rule in association with each host and retrieving the log information in association with the log server. 제 1 항에 있어서, 상기 호스트에 탑재되는 리눅스 운영체제는The system of claim 1, wherein the Linux operating system mounted on the host comprises: 커널(kernel) 자체에 부여되는 캐퍼빌리티(capability)를 기록하는 캐퍼빌리티 파일, 및 각 프로세스에 부여되는 접근규칙을 기록하는 접근제어목록(ACL: Access Control List) 파일을 통해 상기 접근규칙을 관리하도록 구성되는 것을 특징으로 하는 리눅스 시스템.Manage the access rules through a capability file that records the capabilities granted to the kernel itself, and an Access Control List (ACL) file that records the access rules granted to each process. Linux system, characterized in that configured. 제 2 항에 있어서 상기 리눅스 운영체제는,The method of claim 2 wherein the Linux operating system, 상기 접근제어목록 파일의 내용은 부팅(Booting) 시에 메모리에 로드하되, 부팅 후 접근제어목록 파일의 내용이 변경되면 이를 상기 메모리에 반영하여 이용하고,The contents of the access control list file are loaded into a memory at the time of booting, but if the contents of the access control list file are changed after booting, they are reflected in the memory and used. 상기 캐퍼빌리티 파일의 내용은 상기 캐퍼빌리티 파일의 내용을 그대로 가지고 있되 상기 커널에 그 내용을 전달할 때와 그 내용이 변경될 때를 구분하는 기능을 수행하는 캐퍼빌리티 중계파일에서 읽어 이용하도록 구성되는 것을 특징으로 하는 리눅스 시스템.The contents of the capability file are configured to read the contents of the capability file, but to read them from the capability relay file that performs a function of distinguishing when the contents are changed and the contents are changed. Linux system featured. 제 3 항에 있어서 상기 리눅스 운영체제는,The method of claim 3 wherein the Linux operating system, 상기 프로세스가 특정 자원에 접근하려고 할 때는 상기 메모리에 로드된 접근제어목록 정보 혹은 상기 캐퍼빌리티 중계파일의 정보를 통해 접근규칙을 만족시키는지를 판단하여, 상기 접근규칙을 만족시키는 경우에는 상기 자원에의 접근을 허용하지만, 상기 접근규칙을 만족시키지 못하는 경우에는 상기 자원에의 접근을 차단하고 이에 관한 로그(LOG) 정보를 로그서버로 통보하는 커널;When the process tries to access a specific resource, it is determined whether the access rule is satisfied through the access control list information loaded in the memory or the information in the capability relay file, and when the access rule is satisfied, A kernel that allows access, but does not satisfy the access rule, blocks access to the resource and informs a log server of log information about the resource; 상기 관리자 서버와의 인터페이스 수단; 및Interface means with the manager server; And 상기 인터페이스 수단을 통해 상기 관리자 서버가 상기 접근제어목록 파일 혹은 캐퍼빌리티 파일을 변경시킬 수 있도록 해주는 접근규칙 갱신수단을 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템.And access rule updating means for allowing the administrator server to change the access control list file or the capability file through the interface means. 제 4 항에 있어서 상기 커널은,The method of claim 4, wherein the kernel, 새로이 생성된 프로세스에는 기 규정된 기본 캐퍼빌리티를 일단 할당하도록 구성되는 것을 특징으로 하는 리눅스 시스템.Linux system, characterized in that the newly created process is configured to assign a predetermined default capability once. 제 4 항에 있어서,The method of claim 4, wherein 상기 커널의 기능은 상기 커널의 소스코드(source code) 레벨에서 구현하도록 구성되는 것을 특징으로 하는 리눅스 시스템.The function of the kernel is configured to be implemented at the source code level of the kernel. 제 4 항에 있어서,The method of claim 4, wherein 상기 인터페이스 수단은 커맨드 라인 인터페이스(CLI:Command Line Interface)와 웹 그래픽 사용자 인터페이스(Web GUI:Graphic User Interface) 중 하나 이상을 포함하도록 구성되는 것을 특징으로 하는 리눅스 시스템.Said interface means being configured to comprise at least one of a command line interface (CLI) and a web graphical user interface (Web GUI). 제 2 항에 있어서 상기 접근제어목록 파일은,The method of claim 2, wherein the access control list file, 각 프로세스 명칭;Each process name; 상기 각 프로세스가 접근하려는 객체(Object); 및An object to be accessed by each process; And 상기 객체에 대한 접근유형(Access Type)에 관한 정보를 포함하도록 구성되는 것을 특징으로 하는 리눅스 시스템.Linux system, characterized in that configured to include information about the access type (Access Type) for the object. 제 8 항에 있어서,The method of claim 8, 상기 객체는 파일/디렉토리 혹은 캐퍼빌리티이고,The object is a file / directory or capability, 상기 접근유형은 상기 파일/디렉토리에 대해서는 읽기 및 쓰기 금지(DENY), 수정금지(READ), 추가만 가능(APPEND), 및 쓰기가능(WRITE) 중 하나 이고, 상기 캐퍼빌리티에 대해서는 상속(INHERIT)과 불상속(NO_INHERIT) 중 하나 이도록 구성되는 것을 특징으로 하는 리눅스 시스템.The access type is one of read / write prohibited, read only, append only, and writable for the file / directory, and INHERIT for the capability. Linux system, characterized in that it is configured to be one of and NO_INHERIT. 제 4 항에 있어서 상기 리눅스 운영체제는,The method of claim 4 wherein the Linux operating system, 상기 커널로부터 상기 접근규칙을 만족시키지 못한 로그정보를 받고, 이 로그정보를 이메일(e-mail)을 통해 상기 관리자 서버로 전송해주는 경보전송수단을 추가로 구비하여 구성되는 것을 특징으로 하는 리눅스 시스템.And receiving alarm information from the kernel that does not satisfy the access rule, and sending the log information to the administrator server through an e-mail. 제 2 항에 있어서 상기 리눅스 운영체제는,The method of claim 2 wherein the Linux operating system, 특정 프로세스의 캐퍼빌리티가 중단금지(un-killable)를 나타내는 캐퍼빌리티인 경우에는 해당 프로세스를 중단시키려는 시도를 무시하는 기능;If the capability of a particular process is a capability indicating un-killable, disregarding an attempt to abort the process; 특정 프로세스의 캐퍼빌리티가 감추기를 나타내는 캐퍼빌리티인 경우에는 프로세스 목록의 디스플레이 기능 수행 중 해당 프로세스를 나타내지 않는 기능; 및When the capability of a specific process is a capability indicating hiding, a function not indicating a corresponding process while performing a display function of a process list; And 특정 프로세스의 캐퍼빌리티가 모듈삽입제한을 의미하는 캐퍼빌리티인 경우에는 커널에의 모듈 삽입 시도가 있을 때 이를 무시하는 기능 중 하나 이상의 기능을 포함하도록 구성되는 것을 특징으로 하는 리눅스 시스템.If the capability of a particular process is a capability that implies a module insertion restriction, the Linux system is configured to include one or more of the functions of ignoring when attempting to insert a module into the kernel. 제 1 항에 있어서 상기 리눅스 운영체제는,The method of claim 1 wherein the Linux operating system, 상기 호스트에서 송수신되는 데이터 패킷을 검사하여 통과가 허용된 패킷일 경우에만 통과시키는 기능을 수행하는 네트워크 보안처리수단을 추가로 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템.And a network security processing means for inspecting the data packet transmitted and received from the host and performing the function of passing the packet only when the packet is allowed to pass. 제 12 항에 있어서 상기 네트워크 보안처리수단은,The method of claim 12, wherein the network security processing means, 상기 관리자 서버로부터 커맨드 라인 인터페이스(CLI) 혹은 웹 그래픽 사용자 인터페이스(Web GUI)를 통해 상기 데이터 패킷의 통과에 관한 규칙을 설정받되, 이 규칙은 별도의 파일에 기록하여 관리하도록 구성되는 것을 특징으로 하는 리눅스 시스템.Receive a rule for passing the data packet through the command line interface (CLI) or Web graphical user interface (Web GUI) from the administrator server, the rule is configured to record and manage in a separate file Linux system. 제 1 항에 있어서 상기 리눅스 운영체제는,The method of claim 1 wherein the Linux operating system, 기 규정된 시간동안 해당 호스트에서 이루어지는 열려있지 않은 포트로의 접속시도가 기 규정된 회수를 넘는 경우에는 그 리스트를 작성하여 상기 로그서버로 전송하는 기능을 추가로 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템.In the case that the attempt to connect to the open port in the host for a predetermined time exceeds the prescribed number of times, Linux is configured to include the function of creating the list and transmitting it to the log server. system. 제 1 항에 있어서,The method of claim 1, 상기 로그서버는 상기 관리용 서버와 웹 그래픽 사용자 인터페이스(Web GUI)를 통해 연동하도록 구성되는 것을 특징으로 하는 리눅스 시스템.The log server is a Linux system, characterized in that configured to interwork with the management server through a Web graphical user interface (Web GUI). 제 15 항에 있어서 상기 로그서버는,The method of claim 15, wherein the log server, 자신이 저장하고 있는 로그정보를 검색하는데 있어서, AND, NOT, OR 중 하나 이상의 검색옵션을 이용하여 검색할 수 있도록 해주는 기능을 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템.Linux system, characterized in that it comprises a function that allows you to search by using one or more of the search options of AND, NOT, OR in searching the log information that is stored. 리눅스 시스템을 운영하는 방법에 있어서,In how to run a Linux system, 각 프로세스별 접근규칙을 설정할 수 있도록 하는 제1 절차;A first procedure for setting access rules for each process; 시스템 자원(resource)에 접근하려는 프로세스(process)가 있는지를 조사하는 제2 절차;A second procedure for examining whether there is a process trying to access a system resource; 상기 조사 결과, 상기 자원에 접근하려는 프로세스가 있는 경우에는 상기 접근규칙을 참조하여 상기 프로세스에게 상기 자원에의 접근이 허용되었는지를 판단하는 제3 절차;A third procedure for determining whether access to the resource is allowed to the process by referring to the access rule when there is a process to access the resource as a result of the investigation; 상기 제3 절차에서의 판단 결과, 접근이 허용되어 있으면 상기 프로세스가 해당 자원에 접근할 수 있도록 허용하는 제4 절차; 및A fourth procedure for allowing the process to access the resource if access is granted as a result of the determination in the third procedure; And 상기 제3 절차에서의 판단 결과, 접근이 허용되어 있지 않은 경우에는 상기 프로세스의 동작을 중단시키고 이에 관한 로그정보를 기록하는 제5 절차를 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.And a fifth step of stopping the operation of the process and recording log information thereof when access is not granted as a result of the determination in the third step. 제 17 항에 있어서,The method of claim 17, 상기 제1 절차에서 설정하는 접근규칙은, 커널(kernel) 자체에 부여되는 캐퍼빌리티(capability)를 기록하는 캐퍼빌리티 파일, 및 각 프로세스에 부여되는 접근규칙을 기록하는 접근제어목록(ACL:Access Control List) 파일에 설정하도록 구성하는 것을 특징으로 하는 리눅스 시스템의 운영방법.The access rule set in the first procedure may include a capability file that records the capability granted to the kernel itself, and an access control list that records the access rules granted to each process. List) A method of operating a Linux system, characterized in that it is configured to set in a file. 제 18 항에 있어서, 상기 접근규칙은 타 컴퓨터 시스템(관리자 서버)으로부터 설정받도록 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.19. The method of claim 18, wherein the access rule is configured to be set from another computer system (administrator server). 제 19 항에 있어서, 상기 관리자 서버와의 인터페이스는 커맨드 라인 인터페이스(CLI) 혹은 웹 스래픽 사용자 인터페이스(Web GUI)를 통해 이루어지도록 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.20. The method of claim 19, wherein the interface with the manager server is configured to be via a command line interface (CLI) or a web traffic user interface (Web GUI). 제 18 항에 있어서 상기 제3 절차는,The method of claim 18, wherein the third procedure, 상기 제2 절차에서 시스템 자원에 접근하고자 하는 프로세스가 커널 자체의 프로세스인지 혹은 개별적인 프로세스인지를 판단하는 단계;Determining whether the process of accessing system resources in the second procedure is a process of the kernel itself or an individual process; 상기 판단 결과, 커널 자체의 프로세스인 경우에는 상기 캐퍼빌리티 중계파일에 기록된 접근규칙을 만족시키는지를 판단하는 단계; 및Determining that the access rule recorded in the capability relay file is satisfied in the case of a process of the kernel itself; And 상기 판단 결과, 개별적인 프로세스인 경우에는 상기 메모리에 로드된 접근제어목록 정보에 규정된 접근규칙을 만족시키는지를 판단하는 단계를 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.And in the case of the individual process, determining whether the access rule defined in the access control list information loaded in the memory is satisfied. 제 18 항에 있어서 상기 접근제어목록 파일은,The method of claim 18, wherein the access control list file, 각 프로세스 명칭;Each process name; 상기 각 프로세스가 접근하려는 객체(Object); 및An object to be accessed by each process; And 상기 객체에 대한 접근유형(Access Type) 정보를 포함하도록 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.Operating method of a Linux system, characterized in that configured to include access type (Access Type) information for the object. 제 22 항에 있어서,The method of claim 22, 상기 객체는 파일/디렉토리 혹은 캐퍼빌리티이고,The object is a file / directory or capability, 상기 접근유형은 상기 파일/디렉토리에 대해서는 읽기 및 쓰기 금지(DENY), 수정금지(READ), 추가만 가능(APPEND), 및 쓰기가능(WRITE) 중 하나 이고, 상기 캐퍼빌리티에 대해서는 상속(INHERIT)과 불상속(NO_INHERIT) 중 하나 이도록 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.The access type is one of read / write prohibited, read only, append only, and writable for the file / directory, and INHERIT for the capability. Operating system, characterized in that it is configured to be one of and NO_INHERIT. 제 17 항에 있어서 상기 제5 절차는,The method of claim 17, wherein 상기 접근규칙을 만족시키지 못한 로그정보를 이메일(e-mail)을 통해 관리자 서버로 전송해주는 절차를 추가로 구비하여 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.And an additional step of transmitting log information that does not satisfy the access rule to an administrator server through an e-mail. 제 17 항에 있어서, 상기 유닉스 시스템의 운영방법은 네트워크 보안절차를 추가로 포함하되, 상기 네트워크 보안 절차는18. The method of claim 17, wherein the operating method of the Unix system further comprises a network security procedure. 데이터 패킷의 통과 규칙을 설정하는 단계;Setting a passing rule of the data packet; 송수신되는 데이터 패킷이 있는지를 조사하는 단계;Examining whether there is a data packet being transmitted or received; 상기 조사 결과, 송수신되는 데이터 패킷이 있는 경우에는 상기 설정된 규칙을 참조하여 통과시킬 것인지를 판단하는 단계; 및Determining whether to pass the data packet transmitted or received with reference to the set rule as a result of the investigation; And 상기 판단 결과, 통과가 허용된 경우에는 해당 데이터 패킷을 그 방향으로 통과시키되, 그렇지 않은 경우에는 드롭(drop) 시키는 단계를 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.If it is determined that the pass is allowed, pass the corresponding data packet in the direction; otherwise, drop the data packet. 제 25 항에 있어서, 상기 데이터 패킷의 통과 규칙은 관리자 서버를 통해 설정되도록 하되, 상기 관리자 서버와의 인터페이스는 커맨드 라인 인터페이스(CLI) 혹은 웹 그래픽 사용자 인터페이스(Web GUI)를 통해 이루어지도록 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.26. The method of claim 25, wherein a rule for passing the data packet is configured through an administrator server, wherein the interface with the administrator server is configured through a command line interface (CLI) or a web graphical user interface (Web GUI). Features of operating a Linux system. 제 25 항에 있어서 상기 네트워크 보안절차는,The method of claim 25, wherein the network security procedure, 열려있지 않은 포트로의 접속시도가 있는지를 조사하는 단계;Examining whether there is a connection attempt to a port that is not open; 상기 조사 결과 접속시도가 있는 경우에는 이 접속시도가 기 규정된 시간동안 기 규정된 회수를 넘는지를 판단하는 단계; 및Determining whether the connection attempt exceeds a predetermined number of times for a predetermined time when there is a connection attempt as a result of the investigation; And 상기 판단 결과, 그 회수를 넘는 경우에는 규정된 로그서버로 이를 통보하는 단계를 추가로 포함하여 구성되는 것을 특징으로 하는 리눅스 시스템의 운영방법.And as a result of the determination, if the number of times is exceeded, notifying the prescribed log server.
KR10-2001-0015693A 2001-03-26 2001-03-26 Linux System and Operating Method of the Linux System having improved access control function KR100396308B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0015693A KR100396308B1 (en) 2001-03-26 2001-03-26 Linux System and Operating Method of the Linux System having improved access control function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0015693A KR100396308B1 (en) 2001-03-26 2001-03-26 Linux System and Operating Method of the Linux System having improved access control function

Publications (2)

Publication Number Publication Date
KR20020075601A KR20020075601A (en) 2002-10-05
KR100396308B1 true KR100396308B1 (en) 2003-09-03

Family

ID=27698724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0015693A KR100396308B1 (en) 2001-03-26 2001-03-26 Linux System and Operating Method of the Linux System having improved access control function

Country Status (1)

Country Link
KR (1) KR100396308B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713586B1 (en) * 2005-05-30 2007-05-02 뉴21커뮤니티(주) File link tracking web-server hosting method
KR100990188B1 (en) 2006-01-17 2010-10-29 노키아 코포레이션 A method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may be booted from

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100443971B1 (en) * 2001-12-20 2004-08-11 강현선 Apparatus for storing log data and method thereof
KR100404051B1 (en) * 2001-12-27 2003-11-05 한국전자통신연구원 A Method for Operating and Managing the ATM-PON system based on Web by TCP/IP
KR20030060306A (en) * 2002-01-08 2003-07-16 신중호 Using object module, active customized firewall
KR20040007128A (en) * 2002-07-16 2004-01-24 임창수 computer with freshweb OS and the method controlling the same
KR100657353B1 (en) * 2005-07-26 2006-12-14 (주)안랩시큐브레인 Security system and method for supporting a variety of access control policies, and recordable medium thereof
KR100915803B1 (en) * 2006-12-05 2009-09-07 한국전자통신연구원 Application Program Launching Method and System for Improving Security of Embedded Linux Kernel
KR101033932B1 (en) * 2007-10-12 2011-05-11 한국전자통신연구원 Apparatus and method for monitor and protect system resources from web browsers
US8336097B2 (en) 2007-10-12 2012-12-18 Electronics And Telecommunications Research Institute Apparatus and method for monitoring and protecting system resources from web browser
CN113268274B (en) * 2021-05-18 2024-06-21 深圳市广和通无线股份有限公司 Operating system starting method and device, electronic equipment and storage medium
KR102656871B1 (en) * 2023-07-04 2024-04-12 인스피언 주식회사 Data management device, data management method and a computer-readable storage medium for storing data management program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713586B1 (en) * 2005-05-30 2007-05-02 뉴21커뮤니티(주) File link tracking web-server hosting method
KR100990188B1 (en) 2006-01-17 2010-10-29 노키아 코포레이션 A method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may be booted from

Also Published As

Publication number Publication date
KR20020075601A (en) 2002-10-05

Similar Documents

Publication Publication Date Title
CN109766699B (en) Operation behavior intercepting method and device, storage medium and electronic device
RU2714607C2 (en) Double self-test of memory for protection of multiple network endpoints
US10554475B2 (en) Sandbox based internet isolation in an untrusted network
US10558798B2 (en) Sandbox based Internet isolation in a trusted network
US11184323B2 (en) Threat isolation using a plurality of containers
US7725558B2 (en) Distributive access controller
Lockhart Network Security Hacks: Tips & Tools for Protecting Your Privacy
US9590993B2 (en) Filtering kernel-mode network communications
US8893300B2 (en) Security systems and methods to reduce data leaks in enterprise networks
US9213836B2 (en) System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US20090222907A1 (en) Data and a computer system protecting method and device
US7712135B2 (en) Pre-emptive anti-virus protection of computing systems
US20060026683A1 (en) Intrusion protection system and method
US9928359B1 (en) System and methods for providing security to an endpoint device
KR100396308B1 (en) Linux System and Operating Method of the Linux System having improved access control function
WO2007135672A2 (en) Method and system for defending security application in a user's computer
US20180026986A1 (en) Data loss prevention system and data loss prevention method
CN111131244A (en) Method and system for preventing malicious content from infecting website page and storage medium
KR20040065674A (en) Host-based security system and method
CN116566747A (en) Safety protection method and device based on industrial Internet
Fenzi et al. Linux security HOWTO
KR20100067383A (en) Server security system and server security method
US20230418933A1 (en) Systems and methods for folder and file sequestration
Both Managing the Firewall
Gheorghe " COBOT" TYPE MULTIAPLICATIVE INTELLIGENT PLATFORM WITH ROBOT & HEXAPOD MICROSYSTEM AND ULTRAPRECIS PING PROBE FOR MEASURING PARTS (WITH A 3KG TABLE)

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: 20080820

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee