KR20070008782A - Method and system of processing kernel patch for prevention of kernel vulnerability - Google Patents

Method and system of processing kernel patch for prevention of kernel vulnerability Download PDF

Info

Publication number
KR20070008782A
KR20070008782A KR1020050062560A KR20050062560A KR20070008782A KR 20070008782 A KR20070008782 A KR 20070008782A KR 1020050062560 A KR1020050062560 A KR 1020050062560A KR 20050062560 A KR20050062560 A KR 20050062560A KR 20070008782 A KR20070008782 A KR 20070008782A
Authority
KR
South Korea
Prior art keywords
kernel
patch
module
vulnerability
information
Prior art date
Application number
KR1020050062560A
Other languages
Korean (ko)
Other versions
KR100706176B1 (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 KR1020050062560A priority Critical patent/KR100706176B1/en
Publication of KR20070008782A publication Critical patent/KR20070008782A/en
Application granted granted Critical
Publication of KR100706176B1 publication Critical patent/KR100706176B1/en

Links

Images

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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

A kernel patch method for protecting vulnerability of a kernel and a system thereof are provided to effectively manage against hacking using the kernel vulnerability without modifying the kernel, or a recompiling or rebooting process by making a routine to supplement the kernel vulnerability into an LKM(Loadable Kernel Module) type kernel module. A kernel exploit prevention module(410) uses a KLM mode for removing the kernel vulnerability. A kernel patch database stores information for the vulnerability protecting modules of each version. A system information collecting module searches the patch corresponding to the kernel version of a kernel system by searching the kernel patch database. An OS(Operating System) patches the kernel by forming an LKM having an effectiveness check code with a system call hooking technique to enable a user program(200) to use a kernel service of the OS through a system call interface(210).

Description

커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템{METHOD AND SYSTEM OF PROCESSING KERNEL PATCH FOR PREVENTION OF KERNEL VULNERABILITY} Kernel patching method and system to protect kernel vulnerabilities {METHOD AND SYSTEM OF PROCESSING KERNEL PATCH FOR PREVENTION OF KERNEL VULNERABILITY}

도 1은 종래에 리눅스 커널 보안 취약점을 해소하기 위한 커널 패치 방법을 도시한 개략도이고, 1 is a schematic diagram showing a kernel patch method for solving the Linux kernel security vulnerability in the prior art,

도 2는 본 발명이 적용될 수 있는 일반적인 리눅스 운영체제의 구성도이고, 2 is a configuration diagram of a general Linux operating system to which the present invention can be applied;

도 3은 본 발명에 따라 리눅스 커널의 취약점을 보완하기 위한 커널 패치 방법을 도시한 순서도이고, 3 is a flowchart illustrating a kernel patch method for compensating for a vulnerability of the Linux kernel according to the present invention;

도 4는 본 발명에 의한 커널 취약점 패치 모듈의 동작 절차를 도시한 개략도이며, 4 is a schematic diagram showing an operation procedure of a kernel vulnerability patch module according to the present invention;

도 5는 본 발명에 따라 새로운 커널 취약점이 발견되었을 때 취약점을 보완하기 위한 패치 과정을 도시한 도면이다. 5 is a diagram illustrating a patch process for supplementing a vulnerability when a new kernel vulnerability is found according to the present invention.

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

200 : 사용자 응용 프로그램 210 : 시스템 호출 인터페이스 200: user application 210: system call interface

230 : 리눅스 커널 320 : 커널 패치 DB 230: Linux Kernel 320: Kernel Patch DB

400 : 시스템 콜 후킹 모듈 410 : 커널 취약점 방어 모듈 400: system call hooking module 410: kernel vulnerability defense module

420 : 설정모듈 430 : 로그모듈 420: configuration module 430: log module

440 : 프로파일 450 : 로그 데이터 440: Profile 450: log data

발명은 컴퓨터 운영체제의 보안 패치 방법에 관한 것으로, 보다 상세하게는 커널 소스 코드 자체의 보안 취약점(security vulnerability)에 대하여 커널 패치 후 재컴파일하거나 재부팅할 필요 없이 시스템의 보안을 향상시킬 수 있는 커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템에 관한 것이다. The present invention relates to a security patch method of a computer operating system, and more particularly, a kernel vulnerability that can improve the security of a system without having to recompile or reboot after a kernel patch against a security vulnerability of the kernel source code itself. It relates to a kernel patch method and system for defending.

일반적으로, 운영체제의 주요 기능은 컴퓨터 시스템의 자원을 관리하는 것이다. 자원들에는 프로세서, 저장장치(메모리, 하드 디스크 등), 입/출력 장치(프린터, 모니터 디스플레이 등), 및 통신 장치(모뎀, 네트워크 인터페이스 등)가 있다. 운영체제 커널은 운영 체제의 핵심 또는 코아 컴포넌트이다. 커널의 기능으로는 프로세스 관리, 프로세스간의 통신(IPC), 인터럽트 처리, 스토리지 할당/반환 지원, 입/출력 활동 지원, 시스템 보안 방법 등이 있다. In general, the primary function of an operating system is to manage the resources of a computer system. Resources include processors, storage devices (memory, hard disks, etc.), input / output devices (printers, monitor displays, etc.), and communication devices (modems, network interfaces, etc.). The operating system kernel is the core or core component of the operating system. Kernel features include process management, interprocess communication (IPC), interrupt handling, storage allocation / return support, input / output activity support, and system security methods.

이러한 운영체제의 핵심 기능을 수행하는 커널의 취약점(vulnerability)을 이용한 공격 익스플로잇(Exploits) 프로그램은 텔넷(telnet), 에프티피(ftp) 등의 응용 프로그램이나 데몬 서비스의 취약점을 이용한 공격 익스플로잇 프로그램들과 달리 특정 서비스의 사용 유무에 상관없이 해킹될 수 있다는 특징이 있다. Attack exploit programs that exploit kernel vulnerabilities that perform the core functions of these operating systems are different from exploit exploit programs that exploit vulnerabilities in applications such as telnet and ftp or daemon services. It can be hacked with or without a specific service.

종래의 운영체제에 대한 보안 기술을 시큐어 오에스(Secure OS) 기술 또는 트러스티드 오에스(Trusted OS) 기술로 불리우고, 주로 주체와 객체간의 보안 등급과 보안 범주에 기반하여 접근통제하는 방식으로 구현되며, 시스템 호출 후킹 기법과 엘케이엠(LKM:Loadable Kernel Module) 방식을 이용하여 주체(사용자나 프로세스)가 특정 객체(파일 등)를 접근하려고 할 때 이를 통제한다. 커널 모듈로 구현된 참조 모니터(Reference Monitor)에 의해 파일 등 모든 자원에 대한 접근 통제가 이루어지며, 이를 토대로 권한이 없는 사용자에 의한 불법적인 접근 또는 외부로부터 악의적인 목적으로 시도되는 해킹은 운영체제 커널에서 강제적으로 차단된다. The security technology of the conventional operating system is called a Secure OS technology or a Trusted OS technology, and is mainly implemented by access control based on the security level and security category between the subject and the object. The hooking technique and the Loadable Kernel Module (LKM) method are used to control when a subject (user or process) tries to access a specific object (file, etc.). The reference monitor implemented as a kernel module controls access to all resources such as files. Based on this, illegal access by unauthorized users or hacking attempted for malicious purposes from outside can be performed by the operating system kernel. Forcibly shut off.

그러나 일부 커널 취약점의 경우에는 로컬 사용자가 자신이 작성한 프로그램을 실행할 권한만 있다면 커널 취약점을 이용한 루트 권한 획득 또는 시스템 작동 중지가 가능하다. 즉, 주체/객체간의 보안 정보에 기반한 접근통제 방식은 응용 프로그램 취약점이 아닌 커널 자체의 취약점을 제거하기 위한 근본적인 해결책이 될 수 없으므로 취약한 핵심 커널 소스 자체의 패치가 추가적으로 필요하다. However, for some kernel vulnerabilities, if a local user only has the authority to execute a program written by the user, it is possible to obtain root privileges or use the system by using a kernel vulnerability. In other words, access control based on security information between subjects / objects cannot be a fundamental solution to eliminate the vulnerability of the kernel itself, not an application vulnerability. Therefore, a patch of the vulnerable core kernel source itself is needed.

이와 관련하여 패치 서버와 클라이언트 구성을 통하여 안전하게 패치를 배포할 수 있는 방법을 제안한 바 있으며, 예를 들어 새롭게 추가되는 패치와 전체 클라이언트들의 패치에 대한 전역 패치 프로파일을 관리하는 패치 매니저를 구비하는 패치 분배 서버와, 패치 분배 서버에 각각 접속된 다수의 클라이언트로 이루어진 시스템에 대해, 각 클라이언트에는 기 설치된 패치에 대한 패치 프로파일을 관리하는 패치 에이전트가 설치하여 패치 관리를 수행한 바 있다. In this regard, we have proposed a way to distribute patches securely through a patch server and client configuration. For example, patch distribution is provided with a patch manager that manages global patch profiles for newly added patches and patches for all clients. For a system consisting of a server and a plurality of clients connected to a patch distribution server, a patch agent that manages a patch profile for pre-installed patches is installed on each client to perform patch management.

그러나 커널 패치가 바이너리 형태로 구성될 경우, 바이너리 업데이트 (Update) 또는 치환으로 시스템의 패치가 가능한 경우에 적용 가능하나 리눅스 커널과 같이 텍스트 형태로 패치가 배포되는 경우에는 적용하기가 어렵다. 따라서 리눅스 커널을 대상으로 하여 취약한 커널 소스 자체의 패치를 위해서는 커널 버전에 따른 패치를 다운받아서 패치해야 한다. However, if the kernel patch is configured in binary form, it can be applied when the system can be patched by binary update or replacement, but it is difficult to apply when the patch is distributed in text form like the Linux kernel. Therefore, in order to patch the vulnerable kernel source itself for the Linux kernel, it is necessary to download the patch according to the kernel version.

리눅스 커널 패치는 오픈 소스 진영에서 제공하는 패치와 배포판 제작 업체에서 제공하는 패치로 나눌 수 있다. 이러한 패치는 커널 버전별로 관리되며 보안 취약점이 발견될 경우마다 발표되는 임시 패치들도 존재한다. 커널 패치는 텍스트 비교 도구를 이용하여 제작되고, 커널 버전에 따라 순서대로 적용해 주어야만 한다. 그리고 패치 적용 후, 커널을 재컴파일하고 시스템을 재부팅하는 과정을 수행해야만 한다. Linux kernel patches can be divided into patches provided by the open source camp and those provided by distribution manufacturers. These patches are managed by kernel version and there are temporary patches released whenever a security vulnerability is found. Kernel patches are created using text comparison tools and must be applied in order, depending on the kernel version. After applying the patch, you must recompile the kernel and reboot the system.

도 1은 종래 방식에 따른 커널 취약점을 보완하기 위한 커널 패치 방법을 도시한 순서도이다. 1 is a flowchart illustrating a kernel patch method for compensating for a kernel vulnerability according to a conventional method.

도 1을 참조하면, 먼저 취약점을 패치할 시스템에 커널 소스가 존재하는지를 검사하고(101), 커널 소스가 시스템 내에 존재하지 않을 경우에는 먼저 커널 소스를 구하여 시스템에 설치해야 한다(102). Referring to FIG. 1, first, it is checked whether a kernel source exists in a system to patch a vulnerability (101), and if a kernel source does not exist in a system, a kernel source must first be obtained and installed in a system (102).

그리고 커널 버전에 해당되는 커널의 취약점을 보완하기 위한 커널 패치를 수집하고(103), 수집된 커널 패치를 적용한다(104). In addition, a kernel patch for supplementing a kernel vulnerability corresponding to a kernel version is collected (103), and the collected kernel patch is applied (104).

여기서, 리눅스 커널 패치는 윈도우에서처럼 특정 업체가 패치를 제작하고 배포하는 단일화된 시스템이 아니며, 다양한 방식의 커널 패치가 제공되고 있다. 커널 패치는 매번 커널이 바뀔 때마다 커널 소스를 다시 받을 필요없이 바뀐 차이점만을 담고 있는 작은 용량의 텍스트 파일로서, 커널 패치에 포함된 내용은 커널의 기능 및 성능 향상과 커널의 보안상 취약점을 제거하기 위한 보안 패치를 포함하고 있다. 그러나 리눅스 커널 패치는 텍스트 비교 도구를 이용하여 제작되는 것이므로, 반드시 커널 버전에 따라 순서대로 적용해야만 한다. 통상, 리눅스 커널 패치를 제작하고 배포하는 주체는 오픈소스 진영과 각 배포판 제작 업체로 나눌 수 있다. 오픈소스 진영의 패치는 공식 패치와 사안 별로 제작하여 배포하는 임시 패치로 나눌 수 있다. Here, the Linux kernel patch is not a unified system for producing and distributing patches by specific vendors as in Windows, and various kernel patches are provided. A kernel patch is a small text file that contains only the differences without having to re-download the kernel source each time the kernel changes. The contents of the kernel patch are intended to improve kernel functionality and performance and eliminate kernel security vulnerabilities. Includes security patches for However, Linux kernel patches are produced using text comparison tools, so they must be applied in order according to the kernel version. Typically, the main producers and distributors of Linux kernel patches can be divided into the open source camp and each distribution vendor. Patches from the open source camp can be divided into official patches and temporary patches produced and distributed on a case-by-case basis.

한편, 커널 소스에 커널 취약점을 제거하는 커널 패치를 적용한 후에는 커널을 컴파일할 준비 작업으로서, 시스템의 환경에 맞도록 커널 설정(105)을 해주어야 하고, 재컴파일해주어야 하며(106), 컴파일이 성공할 경우, 성공한 커널 이미지를 이용하여 부팅에 성공할 때까지 시스템 재부팅을 수행한다(107∼109). On the other hand, after applying a kernel patch to remove kernel vulnerabilities in the kernel source, the kernel configuration 105 must be reconfigured and recompiled according to the environment of the system as a preparation for compiling the kernel (106). In this case, system reboot is performed until successful booting using the successful kernel image (107 to 109).

그러나 커널 컴파일은 한번에 성공하기 힘들고, 컴파일 시에 오류가 발생하면 오류를 제거하기 위하여 커널 설정을 다시 수행하고, 상기의 컴파일 과정과 재부팅 과정을 다시 수행해야 하므로 커널 재컴파일 작업은 상당히 번거로운 문제점이 있었다. 즉, 종래에는 취약점이 발생한 커널 코드를 수정 패치하기 위하여 시스템에 운영중인 커널 버전에 해당되는 커널 소스를 준비하고, 커널을 재컴파일하고 시스템을 재부팅해야하는 과정을 거쳐야 하므로 중요한 업무를 처리하는 시스템의 경우에는 이러한 과정에 대한 부담감으로 패치하기 곤란한 경우가 많았다. However, kernel compilation cannot be successful at a time, and if an error occurs during compilation, the kernel recompilation process is quite cumbersome because the kernel configuration must be redone to remove the error, and the above compiling and rebooting process must be performed again. . In other words, in the case of a system that handles important tasks, the kernel source corresponding to the kernel version running on the system must be prepared, and the kernel must be recompiled and the system rebooted to fix and patch the vulnerable kernel code. In many cases, it was difficult to patch due to the burden on this process.

본 발명은 상기와 같은 종래의 문제점들을 해결하기 위해, 커널 자체 취약점을 보완할 수 있는 루틴을 엘케이엠(LKM: Loadable Kernel Module) 형태의 커널 모듈로 제작하여 커널 수정이나 시스템 재컴파일 및 재부팅 과정없이 효과적으로 커널 취약점을 이용한 해킹에 대응할 수 있는 커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템을 제공하는데 그 목적이 있다. In order to solve the above problems, the present invention provides a routine capable of compensating the kernel itself in a kernel module in the form of a loadable kernel module (LKM) without modifying the kernel or recompiling the system and rebooting. Its purpose is to provide a kernel patch method and system for defending kernel vulnerabilities that can effectively counter hacking using kernel vulnerabilities.

또한, 본 발명의 다른 목적은 새롭게 발표된 커널 취약점 보완 모듈을 용이하게 추가할 수 있는 커널 패치 방법 및 시스템을 제공하는 것이다. Another object of the present invention is to provide a kernel patch method and system that can easily add a newly released kernel vulnerability supplement module.

상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 공개된 패치를 분석하여 커널 취약점을 보완할 수 있는 커널 취약점 패치 모듈을 제작하고, 상기 제작된 패치 모듈과 패치 모듈 정보를 커널 패치 DB에 저장하는 커널 취약점 패치 제작 단계; 현재 시스템의 커널 버전 정보, 기존 커널 패치 모듈의 존재 유무 정보, 기존 커널 패치 모듈의 버전 정보 등을 수집하는 시스템 정보 수집 단계; 상기 수집된 커널 정보에 기반하여 상기 커널 패치 DB를 검색하고, 현 시스템에 적용되어야 할 패치 모듈이 있는지 검사하는 커널 패치 DB 검색 단계; 및 상기 커널 패치 DB로부터 획득한 커널 취약점 패치 모듈을 적재하는 커널 취약점 패치 모듈 적재 단계를 구비한 것을 특징으로 한다. In order to achieve the above object, the method of the present invention analyzes an open patch, creates a kernel vulnerability patch module that can compensate for a kernel vulnerability, and stores the produced patch module and patch module information in a kernel patch DB. Kernel vulnerability patch production step; A system information collecting step of collecting kernel version information of the current system, presence or absence information of an existing kernel patch module, version information of an existing kernel patch module, and the like; A kernel patch DB search step of searching for the kernel patch DB based on the collected kernel information and checking whether there is a patch module to be applied to the current system; And a kernel vulnerability patch module loading step of loading a kernel vulnerability patch module obtained from the kernel patch DB.

상기와 같은 목적을 달성하기 위하여 본 발명의 패치관리 방법은 업데이트된 커널 패치 모듈을 다운받기 위하여 현재 시스템의 커널 정보와 현재 동작 중인 커널 패치 모듈의 버전 정보 등의 시스템 정보를 수집하는 단계; 커널 패치 모듈 DB를 검색하여 현 시스템의 정보에 해당되는 최신 커널 패치 모듈이 존재하는지 확인하고, 존재할 경우 이를 다운로드받는 단계; 상기 다운로드받은 커널 패치 모듈과 현재 커널 패치 모듈을 비교하는 단계; 및 상기 다운로드받은 커널 패치 모듈이 업데이트된 커널 패치 모듈인 경우, 기존 커널 패치 모듈을 내리고, 새로운 커널 패치 모듈을 적재하는 단계를 포함한다. In order to achieve the above object, the patch management method of the present invention includes collecting system information such as kernel information of a current system and version information of a currently running kernel patch module to download an updated kernel patch module; Searching the kernel patch module DB to determine whether there is a latest kernel patch module corresponding to information of the current system, and downloading the kernel patch module if it exists; Comparing the downloaded kernel patch module with a current kernel patch module; And when the downloaded kernel patch module is an updated kernel patch module, lowering an existing kernel patch module and loading a new kernel patch module.

그리고 상기와 같은 목적을 달성하기 위하여 본 발명의 시스템은, 사용자의 응용 프로그램이 시스템 호출 인터페이스를 거쳐 운영 체제의 커널 서비스를 이용할 수 있도록 된 컴퓨터 운영체제에 있어서, 커널 취약점을 제거하는 적재 가능한 커널 모듈 형태인 LKM 방식을 이용한 커널 취약점 방어 모듈; 커널 버전별 취약점 방어 모듈 정보를 저장하고 있는 커널 패치 데이터베이스; 및 상기 커널 패치 데이터베이스를 검색하여 커널 시스템의 커널 버전에 맞는 패치를 검색하기 위한 시스템 정보 수집 모듈을 포함하는 것을 특징으로 한다. In order to achieve the above object, the system of the present invention is a loadable kernel module type that eliminates kernel vulnerabilities in a computer operating system in which a user's application program can use a kernel service of an operating system through a system call interface. Kernel vulnerability defense module using LKM method; A kernel patch database that stores kernel version-specific vulnerability defense module information; And a system information collection module for searching for the patch corresponding to the kernel version of the kernel system by searching the kernel patch database.

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

먼저, 본 발명은 커널 자체의 취약점(vulnerability)을 익스플로잇하여 공격하기 위해서는 시스템 호출을 이용한다는 점에 착안하여 시스템 콜 처리 루틴에 해당 커널 취약점을 익스플로잇할 수 없도록 입력값의 유효성 검사 코드를 삽입하는 부분을 포함하여 LKM(Loadable Kernel Module) 형태로 구성함으로써 커널 수정방식의 커널 패치와 동일한 효과를 내면서 시스템을 재컴파일 및 재부팅하지 않도록 하는 것이다. 그리고 새로운 취약점이 발생할 경우, 커널 취약점 보완 모듈만을 추가 적재함으로써 커널 취약점을 이용한 공격에 즉시적으로 대응할 수 있다. First, the present invention focuses on using system calls to exploit and exploit vulnerability of the kernel itself, and inserts validation code of input values into the system call processing routine so that the kernel vulnerabilities cannot be exploited. By configuring it in the form of Loadable Kernel Module (LKM), the system does not recompile and reboot the system with the same effect as kernel patch of kernel modification method. And when a new vulnerability occurs, it can immediately respond to attacks using kernel vulnerabilities by loading only the kernel vulnerability supplement module.

도 2는 본 발명이 적용될 수 있는 일반적인 리눅스 운영체제의 구성도이다. 구체적으로, 본 발명이 적용될 수 있는 리눅스 운영체제를 구성하는 사용자 영역과 커널 영역 및 각 구성요소들 간의 관계를 도시한 블록도이다. 2 is a block diagram of a general Linux operating system to which the present invention can be applied. Specifically, it is a block diagram showing the relationship between the user area and kernel area and each component constituting the Linux operating system to which the present invention can be applied.

도 2를 참조하면, 리눅스 운영체제는 사용자 응용 프로그램(User program: 200), 시스템 호출 인터페이스(System call interface:210), 커널 서비스(220), 코어 커널(Core Kernel: 230) 및 물리적인 디바이스들(240)로 구성되어 있다. Referring to FIG. 2, the Linux operating system includes a user application 200, a system call interface 210, a kernel service 220, a core kernel 230, and physical devices. 240).

