KR100344977B1 - Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system - Google Patents

Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system Download PDF

Info

Publication number
KR100344977B1
KR100344977B1 KR1019990051984A KR19990051984A KR100344977B1 KR 100344977 B1 KR100344977 B1 KR 100344977B1 KR 1019990051984 A KR1019990051984 A KR 1019990051984A KR 19990051984 A KR19990051984 A KR 19990051984A KR 100344977 B1 KR100344977 B1 KR 100344977B1
Authority
KR
South Korea
Prior art keywords
system call
user
information
call
database
Prior art date
Application number
KR1019990051984A
Other languages
Korean (ko)
Other versions
KR20010047670A (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 KR1019990051984A priority Critical patent/KR100344977B1/en
Publication of KR20010047670A publication Critical patent/KR20010047670A/en
Application granted granted Critical
Publication of KR100344977B1 publication Critical patent/KR100344977B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

본 발명에 따른 유닉스 운영 체제의 시스템 호출 제어 방법 및 동적 커널 변경 방법은, (a)사용자 프로세스에서 시스템 호출을 요청하는 단계; (b)시스템 호출 벡터 테이블의 검색을 통하여, 요청된 시스템 호출이 가로챌 시스템 호출인지를 판단하는 단계; (c)요청된 호출이 가로챌 시스템 호출인 경우에, 대체 시스템 호출 처리기가 시스템 자원에 대한 사용자의 접근 권한 정보를, 통신 인터페이스를 통하여, 데이터베이스에 요청하는 단계; (d)데이터베이스가 시스템 자원에 대한 사용자의 접근 권한 여부를 검색하고, 그 결과를 대체 시스템 호출 처리기에 제공하는 단계; 및 (e)시스템 자원에 대한 사용자의 접근 권한이 있는 경우에는, 대체 시스템 호출 처리기가 원형 시스템 호출을 수행하고, 시스템 자원에 대한 사용자의 접근 권한이 없는 경우에는, 사용자 프로세스에 시스템 호출의 수행 거부를 알리는 단계를 포함한다.System call control method and dynamic kernel change method of the Unix operating system according to the present invention, (a) requesting a system call in the user process; (b) determining, via a search of the system call vector table, whether the requested system call is a system call to intercept; (c) if the requested call is a system call to intercept, requesting, by the alternate system call handler, the database, via the communication interface, the user's access rights information to the system resource; (d) the database retrieving whether the user has access to system resources and providing the results to the alternative system call handler; And (e) if the user has access to the system resource, the alternate system call handler performs the prototype system call, and if the user does not have access to the system resource, refuse to perform the system call to the user process. Informing the step.

이와 같은 본 발명에 의하면, 시스템 호출을 가로채는 기술을 사용함으로써, 시스템 호출 단위의 사용자 접근 제어를 통해 시스템 자원에 대한 사용자의 모든 접근을 제어할 수 있다. 또한 시스템 호출을 가로채는 기술을 사용함에 있어서, 운영 체제의 코드 수정없이 운영 체제의 커널 수준에서 시스템에 관한 모든 접근을 제어할 수 있는 장점이 있다.According to the present invention, by using the technique of intercepting the system call, it is possible to control all the user's access to the system resources through the user access control of the system call unit. In addition, the technique of intercepting system calls has the advantage of controlling all access to the system at the kernel level of the operating system without modifying the operating system code.

Description

유닉스 운영 체제의 시스템 호출 제어 방법 및 동적 커널 변경 방법{Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system}Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system}

본 발명은 컴퓨터 시스템에 있어서의 유닉스 운영 체제(UNIX operating system)의 시스템 호출(system call) 제어 방법 및 동적(dynamical) 커널(kernel) 변경 방법에 관한 것으로서, 특히 시스템 호출 단위의 사용자 접근 제어를 통해 시스템 자원에 대한 사용자의 모든 접근을 제어할 수 있으며, 시스템 호출을 가로채는 기술을 사용함으로써, 운영 체제의 코드(code) 수정없이 운영 체제의 커널 수준에서 시스템에 관한 모든 접근을 제어할 수 있는 유닉스 운영 체제의 시스템 호출 제어 방법 및 동적 커널 변경 방법에 관한 것이다.The present invention relates to a method of controlling a system call of a UNIX operating system and a method of changing a dynamic kernel in a computer system, and in particular, through a user access control of a system call unit. Unix operations that can control all user access to system resources, and use technology to intercept system calls, thereby controlling all access to the system at the kernel level of the operating system without modifying the operating system code. It relates to a system call control method of a system and a dynamic kernel change method.

일반적으로, 유닉스 운영 체제는 다중 사용자/다중 작업을 지원하는 대화식 운영 체제로서, 중대형 컴퓨터의 운영 체계로 많이 사용되고 있으며, 요즘은 개인용 컴퓨터의 운영 체제로도 사용되고 있는 실정이다. 유닉스 운영 체제는 다중 사용자를 지원하기 때문에, 사용자가 시스템에 접속하기 위해서는 사용자 아이디(ID)와 암호(password)를 입력하여 승인을 받는 절차를 거쳐야 한다. 또한, 접속에 대한 승인 뿐만이 아니라, 화일(file), 프로세스(process), 네트워크 채널(network channel) 등의 시스템 자원에 대한 접근에 있어서도 사용자에 따른 접근 승인이 다르게 설정이 되어 있어서, 똑같은 시스템 자원에 대한 접근이라 할지라도, 사용자에 따라서 접근이 허용되기도 하고 거부되기도 한다.In general, the Unix operating system is an interactive operating system supporting multi-user / multi-tasking, and is widely used as an operating system for medium and large computers, and nowadays, it is also used as an operating system for a personal computer. Unix operating systems support multiple users, so users must enter a user ID and password to gain access to the system. In addition to access approval, access authorization by user is set differently for access to system resources such as file, process, network channel, and so on. Even for access, access may be granted or denied depending on the user.

