KR101414580B1 - A Secured Linux Operationg System Using Multi-level Security - Google Patents

A Secured Linux Operationg System Using Multi-level Security Download PDF

Info

Publication number
KR101414580B1
KR101414580B1 KR1020130008275A KR20130008275A KR101414580B1 KR 101414580 B1 KR101414580 B1 KR 101414580B1 KR 1020130008275 A KR1020130008275 A KR 1020130008275A KR 20130008275 A KR20130008275 A KR 20130008275A KR 101414580 B1 KR101414580 B1 KR 101414580B1
Authority
KR
South Korea
Prior art keywords
security
level
file
operating system
protection category
Prior art date
Application number
KR1020130008275A
Other languages
Korean (ko)
Inventor
유승재
이극
Original Assignee
한남대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한남대학교 산학협력단 filed Critical 한남대학교 산학협력단
Priority to KR1020130008275A priority Critical patent/KR101414580B1/en
Application granted granted Critical
Publication of KR101414580B1 publication Critical patent/KR101414580B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

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

Abstract

The present invention relates to a Linux operating system based on multi-level based security, wherein access restriction is differentially made according to the levels of users in the kernel level of the Linux operating system. Provided is a configuration comprising: an access control unit for controlling the access with respect to users by applying a BLP(Bell-La Padula) model; a reference monitoring unit provided with a subject security label defining a permission rating and a protection category for a subject, and an object security label defining a permission rating and a protection category for an object; a kernel mode encryption unit referring to the permission rating and the protection category recorded to the subject security label and the object security label to automatically decide whether to encrypt or not and execute the encryption according to the permission rating and the protection category recorded to a file; and a real-time monitoring unit for recording the access to the file in real time using a dynamic database. According to the Linux operating system based on multi-level based security as above, it is possible to overcome the limitations of security measures of an application program level provided on the opened Linux operating system, and to provide the fundamental and basic security infrastructure, thereby resolving increasing security problems.

Description

다중 등급 기반 보안 리눅스 운영 시스템 { A Secured Linux Operationg System Using Multi-level Security }A multi-level security Linux operating system {A Secured Linux Operation System}

본 발명은 리눅스 운영체제의 커널 수준에서 다중등급 보안기능을 구비한 다중 등급 기반 보안 리눅스 운영 시스템에 관한 것이다.
The present invention relates to a multi-rank based security Linux operating system with multi-level security capabilities at the kernel level of the Linux operating system.

리눅스는 관련된 모든 소스가 공개되어 있다는 장점이 있기 때문에 Web 서버 등 인터넷 환경에서 사용되는 시스템에서부터 정보 가전에 이르기까지 매우 많은 응용 시스템들이 점차 리눅스를 바탕으로 개발되고 있다. 리눅스의 사용 범위나 분야의 증가와 함께 자연히 리눅스의 보안 문제도 매우 중요한 연구나 개발과제가 되고 있다. 커널과 일반 프로그램들을 비롯한 거의 모든 것의 소스가 공개되어 있어 많은 리눅스 시스템에 대한 해킹이 이루어지고 있기 때문이다. Because Linux has the advantage that all related sources are available, many application systems ranging from systems used in Internet environments such as Web servers to information appliances are gradually being developed based on Linux. Along with the increasing use of Linux, Linux security has become a very important research and development task. Because the source of almost everything, including the kernel and general programs, is open, and hacking on many Linux systems is taking place.

최근 컴퓨터·네트워크 보안의 필요성에 대한 대중 인식이 급속히 증가함에도 불구하고 보안대책을 제공하기 위한 지금의 노력은 성공하기가 어려울 것이란 점이 지적되고 있다. 이유는 현재의 보안에 대한 대부분의 노력은 기존의 주류를 이루는 운영체제, 즉 안전하지 않은 운영체제의 보안 기능을 그대로 이용하여 그 위에 응용 프로그램 수준에서 보안을 제공하는 잘못된 가정으로부터 출발하고 있기 때문이며, 결과적으로 "모래 위에 성 쌓기"를 초래할 것이라는 지적이다. Firewall, IDS 등이 응용프로그램 수준에서 보안을 제공하는 대표적 예이며, 이것들로 최근의 보안문제를 해결하지 못하고 있음은 여러 해킹사례와 문서에서 나타나고 있다.Although the public awareness of the need for computer and network security has increased rapidly, it is pointed out that the current effort to provide security measures will not be successful. The reason is that most of the current security efforts are based on the misunderstood assumption of using the existing mainstream operating system, that is, the security functions of the unsecured operating system, to provide security at the application level, It is pointed out that it will result in "casting on the sand." Firewalls, and IDS are examples of providing security at the application level, and these have not been addressed in recent security issues, as are seen in many hacking cases and documents.

한편, 미국은 1985년에 국방성 표준이 된 신뢰성 컴퓨터 평가 기준(TCSEC : Trusted Computer System Evaluation Criteria)을 근거로 이미 많은 보안 운영체제를 개발, 평가하여 군, 정부 등에서 사용하고 있다. TCSEC B1급 이상의 컴퓨터 시스템에서 구현하는 보안 운영체제는 대부분 보안 커널(Security Kernel)을 채택하고 있으며, B2급 이상의 평가를 받은 컴퓨터 시스템에 대해서는 해외로 수출을 금지하고 있는 상황이다. 따라서 국내에서도 정보보호 주권의 확립 차원에서 마치 무기체계와 같이 취급되고 있는 보안 운영체제의 연구 개발은 필수적이며 시급한 과제라 할 것이다.
On the other hand, the United States developed and evaluated many security operating systems based on the Trusted Computer System Evaluation Criteria (TCSEC), which became the standard of the Defense Department in 1985, and are used by the military, the government, and so on. Most of the security operating systems implemented in TCSEC B1 level or higher computer systems employ security kernels. For computer systems rated B2 or above, they are prohibited from exporting to overseas. Therefore, in order to establish the sovereignty of information security in Korea, research and development of a security operating system, which is treated like a weapon system, is an essential and urgent task.

다음으로, 리눅스의 보안 운영체제 및 보안 커널에 대한 종래 연구 내용을 보다 구체적으로 설명한다.Next, a more detailed description of the conventional research on the security operating system and the security kernel of Linux will be described.

보안운영체제는 기존의 운영체제 내에 내재되어 있는 문제점을 해결하기 위하여 보안 커널을 이식하고 인증, 암호화 등의 보안 서비스를 추가하여 구현한 신뢰할 수 있는 전산 환경이다. 보안운영체제는 참조모니터의 구현을 통해 사용자에 대한 식별 및 인증, 접근통제, 침입탐지 등의 기능을 통하여 커널 레벨로의 접근제어 및 알려지지 않은 공격에 대한 방어, 탐지 및 대응 등의 기능을 수행할 수 있다. 또한 엄격하게 분리된 영역에 로그, 감사기록을 두어 보호함으로써 불법침입자가 침입의 흔적을 제거하는 행위를 방지하는 기능을 포함하고 있다.The security operating system is a reliable computing environment implemented by porting a security kernel and adding security services such as authentication and encryption to solve problems inherent in the existing operating system. Through the implementation of the reference monitor, the security operating system can control access to the kernel level through the identification and authentication of the user, access control, and intrusion detection, and can perform functions such as defense against the unknown attack, detection and response have. It also includes a function to prevent illegal intruders from removing traces of intrusions by protecting logs and audit records in strictly separated areas.

운영체제 보안의 연구는 주로 접근제어를 중심으로 한 비밀성과 무결성 측면에서 집중적으로 이루어져 왔다. 미국의 경우 국방부, NIST, MITRE 등을 중심으로 안전한 컴퓨터시스템의 구축 및 평가 등에 관한 지속적인 연구 결과, 1983년에 "Orange Book" 으로 불리는 TCSEC 초안이 제정되었고, 1985년에 미 국방부 표준(DoD 5200. 28-STD)으로 채택되었다. 안전·신뢰성이 입증된 컴퓨터 시스템을 미 국방부 및 정부기관에 보급하기 위하여 TCSEC을 7가지 등급(D, C1, C2, B1, B2, B3, A1)으로 분류하여 각 기관별 특성에 맞는 컴퓨터 시스템을 도입·운영하도록 권고하고 있다.The study of operating system security has been mainly focused on the confidentiality and integrity of access control. In the United States, the TCSEC draft "Orange Book" was established in 1983 as a result of ongoing research into the construction and evaluation of safe computer systems centering on the Ministry of National Defense, NIST, and MITER. In 1985, 28-STD). TCSEC is classified into seven grades (D, C1, C2, B1, B2, B3, A1) in order to supply safe and reliable computer systems to the US Department of Defense and government agencies. · It is recommended to operate.

TCSEC은 안전한 컴퓨터 시스템이 제공해야 하는 기준을 보안정책, 책임성, 그리고 보증 및 문서부분으로 나누어서 각 등급별 요구사항을 정의해 놓고 있으며, 대부분의 기능과 보증 요구사항은 현재 ISO에서 국제 표준화한 CC(Common Criteria v2.1)와 보호프로파일(Protection Profile)에 반영되고 있으며, TCSEC의 평가등급도 CC와 상호 인정되고 있다. 특히, B1급 이상의 보안 운영체제는 보안정책과 책임성 측면에서 사용자 식별·인증, 주체(Subject ; 사용자, 프로세스) 및 객체(Object)의 보안 레이블에 따른 강제적 접근제어, 사용자 혹은 객체별 임의적 접근제어, 외부 미디어에 전송 시 레이블의 부착, 프린트 시 보안 레이블 출력, 객체 재사용 방지, 참조 모니터(Reference Monitor)를 이용한 완전한 접근중재(Complete Mediation), 감사, 신뢰성 경로 등의 기능을 최소한 가져야 한다.
The TCSEC defines the requirements that each computer system should provide for each level of security policy, accountability, and warranty and documentation, and most of the functionality and assurance requirements are currently supported by ISO (International Organization for Standardization) Common Criteria v2.1) and Protection Profile, and the evaluation level of TCSEC is also mutually recognized with CC. In particular, the security operating system of class B1 or higher is required to perform mandatory access control according to the security label of user identification, authentication, subject, user, process and object in terms of security policy and accountability, It should have at least functions such as attaching labels when transmitting to external media, outputting security labels at printing, preventing object reuse, complete mediation with reference monitor, audit, and reliability path.

한편, 보안 커널은 운영체제만을 대상으로 하지 않는다. 하드웨어와 펌웨어, 소프트웨어 어플리케이션과 같은 모든 전산 환경의 요소들이 보안대상이며 참조 모니터, 감사 모듈, 식별 및 인증 모듈 등 다양한 보안 메커니즘을 통합하여 구성된다.On the other hand, the security kernel does not target operating system only. All elements of the computing environment such as hardware, firmware, and software applications are subject to security and consist of various security mechanisms such as reference monitors, audit modules, identification and authentication modules.

보안 커널은 완전해야하기 때문에 다양한 요구사항이 존재하게 된다. 다음의 보안 커널에 대한 세 가지는 주요 요구사항이다. 첫 번째, 참조 모니터 개념을 수행하는 프로세스와는 분리되어야 한다. 그리고 그들은 부정하게 조작될 수 없어야 한다. 두 번째, 참조 모니터는 주체와 객체 사이에서 발생하는 모든 행위를 대상으로 접근 통제하여야 한다. 참조 모니터를 우회하여 회피하는 것은 불가능해야 한다. 즉, 보안 커널은 완전하고 잘못될 수 없는 방식으로 구현되어야만 한다. 마지막으로, 완전하고 포괄적인 방식으로 입증되고, 시험될 수 있도록 충분히 작아야 한다.
Because the secure kernel must be complete, there are various requirements. The following three key requirements for the secure kernel are: First, it should be separate from the process of performing the reference monitor concept. And they must not be tampered with. Second, the reference monitor must control access to all activities that occur between the subject and the object. It should be impossible to circumvent the reference monitor by avoiding it. That is, the secure kernel must be implemented in a way that is complete and can not be erroneous. Finally, it should be small enough to be proven and tested in a complete and comprehensive way.

리눅스 운영체제는 무료 또는 저렴한 비용으로 설치가 가능하며 다양한 플랫폼의 지원, 구조화된 설계, 다양한 공개 소프트웨어의 제공 등의 장점으로 인해 급속도로 보급되고 있다. 활용 분야는 주로 인터넷 서버(웹 서버, 메일 서버, DB 서버, 파일 서버 등)로서 비교적 성공적으로 시장을 점유하고 있다. 그러나 이에 비례하여 리눅스 시스템을 목표로 하는 해킹 사고 또한 급속히 증가하고 있다. 그러나 기존의 리눅스에 구현되어 있는 보안 기능이나 응용프로그램 수준에서의 보안성 제공은 증가 일로에 있는 보안문제 해결에 한계가 있다.The Linux operating system can be installed free or at a low cost, and is rapidly gaining popularity due to its advantages of supporting various platforms, structured design, and offering various open software. The application area is relatively successful as the Internet server (web server, mail server, DB server, file server, etc.). However, in proportion to this, a hacking accident aiming at the Linux system is also increasing rapidly. However, security features implemented in existing Linux and security at application level are limited in solving security problems.