사용자 응용 프로그램(200)은 시스템 호출 인터페이스(210)를 통하여 프로세스, 메모리, 파일 시스템, 네트워크 서비스, 각종 장치 드라이버 등을 포함하는 커널 서비스(220)를 사용할 수 있다. The user application program 200 may use the kernel service 220 including a process, a memory, a file system, a network service, various device drivers, and the like through the system call interface 210.

커널(Kernel)(220)은 가상 파일 시스템(VFS), 메모리관리자, 프로세스관리자, 네트웍 서비스, 파일시스템 드라이버, IDE 디스크 드라이버, TCP/IP 드라이버, 이더넷 카드 드라이버, 기타 드라이버 등과 같이 시스템의 자원을 관리하는 핵심 모듈을 의미한다. 커널의 기능을 수행하기 위하여 커널의 일부 소스는 빌트인되어야 하고, 일부는 확장 개념인 모듈방식으로 선택적으로 구성될 수 있다. 최근 몇몇 장치 드라이버(Device Driver)를 포함하여 커널의 기능을 동적으로 적재 가능한 LKM(Loadable Kernel Module) 형태로 구성하는 경우가 많다. 이러한 확장 가능한 형태의 모듈 방식 외에 핵심적인 커널 서비스를 코아 커널(230)이라 한다. Kernel 220 manages system resources such as virtual file system (VFS), memory manager, process manager, network service, file system driver, IDE disk driver, TCP / IP driver, Ethernet card driver, and other drivers. It means the core module. In order to perform the functions of the kernel, some sources of the kernel must be built in, and some can be selectively configured in a modular manner, an extension concept. Recently, many kernel drivers are configured in the form of a loadable kernel module (LKM) that can dynamically load kernel functions. In addition to such an extensible modular method, core kernel services are referred to as core kernels 230.

