KR20090080469A - 프로그램의 설치 방지 방법 및 장치 - Google Patents

프로그램의 설치 방지 방법 및 장치 Download PDF

Info

Publication number
KR20090080469A
KR20090080469A KR1020080101423A KR20080101423A KR20090080469A KR 20090080469 A KR20090080469 A KR 20090080469A KR 1020080101423 A KR1020080101423 A KR 1020080101423A KR 20080101423 A KR20080101423 A KR 20080101423A KR 20090080469 A KR20090080469 A KR 20090080469A
Authority
KR
South Korea
Prior art keywords
file
data
file data
executable
header
Prior art date
Application number
KR1020080101423A
Other languages
English (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 주식회사 마크애니
Publication of KR20090080469A publication Critical patent/KR20090080469A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • 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

Landscapes

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

Abstract

본 발명은 프로그램의 설치 방지 방법 및 그 장치에 관한 것으로, OS(Operating System)로부터 발생되는 파일 I/O(Input/Output) 중 쓰기 명령을 포함하는 파일 I/O를 선별하는 단계; 상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계; 상기 파일 데이터가 상기 실행 파일인 경우, 상기 파일 I/O의 쓰기 명령을 취소하는 단계를 구비함으로써, 실행 파일 포맷의 파일에 대한 쓰기를 금지시킴으로 허가되지 않은 프로그램의 설치를 원천적으로 방지하는 효과를 가진다.
프로그램 설치, 실행 파일, PE 파일

Description

프로그램의 설치 방지 방법 및 장치{Method and System for preventing installation of program}
본 발명은 프로그램의 설치 방지 방법 및 장치에 관한 것으로, 보다 상세하게는, OS(Operating System)에서 발생되는 파일 I/O(Input/Output)를 실시간으로 감지하여 실행 파일 패턴을 가진 파일 I/O의 쓰기 명령이 취소되도록 하여 허가되지 않은 프로그램의 설치를 방지할 수 있는 방법 및 그 장치에 관한 것이다.
최근 급증하고 있는 인터넷의 물결에 편승하여 통신망을 통한 악성프로그램(Malicious Program)의 전염경로가 다양해지고 있으며, 이로 인한 피해 정도가 매년 증가하고 있다.
악성프로그램에는 컴퓨터 바이러스와 악성코드 즉, 트로이 목마(Trojan Horse), 웜(Worm), 논리폭탄(Logic Bomb), 트랩도어(Trap Door), 스파이웨어(Spyware) 등이 있다. 이들은 자기복제나 자동번식 기능을 구비한 채, 사용자 ID와 암호 등의 개인정보 유출, 대상 시스템 통제, 파일 삭제변경/시스템 파괴, 응용 프로그램/시스템의 서비스 거부, 핵심자료 유출, 다른 해킹 프로그램 설치 등의 문제를 일으켜 그 피해가 매우 다양하고 심각하다.
특히, 도서관, 공공 인터넷 검색 장소, 기타 새로운 프로그램이나 악의적인 프로그램이 설치되면 안 되는 환경에서는 악성 프로그램에 따른 피해가 개인이 아닌 사용 고객 전체를 대상으로 함에 따라 더욱 문제시 되고 있다.
이에, 악성프로그램의 설치를 근본적으로 방지하기 위한 방편으로, 컴퓨터의 재부팅 시에 컴퓨터 사용 목적 외에 설치된 새로운 파일들을 모두 지우는 솔루션이 제시되고 있다. 그런데, 이 솔루션은 컴퓨터 전원을 켜고 끄는 과정에서 컴퓨터를 깨끗한 상태로 유지시킬 수 있는 장점을 지니고 있으나, 컴퓨터가 켜져 있는 동안에는 설치되는 악성 프로그램을 삭제할 수 있는 방법이 미약하여, 중요한 정보들이 설치된 악성 프로그램에 의해 감염되거나 손실될 수 있는 단점을 가진다.
한편, 새로운 프로그램의 설치를 방지하기 위한 다른 방편으로 로컬 네트워크 환경에서 허가되지 않은 금지 프로그램 목록을 가지고 컴퓨터를 감시하여, 목록에 포함된 금지 프로그램의 실행을 방지하고는 방법이 있다. 더하여 로컬 네트워크 환경의 관리자가 임의로 다른 컴퓨터에 설치된 금지 프로그램을 삭제할 수 있는 특허도 출원된 바 있다(출원번호 10??2001??0046107).
그러나, 이와 같은 방법들도 목록에 포함된 금지 프로그램 외의 악성 프로그램은 막을 수 없는 단점을 지닌다. 즉, 악성 프로그램은 언제든지 새로운 이름으로 바뀔 수 있으며, 라이브러리 형태의 바이너리 파일로 침투될 수 있기 때문에 사용자의 행위 제어의 용도로 사용할 수밖에 없는 것이다.
따라서, 도서관, 공공 인터넷 검색 장소, 기타 새로운 프로그램이나 악의적인 프로그램이 설치되면 안 되는 환경을 위해 실시간으로 발생하는 파일 I/O를 감지하여 허가되지 않은 프로그램의 설치를 근본적으로 방지하는 방법이 시급한 실정이다.
본 발명이 해결하고자 하는 기술적 과제는, 새로운 프로그램 및 악의적 프로그램의 설치로부터 보호되어야 하는 컴퓨터 시스템 환경을 위해 실시간으로 허가되지 않은 프로그램의 침투를 감지하고 해당 프로그램의 설치를 근본적으로 방지하는 프로그램의 설치 방지 방법 및 그 장치를 제공하는데 있다.
이러한 본 발명의 기술적 과제를 해결하기 위하여 본 발명은 일 측면(Aspect)에서 프로그램의 설치 방지 방법을 제공한다. 상기 프로그램의 설치 방지 방법은, OS(Operating System)로부터 발생되는 파일 I/O(Input/Output) 중 쓰기 명령을 포함하는 파일 I/O를 선별하는 단계; 상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계; 상기 파일 데이터가 상기 실행 파일인 경우, 상기 파일 I/O의 쓰기 명령을 취소하는 단계를 포함한다.
상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계는, 상기 파일 데이터의 헤더에 포함된 파일 시그네이쳐(Signature)의 분석에 따라 상기 파일 데이터가 상기 실행 파일인지 여부를 판단하는 것을 특징으로 한다.
상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS 에 의해 지정된 실행 파일인지 여부를 판단하는 단계는, 상기 OS에 의해 지정된 실행 파일의 형식 명세서(specification)에 참조하여 상기 파일 데이터를 판독하는 단계; 상기 판독된 파일 데이터로부터 파일 시그네이쳐를 획득하는 단계; 상기 파일 데이터로부터 획득된 파일 시그네이쳐와 상기 실행 파일의 형식 명세서에 명세된 시그네이쳐를 비교하는 단계; 상기 두 시그네이쳐가 동일한 경우 상기 파일 데이터를 실행 파일로 판단하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 프로그램의 설치 방지 방법은, 상기 두 시그네이쳐가 동일하지 않는 경우 상기 파일 데이터를 비실행 파일인 데이터 파일로 판단하여, 상기 파일 I/O를 파일 시스템으로 전달하는 단계를 더 포함하는 것을 특징으로 한다.
상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계는, 상기 OS가 윈도우인 경우, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계; 상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계를 포함하는 것을 특징으로 한다.
상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계는, 상기 파일 데이터의 오프셋(offset)을 분석하는 단계; 상기 오프셋이 '0'이면 상기 파일 데이터 길이를 분석하는 단계; 상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴지 여부를 확인하는 단계; 상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴 것으로 파악되면 상기 파일 I/O를 상기 검사 대상으로 판단하는 단계를 포함하는 것을 특징으로 한다.
상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계는, 상기 오프셋이 '0'이 아니거나, 상기 파일 데이터의 길이가 상기 PE 파일의 헤더 구조 길이보다 짧은 것으로 파악되면 상기 파일 I/O를 비검사 대상으로 판단하는 단계를 더 포함하는 것을 특징으로 한다.
상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계는, 상기 OS가 윈도우인 경우, 상기 파일 데이터의 헤더에 도스 스텁의 메시지(This program cannot be run in DOS mode)가 존재하는 경우 및 상기 파일의 헤더 처음 두 바이트가 'MZ'인 경우 중 적어도 하나의 경우에 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 한다.
상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계는, 상기 파일 데이터의 헤더에 대하여 PE 파일이 포함하는 모든 필드 값을 체크하여, 상기 헤더로부터 적어도 하나의 필드 값이 확인되는 경우 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 한다.
한편, 이러한 본 발명의 기술적 과제를 해결하기 위하여 본 발명은 다른 측면에서 프로그램 설치 방지를 위한 컴퓨터 시스템을 제공한다. 상기 컴퓨터 시스템은 OS로부터 발생되는 파일 I/O 중 쓰기 명령을 포함하는 파일 I/O를 선별하고, 상기 선별된 파일 I/O의 파일 데이터가 OS에 의해 지정된 실행 파일인 경우, 상기 파일 I/O의 쓰기 명령을 취소하는 필터 드라이버를 포함한다.
상기 필터 드라이버는, 상기 파일 I/O의 파일 데이터 헤더에 포함된 파일 시그네이쳐의 분석에 따라 상기 파일 데이터가 상기 실행 파일인지 여부를 판단하 는 것을 특징으로 한다.
상기 필터 드라이버는, 상기 OS에 의해 지정된 실행 파일의 형식 명세서에 참조하여 상기 파일 데이터를 판독하고, 상기 판독된 파일 데이터로부터 획득되는 파일 시그네이쳐와 상기 실행 파일의 형식 명세서에 명세된 시그네이쳐의 비교를 통해 상기 두 시그네이쳐가 동일한 경우 상기 파일 데이터를 실행 파일로 판단하는 것을 특징으로 한다.
상기 필터 드라이버는, 상기 두 시그네이쳐가 동일하지 않는 경우 상기 파일 데이터를 비실행 파일인 데이터 파일로 판단하여, 상기 파일 I/O를 파일 시스템으로 전달하는 것을 특징으로 한다.
상기 필터 드라이버는, 상기 파일 I/O의 파일 데이터가 상기 OS에 의해 지정된 실행 파일인지 여부를 판단함에 있어서, 상기 OS가 윈도우인 경우, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별한 후, 상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 것을 특징으로 한다.
상기 필터 드라이버는, 상기 검사 대상을 선별함에 있어서, 상기 파일 데이터의 오프셋이 '0'이고, 상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴 경우 상기 파일 I/O를 상기 검사 대상으로 판단하는 것을 특징으로 한다.
상기 필터 드라이버는, 상기 선별되는 파일 데이터의 구조를 검사함에 있어서, 상기 파일 데이터의 헤더에 대하여 PE 파일이 포함하는 모든 필드 값을 체크하여, 상기 헤더로부터 적어도 하나의 필드 값이 확인되는 경우 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 한다.
상기 필터 드라이버는, 해당 컴퓨터 시스템의 관리를 위해 프로그램을 업데이트하거나 설치하고자 하는 인증된 사용자에 의해 활성화 및 비활성화되는 것을 특징으로 한다.
상기한 바와 같은 본 발명에 따른 프로그램의 설치 방지 방법 및 그 장치는, 필터 드라이버를 통해 OS로부터 발생되는 파일 I/O를 실시간으로 감시하여 실행 파일 포맷의 파일에 대한 쓰기를 금지시킴으로 허가되지 않은 프로그램의 설치를 원천적으로 방지하는 효과를 가진다.
이하, 본 발명이 속하는 분야에 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 이하에 설명할 본 발명의 바람직한 실시예에서는 내용의 명료성을 위하여 특정한 기술 용어를 사용한다. 하지만 본 발명은 그 선택된 특정 용어에 한정되지는 않으며, 각각의 특정 용어가 유사한 목적을 달성하기 위하여 유사한 방식으로 동작하는 모든 기술 동의어를 포함함을 미리 밝혀둔다.
도 1은 본 발명의 바람직한 실시예에 따른 프로그램의 설치 방지를 실현하기 위한 컴퓨터 시스템의 구성을 도시하는 블록도이다.
도 1에 도시된 바와 같이, 컴퓨터 시스템에서 필터 드라이버(31)는, 어플리케이션(Application)(10), 운영 시스템(Operating System: 이하 'OS'로 칭함)(20) 및 파일 시스템(File System)(40) 사이에 위치하여, 어플리케이션(10)과 OS(20)에 의해 발생되는 파일 I/O를 실시간으로 감지하고 실행 파일 패턴을 가진 파일 I/O에 대한 쓰기를 취소시킴으로, 허가되지 않은 프로그램이 상기 파일 시스템(40)으로 전달되지 못하도록 할 수 있다.
통상적으로 컴퓨터 시스템의 수행 환경은 크게 두 가지 모드, 즉 유저 모드(User Mode)와 커널 모드(Kernel Mode)로 구분될 수 있다. 이때 유저 모드란 사용자가 직접 볼 수 있고, 사용자에 의한 조작 및 사용이 가능한 모드이며 반면, 커널 모드는 사용자가 볼 수 없는 시스템영역(커널)에 접근하기 위해 동작되는 수행 모드이다.
이와 같은 컴퓨터 시스템의 수행 환경에서 유저 모드에 구성되는 상기 어플리케이션(10)은, 미디어 플레이어, 오피스 프로그램, 인터넷 브라우저, 설계 프로그램, 그래픽 프로그램, 개발 프로그램, 파일 탐색기 등의 모든 응용 프로그램으로 구현될 수 있다. 이러한 어플리케이션(10)은 구현되는 응용 프로그램을 실행시키고자 하는 경우 상기 실행에 필요한 파일의 읽기와 쓰기 모두를 OS(20)에 요청하게 된다.
OS(20)는 어플리케이션(10)으로부터 응용 프로그램의 실행에 필요한 파일 읽기 및 쓰기가 요청되면, 상기 요청을 파일 I/O(Input/Output) 형태의 명령으로 변환시켜 커널 영역의 파일 시스템(40)으로 발생시킨다. 예를 들어, 어플리케이 션(10)은 파일의 오픈(Open), 리드(Read), 생성(Create), 세이브(Save), 라이트(Write) 등을 위한 파일 I/O를 발생시킬 수 있다.
파일 시스템(40)은 파일을 저장 및 관리한다. 특히, 상기 OS(20)로부터 발생되는 파일 I/O의 파일 데이터를 저장 및 관리한다.
한편, 커널 드라이버(30)는 상기 OS(20) 및 파일 시스템(40)과 연동하여, OS(20)로부터 발생되는 파일 I/O를 파일 시스템(40)으로 전달한다. 이와 같은 커널 드라이버(30)는 필터 드라이버(31)를 포함하여 상기 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 상기 OS(20)에 의해 지정된 실행 파일의 데이터를 포함하는지 여부에 따라 상기 파일 I/O를 파일 시스템(40)으로 전달할 수 있다.
즉, 필터 드라이버(31)는 OS(20)로부터 파일 I/O가 발생되면 상기 파일 I/O가 쓰기 명령을 포함하는지 여부를 먼저 판단하고, 상기 쓰기 명령을 포함하는 파일 I/O의 파일 데이터가 OS(20)에 의해 지정된 실행파일의 데이터를 포함하는 것으로 확인되는 경우 상기 쓰기 명령을 취소한다. 여기서, 필터 드라이버(31)는 파일 I/O의 파일 데이터로부터 획득되는 시그네이쳐(Signature)가 OS(20)에 의해 지정된 실행 파일 명세서의 시그네이쳐와 동일한 경우, 상기 파일 I/O의 파일 데이터가 실행파일의 데이터를 포함하는 것으로 판단할 수 있다.
더욱 자세히 살펴보면, 필터 드라이버(31)는 OS(20)에 의해 지정된 실행 파일 형식 명세서(specification)를 참조하여 상기 파일 I/O의 파일 데이터 헤더로부터 시그네이쳐를 먼저 획득하고, 획득된 시그네이쳐와 실행 파일 형식 명세서에 명세되어 있는 시그네이쳐를 비교한다. 그리고, 필터 드라이버(31)는 상기 두 시그 네이쳐가 동일한 경우 해당 파일 데이터를 실행 파일로 판단하며, 동일하지 않은 경우 비실행 파일로 판단한다.
이는 각 OS에서 실행되는 실행 파일이 특정한 파일 형식을 가지고 있는 점을 이용한 것이다. 실행 파일은 OS별로 구분되며, 일반적으로 도스(DOS)에서는 'com 파일', 윈도우(Windows)에서는 'PE 파일', 유닉스(Unix and Unix??like)에서는 'ELF 파일', 맥(Mac)에서는 'Mach??O 파일', AmigaOS에서는 'Hunk 파일' 등이다. 필터 드라이버(31)는 소프트웨어의 형태로 구현될 수 있다.
한편, 필터 드라이버(31)는 OS(20)로부터 발생되는 파일 I/O가 실행 파일에 대한 것인지를 판단함에 있어서, 검사 대상을 선별하는 단계와 파일 데이터 구조를 검사하는 단계를 포함할 수 있다.
일예로, 필터 드라이버(31)는 상기 OS(20)가 윈도우인 경우 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계에서, 상기 파일 데이터의 오프셋(offset) 및 길이를 분석하여, 오프셋이 '0'이고 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 길면 상기 파일 I/O를 상기 검사 대상으로 판단할 수 있다.
또한, 필터 드라이버(31)는 상기 선별되는 파일 데이터의 구조를 검사하는 단계에서, 상기 파일 데이터의 헤더에 도스 스텁의 메시지(This program cannot be run in DOS mode)가 존재하는 경우 및 상기 파일의 헤더 처음 두 바이트가 'MZ'인 경우 중 적어도 하나의 경우에 상기 파일 I/O의 파일 데이터를 실행 파일로 판단할 수 있다.
이에, 상기 구성을 갖는 컴퓨터 시스템은 도서관, 공공 인터넷 검색 장소 등의 새로운 프로그램이나 악의적인 프로그램의 설치가 허가되지 않는 환경에서, 사용자가 인터넷을 통한 다운로드나 개인적인 이동식 저장장치의 연결로 파일을 복사하려고 하는 경우, 디지털 정보 보안 장치에 저장되는 파일이 OS에서 지정된 실행 파일인지를 실시간으로 감시하여 허가되지 않는 실행파일에 대한 저장 자체를 방지할 수 있게 된다.
다음으로 전술된 구성을 갖는 컴퓨터 시스템의 프로그램 설치 방지 방법에 대해 도면을 참조하여 자세히 살펴보도록 한다.
도 2는 본 발명의 바람직한 실시예에 따른 필터 드라이버에 의해 수행되는 프로그램 설치 방지 방법을 도시하는 흐름도이다.
도 2를 참조하면, 필터 드라이버(31)는 OS(20)로부터 파일 I/O가 발생되는 경우(S11), 발생된 파일 I/O가 쓰기 명령을 포함하는지 여부를 확인한다(S12).
필터 드라이버(31)는 상기 확인결과, 어플리케이션(10)으로부터 발생된 파일 I/O가 쓰기 명령을 포함하지 않는 것으로 판단되면, 상기 파일 I/O를 파일 시스템(40)으로 전달한다(S13). 하지만, 필터 드라이버(31)는 OS(20)로부터 발생된 파일 I/O가 쓰기 명령을 포함하는 것으로 판단되면, 상기 파일 I/O의 파일 데이터를 분석한다(S14).
그리고, 필터 드라이버(31)는 상기 파일 I/O의 파일 데이터가 OS(20)에 의해 지정된 실행 파일의 데이터를 포함하는지 여부를 파악하고(S15), 상기 실행 파일의 데이터를 포함하는 경우 파일 I/O가 포함하는 쓰기 명령을 취소한다(S16).
하지만, 필터 드라이버(31)는 상기 파일 I/O의 파일 데이터가 OS(20)에 의해 지정된 실행 파일의 데이터를 포함하지 않는 경우 파일 I/O 그대로를 파일 시스템(40)으로 전달한다(S13).
도 3은 본 발명의 바람직한 실시예에 따른 필터 드라이버가 OS에 의해 지정된 실행 파일을 판단하는 절차를 도시하는 흐름도이다.
도 3을 참조하면, 필터 드라이버(31)는 OS(20)로부터 발생된 파일 I/O가 쓰기 명령을 포함하는 것으로 판단되는 경우, 상기 파일 I/O의 파일 데이터를 OS(20)에서 실행되는 실행 파일의 형식 명세서에 따라 판독한다(S21).
그리고, 필터 드라이버(31)는 판독된 파일 데이터로부터 시그네이쳐를 획득하고(S22), 상기 획득된 시그네이쳐와 OS(20)에서 지정된 실행 파일 형식 명세서에 명세된 시그네이쳐를 비교한다(S23).
이와 같은 필터 드라이버(31)는 상기 두 시그네이쳐가 동일한지 여부를 확인하여(S24), 동일한 경우 상기 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 실행 파일인 것으로 판단하여(S25), 상기 파일 I/O의 쓰기 명령을 취소한다(S26).
하지만, 필터 드라이버(31)는 상기 두 시그네이쳐가 동일하지 않으면, 상기 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 비실행 파일인 것으로 판단하여 해당 파일 I/O를 파일 시스템(40)으로 전달한다(S27).
한편, 파일 I/O가 실행 파일에 대한 것인지를 판단하는 단계는, 검사 대상을 선별하는 단계와 파일 데이터 구조를 검사하는 단계로 나눌 수 있다.
다음으로, 컴퓨터 시스템의 OS가 윈도인 경우를 일예로 들어, 쓰기 명령이 포함된 파일 I/O의 파일 데이터가 실행 파일인지 여부를 판단하는 방법에 대하여, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계와 파일 데이터 구조를 검사하는 단계로 나누어 살펴보도록 한다.
도 4는 본 발명의 바람직한 실시예에 다른 필터 드라이버가 실행 파일을 판단하기 위한 검사 대상을 선별하는 과정을 도시하는 흐름도이다.
일반적으로 쓰기 명령은 파일의 어느 위치에 쓰는지 나타내는 'Offset'과 어느 길이만큼 쓸 것인지를 나타내는 'Length'를 포함한다.
이에, 필터 드라이버(31)는 OS(20)로부터 발생된 파일 I/O가 쓰기 명령을 포함하는 경우, 상기 파일 I/O의 파일 데이터로부터 오프셋(offset)을 분석하여(S31), 상기 오프셋이 '0'인지 여부를 확인한다(S32). 이는 오프셋이 '0'인 경우 파일의 맨 처음부터 쓰라는 의미이기 때문이다.
필터 드라이버(31)는 확인 결과, 상기 오프셋이 '0'이면 파일 I/O의 파일 데이터 길이를 분석하고(S33), 상기 오프셋이 '0'이 아니면 상기 OS(20)로부터 발생된 파일 I/O가 실행 파일에 대한 비검사 대상의 파일 I/O인 것으로 판단한다(S34).
한편, 필터 드라이버(31)는 상기 파일 데이터의 길이 분석에 따라, 상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴지 여부를 확인한다(S35).
이에, 필터 드라이버(31)는 확인 결과, 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴 것으로 파악되면 상기 파일 I/O가 실행 파일에 대한 검사 대상의 파일 I/O인 것으로 판단한다(S36). 하지만, 필터 드라이버(31)는 PE 파일의 헤더 구조 길이보다 짧은 것으로 파악되면 OS(20)로부터 발생된 파일 I/O가 실행 파일에 대한 비검사 대상의 파일 I/O인 것으로 판단한다(S34). 이는 상기 파일 데이터가 적어도 헤더를 포함하고 있기 때문에 최소한 PE 파일의 헤더 길이보다는 길어야 함이다.
도 5 내지 도 6은 본 발명의 바람직한 실시예에 따른 필터 드라이버가 실행 파일을 판단하기 위한 검사 대상의 파일 데이터 구조를 분석하는 과정을 도시하는 흐름도이다.
도 5에 도시된 바와 같이, 필터 드라이버(31)는 전술된 도 4의 과정에 따라 OS(20)로부터 발생된 파일 I/O가 실행 파일을 판단하기 위한 검사 대상으로 확인되면, 먼저 해당 파일 I/O의 파일 데이터 헤더를 분석한다(S41).
그리고, 필터 드라이버(31)는 상기 헤더에 도스 스텁의 메시지(This program cannot be run in DOS mode)가 존재하는지 여부를 확인하고(S42), 확인결과 상기 헤더에 도스 스텁의 메시지가 존재하면 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 실행 파일인 것으로 판단한다(S43).
하지만, 필터 드라이버(31)는 상기 확인 결과, 헤더에 도스 스텁의 메시지가 존재하지 않으면 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 비실행 파일인 것으로 판단한다(S44).
또한, 필터 드라이버(31)는 도 6에 도시된 바와 같이, 전술된 도 4의 과정에 따라 OS(20)로부터 발생된 파일 I/O가 실행 파일을 판단하기 위한 검사 대상으로 확인되면, 해당 파일 I/O의 파일 데이터 헤더를 분석하여(S51), 헤더의 처음 두 바이트가 'MZ'인지 여부를 확인한다(S52).
이에, 필터 드라이버(31)는 상기 확인 결과, 파일 헤더의 처음 두 바이트가 'MZ'이면 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 실행 파일인 것으로 판단하고(S53), 상기 처음 두 바이트가 'MZ'가 아니면 비실행 파일인 것으로 판단한다(S54).
한편, 도 5 내지 도 6에 전술된 바와 같은 필터 드라이버(31)는 OS(20)로부터 발생된 파일 I/O의 파일 데이터가 실행 파일인지 여부를 판단하기 위해 파일 구조를 분석함에 있어서, 상기 도 5와 도 6의 조합에 따라 또는 상기 전술된 방법 외에 PE 파일이 모든 필드에 대해 가질 수 있는 값에 대한 체크로 파일 구조를 분석할 수 있다.
이와 같은 구성 및 구성 동작을 수행하는 컴퓨터 시스템은 사용자가 해당 컴퓨터 시스템의 관리를 위해 프로그램을 업데이트하거나 설치하고자 하는 경우, 사용자 인증 절차를 걸쳐 필터 드라이버(31)의 기능을 비활성화 시킨 후 상기 관리를 위한 프로그램이 업데이트 또는 설치되도록 할 수 있다. 즉, 컴퓨터 시스템은 사용자 인증을 통해 필터 드라이버(31)의 기능을 중지시킬 수 있는 것이다.
또한, 컴퓨터 시스템은 일반적인 방법 즉, 사용자 인증 절차 없이 수행되는 삭제, 변경 등으로부터 상기 필터 드라이버(31)가 제거 또는 변경되지 않도록 필터 드라이버(31) 보안 프로그램을 더 포함할 수 있다.
이와 같이 필터 드라이버(31)는 실행 파일 포맷을 가진 파일 I/O를 방지하 여, 허가되지 않은 프로그램에 대한 설치가 원천적으로 차단되도록 할 수 있다.
이상 본 발명에 대하여 그 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 프로그램의 설치 방지를 실현하기 위한 컴퓨터 시스템의 구성을 도시하는 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 필터 드라이버에 의해 수행되는 프로그램 설치 방지 방법을 도시하는 흐름도이다.
도 3은 본 발명의 바람직한 실시예에 따른 필터 드라이버가 OS에 의해 지정된 실행 파일을 판단하는 절차를 도시하는 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 다른 필터 드라이버가 실행 파일을 판단하기 위한 검사 대상을 선별하는 과정을 도시하는 흐름도이다.
도 5 내지 도 6은 본 발명의 바람직한 실시예에 따른 필터 드라이버가 실행 파일을 판단하기 위한 검사 대상의 파일 데이터 구조를 분석하는 과정을 도시하는 흐름도이다.
<도면의 주요 부분에 대한 부호 설명>
10 : 어플리케이션 20 : 운영 시스템
30 : 커널 드라이버 31 : 필터 드라이버
40 : 파일 시스템

Claims (17)

  1. OS(Operating System)로부터 발생되는 파일 I/O(Input/Output) 중 쓰기 명령을 포함하는 파일 I/O를 선별하는 단계;
    상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계; 및
    상기 파일 데이터가 상기 실행 파일인 경우, 상기 파일 I/O의 쓰기 명령을 취소하는 단계를 포함하는 프로그램 설치 방지 방법.
  2. 제1항에 있어서, 상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계는,
    상기 파일 데이터의 헤더에 포함된 파일 시그네이쳐(Signature)의 분석에 따라 상기 파일 데이터가 상기 실행 파일인지 여부를 판단하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  3. 제2항에 있어서, 상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계는,
    상기 OS에 의해 지정된 실행 파일의 형식 명세서(specification)에 참조하 여 상기 파일 데이터를 판독하는 단계;
    상기 판독된 파일 데이터로부터 파일 시그네이쳐를 획득하는 단계;
    상기 파일 데이터로부터 획득된 파일 시그네이쳐와 상기 실행 파일의 형식 명세서에 명세된 시그네이쳐를 비교하는 단계; 및
    상기 두 시그네이쳐가 동일한 경우 상기 파일 데이터를 실행 파일로 판단하는 단계를 포함하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  4. 제3항에 있어서,
    상기 두 시그네이쳐가 동일하지 않는 경우 상기 파일 데이터를 비실행 파일인 데이터 파일로 판단하여, 상기 파일 I/O를 파일 시스템으로 전달하는 단계를 더 포함하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  5. 제1항에 있어서, 상기 선별된 파일 I/O의 파일 데이터를 분석하여, 상기 파일 데이터가 OS에 의해 지정된 실행 파일인지 여부를 판단하는 단계는,
    상기 OS가 윈도우인 경우,
    상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계; 및
    상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  6. 제5항에 있어서, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계는,
    상기 파일 데이터의 오프셋(offset)을 분석하는 단계;
    상기 오프셋이 '0'이면 상기 파일 데이터 길이를 분석하는 단계;
    상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴지 여부를 확인하는 단계;
    상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴 것으로 파악되면 상기 파일 I/O를 상기 검사 대상으로 판단하는 단계를 포함하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  7. 제6항에 있어서, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별하는 단계는,
    상기 오프셋이 '0'이 아니거나, 상기 파일 데이터의 길이가 상기 PE 파일의 헤더 구조 길이보다 짧은 것으로 파악되면 상기 파일 I/O를 비검사 대상으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  8. 제5항에 있어서, 상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계는,
    상기 OS가 윈도우인 경우, 상기 파일 데이터의 헤더에 도스 스텁의 메시지(This program cannot be run in DOS mode)가 존재하는 경우 및 상기 파일의 헤더 처음 두 바이트가 'MZ'인 경우 중 적어도 하나의 경우에 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  9. 제5항에 있어서, 상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 단계는,
    상기 파일 데이터의 헤더에 대하여 PE 파일이 포함하는 모든 필드 값을 체크하여, 상기 헤더로부터 적어도 하나의 필드 값이 확인되는 경우 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 하는 프로그램의 설치 방지 방법.
  10. OS로부터 발생되는 파일 I/O 중 쓰기 명령을 포함하는 파일 I/O를 선별하고, 상기 선별된 파일 I/O의 파일 데이터가 OS에 의해 지정된 실행 파일인 경우, 상기 파일 I/O의 쓰기 명령을 취소하는 필터 드라이버를 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 필터 드라이버는,
    상기 파일 I/O의 파일 데이터 헤더에 포함된 파일 시그네이쳐의 분석에 따라 상기 파일 데이터가 상기 실행 파일인지 여부를 판단하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제11항에 있어서, 상기 필터 드라이버는,
    상기 OS에 의해 지정된 실행 파일의 형식 명세서에 참조하여 상기 파일 데이터를 판독하고, 상기 판독된 파일 데이터로부터 획득되는 파일 시그네이쳐와 상기 실행 파일의 형식 명세서에 명세된 시그네이쳐의 비교를 통해 상기 두 시그네이쳐가 동일한 경우 상기 파일 데이터를 실행 파일로 판단하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 필터 드라이버는,
    상기 두 시그네이쳐가 동일하지 않는 경우 상기 파일 데이터를 비실행 파일인 데이터 파일로 판단하여, 상기 파일 I/O를 파일 시스템으로 전달하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제10항에 있어서, 상기 필터 드라이버는,
    상기 파일 I/O의 파일 데이터가 상기 OS에 의해 지정된 실행 파일인지 여부를 판단함에 있어서, 상기 OS가 윈도우인 경우, 상기 파일 데이터의 구조를 검사하기 위한 검사 대상을 선별한 후, 상기 선별되는 파일 데이터의 구조를 검사하여 상기 실행 파일 여부를 판단하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제14항에 있어서, 상기 필터 드라이버는,
    상기 검사 대상을 선별함에 있어서, 상기 파일 데이터의 오프셋이 '0'이고, 상기 파일 데이터의 길이가 PE 파일의 헤더 구조 길이보다 긴 경우 상기 파일 I/O를 상기 검사 대상으로 판단하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제14항에 있어서, 상기 필터 드라이버는,
    상기 선별되는 파일 데이터의 구조를 검사함에 있어서, 상기 파일 데이터의 헤더에 대하여 PE 파일이 포함하는 모든 필드 값을 체크하여, 상기 헤더로부터 적어도 하나의 필드 값이 확인되는 경우 상기 파일 I/O의 파일 데이터를 실행 파일로 판단하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제10항에 있어서, 상기 필터 드라이버는,
    해당 컴퓨터 시스템의 관리를 위해 프로그램을 업데이트하거나 설치하고자 하는 인증된 사용자에 의해 활성화 및 비활성화되는 것을 특징으로 하는 컴퓨터 시스템.
KR1020080101423A 2008-01-21 2008-10-16 프로그램의 설치 방지 방법 및 장치 KR20090080469A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080006221 2008-01-21
KR1020080006221 2008-01-21

Publications (1)

Publication Number Publication Date
KR20090080469A true KR20090080469A (ko) 2009-07-24

Family

ID=41291555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080101423A KR20090080469A (ko) 2008-01-21 2008-10-16 프로그램의 설치 방지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20090080469A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101470330B1 (ko) * 2013-08-01 2014-12-09 (주)아이젝스 소프트웨어 설치파일 관리 시스템 및 이를 이용한 소프트웨어 관리 방법
CN104318160A (zh) * 2014-10-29 2015-01-28 北京奇虎科技有限公司 查杀恶意程序的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101470330B1 (ko) * 2013-08-01 2014-12-09 (주)아이젝스 소프트웨어 설치파일 관리 시스템 및 이를 이용한 소프트웨어 관리 방법
CN104318160A (zh) * 2014-10-29 2015-01-28 北京奇虎科技有限公司 查杀恶意程序的方法和装置

Similar Documents

Publication Publication Date Title
US11853414B2 (en) Mitigation of return-oriented programming attacks
JP6370747B2 (ja) バーチャルマシーンモニタベースのアンチマルウェアセキュリティのためのシステム及び方法
US8621624B2 (en) Apparatus and method for preventing anomaly of application program
US9418227B2 (en) Detecting malicious software
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
US8065728B2 (en) Malware prevention system monitoring kernel events
US7895448B1 (en) Risk profiling
US8056134B1 (en) Malware detection and identification via malware spoofing
Wüchner et al. Malware detection with quantitative data flow graphs
US8261344B2 (en) Method and system for classification of software using characteristics and combinations of such characteristics
US20070079375A1 (en) Computer Behavioral Management Using Heuristic Analysis
US20080016339A1 (en) Application Sandbox to Detect, Remove, and Prevent Malware
KR20180032566A (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
KR101086203B1 (ko) 악성 프로세스의 행위를 판단하여 사전에 차단하는 악성프로세스 사전차단 시스템 및 방법
McIntosh et al. Dynamic user-centric access control for detection of ransomware attacks
Barabosch et al. Host-based code injection attacks: A popular technique used by malware
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
KR100959276B1 (ko) 커널계층에서 통제리스트를 이용한 악성프로세스 설치차단 시스템 및 그 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
Shirley et al. The user is not the enemy: Fighting malware by tracking user intentions
KR100666562B1 (ko) 커널 드라이버 및 프로세스 보호 방법
Taylor et al. Hidden in plain sight: Filesystem view separation for data integrity and deception
EP2881883B1 (en) System and method for reducing load on an operating system when executing antivirus operations
KR20090080469A (ko) 프로그램의 설치 방지 방법 및 장치
KR102463814B1 (ko) 서버 모니터링 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application