한편 최근의 리눅스 운영체제의 커널 수준에서의 보안 연구는 그 필요성이나 취약성에 비하여 상당히 부족한 실정이다. 리눅스 커널 수준에서의 다중등급 보안 연구는 미국의Naval Postgraduate School에서 프로젝트로 진행되었으며, 리눅스 운영체제를 수정하여 컴퓨터 보안 교육용으로 다중등급 보안 기능을 구현한 예이다.On the other hand, recent Linux OS security researches at the kernel level are insufficient compared with the necessity or vulnerability. Multi-level security research at the Linux kernel level was conducted as a project at the Naval Postgraduate School in the United States and is an example of implementing multi-level security features for computer security education by modifying the Linux operating system.

그 외의 대부분 리눅스 운영체제 보안 연구는 Add-on 방식으로서 주로 네트워크 응용 프로그램, 유틸리티 수준에서의 보안 패치(patch) 등이 주류를 이룬다. 한편 미국 TIS 사에서는 카네기 멜론 대학에서 개발된 "Mach" 마이크로 커널을 이용하여 B3 등급 목표의 "DTMach(Distributed Trusted Mach)" 보안 커널을 개발하여 B3 등급 평가 수행 중 중단하였는데, 이 연구는 '97년 Synergy 프로젝트, DTOS(Distributed Trusted OS), Flask 프로젝트로 이어져 진행되었다. 이 Flask 프로젝트의 보안 커널 설계 개념이 1999. 9월부터 2000년 12월까지 NSA와 SCC, NAI Lab 등이 진행했던 "Secure Linux(seLinux)" 프로젝트에 반영되어 그 프로토타입이 개발되었으며 일부 소스 코드만 공개되어 있다. 국내에서는 유닉스, 리눅스 보안 커널 개발 연구는 소수의 대학, 벤처기업, 연구소에서 진행되고 있는 형편이다.
Most of the other Linux operating system security researches are add-on methods, mainly network application programs and utility-level security patches. On the other hand, US TIS developed the "DTMach (Distributed Trusted Mach)" security kernel for B3 grade using the "Mach" micro kernel developed by Carnegie Mellon University and discontinued B3 grade evaluation. Synergy project, DTOS (Distributed Trusted OS) and Flask project. The security kernel design concept of this Flask project was reflected in the "Secure Linux (seLinux)" project conducted by NSA, SCC and NAI Lab from September, 1999 to December, 2000, It is public. In Korea, research on the development of Unix and Linux security kernels is being conducted in a small number of universities, venture companies and research institutes.

즉, 운영체제 커널에 보안 기능을 추가하여 운영체제 자체의 보안 결함을 해결하고 보안성을 강화하는 것이 보안 운영체제(Sevure OS) 이다. 미국 국가안전보장국에서 주도로 개발한 보안 운영체제인 SElinux는 임의 접근 제어(Discretionary Access Control, DAC)만을 제공하는 기존의 리눅스 커널에 리눅스 보안 모듈(Linux Security Modules, LSM) 프레임워크를 이용하여 강제적인 접근 제어(Mandatory Access Control, MAC)를 구현한 커널기반의 서버사이드 보안 시스템이다.That is, it is the security operating system (Sevure OS) that security function is added to the operating system kernel to solve the security flaw of the operating system itself and to enhance security. SElinux, a security operating system developed primarily by the US National Security Agency, uses a Linux Security Modules (LSM) framework to force a traditional Linux kernel that provides discretionary access control (DAC) It is a kernel based server side security system that implements Mandatory Access Control (MAC).

현재 SELinux에서 지원할 수 있는 접근 통제 정책은 유형 강화(Type Enforcement, TE)와 역할 기반 접근통제(Role Based Access Control, RBAC), 다중등급 보안(Multi Level Security, MLS) 정책이 있다. 이와 같은 접근 통제 정책을 이용하여 시스템 보안 관리자는 사용자나 프로그램들을 지칭하는 주체와, 파일 및 디바이스들을 지칭하는 객체간에 엄격한 접근 제어 정책을 정의할 수 있다.
Currently, SELinux supports the following types of access control policies: Type Enforcement (TE), Role Based Access Control (RBAC), and Multi Level Security (MLS) policies. Using this access control policy, the system security administrator can define strict access control policy between the entity that refers to the user or programs and the object that refers to files and devices.

[비특허문헌 1] http://www.linux.org[Non-Patent Document 1] http://www.linux.org [비특허문헌 2] http://www.kernel.org[Non-Patent Document 2] http://www.kernel.org [비특허문헌 3] http://www.snort.org[Non-Patent Document 3] http://www.snort.org [비특허문헌 4] http://www.tcpdump.org[Non-Patent Document 4] http://www.tcpdump.org [비특허문헌 5] National Security Agency, http://www.nsa.gov/research /selinux/index.shtml[Non-Patent Document 5] National Security Agency, http://www.nsa.gov/research/selinux/index.shtml [비특허문헌 6] http://www.securityfocus.com[Non-Patent Document 6] http://www.securityfocus.com [비특허문헌 7] Linux security modules, http://lsm.immunix.org[Non-Patent Document 7] Linux security modules, http://lsm.immunix.org [비특허문헌 8] 엘리자베스 쯔위키 외 3저. 『Building Internet Firewalls』, 한빛미디어, 2003.[Non-Patent Document 8] Elizabeth Tswikey et al. Building Internet Firewalls, Hanvit Media, 2003. [비특허문헌 9] Frank Mayer, Karl MacMillan, David Caplan ,"SELinux by Example: Using Security Enhanced Linux", Prentice Hall[Non-Patent Document 9] Frank Mayer, Karl MacMillan, David Caplan, "SELinux by Example: Using Security Enhanced Linux ", Prentice Hall [비특허문헌 10] T. Horie, K. Masumoto, Y. Miyamoto, T. Harada, and K.Tanaka, "Dynamic Access Control for Operating System Kernel", IPSJ SIG Technical Report 2003-CSEC-23[Non-Patent Document 10] T. Horie, K. Masumoto, Y. Miyamoto, T. Harada, and K. Tanaka, "Dynamic Access Control for Operating System Kernel", IPSJ SIG Technical Report 2003-CSEC-23 [비특허문헌 11] http://www.nsa.gov/selinux[Non-Patent Document 11] http://www.nsa.gov/selinux [비특허문헌 12] P. Loscocco and S. Smalley, "Integrating Flexible Support for Security Policies into the Linux Operating System", 2001 USENIX Annual Technical Conference[Non-Patent Document 12] P. Loscocco and S. Smalley, "Integrating Flexible Support for Security Policies into the Linux Operating System ", 2001 USENIX Annual Technical Conference [비특허문헌 13] LMBENCH, http://www.bitmover.com/lmbench/[Non-Patent Document 13] LMBENCH, http://www.bitmover.com/lmbench/ [비특허문헌 14] C. E. Landwehr, A. R. Bull, J. P. McDermott, and W. S. Choi, "A Taxonomy of Computer Program Security Flaws," ACM Computing Surveys, Vol. 26(3), pp. 211-254, 1994.[Non-Patent Document 14] C. E. Landwehr, A. R. Bull, J. P. McDermott, and W. S. Choi, "A Taxonomy of Computer Program Security Flaws," ACM Computing Surveys, Vol. 26 (3), pp. 211-254, 1994. [비특허문헌 15] M. Bishop and D. Bailey, "A Critical Analysis of Vulnerability Taxonomies," CSE-96-11, Sep. 1996[Non-Patent Document 15] M. Bishop and D. Bailey, "A Critical Analysis of Vulnerability Taxonomies," CSE-96-11, Sep. 1996 [비특허문헌 16] K. Jiwnani and M. Zelkowitz, "Maintaining Software with a Security Perspective," International Conference on Sofware Maintenance(ICSM'02), Montreal, Quebec, Cannada, Oct. 03-06, 2002.[Non-Patent Document 16] K. Jiwnani and M. Zelkowitz, "Maintaining Software with a Security Perspective," International Conference on Software Maintenance (ICSM'02), Montreal, Quebec, Cannada, Oct. 03-06, 2002. [비특허문헌 17] 김정녀, 손승원, 이철훈, "안전한 운영체제 접근제어 정책에 대한 보안성 및 성능 시험", 정보처리학회논문지 D 제10-D권 제5호(2003.8).[Non-Patent Document 17] Kim Jeong-woong, Seungwon Son, Lee Chul-Hoon, "Security and Performance Testing for Secure OS Access Control Policy", Information Processing Society D D10-D Volume 5 (2003.8). [비특허문헌 18] I. Arce and E. Leby, "The Rising Threat of Vulnerabilities Due to Integer Errors", IEEE Security & Privacy, 77-82, Jul./Aug. 2003.[Non-Patent Document 18] I. Arce and E. Leby, " The Rising Threat of Vulnerabilities Due to Integer Errors ", IEEE Security & Privacy, 77-82, Jul./Aug. 2003. [비특허문헌 19] 김선영, 오창석. "패턴 매칭 기법을 적용한 DDoS 공격 탐지", 『한국콘텐츠학회 2005 추계 종합 학술대회 논문집』 제3권 제2호, 2005. pp.189-194.[Non-Patent Document 19] Kim Sunyoung, Oh Chang Suk. "Detection of DDoS Attack Using Pattern Matching Technique", Journal of the Korea Contents Association, Vol. 3, No. 2, 2005. pp.189-194. [비특허문헌 20] 이영무 저. 『(최강) MySQL 4 바이블』, 가메출판사, 2003.[Non-Patent Document 20] Lee, Young-Moo; "(The Strongest) MySQL 4 Bible", GAME Publisher, 2003. [비특허문헌 21] DoD, Trusted Computer System Evaluation Criteria, DoD 5200.28. STD, 1985.[Non-Patent Document 21] DoD, Trusted Computer System Evaluation Criteria, DoD 5200.28. STD, 1985. [비특허문헌 22] Bell. D. and Lapadula, "Secure Computer System : Mathematical Foundations and Model," MITRE Report MTR 2547, v2 Nov 1973.[Non-Patent Document 22] Bell. D. and Lapadula, "Secure Computer System: Mathematical Foundations and Model," MITER Report MTR 2547, v2 Nov 1973. [비특허문헌 23] R. Magnus et al, LINUX KERNEL INTERNALS, 1999.[Non-Patent Document 23] R. Magnus et al, LINUX KERNEL INTERNALS, 1999. [비특허문헌 24] Charles W. Flink Ⅱ et al., "System V/MLS Labeling and Mandatory Policy Alternatives," Proc. of USENIX-Winter '89, pp. 413∼427, 1989.[Non-Patent Document 24] Charles W. Flink II et al., &Quot; System V / MLS Labeling and Mandatory Policy Alternatives, " of USENIX-Winter '89, pp. 413-427, 1989. [비특허문헌 25] D. D. Downs et al., "Issues in Discretionary Access Control," Proc. of IEEE Symposium on Security and Privacy, pp. 208∼218, 1985.[Non-Patent Document 25] D. D. Downs et al., "Issues in Discretionary Access Control," Proc. of IEEE Symposium on Security and Privacy, pp. 208-218, 1985. [비특허문헌 26] ISO/IEC JTC1/SC27, Information Technology - Security Techniques ?? Security Information Object, N2315, 1999.[Non-Patent Document 26] ISO / IEC JTC1 / SC27, Information Technology - Security Techniques ?? Security Information Object, N2315, 1999. [비특허문헌 27] http://www.radium.ncsc.mil/tpep/epl/[Non-Patent Document 27] http://www.radium.ncsc.mil/tpep/epl/ [비특허문헌 28] http://www.cs.utah.edu/flux/fluke/html/flask.html[Non-Patent Document 28] http://www.cs.utah.edu/flux/fluke/html/flask.html [비특허문헌 29] Charles P. Pfleeger, Security in Computing, PTR, 1997.[Non-Patent Document 29] Charles P. Pfleeger, Security in Computing, PTR, 1997. [비특허문헌 30] 김현정, 박태규, 조인구, 임연호, 다중등급보안커널 구현과 보안 API, CISC 2000, 2000.11.[Non-Patent Document 30] Kim Hyun-jung, Tae Kyu Cho, In-Ku Cho, Lim Yeon-ho, Multi-level Security Kernel Implementation and Security API, CISC 2000, 2000.11. [비특허문헌 31] Federal Register/Vol. 65, No. 10/Rules& Regulation(Part III : Dept. of ommerce, Bureau of Export Administration, Revision to Encryption Items ; Interim Final Rule, Jan. 14, 2000).[Non-Patent Document 31] Federal Register / Vol. 65, No. 10 / Rules & Regulation (Part III: Dept. of Government, Bureau of Export Administration, Revision to Encryption Items; Interim Final Rule, Jan. 14, 2000). [비특허문헌 32] ISO/IEC 15408 Common Criteria ,http://www.commoncriteria.org 1999. 8.[Non-Patent Document 32] ISO / IEC 15408 Common Criteria, http://www.commoncriteria.org 1999. 8. [비특허문헌 33] Peter A. Loscocco et al., The Inevitability of Failure : The Flawed Assumption of Security in Modern Computing Environments, 21st NISSC, 1998.[Non-Patent Document 33] Peter A. Loscocco et al., The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments, 21st NISSC, 1998. [비특허문헌 34] Sue Hildreth, ASP Security : Why Firewall Are Not Enough, http://www.ebizQ.net, 2001.2.[Non-Patent Document 34] Sue Hildreth, ASP Security: Why Firewall Are Not Enough, http://www.ebizQ.net, 2001.2. [비특허문헌 35] Dixie B. Baker, Fortresses Built Upon Sand, ACM Proc. of the New Security Paradigms Workshop, 1996.[Non-Patent Document 35] Dixie B. Baker, Fortresses Built Upon Sand, ACM Proc. of the New Security Paradigms Workshop, 1996. [비특허문헌 36] Thomas H. Ptacek et al., Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection, NAI Lab., 1998.1.[Non-Patent Document 36] Thomas H. Ptacek et al., Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection, NAI Lab. [비특허문헌 37] Paul C. Clark, Policy-Enhanced Linux, 23rd NISSC, 2000.[Non-Patent Document 37] Paul C. Clark, Policy-Enhanced Linux, 23rd NISSC, 2000.

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 리눅스 운영체제의 커널 수준에서 다중등급 보안기능을 구비한 다중 등급 기반 보안 리눅스 운영 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a multi-level security Linux operating system having a multi-level security function at the kernel level of a Linux operating system.