시스템의 자원은 물리적 자원(240)과 논리적 자원으로 구분할 수 있으며, 물리적 자원(240)은 네트웍 인터페이스 카드(NIC, Network Interface Card), 하드 디스크, 메모리, CPU 등을 의미하여, 논리적 자원은 프로세스, 가상 메모리, 파일 등으로서 물리적 자원을 개념적으로 매핑시키는 커널 객체들을 의미한다. The resources of the system may be divided into physical resources 240 and logical resources. The physical resources 240 mean a network interface card (NIC), a hard disk, a memory, a CPU, and the like. Kernel objects that conceptually map physical resources as virtual memory, files, etc.

코아 커널(230)은 원칙적으로 프로그래밍 오류가 없는 안전한 코드들로 구성되어 있다고 가정하고 있었으나 최근 계속적인 커널 핵심 코드들에 대한 프로그래밍 오류가 발견되고, 이를 이용한 공격 코드들이 출현하고 있으므로 커널 핵심 코드들에 대한 보안 취약점으로 인하여 시스템 전체의 보안이 영향을 받게 된다. The core kernel 230 was assumed to be composed of safe codes without any programming errors in principle, but recently, programming errors for kernel core codes have been found, and attack codes using them have appeared. The security vulnerability of this system affects the security of the entire system.

따라서 본 발명에서는 커널 핵심 코드들을 비롯한 커널 자체의 취약점에 대한 보완 방법을 제공하는 것이고, 특히, 본 발명에서는 종래와 같이 커널 패치를 다운로드 받아서 커널을 수정하고 재컴파일 하는 방식이 아닌 커널 모듈 형태의 패치를 적재함으로써 커널 취약점을 이용한 공격에 효과적으로 대응하는 것이다. Therefore, the present invention provides a complementary method for vulnerabilities of the kernel itself including kernel core codes. In particular, the present invention provides a kernel module type patch, not a method of modifying and recompiling the kernel by downloading a kernel patch as in the prior art. It effectively responds to attacks using kernel vulnerabilities by loading.

도 3은 본 발명에 따라 커널 취약점에 대한 대응 방법을 도시한 순서도이다. 3 is a flowchart illustrating a method for responding to a kernel vulnerability according to the present invention.

리눅스 운영체제는 도 2에서 살펴 본 바와 같이, 사용자 영역과 커널 영역이 존재하고, 사용자 프로그램(200)에서 시스템의 자원을 사용하기 위해서는 시스템 호출(210)을 통해야만 하는 구조로서, 구성요소들이 서로 밀접하게 연관되어 있다. As shown in FIG. 2, the Linux operating system has a user area and a kernel area, and in order to use system resources in the user program 200, the system operating system 210 must use the system call 210. It is related to

도 3을 참조하면, 본 발명에 의한 커널 취약점 패치 절차는 관리자의 요청에 의해 수행된다. 시스템 정보 수집 단계(300)에서는 현재 시스템의 커널 버전 정보, 기존 커널 패치 모듈의 존재 유무 정보, 기존 커널 패치 모듈의 버전 정보 등을 수집한다. 커널 패치DB 검색 단계(310)에서는 수집된 커널 정보에 기반하여 커널 패치 DB(320)를 검색하고, 현 시스템에 적용되어야 할 패치 모듈이 있는지 검사한다. 커널 패치 DB(320)에는 시스템의 성능이나 기능 확장 패치는 포함하고 있지 않으며, 치명적인 보안상의 취약점에 대한 패치 모듈만을 저장하고 있다. 그리고 커널 취약점 패치 모듈 적재 단계(330)에서는 커널 패치 DB(320)로부터 획득한 커널 취약점 패치 모듈을 적재한다. Referring to FIG. 3, the kernel vulnerability patch procedure according to the present invention is performed at the request of an administrator. The system information collection step 300 collects the kernel version information of the current system, the presence or absence information of the existing kernel patch module, the version information of the existing kernel patch module, and the like. In the kernel patch DB search step 310, the kernel patch DB 320 is searched based on the collected kernel information, and a patch module to be applied to the current system is checked. The kernel patch DB 320 does not include system performance or feature extension patches, and only stores patch modules for critical security vulnerabilities. In the kernel vulnerability patch module loading step 330, the kernel vulnerability patch module obtained from the kernel patch DB 320 is loaded.

여기서, 커널 취약점 패치 제작 단계(340)에서는 공개된 패치를 분석하여 커널 취약점을 보완할 수 있는 커널 취약점 패치 모듈을 제작하고, 구성된 모듈과 패치 모듈 정보를 패치 DB(320)에 저장한다. 커널 취약점을 보완하는 패치 모듈은 각 취약점에 따라 수동으로 작성해야 한다. 바람직하게는 패치 DB에 접근할 수 있는 시스템들이 새로운 취약점이 발견되어 패치 모듈이 업데이트될 경우, 이를 다운로드 받아 적재할 수도 있다. Here, the kernel vulnerability patch production step 340 analyzes the published patch to produce a kernel vulnerability patch module that can supplement the kernel vulnerability, and stores the configured module and patch module information in the patch DB 320. Patch modules that supplement kernel vulnerabilities must be written manually for each vulnerability. Preferably, systems that can access the patch DB may download and load the patch module when a new vulnerability is found and the patch module is updated.

도 4는 본 발명이 적용된 시스템의 구성 및 커널 취약점 패치모듈의 동작 방법을 도시한 것이다. 4 illustrates a configuration of a system to which the present invention is applied and an operating method of a kernel vulnerability patch module.

도 4를 참조하면, 본 발명이 적용된 시스템은 리눅스 커널(230)과 시스템 호출 인터페이스(210)외에, 시스템 호출 후킹 모듈(System Call Hooking Module:400), 커널 취약점 방어 모듈(Kernel Exploit Prevention Module:410), 설 정모듈(Configuration Module:420) 및 로그모듈(Log Module:430)을 더 구비하고 있다. Referring to FIG. 4, the system to which the present invention is applied includes, in addition to the Linux kernel 230 and the system call interface 210, a system call hooking module (400) and a kernel Exploit Prevention Module (410). ), A configuration module (Configuration Module: 420) and a log module (Log Module: 430) are further provided.

시스템 호출 후킹 모듈(400)은 전체 시스템 호출 루틴에 대한 목록을 가지고 있는 시스템 호출 테이블(sys_call_table)의 벡터 내용을 직접 수정하여 커널 취약점 방어 모듈(410) 내에서 구현된 함수 루틴을 수행한 후, 시스템 호출 루틴을 수행하도록 한다. 즉, 원래의 시스템 호출 루틴은 커널 취약점 방어 모듈(410) 내의 함수로 대치되며, 커널 취약점 방어 모듈(410) 내의 함수는 취약점 방어에 필요한 작업을 수행한 후, 원래의 시스템 호출 루틴을 수행한다. The system call hooking module 400 directly modifies the vector contents of the system call table (sys_call_table), which contains a list of the entire system call routines, to execute a function routine implemented in the kernel vulnerability defense module 410, and then the system Run the calling routine. That is, the original system call routine is replaced with a function in the kernel vulnerability defense module 410, and the function in the kernel vulnerability defense module 410 performs the original system call routine after performing a task necessary for defending the vulnerability.

커널 취약점 방어 모듈(410)은 커널 함수로 연결되는 진입점에서 사용자 입력의 유효성과 권한 등의 적절한 정보를 설정 모듈(420)에서 넘겨받아서 사용한다. 권한 상승 및 입력 매개변수 유효성 등에 대한 확인은 설정 정보와 시스템의 상태를 저장하는 자료구조간의 비교를 통하여 이루어진다. 커널 취약점에 대해 권한 상승이나 오버플로우가 발생되는 조건을 파일 형태의 프로파일(profile:440)로 저장하며 커널 취약점 방어 모듈(410)에 설정 정보를 제공한다. 커널 취약점 방어 모듈(410)이 운영되면서 사후 분석에 필요한 정보를 로그 모듈(430)에서 기록한다. 현재 시스템 설정 정보와 비교하여 설정 정보가 변경되었을 때 그 내용을 기록하며 또한, 커널 취약점에 대한 방어 액션이 수행되었을 때 그 내용을 로그 데이터 저장소(Log data:450)에 기록한다. 즉, 특정 사용자가 한 객체에 대해서 커널 취약점을 공격했을 경우, 이에 대한 정보를 기록한다. The kernel vulnerability defense module 410 receives and uses appropriate information from the configuration module 420 such as validity and authority of a user input at an entry point connected to a kernel function. Elevation of authority and validity of input parameters are verified by comparing configuration data with data structures that store the state of the system. A condition in which an elevation of privilege or an overflow occurs for a kernel vulnerability is stored in a profile (profile: 440) and configuration information is provided to the kernel vulnerability defense module 410. The kernel vulnerability defense module 410 operates and records information necessary for post-mortem analysis in the log module 430. When the configuration information is changed compared to the current system configuration information, the contents are recorded, and when the defensive actions against kernel vulnerabilities are performed, the contents are recorded in the log data store (Log data: 450). In other words, if a user attacks a kernel vulnerability against an object, information about it is logged.

도 5는 본 발명에 따라 새로운 커널 취약점이 발견되었을 때의 클라이언트의 커널 취약점 패치 과정을 도시한 순서도이다. 5 is a flowchart illustrating a process of patching a kernel vulnerability of a client when a new kernel vulnerability is found according to the present invention.

도 5를 참조하면, 업데이트된 커널 패치 모듈을 다운받기 위하여 현재 시스템의 커널 정보와 현재 동작 중인 커널 패치 모듈의 버전 정보 등의 시스템 정보를 수집한다(단계 500). Referring to FIG. 5, system information such as kernel information of a current system and version information of a currently running kernel patch module is collected to download an updated kernel patch module (step 500).

그리고 커널 패치 모듈 DB(320)를 검색하여 현 시스템의 정보에 해당되는 최신 커널 패치 모듈이 존재하는지 확인하고 존재할 경우, 이를 다운로드받는다(단계 510). The kernel patch module DB 320 is searched to determine whether there is a newest kernel patch module corresponding to the information of the current system, and if it exists, it is downloaded (step 510).

이어 다운로드받은 커널 패치 모듈과 현재 커널 패치 모듈을 비교하고(단계 520), 다운로드받은 커널 패치 모듈이 업데이트된 커널 패치 모듈인 경우, 기존 커널 패치 모듈을 내리고(단계 530), 새로운 커널 패치 모듈을 적재한다(단계 540) Next, compare the downloaded kernel patch module with the current kernel patch module (step 520), and if the downloaded kernel patch module is an updated kernel patch module, lower the existing kernel patch module (step 530) and load the new kernel patch module. (Step 540)

이와 같이 본 발명에 의하면, 리눅스 운영체제를 대상으로 하여 커널 자체의 취약점을 이용한 공격 프로그램에 대응하기 위해서, 커널 핵심 코드 상의 오류에 진입할 수 있는 시스템 호출을 후킹하여 취약 부분에 접근할 수 없도록 입력값 검사 등을 수행하는 커널 패치 모듈을 제작함으로써 커널 수정을 요하는 현 패치 시스템과는 다른 커널 모듈 방식을 제공할 수 있다. As described above, according to the present invention, in order to cope with an attack program using a vulnerability of the kernel itself targeting the Linux operating system, the input value is not accessible by hooking a system call that can enter an error in the kernel core code. By creating a kernel patch module that performs checks, you can provide a different kernel module approach than the current patch system that requires kernel modification.

이상에서 설명한 바와 같이, 본 발명은 커널 핵심 코드 자체의 보안 취약점에 대한 커널 패치를 시스템 호출 후킹 기법을 이용한 커널 모듈로 제작하여 적용함으로써 커널 소스를 수정하는 기존 패치 방법보다 더 효율적으로 커널 취약점을 이용한 익스플로잇 프로그램에 대응할 수 있다. 즉, 커널 취약점이 발생하였을 경우, 커널 수정 방식의 패치는 커널 소스를 준비하여 커널을 수정한 뒤, 컴파일 및 재부팅 과정을 수행해야 하며, 새로운 취약점이 발견될 경우에 이러한 과정을 다시 수행해야 하므로 매우 번거로운 작업이다. 그러나 본 발명에서는 기존 커널 취약점을 제거하기 위하여 제작된 커널 패치 모듈을 적재하기만 하면 된다. 또한 새롭게 발견되는 커널 취약점을 적용하기 용이한 커널 모듈 패치 관리 방법을 제공함으로써 커널 취약점 발견에 대하여 빠르게 대응할 수 있다. As described above, the present invention uses a kernel patch for a security vulnerability of the kernel core code itself as a kernel module using a system call hooking technique, thereby applying the kernel vulnerability more efficiently than the existing patch method for modifying the kernel source. Corresponds to exploit programs. In other words, if a kernel vulnerability occurs, a kernel-modified patch needs to prepare the kernel source, modify the kernel, compile and reboot, and if a new vulnerability is found, it must be performed again. It is a cumbersome task. However, in the present invention, it is only necessary to load the kernel patch module manufactured to remove the existing kernel vulnerability. In addition, by providing a kernel module patch management method that is easy to apply newly discovered kernel vulnerabilities, it can respond quickly to the discovery of kernel vulnerabilities.

본 발명은 리눅스 운영체제를 대상으로 하는 커널 취약점을 이용한 공격 프로그램에 적극적으로 대응함으로써 아직까지 활성화되지 않은 리눅스 커널 기반의 커널 익스플로잇에 대한 대응 기술을 조기에 확보한다는 측면에서 그 효과가 매우 크다. The present invention is very effective in proactively coping with attack programs using kernel vulnerabilities targeting the Linux operating system to secure a response technology for kernel exploits based on Linux kernels that have not been activated yet.

본 발명은 상기한 실시 예에 한정되지 않고, 이하 청구 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능할 것이다. The present invention is not limited to the above-described embodiments, and various changes can be made by those skilled in the art without departing from the gist of the present invention as claimed in the following claims.

Claims (12)