하나의 예로서, 화일에 대한 사용자 접근 승인의 경우를 나누어 보면, 화일에 대한 접근 자체가 사용자에 따라서 원천적으로 거부될 수도 있으며, 또는 사용자에 따라서 화일을 읽을 수만 있도록 승인될 수도 있고, 화일을 읽는 것과 쓰는 것을 모두 할 수 있도록 허용될 수도 있다.As an example, splitting the case of granting user access to a file may mean that access to the file itself may be denied by the user, or that the user may be authorized to read the file or read the file. You may be allowed to do both things and write.

한편, 유닉스 운영 체제에서 시스템 호출의 처리는, 커널내 시스템 호출 벡터 테이블(system call vector table)에 시스템 호출 처리기가 등록되어 있고, 사용자 프로세스(user process)에서 시스템 호출을 요청할 때, 등록된 시스템 호출 처리기를 수행함으로써 처리된다. 따라서 이러한 시스템 호출의 제어를 통하여, 시스템 자원에 대한 사용자의 접근을 제어할 수 있는 방법에 관한 연구가 진행되고 있으며, 또한 커널 영역을 확장함에 있어서, 기존 커널이 손상되지 않도록 소스 코딩(source coding)없이 동적 커널 변경 방법을 이용하는 것에 관한 연구가 진행되고 있다.On the other hand, in the Unix operating system, the system call handler is registered in the in-kernel system call vector table, and when the user process requests a system call, the registered system call is registered. It is handled by running a processor. Therefore, research on how to control the user's access to system resources through the control of such system calls, and also in the expansion of the kernel area, source coding (source coding) so that the existing kernel is not damaged A study on using a dynamic kernel change method without this is ongoing.

본 발명은 상기와 같은 유닉스 운영 체제의 사용환경을 고려하여 창출된 것으로서, 시스템 호출을 가로채는 기술을 사용함으로써, 시스템 호출 단위의 사용자 접근 제어를 통해 시스템 자원에 대한 사용자의 모든 접근을 제어할 수 있는 유닉스 운영 체제의 시스템 호출 제어 방법을 제공함에 그 목적이 있다.The present invention has been created in consideration of the environment of use of the Unix operating system as described above, and by using a technique of intercepting system calls, the user can control all accesses to system resources through user access control on a system call basis. Its purpose is to provide a system call control method for Unix operating systems.

또한, 시스템 호출을 가로채는 기술을 사용함에 있어서, 운영 체제의 코드 수정없이 운영 체제의 커널 수준에서 시스템에 관한 모든 접근을 제어할 수 있는 유닉스 운영 체제의 동적 커널 변경 방법을 제공함에 다른 목적이 있다.In addition, the use of the technique of intercepting system calls has another purpose to provide a dynamic kernel change method of the Unix operating system that can control all access to the system at the kernel level of the operating system without modifying the operating system code.

도 1은 본 발명에 따른 시스템 호출 제어 및 동적 커널 변경 시스템의 기능적인 구성을 하드웨어적으로 개념화하여 나타낸 블록도.1 is a block diagram conceptualizing the functional configuration of the system call control and dynamic kernel change system according to the present invention.

도 2는 본 발명에 따른 시스템 호출 제어 방법에 의하여 수행되는 시스템 자원에 대한 사용자의 접근 제어 과정을 나타낸 플로우 챠트.2 is a flowchart illustrating a process of controlling a user's access to system resources performed by a system call control method according to the present invention.

도 3은 본 발명에 따른 커널 영역의 통신 인터페이스와 사용자 영역의 데이터베이스 사이의 통신 과정을 나타낸 플로우 챠트.3 is a flowchart illustrating a communication process between a communication interface of a kernel region and a database of a user region according to the present invention.

도 4는 본 발명에 따른 인터셉트 엔진을 초기화하는 동적 커널 변경 과정을 나타낸 플로우 챠트.4 is a flow chart illustrating a dynamic kernel change process for initializing an intercept engine in accordance with the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100... 커널 영역 110... 사용자 영역100 ... Kernel Zones 110 ... User Zones

111... 데이터베이스 112... 초기화 모듈111 ... Database 112 ... Initialization Module

113... 사용자 프로세스 120... 인터셉트 엔진113 ... User Process 120 ... Intercept Engine

121... 대체 시스템 호출 처리기 122... 통신 인터페이스121 ... Alternate system call handler 122 ... Communication interface

123... 시스템 호출 리스트 130... 시스템 호출 벡터 테이블123 ... System call list 130 ... System call vector table