특히, 본 발명의 목적은 보안등급이 부여되는 중요파일에 대하여는 커널모드에서 자동적으로 암호화하여 저장되고, 처리에 따른 부담시간(overhead)을 최소화하기 위해서 이중 연결 리스트를 이용하여 자료의 추가 및 갱신 시 부분적 암호화 및 복호화를 수행하는 다중 등급 기반 보안 리눅스 운영 시스템을 제공하는 것이다.In particular, it is an object of the present invention to provide a method and system for automatically encrypting and storing important files to which a security level is assigned in a kernel mode, and, in order to minimize the overhead of processing, And to provide a multi-rank based secure Linux operating system that performs partial encryption and decryption.

또한, 본 발명의 목적은 데이터베이스(DB)를 이용하여 실시간으로 감사 추적이 가능하도록 구성하고, 루트(root) 권한을 제한하여 접근권한이 없을 시 보안등급 파일에 접근을 차단하는 기능을 커널에 추가하는 다중 등급 기반 보안 리눅스 운영 시스템을 제공하는 것이다.In addition, the object of the present invention is to provide a system and a method for controlling access to a security level file in a case where there is no access right by limiting the root authority Based multi-class security Linux operating system.

상기 목적을 달성하기 위해 본 발명은 리눅스 운영체제의 커널 수준에서 사용자의 등급에 따라 차등적으로 접근을 제한하는 다중 등급 기반 보안 리눅스 운영 시스템에 관한 것으로서, BLP(Bell-La Padula) 모델을 적용하여 사용자에 대한 접근을 통제하는 접근 통제부; 주체에 대한 허가 등급 및 보호 범주를 정의한 주체 보안 레이블과, 객체에 대한 허가 등급 및 보호 범주를 정의한 객체 보안 레이블을 구비하는 참조 모니터부; 상기 주체 보안 레이블과 상기 객체 보안 레이블에 기록된 허가 등급 및 보호 범주를 참조하여, 파일에 기록된 허가 등급 및 보호 범주에 따라 암호화 여부를 자동으로 결정하여 암호화를 수행하는 커널모드 암호부; 및, 동적인 데이터베이스를 이용하여 파일의 접근을 실시간으로 기록하는 실시간 감시부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to a multi-rank based security Linux operating system that restricts access differentially according to a user's level at the kernel level of a Linux operating system, An access control unit that controls access to the database; A reference security unit having a subject security label that defines a permission level and a protection category for a subject, and an object security label that defines a permission level and a protection category for the object; A kernel mode cryptographic unit for performing encryption by automatically determining whether or not to encrypt according to the permission level and the protection category recorded in the file by referring to the permission level and the protection category recorded in the subject security label and the object security label; And a real-time monitoring unit for recording the access of the file in real time using a dynamic database.

또, 본 발명은 다중 등급 기반 보안 리눅스 운영 시스템에 있어서, 상기 접근통제부는 주체가 객체보다 등급이 높거나 같을 경우에만 읽기를 가능하게 하고, 등급이 같을 경우에만 쓰기를 가능하게 하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a multi-rank based security Linux operating system, wherein the access control unit enables reading only when the subject has a higher or equal grade than the object, .

또, 본 발명은 다중 등급 기반 보안 리눅스 운영 시스템에 있어서, 상기 참조 모니터부는 사용자가 새로운 객체를 생성할 때 사용자의 주체의 보안 등급과 보호범주를 상기 주체 보안 레이블로부터 읽고, 상기 주체의 보안 등급과 보호범주에 따라 상기 객체의 디스크 아이노드(i-node) 구조에 보안 등급 및 보호범주를 기록하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a multi-rank based security Linux operating system, wherein the reference monitor unit reads a security level and a protection category of a user's principal from the subject security label when a user creates a new object, And recording the security level and the protection category in the disk i-node structure of the object according to the protection category.

또, 본 발명은 다중 등급 기반 보안 리눅스 운영 시스템에 있어서, 상기 커널모드 암호부는 파일을 소정의 크기의 블록으로 나누어 암호화하고 암호화된 블록을 연결 리스트로 연결하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a multi-rank based security Linux operating system, wherein the kernel mode encryption unit divides a file into blocks of a predetermined size, and encrypts the encrypted blocks and links the encrypted blocks to a linked list.

또, 본 발명은 다중 등급 기반 보안 리눅스 운영 시스템에 있어서, 상기 시스템은, 파일을 출력시 상기 파일의 객체 보안 레이블에 기록된 보안 등급과 보호범주를 함께 출력하는 보안출력부; 및, 응용 프로그램을 위한 응용 프로그램 인터페이스(Application Programming Interface)를 제공하되, 상기 인터페이스에서 시스템 호출에 대한 보안 등급과 보호 범주에 따라 호출의 처리를 제한하는 보안 인터페이스부를 더 포함하는 것을 특징으로 한다.
According to another aspect of the present invention, there is provided a multi-rank based security Linux operating system, comprising: a security output unit for outputting a security category and a protection category recorded in an object security label of a file when a file is output; And a security interface unit for providing an application program interface for an application program and limiting a call process according to a security level and a protection category of the system call in the interface.

상술한 바와 같이, 본 발명에 따른 다중 등급 기반 보안 리눅스 운영 시스템에 의하면, 공개된 리눅스 운영체제 상에서 제공되는 응용 프로그램 수준에서의 보안대책의 한계를 극복하고, 원천적이고 기본적인 보안 인프라를 제공하여 증가 일로에 있는 보안문제를 해결할 수 있는 효과가 얻어진다.
As described above, according to the multi-rank based security Linux operating system according to the present invention, it is possible to overcome the limitations of security measures at the level of an application program provided on the open Linux operating system and to provide a basic and basic security infrastructure, An effect of solving the security problem can be obtained.

도 1은 본 발명의 일실시예에 따른 리눅스의 보안 운영체제의 구조를 도시한 블록구성도.
도 2는 본 발명에 따른 리눅스의 보안 운영체제가 생성한 침입 탐지 로그의 일례.
도 3은 본 발명의 일실시예에 따른 리눅스의 보안 운영체제의 보안 커널의 동작 과정을 도시한 흐름도.
도 4는 본 발명에 따른 권한 제한을 위해 확장된 allow구문의 일례.
도 5는 본 발명의 일실시예에 따른 다중 등급 기반 보안 리눅스 운영 시스템을 도시한 블록구성도.
도 6은 본 발명에 따른 수정된 BLP 모델.
도 7은 본 발명에 따른 주체 보안 레이블의 자료구조 일례.
도 8은 본 발명에 따른 수정된 I-node의 구조.
도 9는 본 발명에 따른 커널모드 암호부가 수행하는 암호화 과정을 설명하는 흐름도.
도 10은 본 발명에 따른 블록 암호화 파일의 예.
도 11은 본 발명에 따른 블록 암호화 연결 리스트의 일례.
도 12는 본 발명에 따른 실시간 감시부의 정보 흐름을 도시한 것.
도 13은 본 발명에 따른 실시간 감시부의 구조.
도 14는 본 발명에 따른 보안출력부의 보안 표시 정보의 강제적 출력 흐름도.
도 15는 본 발명에 따른 보안 인터페이스부가 처리하는 주요 시스템 호출과 기능에 대한 표.
도 16은 본 발명에 따른 보안정보 시스템 호출 예.
1 is a block diagram illustrating a structure of a security operating system of Linux according to an embodiment of the present invention;
2 is an example of an intrusion detection log generated by the security operating system of Linux according to the present invention.
3 is a flowchart illustrating an operation of a secure kernel of a secure operating system of Linux according to an embodiment of the present invention.
Figure 4 is an example of an allow clause extended for privilege restriction according to the present invention.
FIG. 5 is a block diagram illustrating a multi-rank based security Linux operating system according to an embodiment of the present invention. FIG.
6 is a modified BLP model according to the present invention.
7 is an example of a data structure of a subject security label according to the present invention.
Figure 8 shows a modified I-node structure according to the present invention.
9 is a flowchart illustrating an encryption process performed by the kernel mode encryption unit according to the present invention.
10 is an example of a block encryption file according to the present invention.
11 is an example of a block cipher connection list according to the present invention;
12 shows an information flow of the real-time monitoring unit according to the present invention.
13 is a structure of a real-time monitoring unit according to the present invention.
FIG. 14 is a flowchart illustrating a forced output of security indication information of a security output unit according to the present invention; FIG.
15 is a table of major system calls and functions handled by the security interface unit according to the present invention;
16 is a security information system call example according to the present invention.

이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the drawings.

또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
In the description of the present invention, the same parts are denoted by the same reference numerals, and repetitive description thereof will be omitted.

먼저, 본 발명의 일실시예에 따른 리눅스의 보안 운영체제에 대하여 도 1을 참조하여 구체적으로 설명한다.First, a security operating system of Linux according to an embodiment of the present invention will be described in detail with reference to FIG.

도 1에서 보는 바와 같이, 본 발명에 따른 리눅스의 보안 운영체제는 객체 관리자 및 보안 서버로 구성된다.As shown in FIG. 1, the security operating system of Linux according to the present invention comprises an object manager and a security server.

객체 관리자(Object Manager)는 시스템에 제어 동작을 제공하고 보안 서버에서 특정 보안 정책에 대한 보안 결정이 이루어지면 보안 결정에 대한 수행을 담당한다. 또한 AVC(Active Vector Cache) 관리 정책의 적용과 변경 등의 기능을 제공한다.The Object Manager provides control operations to the system and, when a security decision is made for a specific security policy at the security server, performs the security decision. It also provides functions such as applying and changing AVC (Active Vector Cache) management policy.

보안 서버(Security Server)는 보안 정책을 결정하고 SID(Serurity ID)와 보안 컨텍스트(Security Context)간의 매핑을 유지하고 새로 생성되는 객체에 SID를 부여한다. 보안 운영체제 상에서 시스템의 자원에 대한 접근 권한은 다음에서 볼 수 있는 것과 같이 'allow' 구문에 의해 정의된다.The security server determines the security policy, maintains the mapping between the security ID (SID) and the security context, and assigns the SID to the newly created object. Access to the system's resources on the secure operating system is defined by the 'allow' syntax, as shown below.

allow user_t bin_t : file { read write };allow user_t bin_t: file {read write};

상기 구문에서 user_t란 타입을 가진 프로세스가 bin_t란 타입을 가진 파일에 대해 read, write 시스템 콜 요청을 허락하는 접근 정책이다.In the above syntax, a process with a type of user_t is an access policy that allows read and write system call requests for files of type bin_t.

이와 같은 보안 운영체제는 다음과 같은 기능을 제공한다.Such a security operating system provides the following functions.

먼저, 보안 운영체제는 자원에 대한 여러 가지 접근 통제를 수행하여, 유형 강화(Type Enforecement TE), 역할 기반 접근 통제(Role Based Access Control RBAC), 다중 등급 보안(Multi Level Security MLS)와 같은 접근 통제 정책을 지원한다.First, the security operating system performs various access control on the resource, and access control policies such as Type Enforcement TE, Role Based Access Control (RBAC), and Multi Level Security MLS .