사용자 응용 프로그램이 시스템 호출 인터페이스를 거쳐 운영 체제의 커널 서비스를 이용할 수 있도록 된 컴퓨터 운영체제에서, 시스템 호출 후킹 기법을 이용하여 유효성 검사 코드를 갖는 적재 가능한 커널 모듈(LKM:Loadable Kernel Module) 형태로 구성하여 커널 패치를 수행하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. In a computer operating system where user applications can use the kernel service of the operating system through the system call interface, the system can be configured in the form of a loadable kernel module (LKM) with validation code using the system call hooking technique. Kernel patch method for defending kernel vulnerabilities, characterized by performing kernel patch. 컴퓨터 운영체제의 커널 버전 정보, 기존 커널 패치 모듈의 존재 유무 정보, 기존 커널 패치 모듈의 버전 정보 등을 수집하는 시스템 정보를 수집하는 제 1 단계; A first step of collecting system information for collecting kernel version information of a computer operating system, presence or absence information of an existing kernel patch module, version information of an existing kernel patch module, and the like; 상기 수집된 커널 정보에 기반하여 상기 커널 패치 DB를 검색하고, 현 시스템에 적용되어야 할 패치 모듈이 있는지 검사하는 커널 패치 DB를 검색하는 제 2 단계; 및 Searching for the kernel patch DB based on the collected kernel information, and searching for a kernel patch DB for checking whether there are patch modules to be applied to the current system; And 상기 커널 패치 DB로부터 획득한 커널 취약점 패치 모듈을 적재하는 커널 취약점 패치 모듈을 적재하는 제 3 단계A third step of loading a kernel vulnerability patch module for loading a kernel vulnerability patch module obtained from the kernel patch DB 를 포함하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. Kernel patch method for defending the kernel vulnerabilities comprising a. 제 2 항에 있어서, 상기 방법은, The method of claim 2, wherein the method is 공개된 패치를 분석하여 커널 취약점을 보완할 수 있는 커널 취약점 패치 모듈을 제작하고, 상기 제작된 패치 모듈과 패치 모듈 정보를 커널 패치 DB에 저장하는 커널 취약점 패치를 제작하는 단계를 더 포함하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. Analyzing the published patch to produce a kernel vulnerability patch module that can supplement the kernel vulnerability, and further comprising the step of producing a kernel vulnerability patch for storing the produced patch module and patch module information in the kernel patch DB Kernel patching method to defend against kernel vulnerabilities. 제 3 항에 있어서, 상기 커널 취약점 패치 제작 단계에서 제작된 커널 패치 모듈은 시스템 호출 후킹 기법을 이용하여 유효성 검사 코드를 갖는 적재 가능한 커널 모듈(LKM)인 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. 4. The method of claim 3, wherein the kernel patch module produced in the kernel vulnerability patch production step is a loadable kernel module (LKM) having validation code using a system call hooking technique. Kernel patching method. 제 2 항에 있어서, 상기 제 2 단계는, The method of claim 2, wherein the second step, 커널 패치 모듈 DB를 검색하여 현 시스템의 정보에 해당되는 최신 커널 패치 모듈이 존재하는지 확인하고, 존재할 경우 이를 다운로드받는 단계; 및 Searching the kernel patch module DB to determine whether there is a latest kernel patch module corresponding to information of the current system, and downloading the kernel patch module if it exists; And 상기 다운로드받은 커널 패치 모듈과 현재 커널 패치 모듈을 비교하는 단계Comparing the downloaded kernel patch module and the current kernel patch module 를 포함하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. Kernel patch method for defending the kernel vulnerabilities comprising a. 제 2 항에 있어서, 상기 커널 패치 DB에는 보안상의 취약점에 대한 패치 모듈을 저장하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. The kernel patch method of claim 2, wherein the kernel patch DB stores a patch module for a security vulnerability. 제 1 항 또는 제 2 항에 있어서, 상기 컴퓨터 운용체제는 리눅스 운영체제인 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. 3. The kernel patch method of claim 1 or 2, wherein the computer operating system is a Linux operating system. 제 1 항 또는 제 2 항에 있어서, 상기 커널 패치는 텍스트형 파일인 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 방법. 3. The method of claim 1 or 2, wherein the kernel patch is a text file. 커널 취약점을 제거하는 적재 가능한 커널 모듈 형태인 LKM 방식을 이용한 커널 취약점 방어 모듈;Kernel vulnerability defense module using the LKM method which is a loadable kernel module form to remove the kernel vulnerability; 커널 버전별 취약점 방어 모듈 정보를 저장하고 있는 커널 패치 데이터베이스; 및A kernel patch database that stores kernel version-specific vulnerability defense module information; And 상기 커널 패치 데이터베이스를 검색하여 커널 시스템의 커널 버전에 맞는 패치를 검색하기 위한 시스템 정보 수집 모듈System information collection module for searching for the patch corresponding to the kernel version of the kernel system by searching the kernel patch database 을 포함하여, Including, 사용자 응용 프로그램이 시스템 호출 인터페이스를 거쳐 운영 체제의 커널 서비스를 이용할 수 있도록 된 컴퓨터 운영체제에서, 시스템 호출 후킹 기법을 이 용하여 유효성 검사 코드를 갖는 적재 가능한 커널 모듈(LKM:Loadable Kernel Module) 형태로 구성하여 커널 패치를 수행하는 것을 포함하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 시스템. In a computer operating system where user applications can use the operating system's kernel services through a system call interface, the system can be configured as a loadable kernel module (LKM) with validation code using the system call hooking technique. A kernel patch system for defending against kernel vulnerabilities, comprising performing a kernel patch. 제 9 항에 있어서, 상기 컴퓨터 운영체제는 The computer system of claim 9, wherein the computer operating system is 전체 시스템 호출 루틴에 대한 목록을 가지고 있는 시스템 콜 테이블(sys_call_table)의 벡터 내용을 직접 수정하여 상기 커널 취약점 방어 모듈 내에서 구현된 함수 루틴을 수행한 후, 시스템 호출 루틴을 수행하도록 하는 시스템 호출 후킹 모듈을 구비한 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 시스템. A system call hooking module that directly modifies the vector contents of the system call table (sys_call_table), which contains a list of the entire system call routines, to execute the function routines implemented in the kernel vulnerability defense module, and then execute the system call routines. Kernel patch system for defending the kernel vulnerabilities, characterized in that provided with. 제 10 항에 있어서, 상기 커널 취약점 방어 모듈은 11. The method of claim 10, wherein the kernel vulnerability defense module 치환되는 각 시스템콜 처리 루틴 부분에서 시스템 호출 시의 사용자 입력 파라미터의 범위 및 유효성을 검사하는 부분을 포함하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 시스템. Kernel patch system for defending kernel vulnerabilities, characterized in that for each part of the system call processing routine to be replaced includes a portion for validating the range and validity of the user input parameter in the system call. 제 10 항에 있어, 상기 커널 취약점 방어모듈은 11. The method of claim 10, wherein the kernel vulnerability defense module 프로파일 형태로 제공된 설정 파일에 의거하여 입력갑 유효성 검사 루틴 및 시스템 상태 정보 검사 등의 커널 익스플로잇 방어를 수행하는 것을 특징으로 하는 커널 취약요소를 방어하기 위한 커널 패치 시스템. Kernel patch system for defending kernel vulnerabilities that performs kernel exploit defense such as input validation validation routine and system state information check based on configuration file provided in profile form.
KR1020050062560A 2005-07-12 2005-07-12 Method and system of processing kernel patch for prevention of kernel vulnerability KR100706176B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050062560A KR100706176B1 (en) 2005-07-12 2005-07-12 Method and system of processing kernel patch for prevention of kernel vulnerability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050062560A KR100706176B1 (en) 2005-07-12 2005-07-12 Method and system of processing kernel patch for prevention of kernel vulnerability

Publications (2)

Publication Number Publication Date
KR20070008782A true KR20070008782A (en) 2007-01-18
KR100706176B1 KR100706176B1 (en) 2007-04-12

Family

ID=38010705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050062560A KR100706176B1 (en) 2005-07-12 2005-07-12 Method and system of processing kernel patch for prevention of kernel vulnerability

Country Status (1)

Country Link
KR (1) KR100706176B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101052734B1 (en) * 2009-02-03 2011-07-29 주식회사 안철수연구소 Application patch device and method
KR20130060832A (en) * 2011-11-30 2013-06-10 한국전자통신연구원 Apparatus and method for para-virtualizing automatically os kernel
CN105183530A (en) * 2015-11-03 2015-12-23 浪潮(北京)电子信息产业有限公司 Module loading method and system based on K-UNIX core
CN107229867A (en) * 2017-06-12 2017-10-03 北京奇虎科技有限公司 Kernel bug excavation method, device, computing device and computer-readable storage medium
KR20190068495A (en) * 2019-02-28 2019-06-18 한국인터넷진흥원 Binary fatching apparatus and method thereof for supplementing vulnerabilties casued from using vulnerable functions
CN110825501A (en) * 2018-08-07 2020-02-21 龙芯中科技术有限公司 Processor core optimization method and device and storage medium
CN112906008A (en) * 2018-11-15 2021-06-04 百度在线网络技术(北京)有限公司 Kernel vulnerability repairing method, device, server and system
CN113553593A (en) * 2021-07-21 2021-10-26 浙江大学 Internet of things firmware kernel vulnerability mining method and system based on semantic analysis

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033859A (en) * 2000-10-30 2002-05-08 송영호 Linux security kernel
KR100456512B1 (en) * 2002-05-06 2004-11-10 한국전자통신연구원 System for detecting a kernel backdoor, method for detecting a kernel backdoor and method for recovering a kernel data using the same
US7591015B2 (en) * 2003-10-23 2009-09-15 Microsoft Corporation Secure kernel transactions
TWI241102B (en) * 2003-12-30 2005-10-01 Icp Electronics Inc System for actively updating encryption/decryption module in security gateway and method
US7739720B2 (en) * 2004-10-14 2010-06-15 Microsoft Corporation Method and system for merging security policies

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101052734B1 (en) * 2009-02-03 2011-07-29 주식회사 안철수연구소 Application patch device and method
KR20130060832A (en) * 2011-11-30 2013-06-10 한국전자통신연구원 Apparatus and method for para-virtualizing automatically os kernel
CN105183530A (en) * 2015-11-03 2015-12-23 浪潮(北京)电子信息产业有限公司 Module loading method and system based on K-UNIX core
CN107229867A (en) * 2017-06-12 2017-10-03 北京奇虎科技有限公司 Kernel bug excavation method, device, computing device and computer-readable storage medium
CN107229867B (en) * 2017-06-12 2020-12-25 北京奇虎科技有限公司 Kernel vulnerability mining method and device, computing equipment and computer storage medium
CN110825501A (en) * 2018-08-07 2020-02-21 龙芯中科技术有限公司 Processor core optimization method and device and storage medium
CN112906008A (en) * 2018-11-15 2021-06-04 百度在线网络技术(北京)有限公司 Kernel vulnerability repairing method, device, server and system
KR20190068495A (en) * 2019-02-28 2019-06-18 한국인터넷진흥원 Binary fatching apparatus and method thereof for supplementing vulnerabilties casued from using vulnerable functions
CN113553593A (en) * 2021-07-21 2021-10-26 浙江大学 Internet of things firmware kernel vulnerability mining method and system based on semantic analysis
CN113553593B (en) * 2021-07-21 2023-08-04 浙江大学 Semantic analysis-based method and system for mining loopholes of firmware kernel of Internet of things

Also Published As

Publication number Publication date
KR100706176B1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
US11531759B2 (en) Trusted updates
Chen et al. Adaptive android kernel live patching
US9229881B2 (en) Security in virtualized computer programs
US9686078B1 (en) Firmware validation from an external channel
KR100706176B1 (en) Method and system of processing kernel patch for prevention of kernel vulnerability
Rice Container security: Fundamental technology concepts that protect containerized applications
EP1891520B1 (en) Constraint injection system for immunizing software programs against vulnerabilities and attacks
US9602466B2 (en) Method and apparatus for securing a computer
US8046831B2 (en) Automating software security restrictions on system resources
US20100031308A1 (en) Safe and secure program execution framework
Höbarth et al. A framework for on-device privilege escalation exploit execution on Android
US10102377B2 (en) Protection of secured boot secrets for operating system reboot
US20220391506A1 (en) Automated Interpreted Application Control For Workloads
CN106411814B (en) policy management method and system
Bashun et al. Too young to be secure: Analysis of UEFI threats and vulnerabilities
Grizzard Towards self-healing systems: re-establishing trust in compromised systems
US11301228B2 (en) Managing removal and modification of installed programs on a computer device
Umar et al. A Comparative Study of Modern Operating Systems in terms of Memory and Security: A Case Study of Windows, iOS, and Android
Nazar et al. Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service
KR102370848B1 (en) Computer device including divided security module and method for updating security module
Dimou Automatic security hardening of Docker containers using Mandatory Access Control, specialized in defending isolation
EP2835757B1 (en) System and method protecting computers from software vulnerabilities
WO2013036097A1 (en) A system and method to establish trusted boot loader using self-substantiated boot loader
Griffiths et al. Fireguard-A secure browser with reduced forensic footprint
KR20240031717A (en) Ebpf-based hot patch engine device for protecting kernel vulnerabilities, system and method including the same

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee