KR101592782B1 - 전가상화 시스템에서 자원을 감시하는 장치 및 방법 - Google Patents

전가상화 시스템에서 자원을 감시하는 장치 및 방법 Download PDF

Info

Publication number
KR101592782B1
KR101592782B1 KR1020140152869A KR20140152869A KR101592782B1 KR 101592782 B1 KR101592782 B1 KR 101592782B1 KR 1020140152869 A KR1020140152869 A KR 1020140152869A KR 20140152869 A KR20140152869 A KR 20140152869A KR 101592782 B1 KR101592782 B1 KR 101592782B1
Authority
KR
South Korea
Prior art keywords
file
command
memory
virtual machine
information
Prior art date
Application number
KR1020140152869A
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 KR1020140152869A priority Critical patent/KR101592782B1/ko
Priority to PCT/KR2015/011821 priority patent/WO2016072760A1/ko
Priority to CN201580069997.9A priority patent/CN107111561A/zh
Priority to US15/524,592 priority patent/US10521259B2/en
Application granted granted Critical
Publication of KR101592782B1 publication Critical patent/KR101592782B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/061Improving I/O performance
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0643Management of files
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • G06F3/0673Single storage device
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45583Memory management, e.g. access or allocation
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 파일 정보를 파싱하여 파일 테이블을 생성하고, 메모리를 할당할 때 메모리 테이블을 생성하고, 이후, 게스트 운영체제 또는 어플리케이션에서 명령이 발생되어 가상 머신 모니터로 명령의 실행이 요청되면, 파일 테이블과 메모리 테이블을 참조하여 프로세스 단위로 실행여부를 결정하는 전가상화 시스템에서 자원을 감시하는 장치 및 방법에 관한 것입니다.

Description

전가상화 시스템에서 자원을 감시하는 장치 및 방법{Apparatus and Method for monitoring the resources in full virtualization system}
본 발명은 전가상화 시스템에서 자원을 감시하기 위한 것으로, 파일 별로 기설정된 접근 권한을 확인하여 파일로의 접근을 감시하고, 가상 머신 프로세스로부터의 파일 단위의 접근을 제어하기 위한 것입니다.
"가상화"의 사전적 의미는 "실제로 있지 않거나 모호한 것에 대하여 실제로 존재하는 사실이나 개체로 가정하여 취급하는 것"으로 정의되어 있다.
본 발명에서 가상화 기술은 "컴퓨터 운영체제를 시스템 구조나 하드웨어에 영향을 받지 않고 설치, 사용할 수 있는 기술"이다.
가상화 기술은 최초로 1970년대에 IBM에서 제안한 기술로 당시에는 메인 프레임의 공간 절감과 비용적 문제를 해결하고자 제안되었다. 하지만, 최근에는 비용절감의 효과뿐만 아니라 호환성 및 유연성, 보안성을 제공하여 가상화 기술이 주목받고 있다. 주로 적용 분야는 클라우드 컴퓨팅을 위한 서버 가상화와 데스크톱 가상화, 모바일 가상화 등 분야가 다양하다.
가상화는 구현 방법에 따라 다양하게 분류되는데 크기 전가상화(Full Virtualization)와 반가상화(Para Virtualization)로 나눌 수 있다.
전가상화는 완벽하게 하드웨어를 가상화하기 때문에 커널을 수정할 필요가 없는 가상화 기술이다.
반면, 반가상화는 하드웨어를 부분적으로 가상화 시키는 방법으로, 게스트(guest) 운영체제 커널을 가상 머신 모니터(VMM; Virtual machine monitor)에서 요구하는 인터페이스에 맞게 수정해야 한다.
이러한 가상화 기술을 보안성 때문에 이용되는 이유는, 높은 격리성(Isolation)이란 가상화의 장점에 바탕을 둔다. 가상화 환경은 일반적으로 가상 머신과 이를 관리하는 가상 머신 모니터(VMM; Virtual machine monitor) 혹은 하이퍼바아저(Hypervisor)로 구성되며, 각 가상 머신은 격리된 공간으로 존재한다. 특히 가상 머신에 위협이 발생한 경우에도 해당 가상 머신을 제외한 다른 가상 머신과 가상 머신 모니터에는 영향을 주지 않기 때문이다.
하지만, 가상화 시스템에서 기존에 물리머신에서 사용되는 보안솔루션들은 한계를 보이고 있고, 보안위협의 발생빈도도 크게 증가하고 있다.
가상화 시스템에서 보안솔루션이 한계를 보이는 대표적인 이유는 하나의 가상화 시스템에 다수의 운영체제가 설치될 수 있기 때문이다.
해커들이 가상화 시스템에 설치되는 운영체제 중에서 하나를 이용해서 운영체제 수준에서 공격하여 데이터에 접근하는 경우, 이를 막기 어려운 문제를 가지고 있다.
따라서, 데이터의 접근을 효율적으로 감시하고 차단할 수 있는 기술이 요구된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 전가상화 시스템에서 자원을 감시하는 장치 및 방법을 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 전가상화 시스템에서 파일 별로 기설정된 접근 권한을 확인하여 파일로의 접근을 감시하고, 가상 머신 프로세스로부터의 파일 단위의 접근을 제어하는 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 사전에 파일 정보를 파싱하여 파일 별로 접근 권한을 설정한 파일 테이블로 생성하여 가상 머신 프로세스 수준에서 파일 입출력 명령이 발생하면, 파일 테이블을 참조로 파일의 접근 가능 유무를 판단하여 파일로의 접근을 제어하는 기술을 제공하는 것을 목적으로 한다.
또한, 본 발명은 사전에 파일 정보를 파싱하여 파일 별로 접근 권한을 설정한 파일 테이블로 생성하고, 메모리가 할당될 때, 할당된 메모리 영역과 프로세스 정보를 포함하는 메모리 테이블을 생성하고, 가상 머신 프로세스 수준에서 명령이 발생하면, 파일 테이블과 메모리 테이블을 참조하여 명령의 실행 유무를 제어하는 기술을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 전가상화 시스템에서 자원을 감시하는 방법은, 파일 정보를 파싱하여 파일 테이블을 생성하는 단계; 게스트 운영체제 또는 어플리케이션에서 파일 입출력 명령이 발생하면 가상 머신 모니터로 상기 파일 입출력 명령의 실행을 요청하는 단계; 및 상기 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능한지 여부를 상기 파일 테이블을 통해 확인하는 단계를 포함한다.
이때, 상기 접근 가능한지 여부를 상기 파일 테이블을 통해 확인하는 단계는, 에뮬레이터를 통해 상기 파일 입출력 명령을 상기 가상 머신 모니터에서 확인할 수 있는 형태로 에뮬레이트하는 단계를 포함할 수 있다.
이때, 상기 파일 정보는, 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 적어도 하나일 수 있다.
이때, 상기 파일 테이블은, 상기 파일 정보와 상기 파일 정보 각각으로의 접근 권한을 포함할 수 있다.
한편, 전가상화 시스템에서 자원을 감시하는 방법은, 확인결과 상기 파일 입출력 명령이 접근하고자 하는 상기 파일에 접근 가능하면, 상기 파일 입출력 명령을 실행하는 단계를 더 포함할 수 있다.
또한, 전가상화 시스템에서 자원을 감시하는 방법은, 확인결과 상기 파일 입출력 명령이 접근하고자 하는 상기 파일에 접근 가능하지 않으면, 접근을 차단하는 단계를 더 포함할 수 있다.
이때, 상기 접근을 차단하는 단계는, 상기 파일 입출력 명령이 접근하고자 하는 상기 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리할 수 있다.
한편, 전가상화 시스템에서 자원을 감시하는 방법은, 파일의 추가, 파일의 삭제, 파일의 변경 및 접근 권한의 변경 중에서 적어도 하나가 발생하는 경우 상기 파일 테이블을 갱신하는 단계를 더 포함할 수 있다.
본 발명의 다른 일 실시 예에 따른 전가상화 시스템에서 자원을 감시하는 방법은, 파일 정보를 파싱하여 파일 테이블을 생성하는 단계; 메모리를 할당할 때, 메모리 테이블을 생성하는 단계; 게스트 운영체제 또는 어플리케이션에서 명령이 발생하면 가상 머신 모니터로 상기 명령의 실행을 요청하는 단계; 상기 명령이 참조하는 메모리 영역을 확인하고, 상기 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인하는 단계; 및 상기 파일 테이블을 참조하여 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌는지 확인하는 단계를 포함한다.
이때, 상기 파일 정보는, 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 적어도 하나일 수 있다.
이때, 상기 파일 테이블은, 상기 파일 정보, 접근 가능한 프로세스 정보 및 접근 권한을 포함할 수 있다.
이때, 상기 메모리 테이블은, 가상 머신 정보, 프로세스 정보 및 프로세스에 할당된 메모리 영역을 포함할 수 있다.
한편, 전가상화 시스템에서 자원을 감시하는 방법은, 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌으면, 상기 명령을 실행하는 단계를 더 포함할 수 있다.
또한, 전가상화 시스템에서 자원을 감시하는 방법은, 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가지고 있지 않으면, 접근을 차단하는 단계를 더 포함할 수 있다.
이때, 상기 접근을 차단하는 단계는, 상기 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리할 수 있다.
또한, 전가상화 시스템에서 자원을 감시하는 방법은, 파일의 추가, 파일의 삭제, 파일의 변경, 접근 권한의 변경 및 파일에 접근 가능한 프로세스 정보의 변경 중에서 적어도 하나가 발생하는 경우 상기 파일 테이블을 갱신하는 단계를 더 포함할 수 있다.
또한, 전가상화 시스템에서 자원을 감시하는 방법은, 메모리 영역이 할당, 변경 및 회수되는 경우 상기 메모리 테이블을 갱신하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 전가상화 시스템에서 자원을 감시하는 장치는, 파일 정보를 파싱하여 파일 테이블을 생성하는 파일 파서; 게스트 운영체제 또는 어플리케이션에서 파일 입출력 명령이 발생하면 가상 머신 모니터로 상기 파일 입출력 명령의 실행을 요청하는 가상 머신 프로세스; 및 상기 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능한지 여부를 상기 파일 테이블을 통해 확인하는 상기 가상 머신 모니터를 포함한다.
이때, 상기 가상 머신 프로세스는 상기 파일 입출력 명령을 상기 가상 머신 모니터에서 확인할 수 있는 형태로 에뮬레이터를 더 포함하고, 상기 가상 머신 모니터는 상기 에뮬레이터를 통해 상기 파일 입출력 명령을 상기 가상 머신 모니터에서 확인할 수 있는 형태로 에뮬레이트할 수 있다.
이때, 상기 파일 정보는, 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 적어도 하나일 수 있다.
이때, 상기 파일 테이블은, 상기 파일 정보와 상기 파일 정보 각각으로의 접근 권한을 포함할 수 있다.
이때, 상기 가상 머신 모니터는 확인결과 상기 파일 입출력 명령이 접근하고자 하는 상기 파일에 접근 가능하면, 상기 파일 입출력 명령을 실행할 수 있다.
이때, 상기 가상 머신 모니터는 상기 파일 입출력 명령이 접근하고자 하는 상기 파일에 접근 가능하지 않으면, 접근을 차단할 수 있다.
이때, 상기 가상 머신 모니터는 상기 파일 입출력 명령이 접근하고자 하는 상기 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하여 상기 접근을 차단할 수 있다.
이때, 상기 파일 파서는 파일의 추가, 파일의 삭제, 파일의 변경 및 접근 권한의 변경 중에서 적어도 하나가 발생하는 경우 상기 파일 테이블을 갱신할 수 있다.
본 발명의 다른 일 실시 예에 따른 전가상화 시스템에서 자원을 감시하는 장치는, 파일 정보를 파싱하여 파일 테이블을 생성하는 파일 파서; 메모리를 할당할 때, 메모리 테이블을 생성하는 가상 머신 모니터; 게스트 운영체제 또는 어플리케이션에서 명령이 발생하면 상기 가상 머신 모니터로 상기 명령의 실행을 요청하는 가상 머신 프로세스를 포함하고, 상기 가상 머신 모니터는 상기 명령이 참조하는 메모리 영역을 확인하고, 상기 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인하고, 상기 파일 테이블을 참조하여 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌는지 확인한다.
이때, 상기 파일 정보는 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 적어도 하나일 수 있다.
이때, 상기 파일 테이블은 상기 파일 정보, 접근 가능한 프로세스 정보 및 접근 권한을 포함할 수 있다.
이때, 상기 메모리 테이블은 프로세스 정보 및 프로세스에 할당된 메모리 영역을 포함할 수 있다.
이때, 상기 가상 머신 모니터는 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌으면, 상기 명령을 실행할 수 있다.
이때, 상기 가상 머신 모니터는 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가지고 있지 않으면, 접근을 차단할 수 있다.
이때, 상기 가상 머신 모니터는 상기 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하여 상기 접근을 차단할 수 있다.
이때, 상기 파일 파서는 파일의 추가, 파일의 삭제, 파일의 변경, 접근 권한의 변경 및 파일에 접근 가능한 프로세스 정보의 변경 중에서 적어도 하나가 발생하는 경우 상기 파일 테이블을 갱신할 수 있다.
이때, 상기 가상 머신 모니터는 메모리 영역이 할당, 변경 및 회수되는 경우 상기 메모리 테이블을 갱신할 수 있다.
본 발명은 파일 정보를 파싱하여 파일 테이블을 생성하고, 게스트 운영체제 또는 어플리케이션에서 파일 입출력 명령이 발생하여 가상 머신 모니터로 파일 입출력 명령의 실행이 요청되면, 파일 테이블을 참조하여 파일 입출력 명령이 요구하는 파일로의 접근 가능 여부를 확인하는 기술에 관한 것으로, 가상 머신 프로세스로부터의 파일 단위의 접근을 감시하고 제어할 수 있다.
또한, 본 발명은 파일 정보를 파싱하여 파일 테이블을 생성하고, 메모리를 할당할 때 메모리 테이블을 생성하고, 이후, 게스트 운영체제 또는 어플리케이션에서 명령이 발생되어 가상 머신 모니터로 명령의 실행이 요청되면, 파일 테이블과 메모리 테이블을 참조하여 프로세스 단위로 실행여부를 결정하는 기술에 관한 것으로, 전가상화 시스템에서 프로세스 단위로 자원을 감시하고 제어할 수 있는 효과를 가지고 있다.
도 1은 본 발명의 일 실시예에 따라 디스크의 자원을 감시하는 전가상화 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크의 자원을 감시하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따라 디스크와 메모리의 자원을 감시하는 전가상화 시스템의 구성을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 전가상화 시스템에서 메모리 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 7은 도 6의 메모리 테이블에 따라 할당된 메모리의 형태를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크와 메모리의 자원을 감시하는 과정을 도시한 흐름도이다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시 예에 대한 설명을 통하여 명백히 드러나게 될 것이다.
본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 전가상화 시스템에서 게스트 운영체제(Guest Operating System)의 자원을 감시하는 장치 및 방법을 첨부된 도 1 내지 도 8을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따라 디스크의 자원을 감시하는 전가상화 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 전가상화 시스템(full virtualization system)은 가상 머신 프로세스(Vrtual Machine Process)(110, 120), 파일 파서(File Parser)(130), 가상 머신 모니터(VMM; Vrtual Machine Monitor)(140) 및 디스크(Disk)(150)를 포함한다. 이때, 가상 머신 프로세스(110)는 어플리케이션(application)(112), 게스트 운영체제(Guest Operating System)(114) 및 에뮬레이터(QEMU; Quick EMUlator)(116)를 포함할 수 있다.
파일 파서(130)는 디스크(150)에 저장된 파일 정보들을 파싱해서 파일 테이블을 생성한다.
이때, 파일 정보는 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 하나일 수 있다. 그리고, 파일 테이블은 아래 도 2의 예와 같은 형태로 구성될 수 있다.
도 2는 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 2를 참조하면, 파일 테이블은 파일 정보와 파일 정보 각각으로의 접근 권한을 포함할 수 있다. 도 2에서의 파일 정보는 아이노드(i-node)인 경우를 도시한 것으로, 도 2에 기재된 파일 정보는 파일을 구성하는 블록들의 식별정보에 해당한다.
도 2의 파일 테이블을 가진 경우, 가상 머신 프로세스에서 실행되는 게스트 운영체제 또는 어플리케이션은 블록 #1-3으로 구성된 파일에 대해서는 읽기(read)와 쓰기(write)가 가능하고, 블록 #7으로 구성된 파일에 대해서는 읽기(read)만 가능하고, 블록 #9-11으로 구성된 파일에 대해서는 접근을 차단하고, 블록 #8, 12-14로 구성된 파일에 대해서는 읽기(read)와 쓰기(write)가 가능함을 확인할 수 있다.
파일 파서(130)는 파일의 추가, 파일의 삭제, 파일의 변경 및 접근 권한의 변경 중에서 적어도 하나가 발생하는 경우 파일 테이블을 갱신할 수 있다.
한편, 파일 파서(130)는 별도의 장치로 구성될 수도 있고, 에뮬레이터(116) 마다 포함될 수도 있고, 가상 머신 모니터(140)에 포함되어 구성될 수도 있다.
게스트 운영체제(114)는 파일 입출력 명령이 발생하거나 어플리케이션(112)으로부터 파일 입출력 명령을 수신하면, 가상 머신 모니터(140)로 파일 입출력 명령의 실행을 요청한다.
에뮬레이터(116)는 파일 입출력 명령을 가상 머신 모니터(140)에서 확인할 수 있는 형태로 에뮬레이트한다.
가상 머신 모니터(140)는 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능한지 여부를 파일 테이블을 통해 확인한다.
보다 상세히 설명하면, 가상 머신 모니터(140)는 가상 머신 프로세스(110)에 포함된 게스트 운영체제(114)로부터 파일 입출력 명령을 수신하면, 에뮬레이터(116)로 파일 입출력 명령의 에뮬레이트를 요청한다. 그리고, 가상 머신 모니터(140)는 에뮬레이터(116)로부터 에뮬레이트된 파일 입출력 명령을 수신하면, 파일 테이블에서 파일 입출력 명령이 접근하고자 하는 파일에 대응하는 접근 권한을 확인한다.
가상 머신 모니터(140)는 파일 테이블을 통한 접근 권한을 확인한 결과, 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능하면, 파일 입출력 명령을 실행한다. 그리고, 가상 머신 모니터(140)는 그 결과를 게스트 운영체제(114)로 제공한다.
가상 머신 모니터(140)는 파일 테이블을 통한 접근 권한을 확인한 결과, 파일 입출력 명령이 접근하고자 상기 파일에 접근 가능하지 않으면, 접근을 차단한다.
이때, 차단하는 방법으로 가상 머신 모니터(140)는 파일 입출력 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하여 접근을 차단할 수 있다.
이하, 상기 도 1과 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크의 자원을 감시하는 과정을 도시한 흐름도이다.
도 3을 참조하면, 전가상화 시스템은 사전에 디스크에 저장된 파일들의 파일 정보를 파싱하여 파일 테이블을 생성한다(310).
그리고, 전가상화 시스템의 가상 머신 프로세스에 포함된 어플리케이션 또는 게스트 운영체제에서 파일 입출력 명령이 발생하면 가상 머신 모니터로 파일 입출력 명령의 실행을 요청한다(312).
그리고, 전가상화 시스템의 가상 머신 모니터는 파일 입출력 명령의 실행을 요청 수신하면(314), 에뮬레이터를 통해 파일 입출력 명령을 가상 머신 모니터에서 확인할 수 있는 형태로 에뮬레이트한다(316).
그리고, 전가상화 시스템의 가상 머신 모니터는 파일 테이블에서 파일 입출력 명령이 접근하고자 하는 파일에 대응하는 접근 권한을 확인하여 접근 가능 유무를 확인한다(318).
318단계의 확인결과 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능하면, 가상 머신 모니터는 파일 입출력 명령을 실행한다(320).
그리고, 파일 파서 또는 가상 머신 모니터는 파일 입출력 명령으로 인해 파일의 추가, 파일의 삭제, 파일의 변경 및 접근 권한의 변경 중에서 적어도 하나가 발생하는 경우 파일 테이블을 갱신한다(322).
그리고, 가상 머신 모니터는 파일 입출력 명령의 결과를 가상 머신 프로세스의 게스트 운영체제로 제공한다(324).
한편, 318단계의 확인결과 파일 입출력 명령이 접근하고자 하는 파일에 접근 가능하지 않으면, 가상 머신 모니터는 해당 파일로의 접근을 차단한다(326).
접근을 차단하는 방법으로는 파일 입출력 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리할 수 있다.
도 4는 본 발명의 일 실시예에 따라 디스크와 메모리의 자원을 감시하는 전가상화 시스템의 구성을 도시한 도면이다.
도 4를 참조하면, 본 발명의 전가상화 시스템(full virtualization system)은 가상 머신 프로세스(Vrtual Machine Process)(410, 420), 파일 파서(File Parser)(430), 가상 머신 모니터(VMM; Vrtual Machine Monitor)(440) 및 디스크(Disk)(450)를 포함한다. 이때, 가상 머신 프로세스(410)는 어플리케이션(application)(412), 게스트 운영체제(Guest Operating System)(414) 및 에뮬레이터(QEMU; Quick EMUlator)(416)를 포함할 수 있다.
파일 파서(430)는 디스크(450)에 저장된 파일 정보들을 파싱해서 파일 테이블을 생성한다.
이때, 파일 정보는 파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 하나일 수 있다. 그리고, 파일 테이블은 아래 도 5의 예와 같은 형태로 구성될 수 있다.
도 5는 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 5를 참조하면, 파일 테이블은 가상 머신 정보, 프로세스 정보 및 프로세스에 할당된 메모리 영역을 포함할 수 있다. 도 5에서 프로세스 정보는 대상이 되는 프로세스를 나타내는 정보이고, 파일 정보는 아이노드(i-node)인 경우를 도시한 것으로, 도 5에 기재된 파일 정보는 파일을 구성하는 블록들의 식별정보에 해당한다.
도 5의 파일 테이블을 가진 경우, 모든 프로세스는 블록 #1-3으로 구성된 파일에 대해서는 읽기(read)와 쓰기(write)가 가능하고, 프로세스 A와 프로세스 B는 블록 #7으로 구성된 파일에 대해서는 읽기(read)만 가능하고, 모든 프로세스는 블록 #9-11으로 구성된 파일에 대해서는 접근이 차단하고, 프로세스 C는 블록 #8, 12-14로 구성된 파일에 대해서는 읽기(read)와 쓰기(write)가 가능함을 확인할 수 있다.
파일 파서(430)는 파일의 추가, 파일의 삭제, 파일의 변경 및 접근 권한의 변경 중에서 적어도 하나가 발생하는 경우 파일 테이블을 갱신할 수 있다.
한편, 파일 파서(430)는 별도의 장치로 구성될 수도 있고, 에뮬레이터(416) 마다 포함될 수도 있고, 가상 머신 모니터(440)에 포함되어 구성될 수도 있다.
게스트 운영체제(414)는 권한이 없는 명령이 발생하거나 어플리케이션(412)으로부터 권한의 없는 명령을 수신하면, 가상 머신 모니터(440)로 명령의 실행을 요청한다.
즉, 게스트 운영체제(414), 혹은 게스트 운영체제에서 실행되고 있는 어플리케이션(412)가 권한이 없는 명령을 수행하려 할 때, 가상 머신 모니터(440)가 대신 수행한다.
에뮬레이터(416)는 명령을 가상 머신 모니터(440)에서 확인할 수 있는 형태로 에뮬레이트한다.
가상 머신 모니터(440)는 수신된 명령의 에뮬레이트가 필요한 경우, 에뮬레이터(416)로 에뮬레이트를 요청할 수 있다.
가상 머신 모니터(440)는 가상 머신 프로세스에서 실행되는 게스트 운영체제 및 어플리케이션이 실행될 때, 메모리를 할당하고, 할당된 메모리 정보를 메모리 테이블로 생성하여 관리한다.
도 6은 본 발명의 일 실시예에 따른 전가상화 시스템에서 메모리 자원을 관리하기 위해 생성한 파일 테이블의 예를 도시한 도면이다.
도 6을 참조하면, 메모리 테이블은, 가상 머신 정보, 프로세스 정보 및 프로세스에 할당된 메모리 영역을 포함할 수 있다.
도 7은 도 6의 메모리 테이블에 따라 할당된 메모리의 형태를 도시한 도면이다.
도 7을 참조하면, 도6의 메모리 테이블과 같이 게스트 머신 프로세스 A는 메모리의 1~8이 할당되어 있음을 확인할 수 있다.
그 중에서 메모리의 1~2는 프로세스 A에게 할당되어 있고, 메모리 3은 프로세스 B 에게 할당되어 있고, 메모리의 4~5는 프로세스 C에게 할당되어 있고, 메모리의 6~8는 게스트 운영체제에게 할당되어 있음을 확인할 수 있다.
가상 머신 모니터(440)는 명령이 참조하는 메모리 영역, 메모리 테이블 및 파일 테이블을 참조하여 명령의 실행 가능 여부를 판단한다.
보다 상세히 설명하면, 가상 머신 모니터(440)는 명령이 참조하는 메모리 영역을 확인하고, 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인하고, 프로세스 별로 해당 파일에 접근할 수 있는 권한을 파일 테이블을 통해 확인하여, 프로세스가 명령을 실행할 수 있는 권한을 가졌는지 확인한다.
가상 머신 모니터(440)에서 명령이 참조하는 메모리 영역을 확인하는 방법은 다음과 같다. 예를 들어 명령이 read 명령일 경우, 다음과 같을 수 있다.
read (block #7, 메모리 1)
위의 명령은 디스크의 블록 7에 저장된 내용을 1번 메모리 영역으로 불어오라는 명령이다.
write(block #9, 메모리 5)
위의 명령은 5번 메모리 영역에 기재된 내용을 디스크의 블록 9에 저장하라는 명령이다.
상술한 read 명령에서 메모리 영역은 1번 메모리 영역이고, 상술한 write 명령에서 메모리 영역은 5번 메모리 영역이다.
위의 read 명령과 write 명령이 실행 가능한지 여부를 도 5의 파일 테이블과 도 6의 메모리 테이블을 통해 확인해 보고자 한다.
먼저, 메모리 테이블을 통해 read 명령의 메모리 영역인 1번 메모리 영역에 할당된 프로세스가 가상 머신 프로세스 A의 프로세스 A임을 확인할 수 있다. 이후, 파일 테이블을 통해 read 명령이 읽어 오고자 하는 파일의 블록 #7이 프로세스 A에 대해 read 접근 권한을 가진 것을 확인할 수 있다.
따라서, 도 5의 파일 테이블과 도 6의 메모리 테이블의 경우, read (block #7, 메모리 1)는 실행될 수 있다.
다음의 예로, 메모리 테이블을 통해 write 명령의 메모리 영역인 5번 메모리 영역에 할당된 프로세스가 가상 머신 프로세스 A의 프로세스 C임을 확인할 수 있다. 이후, 파일 테이블을 통해 write 명령에 의해 쓰여질 디스크의 블록 #9가 모든 프로세스에 대해서 숨겨진 정보임을 확인할 수 있다.
따라서, 도 5의 파일 테이블과 도 6의 메모리 테이블의 경우, write(block #9, 메모리 5)는 실행될 수 없는 명령임을 확인할 수 있다.
한편, 메모리를 참조하지 않는 명령으로 인한 파일의 수정을 방지하기 위해서 파일을 수정하는 경우 파일 테이블 만을 참조하여 파일 테이블의 접근 권한으로 파일의 수정 여부를 결정할 수도 있다.
예를 들어 명령이 delete이고, 메모리 테이블을 통해 프로세스를 판단할 수 없는 경우, 사전에 프로세스가 판단되지 않는 경우에 해당 파일에 설정된 접근 권한을 확인하여 명령의 실행 여부를 판단할 수 있다.
한편, 가상 머신 모니터(440)는 특정 파일에 대해서 read 권한을 가진 프로세스가 특정 파일을 리드하고, 프로세스가 메모리에 리드된 파일을 메모리상에서 변경하는 경우, 가상 머신 모니터(440)는 파일 테이블을 통해 프로세스가 가진 해당 파일에 대한 접근 권한을 확인하여 메모리상의 변경도 방지할 수 있다.
가상 머신 모니터(440)는 프로세스가 명령을 실행할 수 있는 권한을 가졌으면, 명령을 실행한다. 그리고, 가상 머신 모니터(440)는 그 결과를 게스트 운영체제(414)로 제공한다.
가상 머신 모니터(440)는 메모리 영역이 할당, 변경 및 회수되는 경우 메모리 테이블을 갱신할 수 있다. 가상 머신 모니터(440)는 메모리 영역이 할당, 변경 및 회수되는 경우 메모리 테이블을 갱신할 수 있다. 그 외에도, 가상 머신 모니터(440)는 운영체제의 동작에 따라 메모리 영역에 변동이 발생하는 경우 메모리 테이블을 갱신할 수 있다.
가상 머신 모니터(440)는 프로세스가 명령을 실행할 수 있는 권한을 가지지 않았으면, 파일로의 접근을 차단한다.
이때, 차단하는 방법으로 가상 머신 모니터(440)는 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하여 접근을 차단할 수 있다.
이하, 상기 도 4와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 8은 본 발명의 일 실시예에 따른 전가상화 시스템에서 디스크와 메모리의 자원을 감시하는 과정을 도시한 흐름도이다.
도 8을 참조하면, 전가상화 시스템은 사전에 디스크에 저장된 파일들의 파일 정보를 파싱하여 파일 테이블을 생성한다(810).
전가상화 시스템의 가상 머신 모니터는 게스트 운영체제 및 어플리케이션이 실행될 때, 메모리를 할당하고, 할당된 메모리 정보를 메모리 테이블로 생성한다(812).
게스트 운영체제 또는 어플리케이션에서 명령이 발생하면(814), 가상 머신 모니터로 명령의 실행을 요청한다(816).
가상 머신 모니터는 명령이 참조하는 메모리 영역을 확인하고, 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인한다(818).
가상 머신 모니터는 파일 테이블을 참조하여 프로세스가 명령을 실행할 수 있는 권한을 가졌는지 확인한다(820).
820단계의 확인결과 프로세스가 명령을 실행할 수 있는 권한을 가졌으면, 가상 머신 모니터는 명령을 실행한다(822).
그리고, 가상 머신 모니터는 파일 테이블과 메모리 테이블의 갱신이 필요한 경우 갱신한다(824).
824단계에서 가상 머신 모니터는 파일의 추가, 파일의 삭제, 파일의 변경, 접근 권한의 변경 및 파일에 접근 가능한 프로세스 정보의 변경 중에서 적어도 하나가 발생하는 경우 파일 테이블을 갱신한다. 또한, 824단계에서 가상 머신 모니터는 메모리 영역이 할당, 변경 및 회수되는 경우 메모리 테이블을 갱신할 수 있다. 그 외에도, 가상 머신 모니터는 운영체제의 동작에 따라 메모리 영역에 변동이 발생하는 경우 메모리 테이블을 갱신할 수 있다. 즉, 메모리 영역이 할당 되거나 회수되는 경우 또는 메모리 영역에 저장된 내용이 변경되는 경우에만 메모리 테이블을 갱신하는 것이 아니라, 메모리 영역의 위치가 변동되는 경우에도 메모리 테이블은 갱신될 수 있으며, 따라서, 824단계의 시점 뿐만 아니라 언제든지 메모리 테이블의 갱신은 수행될 수 있다.
가상 머신 모니터(440)는 그 결과를 가상 머신 프로세스의 게스트 운영체제로 제공한다(826).
820단계의 확인결과 프로세스가 명령을 실행할 수 있는 권한을 가지지 않았으면, 가상 머신 모니터는 파일로의 접근을 차단한다.
이때, 차단하는 방법으로 가상 머신 모니터는 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하여 접근을 차단할 수 있다.
본 발명의 일 실시 예에 따른 전가상화 시스템에서 게스트 운영체제의 자원을 감시하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110; 가상 머신 프로세스
112; 어플리케이션
114; 게스트 운영 체제
116; 에뮬레이터
130; 파일 파서
140; 가상 머신 모니터
150; 디스크

Claims (20)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 파일 정보를 파싱하여 파일 테이블을 생성하는 단계;
    메모리를 할당할 때, 메모리 테이블을 생성하는 단계;
    게스트 운영체제 또는 어플리케이션에서 명령이 발생하면 가상 머신 모니터로 상기 명령의 실행을 요청하는 단계;
    상기 명령이 참조하는 메모리 영역을 확인하고, 상기 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인하는 단계; 및
    상기 파일 테이블을 참조하여 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌는지 확인하는 단계를 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  10. 제9항에 있어서,
    상기 파일 정보는,
    파일의 경로(path) 정보, 블록 넘버(block number) 및 아이노드(i-node) 정보 중에서 적어도 하나인
    전가상화 시스템에서 자원을 감시하는 방법.
  11. 제9항에 있어서,
    상기 파일 테이블은,
    상기 파일 정보, 접근 가능한 프로세스 정보 및 접근 권한을 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  12. 제9항에 있어서,
    상기 메모리 테이블은,
    가상 머신 정보, 프로세스 정보 및 프로세스에 할당된 메모리 영역을 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  13. 제9항에 있어서,
    상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌으면, 상기 명령을 실행하는 단계를 더 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  14. 제9항에 있어서,
    상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가지고 있지 않으면, 접근을 차단하는 단계를 더 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  15. 제14항에 있어서,
    상기 접근을 차단하는 단계는,
    상기 명령이 접근하고자 하는 파일을 베드 섹터(bad sector)로 보이도록 처리하거나, 모두 '0'으로 보이도록 처리하거나 또는 보호 영역임을 알리도록 처리하는
    전가상화 시스템에서 자원을 감시하는 방법.
  16. 제9항에 있어서,
    파일의 추가, 파일의 삭제, 파일의 변경, 접근 권한의 변경 및 파일에 접근 가능한 프로세스 정보의 변경 중에서 적어도 하나가 발생하는 경우 상기 파일 테이블을 갱신하는 단계를 더 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  17. 제9항에 있어서,
    메모리 영역이 할당, 변경 및 회수되는 경우 상기 메모리 테이블을 갱신하는 단계를 더 포함하는
    전가상화 시스템에서 자원을 감시하는 방법.
  18. 제9항 내지 제17항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  19. 삭제
  20. 파일 정보를 파싱하여 파일 테이블을 생성하는 파일 파서;
    메모리를 할당할 때, 메모리 테이블을 생성하는 가상 머신 모니터;
    게스트 운영체제 또는 어플리케이션에서 명령이 발생하면 상기 가상 머신 모니터로 상기 명령의 실행을 요청하는 가상 머신 프로세스를 포함하고,
    상기 가상 머신 모니터는,
    상기 명령이 참조하는 메모리 영역을 확인하고, 상기 메모리 테이블에서 확인된 메모리 영역에 할당된 프로세스를 확인하고,
    상기 파일 테이블을 참조하여 상기 프로세스가 상기 명령을 실행할 수 있는 권한을 가졌는지 확인하는
    전가상화 시스템에서 자원을 감시하는 장치.
KR1020140152869A 2014-11-05 2014-11-05 전가상화 시스템에서 자원을 감시하는 장치 및 방법 KR101592782B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140152869A KR101592782B1 (ko) 2014-11-05 2014-11-05 전가상화 시스템에서 자원을 감시하는 장치 및 방법
PCT/KR2015/011821 WO2016072760A1 (ko) 2014-11-05 2015-11-05 전가상화 시스템에서 자원을 감시하는 장치 및 방법
CN201580069997.9A CN107111561A (zh) 2014-11-05 2015-11-05 在完全虚拟化***监控资源的装置及方法
US15/524,592 US10521259B2 (en) 2014-11-05 2015-11-05 Device and method for monitoring resources in full virtualization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140152869A KR101592782B1 (ko) 2014-11-05 2014-11-05 전가상화 시스템에서 자원을 감시하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101592782B1 true KR101592782B1 (ko) 2016-02-12

Family

ID=55355194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140152869A KR101592782B1 (ko) 2014-11-05 2014-11-05 전가상화 시스템에서 자원을 감시하는 장치 및 방법

Country Status (4)

Country Link
US (1) US10521259B2 (ko)
KR (1) KR101592782B1 (ko)
CN (1) CN107111561A (ko)
WO (1) WO2016072760A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625968A (zh) * 2021-08-12 2021-11-09 网易(杭州)网络有限公司 文件权限的管理方法、装置、计算机设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144363B1 (en) 2017-09-18 2021-10-12 Amazon Technologies, Inc. Workflow management system
US11108702B1 (en) * 2017-12-11 2021-08-31 Amazon Technologies, Inc. Customized command execution for a computing resource fleet
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11068310B2 (en) * 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11283800B2 (en) 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
CN110471764A (zh) * 2019-08-01 2019-11-19 郑州阿帕斯科技有限公司 一种内存清理的处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2934709B2 (ja) * 1989-11-01 1999-08-16 カシオ計算機株式会社 ファイルセキュリティ管理装置
KR20080089002A (ko) * 2007-03-30 2008-10-06 삼성전자주식회사 메모리 접근 제어 방법
KR20110095051A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 가상화 환경에서의 데이터 처리 방법 및 드라이버
KR20140074608A (ko) * 2012-12-10 2014-06-18 포항공과대학교 산학협력단 다수의 클라우드 스토리지 서비스를 통합하는 가상 파일 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
CN100464314C (zh) * 2006-03-23 2009-02-25 联想(北京)有限公司 一种数据透明保护的安全写***和方法
US20080065667A1 (en) * 2006-09-11 2008-03-13 Hopkins Donald F Transaction oriented resilient file system
CN101174286A (zh) * 2006-10-31 2008-05-07 佛山市顺德区顺达电脑厂有限公司 以射频识别卷标管控计算机使用权限的方法
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机***及其设备访问方法
JP5434616B2 (ja) * 2010-01-15 2014-03-05 富士通株式会社 仮想計算機、仮想計算機モニタ、および計算機の制御方法
KR101072807B1 (ko) 2010-09-30 2011-10-14 한국과학기술원 가상 머신 모니터 시스템
GB2501274B (en) * 2012-04-17 2020-05-13 Advanced Risc Mach Ltd Management of data processing security in a secondary processor
US9405904B1 (en) * 2013-12-23 2016-08-02 Symantec Corporation Systems and methods for providing security for synchronized files

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2934709B2 (ja) * 1989-11-01 1999-08-16 カシオ計算機株式会社 ファイルセキュリティ管理装置
KR20080089002A (ko) * 2007-03-30 2008-10-06 삼성전자주식회사 메모리 접근 제어 방법
KR20110095051A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 가상화 환경에서의 데이터 처리 방법 및 드라이버
KR20140074608A (ko) * 2012-12-10 2014-06-18 포항공과대학교 산학협력단 다수의 클라우드 스토리지 서비스를 통합하는 가상 파일 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625968A (zh) * 2021-08-12 2021-11-09 网易(杭州)网络有限公司 文件权限的管理方法、装置、计算机设备及存储介质
CN113625968B (zh) * 2021-08-12 2024-03-01 网易(杭州)网络有限公司 文件权限的管理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2016072760A1 (ko) 2016-05-12
US10521259B2 (en) 2019-12-31
US20180285138A1 (en) 2018-10-04
CN107111561A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
KR101592782B1 (ko) 전가상화 시스템에서 자원을 감시하는 장치 및 방법
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
KR101997061B1 (ko) 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법
KR101863174B1 (ko) 가상 머신의 일체성 보호를 위한 메모리 인트로스펙션 엔진
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
CN107092441B (zh) 虚拟盘存储技术
KR101955189B1 (ko) 스왑 아웃된 메모리 페이지의 가상 머신 가상화된 메모리로의 맵핑을 위한 가상 머신에서의 페이지 오류 삽입
CN109923546B (zh) 虚拟机安全性应用程序的事件过滤
CN106970823B (zh) 高效的基于嵌套虚拟化的虚拟机安全保护方法及***
CN109074321B (zh) 用于保护虚拟计算实例的存储器的方法和***
GB2506684A (en) Migration of a virtual machine between hypervisors
KR101673774B1 (ko) 가상화 시스템에서 파일 입출력 제어를 위한 방법
US10620985B2 (en) Transparent code patching using a hypervisor
EP2676195B1 (en) Virtual machine supervision
EP3274896B1 (en) Configuration of a memory controller for copy-on-write with a resource controller
EP3308274B1 (en) Executing services in containers
US20170053118A1 (en) Changed Block Tracking Driver for Agentless Security Scans of Virtual Disks
US20170337000A1 (en) Tree structure for storing monitored memory page data
KR102058493B1 (ko) 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
US11513825B2 (en) System and method for implementing trusted execution environment on PCI device
US11188367B2 (en) Guest operating system physical memory page protection using hypervisor
US20210141656A1 (en) Online disk encryption using mirror driver
US9720762B2 (en) Clearing bank descriptors for reuse by a gate bank

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

Year of fee payment: 4