KR101673774B1 - 가상화 시스템에서 파일 입출력 제어를 위한 방법 - Google Patents

가상화 시스템에서 파일 입출력 제어를 위한 방법 Download PDF

Info

Publication number
KR101673774B1
KR101673774B1 KR1020150077415A KR20150077415A KR101673774B1 KR 101673774 B1 KR101673774 B1 KR 101673774B1 KR 1020150077415 A KR1020150077415 A KR 1020150077415A KR 20150077415 A KR20150077415 A KR 20150077415A KR 101673774 B1 KR101673774 B1 KR 101673774B1
Authority
KR
South Korea
Prior art keywords
file
semi
output
agent
file input
Prior art date
Application number
KR1020150077415A
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 주식회사 수산아이앤티
Priority to KR1020150077415A priority Critical patent/KR101673774B1/ko
Priority to PCT/KR2016/005676 priority patent/WO2016195343A1/ko
Priority to US15/574,780 priority patent/US10474832B2/en
Application granted granted Critical
Publication of KR101673774B1 publication Critical patent/KR101673774B1/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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
    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 반가상화 에이전트를 실행하기에 앞서, 반가상화 에이전트에 대한 무결성을 검사하고, 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하여 반가상화 에이전트를 보호하고, 반가상화 에이전트에서 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의하고, 호스트 기반 파일 시스템 보호 서비스에서 정책 엔진을 통해서 상기 발생한 파일 입출력에 대한 접근권한을 판단하고, 판단 결과를 반가상화 에이전트로 송신하여 발생한 파일 입출력을 처리하여서 파일 시스템의 파일을 보호하는 기술에 관한 것이다.

Description

가상화 시스템에서 파일 입출력 제어를 위한 방법{Method for controlling file input and file output in a virtualized system}
본 발명은 전가상화 시스템에서 반가상화 에이전트와 파일을 보호하기 위한 것입니다.
"가상화"의 사전적 의미는 "실제로 있지 않거나 모호한 것에 대하여 실제로 존재하는 사실이나 개체로 가정하여 취급하는 것"으로 정의되어 있다.
본 발명에서 가상화 기술은 "컴퓨터 운영체제를 시스템 구조나 하드웨어에 영향을 받지 않고 설치, 사용할 수 있는 기술"이다.
가상화 기술은 최초로 1970년대에 IBM에서 제안한 기술로 당시에는 메인 프레임의 공간 절감과 비용적 문제를 해결하고자 제안되었다. 하지만, 최근에는 비용절감의 효과뿐만 아니라 호환성 및 유연성, 보안성을 제공하여 가상화 기술이 주목받고 있다. 주로 적용 분야는 클라우드 컴퓨팅을 위한 서버 가상화와 데스크톱 가상화, 모바일 가상화 등 분야가 다양하다.
가상화는 구현 방법에 따라 다양하게 분류되는데 크기 전가상화(Full Virtualization)와 반가상화(Para Virtualization)로 나눌 수 있다.
전가상화는 완벽하게 하드웨어를 가상화하기 때문에 커널을 수정할 필요가 없는 가상화 기술이다.
반면, 반가상화는 하드웨어를 부분적으로 가상화 시키는 방법으로, 게스트(guest) 운영체제 커널을 가상 머신 모니터(VMM; Virtual machine monitor)에서 요구하는 인터페이스에 맞게 수정해야 한다.
이러한 가상화 기술을 보안성 때문에 이용되는 이유는, 높은 격리성(Isolation)이란 가상화의 장점에 바탕을 둔다. 가상화 환경은 일반적으로 가상 머신과 이를 관리하는 가상 머신 모니터(VMM; Virtual machine monitor) 혹은 하이퍼바아저(Hypervisor)로 구성되며, 각 가상 머신은 격리된 공간으로 존재한다. 특히 가상 머신에 위협이 발생한 경우에도 해당 가상 머신을 제외한 다른 가상 머신과 가상 머신 모니터에는 영향을 주지 않기 때문이다.
하지만, 가상화 시스템에서 기존에 물리머신에서 사용되는 보안솔루션들은 한계를 보이고 있고, 보안위협의 발생빈도도 크게 증가하고 있다.
가상화 시스템에서 보안솔루션이 한계를 보이는 대표적인 이유는 하나의 가상화 시스템에 다수의 운영체제가 설치될 수 있기 때문이다.
해커들이 가상화 시스템에 설치되는 운영체제 중에서 하나를 이용해서 운영체제 수준에서 공격하여 데이터에 접근하는 경우, 이를 막기 어려운 문제를 가지고 있다.
따라서, 데이터의 접근을 효율적으로 감시하고 차단할 수 있는 기술이 요구된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 반가상화 시스템에서 반가상화 에이전트를 보호하는 장치 및 방법을 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 반가상화 에이전트를 실행하기에 앞서, 반가상화 에이전트에 대한 무결성을 검사하고, 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하여 반가상화 에이전트를 보안하는 보호하는 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 반가상화 에이전트에서 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의하고, 호스트 기반 파일 시스템 보호 서비스에서 정책 엔진을 통해서 상기 발생한 파일 입출력에 대한 접근권한을 판단하고, 판단 결과를 반가상화 에이전트로 송신하여 발생한 파일 입출력을 처리하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 반가상화 에이전트를 보호하는 반가상화 시스템은, 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증하는 파서; 검증결과 상기 반가상화 에이전트가 무결하면, 상기 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하는 호스트 기반 파일 시스템 보호 서비스; 상기 가상 머신에서 동작하며, 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 송신하여 접근 가능 여부를 문의하는 상기 반가상화 에이전트; 및 상기 발생한 파일 입출력에 대한 접근권한을 판단하고, 상기 발생한 파일 입출력에 대한 판단 결과를 상기 반가상화 에이전트로 송신하는 정책 엔진을 포함한다.
이때, 상기 반가상화 에이전트는, 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면 상기 발생한 파일 입출력을 차단하고, 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면, 상기 발생한 파일 입출력을 수행할 수 있다.
이때, 상기 정책 엔진은, 상기 정책 엔진에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일 목록은, 파일 이름, 파일 경로, 프로세스 별 파일에 대한 접근 권한 및 보안 정책에 대한 정보 중에서 적어도 하나를 포함할 수 있다.
이때, 상기 호스트 기반 파일 시스템 보호 서비스는, 상기 반가상화 에이전트의 시작 시간과 상기 반가상화 에이전트가 할당된 메모리 영역의 주소를 상기 반가상화 에이전트로부터 수신하고, 상기 반가상화 에이전트가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
이때, 상기 반가상화 에이전트와 상기 호스트 기반 파일 시스템 보호 서비스는 하이퍼콜 인터페이스(hypercall interface)를 이용해서 통신할 수 있다.
본 발명의 일 실시 예에 따른 반가상화 시스템에서 반가상화 에이전트를 보호하는 방법은, 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증하는 단계; 검증결과 상기 반가상화 에이전트가 무결하면, 상기 반가상화 에이전트가 할당된 메모리의 변조를 차단하는 단계; 상기 반가상화 에이전트에서 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의하는 단계; 상기 호스트 기반 파일 시스템 보호 서비스에서 정책 엔진을 통해서 상기 발생한 파일 입출력에 대한 접근권한을 판단하는 단계; 및 상기 발생한 파일 입출력에 대한 판단 결과를 상기 반가상화 에이전트로 송신하는 단계를 포함한다.
이때, 반가상화 시스템에서 반가상화 에이전트를 보호하는 방법은, 상기 반가상화 에이전트에서 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면 상기 발생한 파일 입출력을 차단하고, 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면, 상기 발생한 파일 입출력을 수행하는 단계를 더 포함할 수 있다.
이때, 상기 발생한 파일 입출력에 대한 접근권한을 판단하는 단계는, 상기 정책 엔진에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일 목록은, 파일 이름, 파일 경로, 프로세스 별 파일에 대한 접근 권한 및 보안 정책에 대한 정보 중에서 적어도 하나를 포함할 수 있다.
이때, 상기 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하는 단계는, 상기 호스트 기반 파일 시스템 보호 서비스에서 상기 반가상화 에이전트의 시작 시간과 상기 반가상화 에이전트가 할당된 메모리 영역의 주소를 상기 반가상화 에이전트로부터 수신하면, 상기 반가상화 에이전트가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
본 발명은 반가상화 에이전트를 실행하기에 앞서, 반가상화 에이전트에 대한 무결성을 검사하고, 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하여 반가상화 에이전트를 보호하고, 반가상화 에이전트에서 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의하고, 호스트 기반 파일 시스템 보호 서비스에서 정책 엔진을 통해서 상기 발생한 파일 입출력에 대한 접근권한을 판단하고, 판단 결과를 반가상화 에이전트로 송신하여 발생한 파일 입출력을 처리하여서 파일 시스템의 파일을 효과적으로 보호할 수 있다.
도 1은 일 실시예에 따라 반가상화 에이전트와 파일 시스템의 자원을 보안하는 반가상화 시스템의 구성을 도시한 도면이다.
도 2는 일 실시예에 따라 반가상화 에이전트의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 3은 일 실시예에 따른 반가상화 시스템에서 반가상화 에이전트와 파일 시스템의 자원을 보안하는 과정을 도시한 흐름도이다.
도 4는 일 실시예에 따른 반가상화 시스템에서 파일의 접근권한에 따라 파일 입출력을 처리하는 과정을 도시한 흐름도이다.
도 5는 일 실시예에 따라 반가상화 시스템에서 반가상화 에이전트와 파일 시스템의 자원을 보안하기 위한 메시지 흐름을 도시한 도면이다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시 예에 대한 설명을 통하여 명백히 드러나게 될 것이다.
본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 반가상화 시스템에서 반가상화 에이전트를 보호하는 장치 및 방법을 첨부된 도 1 내지 도 5를 참조하여 상세히 설명한다.
도 1은 일 실시예에 따라 반가상화 에이전트와 파일 시스템의 자원을 보안하는 반가상화 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 반가상화 시스템은 크게 가상 머신(110)과 호스트(120)로 구분할 수 있다. 이때, 가상 머신(110)은 반가상화 에이전트(Para-virtualized Agent)(112), 파일 시스템(114)을 포함하고, 호스트(120)는 호스트 기반 파일 시스템 보호 서비스(HFPS; Host-based File system Protection Service)(122), 파서(Parser)(124), 정책 엔진(Reasoning Engine)(126)을 포함하여 구성될 수 있다.
반가상화 에이전트(112)는 가상 머신에서 시작하기에 앞서, 시작 시간과 반가상화 에이전트의 메모리 영역 정보를 호스트 기반 파일 시스템 보호 서비스(122)를 통해 파서(124)로 제공하여 무결성 여부를 확인한다. 이때, 에이전트의 메모리 영역 정보에 해당하는 메모리 주소는 커널의 구조체(structure) 및 API (Application Programming Interface)를 통해 획득할 수 있다.
반가상화 에이전트(112)는 운영체제에 관계 없이 구현될 수 있으나, 운영체제에 따라 구현 방법이 달리질 수 있다. 예를 들어, 윈도우(Windows)의 경우 파일 시스템 미니필터 드라이버(file system minifilter driver)를 통해 반가상화 에이전트(112)가 구현될 수 있고, 리눅스(Linux)의 경우 커널 모듈(kernel module)을 통해 반가상화 에이전트(112)가 구현될 수 있다.
파서(124)는 가상 머신(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증한다.
호스트 기반 파일 시스템 보호 서비스(122)는 파서(124)의 검증결과 반가상화 에이전트가 무결하면, 반가상화 에이전트(112)가 할당된 메모리 영역의 변조를 차단한다.
호스트 기반 파일 시스템 보호 서비스(122)는 수신한 반가상화 에이전트(112)의 시작 시간과 반가상화 에이전트(112)가 할당된 메모리 영역의 주소를 이용하여 반가상화 에이전트(112)가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
도 2는 일 실시예에 따라 반가상화 에이전트의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 2를 참조하면, 호스트 기반 파일 시스템 보호 서비스(122)는 페이지 테이블 엔트리(page table entry)에서 음영으로 표시한 접근 권한(RWX bits)을 쓰기금지에 해당하는 읽기(read)로 수정하여 변조를 차단할 수 있다.
한편, 메모리 영역에 대한 변조를 차단하기 위해서 인텔의 경우 메모리 가상화 기술인 Extended Page Table (EPT)를 활용하고, AMD의 경우 Nested Page Tables (NPT)를 활용 할 수 있다.
파서(124)는 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증하고, 검증 결과를 호스트 기반 파일 시스템 보호 서비스(122)로 제공한다.
한편, 반가상화 에이전트(112)는 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스(122)로 송신하여 접근 가능 여부를 문의할 수 있다.
호스트 기반 파일 시스템 보호 서비스(122)는 반가상화 에이전트(112)로부터 발생한 파일 입출력 정보를 수신하면, 정책 엔진(126)를 통해 발생한 파일 입출력 정보에 해당하는 파일의 접근권한을 판단하도록 요청하고, 정책 엔진(126)으로부터 판단결과를 수신하면 반가상화 에이전트(112)로 송신한다.
정책 엔진(126)은 보호 대상으로 기설정된 파일 목록에서 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 접근 가능 여부를 판단할 수 있다. 이때, 파일 목록은 파일 이름, 파일 경로, 프로세스 별 파일에 대한 접근 권한 및 보안 정책에 대한 정보 중에서 적어도 하나를 포함할 수 있고, 데이터베이스 형태로 구성될 수도 있다.
반가상화 에이전트(112)는 호스트 기반 파일 시스템 보호 서비스(122)로부터 발생한 파일 입출력에 대한 접근 가능 여부를 판단한 결과를 수신하고, 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면 발생한 파일 입출력을 차단하고, 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면 발생한 파일 입출력을 수행하도록 할 수 있다.
한편, 반가상화 에이전트(112)와 호스트 기반 파일 시스템 보호 서비스(122)는 하이퍼콜 인터페이스(hypercall interface)를 이용해서 통신할 수 있다.
이하, 상기와 같이 구성된 본 발명에 따른 반가상화 시스템에서 반가상화 에이전트를 보호하는 방법을 아래에서 도면을 참조하여 설명한다.
도 3은 일 실시예에 따른 반가상화 시스템에서 반가상화 에이전트와 파일 시스템의 자원을 보안하는 과정을 도시한 흐름도이다.
도 3을 참조하면, 파서에서 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증한다(310).
검증결과 반가상화 에이전트가 무결하면, HFPS에서 반가상화 에이전트가 할당된 메모리의 변조를 차단한다(310). 이때, 메모리의 변조를 차단하는 방법은 반가상화 에이전트가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
그리고, 가상 머신에서 게스트 운영체제의 실행을 시작하고(330), 반가상화 에이전트의 실행을 시작한다(340).
이후, 반가상화 시스템은 게스트 운영체제와 반가상화 에이전트가 실행 중인지 여부를 확인한다(350).
250단계의 확인결과 게스트 운영체제와 반가상화 에이전트가 실행 중이면, 반가상화 에이전트는 파일 입출력의 발생 여부를 확인한다(360).
360단계의 확인결과 파일 입출력이 발생하면, 반가상화 에이전트는 파일의 접근권한에 따라 발생한 파일 입출력을 처리한다(370).
파일 입출력이 발생하여 처리기하는 370단계를 아래 도 7을 통해 설명하고자 한다.
도 4는 일 실시예에 따른 반가상화 시스템에서 파일의 접근권한에 따라 파일 입출력을 처리하는 과정을 도시한 흐름도이다.
도 4를 참조하면,
반가상화 에이전트는 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의한다(410).
호스트 기반 파일 시스템 보호 서비스는 정책 엔진을 통해서 발생한 파일 입출력에 대한 접근권한을 판단한다(412).
호스트 기반 파일 시스템 보호 서비스는 발생한 파일 입출력에 대한 판단 결과를 반가상화 에이전트로 송신한다(414).
반가상화 에이전트는 발생한 파일 입출력에 대한 접근 가능 여부 판단결과가 접근 허가인지 확인한다(416).
416단계의 확인결과 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면, 반가상화 에이전트는 발생한 파일 입출력을 수행하도록 처리한다(418).
416단계의 확인결과 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면, 반가상화 에이전트는 발생한 파일 입출력을 차단하도록 처리한다(420).
도 5는 일 실시예에 따라 반가상화 시스템에서 반가상화 에이전트와 파일 시스템의 자원을 보안하기 위한 메시지 흐름을 도시한 도면이다.
도 5를 참조하면, 반가상화 에이전트(112)는 가상 머신에서 시작하기에 앞서, 시작 시간과 반가상화 에이전트의 메모리 영역 정보를 호스트 기반 파일 시스템 보호 서비스(122)로 송신한다(510).
HFPS(122)는 시작 시간과 반가상화 에이전트의 메모리 영역 정보를 파서(124)로 제공한다(512).
파서(124)는 가상 머신(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증한다(514).
그리고, 파서(124)는 무결성을 판단한 결과를 HFPS(122)로 제공한다(516).
HFPS(122)는 파서(124)의 검증결과 반가상화 에이전트가 무결하면, 반가상화 에이전트(112)가 할당된 메모리 영역에 쓰기가 금지되도록 읽기전용(read only)로 설정하여 변조를 차단한다(518).
이후, 반가상화 에이전트(112)에서 파일 입출력 발생하면(520), 발생한 파일 입출력 정보를 HFPS(122)로 송신하여 접근 가능 여부를 문의한다(522).
HFPS(122)는 발생한 파일 입출력 정보를 정책 엔진(524)으로 제공하여 접근 가능 여부를 문의한다(524).
정책 엔진(126)은 보호 대상으로 기설정된 파일 목록에서 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 접근 가능 여부를 판단하고(526), 판단결과를 HFPS(122)로 송신한다(528).
HFPS(122)는 정책 엔진(126)으로부터 발생한 파일 입출력에 대한 접근 가능 여부를 판단한 판단결과를 수신하면, 수신한 판단결과를 반가상화 에이전트(112)로 송신한다(530).
반가상화 에이전트(112)는 발생한 파일 입출력에 대한 접근 가능 여부를 판단한 판단결과에 따라 발생한 파일 입출력을 처리한다(532).
본 발명의 일 실시 예에 따른 반가상화 시스템에서 반가상화 에이전트를 보호하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110; 가상 머신
112; 반가상화 에이전트
114; 파일 시스템
120; 호스트
122; 호스트 기반 파일 시스템 보호 서비스
124; 파서
126; 정책 엔진

Claims (9)

  1. 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증하는 파서;
    검증결과 상기 반가상화 에이전트가 무결하면, 상기 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하는 호스트 기반 파일 시스템 보호 서비스;
    상기 가상 머신에서 동작하며, 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 송신하여 접근 가능 여부를 문의하는 상기 반가상화 에이전트; 및
    상기 발생한 파일 입출력에 대한 접근권한을 판단하고, 상기 발생한 파일 입출력에 대한 판단 결과를 상기 반가상화 에이전트로 송신하는 정책 엔진
    을 포함하고,
    상기 반가상화 에이전트는,
    수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면 상기 발생한 파일 입출력을 차단하고, 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면, 상기 발생한 파일 입출력을 수행함을 특징으로 하는
    반가상화 에이전트를 보호하는 반가상화 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 정책 엔진은,
    상기 정책 엔진에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 판단하고,
    상기 파일 목록은,
    파일 이름, 파일 경로, 프로세스 별 파일에 대한 접근 권한 및 보안 정책에 대한 정보 중에서 적어도 하나를 포함하는
    반가상화 에이전트를 보호하는 반가상화 시스템.
  4. 제1항에 있어서,
    상기 호스트 기반 파일 시스템 보호 서비스는,
    상기 반가상화 에이전트의 시작 시간과 상기 반가상화 에이전트가 할당된 메모리 영역의 주소를 상기 반가상화 에이전트로부터 수신하고, 상기 반가상화 에이전트가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단함을 특징으로 하는
    반가상화 에이전트를 보호하는 반가상화 시스템.
  5. 가상 머신을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 반가상화 에이전트에 대한 무결성을 검증하는 단계;
    검증결과 상기 반가상화 에이전트가 무결하면, 상기 반가상화 에이전트가 할당된 메모리의 변조를 차단하는 단계;
    상기 반가상화 에이전트에서 파일 입출력이 발생하면, 발생한 파일 입출력 정보를 호스트 기반 파일 시스템 보호 서비스로 송신하여 접근 가능 여부를 문의하는 단계;
    상기 호스트 기반 파일 시스템 보호 서비스에서 정책 엔진을 통해서 상기 발생한 파일 입출력에 대한 접근권한을 판단하는 단계;
    상기 발생한 파일 입출력에 대한 판단 결과를 상기 반가상화 에이전트로 송신하는 단계; 및
    상기 반가상화 에이전트에서 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 불가(deny)이면 상기 발생한 파일 입출력을 차단하고, 수신한 상기 발생한 파일 입출력에 대한 판단 결과가 접근 허가(allow)이면, 상기 발생한 파일 입출력을 수행하는 단계
    를 포함하는 반가상화 시스템에서 반가상화 에이전트를 보호하는 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 발생한 파일 입출력에 대한 접근권한을 판단하는 단계는,
    상기 정책 엔진에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 발생한 파일 입출력 정보에 대한 접근권한을 확인하여 판단하고,
    상기 파일 목록은,
    파일 이름, 파일 경로, 프로세스 별 파일에 대한 접근 권한 및 보안 정책에 대한 정보 중에서 적어도 하나를 포함하는
    반가상화 시스템에서 반가상화 에이전트를 보호하는 방법.
  8. 제5항에 있어서,
    상기 반가상화 에이전트가 할당된 메모리 영역의 변조를 차단하는 단계는,
    상기 호스트 기반 파일 시스템 보호 서비스에서 상기 반가상화 에이전트의 시작 시간과 상기 반가상화 에이전트가 할당된 메모리 영역의 주소를 상기 반가상화 에이전트로부터 수신하면, 상기 반가상화 에이전트가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단하는
    반가상화 시스템에서 반가상화 에이전트를 보호하는 방법.
  9. 제5항, 제7항 및 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020150077415A 2015-06-01 2015-06-01 가상화 시스템에서 파일 입출력 제어를 위한 방법 KR101673774B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150077415A KR101673774B1 (ko) 2015-06-01 2015-06-01 가상화 시스템에서 파일 입출력 제어를 위한 방법
PCT/KR2016/005676 WO2016195343A1 (ko) 2015-06-01 2016-05-30 가상화 시스템에서 파일 입출력 제어를 위한 방법
US15/574,780 US10474832B2 (en) 2015-06-01 2016-05-30 Method for controlling file input-output in virtualization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150077415A KR101673774B1 (ko) 2015-06-01 2015-06-01 가상화 시스템에서 파일 입출력 제어를 위한 방법

Publications (1)

Publication Number Publication Date
KR101673774B1 true KR101673774B1 (ko) 2016-11-08

Family

ID=57441174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150077415A KR101673774B1 (ko) 2015-06-01 2015-06-01 가상화 시스템에서 파일 입출력 제어를 위한 방법

Country Status (3)

Country Link
US (1) US10474832B2 (ko)
KR (1) KR101673774B1 (ko)
WO (1) WO2016195343A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009601A1 (ko) * 2017-07-04 2019-01-10 주식회사 수산아이앤티 웹 소스를 보호하기 위한 장치 및 방법
WO2019039730A1 (ko) * 2017-08-23 2019-02-28 주식회사 수산아이앤티 랜섬웨어 방지 장치 및 방법
WO2019225849A1 (ko) * 2018-05-25 2019-11-28 주식회사 수산아이앤티 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
US10965679B2 (en) 2017-08-07 2021-03-30 Electronics And Telecommunications Research Institute Apparatus for monitoring file access in virtual machine and method for the same
WO2021201483A1 (ko) * 2020-04-02 2021-10-07 주식회사 수산아이앤티 해쉬 관리를 통해 파일을 보호하는 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080041436A (ko) * 2006-11-07 2008-05-13 주식회사 안철수연구소 Tlb를 이용한 메모리 접근 제어 방법
KR20080089002A (ko) * 2007-03-30 2008-10-06 삼성전자주식회사 메모리 접근 제어 방법
KR20110095051A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 가상화 환경에서의 데이터 처리 방법 및 드라이버
KR101072807B1 (ko) * 2010-09-30 2011-10-14 한국과학기술원 가상 머신 모니터 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827550B2 (en) * 2005-08-17 2010-11-02 Intel Corporation Method and system for measuring a program using a measurement agent
US9177145B2 (en) * 2009-03-24 2015-11-03 Sophos Limited Modified file tracking on virtual machines
US8650565B2 (en) * 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
EP3413222B1 (en) 2012-02-24 2020-01-22 Nant Holdings IP, LLC Content activation via interaction-based authentication, systems and method
US9342703B2 (en) * 2012-11-30 2016-05-17 Red Hat Israel, Ltd. Managing storage permissions for logical volume managers
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
US9626205B2 (en) * 2013-08-14 2017-04-18 Bank Of America Corporation Hypervisor driven embedded endpoint security monitoring
KR101609124B1 (ko) * 2014-07-07 2016-04-20 주식회사 윈스 모바일 네트워크 환경에서 행위기반 분석 서비스 제공 방법 및 장치
US9734016B2 (en) * 2015-02-24 2017-08-15 Red Hat Israel, Ltd. Secure live virtual machine guest based snapshot recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080041436A (ko) * 2006-11-07 2008-05-13 주식회사 안철수연구소 Tlb를 이용한 메모리 접근 제어 방법
KR20080089002A (ko) * 2007-03-30 2008-10-06 삼성전자주식회사 메모리 접근 제어 방법
KR20110095051A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 가상화 환경에서의 데이터 처리 방법 및 드라이버
KR101072807B1 (ko) * 2010-09-30 2011-10-14 한국과학기술원 가상 머신 모니터 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009601A1 (ko) * 2017-07-04 2019-01-10 주식회사 수산아이앤티 웹 소스를 보호하기 위한 장치 및 방법
US10965679B2 (en) 2017-08-07 2021-03-30 Electronics And Telecommunications Research Institute Apparatus for monitoring file access in virtual machine and method for the same
WO2019039730A1 (ko) * 2017-08-23 2019-02-28 주식회사 수산아이앤티 랜섬웨어 방지 장치 및 방법
WO2019225849A1 (ko) * 2018-05-25 2019-11-28 주식회사 수산아이앤티 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
KR102058493B1 (ko) * 2018-05-25 2019-12-23 주식회사 수산아이앤티 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
WO2021201483A1 (ko) * 2020-04-02 2021-10-07 주식회사 수산아이앤티 해쉬 관리를 통해 파일을 보호하는 장치 및 방법

Also Published As

Publication number Publication date
US10474832B2 (en) 2019-11-12
WO2016195343A1 (ko) 2016-12-08
US20180150643A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
US10482267B2 (en) Linux based android container platform, device equipped with the same and method for apply security system in Linux based android container environment
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
RU2703156C2 (ru) Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции
KR101592782B1 (ko) 전가상화 시스템에서 자원을 감시하는 장치 및 방법
US8099596B1 (en) System and method for malware protection using virtualization
KR101673774B1 (ko) 가상화 시스템에서 파일 입출력 제어를 위한 방법
EP2521062B1 (en) Protecting operating-system resources
US8788763B2 (en) Protecting memory of a virtual guest
US20130152207A1 (en) Data access reporting platform for secure active monitoring
MXPA05012560A (es) Manejo de seguridad de computadora, tal como en una maquina virtual o sistema operativo reforzado.
CN112446032B (zh) 可信执行环境构建方法、***及存储介质
KR20190021673A (ko) 랜섬웨어 방지 장치 및 방법
KR102058493B1 (ko) 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
EP3178032B1 (en) Embedding secret data in code
US10365939B2 (en) Method and apparatus for providing operating system based on lightweight hypervisor
CN107851032B (zh) 用于在容器中执行服务的计算装置、***及方法
US9398019B2 (en) Verifying caller authorization using secret data embedded in code
US20170337000A1 (en) Tree structure for storing monitored memory page data
US11170103B2 (en) Method of detecting malicious files resisting analysis in an isolated environment
KR101482903B1 (ko) 데이터 유출 방지 방법, 서버 장치, 및 클라이언트 장치
KR102323732B1 (ko) 해쉬 관리를 통해 파일을 보호하는 장치 및 방법
EP3588346B1 (en) Method of detecting malicious files resisting analysis in an isolated environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191030

Year of fee payment: 4