또한, 보안 운영체제는 커널 보호를 위해, 공격자에 의한 커널 수정을 방지하기 위해 모듈 삽입이나 커널에 대한 직접 쓰기에 대한 보호를 할 수 있다. 그리고 보안 운영체제는 침입에 대한 피해 범위를 감소하기 위하여, 프로세스 실행시 필요한 최소한의 권한만 할당하여 피해 발생시 다른 프로세스나 시스템에 끼치는 영향을 최소화한다. 그리고 감사 기능으로서, 시스템에 일어나는 보안 규칙 위배에 대한 정보는 파일로 기록되어 감사 자료로 활용할 수 있다.In addition, the security operating system can protect against kernel insertion by inserting modules or direct writing to the kernel to prevent kernel modification by the attacker. To reduce the scope of the attack, the security operating system minimizes the impact on other processes or systems in case of damage by allocating only the minimum privileges required to execute the process. As an audit function, information about violation of security rules occurring in the system can be recorded in a file and used as audit data.

이러한 기능들은 리눅스 보안 모듈(Linux Security Module, LSM) 프레임워크를 이용하여 삽입 가능한 커널 모듈로 개발되었고 모듈 삽입을 통해 기존에 제공되던 DAC 접근 제어 기능들을 대체한다.
These features were developed as an insertable kernel module using the Linux Security Module (LSM) framework and replace DAC access control functions that were previously provided through module insertion.

예를 들어, 침입자는 버퍼 오버플로우 기법과 같은 메모리 조작을 통하여 프로세스에 시스템 쉘을 실행하는 등의 악성 코드를 삽입할 수 있다. 그러나 보안 운영체제가 제어하는 시스템에서는 삽입한 악성 코드의 실행에 필요한 권한을 획득할 수 없어서 이와 같은 공격으로 인한 피해를 막을 수 있다. 또한 보안 운영체제는 이러한 불법 접근에 대한 감사 정보를 기록할 수 있어서 감사 자료로 사용할 수 있다.For example, an intruder can inject malicious code, such as running a system shell into a process, through memory manipulation, such as a buffer overflow technique. However, the system controlled by the security operating system can not obtain the privilege necessary to execute the inserted malicious code, thereby preventing damage caused by such an attack. In addition, the security operating system can record audit information on this unauthorized access and can be used as audit data.

도 2에서는 보안 운영체제가 생성한 버퍼 오버플로우 공격 탐지 로그를 보여준다. 도 2의 로그 정보에서 ftp 데몬(in.ftpd)을 통하여 쉘이 실행되려 했었고(shell_exec_t) 그러한 접근이 거부되었다는(denied { excute }) 것을 알 수 있다. 일반적으로 ftp 데몬에서는 이러한 종류의 접근이 일어나지 않는다. 더군다나 이러한 행동은 시스템에서 어떠한 예외사항으로 발생한 비정상적인 행동이다. 결과적으로 이것은 침입자가 ftp 데몬을 이용하여 버퍼 오버플로우 공격을 시도한 확실한 증거라 할 수 있다.FIG. 2 shows a buffer overflow attack detection log generated by the security operating system. It can be seen from the log information of FIG. 2 that the shell was attempted to be executed via the ftp daemon (in.ftpd) (shell_exec_t) and that such access was denied (excuted). Generally, this kind of access does not happen with the ftp daemon. Furthermore, these behaviors are abnormal behaviors that occur as an exception to the system. As a result, this is a clear indication that an attacker has attempted a buffer overflow attack using the ftp daemon.

위와 같이 보안 운영체제의 기능을 응용하여 비정상적인 접근에 대한 로그를 기록할 수 있다. 그렇지만 커널의 로그 정보에는 침입에 대한 증거가 될 수 있는 비정상적인 접근에 대한 로그와 다수의 일반적인 시스템 관련 로그가 같이 저장되고 어떠한 종류의 로그가 위험한지 커널 내에서 판단할 수 없다. 따라서 침입에 대한 좀 더 효과적인 대응을 할 수 있도록 어떠한 종류의 접근 정보가 위험한지를 커널 스스로 판단할 수 있도록 할 수 있게 하는 기능의 구현이 필요하다.
By applying the functions of the security operating system as above, logs of abnormal accesses can be recorded. However, the kernel's log information does not include a log of abnormal accesses that can be evidence of an intrusion and many general system-related logs, and can not determine in the kernel what kind of logs are dangerous. It is therefore necessary to implement a function that allows the kernel to determine what kind of access information is dangerous so that it can respond more effectively to the intrusion.

본 발명에서는 보안 운영체제의 접근 제어 언어를 확장하여 어떠한 종류의 접근 정보가 위험한지를 판단하는 "보안 검사"와 그에 대한 대응으로 접근 제어 리스트를 제한된 접근 제어 리스트로 변경하는 "권한 제한" 기능을 추가한 강화된 보안 커널 시스템을 구성한다.In the present invention, a "security check" for determining what kind of access information is dangerous by expanding the access control language of the security operating system and a "rights restriction" function for changing the access control list to a restricted access control list in response thereto are added Configure an enhanced secure kernel system.

보안 검사와 권한 제한 과정을 추가함으로서 침입 시도시 해당 침입을 탐지하고 차단할 뿐만 아니라 침입자에 대한 시스템 접근 제어 정책을 수정하여 침입자에 대한 시스템의 권한을 제한할 수 있게 된다. 도 3에서는 비정상적인 접근이 발생하였을 시에 피해를 예방하기 위해 "보안 검사"와 "권한 제한"을 수행하여 침입자에게 제한된 접근 제어가 적용되는 과정을 보여준다.By adding a security check and an authority restriction process, it is possible to restrict the system privilege to the intruder by modifying the system access control policy for the intruder as well as detecting and blocking the intrusion upon the intrusion attempt. FIG. 3 shows a process in which a limited access control is applied to an intruder by performing a "security check" and a "permission restriction" in order to prevent damage when an abnormal access occurs.

보안 검사는 어떠한 종류의 접근 정보가 위험한지를 침입 탐지 데이터베이스를 참조하여 판단하게 된다. 침입 탐지 데이터베이스에 위험하다고 판단할 수 있는 접근 정보를 기술하기 위하여 보안 운영체제의 접근 제어 언어에 "strict" 란 문법을 추가한다. 이 문법은 앞서 설명한 "allow" 문법과 사용 방법이 유사하다.The security check determines which type of access information is dangerous by referring to the intrusion detection database. Add "strict" syntax to the access control language of the security operating system to describe access information that can be considered dangerous to the intrusion detection database. This grammar is similar to the "allow" syntax described above.

예를 들어, 다음과 같이 strict 문법을 사용한 문구를 작성할 수 있다.For example, you can write a strict grammar as follows:

strict ftpd_t shell_exec_t:file { execute };strict ftpd_t shell_exec_t: file {execute};

상기 구문은 침입자가 ftp 데몬을 버퍼 오버플로우 방식으로 공격하여 시스템 쉘을 실행하는 공격을 정의한 strict 구문이다. 만약 "strict" 구문에 해당하는 접근이 발생하면 "권한 제한"을 통하여 침입자는 행동이 제한될 것이다. 이러한 보안 검사 기능에서 비정상적인 쉘 실행 및 관리자 권한 획득 시도, 설정파일나 로그파일 등의 변조나 삭제, 자원들에 대한 허가되지 않은 접근 등을 탐지할 수 있다.
The above syntax is a strict statement that defines an attack that invokes the system shell by attacking the ftp daemon in a buffer overflow manner. If access to the "strict" syntax occurs, intruders will be restricted from doing so through "permission restrictions". These security checks can detect unauthorized shell execution and attempts to acquire administrator privileges, tampering or deletion of configuration files or log files, and unauthorized access to resources.

앞 단계에서는 보안 검사를 통하여 모든 접근에 대한 접근 위반 여부를 판단하였다. 만약 그 과정에서 접근 위반이 탐지되어지면, 해당 침입에 대한 피해를 최소화하기 위해 "권한제한"을 실행하여 제한된 접근 제어 정책을 적용한다. 이는 보안 검사의 결과에 따라서 해당 접근에 대한 접근 정책이 동적으로 달라질 수 있다는 것을 의미한다. 권한 제한은 침입이 발생하였을 때 침입자에게서 시스템에 대한 권한을 축소하는 기능을 수행한다.In the previous step, all accesses were checked for access violation through security check. If an access violation is detected in the process, a restricted access control policy is enforced by executing "permission restrictions" to minimize the damage to the attack. This means that depending on the result of the security check, the access policy for the access can be dynamically changed. The privilege restriction function is to reduce the privilege on the system from the intruder when an intrusion occurs.

제한된 접근 제어 정책의 정의를 위하여 보안 운영체제의 구문중 'allow' 구문을 확장한다. 'allow' 구문의 끝에 보안 등급에 해당하는 state 옵션을 두어서 해당 state에 따라 정책을 변경할 수 있도록 하였다.To define the restricted access control policy, we extend the 'allow' statement in the syntax of the security operating system. At the end of the 'allow' statement, the state option corresponding to the security level is placed so that the policy can be changed according to the corresponding state.

도 4는 권한 제한을 위해 확장된 allow 구문을 보여준다.Figure 4 shows the allow syntax extended for permission restrictions.

접근 위반이 탐지되기 전에는 state 1 상태가 적용되어 파일에 대한 쓰기, 읽기, 삭제 등의 기능을 수행할 수 있지만 보안 검사에 의해 접근 위반이 탐지되면 state의 값은 3으로 변경된다. 따라서 파일에 대한 생성, 쓰기, 삭제 등의 권한은 삭제되고 읽기와 같은 최소한의 권한만 허가되어 ftp 데몬의 업로드를 제한하게 된다.Before an access violation is detected, the state 1 state is applied to perform write, read, and delete operations on the file. However, when an access violation is detected by the security check, the state value is changed to 3. Therefore, permissions to create, write, and delete files are deleted, and only the minimum permissions such as read are allowed to limit uploading of the ftp daemon.

이러한 state값은 권한 제한을 위하여 확장된 allow 구문에 추가된 값으로서 보안 검사에서 수정되어지고. 권한 제한에서 어떠한 접근 제어 정책을 적용해야 할지를 결정하는데 사용되어진다. 이 값은 커널 내부의 변수이고 유저레벨의 애플리케이션에서 수정을 할 수 없다. 유저레벨 애플리케이션에서 보안 등급을 변경할 수 없기 때문에 침입자에 의한 보안등급의 변조를 막을 수 있다.
These state values are added to the extended allow statement for permission restrictions and are modified in the security check. It is used to determine what access control policies should be applied in the authorization constraints. This value is internal to the kernel and can not be modified by user-level applications. Because user level applications can not change the security level, it is possible to prevent tampering by the intruder.

다음으로, 본 발명의 일실시예에 따른 다중 등급 기반 보안 리눅스 운영 시스템의 구성에 대하여 도 5를 참조하여 구체적으로 설명한다.Next, a configuration of a multi-rank based security Linux operating system according to an embodiment of the present invention will be described in detail with reference to FIG.

도 5에서 보는 바와 같이, 리눅스 운영 시스템(30)은 접근통제부(31), 참조 모니터부(32), 커널모드 암호부(33), 실시간 감시부(34), 보안출력부(35), 및, 보안 인터페이스부(36)로 구성된다. 추가적으로 데이터를 저장하기 위한 메모리(36)를 포함하여 구성된다.5, the Linux operating system 30 includes an access control unit 31, a reference monitor unit 32, a kernel mode encryption unit 33, a real-time monitoring unit 34, a security output unit 35, And a security interface unit 36. And further includes a memory 36 for storing data.

한편, 사용자의 식별·인증을 위해서 스마트 카드(10)를 사용하였으며 스마트 카드(10)에는 사용자 주체의 보안허가 등급, 보호범주(Category), PIN(Personal Identification Number)이 입력된다. 이 스마트 카드(10)는 보안관리자(ISSO : Information System Security Officer)에 의해서 GUI를 이용하여 사용자에게 발급된다. 이 사용자 로그인 보안 정보(허가등급, 보호범주)는 사용자 주체(프로세스)가 "fork" 시스템 호출을 통하여 생성하는 객체(정규 파일, 디렉토리, 특수 장치 파일)에 자동적으로 상속되어 레이블이 부여된다.Meanwhile, a smart card 10 is used for user identification and authentication, and a security permission level, a protection category, and a personal identification number (PIN) of a user subject are input to the smart card 10. The smart card 10 is issued to the user by the ISSO (Information System Security Officer) using the GUI. This user login security information (permission class, protection category) is automatically inherited and labeled as an object (regular file, directory, special device file) generated by a user subject (process) through a "fork" system call.

본 발명에서 수정한 Bell-La Padula(BLP) 모델에 따른 강제적 접근제어, 일정 보안등급 이상의 파일에 대한 커널 모드의 자동적 암호화/복호화 읽기/쓰기, 데이터베이스를 이용한 실시간 감사 정보 기록, 보안등급문서 출력 시에 보안 표시 정보의 강제적 출력, 다중등급 보안 기능의 보안관리자 인터페이스와 응용 프로그램 개발을 위한 인터페이스(Security API) 등도 구현기능에 포함되었다.Forced access control according to Bell-La Padula (BLP) model modified in the present invention, automatic encryption / decryption read / write of kernel mode for files of a certain security level or higher, real-time audit information recording using database, security level document output The security manager interface of multi-level security function and the interface for application development (Security API) are included in the implementation function.

본 발명에 따른 강제적 접근제어(MAC : Mandatory Access Control)는 객체의 소유자 ID에 의한 접근제어 결정이 아닌, 중앙 조직의 보안관리자에 의한 객체 보안등급 지정, 접근 허가 주체 지정 및 접근특권(Privilege)이 결정되는 방법으로, 임의적 접근제어(DAC : Discretionary Access Control)에 비하여 보안관리자의 부담이 많게 되나 일반 사용자는 보안에 대한 부담이 반대로 줄어들게 된다.Mandatory Access Control (MAC) according to the present invention is not an access control decision based on an owner ID of an object, but an object security class assignment, an access permission subject designation, and an access privilege As a result, the burden on the security administrator is increased as compared with the discretionary access control (DAC), but the security burden on the general user is reduced.

상기 MAC 방법은 MLS 정책 구현에 이용이 될 수 있으며 정형화된 형태의 BLP 모델이 가장 많이 사용된다. 이 모델은 보안허가 등급을 갖는 주체(Subject with Clearance)와 다중등급이 부여된 객체(Labeled Object)간의 안전한 정보 흐름을 지원하는 수학적으로 증명된 모델로 보안 운영체제 설계에 기본이 된다.
The MAC method can be used in MLS policy implementation, and a formalized BLP model is used most often. This model is a mathematically proven model that supports secure information flow between Subject with Clearance and Labeled Object based on security operating system design.

먼저, 접근 통제부(31)에 대하여 설명한다. 접근 통제부(31)는 수정된 BLP(Bell-La Padula) 모델을 적용하여, 접근 통제를 수행한다.First, the access control unit 31 will be described. The access control unit 31 applies the modified BLP (Bell-La Padula) model to perform access control.

운영체제 접근제어는 어떤 주체(사용자도 궁극적으로 프로세스가 됨)가 어떤 객체(일반 파일, 디렉토리, 디바이스)에 대하여 어떤 목적(read : 읽기, Write : 수정, 생성, 삭제, 붙여쓰기, Execute : 실행)을 갖고, 어떤 조건(DAC 또는 MAC) 하에서 접근할 수 있는지를 다루는 방법이다.Operating system access control can be used for any purpose (read, write, modify, create, delete, paste, execute) any object (user, eventually process) (DACs or MACs) that can be accessed under certain conditions.

강제적 접근제어(MAC : Mandatory Access Control)는 다중등급 보안과 함께 구현된다. 컴퓨터에 저장된 비밀정보를 보호하기 위한 하나의 방법론이 다중등급 보안이며, 이를 위하여 BLP 모델이 가장 많이 사용된다. DAC 정책은 소유자 임의로 접근 권한을 다른 사용자에게 넘겨줄 수 있으므로 이것은 비밀 정보처리시 한계점에 이를 수밖에 없다. 반면에 MAC정책은 사용자 임의로 접근 제한을 변경하지 못하므로 트로이 목마에 의한 피해를 제한시킬 수 있다.Mandatory Access Control (MAC) is implemented with multi-level security. One methodology for protecting confidential information stored on a computer is multi-level security, and the BLP model is used most often for this purpose. The DAC policy can pass the access right to the user arbitrarily by the owner, which is bound to reach a limit in processing the secret information. On the other hand, the MAC policy can restrict the damage caused by the Trojan horse because the user can not change the access restriction arbitrarily.

BLP 모델은 안전한 시스템에서 정보 흐름의 허용 가능한 경로를 기술한다. 즉, 이 모델은 서로 다른 보안등급을 가지고 있는 데이터를 다루는 시스템에서 불법적인 정보 유출을 막기 위해 필요한 보안 요구 조건에 대해 정의하는데 기본적인 성질은 다음과 같다.The BLP model describes an acceptable path of information flow in a secure system. In other words, this model defines the security requirements necessary to prevent unauthorized information leakage in a system that handles data with different security classes.

① 주체 S는 객체 O를 오직 Clearance(S) >= Clearance(O)일 경우에만 읽을 수 있다(Simple Security :SS-Property).(1) Subject S can read object O only when Clearance (S)> = Clearance (O) (Simple Security: SS-Property).

② 주체 S는 객체 O를 오직 Clearance(S) =< Clearance(O)일 경우에만 쓸 수 있다(Star : *-Property).② Subject S can be used only when the object O is Clearance (S) = <Clearance (O) (Star: * -Property).

기존의 BLP 모델은 ②에서와 같이 Clearance(S) < Clearance(O)일 경우에도 쓰기(write) 연산을 허용하였다. 이 쓰기 연산은 객체의 변경(modify), 생성(create), 삭제(delete), 붙여쓰기(append) 등 의 포괄적인 연산이다. 그러나 낮은 등급의 주체가 더 높은 등급의 객체를 붙여쓰기, 삭제가 가능하다는 것은 현실적으로 보안상 문제가 발생되므로, 쓰기 연산은 제한되어야 한다. 따라서 본 발명에서는 ②'와 같이 수정 적용하였다.Conventional BLP model allows write operation even when Clearance (S) <Clearance (O) as in ②. This write operation is a comprehensive operation such as modify, create, delete, and append an object. However, write operations should be restricted because low-level subjects can write and delete objects of higher class with a realistic security problem. Therefore, in the present invention, the correction is applied as shown in (2).

②' 주체 S는 객체 O를 오직 Clearance(S) = Clearance(O)일 경우에만 쓸 수 있다(수정된 Star : *-Property).② 'Subject S can only be used when object O is only Clearance (S) = Clearance (O) (modified Star: * -Property).

즉, 주체 S는 객체 O보다 등급이 높거나 같을 경우에만 읽기가 가능하며, 등급이 같을 경우에만 쓰기가 가능하다. 이런 수정된 BLP 모델의 성질을 리눅스 운영체제에 적용하여 주체가 더 높은 등급의 객체 정보를 읽는다거나 더 낮은 등급의 객체에 정보를 쓰는 것을 방지하여 정보의 불법적인 흐름을 차단하게 된다.
That is, subject S can read only when the grade is higher than or equal to that of object O, and writing is possible only when the grade is the same. Applying the properties of this modified BLP model to the Linux operating system prevents subjects from reading higher-level object information or writing information to lower-level objects, thereby blocking illegal flow of information.

다음으로, 참조 모니터부(32)에 대하여 설명한다.Next, the reference monitor section 32 will be described.

보안 레이블은 다중등급 보안정책에서 모든 주체와 객체에 안정적으로 유지되어야 한다. 이러한 보안 레이블 정보는 주체가 객체에 대해 접근을 요청할 때마다 리눅스 커널 내에 구현되는 참조 모니터(Reference Monitor)에 의해서 접근 허가 여부를 결정할 때 반드시 호출되어야 하며, 이 참조 모니터는 그 크기가 검증이 가능토록 작게 구현된다.Security labels should be stably maintained on all subjects and objects in a multi-level security policy. This security label information must be called whenever a subject requests access to an object, and must be called when determining whether to grant access by a reference monitor implemented in the Linux kernel. The size of this reference monitor must be verifiable Small.

리눅스 커널에서 주체와 객체에 보안등급을 포함하도록 하기 위하여 기존 데이터 구조를 새롭게 작성해야 했는데, 주체에 대한 레이블(허가등급, 보호범주)은 각 사용자별 프로세스에 추가 설정하였으며, 객체의 보안 레이블(보안등급, 보호범주)은 리눅스에서 모든 파일(디렉토리, 디바이스 파일 포함)에 부여하였다.In order to include the security level in subjects and objects in the Linux kernel, it is necessary to newly create an existing data structure. The label (permission level, protection category) for the subject has been added to each user process, Rating, protection category) is given to all files (including directories and device files) under Linux.

구체적으로, 리눅스 운영체제에서 모든 주체는 프로세스로 실행된다. 이 프로세스는 사용자를 위하여 동작하는 것으로 사용자가 운영체제에 로그인한 후에 사용자 프로그램에서 "fork" 시스템 호출에 의하여 생성된다.Specifically, in the Linux operating system, all subjects are executed as processes. This process works for the user, which is created by the "fork" system call in the user program after the user logs in to the operating system.

MAC 메커니즘이 정의되면 사용자는 운영체제에 로그인하는 과정에서 사용자의 식별자(ID)와 패스워드는 물론 자신에게 부여된 보안정보를 입력하여야 한다. MAC 메커니즘을 위한 사용자의 보안정보는 허가등급과 보호범주로 구성된다. 이러한 사용자 보안정보 확인 절차는 기존의 DAC 메커니즘을 사용하는 시스템에서는 없는 과정으로 시스템의 로그인 프로세스와 관련되는 부분이다. 사용자가 입력한 보안정보가 시스템 내에 등록된 보안정보와 부합한지를 확인한다.When the MAC mechanism is defined, the user must input the user's ID and password as well as the security information assigned to the user in the process of logging into the operating system. The user's security information for the MAC mechanism consists of an authorization class and a protection category. This user security information confirmation procedure is not related to the system using the existing DAC mechanism, and is related to the login process of the system. Confirm that the security information entered by the user matches the security information registered in the system.

즉 사용자 허가등급의 경우는 사용자별 등록된 보안정보 DB 내의 최대 및 최소 범위내의 값, 보호범주는 최대 집합의 부분집합인 경우이면 사용자는 컴퓨터에 정상적으로 로그 인 된다. 따라서 사용자 보안정보 DB는 프로세스에 대한 보안 레이블로서 리눅스 보안 커널에 의해 안전하게 유지(tamper-proof)되어야 한다. 이를 위해 이 DB자체에도 보안등급을 부여하여 보안관리자에 의해서만 안전하게 관리되어야 한다. 도 7에서는 각 사용자의 보안등급과 보호범주를 설정하기 위해 변경된 프로세스 제어 블록의 자료구조를 나타낸 그림이다.That is, in the case of the user permission level, the values are within the maximum and minimum ranges in the registered security information DB for each user. If the protection category is a subset of the maximum set, the user is normally logged into the computer. Therefore, the user security information DB must be tamper-proofed by the Linux security kernel as a security label for the process. To this end, the DB itself should be assigned a security level and managed only by the security administrator. FIG. 7 is a diagram showing a data structure of a changed process control block to set the security level and the protection category of each user.

또한, 운영체제 내에서 객체에 대한 보안 레이블은 또한 MAC 메커니즘을 위하여 중요하다. 사용자가 생성한 객체들은 객체가 담고 있는 정보의 기밀성에 따라 이에 적합한 보안등급과 취급되는 보호범주 코드가 부여되어야 한다. 그러므로 각 객체에 대한 보안 레이블 정보를 저장 및 안전하게 유지할 수 있는 보안레이블 기억장소가 필요하며, 보안관리자에 의한 등급부여의 통제 관리도 필요하다.In addition, security labels for objects within the operating system are also important for MAC mechanisms. The user-created objects should be given appropriate security class and protection category code to be handled according to the confidentiality of the information contained in the object. Therefore, it is necessary to have a security label storage area that can store and securely store security label information for each object, and it is also necessary to control the rating management by the security manager.

객체에 대한 보안레이블은 보안등급을 가진 사용자가 새로운 객체를 만들어 낼 때 각 사용자 프로세스의 보안등급과 보호범주를 읽어 레이블 설정 시스템 호출을 사용하여 리눅스의 ext2 파일시스템 내의 디스크 i-node 구조 내에 레이블이 부여된다. 이를 가지고 주체가 객체를 엑세스하고자 할 때마다 객체에 대한 접근허가 여부를 결정하게 된다. 도 8은 메모리상의 in-core 내의 i-node의 구조로 추가한 보안 보호범주를 보여 준다.
The security label for the object reads the security level and protection category of each user process when a security grade user creates a new object. Label setting Use system call to label the disk i-node structure in Linux's ext2 file system . Whenever a subject wants to access an object, it determines whether to grant access to the object. Figure 8 shows the security protection categories added by the structure of the in-core i-node in memory.

다음으로, 커널모드 암호화(33)에 대하여 설명한다.Next, the kernel mode encryption 33 will be described.

종래 운영체제에서의 데이터에 대한 암호화 및 복호화는, 사용자 모드에서 암호화 응용 프로그램을 이용하여 사용자가 선택적으로 파일을 지정한 후, 암호화 및 복호화 키를 입력하여 파일 단위로 일괄적으로 암호화하고 복호화하는 방식을 사용하였다. 그러나 이러한 방식에서의 문제점으로는 다음과 같은 점을 들 수 있다.Encryption and decryption of data in the conventional operating system is performed by a method in which a user selectively designates a file by using an encryption application program in a user mode and then encrypts and decrypts the encrypted data in units of files Respectively. However, the problems in this method are as follows.

① 비밀 수준의 파일 작성 시 사용자의 실수 혹은 고의로 암호화를 하지 못하는 경우가 발생될 수 있다. ② 문서작성 프로그램, 회계처리 프로그램, 기타 응용 프로그램에서 파일을 읽거나 변경하는 등의 처리 경우에 불가피하게 파일 단위로 전체를 복호화한 후, 저장하여 처리할 수밖에 없었기 때문에, 비밀 수준의 파일이 평문 형태로 보조기억 장치에 저장되어 존재하는 경우가 많다. ③ 처리 속도의 측면에서 커널 모드에서의 암호화 및 복호화에 비하여 늦다. ④ 암호화 및 복호화를 위한 키 관리를 위한 별도의 키 관리 방법이 제공되어야 한다.① When creating a secret level file, it may happen that the user can not make a mistake or deliberately encrypt. (2) Since it is inevitable to decrypt the entire file in the case of processing such as reading or changing a file in a document creating program, an accounting processing program, or other application programs, and then storing and processing the entire file, In many cases, they are stored in an auxiliary storage device. (3) In terms of processing speed, it is slower than encryption and decryption in kernel mode. ④ Separate key management method for key management for encryption and decryption should be provided.

따라서 중요 파일처리 시 새로운 형태의 암호화 복호화 기법이 필요로 하게 되는데 본 발명에서는 MLS를 이용한 커널 모드 암호화 방법을 이용한다.Therefore, a new type of encryption / decryption technique is needed in handling important files. In the present invention, a kernel mode encryption method using MLS is used.

도 9를 참조하면, 사용자 프로세스에서 write, fwrite, fprintf, putw 등의 C언어 라이브러리 함수를 통하여 쓰기(write) 시스템 호출을 하게 되면 커널은 사용자의 프로세스가 요청한 작업을 수행하게 된다. 예를 들어, write(fd, buf, 40)는 버퍼(Buffer)에 기억되어 있는 데이터의 40 바이트만큼을 파일 디스크립터 fd로 지정하는 파일에 쓰기를 실행하라는 예이다.Referring to FIG. 9, when a user system makes a write system call through a C language library function such as write, fwrite, fprintf, or putw, the kernel performs a task requested by the user's process. For example, write (fd, buf, 40) is an example of writing to a file specifying 40 bytes of data stored in the buffer as the file descriptor fd.

상기와 같은 쓰기 시스템 호출이 있으면, 먼저 파일 정보를 얻기 위해 파일 디스크립터를 이용하여 파일의 i-node를 구하고, i-node를 연산하여 시스템 호출이 쓰기 모드인지, 쓰고자하는 기억 장치는 무엇인지, 기억 장치의 파일 시스템은 무엇을 사용하는지 등을 판단한다.If there is such a write system call, first obtain the i-node of the file using the file descriptor to obtain the file information, and calculate the i-node to determine whether the system call is the write mode, The file system of the storage device determines what is used and so on.

다음으로, 기억장치에 쓰여질 데이터가 암호화 대상인지의 여부를 결정하게 된다. 쓰고자 하는 데이터가 암호화 대상인지의 여부를 판단할 때 사용자의 선택적 의지에 의존하는 것이 아니라 사용자 프로세스가 보안등급을 가지고 있느냐의 여부에 따라 커널모드에서 강제적으로 결정된다. 이를 위해 사용자 프로세스의 제어 블록에 소정의 비트수를 가진 보안등급 필드를 추가로 할당한다.Next, it is determined whether or not the data to be written to the storage device is an encryption target. When deciding whether or not the data to be written is an encryption target, it depends on whether the user process has a security level or not, rather than depending on the user's optional intention. To this end, a security level field having a predetermined number of bits is additionally allocated to the control block of the user process.

그런 다음, 상기 보안 등급 필드에 사용자 주체의 보안 등급을 주체 보안 레이블에 수록하고, 데이터의 암호화 여부를 판단할 때에는 상기 보안 등급 필드에 보안 등급이 수록되어 있는 지의 여부에 따라 커널모드에서 강제적으로 통제할 수 있도록 한다. 구체적으로, 쓰기 요청을 한 프로세스의 제어 블록에 할당되어 있는 보안등급 필드를 비트 연산하여 프로세스의 보안 등급을 구한다.Then, in the security level field, the security level of the user subject is recorded in the subject security label. When determining whether the data is encrypted, the security level is compulsorily controlled in the kernel mode according to whether or not the security level is included in the security level field . Specifically, a security level of a process is obtained by performing a bit operation on a security level field assigned to a control block of a process requesting a write request.

만약, 쓰기 요청을 한 프로세스의 보안등급이 없으면 쓰기 요청된 데이터를 일반 데이터로 분류하여 현재의 파일포인터를 기준으로 쓰고자 하는 부분을 락킹(locking)한다. 그리고 사용자 프로세스로부터 전달된 버퍼의 내용을 요구한 수만큼 파일 디스크립터 fd로 지정하는 파일에 쓰며, 시스템호출에서 리턴하면 사용자 프로세스로 복귀한다.If there is no security level of the process that issued the write request, the write-requested data is classified as general data and the part to be written based on the current file pointer is locked. The contents of the buffer transferred from the user process are written to the file specified by the requested number of file descriptors fd, and returned from the system call returns to the user process.

만약, 상기한 보안 등급 필드를 비트 연산한 결과, 쓰기 요청을 한 프로세스의 보안등급이 존재하면 블록 암호화 루틴으로 분기하게 되는데, 분기 이후의 과정은 다음과 같다If the security level of the process that issued the write request exists as a result of performing the bit operation on the security level field, the process branches to the block encryption routine. The process after the branch is as follows

본 발명에 따른 데이터 암호화 방법에서는, 블록 암호화 알고리즘을 이용하여 데이터를 커널모드에서 블록 단위로 자동으로 암호화하기 때문에 현재의 파일포인터가 블록의 시작점에 위치하는지를 점검해야 한다. 블록 암호화에 있어서, 블록의 크기 기본 단위가 16바이트(128비트)인 경우에 점검 방법은 파일포인터의 현재 위치에 해당하는 바이트 수를 16으로 나눠 그 나머지가 있으면 블록의 시작점이 아닌 것으로 판단한다. 만약, 파일포인터의 현재 위치가 블록의 시작점이 아닌 것으로 판단되면 블록의 시작점으로 파일포인터를 이동시킨다.In the data encryption method according to the present invention, since the data is automatically encrypted in a block unit in the kernel mode using the block encryption algorithm, it is necessary to check whether the current file pointer is located at the start point of the block. In block encryption, when the basic unit of block size is 16 bytes (128 bits), the checking method divides the number of bytes corresponding to the current position of the file pointer by 16, and judges that the rest is not the start point of the block. If it is determined that the current position of the file pointer is not the start point of the block, the file pointer is moved to the start point of the block.

다음으로, 파일포인터의 이동거리를 스택 변수에 저장한다. 한편, 커널모드에서 블록 단위로 데이터를 자동으로 암호화함에 있어서는, 블록 내의 특정 바이트 영역에 블록에 수록된 유효 데이터 수를 기록하여 두었다가 복호화시 이를 활용한다. 따라서 본 연구에서 제안한 SEED 블록 암호화 알고리즘의 예를 보면 블록의 기본 크기 단위를 16바이트로 하고, 마지막 바이트를 유효 데이터 수에 대한 정보기록 영역으로 설정한다.Next, the moving distance of the file pointer is stored in the stack variable. On the other hand, in the case of automatically encrypting data in units of blocks in the kernel mode, the number of valid data recorded in a block is recorded in a specific byte area in the block, and utilized in decryption. Therefore, in the example of the SEED block encryption algorithm proposed in this study, the basic size unit of the block is set to 16 bytes, and the last byte is set as the information recording area for the number of valid data.

도 10은 사용자 프로세스로부터의 쓰기 시스템 호출에 의해 40바이트 데이터가 암호화되어 쓰여진 파일의 예로서 제1블록(A), 제2블록(B) 및 제3블록(C)은 암호화된 상태의 각 15바이트의 블록 구조를 보여준다(암호화된 내용은 편의상 평문으로 표시함). 10 shows an example of a file in which 40 bytes of data are encrypted and written by a write system call from a user process. The first block (A), the second block (B), and the third block (C) It shows the block structure of bytes (the encrypted contents are shown as plain text for convenience).

도 11은 40 바이트를 암호화하여 메모리에 구성한 연결리스트(Linked List) 예이다. 각 블록의 16번째 바이트에 그 블록의 유효 데이터 수인 15, 7 및 11이 각각 수록되어 있다. 제2블록의 8-15번째 바이트 자리, 제3블록의 12-15번째 바이트 자리는 null로서, 사용자 프로세스로부터 쓰기 시스템 호출이 있다고 하더라도 데이터가 수록되지 않는 영역이다. 다시 말해, 제2블록 및 제3블록의 유효 데이터 수가 각각 7 및 11이므로, 이들 수를 초과하는 데이터의 수록은 제2블록 및 제3블록에서 허용되지 않는다.11 shows an example of a linked list in which 40 bytes are encrypted and configured in a memory. And the effective data numbers of 15, 7, and 11 of the block are recorded in the 16th byte of each block. The 8-15th byte position of the second block and the 12th-15th byte position of the third block are nulls, which is an area where no data is stored even if there is a write system call from the user process. In other words, since the number of valid data in the second block and the third block is 7 and 11, respectively, recording of data exceeding these numbers is not allowed in the second block and the third block.

상기한 [도 9, 10, 11]을 참조하여 커널모드에서의 데이터 자동 암호화 방법을 보다 상세하게 설명하면, 사용자 프로세스로부터의 쓰기 시스템 호출이 된 시점에서 현재의 파일포인터가 제1블록의 13번째 바이트 자리(12가 수록되어 있음)의 위치에 있다면 파일포인터를 1번째 바이트 자리(0이 수록되어 있음)로 그 위치로 조정하고 이동거리 12를 스택 변수에 저장한다. 쓰기 요청된 데이터가 16바이트씩 블록으로 암호화되기 때문에 블록별 유효 데이터 수를 기록할 16번째 바이트 자리를 감안하여 사용자 프로세스로부터 전달된 카운트(count)를 기초로 15 이내의 유효 데이터 수를 가진 블록의 수를 구한다.The method of automatically encrypting data in the kernel mode will be described in more detail with reference to FIGS. 9, 10 and 11. Referring to FIG. 9, when the write system call is made from the user process, If it is in the position of the byte position (12 is included), adjust the file pointer to the position with the first byte position (0 is included) and store the movement distance 12 in the stack variable. Since the data requested to be written is encrypted in blocks of 16 bytes, the number of valid data within a block having a valid data number of 15 or less based on the count transmitted from the user process in consideration of the 16th byte to record the number of valid data per block Find the number.

예를 들어, 사용자 프로세스로부터 40 바이트 쓰기 시스템 호출이 있고 파일포인터가 제1블록의 13번째 바이트 자리에 있는 경우, 메모리에 형성되는 연결리스트, 예컨대 이중연결 리스트(Doubly Linked List)는 유효 데이터 수가 15인 제1블록(13-15번째 바이트 자리에만 데이터가 추가됨); 유효 데이터 수가 7인 제2블록; 유효 데이터수가 11인 제3블록; 유효 데이터 수가 15인 제4블록(미도시); 유효 데이터 수가 4인 제5블록(미도시)으로 그 블록 구조가 형성되므로 암호화될 블록의 수는 5가 되고, 기억장치의 파일에 쓰여질 때에는 16, 16, 16, 16, 16바이트로 블록 암호화되어 저장된다. 만약, 새로 생성되는 파일의 경우엔 메모리에 형성되는 연결리스트는 15, 15, 10바이트로 그 블록구조가 형성되므로 암호화될 블록의 수는 3이 되고, 디스크의 파일에 쓰여질 때에는 16, 16, 16바이트로 블록 암호화된다.For example, if there is a 40 byte write system call from the user process and the file pointer is in the thirteenth byte of the first block, the connection list formed in the memory, such as a doubly linked list, (The data is added only to the 13th-15th byte); A second block having an effective data number of 7; A third block having an effective data number of 11; A fourth block (not shown) having an effective data number of 15; The number of blocks to be encrypted is 5 because the block structure is formed in the fifth block (not shown) having the number of valid data of 4. When the data is written to the file of the storage device, the blocks are encrypted with 16, 16, 16, . In the case of a newly created file, the number of blocks to be encrypted is 3, since the connection list formed in the memory is formed of 15, 15, and 10 bytes, and the number of blocks to be encrypted is 3, Blocks are encrypted in bytes.