상기의 목적을 달성하기 위하여 본 발명에 따른 유닉스 운영 체제의 시스템 호출 제어 방법은, 시스템 호출(system call)을 요청하는 사용자 영역(user space)의 사용자 프로세스(user process)와; 상기 사용자 프로세스로부터 요청된 시스템 호출이 가로챌 시스템 호출인지를 판단하는 정보가 저장된 커널 영역(kernel space)의 시스템 호출 벡터 테이블(system call vector table)과; 상기 시스템 호출이 가로챌 시스템 호출인 경우에, 상기 시스템 호출을 수행하는 상기 커널 영역의 대체 시스템 호출 처리기와; 시스템 자원에 대한 사용자의 접근 권한 정보가 저장된 상기 사용자 영역의 데이터베이스(database); 및 상기 대체 시스템 호출 처리기로부터 시스템 자원에 대한 사용자의 접근 권한 정보를 요청하는 통신을 상기 데이터베이스로 전달하는 상기 커널 영역의 통신 인터페이스(interface)를 구비하는 유닉스(UNIX) 운영 체제(operating system)에 있어서,In order to achieve the above object, a system call control method of a Unix operating system according to the present invention includes: a user process in a user space for requesting a system call; A system call vector table in a kernel space storing information for determining whether a system call requested from the user process is a system call to be intercepted; An alternate system call handler for the kernel region that performs the system call if the system call is a system call to intercept; A database of the user area storing user access authority information on system resources; And a communication interface in the kernel region for communicating a communication requesting user access right information on system resources from the alternate system call processor to the database. ,

(a) 상기 사용자 프로세스에서 시스템 호출을 요청하는 단계;(a) requesting a system call in the user process;

(b) 상기 시스템 호출 벡터 테이블의 검색을 통하여, 상기 요청된 시스템 호출이 가로챌 시스템 호출인지를 판단하는 단계;(b) determining, by searching the system call vector table, whether the requested system call is a system call to intercept;

(c) 상기 요청된 호출이 가로챌 시스템 호출인 경우에, 상기 대체 시스템 호출 처리기가 시스템 자원에 대한 사용자의 접근 권한 정보를, 상기 통신 인터페이스를 통하여, 상기 데이터베이스에 요청하는 단계;(c) if the requested call is a system call to intercept, requesting, by the alternate system call handler, the database, via the communication interface, the user's access rights information to a system resource;

(d) 상기 데이터베이스가 시스템 자원에 대한 사용자의 접근 권한 여부를 검색하고, 그 결과를 상기 대체 시스템 호출 처리기에 제공하는 단계; 및(d) the database retrieving whether the user has access to system resources and providing the results to the alternate system call handler; And

(e) 시스템 자원에 대한 사용자의 접근 권한이 있는 경우에는, 대체 시스템호출 처리기가 원형 시스템 호출을 수행하고, 시스템 자원에 대한 사용자의 접근 권한이 없는 경우에는, 상기 사용자 프로세스에 시스템 호출의 수행 거부를 알리는 단계를 포함하는 점에 그 특징이 있다.(e) if the user has access to a system resource, the alternate system call handler performs the prototype system call, and if the user does not have access to the system resource, refuse to perform the system call to the user process. It is characterized in that it comprises a step of notifying.

여기서, 특히 상기 단계 (c) 및 단계 (d)에서 상기 커널 영역의 통신 인터페이스와 상기 사용자 영역의 데이터베이스 사이에, 시스템 자원에 대한 사용자의 접근 권한 정보를 요청하고, 제공하는 통신 방법에 있어서,In particular, in the steps (c) and (d), a communication method for requesting and providing user access authority information on system resources between the communication interface of the kernel region and the database of the user region,

상기 통신 인터페이스가 유닉스의 시그널(signal) 방식을 이용하여, 상기 데이터베이스로 통신 시작 신호을 보내고, 상태 변수를 "정보 요청"으로 전환하는 단계와; 상기 데이터베이스가, 상기 통신 인터페이스에 등록되어 있는 통신용 시스템 호출을 통하여, 상기 통신 인터페이스에 상기 가로채어진 시스템 호출에 대한 정보를 요청하는 단계와; 상기 통신 인터페이스가 상기 가로채어진 시스템 호출에 대한 정보를 상기 데이터베이스로 전송하고, 상기 상태 변수가 "정보 송신"이 될 때까지 대기하는 단계와; 상기 데이터베이스가 상기 가로채어진 시스템 호출에 대한 사용자의 접근 권한 정보를 획득하는 단계와; 상기 데이터베이스가, 상기 통신 인터페이스에 등록되어 있는 통신용 시스템 호출을 통하여, 상기 통신 인터페이스에 상기 획득한 사용자 권한 정보를 전송한 후, 상태 변수를 "정보 송신"으로 전환하는 단계와; 상기 통신 인터페이스가 상기 데이터베이스로부터 전송된 정보를 수신하는 단계; 및 상기 통신 인터페이스가 상태 변수를 "통신대기"로 전환하고, 상기 데이터베이스에 통신종료를 알리는 단계를 포함하는 점에 그 특징이 있다.Sending, by the communication interface, a communication start signal to the database using a signal method of Unix, and converting a state variable to an "information request"; Requesting, by the database, information about the intercepted system call from the communication interface through a system call for communication registered with the communication interface; The communication interface sending information about the intercepted system call to the database and waiting for the state variable to be " send information "; Obtaining access rights information of a user for the intercepted system call by the database; Sending, by the database, the acquired user right information to the communication interface through a system call for communication registered in the communication interface, and then converting a state variable to "send information"; The communication interface receiving information sent from the database; And the communication interface converts the state variable to "waiting for communication" and notifies the database of the completion of communication.

또한, 상기의 다른 목적을 달성하기 위한 본 발명에 따른 유닉스 운영 체제의 동적 커널 변경 방법은, 사용자 프로세스로부터 요청된 시스템 호출이, 가로챌 시스템 호출인지의 여부를 판단하는 정보가 저장된 커널 영역의 시스템 호출 벡터 테이블과; 상기 시스템 호출 벡터 테이블의 상기 판단 정보를, 운영 체계의 부팅 (booting)시에, 초기화하는 사용자 영역의 초기화 모듈(module)을 구비하는 유닉스 운영 체제에 있어서,In addition, the dynamic kernel change method of the Unix operating system according to the present invention for achieving the above another object is a system of the kernel region in which information for determining whether a system call requested from a user process is a system call to intercept; A call vector table; In the Unix operating system having a user area initialization module for initializing the determination information of the system call vector table at the time of booting an operating system,

(a) 상기 유닉스 운영 체제를 부팅하는 단계;(a) booting the Unix operating system;

(b) 상기 커널 영역에 대체 시스템 호출 처리기를 적재하는 단계;(b) loading an alternate system call handler in the kernel region;

(c) 적재된 상기 대체 시스템 호출 처리기의 위치정보로부터 시스템 호출 리스트(system call list)를 작성하여 상기 커널 영역에 적재하는 단계;(c) creating a system call list from the loaded position information of the substitute system call processor and loading the kernel call into the kernel region;

(d) 상기 커널 영역의 시스템 호출 벡터 테이블의 정보를 읽어 들이는 단계;(d) reading information of a system call vector table of the kernel region;

(e) 상기 시스템 호출 벡터 테이블의 정보와 상기 시스템 호출 리스트의 정보를 비교하여, 가로챌 시스템 호출을 검색하는 단계;(e) comparing the information in the system call vector table with the information in the system call list to retrieve a system call to intercept;

(f) 상기 단계 (e)에서 가로챌 시스템 호출이 검색되면, 상기 시스템 호출 벡터 테이블이 가지고 있는 상기 가로챌 시스템 호출의 위치정보를 상기 대체 시스템 호출 처리기의 위치정보로 변경하는 단계; 및(f) if the intercepted system call is retrieved in step (e), changing the location information of the intercepted system call in the system call vector table to the location information of the substitute system call handler; And

(g) 상기 변경된 시스템 호출 벡터 테이블을 상기 커널 영역에 저장하는 단계를 포함하는 점에 그 특징이 있다.(g) storing the modified system call vector table in the kernel region.

이와 같은 본 발명에 의하면, 시스템 호출을 가로채는 기술을 사용함으로써, 시스템 호출 단위의 사용자 접근 제어를 통해 시스템 자원에 대한 사용자의 모든 접근을 제어할 수 있다. 또한 시스템 호출을 가로채는 기술을 사용함에 있어서, 운영 체제의 코드 수정없이 운영 체제의 커널 수준에서 시스템에 관한 모든 접근을 제어할 수 있는 장점이 있다.According to the present invention, by using the technique of intercepting the system call, it is possible to control all the user's access to the system resources through the user access control of the system call unit. In addition, the technique of intercepting system calls has the advantage of controlling all access to the system at the kernel level of the operating system without modifying the operating system code.

이하 첨부된 도면을 참조하면서 본 발명의 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 시스템 호출 제어 및 동적 커널 변경 시스템의 기능적인 구성을 하드웨어적으로 개념화하여 나타낸 블록도이고, 도 2는 본 발명에 따른 시스템 호출 제어 방법에 의하여 수행되는 시스템 자원에 대한 사용자의 접근 제어 과정을 나타낸 플로우 챠트이다.1 is a block diagram illustrating the functional configuration of the system call control and dynamic kernel change system according to the present invention in a hardware concept, Figure 2 is a user for system resources performed by the system call control method according to the present invention A flow chart showing the access control process of.

Entry call Args mp-safe intr Entry call Entry : 시스템 호출 번호call : 대체 시스템 호출 처리기의 주소 정보이러한 유닉스 운영 체제에서 설치시에 시스템 호출 리스트의 호(call) 항목 데이터와 시스템 호출 벡터 테이블(130)의 호의 데이터를 변경한다. 그러면, 상기와 같이 사용자가 시스템 호출을 수행할 때, 자동으로 대체 시스템 호출 처리기(121)가 수행된다. 즉, 시스템 호출 벡터 테이블(130)이 추가되는 것이 아니라, 호 항목의 데이터만 수정된다. Entry call Args mp-safe intr Entry call Entry: system call number call: address information of an alternate system call handler At installation of such a Unix operating system, call item data of a system call list and data of a call of a system call vector table 130 are changed. Then, when the user performs the system call as described above, the replacement system call handler 121 is automatically performed. That is, the system call vector table 130 is not added, but only the data of the call item is modified.

사용자가 시스템 호출을 요청하면, 시스템 호출 처리기에 의해 대체 시스템 호출 처리기(121)가 수행되고, 대체 시스템 호출 처리기(121)는 시스템 호출 리스트를 검색해서 원래의 시스템 호출 처리를 수행하게 된다.한편, 도 3은 본 발명에 따른 커널 영역의 통신 인터페이스와 사용자 영역의 데이터베이스 사이의 통신 과정을 나타낸 플로우 챠트이다.When the user requests a system call, the alternative system call handler 121 is executed by the system call handler, and the alternative system call handler 121 retrieves the system call list and performs the original system call processing. 3 is a flowchart illustrating a communication process between a communication interface of a kernel region and a database of a user region according to the present invention.

도 1과 도 3을 참조하여, 본 발명의 제 2실시 예인 커널 영역(100)의 통신 인터페이스(122)와 사용자 영역(110)의 데이터베이스(111) 사이의 통신 과정을 설명하기로 한다. "통신 대기"(단계 311) 상태에서, 상기 통신 인터페이스(122)가 유닉스의 시그널(signal) 방식을 이용하여, 시스템 자원에 대한 사용자 권한 정보를 요청하는 통신 시작 신호를 상기 데이터베이스(111)로 보내고(단계 321), 상태 변수를 "정보 요청"으로 전환시킨다(단계 312). 이에 따라, "통신 대기"(단계 331) 상태에 있던 상기 데이터베이스(222)는 상기 통신 인터페이스(122)에 등록되어 있는 통신용 시스템 호출을 통하여, 가로채어진 시스템 호출에 대한 정보 송신을 상기 통신 인터페이스(122)에 요청한다(단계 332). 그러면, 상기 통신 인터페이스 (122)는 시스템 호출에 대한 정보, 예컨대 사용자, 프로세스, 시스템 자원 등의 정보를 상기 데이터베이스(111)로 전송하고(단계 322), 상태 변수가 "정보 송신"이 될 때까지 대기한다(단계 323). 한편, 상기 데이터베이스(111)는 자료 검색을 통하여, 가로채어진 시스템 호출에 대한 사용자의 접근 권한 정보를 획득하고(단계 333), 그 결과를 상기 통신 인터페이스(122)에 전송한 후(단계 334)에, 통신 상태변수를 "정보 송신"으로 전환한다(단계 313). 이에 따라, 상기 통신 인터페이스 (122)가 전송된 사용자 권한 정보를 수신하고(단계 324), 상기 데이터베이스(111)에 통신 종료를 알리고 상태 변수를 "통신 대기"로 전환한다. 그러면, 상기 데이터베이스 (111)는 상기 통신 인터페이스(122)의 통신 종료 송신에 따라 다시 "통신 대기" 상태로 전환된다.1 and 3, a communication process between the communication interface 122 of the kernel region 100 and the database 111 of the user region 110 according to the second embodiment of the present invention will be described. In the "waiting for communication" state (step 311), the communication interface 122 sends a communication start signal to the database 111 requesting user authority information on a system resource using a signal method of Unix. (Step 321), the state variable is switched to " information request " (step 312). Accordingly, the database 222 in the "communication waiting" (step 331) state transmits information on the intercepted system call through the communication system call registered in the communication interface 122. 122) (step 332). The communication interface 122 then transmits information about a system call, such as information about a user, process, system resource, etc. to the database 111 (step 322), until the status variable is " send information ". Wait (step 323). On the other hand, the database 111 obtains the user's access authority information on the intercepted system call through data search (step 333), and transmits the result to the communication interface 122 (step 334). Next, the communication state variable is switched to " send information " (step 313). Accordingly, the communication interface 122 receives the transmitted user right information (step 324), notifies the database 111 of the end of the communication and switches the state variable to "waiting for communication". Then, the database 111 switches back to the "waiting for communication" state in accordance with the communication end transmission of the communication interface 122.

한편, 도 4는 본 발명에 따른 인터셉트 엔진을 초기화하는 동적 커널 변경 과정을 나타낸 플로우 챠트이다.Meanwhile, FIG. 4 is a flowchart illustrating a dynamic kernel change process for initializing the intercept engine according to the present invention.

