KR100456512B1 - 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법 - Google Patents

커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법 Download PDF

Info

Publication number
KR100456512B1
KR100456512B1 KR10-2002-0024844A KR20020024844A KR100456512B1 KR 100456512 B1 KR100456512 B1 KR 100456512B1 KR 20020024844 A KR20020024844 A KR 20020024844A KR 100456512 B1 KR100456512 B1 KR 100456512B1
Authority
KR
South Korea
Prior art keywords
kernel
module
allowed
loaded
kernel module
Prior art date
Application number
KR10-2002-0024844A
Other languages
English (en)
Other versions
KR20030086722A (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 KR10-2002-0024844A priority Critical patent/KR100456512B1/ko
Publication of KR20030086722A publication Critical patent/KR20030086722A/ko
Application granted granted Critical
Publication of KR100456512B1 publication Critical patent/KR100456512B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 리눅스 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지 방법 및 커널 데이터 복구 방법에 관한 것으로, 리눅스 커널 백도어와 같은 악성 커널 모듈을 탐지할 수 있는 커널 백도어 탐지 시스템 및 탐지 방법을 제공하고, 리눅스 커널 백도어에 의해 변경된 커널 데이터를 정상적인 상태로 복구 시킬 수 있는 커널 데이터 복구 방법을 제공하는데 그 목적이 있다.
이를 위해, 본 발명에서는 커널 공간의 메모리 영역에 적재가 시도되는 리눅스 커널 모듈에 대해서 1차적으로 그 모듈이 적재가 허용되는지를 검사하는 1차 커널 백도어 탐지 과정과, 2차적으로 메모리 영역에 적재되는 커널 모듈이 커널 백도어와 같은 악성 커널 모듈로서 커널 데이터를 변경시키는지를 탐지하는 2차 커널 백도어 탐지 과정과, 변경된 커널 데이터를 다시 정상적인 값으로 복구시키는 복구 과정을 제공한다.
따라서, 본 발명은 리눅스 시스템 내에 커널 백도어와 같은 악성 커널 모듈이 설치되는 것을 효과적으로 탐지하고, 커널 백도어에 의해 변경된 커널 데이터를 정상적인 커널 데이터로 복구시킬 수 있는 효과가 있다.

Description

커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지 방법 및 커널 데이터 복구 방법{System for detecting a kernel backdoor, method for detecting a kernel backdoor and method for recovering a kernel data using the same}
본 발명은 리눅스 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지 방법 및 커널 데이터 복구 방법에 관한 것으로, 특히 리눅스 악성 커널 모듈인 리눅스 커널 백도어를 탐지하고, 이와 같은 커널 백도어에 의해서 조작되거나 변경된 커널 데이터를 감지하여 원래의 정상적인 상태로 복구할 수 있는 리눅스 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지 방법 및 커널 데이터 복구 방법에 관한 것이다.
일반적으로, 해커(Hacker)에 의해 공격을 당한 리눅스 시스템(Linux System) 내에는 해커에 의해서 어떠한 형태의 백도어(Backdoor) 또는 루트킷(Rootkit)이 설치된다.
이렇게 설치된 백도어는 해커만이 알 수 있는 시스템 상의 치명적인 취약성을 인위적으로 구축하여 시스템에 대한 접속을 용이하게 하거나, 다른 시스템에 대한 공격을 쉽게 수행하는데 이용된다. 한편, 루트킷은 다른 시스템에 침입한 후 다음에 대비하여 백도어나 트로이 목마를 심거나, 침입흔적을 숨기기 위한 도구 모음이다.
이러한, 응용 프로그램 백도어(Application Program Backdoor) 또는 일반적인 루트킷은 프로세스(Process) 및 네트워크(Network) 상태 등과 같이 시스템의 정보를 얻는데 사용되는 프로그램 파일(Program File)을 트로이 버젼으로 변경하는 형태를 취하기 때문에 파일 시스템 무결성 검사와 같은 종래의 탐지 기법을 이용해서 쉽게 발견할 수 있다.
그러나, 커널(Kernel) 기반 루트킷의 일종인 리눅스용 커널 백도어(예: Knark)는 커널 모듈의 형태로 메모리에 적재되기 때문에 사용자 및 응용 프로그램이 커널 백도어의 존재를 확인할 수 있는 방법이 없다. 현재, 응용 프로그램 수준의 백도어와는 달리 커널 백도어를 탐지하고 대응하기 위한 체계적인 방법이 발명되어 있지 않으며, 이와 같은 커널 모듈이 적재되는 것을 방지하기 위한 커널 모듈 관리 도구 또한 존재하지 않는다. 또한, 커널에 적재된 커널 백도어를 탐지하고, 적재 과정에서 변경된 커널 내부의 데이터를 감지하고 복구할 수 있는 기법이 알려져 있지 않고 있다.
따라서, 본 발명은 상기의 문제점을 해결하기 위해 안출된 것으로, 리눅스 커널 백도어와 같은 악성 커널 모듈을 탐지할 수 있는 커널 백도어 탐지 시스템 및 탐지 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 리눅스 커널 백도어에 의해 변경된 커널 데이터를 정상적인 상태로 복구 시킬 수 있는 커널 데이터 복구 방법을 제공하는데 또 다른 목적이 있다.
이를 위해, 본 발명에서는 커널 공간의 메모리 영역에 적재가 시도되는 리눅스 커널 모듈에 대해서 1차적으로 그 모듈이 적재가 허용되는지를 검사하는 1차 커널 백도어 탐지 과정과, 2차적으로 메모리 영역에 적재되는 커널 모듈이 커널 백도어와 같은 악성 커널 모듈로서 커널 데이터를 변경시키는지를 탐지하는 2차 커널 백도어 탐지 과정과, 변경된 커널 데이터를 다시 정상적인 값으로 복구시키는 복구 과정을 제공한다.
또한, 본 발명의 1차 커널 백도어 탐지 과정에서는 오직 허용된 커널 모듈 만이 메모리 영역에 적재되도록 하기 위해서 커널 내부에 허용 커널 모듈에 대한 목록을 보관하고, 이 목록을 질의하고 갱신하기 위해서 특수한 파라미터를 이용하여 시스템 콜을 호출하며, 리눅스의 'create_module' 시스템 콜을 가로채 커널 모듈이 메모리 영역에 적재되기 전에 그 것이 허용된 커널 모듈인지를 확인하는 방법을 제공한다.
또한, 본 발명의 2차 커널 백도어 탐지 과정에서는 리눅스의 'init_module' 및 'delete_module' 시스템 콜을 가로채는 방법을 통해 적재될 커널 모듈이 커널 내부의 커널 데이터를 변경하는지를 감시하여 그 커널 모듈이 커널 백도어인지를 판별하는 방법을 제공한다.
또한, 본 발명의 복구 과정에서는 커널 백도어에 의해 변경된 커널 데이터인 커널 시스템 콜 테이블, 네트워크 프로토콜 핸들러 및 커널 모듈 목록 정보를 감지하여 이를 원래의 정상적인 값으로 복구시키는 방법을 제공한다.
도 1은 본 발명의 바람직한 실시예에 따른 리눅스 커널 백도어 탐지 시스템의 구성도이다.
도 2는 도 1에 도시된 리눅스 커널 백도어 탐지 시스템의 동작 과정중 '등록 과정'을 설명하기 위해 도시한 흐름도이다.
도 3은 도 1에 도시된 리눅스 커널 백도어 탐지 시스템의 동작 과정중 '1차 커널 백도어 탐지 과정'을 설명하기 위해 도시한 흐름도이다.
도 4는 도 1에 도시된 리눅스 커널 백도어 탐지 시스템의 동작 과정중 '2차 커널 백도어 탐지 과정'을 설명하기 위해 도시한 흐름도이다.
도 5는 도 1에 도시된 리눅스 커널 백도어 탐지 시스템의 동작 과정중 '복구 과정'을 설명하기 위해 도시한 흐름도이다.
〈도면의 주요 부분에 대한 부호의 설명〉
100 : 사용자 공간 200 : 커널 공간
110 : 커널 모듈 관리부 120 : 적재 커널 입력부
210 : 허용 커널 모듈 관리부 220 : 허용 커널 모듈 데이터베이스
230 : 커널 모듈 적재 관리부 240 : 커널 데이터 검증/복구 모듈부
250 : 커널 원본 데이터베이스 260 : 시스템 콜 감시/복구 모듈부
270 : 시스템 콜 테이블 데이터베이스
본 발명은 사용자 영역에 위치되며, 커널 영역 내에 적재가 허용되는 허용 커널 모듈의 목록을 추가, 삭제 및 질의하기 위하여 커널 모듈 관리 프로그램을 내장하는 커널 모듈 관리부와, 상기 커널 모듈 관리부로부터 등록 요청되는 상기 허용 커널 모듈의 목록을 관리하는 허용 커널 모듈 관리부와, 상기 허용 커널 모듈 관리부에 의해 등록 허가된 상기 허용 커널 모듈의 목록을 저장하는 허용 커널 모듈 데이터베이스와, 상기 허용 커널 모듈 데이터베이스에 저장된 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 요청되는 적재 커널 모듈을 상기 커널 영역 내에 적재하는 커널 모듈 적재 관리부를 포함하는 커널 백도어 탐지 시스템을 제공한다.
또한, 본 발명은 상기 커널 백도어 탐지 시스템을 이용한 커널 백도어 탐지 방법에 있어서, 상기 사용자 영역으로부터 상기 커널 영역으로 허용 커널 모듈의 목록을 등록하는 단계와, 상기 단계에서 등록되는 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 시도된 적재 커널 모듈에 대한 적재 허용 여부를 탐지하는 단계와, 상기 단계에서 적재가 허용되는 상기 적재 커널 모듈에 의해 상기 커널 영역에 존재하는 커널 데이터가 변경되는지를 탐지하는 단계를 포함하는 커널 백도어 탐지 방법을 제공한다.
또한, 본 발명은 상기 커널 백도어 탐지 시스템을 이용한 커널 데이터 복구 방법에 있어서, 상기 사용자 영역으로부터 상기 커널 영역으로 허용 커널 모듈의 목록을 등록하는 단계와, 상기 단계에서 등록되는 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 시도된 적재 커널 모듈에 대한 적재 허용여부를 탐지하는 단계와, 상기 단계에서 적재가 허용되는 상기 적재 커널 모듈의 이름을 상기 커널 원본 데이터베이스의 커널 원본 데이터의 보안 커널 모듈 목록에 추가하는 단계와, 상기 적재 커널 모듈을 상기 커널 영역에 적재하는 단계와, 상기 적재 커널 모듈이 상기 커널 영역에 정상적으로 적재되었는지를 검사하는 단계와, 상기 단계에서 상기 적재 커널 모듈이 정상적으로 적재되었을 경우, 상기 커널 영역에 존재하는 커널 데이터가 변경되었는지 검사하는 단계와, 상기 단계에서 상기 커널 데이터가 변경되었을 경우, 변경된 커널 데이터를 복구하고, 로그값을 저장하는 단계를 포함하는 커널 데이터 복구 방법을 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 리눅스 커널 백도어 탐지 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 리눅스 커널 백도어 탐지 시스템은 전체적으로 사용자 영역으로 정의되는 사용자 공간(100)과 커널 영역으로 정의되는 커널 공간(200)으로 분리된다.
사용자 공간(100)은 커널 내에 적재가 허용되는 커널 모듈 목록을 추가, 삭제 및 질의하기 위하여 커널 모듈 관리 프로그램이 내장되는 커널 모듈관리부(110)를 포함한다. 여기서, 커널 모듈 목록은 현재 커널에 적재되어 있는 커널 모듈을 관리하기 위하여 커널이 사용하고 있는 단일 연결 리스트(Single Linked List) 형태의 커널 데이터이다.
커널 공간(200)은 상기 사용자 공간(100)에 포함된 커널 모듈 관리부(110)를 제외한 모든 기능 모듈부를 포함한다. 예컨대, 허용 커널 모듈 관리부(210), 허용 커널 모듈 데이터베이스(220), 커널 모듈 적재 관리부(230), 커널 데이터 검증/복구 모듈부(240), 커널 원본 데이터베이스(250), 시스템 콜 감시/복구 모듈부(250) 및 시스템 콜 테이블 데이터베이스(270)를 포함한다.
허용 커널 모듈 관리부(210)는 커널에 적재가 허용될 커널 모듈 목록을 관리하는 모듈이다. 허용 커널 모듈 데이터베이스(220)는 커널에 적재가 허용되는 커널 모듈 이름을 포함한 커널 내부의 테이블이 저장되는 데이터베이스(Database)이다. 커널 모듈 적재 관리부(230)는 사용자 공간(100)으로부터 커널 모듈 적재 요청을 받아 처리하는 관리자 모듈이다. 커널 데이터 검증/복구 모듈부(240)는 커널 데이터의 변경 유무를 검증하고 복구하는 모듈이다. 커널 원본 데이터베이스(250)는 변경되기전 정상적인 커널 원본 데이터가 저장되는 데이터베이스이다. 시스템 콜 감시/복구 모듈부(260)는 시스템 콜 테이블(System Call Table)을 실시간으로 감시하고 복구하기 위한 모듈이다. 시스템 콜 테이블 데이터베이스(270)는 커널 내부에 존재하는 시스템 콜 테이블을 저장하는 데이터베이스이다.
상기와 같은 구성을 포함하는 리눅스 커널 백도어 탐지 시스템의 전체 동작 특성을 간략하게 설명하면 다음과 같다.
우선, 사용자 공간(100)의 커널 모듈 관리부(110)는 허용 대상 커널 모듈(Kernel Module)(이하, '허용 커널 모듈'이라 함)들의 이름 목록들을 허용 커널 모듈 데이터베이스(220)에 등록하기 위해 상기 허용 커널 모듈들의 이름 목록들을 포함한 데이터를 허용 커널 모듈 관리부(210)로 전송하여 등록 요청을 한다. 이 때, 커널 모듈 관리부(110)에 의한 허용 커널 모듈 등록 요청은 커널 모듈 관리 프로그램을 실행시킴으로써 이루어진다.
허용 커널 모듈 관리부(210)는 커널 모듈 관리부(110)로부터 전송된 소정 허용 커널 모듈에 대한 등록 요청을 수락 또는 거부할 수 있는데, 그 기준은 허용 커널 모듈의 이름 목록과 동일한 커널 이름이 허용 커널 모듈 데이터베이스(220)에 존재하는지 그 유무에 따라 결정된다.
이 때, 소정 허용 커널 모듈에 대한 커널 모듈 관리부(110)의 등록 요청이 허용 커널 모듈 관리부(210)에 의해 수락되는 경우에만, 허용 커널 모듈 관리부(210)는 상기 허용 커널 모듈의 이름을 단일 연결 리스트 형태로 허용 커널 모듈 데이터베이스(220)에 저장한다.
이와 같이, 단일 연결 리스트 형태로 허용 커널 모듈 데이터베이스(220)에 저장된 다수의 허용 커널 모듈들의 목록들은 적재 커널 입력부(120)를 통해 커널 모듈 적재 관리부(230)로 적재 시도된 커널 모듈(이하, '적재 커널 모듈'이라 함)들의 적재 허용 여부를 판단하는 기준 데이터로 이용된다.
한편, 정상적인 관리자 또는 시스템 침입자에 의해 적재 커널 입력부(120)로부터 입력되는 적재 커널 모듈은 커널 모듈 적재 관리부(230)에 의해 수락되거나거부될 수 있는데, 이 기준은 상기 허용 커널 모듈의 등록 요청 방법과 같이 적재 커널 모듈의 이름 목록과 동일한 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)에 존재하는지 그 유무에 따라 결정된다.
상세히 하면, 커널 모듈 적재 관리부(230)는 적재 커널 입력부(120)로부터 입력되는 적재 커널 모듈이 커널 백도어 또는 악성 커널 모듈인지를 탐지(이하, '1차 커널 백도어 탐지'라 함)하기 위하여 상기 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)에 존재하는지를 확인한다.
이 때, 상기 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)에 존재하는 경우에만 'create_module' 시스템 콜이 성공적으로 이루어져 'insmod' 프로그램(즉, 적재 커널 모듈을 커널 내에 적재하기 위한 프로그램)으로 복귀할 수 있도록 한다.
그러나, 상기 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)에 존재하는 경우에도 상기 적재 커널 모듈이 커널 백도어 또는 악성 커널 모듈일 가능성을 전혀 배제할 수 없다. 만일, 상기 적재 커널 모듈이 커널 백도어 또는 악성 커널 모듈일 경우에는 커널 공간(200)의 메모리 영역(미도시)에 상기 적재 커널 모듈 적재시 커널 내의 시스템 콜 테이블, 네트워크 프로토콜 핸들러(Network Protocol Handler) 및 커널 모듈 목록을 표현하는 데이터(이하, '커널 데이터'라 함)가 변경되는 경우가 발생하게 된다.
이에 따라, 커널 모듈 적재 관리부(230)의 관리자는 상기 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)에 존재하여 'create_module' 시스템 콜이 이루어지면, 'init_module' 및 'delete_module' 시스템 콜 후에 커널 데이터 검증/복구 모듈부(240)를 통해 커널 데이터의 변경 유무를 탐지(이하, '2차 커널 백도어 탐지'라 함)한다.
커널 데이터 검증/복구 모듈부(240)는 커널 원본 데이터베이스(250)에 미리 저장되어 있는 커널 원본 데이터를 이용해서 커널 데이터의 변경 유무를 검사한다. 이 때, 커널 데이터 값이 변경된 경우에는 커널 메모리 영역에 적재된 적재 커널 모듈을 커널 백도어 또는 악성 커널 모듈로 판단하고, 이 변경된 커널 데이터를 원래의 정상적인 상태로 복구한다.
예컨대, 커널 원본 데이터베이스(250)에는 커널 백도어 또는 악성 커널 모듈에 의해서 변경될 가능성이 있는 커널 데이터의 커널 모듈 목록을 복구시키기 위해서 보안 커널 모듈 목록이 저장된다. 여기서, 보안 커널 모듈 목록은 정상적인 커널 모듈 목록과 일치하는 정보를 가지고 있다. 이에 따라, 커널 백도어 또는 악성 커널 커널 모듈에 의해서 커널 모듈 목록이 변경되어 보안 커널 모듈 목록과 동일하지 않게 되면, 이는 악성 커널 모듈에 의해서 커널 모듈 목록이 변경되었다는 것을 나타낸다.
즉, 커널 공간(200)의 메모리 영역에 존재하는 커널 모듈 목록은 단일 연결 리스트를 구조를 하고 있고, 커널 데이터 중에서 'module_list' 변수는 커널 모듈 목록에 존재하는 커널 모듈 중에서 가장 최근에 적재된 커널 모듈 노드(즉, 구성 요소)를 가리키는 주소값을 가지고 있다. 이에 따라, 'create_module' 시스템 콜의 복귀값을 이용하여 상기 주소값이 변경되었는지를 탐지하고, 별도의 보안 커널 모듈 목록이 변경되었다고 판단되면, 커널 모듈 목록에서 변경된 부분의 노드값을 보안 커널 모듈 목록을 이용하여 복구한다.
또한, 리눅스 커널 백도어 탐지 시스템은 커널 백도어가 커널 내에 적재된 직후가 아닌 다른 시점에서도 커널 타이머(Kernel Timer) 조작을 통해서 커널 데이터가 변경될 수 있으므로, 시스템 콜 감시/복구 모듈부(260)를 통해 시스템 콜 테이블 데이터베이스(270)에 저장된 시스템 콜 테이블의 무결성을 검사하고, 변경된 경우에는 원래의 상태로 복구하는 동작이 수행된다.
이하에서는, 상기에서 설명한 본 발명의 리눅스 커널 백도어 탐지 시스템의 전체 동작 특성을 '등록 과정', '1차 커널 백도어 탐지 과정', '2차 커널 백도어 탐지 과정' 및 '복구 과정'으로 세분화하여 설명하기로 한다.
<등록 과정>
'등록 과정'은 커널 모듈 관리부(110)와 허용 커널 모듈 관리부(210) 사이에서 이루어지는 허용 커널 모듈 등록 과정으로서 도 2에 도시된 흐름도를 참조하여 설명하면 다음과 같다.
도 2를 참조하면, 특정 커널 모듈을 허용 커널 모듈 목록에 등록하기 위하여 커널 모듈 관리부(110)(도 1 참조)의 관리자에 의해 커널 모듈 관리 프로그램을 실행한다(단계 S21).
이어서, 미리 정의된 인자를 이용하여 특정 시스템 콜을 호출한다(단계 S22). 이 단계는 커널 모듈 관리부(110)의 관리자가 등록하고자 하는 허용 커널 모듈의 이름을 커널 공간(200)(도 1 참조)의 허용 커널 모듈 관리부(210)(도 1 참조)의 관리자에게 전달하기 위하여 특정 시스템 콜을 호출하는 단계이다.
예컨대, 상기 특정 시스템 콜에는 'settimeofday' 표준 유닉스 시스템 콜(이하, 'settimeofday 시스템 콜'이라 함)을 일례로 들 수 있는데, 'settimeofday' 시스템 콜은 두개의 버퍼를 파라미터로 가진다. 따라서, 커널 모듈 관리 프로그램은 'settimeofday' 시스템 콜의 두번째 파라미터에 등록하고자 하는 커널 모듈의 이름을 저장하여 'settimeofday' 시스템 콜을 호출한다.
즉, 'settimeofday' 시스템 콜은 메모리 공간에 대응되게 주소값의 형태를 갖는 두 개의 버퍼를 파라미터로 받아들인다. 이 때, 주소값은 0 내지 10과 같은 범위의 값을 가지지 않는다. 따라서, 첫번째 파라미터의 값으로 0 내지 10 사이의 값을 이용하고, 두 번째 파라미터가 가리키는 메모리 주소 공간에는 등록하고자 하는 허용 커널 모듈의 이름을 저장하여 'settimeofday' 시스템 콜을 호출하는 방법을 취할 수 있다. 이 때, 변형된 'settimeofday' 시스템 콜의 전체적인 동작은 하기와 같은 <가상 코드>(Pseudo-Code)로 표현될 수 있다.
<가상 코드>
"if(first_parameter is between 0 and 10){
extract module-name from second_parameter
register module-name to allowed_kernel_module_list
} else {
call normal settimeofday system call
}"
상기 단계 S22에서 특정 시스템 콜 호출 동작이 이루어지면 자동적으로 커널 모듈 관리부(110)로부터 허용 커널 모듈 관리부(210)의 관리자에게 허용 커널 모듈이 전달된다(단계 S23).
상기 단계 S23에서 허용 요청된 허용 커널 모듈이 허용 커널 모듈 관리부(210)의 관리자에게 전달되면, 허용 커널 모듈 관리부(210)의 관리자는 커널 모듈 관리부(110)로부터 전송된 해당 커널의 이름이 허용 커널 모듈 데이터베이스(220)(도 1 참조)의 커널 모듈 목록에 존재하는지를 검사한다(단계 S24).
상기 단계 S24에서 해당 커널의 이름이 허용 커널 모듈 데이터베이스(220)의 커널 모듈 목록에 존재할 경우에는 커널 모듈 관리자(110)의 커널 모듈 관리 프로그램을 종료하고, 존재하지 않을 경우에는 허용 커널 모듈 데이터베이스(220)에 단일 연결 리스트 형태로 허용 커널 모듈의 이름 목록을 추가한다(단계 S25).
<1차 커널 백도어 탐지 과정>
'1차 커널 백도어 탐지 과정'은 정상적인 관리자 또는 시스템 침입자에 의해 적재 커널 입력부(120)(도 1 참조)로부터 커널 모듈 적재 관리부(230)(도 1 참조)로 커널 모듈의 적재가 시도될 경우, 이 적재 시도된 적재 커널 모듈이 커널 백도어 또는 악성 커널 모듈인지를 검사하는 과정으로서 도 3에 도시된 흐름도를 통해 설명하면 다음과 같다.
도 3을 참조하면, 정상적인 관리자 또는 시스템 침입자는 적재 커널 모듈을 적재 커널 입력부(120)를 통해 커널 공간(200)의 메모리 영역에 적재하기 위해'insmod' 프로그램을 실행한다(단계 S31). 여기서, 'insmod'(Insert Module) 프로그램은 커널 모듈을 적재하기 위하여 사용되는 표준 리눅스 프로그램으로서, 정상적인 시스템 관리자에 의해서 실행되거나, 커널의 내부 중요 커널 데이터를 변경시키는 목적을 가진 악성 커널 모듈을 적재하기 위하여 시스템 침입자에 의해서 실행되는 프로그램이다.
상기 단계 S31에서 정상적인 관리자 또는 시스템 침입자에 의해 'insmod' 프로그램이 정상적으로 실행되면, 적재가 시도된 적재 커널 모듈의 이름을 커널 모듈 적재 관리부(230)의 관리자로 전달하기 위하여 'create_module' 시스템 콜 호출 동작이 이루어진다(단계 S32).
상기 단계 S32에서 'create_module' 시스템 콜 호출 동작이 정상적으로 완료되면, 적재 시도된 적재 커널 모듈의 이름이 커널 모듈 적재 관리부(230)의 관리자에게 전달된다(단계 S33).
상기 단계 S33에서 적재 커널 모듈의 이름이 커널 모듈 관리부(230)의 관리자로 전달되면, 커널 모듈 적재 관리부(230)의 관리자는 적재 시도된 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)의 커널 모듈 이름 목록에 존재하는지를 검사한다(단계 S34).
상기 단계 S34에서 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)의 커널 모듈 이름 목록에 존재할 경우에는 'create_module' 시스템 콜로 정상적으로 복귀한 후(단계 S35), 'init_module' 시스템 콜을 호출하여 적재 커널 모듈을 커널 공간(200)의 메모리 영역에 적재시킨다(단계 S36 및 단계S37).
상기 단계 S38에서 적재 커널 모듈이 커널 공간(200)의 메모리 영역에 정상적으로 적재가 완료되면, 'init_module' 시스템과 'insmod' 프로그램을 종료하여 '1차 커널 백도어 탐지 과정'을 종료한다(단계 S38 및 단계 S39).
한편, 상기 단계 S34에서 적재 커널 모듈의 이름이 허용 커널 모듈 데이터베이스(220)의 커널 모듈 이름 목록에 존재하지 않을 경우에는 바로 단계 S39로 이동하여 'insmod' 프로그램을 종료한다.
<2차 커널 백도어 탐지 과정>
'2차 커널 백도어 탐지 과정'은 커널 공간(200)의 메모리 영역에 미리 저장된 커널 데이터가 상기 '1차 커널 백도어 탐지 과정'에서 이루어지는 적재 커널의 적재 과정시 데이터 변경이 있는지를 검사하는 과정으로서, 도 4에 도시된 흐름도를 통해 설명하면 다음과 같다.
도 4를 참조하면, 우선 '2차 커널 백도어 탐지 과정'은 '1차 커널 백도어 탐지 과정'에서 도 3에 도시된 단계 S34 후에 이루어지는 과정으로서 하기에서 설명되는 단계 S41 및 단계 S42는 단계 S35 및 단계 S36과 동일한 과정으로 볼 수 있다.
상기 단계 S41는 'create_module' 시스템 콜을 복귀하기 위한 복귀값을 저장하는 단계로서, 별도의 변수에 복귀값을 복사하는 과정이다. 여기서, 복귀값은 적재 커널이 적재될 커널 공간(200)의 메모리 영역을 가리키는 주소값(Address)이며, 이 값은 실제로 도 3에서 설명한 'create_module' 시스템 콜이 호출되고, 종료되었을 때 자동적으로 커널 공간(200)의 메모리 영역에 저장된다.
상기 단계 S42는 'init_module' 시스템 콜을 호출하여 'init_module' 시스템을 실행하는 단계이다. 이 단계에서 'init_module' 시스템 콜 호출이 정상적으로 이루어지면, 커널 데이터 검증/복구 모듈부(240)(도 1 참조)에서는 커널 원본 데이터베이스(250)(도 1 참조)에 저장된 커널 원본 데이터를 이용하여 커널 데이터가 변경되었는지를 검사한다(단계 S43).
상기 커널 원본 데이터는 커널 백도어 또는 악성 커널 모듈이 커널 내부의 커널 데이터를 변경시키더라도 항상 정상적인 값으로 유지되는 데이터로서, 그 대상으로는 커널 데이터와 동일하게 시스템 콜 테이블, 커널 모듈 목록 및 프로토콜 핸들러가 있으며, 각각 해당하는 커널 원본 데이터 내의 참조 데이터를 가지고 있다.
상기 단계 S43에서 커널 데이터가 변경되었을 경우, 커널 데이터 검증/복구 모듈부(240)에서는 커널 원본 데이터베이스(250)에 저장된 커널 원본 데이터의 보안 커널 모듈 목록을 이용하여 변경된 커널 데이터를 복구하고, 그 로그값을 저장한다(단계 S44). 상기 로그값은 커널 데이터가 변경된 시점에서 저장되는 로그로서, 커널 데이터의 변경을 발생시킨 커널 모듈의 이름, 상기 커널 모듈을 적재되려고 시도된 시간 및 변경된 커널 데이터의 종류를 포함한다.
한편, 상기 단계 S43에서 커널 데이터가 변경되지 않았을 경우, 단계 S45로 이동하여 '1차 커널 백도어 탐지 과정'을 통과한 적재 커널 모듈을 커널 공간(200)의 메모리 영역에 저장한다(단계 S45).
상기 단계 S44에서 커널 데이터 복구 과정이 완료되면, 단계 S45로 이동하여 '1차 커널 백도어 탐지 과정'을 통과한 적재 커널 모듈을 커널 공간(200)의 메모리 영역에 저장한다.
상기 단계 S45에서 적재 커널 모듈의 적재가 완료되면, 'insmod' 프로그램을 종료한다(단계 S46).
<복구 과정>
'복구 과정'은 커널 원본 데이터 베이스(250)에 저장된 보안 커널 모듈 목록을 이용하여 커널 백도어 또는 악성 커널 모듈에 의해서 커널 데이터가 변경된 것을 감지하고, 변경된 커널 데이터를 복구하는 과정으로서 도 5에 도시된 흐름도를 참조하여 설명하면 다음과 같다.
도 5를 참조하면, 이 도면은 도 4에 도시된 흐름도를 더욱 구체화하여 도시한 도면으로서, '2차 커널 백도어 탐지 과정'과 '복구 과정'을 하나의 흐름도 내에 도시한 흐름도이다.
단계 S51 및 단계 S52는 '1차 커널 백도어 탐지 과정' 및 '2차 커널 백도어 탐지 과정'에서 이루어지는 단계로서, 'insmod' 프로그램이 실행되면 자동적으로 'create_module' 시스템 콜이 호출되어 메모리 할당이 이루어진 후 'create_module' 시스템 콜의 복귀값이 저장되는 단계이다.
상기 단계 S52에서 'create_module' 시스템 콜 복귀값이 저장되면, 본 발명에서 새롭게 제시한 'init_module' 시스템 콜 호출동작을 통해 'init_module' 시스템(이하, 'init_module_new 시스템'이라 함)을 실행한다(단계 S53).
상기 단계 S53에서 'init_module_new' 시스템이 실행되면, 현재 적재 커널 모듈의 이름을 커널 원본 데이터베이스(250)의 커널 원본 데이터에 포함된 보안 커널 모듈 목록에 추가한다(단계 S54).
상기 단계 S54에서 적재 커널 모듈이 보안 커널 모듈 목록에 추가되면, 일반적인 'init_module' 시스템 콜 호출 동작을 통해 현재 적재 커널 모듈을 커널 공간(200)의 메모리 영역에 적재한 후 'init_module' 시스템을 종료한다(단계 S55 내지 단계 S57). 이 과정은 도 3에 도시된 단계 S36 내지 단계 S38과 동일한 과정으로 이루어진다.
상기 단계 S57에서 'init_module' 시스템이 종료되면, 'init_module' 시스템의 복귀값을 검사하여 적재 커널 모듈이 커널 공간(200)의 메모리 영역에 정상적으로 적재되었는지를 검사한다(단계 S58). 예컨대, 'init_module' 시스템의 복귀값을 검사하여 복귀값이 '-1'이면, 적재 커널 모듈이 적재되지 않음을 의미하고, 복귀값이 '-1'이 아니면, 정상적으로 적재 커널 모듈이 적재된 것을 의미한다.
상기 단계 S58에서 적재 커널 모듈이 커널 공간(200)의 메모리 영역에 정상적으로 적재되지 않았을 경우에는 보안 커널 모듈 목록에 추가된 적재 커널 모듈의 이름을 삭제한 후(단계 S59), 단계 S60으로 이동한다.
상기 단계 S58에서 적재 커널 모듈이 커널 공간(200)의 메모리 영역에 정상적으로 적재되었을 경우에는 단계 S60으로 이동하여 커널 내부의 커널 모듈 목록이 변경되었는지를 검사한다.
상기 단계 S60에서 커널 내부의 커널 모듈 목록이 변경되었을 경우에는 단계S61로 이동하여 변경된 커널 모듈 목록를 복구하고, 그 로그값을 저장한 후 단계 S62로 이동한다.
한편, 상기 단계 S60에서 커널 내부의 커널 모듈 목록이 변경되지 않았을 경우에는 단계 S61로 이동하여 'init_module_new' 시스템을 종료한 후, 'insmod' 프로그램을 종료한다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상술한 바와 같이, 본 발명은 '1차 커널 백도어 탐지 과정' 및 '2차 커널 백도어 탐지 과정'과 같이 2단계의 커널 백도어 탐지 과정을 통해 리눅스 시스템 내에 커널 백도어와 같은 악성 커널 모듈이 설치되는 것을 효과적으로 탐지할 수 있다.
또한, 본 발명은 커널 백도와 같은 악성 커널 모듈에 의해 변경된 커널 데이터를 '2차 커널 백도어 탐지 과정'을 통해 탐지하고, 변경된 커널 데이터를 정상적인 커널 데이터로 복구시킴으로써 커널 백도어에 의한 침입을 효과적으로 방지할 수 있다.