데이터의 블록 암호화시 사용되는 암호화키는 SEED 암호화키 자체가 될 수 있다. 하지만, 파일에 대한 보안을 더욱 강화하기 위해 상기한 SEED 암호화키를 바탕으로 암호화 대상 파일마다 서로 다른 고유의 암호화키를 다시 생성하여 사용한다. 이를 위해, 보안등급이 부여된 파일에 데이터를 암호화하여 쓸 때에는 각 파일의 i-node를 참조하여 각 파일마다 유일한 값을 가지는 데이터, 예컨대 파일 최초 생성 시간 또는 파일마다 주어지는 파일의 고유 번호 등을 추출한다.The encryption key used in the block encryption of the data may be the SEED encryption key itself. However, in order to further enhance the security of the file, a different unique encryption key is generated for each file to be encrypted based on the SEED encryption key. For this purpose, when data is encrypted in a file to which a security level is assigned, the data having a unique value for each file, for example, a file initial creation time or a unique number of a file given to each file, is extracted do.

그리고 i-node에서 추출된 데이터를 사용하여 상기한 SEED 암호화키를 소정의 암호화 알고리즘, 예컨대 SEED 암호화 알고리즘을 이용하여 다시 한 번 암호화함으로써 파일별 암호화키를 소정의 비트수, 예컨대 128비트로 다시 생성한다. 예를 들어, 사용자 패스워드, 사용자 비밀번호 등의 사용자 정보와 파일 번호 등의 파일 고유 정보를 포함하는 소정 바이트, 예컨대 16바이트 크기의 데이터를 형성하고 이를 사용하여 파일마다 SEED 암호화키를 재 암호화할 수 있다.Then, by using the data extracted from the i-node, the above-mentioned SEED encryption key is encrypted once again using a predetermined encryption algorithm, for example, SEED encryption algorithm to generate a file-by-file encryption key again with a predetermined number of bits, for example, 128 bits . For example, it is possible to form a predetermined byte, for example, 16 bytes of data including user information such as user password and user password, and file unique information such as a file number, and re-encrypt the SEED encryption key for each file using the data .

그리고 나서, 파일별 암호화키를 본 발명에 따라 블록별로 데이터를 암호화할 때 키로 사용하게 된다. 이처럼 보안등급이 부여된 개별 파일마다 서로 다른 암호화키를 사용하게 되면 보안을 더욱 강화시킬 수 있다. 상기와 같이 암호화될 블록 수를 산출한 다음, 사용자 프로세스로부터 전달받은 버퍼의 내용을 각 블록의 유효 데이터 수만큼을 복사 및 암호화하면서 각 블록에 대한 연결리스트를 메모리에 구성한다. 이러한 과정을 거쳐 최종 구성되는 연결리스트는 도 11과 같다.
Then, the file-by-file encryption key is used as a key when encrypting data block by block according to the present invention. The use of different encryption keys for individual files with such security levels can further enhance security. After calculating the number of blocks to be encrypted as described above, a connection list for each block is configured in the memory while copying and encrypting the contents of the buffer received from the user process for the number of valid data of each block. The connection list finally constructed through such a process is shown in FIG.

다음으로, 실시간 감시부(34)에 대하여 설명한다.Next, the real-time monitoring unit 34 will be described.

기존의 리눅스 운영체제에서의 감사 추적은 정적으로 기록된 사건(event) 로그 파일을 이용하여 별도의 감사 추적 프로그램을 통해서 가능하였다. 이 경우에는 보안관리자 또는 감사인(auditor)에 의한 실시간 감사 추적이 불가능할 뿐만 아니라 다양한 사건 정보의 출력이 어려웠다.The audit trail in the existing Linux operating system was possible through a separate audit trail program using the statically logged event log file. In this case, real-time audit tracing by the security administrator or the auditor is not possible and it is difficult to output various event information.

따라서 실시간 감시부(34)에서는 동적인 데이터베이스를 이용하여 실시간으로 감사 추적을 할 수 있도록 설계하였으며, 로그 정보를 데이터베이스에 실시간으로 저장하도록 구성한다. 따라서 실시간 감시부(34)는 내부 또는 외부 해킹 등의 침입 탐지 및 자료의 유출에 대해서도 실시간으로 확인할 수 있으며, 이러한 일련의 과정이 데이터베이스에 실시간으로 기록되고, 보안관리자에게 실시간으로 전달된다.Accordingly, the real-time monitoring unit 34 is designed to perform an audit trail in real time using a dynamic database, and the log information is configured to be stored in the database in real time. Accordingly, the real-time monitoring unit 34 can check intrusion detection and data leakage such as internal or external hacking in real time. Such a series of processes are recorded in real time in the database and delivered to the security manager in real time.

도 12는 이러한 DB를 이용한 실시간 감사 정보의 흐름을 보여준다.FIG. 12 shows a flow of real-time audit information using such a DB.

실시간 감시부(34)의 감사정보는 MLS 리눅스 시스템에 적합하게 정의된 여러 속성(attribute) 정보들을 저장한다. 보안관리자는 SQL 질의어를 통해서 저장된 정보를 실시간으로 원하는 정보만을 볼 수 있다. 이러한 로그 데이터베이스 파일은 보안등급이 설정되어 있어 시스템 관리자인 root나 일반 사용자는 접근이 통제되어 읽고/쓰기가 불가능하다. 오직 보안관리자만이 인가된 보안등급으로 이러한 작업을 할 수 있다.The audit information of the real-time monitoring unit 34 stores various attribute information defined in the MLS Linux system. The security administrator can view only the desired information in real time through the SQL query language. These log database files are set in security level so that system administrator root or general user can not read / write because access is controlled. Only a security administrator can do this with an authorized security level.

실시간 감시부(34)의 감사 정보테이블은 30여 개의 항목으로 구성되어있으며, 감사 추적 시스템은 세 개의 영역으로 그 기능을 세분화하였다. 첫째, 커널에 MLS 로그 정보를 데이터베이스에 연결하여 사용할 수 있게 MySQL 데이터베이스 함수를 사용하여 db_open() 함수, db_close() 함수, 그리고 db_query() 함수를 커널 함수로 하였다. 둘째, 시스템 호출을 이용하여 커널 영역의 메모리인 log book에서 로그 정보를 가져오는 audit 함수를 설계하였으며, 셋째로 커널과 시스템 호출을 이용하여 사용자 영역에서 기존의 klogd나 syslogd의 역할을 대신 수행하는 getlogd를 구성하였다. 도 13은 실시간 감시부(34)에서 설계된 실시간 감사 추적 구조를 보여준다.
The audit information table of the real-time monitoring unit (34) is composed of about 30 items, and the audit tracing system has subdivided its functions into three areas. First, we used db_open (), db_close (), and db_query () functions as kernel functions to connect the MLS log information to the kernel and use them in MySQL database functions. Second, an audit function that retrieves log information from log book, which is memory of kernel area using system call, is designed. Third, it uses getlogd () function which performs the role of existing klogd or syslogd in user area by using kernel and system call. Respectively. FIG. 13 shows a real-time audit trail structure designed in the real-time monitoring unit 34. FIG.

다음으로, 보안 출력부(35)에 대하여 설명한다.Next, the security output unit 35 will be described.

이동용 컴퓨터의 탈취, 분실 시, 보조 기억장치에 저장된 비밀 수준의 정보유출은 많은 문제를 일으킬 수 있다. 그 한 예로, 비밀 파일을 처리할 보안허가 권한이 없는 내부 및 외부 사용자 또는 프로세스 주체가 디스켓 등에 저장된 객체인 비밀 파일에 임의적으로 접근하여, 비밀 정보인 객체를 불법적으로 읽고 출력할 수 있다. 리눅스에서 적용되는 접근제어는 사용자 소유의 파일에 대해서 허가 비트를 설정하여 그룹 내의 사용자, 또는 다른 사용자에게 읽기를 통한 출력 권한을 임의적으로 허가하였다.When a portable computer is stolen or lost, the information leakage of the secret level stored in the auxiliary memory may cause a lot of problems. As an example, an internal or external user or process subject having no security permission to process a secret file may arbitrarily access a secret file, which is an object stored on a diskette or the like, to illegally read and output an object that is secret information. In Linux, the access control arbitrarily set the permission bit for the user's own file and allow the user in the group or other users to access the file through reading.

이러한 임의적 접근제어 방식에서는 다음과 같은 문제점이 발생될 수 있다. 첫째, 소유자인 사용자 또는 시스템의 루트가 비밀 수준의 파일을 임의적인 판단으로 비밀허가 권한이 없는 사용자에게 복사해 주거나 프린트에 출력하여 외부로 유출시킬 경우, 비밀 파일의 정보가 비밀접근 권한이 없는 제3자에게 노출될 수 있다. 둘째, 이러한 보안 정보 파일의 출력시 출력 용지에 파일의 비밀 등급, 파일의 소유자, 출력자 ID, 출력시간 등의 보안 표시 정보가 출력되지 않기 때문에, 무책임하고 용이하게 보안 정보가 누출될 수 있다. 그러므로 보안등급 파일의 보안표시 정보의 강제적 출력 방법을 프로그램화하여 보안 정보 실명화를 위해 보안등급 이 부여된 파일에 대하여 내용을 프린터에서 출력하고자 할 때 파일의 보안등급 표시 정보(보안등급, 보호범주, 파일소유자, 출력자 ID, 출력시간)를 인쇄용지에 강제적으로 출력하게 하는 보안 정보 출력 방법이 필요하다.In such an arbitrary access control method, the following problems may occur. First, when the owner user or the root of the system copies files of a secret level to a user who does not have the secret permission authority in an arbitrary judgment or outputs the information to the outside of the printer, It can be exposed to three people. Second, since the security level information such as the file's secret level, the owner of the file, the output ID, and the output time are not output on the output paper at the time of outputting the security information file, the security information can be irresponsibly and easily leaked. Therefore, when a method of forcibly outputting the security indication information of the security rating file is programmed and the contents are outputted from the printer to the file having the security rating for realizing security information, the security level indication information (security level, protection category, A file owner, an output ID, and an output time) on the printing paper is required.

리눅스에서는 lpd(Line Printer Daemon)를 이용하여 출력을 하는데, 시스템 부팅 시 lpd 데몬(daemon)이 실행되고, 이 lpd 데몬은 "/etc/printcap" 파일을 검색하여 스풀 작업에 필요한 논리 프린터가 정의되어 있는지 검색하고, 스풀 큐(spool queue)에 작업이 남아있는지 검색하여 작업이 남아 있으면 프린트하게 된다. 만일 사용자가 lpr 명령어 또는 문서작성 프로그램을 사용하여 보안등급을 갖는 비밀 내용의 파일을 프린트하게 되면, 이때의 수행 과정으로, lpr은 출력할 파일명, 파일의 소유자 및 출력자 ID, 출력 포맷, 보안등급 정보 등에 대한 정보를 lpd에게 제공하기 위하여 스풀 큐에 넣고, "/dev/Linux uses lpd (Line Printer Daemon) to print output. When the system boots, the lpd daemon runs. This lpd daemon searches the file "/ etc / printcap" to define the logical printer needed for spooling. And searches the spool queue for any remaining jobs and prints if the job remains. If the user prints a confidential file with a security level using the lpr command or a document creation program, lpr will display the file name to be output, the owner and the output ID of the file, the output format, the security level Information, etc. to lpd, put it in the spool queue, "/ dev /

printer"라는 소켓(socket)을 통해 lpd를 구동시키는 제1단계와, lpr 요청에 따라 lpd 데몬이 생성(fork)되어 스풀 큐에서 순서대로 해당 파일을, 지정된 프린터로 출력하기 위해서 작업을 설정하는 제2단계와, lpd 데몬이 프린터 필터를 통하여 보안 표시 정보 및 파일 내용을 프린트하는 제3단계를 포함한다. 도 14는 보안 표시 정보의 강제적 출력의 구조를 나타내고 있다.The first step is to run lpd through a socket called "printer". The lpd daemon is forked according to the lpr request. The lpd daemon is forked so that the file is output to the designated printer in order from the spool queue. And a third step in which the lpd daemon prints the security indication information and the contents of the file through the printer filter. Fig. 14 shows the structure of the forced output of the security indication information.

다음으로, 보안 인터페이스부(36)를 설명한다.Next, the security interface unit 36 will be described.

기존의 리눅스 커널에 다중등급 보안 기능을 새로이 추가 구현함에 따라 다중등급 보안 기능을 통제하고 이용할 수 있는 응용 프로그램을 위한 응용 프로그램 인터페이스(Application Programming Interface)제공이 필요하게 된다. 특히 리눅스 시스템의 경우 다중 사용자 환경에서 사용이 많은 관계로 보안관리자는 각 사용자가 올바른 보안등급을 가지고 작업을 수행하고 있는 지에 대한 보안 정보, 즉 보안등급과 보호범주를 부여하고 확인 할 수 있는 시스템 호출 및 명령이 필요하다. New implementations of multi-level security features in existing Linux kernels will require the provision of application programming interfaces for applications that can control and utilize multi-level security features. In particular, since the Linux system has many uses in a multi-user environment, the security administrator can use security information on whether or not each user is performing a task with the right security level, that is, a system call And commands are required.

도 15는 보안 인터페이스를 위한 주요 시스템 호출과 그에 따른 기능 설명이다. 또한 각 사용자로 하여금 자신의 보안정보를 확인할 수 있도록 하는 인터페이스 제공 또한 필요하다. 이때의 인터페이스는 보안관리자 용의 부분집합이 되어야 한다.Figure 15 is a key system call for a security interface and a functional description thereof. It is also necessary to provide an interface that allows each user to verify his / her security information. The interface at this time should be a subset for the security administrator.

도 16은 사용자 보안정보를 확인하는 시스템 호출의 예를 나타낸다. 커널 모드에서 동작하는 시스템 호출에서는 사용자의 보안등급과 보호범주를 읽기 위해서 프로세스 정보 영역에서 사용자 프로세스 아이디(PID)를 비교하여 일치하는 경우, 그 사용자의 보안등급과 보호범주 값을 반환하게 된다. 이 시스템 호출은 사용자 모드에서 사용자가 객체 접근 시에 객체의 보안등급과 보호범주를, 사용자의 보안등급과 보호범주와 비교하여 수정된 BLP 모델에 의해서 접근이 결정될 때 사용된다.
FIG. 16 shows an example of a system call for confirming user security information. In the system call that operates in the kernel mode, the user process ID (PID) is compared in the process information area to read the security level and the protection category of the user, and if it matches, the security level and the protection category value of the user are returned. This system call is used when the access level is determined by the modified BLP model by comparing the security level and protection category of the object with the security level and protection category of the user when the user accesses the object in the user mode.

이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
The invention made by the present inventors has been described concretely with reference to the embodiments. However, it is needless to say that the present invention is not limited to the embodiments, and that various changes can be made without departing from the gist of the present invention.

Claims (5)

리눅스 운영체제의 커널 수준에서 사용자의 등급에 따라 차등적으로 접근을 제한하는 다중 등급 기반 보안 리눅스 운영 시스템에 있어서,
BLP(Bell-La Padula) 모델을 적용하여 사용자에 대한 접근을 통제하는 접근 통제부;
주체에 대한 허가 등급 및 보호 범주를 정의한 주체 보안 레이블과, 객체에 대한 허가 등급 및 보호 범주를 정의한 객체 보안 레이블을 구비하는 참조 모니터부;
상기 주체 보안 레이블과 상기 객체 보안 레이블에 기록된 허가 등급 및 보호 범주를 참조하여, 파일에 기록된 허가 등급 및 보호 범주에 따라 암호화 여부를 자동으로 결정하여 암호화를 수행하는 커널모드 암호부; 및,
동적인 데이터베이스를 이용하여 파일의 접근을 실시간으로 기록하는 실시간 감시부를 포함하고,
상기 커널모드 암호부는 파일을 소정의 크기의 블록으로 나누어 암호화하고 암호화된 블록을 연결 리스트로 연결하는 것을 특징으로 하는 다중 등급 기반 보안 리눅스 운영 시스템.
In a multi-class based security Linux operating system that restricts access differentially according to the user's level at the kernel level of the Linux operating system,
An access control unit for controlling access to a user by applying a BLP (Bell-La Padula) model;
A reference security unit having a subject security label that defines a permission level and a protection category for a subject, and an object security label that defines a permission level and a protection category for the object;
A kernel mode cryptographic unit for performing encryption by automatically determining whether or not to encrypt according to the permission level and the protection category recorded in the file by referring to the permission level and the protection category recorded in the subject security label and the object security label; And
And a real-time monitoring unit for recording the access of the file in real time using a dynamic database,
Wherein the kernel mode encryption unit divides a file into blocks of a predetermined size, encrypts the encrypted blocks, and connects the encrypted blocks to the linked list.
제1항에 있어서,
상기 접근통제부는 주체가 객체보다 등급이 높거나 같을 경우에만 읽기를 가능하게 하고, 등급이 같을 경우에만 쓰기를 가능하게 하는 것을 특징으로 하는 다중 등급 기반 보안 리눅스 운영 시스템.
The method according to claim 1,
Wherein the access control unit enables reading only when the subject has a higher or equal rating than the object, and enables writing only when the rating is the same.
제1항에 있어서,
상기 참조 모니터부는 사용자가 새로운 객체를 생성할 때 사용자의 주체의 보안 등급과 보호범주를 상기 주체 보안 레이블로부터 읽고, 상기 주체의 보안 등급과 보호범주에 따라 상기 객체의 디스크 아이노드(i-node) 구조에 보안 등급 및 보호범주를 기록하는 것을 특징으로 하는 다중 등급 기반 보안 리눅스 운영 시스템.
The method according to claim 1,
The reference monitor unit reads the security level and the protection category of the subject of the user from the subject security label when the user creates a new object and displays the disk inode of the object according to the security level and the protection category of the subject, Wherein the security class and the protection category are recorded in the structure of the secure Linux operating system.
삭제delete 제1항에 있어서, 상기 시스템은,
파일을 출력시 상기 파일의 객체 보안 레이블에 기록된 보안 등급과 보호범주를 함께 출력하는 보안출력부; 및,
응용 프로그램을 위한 응용 프로그램 인터페이스(Application Programming Interface)를 제공하되, 상기 인터페이스에서 시스템 호출에 대한 보안 등급과 보호 범주에 따라 호출의 처리를 제한하는 보안 인터페이스부를 더 포함하는 것을 특징으로 하는 다중 등급 기반 보안 리눅스 운영 시스템.
The system of claim 1,
A security output unit for outputting a security category and a protection category recorded in an object security label of the file when the file is output; And
Further comprising a security interface unit for providing an application program interface for an application program, the security interface unit limiting the processing of the call according to the security level of the system call and the protection category in the interface. Linux operating system.
KR1020130008275A 2013-01-24 2013-01-24 A Secured Linux Operationg System Using Multi-level Security KR101414580B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130008275A KR101414580B1 (en) 2013-01-24 2013-01-24 A Secured Linux Operationg System Using Multi-level Security

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130008275A KR101414580B1 (en) 2013-01-24 2013-01-24 A Secured Linux Operationg System Using Multi-level Security

Publications (1)

Publication Number Publication Date
KR101414580B1 true KR101414580B1 (en) 2014-07-16

Family

ID=51740999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130008275A KR101414580B1 (en) 2013-01-24 2013-01-24 A Secured Linux Operationg System Using Multi-level Security

Country Status (1)

Country Link
KR (1) KR101414580B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077428A (en) * 2014-09-30 2017-08-18 微软技术许可有限责任公司 Protect using secret from operating system attack
KR20190007559A (en) * 2017-07-12 2019-01-23 주식회사 넷앤드 A DB access control system based on banned-word by using the parser, for enhancing security of personal information
KR20200032413A (en) * 2018-09-18 2020-03-26 이화여자대학교 산학협력단 Method of application processing in linux containers environments, recording medium and apparatus for performing the method
US20200228347A1 (en) * 2019-01-14 2020-07-16 Alibaba Group Holding Limited Data Security Processing and Data Source Tracing Method, Apparatus, and Device
CN111984998A (en) * 2020-08-20 2020-11-24 北京人大金仓信息技术股份有限公司 Mandatory access control method and device for database
CN112231733A (en) * 2020-10-29 2021-01-15 刘秀萍 MAC protection enhancement system of object proxy feature database
CN112364374A (en) * 2020-11-04 2021-02-12 沈阳通用软件有限公司 File copying, moving, compressing and decompressing operation identification method on Linux platform
CN117436079A (en) * 2023-12-20 2024-01-23 麒麟软件有限公司 Integrity protection method and system for Linux system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016711A (en) * 2000-08-26 2002-03-06 박태규 Mandatory Object Access Control Method Using Multi-Level Security, and Computer Readable Recording Medium Having thereon Programmed Mandatory Object Access Control Method Using Multi-Level Security
KR20030077866A (en) * 2002-03-27 2003-10-04 광주과학기술원 Extended BLP Security System
KR20090103396A (en) * 2008-03-28 2009-10-01 티에스온넷(주) Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016711A (en) * 2000-08-26 2002-03-06 박태규 Mandatory Object Access Control Method Using Multi-Level Security, and Computer Readable Recording Medium Having thereon Programmed Mandatory Object Access Control Method Using Multi-Level Security
KR20030077866A (en) * 2002-03-27 2003-10-04 광주과학기술원 Extended BLP Security System
KR20090103396A (en) * 2008-03-28 2009-10-01 티에스온넷(주) Mandatory process memory access control method using multi-level security, and computer readable recording medium having thereon programmed mandatory process memory access control method using multi-level security

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077428A (en) * 2014-09-30 2017-08-18 微软技术许可有限责任公司 Protect using secret from operating system attack
CN107077428B (en) * 2014-09-30 2020-08-14 微软技术许可有限责任公司 Method, electronic system and computer storage medium for protecting application secret
KR20190007559A (en) * 2017-07-12 2019-01-23 주식회사 넷앤드 A DB access control system based on banned-word by using the parser, for enhancing security of personal information
KR101963153B1 (en) 2017-07-12 2019-03-29 주식회사 넷앤드 A DB access control system based on banned-word by using the parser, for enhancing security of personal information
KR20200032413A (en) * 2018-09-18 2020-03-26 이화여자대학교 산학협력단 Method of application processing in linux containers environments, recording medium and apparatus for performing the method
KR102130504B1 (en) 2018-09-18 2020-08-05 이화여자대학교 산학협력단 Method of application processing in linux containers environments, recording medium and apparatus for performing the method
US20200228347A1 (en) * 2019-01-14 2020-07-16 Alibaba Group Holding Limited Data Security Processing and Data Source Tracing Method, Apparatus, and Device
CN111984998A (en) * 2020-08-20 2020-11-24 北京人大金仓信息技术股份有限公司 Mandatory access control method and device for database
CN112231733A (en) * 2020-10-29 2021-01-15 刘秀萍 MAC protection enhancement system of object proxy feature database
CN112364374A (en) * 2020-11-04 2021-02-12 沈阳通用软件有限公司 File copying, moving, compressing and decompressing operation identification method on Linux platform
CN117436079A (en) * 2023-12-20 2024-01-23 麒麟软件有限公司 Integrity protection method and system for Linux system
CN117436079B (en) * 2023-12-20 2024-04-05 麒麟软件有限公司 Integrity protection method and system for Linux system

Similar Documents

Publication Publication Date Title
CN109923548B (en) Method, system and computer program product for implementing data protection by supervising process access to encrypted data
KR101414580B1 (en) A Secured Linux Operationg System Using Multi-level Security
Malik et al. Database security-attacks and control methods
US7577838B1 (en) Hybrid systems for securing digital assets
KR101373542B1 (en) System for Privacy Protection which uses Logical Network Division Method based on Virtualization
JP2002318719A (en) Highly reliable computer system
WO2007001046A1 (en) Method for protecting confidential file of security countermeasure application and confidential file protection device
CN102799539A (en) Safe USB flash disk and data active protection method thereof
Singh et al. A review report on security threats on database
Jain et al. A relative study on different database security threats and their security techniques
CN115329351A (en) File protection system and method for Windows system
JPH0341535A (en) Forced execution method of security protection in computer-system
Hunter An information security handbook
US20100088770A1 (en) Device and method for disjointed computing
KR101416618B1 (en) An Intrusion Prevention System Using Enhanced Security Linux kernel
Iglio Trustedbox: a kernel-level integrity checker
Kang et al. A study on the needs for enhancement of personal information protection in cloud computing security certification system
CN111079154A (en) Kernel reinforcing system for protecting kernel of operating system from being damaged by external program
Song et al. Operating system security and host vulnerability evaluation
Griscioli et al. Securing promiscuous use of untrusted usb thumb drives in industrial control systems
National Computer Security Center (US) Glossary of Computer Security Terms
KR102618922B1 (en) Apparatus and method for Preventing SW reverse engineering of embedded system
KR102623168B1 (en) Data protection system
KR102591450B1 (en) Registry parser and encryption/decryption module to prevent stealing of important information in Windows operating system and its operating method
US20220350900A1 (en) Secure distribution of embedded policy

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