도 1과 도 4를 참조하여, 본 발명의 제 3실시 예인 사용자 영역(110)의 초기화 모듈(112)이 커널영역(100)의 인터셉트 엔진(120)을 초기화하는 동적 커널 변경 과정을 설명하기로 한다. 도 1에 인터셉트 엔진의 초기화과정에 따른 데이터와 제어의 흐름이 일점쇄선으로 표시되었다. 컴퓨터를 사용하기 위하여, 유닉스 운영 체계가 부팅되면(단계 401), 상기 커널 영역(110)에 대체 시스템 호출 처리기(121)가 적재된다(단계 402). 그러면, 상기 대체 시스템 호출 처리기(121)의 위치정보로부터 시스템 호출 리스트(123)가 작성되어 상기 커널 영역(100)에 적재된다(단계 403). 한편 상기 초기화 모듈(112)은 상기 커널 영역(100)의 시스템 호출 벡터 테이블(130)에 있는 시스템 호출의 정보를 읽어 들이고(단계 404), 상기 시스템 호출 리스트(123)의 시스템 호출 정보와 비교하여, 가로챌 시스템 호출의 존재 여부를 검색한다(단계 405). 이때, 가로챌 시스템 호출이 검색되면, 상기 시스템 호출 벡터 테이블(130)이 가지고 있는 원형 시스템 호출 처리기의 위치정보가 상기 대체 시스템 호출 처리기(121)의 위치정보로 변경된다(단계 406). 한편, 원형 시스템 호출 처리기의 위치정보는 상기 시스템 호출 리스트(123)에 보관된다. 여기서, 상기 시스템 호출 벡터 테이블(130)의 정보 변경과 상기 시스템 호출 리스트(123)의 정보 변경은 사용자 영역(110)에서 임시적으로 이루어지는 것이다. 이와 같이, 하나의 시스템 호출에 대한 변경 작업이 완료되면, 시스템 호출 리스트(123)에 가로챌 시스템 호출이 더 있는지 확인한다(단계 407). 이때, 가로챌 시스템 호출이 더 존재하면, 상기 단계 405, 단계 406 및 단계 407의 작업이 반복적으로 수행되며, 가로챌 시스템 호출이 더이상 존재하지 않으면, 상기 시스템 호출 벡터 테이블(130)이 상기 커널 영역(100)에 저장된다(단계 408). 그리고, 상기 시스템 호출 리스트 (123)도 상기 커널 영역(100)에 저장됨으로써, 원형 시스템 호출기의 위치정보를 알 수 있게 된다.1 and 4, a dynamic kernel change process for initializing the intercept engine 120 of the kernel region 100 by the initialization module 112 of the user region 110, which is a third embodiment of the present invention, will be described. do. In FIG. 1, data and control flows according to the initialization process of the intercept engine are indicated by a dashed line. To use the computer, when the Unix operating system boots (step 401), an alternate system call handler 121 is loaded in the kernel region 110 (step 402). Then, a system call list 123 is created from the positional information of the substitute system call processor 121 and loaded into the kernel area 100 (step 403). Meanwhile, the initialization module 112 reads the information of the system call in the system call vector table 130 of the kernel region 100 (step 404), and compares it with the system call information of the system call list 123. In step 405, the system call retrieves the presence of the intercepted system call. At this time, when a system call to be intercepted is found, the position information of the prototype system call processor included in the system call vector table 130 is changed to the position information of the substitute system call processor 121 (step 406). Meanwhile, the location information of the prototype system call processor is stored in the system call list 123. Here, the change of the information of the system call vector table 130 and the change of the information of the system call list 123 are made temporarily in the user area 110. As such, once the change to one system call is complete, the system call list 123 checks if there are more system calls to intercept (step 407). At this time, if there are further system calls to be intercepted, the operations of steps 405, 406 and 407 are repeatedly performed, and if the system calls to be intercepted no longer exist, the system call vector table 130 enters the kernel region. It is stored at 100 (step 408). In addition, the system call list 123 is also stored in the kernel region 100, so that location information of the prototype system pager can be known.

이상의 설명에서와 같이, 본 발명에 따른 유닉스 운영 체제의 시스템 호출 제어 방법 및 동적 커널 변경 방법은, 시스템 호출을 가로채는 기술을 사용함으로써, 시스템 호출 단위의 사용자 접근 제어를 통해 시스템 자원에 대한 사용자의 모든 접근을 제어할 수 있다. 또한 시스템 호출을 가로채는 기술을 사용함에 있어서, 운영 체제의 코드 수정없이 운영 체제의 커널 수준에서 시스템에 관한 모든 접근을 제어할 수 있는 장점이 있다.As described above, the system call control method and the dynamic kernel change method of the Unix operating system according to the present invention, by using the technique of intercepting the system call, through the user access control of the system call unit, all of the user to the system resources You can control access. In addition, the technique of intercepting system calls has the advantage of controlling all access to the system at the kernel level of the operating system without modifying the operating system code.

Claims (3)

시스템 호출(system call)을 요청하는 사용자 영역(user space)의 사용자 프로세스(user process)와; 상기 사용자 프로세스로부터 요청된 시스템 호출이 가로챌 시스템 호출인지를 판단하는 정보가 저장된 커널 영역(kernel space)의 시스템 호출 벡터 테이블(system call vector table)과; 상기 시스템 호출이 가로챌 시스템 호출인 경우에, 상기 시스템 호출을 수행하는 상기 커널 영역의 대체 시스템 호출 처리기와; 시스템 자원에 대한 사용자의 접근 권한 정보가 저장된 상기 사용자 영역의 데이터베이스(database); 및 상기 대체 시스템 호출 처리기로부터 시스템 자원에 대한 사용자의 접근 권한 정보를 요청하는 통신을 상기 데이터베이스로 전달하는 상기 커널 영역의 통신 인터페이스(interface)를 구비하는 유닉스(UNIX) 운영 체제(operating system)에 있어서,A user process in a user space for requesting a system call; A system call vector table in a kernel space storing information for determining whether a system call requested from the user process is a system call to be intercepted; An alternate system call handler for the kernel region that performs the system call if the system call is a system call to intercept; A database of the user area storing user access authority information on system resources; And a communication interface in the kernel region for communicating a communication requesting user access right information on system resources from the alternate system call processor to the database. , (a) 상기 사용자 프로세스에서 시스템 호출을 요청하는 단계;(a) requesting a system call in the user process; (b) 상기 시스템 호출 벡터 테이블의 검색을 통하여, 상기 요청된 시스템 호출이 가로챌 시스템 호출인지를 판단하는 단계;(b) determining, by searching the system call vector table, whether the requested system call is a system call to intercept; (c) 상기 요청된 호출이 가로챌 시스템 호출인 경우에, 상기 대체 시스템 호출 처리기가 시스템 자원에 대한 사용자의 접근 권한 정보를, 상기 통신 인터페이스를 통하여, 상기 데이터베이스에 요청하는 단계;(c) if the requested call is a system call to intercept, requesting, by the alternate system call handler, the database, via the communication interface, the user's access rights information to a system resource; (d) 상기 데이터베이스가 시스템 자원에 대한 사용자의 접근 권한 여부를 검색하고, 그 결과를 상기 대체 시스템 호출 처리기에 제공하는 단계; 및(d) the database retrieving whether the user has access to system resources and providing the results to the alternate system call handler; And (e) 시스템 자원에 대한 사용자의 접근 권한이 있는 경우에는, 대체 시스템 호출 처리기가 원형 시스템 호출을 수행하고, 시스템 자원에 대한 사용자의 접근 권한이 없는 경우에는, 상기 사용자 프로세스에 시스템 호출의 수행 거부를 알리는 단계를 포함하는 것을 특징으로 하는 유닉스 운영 체제의 시스템 호출 제어 방법.(e) if the user has access to a system resource, the alternate system call handler makes a prototype system call, and if the user does not have access to the system resource, refuse to perform the system call to the user process. System call control method of the Unix operating system, comprising the step of notifying. 제 1항에 있어서,The method of claim 1, 상기 단계 (c) 및 단계 (d)에서 상기 커널 영역의 통신 인터페이스와 상기 사용자 영역의 데이터베이스 사이에, 시스템 자원에 대한 사용자의 접근 권한 정보를 요청하고, 제공하는 통신 방법에 있어서,A communication method for requesting and providing access rights information of a user on a system resource between a communication interface of the kernel region and a database of the user region in steps (c) and (d), 상기 통신 인터페이스가 유닉스의 시그널(signal) 방식을 이용하여, 상기 데이터베이스로 통신 시작 신호을 보내고, 상태 변수를 "정보 요청"으로 전환하는 단계와; 상기 데이터베이스가, 상기 통신 인터페이스에 등록되어 있는 통신용 시스템 호출을 통하여, 상기 통신 인터페이스에 상기 가로채어진 시스템 호출에 대한 정보를 요청하는 단계와; 상기 통신 인터페이스가 상기 가로채어진 시스템 호출에 대한 정보를 상기 데이터베이스로 전송하고, 상기 상태 변수가 "정보 송신"이 될 때까지 대기하는 단계와; 상기 데이터베이스가 상기 가로채어진 시스템 호출에 대한 사용자의 접근 권한 정보를 획득하는 단계와; 상기 데이터베이스가, 상기 통신 인터페이스에 등록되어 있는 통신용 시스템 호출을 통하여, 상기 통신 인터페이스에 상기 획득한 사용자 권한 정보를 전송한 후, 상태 변수를 "정보 송신"으로 전환하는 단계와; 상기 통신 인터페이스가 상기 데이터베이스로부터 전송된 정보를 수신하는단계; 및 상기 통신 인터페이스가 상태 변수를 "통신대기"로 전환하고, 상기 데이터베이스에 통신종료를 알리는 단계를 포함하는 것을 특징으로 하는 유닉스 운영 체제의 시스템 호출 제어 방법Sending, by the communication interface, a communication start signal to the database using a signal method of Unix, and converting a state variable to an "information request"; Requesting, by the database, information about the intercepted system call from the communication interface through a system call for communication registered with the communication interface; The communication interface sending information about the intercepted system call to the database and waiting for the state variable to be " send information "; Obtaining access rights information of a user for the intercepted system call by the database; Sending, by the database, the acquired user right information to the communication interface through a system call for communication registered in the communication interface, and then converting a state variable to "send information"; The communication interface receiving information sent from the database; And converting, by the communication interface, the state variable into “waiting for communication” and notifying the database of the completion of communication. 사용자 프로세스(user process)로부터 요청된 시스템 호출(system call)이, 가로챌 시스템 호출인지의 여부를 판단하는 정보가 저장된 커널 영역(kernel space)의 시스템 호출 벡터 테이블(system call vector table)과; 상기 시스템 호출 벡터 테이블의 상기 판단 정보를, 운영체제(operating system)의 부팅(booting)시에, 초기화하는 사용자 영역의 초기화 모듈(module)을 구비하는 유닉스(UNIX) 운영 체제에 있어서,A system call vector table in a kernel space in which information for determining whether a system call requested from a user process is a system call to be intercepted is stored; In the UNIX operating system having a user area initialization module for initializing the determination information of the system call vector table at the time of booting an operating system, (a) 상기 유닉스 운영 체제를 부팅하는 단계;(a) booting the Unix operating system; (b) 상기 커널 영역에 대체 시스템 호출(system call) 처리기를 적재하는 단계;(b) loading an alternate system call handler in the kernel region; (c) 적재된 상기 대체 시스템 호출 처리기의 위치정보로부터 시스템 호출 리스트(system call list)를 작성하여 상기 커널 영역에 적재하는 단계;(c) creating a system call list from the loaded position information of the substitute system call processor and loading the kernel call into the kernel region; (d) 상기 커널 영역의 시스템 호출 벡터 테이블의 정보를 읽어 들이는 단계;(d) reading information of a system call vector table of the kernel region; (e) 상기 시스템 호출 벡터 테이블의 정보와 상기 시스템 호출 리스트의 정보를 비교하여, 가로챌 시스템 호출을 검색하는 단계;(e) comparing the information in the system call vector table with the information in the system call list to retrieve a system call to intercept; (f) 상기 단계 (e)에서 가로챌 시스템 호출이 검색되면, 상기 시스템 호출 벡터 테이블이 가지고 있는 상기 가로챌 시스템 호출의 위치정보를 상기 대체 시스템 호출 처리기의 위치정보로 변경하는 단계; 및(f) if the intercepted system call is retrieved in step (e), changing the location information of the intercepted system call in the system call vector table to the location information of the substitute system call handler; And (g) 상기 변경된 시스템 호출 벡터 테이블을 상기 커널 영역에 저장하는 단계를 포함하는 것을 특징으로 하는 유닉스 운영 체제의 동적 커널 변경 방법.(g) storing the modified system call vector table in the kernel region.
KR1019990051984A 1999-11-22 1999-11-22 Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system KR100344977B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990051984A KR100344977B1 (en) 1999-11-22 1999-11-22 Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990051984A KR100344977B1 (en) 1999-11-22 1999-11-22 Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system

Publications (2)

Publication Number Publication Date
KR20010047670A KR20010047670A (en) 2001-06-15
KR100344977B1 true KR100344977B1 (en) 2002-07-20

Family

ID=19621240

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990051984A KR100344977B1 (en) 1999-11-22 1999-11-22 Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system

Country Status (1)

Country Link
KR (1) KR100344977B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651392B1 (en) 2016-03-08 2016-08-25 주식회사 시큐브 Additional authentication execution system through execution specialized module and method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429278B1 (en) * 2002-04-12 2004-04-29 (주)이네트렉스 Access control method for security in Window NT circumstance
KR101048874B1 (en) * 2009-06-09 2011-07-13 성균관대학교산학협력단 Vulnerable Kernel Variable Recommendation Apparatus and Method
KR101014814B1 (en) * 2009-07-22 2011-02-14 주식회사 즐게임 Kernel monitoring module installed computer system and kernel monitoring method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
JPH0644079A (en) * 1992-07-27 1994-02-18 Nec Corp Information processor
JPH0667954A (en) * 1992-08-14 1994-03-11 Takaoka Electric Mfg Co Ltd File access system
KR970002625A (en) * 1995-06-15 1997-01-28 김광호 How to lock a program to prevent illegal copying of applications
JPH09330249A (en) * 1996-06-12 1997-12-22 Sumitomo Metal Ind Ltd Device for developing computer system for process control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
JPH0644079A (en) * 1992-07-27 1994-02-18 Nec Corp Information processor
JPH0667954A (en) * 1992-08-14 1994-03-11 Takaoka Electric Mfg Co Ltd File access system
KR970002625A (en) * 1995-06-15 1997-01-28 김광호 How to lock a program to prevent illegal copying of applications
JPH09330249A (en) * 1996-06-12 1997-12-22 Sumitomo Metal Ind Ltd Device for developing computer system for process control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651392B1 (en) 2016-03-08 2016-08-25 주식회사 시큐브 Additional authentication execution system through execution specialized module and method thereof

Also Published As

Publication number Publication date
KR20010047670A (en) 2001-06-15

Similar Documents

Publication Publication Date Title
EP0803101B1 (en) A mechanism for linking together the files of emulated and host system for access by emulated system users
KR100240910B1 (en) Method and apparatus for a system wide logon in a distributed computing environment
US5956710A (en) Apparatus for and method of providing user exits on an operating system platform
EP1104563B1 (en) Multilingual user interface for an operating system
JP2557189B2 (en) Device operation method
US6131165A (en) Permit for controlling access to services in protected memory systems
US6556995B1 (en) Method to provide global sign-on for ODBC-based database applications
US8874905B2 (en) Resource restriction systems and methods
EP0803154B1 (en) A mechanism for providing security to a dual decor command host system
US5915131A (en) Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US8589569B2 (en) Method and apparatus for invoking a plug-in on a server
US20030191739A1 (en) Persistent key-value repository with a pluggable architecture to abstract physical storage
WO2002095588B1 (en) Decentralized virus scanning for stored data
JPH08235116A (en) Mechanism for provision of safety protection access to external resource from decentralized computation environment
KR100931706B1 (en) Method and apparatus for physical address-based security for determining target security
KR0138798B1 (en) Controlling the initiation of logical system in a data processing system with logical processor facility
KR100344977B1 (en) Method for controlling a system call, and for changing kernel dynamically in an UNIX operating system
US10242174B2 (en) Secure information flow
JPH06214863A (en) Information resource managing device
EP1690180B1 (en) System for dynamic registration of privileged mode hooks in a device
JP4507569B2 (en) Information processing apparatus, information processing method, program, and recording medium
KR950012736B1 (en) Terminal security level
Stork Downgrading in a Secure Multilevel Computer System: The Formulary Concept
KR920020324A (en) Access Control Method for Multi Class Confidential Data Protection
JPH1055300A (en) File access method

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

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee