KR20100026195A - 시스템 보호 장치 및 방법 - Google Patents

시스템 보호 장치 및 방법 Download PDF

Info

Publication number
KR20100026195A
KR20100026195A KR1020080085105A KR20080085105A KR20100026195A KR 20100026195 A KR20100026195 A KR 20100026195A KR 1020080085105 A KR1020080085105 A KR 1020080085105A KR 20080085105 A KR20080085105 A KR 20080085105A KR 20100026195 A KR20100026195 A KR 20100026195A
Authority
KR
South Korea
Prior art keywords
virtual machine
file
image
operating system
loading
Prior art date
Application number
KR1020080085105A
Other languages
English (en)
Other versions
KR101013419B1 (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 KR1020080085105A priority Critical patent/KR101013419B1/ko
Publication of KR20100026195A publication Critical patent/KR20100026195A/ko
Application granted granted Critical
Publication of KR101013419B1 publication Critical patent/KR101013419B1/ko

Links

Images

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 운영체제의 부트 또는 설치 과정에서의 보호 장치에 관한 것으로, 특히 이를 위하여 가상 머신 관리자는, 가상 머신에 운영체제 부트 이미지를 로드하여 실행시킨 후 부트 이미지 실행에 따라 가상 머신 내에서 인터럽트 또는 이벤트 발생 시 로드 및 실행될 이미지에 대한 유효성을 검증하고, 유효성 검증 결과에 의거하여 부팅 또는 설치를 실패 처리하거나 유효하지 않은 이미지를 차단시키며, 부팅 또는 설치 과정이 진행되고 보안 프로그램이 설치될 경우 가상 머신의 하드웨어 상태를 가상 머신 관리자의 하드웨어 상태로 치환하여 가상화 상태를 종료시킨다.
이와 같이, 본 발명은 가상 머신 관리자를 이용하여 부트 또는 설치 과정에 가상 머신을 생성한 후 이를 토대로 로드 및 실행될 이미지 또는 파일을 검사함으로서, 시스템의 설치와 부트 또는 설치 과정에서 시스템을 안정하게 보호할 수 있다.
부트, 운영체제, 설치, 보호, 가상머신, VMM

Description

시스템 보호 장치 및 방법{GUARDING APPARATUS AND METHOD FOR SYSTEM}
본 발명은 운영체제의 보호에 관한 것으로, 더욱 상세하게는 부트 또는 설치 과정에서 악성 코드가 실행되지 않도록 하고, 네트워크로부터 침입을 차단할 수 있는 운영체제의 부트 또는 설치 과정에서의 시스템 보호 장치 및 방법에 관한 것이다.
일반적으로, 컴퓨터 시스템은 컴퓨터가 전원이 들어오면 보조 장치를 사용하여 컴퓨터가 동작할 수 있도록 운영체제를 로딩하여 작동을 작업을 하는데, 이와 같이 컴퓨터 시스템을 시동하거나 초기 설정하는 것을 부팅(booting)이라고 한다.
한편, 이러한 컴퓨터 시스템의 운영체제를 보호하기 위하여 일반적으로 AV/AS 제품, 어플리케이션 컨트롤, 소프트웨어 기반의 방화벽, IPS 등 여러 기술이 상용화되어 사용되고 있다.
그러나, 이와 같은 종래 방법은 운영체제를 설치한 후에 추가적으로 제품을 설치하여 운영체제를 보호하는 방법이기 때문에 운영 체제를 설치하는 과정에서는 보호가 되지 않을 뿐만 아니라, 운영체제의 부트로더와 커널 등이 로드된 다음 로드되는 모듈이기 때문에 부트로더나 커널 등이 변조되었을 때 무방비 상태가 되는 문제점 있었다.
이런 이유로, 최근 들어서는 부트타임에서의 공격에 대비하기 위한 방법이 등장하였다. 이와 관련하여 부트타임에서의 공격에 대비하기 위한 방법은 부팅이 시작하기 전에 부트 과정에 관여하는 것으로 알려진 파일이 위변조 되지 않았는지 사전에 검사하거나 운영 체제의 커널 내에 모듈을 검사하는 방법이 있다.
종래 부트타임에서의 운영체제 보호 방법은 부트로더나 커널 자체를 변조하지 않고 시스템 설정을 변경하여 악성 코드를 로드하는 경우에 대해서 대처하기 어려울 뿐만 아니라 부팅 전에 실시되는 사전 프로세스이기 때문에 부트 과정에서의 침입에 대처할 수 없는 단점이 있다.
또한, 종래의 운영체제의 커널 내에서 모듈을 검사하는 방법은 기 개발되어 있는 운영체제에 부팅 과정에서의 모듈 검사 기능을 제공하기 위해 운영체제를 자체적으로 수정해야하는 어려움이 있다.
본 발명은 운영체제의 수정이나 운영체제 훅(hook)을 비롯한 어떠한 실시간 패칭도 가하지 않은 상태로 운영체제가 설치 또는 부트 과정이 끝나고 보안 프로그램이 로딩되기 전까지 시스템을 보호한다.
본 발명의 제 1 관점으로서 시스템 보호 장치는, 상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신을 생성하는 가상 머신 관리자를 포함하며, 상기 가상 머신 관리자는, 상기 가상 머신에 운영체제 부트 이미지를 로드하여 실행시키는 실행 수단과, 상기 부트 이미지 실행에 따라 상기 가상 머신 내에서 인터럽트 또는 이벤트 발생 시 로드 및 실행될 이미지에 대한 유효성을 검증하는 검증 수단과, 상기 유효성 검증 결과에 의거하여 부팅 또는 설치를 실패 처리하거나 유효 하지 않은 이미지를 차단시키는 차단 수단과, 상기 부팅 또는 설치 과정이 진행되고 보안 프로그램이 설치될 경우 상기 가상 머신의 하드웨어 상태를 상기 가상 머신 관리자의 하드웨어 상태로 치환하여 가상화 상태를 종료시키는 종료 수단을 포함한다.
본 발명의 제 2 관점으로서 시스템 보호 장치는, 상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신을 생성하는 가상 머신 관리자를 포함하며, 상기 가상 머신 관리자는, 상기 가상 머신 관리자에 의해 상기 가상 머신에 운영체제 부트 이미지가 로드 및 실행됨에 따라 상기 가상 머신에서 실행되는 커널에서 파일 오픈하는 API의 메모리 페이지에 읽기 금지 속성을 부여하는 수단과, 상기 API의 호출을 통해 파일 로딩을 감지하고, 상기 로딩된 파일의 유효성을 검증하는 검증 수단과, 상기 유효성 검증 결과에 따라 유효하지 않은 파일의 로딩을 차단시키거나 상기 파일을 로딩시키는 처리 수단과, 상기 부팅 또는 설치 과정이 진행되고 보안 프로그램이 설치될 경우 상기 가상 머신의 하드웨어 상태를 상기 가상 머신 관리자의 하드웨어 상태로 치환하여 가상화 상태를 종료시키는 종료 수단을 포함한다.
본 발명의 제 3 관점으로서 시스템 보호 방법은, 상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신 관리자를 로드하여 실행시키는 단계와, 상기 가상 머신 관리자에 의해 가상 머신을 생성한 후 상기 생성된 가상 머신에 운영체제 부트 이미지를 로드하여 실행시키는 단계와, 상기 가상 머신으로 파일 또는 이미지가 로딩되는지를 판단하는 단계와, 상기 로딩된 파일 또는 이미지의 유효성을 검증하는 단계와, 상기 유효성 검증 결과에 의거하여 상기 설치 또는 부팅을 실패 처리하거나 유효하지 않은 이미지 또는 파일을 차단시키는 단계를 포함한다.
본 발명은 가상 머신 관리자를 이용하여 부트 또는 설치 과정에 가상 머신을 생성한 후 이를 토대로 로드 및 실행될 이미지 또는 파일을 검사함으로서, 시스템의 설치와 부트 또는 설치 과정에서 시스템을 안정하게 보호할 수 있다.
또한, 본 발명은 운영체제의 코드를 변경하거나 런타임 패칭을 수행하지 않고도 시스템을 보호할 수 있어 타 보호 제품과의 충돌을 방지할 수 있다.
본 발명은 부팅 또는 설치가 진행되는 동안 가상화를 통해 부팅 전 과정을 운영체제의 외부에서 계속 감시할 수 있기 때문에, 운영체제 내부에서 알려지지 않은 악성코드가 수행하는 런타임 패칭에 영향을 받지 않는다.
또한, 본 발명은 부팅 과정이 완료되고 보안 프로그램이 로딩되면, 본 발명의 보호 장치가 메모리에서 완전히 해제되기 때문에 본 발명의 보호 장치에 의한 시스템 성능 저하가 없다는 장점이 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 아울러 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
본 발명의 바람직한 실시 예에서는 운영체제의 부트 또는 설치 과정에서 가상 머신 관리자를 이용하여 가상 머신을 생성한 후 이를 운영체제의 부팅 또는 설치 시 로딩되는 파일 또는 이미지를 검사할 뿐만 아니라 네트워크의 침입으로부터 보호할 수 있는 운영체제의 부트 또는 설정 과정에서의 시스템 보호 장치 및 방법에 대해 설명한다.
도 1은 본 발명의 바람직한 실시 예에 따라 운영체제의 설치 또는 부트 과정에서 시스템을 보호하기 위한 장치로서, 하드웨어 플랫폼(100), 가상 머신 관리자(110) 및 가상 머신(120)을 포함한다.
여기서, 하드웨어 플랫폼(100)은 단말, 예컨대 컴퓨터 시스템 등이 부팅될 컴퓨터 시스템 내의 장치들을 검사하는 바이오스(101), 메모리(102), 디바이스(103), 저장매체(104), NIC(Network Interface Card)(105) 등을 포함하고 있다.
바이오스(101)는 컴퓨터 시스템에 전원이 인가됨에 따라 POST(Power-On Self Test) 과정을 수행하여 메모리와 기타 하드웨어(디바이스)를 검사한 후 가상 머신 관리자(110)를 로드하여 실행한다.
가상 머신 관리자(110)는 컴퓨터 시스템 내의 바이오스(101) 뿐만 아니라 저장매체(104), 예컨대 하드디스크, 광 기록매체, 별도의 외부 장치, 예컨대 USB 메모리 등에 부팅 형태로 존재할 수 있다.
이러한 가상 머신 관리자(110)는 POST 과정을 수행된 후 가상 머신(120)을 생성하고, 컴퓨터 시스템 내 저장매체(104)의 운영체제 부트 이미지를 가상 머신(120) 공간에 실행시킨다. 이와 같이 가상 머신 공간에 운영체제 부트 이미지가 실행되면, 가상 머신(120) 공간 내 실행된 운영체제(120a)는 커널과 디바이스 드라이버를 로드하여 실행한다.
가상 머신 관리자(110)는 가상 머신(120) 내에서 인터럽트나 이벤트가 발생될 때마다 컨텍스트를 전환 받게 되는데, 인터럽트나 이벤트는 이미지, 예컨대 MBR 실행 이미지 또는 파일 등이 가상 머신(120)에 로딩되어 실행될 때 발생되거나 NIC(105)를 통해 패킷을 수신하는 경우 발생된다.
즉, 가상 머신 관리자(110)는 인터럽트 또는 이벤트 발생 시 이미지, 예컨대 실행 가능한 MBR 이미지가 하드디스크, 광 기록매체 또는 별도의 외부 장치로부터 로드될 해당 이미지의 유효성을 검사하고, 유효하지 않은 이미지인 경우 부팅을 실패로 처리하거나 해당 이미지에 대응되는 모듈을 차단시킨다. 가상 머신 관리자(110)의 유효성 검사는 해당 이미지 내의 바이너리 정보, 예를 들어 공개키 정보를 이용할 수 있다.
한편, 가상 머신 관리자(110)는 가상 머신(120)에 운영체제 부트 이미지를 로드 및 실행한 후 운영체제(120a)의 커널에 파일을 오픈하기 위한 API의 메모리 페이지에 읽기 금지 속성을 부여함으로서, 해당 API가 호출될 때, 즉 컴퓨터 시스템의 파일을 읽으려 할 때 발생되는 "General Fault Exception"을 통해 파일이 가상 머신(120)에 로딩되는지를 판단한다.
이와 같이 파일 로딩을 감지한 후 가상 머신 관리자(110)는 파일의 유효성을 검사하고, 파일이 정상 파일일 경우 메모리 페이지에서 읽기 금지 속성을 해제하여 정상 파일을 가상 머신(120)에 로딩할 수 있다.
한편, 정상 파일이 아닌 경우 가상 머신 관리자(110)는 읽기 금지 속성을 해제하기 전에 API 진입점에 응답 지시(return instruction)를 기록하여 API의 호출이 실패하도록 하여 파일의 로딩을 차단시킨다.
가상 머신(120)에서 발생되는 인터럽트가 NIC(105)의 패킷 메모리 카피 완료로 발생하는 것인 경우 가상 머신 관리자(110)는 메모리 카피가 NIC(105)를 통한 패킷 수신에 의해서 발생한 것이면, 수신된 패킷을 검사하여 Outbound 요청, 즉 가상 머신(120) 내 운영체제(120a)의 요청에 의한 응답인지를 확인한다. 운영체제(120a)의 요청에 의한 응답이 아닌 경우 경우에는 해당 패킷을 메모리(102)에서 삭제시켜 가상 머신(120)의 운영체제(120a)로 전달되지 않도록 한다.
가상 머신 관리자(120)는 TCP와 같은 프로토콜에 대해서 세션 관리를 통해 운영체제 설치나 부팅 과정에서의 Inbound 접속을 감지하여 이를 차단함으로서, 네트워크로부터의 침입을 차단할 수 있다.
이와 같은 과정을 통해 부팅 과정이 진행되고 가상 머신(120) 내에 어플리케이션(120b)의 하나로 보안 프로그램이 설치되어 실행되는 것이 확인되면, 가상 머신 관리자(110)는 가상 머신(120)의 하드웨어 정보를 자신의 하드웨어 정보, 예컨대 메모리와 CPU 상태로 치환시킴으로서, 가상화 상태를 종료시킨다. 만약, CPU가 인텔 프로세서인 경우에는 "VMX OFF Instruction"을 이용하여 가상화 상태를 종료시킨다.
이에 따라, 도 2에 도시된 바와 같이, 가상 머신 관리자(110)가 종료됨과 더불어 가상 머신(120)에 로딩된 운영체제(120a)와 어플리케이션(120b)은 호스트 상에서 동작하게 된다.
상기와 같은 구성을 갖는 시스템 보호 장치가 동작하는 과정에 대해 도 3을 참조하여 설명한다.
도 3은 본 발명의 바람직한 실시 예에 따른 운영체제 부트 과정에서의 시스템 보호 과정을 도시한 흐름도이다.
도 3에 도시된 바와 같이, 먼저 컴퓨터 시스템의 전원이 온됨에 따라 하드웨어 플랫폼(100)의 바이오스(101)는 POST 과정, 즉 메모리(102), 디바이스(103), 저장매체(104), NIC(105) 등과 같은 시스템 내의 장치를 검사한다(S300).
그런 다음, 바이오스(101)는 가상 머신 관리자(110)를 로드하여 실행시킨다(S302). 이에 따라, 가상 머신 관리자(110)는 가상 머신(120)을 생성한 후 저장매체(104), 예컨대 하드디스크에 저장된 운영체제 부트 이미지를 로드하여 가상 머신(120) 공간에서 실행시킨다(S304).
이후, 가상 머신(120) 내에서 실행된 운영체제(120a)는 커널과 디바이스 드라이버 등 운영체제와 자체 하드웨어를 구동하기 위한 드라이버 이미지 또는 파일을 로드하여 실행하게 되는데, 이때 가상 머신 관리자(110)는 가상 머신(120)에서 인터럽트나 이벤트가 발생되는지를 판단한다(S306).
S306의 판단 결과, 가상 머신(120)에서 인터럽트나 이벤트가 발생되는 경우 가상 머신 관리자(110)는 가상 머신(120)에서 컨텍스트를 전환 받게 되는데, 이를 토대로 각각의 이미지가 저장매체(104)로부터 로딩되는 것을 판단하여 로딩될 각각의 이미지에 대한 유효성을 검증한다(S308). 이 경우 이미지의 유효성은 이미지 내의 공개키를 기반으로 수행될 수 있다.
S308의 검증 결과를 토대로 로딩될 각각의 이미지가 유효할 경우 가상 머신 관리자(110)는 가상 머신(120)에 각각의 이미지를 로드하여 실행시키며, 그렇지 않을 경우 해당 이미지에 대응되는 모듈을 차단(S310)시킨다.
본 발명 실시 형태에서는 가상 머신 관리자(110)가 가상 머신(120)에서 발생되는 인터럽트 또는 이벤트 발생을 토대로 이미지가 로드되는지를 판단하였지만, 다른 실시 형태에서는 운영체제(120a) 내의 커널에 파일을 오픈하는 API의 메모리 페이지에 읽기 금지 속성을 부여하여 API가 호출될 때마다 발생되는 신호, 예컨대 "General Fault Exception"을 캐치하여 파일의 로딩을 감지할 수도 있다.
이 경우에는 로딩될 파일의 유효성을 검사한 후 로딩될 파일이 유효하면 메모리 페이지에서 읽기 금지 속성을 해제함으로서, 정상 파일을 가상 머신(120) 내에 로딩할 수 있다. 한편, 로딩될 파일이 유효하지 않을 경우에는 읽기 금지 속성을 해제하기 전인 API 진입점에 응답지시를 기록하여 API 호출을 실패하도록 함으로서, 파일의 로딩을 차단시킨다.
한편, 가상 머신 관리자(110)는 가상 머신(120)에서 발생되는 인터럽트가 NIC(105)를 통한 패킷 메모리 카피 완료 발생인 경우(S312)에는 패킷을 검사하여 Outbound 요청, 즉 운영체제(120a)의 요청에 의한 응답으로 수신되는 패킷인지를 판단한다(S314).
S314의 판단 결과, 응답으로 수신되는 패킷이 아닌 경우 가상 머신 관리자(110)는 해당 패킷을 삭제시킴으로서, 패킷이 운영체제(120a)로 전달되는 것을 차단시킨다(S316).
또한, 가상 머신 관리자(110)는 운영체제의 부트 과정에서 NIC(105)를 통한 Inbound 접속, 즉 외부로부터 해당 컴퓨터 시스템에 접속하는 경우가 발생되는지를 판단하여 이를 차단시킨다(S318, S320).
한편, S312의 판단 결과, 인터럽트가 메모리 카피 완료 발생이 아닌 경우 및 S318의 판단 결과, Inbound 접속 요청이 없는 경우에는 S306으로 진행하여 가상 머신(120)에서의 인터럽트 또는 이벤트 발생 여부를 다시 판단하고, S314의 판단 결과 운영제체(120a)의 요청에 대한 응답인 경우에는 메모리(102)에 카피된 패킷을 가상 머신(120)에 제공한(S322) 후 S306으로 진행한다.
상기와 같은 과정을 통해 부팅 과정이 완료, 즉 운영체제(120a)와 보안 프로그램 등과 같은 어플리케이션(120b)이 가상 머신(120) 내에 설치되면, 가상 머신 관리자(110)는 가상 머신(120)의 하드웨어 상태 정보, 예컨대 메모리와 CPU 상태 정보를 자신의 하드웨어 상태 정보로 치환한 후 가상화를 종료시킨다.
이와 같이 가상화가 종료됨에 따라 가상 머신(120) 내에서 동작하는 운영체제(120a) 및 어플리케이션(120b)은 가상 머신(120)을 벗어나 호스트 상태에서 동작하게 된다.
상기와 같은 본 발명의 바람직한 실시 예에서는 운영체제의 부팅 과정에서의 보호 장치와 그 동작 과정에 대해 설명하였지만, 운영체제의 설치 과정에서도 동일 한 과정을 적용시킬 수 있다. 즉, 운영체제를 설치하기 전에 가상 머신 관리자(110)는 가상 머신(120)을 생성한 후 이를 통해 운영체제 부트 이미지를 실행시킨 후 드라이버 이미지를 로딩한다.
여기서, 가상 머신 관리자(110)는 운영체제의 파일이 DVD, CD 등과 같은 광 기록매체에서 파일 시스템으로 복사될 때 파일의 해시값을 이용하여 원본 파일 여부, 즉 파일의 유효성을 검사할 수 있다. 유효성 검사를 통해 변조되는 파일이 설치되는 것을 막을 수 있다.
또한, 본 발명의 바람직한 실시 예에서는 가상 머신 관리자(110)가 바이오스(101) 내에 탑재되어 POST 프로세스가 종료된 후 바이오스(101)에서 실행된다고 설명하였지만, 다른 실시 예로서 가상 머신 관리자(110)를 저장매체(104), 예컨대 하드디스크의 부트 섹터에 위치시켜 운영체제 기동되기 이전에 실행되도록 할 수 있다.
이와 같이, 하드디스크의 부트 섹터에 가상 머신 관리자(110)를 저장하는 경우에는 설치된 운영체제의 부트섹터에 조작이 가해지게 됨으로서, 설치된 운영체제가 사용하는 부트섹터를 별도의 공간에 저장하고 있다가 운영체제가 실행될 때 부트섹터를 변경하거나 별도의 공간에서 부트 섹터를 읽어서 실행해야한다.
지금까지 본 발명의 일 실시예에 국한하여 설명하였으나 본 발명의 기술이 당업자에 의하여 용이하게 변형 실시될 가능성이 자명하다. 이러한 변형된 실시 예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
도 1은 본 발명의 바람직한 실시 예에 따른 운영체제의 부트 또는 설치 과정에서의 시스템 보호 장치를 도시한 블록도이며,
도 2는 본 발명에 따라 운영체제의 부트 또는 설치 완료 후의 상태를 도시한 도면이며,
도 3은 본 발명의 바람직한 실시 예에 따른 운영체제 부트 과정에서의 시스템 보호 과정을 도시한 흐름도이다.
<도면의 주요부분에 대한 부호의 설명>
100 : 하드웨어 플랫폼
110 : 가상 머신 관리자
120 : 가상 머신

Claims (16)

  1. 시스템 보호 장치로서,
    상기 보호 장치는, 상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신을 생성하는 가상 머신 관리자를 포함하며,
    상기 가상 머신 관리자는,
    상기 가상 머신에 운영체제 부트 이미지를 로드하여 실행시키는 실행 수단과,
    상기 부트 이미지 실행에 따라 상기 가상 머신 내에서 인터럽트 또는 이벤트 발생 시 로드 및 실행될 이미지에 대한 유효성을 검증하는 검증 수단과,
    상기 유효성 검증 결과에 의거하여 상기 부팅 또는 설치를 실패 처리하거나 유효하지 않은 이미지를 차단시키는 차단 수단과,
    상기 부팅 또는 설치 과정이 진행되고 보안 프로그램이 설치될 경우 상기 가상 머신의 하드웨어 상태를 상기 가상 머신 관리자의 하드웨어 상태로 치환하여 가상화 상태를 종료시키는 종료 수단
    을 포함하는 시스템 보호 장치.
  2. 제 1 항에 있어서,
    상기 가상 머신 관리자는, 상기 인터럽트가 상기 시스템 내 네트워크 인터페이스의 패킷 메모리 카피 완료인 경우, 상기 메모리의 패킷을 검사하고, 상기 운영 체제의 요청에 의한 응답이 아닌 경우 상기 메모리 내 패킷을 삭제시키는 것을 특징으로 하는 시스템 보호 장치.
  3. 제 1 항에 있어서,
    상기 가상 머신 관리자는, 상기 시스템 내 네트워크 인터페이스를 통해 Inbound 접속 요청인 경우 이를 차단시키는 것을 특징으로 시스템 보호 장치.
  4. 제 1 항에 있어서,
    상기 검증 수단은, 상기 로드 및 실행되는 이미지의 공개키에 대한 유효성 판단을 통해 상기 이미지를 검증하는 것을 특징으로 하는 시스템 보호 장치.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 가상 머신 관리자는, 상기 시스템의 저장매체 내 부트 섹터에 탑재되거나 바이오스에 탑재되는 것을 특징으로 하는 시스템 보호 장치.
  6. 시스템 보호 장치로서,
    상기 보호 장치는, 상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신을 생성하는 가상 머신 관리자를 포함하며,
    상기 가상 머신 관리자는,
    상기 가상 머신 관리자에 의해 상기 가상 머신에 운영체제 부트 이미지가 로 드 및 실행됨에 따라 상기 가상 머신에서 실행되는 커널에서 파일 오픈하는 API의 메모리 페이지에 읽기 금지 속성을 부여하는 수단과,
    상기 API의 호출을 통해 파일 로딩을 감지하고, 상기 로딩된 파일의 유효성을 검증하는 검증 수단과,
    상기 유효성 검증 결과에 따라 유효하지 않은 파일의 로딩을 차단시키거나 상기 파일을 로딩시키는 처리 수단과,
    상기 부팅 또는 설치 과정이 진행되고 보안 프로그램이 설치될 경우 상기 가상 머신의 하드웨어 상태를 상기 가상 머신 관리자의 하드웨어 상태로 치환하여 가상화 상태를 종료시키는 종료 수단
    을 포함하는 시스템 보호 장치.
  7. 제 6 항에 있어서,
    상기 처리 수단은, 상기 검증 결과 유효한 파일인 경우 상기 API의 읽기 금지 속성을 해제하여 로딩시키는 것을 특징으로 하는 시스템 보호 장치.
  8. 제 6 항에 있어서,
    상기 처리 수단은, 상기 검증 결과 유효하지 않은 파일인 경우 상기 API의 진입점에 응답 지시를 기록함으로서, 상기 API의 호출이 실패하도록 하여 상기 파일의 로딩을 차단시키는 것을 특징으로 하는 시스템 보호 장치.
  9. 제 6 항에 있어서,
    상기 가상 머신 관리자는, 상기 시스템 내 저장매체의 부트 섹터에 저장되거나 바이오스에 저장되어 있는 것을 특징으로 하는 운영체제의 부트 또는 설치 과정에서의 보호 장치.
  10. 시스템을 보호하는 방법으로서,
    상기 시스템에 운영체제를 설치하거나 부팅하는 경우 가상 머신 관리자를 로드하여 실행시키는 단계와,
    상기 가상 머신 관리자에 의해 가상 머신을 생성한 후 상기 생성된 가상 머신에 운영체제 부트 이미지를 로드하여 실행시키는 단계와,
    상기 가상 머신으로 파일 또는 이미지가 로딩되는지를 판단하는 단계와,
    상기 로딩된 파일 또는 이미지의 유효성을 검증하는 단계와,
    상기 유효성 검증 결과에 의거하여 상기 설치 또는 부팅을 실패 처리하거나 유효하지 않은 이미지 또는 파일을 차단시키는 단계
    를 포함하는 시스템 보호 방법.
  11. 제 10 항에 있어서,
    상기 로딩되는지를 판단하는 단계는, 상기 가상 머신 내에서 인터럽트 또는 이벤트 발생 여부를 토대로 판단하는 것을 특징으로 하는 시스템 보호 방법.
  12. 제 11 항에 있어서,
    상기 보호 방법은,
    상기 인터럽트가 상기 시스템 내 네트워크 인터페이스의 패킷 메모리 카피 완료인 경우 상기 메모리의 패킷을 검사하는 단계와,
    상기 검사 결과, 상기 가상 머신 내 운영체제의 요청에 의한 응답이 아닌 경우 상기 메모리 내 패킷을 삭제시키는 단계
    를 더 포함하는 시스템 보호 방법.
  13. 제 10 항에 있어서,
    상기 보호 방법은,
    상기 시스템 내 네트워크 인터페이스를 통해 Inbound 접속 요청이 있는지를 판단하는 단계와,
    상기 판단 결과, 상기 Inbound 접속 요청이 있는 경우 이를 차단시키는 단계
    를 더 포함하는 시스템 보호 방법.
  14. 제 10 항에 있어서,
    상기 로딩되는지를 판단하는 단계는,
    상기 가상 머신 내 커널에서 파일을 오픈하는 API의 호출 여부를 토대로 상기 파일 로딩을 판단하는 단계
    를 포함하는 시스템 보호 방법.
  15. 제 14 항에 있어서,
    상기 파일 로딩을 판단하는 단계는, 상기 가상 머신에서 실행되는 커널에서 파일 오픈하는 API의 메모리 페이지에 읽기 금지 속성을 부여하여 상기 API 호출 여부를 판단하는 것을 특징으로 하는 시스템 보호 방법.
  16. 제 15 항에 있어서,
    상기 파일을 차단시키는 단계는, 상기 API의 진입점에 응답 지시를 기록하여 상기 API 호출이 실패하도록 하여 상기 파일의 로딩을 차단시키는 것을 특징으로 하는 시스템 보호 방법.
KR1020080085105A 2008-08-29 2008-08-29 시스템 보호 장치 및 방법 KR101013419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080085105A KR101013419B1 (ko) 2008-08-29 2008-08-29 시스템 보호 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080085105A KR101013419B1 (ko) 2008-08-29 2008-08-29 시스템 보호 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100026195A true KR20100026195A (ko) 2010-03-10
KR101013419B1 KR101013419B1 (ko) 2011-02-14

Family

ID=42177569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080085105A KR101013419B1 (ko) 2008-08-29 2008-08-29 시스템 보호 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101013419B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140118093A (ko) * 2013-03-28 2014-10-08 한국전자통신연구원 메모리 가상화 기반 스냅샷 부트 장치 및 방법
KR101467302B1 (ko) * 2013-03-11 2014-12-02 전자부품연구원 에러 검출 테이블을 이용한 패스트 부팅 방법 및 이를 적용한 시스템
KR101709116B1 (ko) * 2015-10-01 2017-02-22 한국전자통신연구원 가상 머신 부팅 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101405831B1 (ko) * 2013-01-29 2014-06-11 주식회사 잉카인터넷 악성실행코드의 숙주 파일 탐지 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
KR100763198B1 (ko) 2006-02-06 2007-10-04 삼성전자주식회사 임베디드 시스템의 부팅 장치 및 방법
KR20080079549A (ko) * 2007-02-27 2008-09-01 삼성전자주식회사 시스템의 부팅 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467302B1 (ko) * 2013-03-11 2014-12-02 전자부품연구원 에러 검출 테이블을 이용한 패스트 부팅 방법 및 이를 적용한 시스템
KR20140118093A (ko) * 2013-03-28 2014-10-08 한국전자통신연구원 메모리 가상화 기반 스냅샷 부트 장치 및 방법
KR101709116B1 (ko) * 2015-10-01 2017-02-22 한국전자통신연구원 가상 머신 부팅 장치 및 방법
US11204776B2 (en) 2015-10-01 2021-12-21 Electronics And Telecommunications Research Institute Apparatus and method for booting virtual machines

Also Published As

Publication number Publication date
KR101013419B1 (ko) 2011-02-14

Similar Documents

Publication Publication Date Title
JP5512610B2 (ja) 非ファームウェアエージェントからメモリへのアクセスを許可または阻止する方法、システム、および機械可読記憶媒体
Kauer Oslo: improving the security of trusted computing.
US9852295B2 (en) Computer security systems and methods using asynchronous introspection exceptions
CN103718165B (zh) Bios闪存攻击保护和通知
US9087199B2 (en) System and method for providing a secured operating system execution environment
Han et al. A bad dream: Subverting trusted platform module while you are sleeping
US20090288161A1 (en) Method for establishing a trusted running environment in the computer
JP5607752B2 (ja) 不正な変更からオペレーティング・システムを保護するための方法及びシステム
US20130117006A1 (en) Simulated boot process to detect introduction of unauthorized information
JP2014513348A (ja) 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
US9245122B1 (en) Anti-malware support for firmware
JPH11506856A (ja) コンピュータ・システムにおけるウィルス保護
Hudson et al. Thunderstrike: EFI firmware bootkits for Apple MacBooks
KR101064164B1 (ko) 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
JP2010182196A (ja) 情報処理装置およびファイル検証システム
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
KR20130038304A (ko) 외부 부팅 장치, 외부 부팅 방법, 정보 처리 장치 및 네트워크 통신 시스템
CN109711161B (zh) 一种监控方法及电子设备
KR101013419B1 (ko) 시스템 보호 장치 및 방법
CN113448682A (zh) 一种虚拟机监控器加载方法、装置及电子设备
TW201333748A (zh) 資訊處理空間管理方法、外部裝置及資訊處理裝置
US8572742B1 (en) Detecting and repairing master boot record infections
Shi et al. Vanguard: A cache-level sensitive file integrity monitoring system in virtual machine environment
Kovah et al. How Many Million BIOSes Would you Like to Infect?
US11556645B2 (en) Monitoring control-flow integrity

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190131

Year of fee payment: 9