Claims (19)

  1. 사용자 영역에 위치되며, 커널 영역 내에 적재가 허용되는 허용 커널 모듈의 목록을 추가, 삭제 및 질의하기 위하여 커널 모듈 관리 프로그램을 내장하는 커널 모듈 관리부;
    상기 커널 모듈 관리부로부터 등록 요청되는 상기 허용 커널 모듈의 목록을 관리하는 허용 커널 모듈 관리부;
    상기 허용 커널 모듈 관리부에 의해 등록 허가된 상기 허용 커널 모듈의 목록을 저장하는 허용 커널 모듈 데이터베이스;
    상기 허용 커널 모듈 데이터베이스에 저장된 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 요청되는 적재 커널 모듈이 커널 백도어인지를 탐지하고, 상기 적재 커널 모듈이 상기 허용 커널 모듈 데이터베이스에 존재하는 경우 상기 커널 영역 내에 적재하는 커널 모듈 적재 관리부;
    상기 커널 영역 내에 위치되며, 상기 허용 커널 모듈에 대한 커널 원본 데이터를 저장하는 커널 원본 데이터베이스; 및
    상기 커널 원본 데이터베이스에 저장되는 상기 커널 원본 데이터를 토대로 상기 커널 영역에 저장되는 커널 데이터의 변경 유무를 검증하고, 상기 커널 데이터가 변경된 경우 원래의 상태로 복구하는 커널 데이터 검증/복구 모듈부를 포함하여 이루어진 커널 백도어 탐지 시스템.
  2. 제 1 항에 있어서, 상기 허용 커널 모듈 관리부는 상기 커널 모듈 관리부로부터 등록 요청된 상기 허용 커널 모듈의 목록이 상기 허용 커널 모듈 데이터베이스에 존재하지 않을 경우에만 등록 요청을 수락하는 것을 특징으로 하는 커널 백도어 탐지 시스템.
  3. 제 1 항에 있어서, 상기 허용 커널 모듈의 목록은 상기 허용 커널 모듈 데이터베이스에 단일 연결 리스트 형태로 저장되는 것을 특징으로 하는 커널 백도어 탐지 시스템.
  4. 삭제
  5. 제 1 항에 있어서, 상기 커널 원본 데이터 및 커널 데이터는 시스템 콜 테이블, 네트워크 프로토콜 핸들러 및 커널 모듈 목록을 포함하는 데이터인 것을 특징으로 하는 커널 백도어 탐지 시스템.
  6. 제 1 항에 있어서, 상기 커널 영역 내에 위치되며, 상기 커널 내에 저장되는 커널 데이터의 시스템 콜 테이블을 저장하는 시스템 콜 테이블 데이터베이스; 및
    상기 커널 데이터의 변경 유무를 탐지하기 위하여 상기 시스템 콜 테이블의 무결성을 검사하고, 복구하는 시스템 콜 감시/복구 모듈부를 더 포함하는 것을 특징으로 하는 커널 백도어 탐지 시스템.
  7. 제 1항, 제 2항, 제 3항, 제 5항 또는 제 6항 중 어느 하나의 항의 구성을 가지는 커널 백도어 탐지 시스템을 이용한 커널 백도어 탐지 방법에 있어서,
    (a) 상기 사용자 영역으로부터 상기 커널 영역으로 허용 커널 모듈의 목록을 등록하는 단계;
    (b) 상기 (a)단계에서 등록되는 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 시도된 적재 커널 모듈에 대한 적재 허용 여부를 탐지하는 단계; 및
    (c) 상기 (b)단계에서 적재가 허용되는 상기 적재 커널 모듈에 의해 상기 커널 영역에 존재하는 커널 데이터가 변경되는지를 탐지하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  8. 제 7 항에 있어서, 상기 (a)단계는,
    (a-1) 상기 사용자 영역의 커널 모듈 관리부를 통해 상기 커널 영역의 허용 커널 모듈 관리부로 상기 허용 커널 모듈의 이름을 전달하는 단계;
    (a-2) 상기 커널 모듈 관리부로부터 전달된 상기 허용 커널 모듈의 이름이 상기 허용 커널 모듈 데이터베이스에 저장된 허용 커널 모듈 목록에 존재하는지를 검사하는 단계; 및
    (a-3) 상기 (a-2) 단계에서 상기 허용 커널 모듈의 이름이 존재하지 않을 경우, 상기 허용 커널 모듈의 이름을 상기 허용 커널 모듈 목록에 등록하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  9. 제 8 항에 있어서, 상기 (a-1) 단계는
    (a-1-1) 상기 허용 커널 모듈의 이름을 등록하기 위하여 상기 사용자 영역의 커널 모듈 관리부의 커널 모듈 관리 프로그램을 실행하는 단계;
    (a-1-2) 상기 허용 커널 모듈의 이름을 상기 커널 영역의 허용 커널 모듈 관리부로 전달하기 위하여 특정 시스템 콜을 호출하는 단계; 및
    (a-1-3) 상기 커널 모듈 관리부로부터 상기 허용 커널 모듈 관리부로 상기 허용 커널 모듈의 이름을 전달하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  10. 제 9 항에 있어서, 상기 특정 시스템 콜은 메모리 영역에 대응되게 주소값의 형태를 가지는 두 개의 버퍼를 파라미터로 가지며, 첫 번째 버퍼의 파라미터 값으로는 0 내지 10 사이의 값을 이용하고, 두 번째 버퍼의 파라미터가 가리키는 메모리 영역에는 상기 허용 커널 모듈의 이름을 저장하여 호출되는 것을 특징으로 하는 커널 백도어 탐지 방법.
  11. 제 8 항에 있어서, 상기 (a-3)단계에서 상기 허용 커널 모듈의 이름은 단일 연결 리스트 형태로 상기 허용 커널 모듈 목록에 등록되는 것을 특징으로 하는 커널 백도어 탐지 방법.
  12. 제 7 항에 있어서, 상기 (b)단계는,
    (b-1) 상기 사용자 영역으로부터 상기 커널 영역의 커널 모듈 적재 관리부로 적재 커널 모듈의 이름을 전달하는 단계;
    (b-2) 상기 사용자 영역으로부터 전달된 상기 적재 커널 모듈의 이름이 상기 허용 커널 모듈 데이터베이스에 저장된 허용 커널 모듈 목록에 존재하는지를 검사하는 단계; 및
    (b-3) 상기 (b-2) 단계에서 상기 적재 커널 모듈의 이름이 존재하는 경우, 상기 적재 커널 모듈을 상기 커널 영역에 적재하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  13. 제 12 항에 있어서, 상기 (b-1)단계는,
    (b-1-1) 상기 사용자 영역의 'insmod' 프로그램을 실행하는 단계; 및
    (b-1-2) 상기 적재 커널 모듈의 이름을 상기 커널 모듈 적재 관리부로 전달하기 위하여 'create_module' 시스템 콜을 호출하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  14. 제 12 항에 있어서, 상기 (b-3)단계는,
    (b-3-1) 상기 (b-2)단계에서 상기 적재 커널 모듈의 이름이 존재하는 경우, 상기 'create_module' 시스템 콜로 복귀하는 단계;
    (b-3-2) 상기 적재 커널 모듈을 상기 커널 영역에 적재하기 위하여'init_module' 시스템 콜을 호출하는 단계; 및
    (b-3-3) 상기 'init_module' 시스템과, 'insmod' 프로그램을 순차적으로 종료하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  15. 제 7 항에 있어서, 상기 (c)단계는,
    (c-1) 상기 (b)단계에서 상기 적재 커널 모듈 적재시, 상기 커널 영역에 존재하는 커널 데이터가 변경되는 것을 감지하기 위하여 상기 커널 데이터와 커널 원본 데이터베이스에 저장된 커널 원본 데이터를 비교하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  16. 제 15 항에 있어서, 상기 (c-1)단계는,
    (c-1-1) 상기 적재 커널 모듈을 적재하기 위하여 'create_module' 시스템 콜의 복귀값을 복사하는 단계; 및
    (c-1-2) 상기 커널 데이터와 상기 커널 원본 데이터를 비교하기 위하여 'init_module' 시스템 콜을 호출하는 단계를 포함하는 것을 특징으로 하는 커널 백도어 탐지 방법.
  17. 제 16 항에 있어서, 상기 복귀값은 상기 적재 커널 모듈이 적재될 상기 커널 영역을 가리키는 주소값이며, 이 값은 상기 'create_module' 시스템 콜이 호출되고, 종료되었을 때 자동적으로 상기 커널 영역에 저장되는 것을 특징으로 하는 커널 백도어 탐지 방법.
  18. 제 1항, 제 2항, 제 3항, 제 5항 또는 제 6항 중 어느 하나의 항의 구성을 가지는 커널 백도어 탐지 시스템을 이용한 커널 데이터 복구 방법에 있어서,
    (a) 상기 사용자 영역으로부터 상기 커널 영역으로 허용 커널 모듈의 목록을 등록하는 단계;
    (b) 상기 (a)단계에서 등록되는 상기 허용 커널 모듈의 목록을 토대로 상기 사용자 영역으로부터 적재 시도된 적재 커널 모듈에 대한 적재 허용 여부를 탐지하는 단계;
    (c) 상기 (b)단계에서 적재가 허용되는 상기 적재 커널 모듈의 이름을 상기 커널 원본 데이터베이스의 커널 원본 데이터의 보안 커널 모듈 목록에 추가하는 단계;
    (d) 상기 적재 커널 모듈을 상기 커널 영역에 적재하는 단계;
    (e) 상기 적재 커널 모듈이 상기 커널 영역에 정상적으로 적재되었는지를 검사하는 단계;
    (f) 상기 (e)단계에서 상기 적재 커널 모듈이 정상적으로 적재되었을 경우, 상기 커널 영역에 존재하는 커널 데이터가 변경되었는지 검사하는 단계; 및
    (g) 상기 (f)단계에서 상기 커널 데이터가 변경되었을 경우, 변경된 커널 데이터를 복구하고, 로그값을 저장하는 단계를 포함하는 것을 특징으로 하는 커널 데이터 복구 방법.
  19. 제 18 항에 있어서, 상기 (e)단계에서 상기 적재 커널 모듈이 정상적으로 적재되지 않았을 경우, 상기 (c)단계에서 추가된 상기 적재 커널 모듈의 이름을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 커널 데이터 복구 방법.
KR10-2002-0024844A 2002-05-06 2002-05-06 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법 KR100456512B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0024844A KR100456512B1 (ko) 2002-05-06 2002-05-06 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0024844A KR100456512B1 (ko) 2002-05-06 2002-05-06 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법

Publications (2)

Publication Number Publication Date
KR20030086722A KR20030086722A (ko) 2003-11-12
KR100456512B1 true KR100456512B1 (ko) 2004-11-10

Family

ID=32381725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0024844A KR100456512B1 (ko) 2002-05-06 2002-05-06 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법

Country Status (1)

Country Link
KR (1) KR100456512B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666562B1 (ko) 2005-08-11 2007-01-09 주식회사 웨어플러스 커널 드라이버 및 프로세스 보호 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040003221A (ko) * 2002-07-02 2004-01-13 김상욱 유닉스 커널 모드에서의 커널 백도어 탐지 및 대응 장치및 그방법
US20050005101A1 (en) * 2003-07-03 2005-01-06 Yenduri Bhargava K. Kernel cryptographic module signature verification system and method
KR100706176B1 (ko) * 2005-07-12 2007-04-12 한국전자통신연구원 커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템
KR100745640B1 (ko) * 2005-08-11 2007-08-02 주식회사 웨어플러스 커널 메모리를 보호하는 방법 및 그 장치
KR100755960B1 (ko) * 2006-01-20 2007-09-06 엔에이치엔(주) 서비스 테이블 변조 감지 및 복원 시스템, 방법 그리고 그방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한기록매체
KR100968915B1 (ko) * 2008-03-14 2010-07-14 주식회사 제이니스 외부 프로그램의 동작에 따라 적어도 하나 이상의 기능을구비하는 프로그램에서 그 기능을 제어하는 방법 및 시스템
KR101663013B1 (ko) * 2010-01-15 2016-10-06 삼성전자주식회사 코드 주입 공격을 감지하는 장치 및 방법
KR101223594B1 (ko) * 2011-01-28 2013-01-17 한남대학교 산학협력단 Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080482A1 (en) * 2000-04-14 2001-10-25 Secuve Co., Ltd. Method and apparatus for protecting file system based on digital signature certificate
KR20010096815A (ko) * 2000-04-14 2001-11-08 홍기융 전자서명 인증기반 다단계 보안용 보안커널 방법
KR20010105116A (ko) * 2000-05-19 2001-11-28 김강호 리눅스 기반의 네트워크 통합 보안 시스템 및 그의 방법과이를 장착한 반도체 장치
KR20020054196A (ko) * 2000-12-27 2002-07-06 오길록 데몬을 이용한 접근 제어 시스템 및 방법
KR20020091340A (ko) * 2001-05-30 2002-12-06 라인식 리눅스 커널 기반의 실시간 침입탐지 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080482A1 (en) * 2000-04-14 2001-10-25 Secuve Co., Ltd. Method and apparatus for protecting file system based on digital signature certificate
KR20010096815A (ko) * 2000-04-14 2001-11-08 홍기융 전자서명 인증기반 다단계 보안용 보안커널 방법
KR20010105116A (ko) * 2000-05-19 2001-11-28 김강호 리눅스 기반의 네트워크 통합 보안 시스템 및 그의 방법과이를 장착한 반도체 장치
KR20020054196A (ko) * 2000-12-27 2002-07-06 오길록 데몬을 이용한 접근 제어 시스템 및 방법
KR20020091340A (ko) * 2001-05-30 2002-12-06 라인식 리눅스 커널 기반의 실시간 침입탐지 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666562B1 (ko) 2005-08-11 2007-01-09 주식회사 웨어플러스 커널 드라이버 및 프로세스 보호 방법

Also Published As

Publication number Publication date
KR20030086722A (ko) 2003-11-12

Similar Documents

Publication Publication Date Title
JP7408725B2 (ja) コンピュータシステムの自動動作管理
KR100711017B1 (ko) 소프트웨어 에이전트와 에이전트 행동의 검증 방법
CN1773417B (zh) 聚集反病毒软件应用程序的知识库的系统和方法
KR101122787B1 (ko) 보안관련 프로그래밍 인터페이스
US7624283B2 (en) Protocol for trusted platform module recovery through context checkpointing
US9576142B2 (en) Execution environment file inventory
US7046995B2 (en) Mobile application peer-to-peer security system and method
JP4629332B2 (ja) 状態参照モニタ
CN102902909B (zh) 一种防止文件被篡改的系统和方法
JP5462254B2 (ja) コンピューティングプロセスのための最小特権アクセスの付与
CN101894225B (zh) 聚集反病毒软件应用程序的知识库的系统和方法
KR101150128B1 (ko) 보안 대책들을 병합하기 위한 방법 및 시스템
CN101512512B (zh) 利用软件名声的软件授权
US20070016914A1 (en) Kernel validation layer
JP2016201115A (ja) マルウェアに対処するための方法及び装置
US9275238B2 (en) Method and apparatus for data security reading
WO2005099342A2 (en) A generic framework for runtime interception and execution control of interpreted languages
WO2006137657A1 (en) Method for intercepting malicious code in computer system and system therefor
KR100456512B1 (ko) 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법
US9330266B2 (en) Safe data storage method and device
Park et al. Static vs. dynamic recovery models for survivable distributed systems
JP2005527905A (ja) 実行可能なコードを格納するタンパーエビデントな取り外し可能な媒体
US20080127352A1 (en) System and method for protecting a registry of a computer
CN112597492B (zh) 一种基于Windows内核的二进制可执行文件更改监测方法
KR20220097037A (ko) 데이터 유출 방지 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20080911

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee