KR102323732B1 - Apparatus and method for protecting files through hash management - Google Patents

Apparatus and method for protecting files through hash management Download PDF

Info

Publication number
KR102323732B1
KR102323732B1 KR1020200040463A KR20200040463A KR102323732B1 KR 102323732 B1 KR102323732 B1 KR 102323732B1 KR 1020200040463 A KR1020200040463 A KR 1020200040463A KR 20200040463 A KR20200040463 A KR 20200040463A KR 102323732 B1 KR102323732 B1 KR 102323732B1
Authority
KR
South Korea
Prior art keywords
file
preset
operating system
preset group
deletion
Prior art date
Application number
KR1020200040463A
Other languages
Korean (ko)
Other versions
KR20210123121A (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 KR1020200040463A priority Critical patent/KR102323732B1/en
Priority to PCT/KR2021/003561 priority patent/WO2021201483A1/en
Publication of KR20210123121A publication Critical patent/KR20210123121A/en
Application granted granted Critical
Publication of KR102323732B1 publication Critical patent/KR102323732B1/en

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/604Tools and structures for managing or administering access control systems
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하고, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 파일을 보호하는 장치 및 방법에 관한 것이다.The present invention detects a request for modification or deletion of a file included in a preset group while monitoring the guest operating system in the virtualization driver, and the virtualization driver to the host operating system for modification or deletion of a file included in the preset group Inquiring for permission, the host operating system determines whether modification or deletion of the file included in the preset group is permitted by using whether the file included in the preset group is included in a preset file list, The host operating system permits modification or deletion of a file included in the preset group or permits modification or deletion of a file included in the preset group or files included in the preset group according to a determination result of whether to permit modification or deletion of the file included in the preset group It relates to a device and method for protecting files from being modified or deleted.

Figure R1020200040463
Figure R1020200040463

Description

해쉬 관리를 통해 파일을 보호하는 장치 및 방법{APPARATUS AND METHOD FOR PROTECTING FILES THROUGH HASH MANAGEMENT}APPARATUS AND METHOD FOR PROTECTING FILES THROUGH HASH MANAGEMENT

이하의 일 실시 예들은 가상화 시스템에서 게스트 운영체제를 운영함에 있어서 게스트 운영체제의 무결성을 확보하고 게스트 운영체제를 통해서 기설정된 그룹에 포함된 파일의 수정 또는 삭제를 보호하는 장치 및 방법에 관한 것이다.The following embodiments relate to an apparatus and method for securing the integrity of a guest operating system in operating a guest operating system in a virtualization system and protecting the modification or deletion of files included in a preset group through the guest operating system.

"가상화"의 사전적 의미는 "실제로 있지 않거나 모호한 것에 대하여 실제로 존재하는 사실이나 개체로 가정하여 취급하는 것"으로 정의되어 있다.The dictionary meaning of "virtualization" is defined as "treating something that does not actually exist or is vague as a fact or entity that actually exists".

본 발명에서 가상화 기술은 "컴퓨터 운영체제를 시스템 구조나 하드웨어에 영향을 받지 않고 설치, 사용할 수 있는 기술"이다.In the present invention, the virtualization technology is "a technology capable of installing and using a computer operating system without being affected by the system structure or hardware".

가상화 기술은 최초로 1970년대에 IBM에서 제안한 기술로 당시에는 메인 프레임의 공간 절감과 비용적 문제를 해결하고자 제안되었다. 하지만, 최근에는 비용절감의 효과뿐만 아니라 호환성 및 유연성, 보안성을 제공하여 가상화 기술이 주목받고 있다. 주로 적용 분야는 클라우드 컴퓨팅을 위한 서버 가상화와 데스크톱 가상화, 모바일 가상화 등 분야가 다양하다.The virtualization technology was first proposed by IBM in the 1970s and was proposed to solve the problem of space saving and cost of the main frame at that time. However, in recent years, virtualization technology is attracting attention because it provides compatibility, flexibility, and security as well as cost reduction effect. Mainly applied fields are diverse, such as server virtualization for cloud computing, desktop virtualization, and mobile virtualization.

이러한 가상화 기술을 보안성 때문에 이용되는 이유는, 높은 격리성(Isolation)이란 가상화의 장점에 바탕을 둔다. 가상화 환경은 일반적으로 게스트 운영체제가 실행되는 가상 머신과 이를 관리하는 호스트 운영체제가 실행되는 가상 머신 모니터(VMM; Virtual machine monitor) 혹은 하이퍼바이저(Hypervisor)로 구성되며, 각 가상 머신은 격리된 공간으로 존재한다. 특히 가상 머신에 위협이 발생한 경우에도 해당 가상 머신을 제외한 다른 가상 머신과 가상 머신 모니터에는 영향을 주지 않기 때문이다.The reason why this virtualization technology is used for security is based on the advantage of virtualization called high isolation. A virtual environment generally consists of a virtual machine running a guest operating system and a virtual machine monitor (VMM) or hypervisor running a host operating system that manages it, and each virtual machine exists as an isolated space. do. In particular, even when a threat occurs to a virtual machine, it does not affect other virtual machines and virtual machine monitors except for the virtual machine.

하지만, 가상화 시스템에서 기존에 물리머신에서 사용되는 보안솔루션들은 한계를 보이고 있고, 보안위협의 발생빈도도 크게 증가하고 있다.However, in the virtualization system, the existing security solutions used in physical machines have limitations, and the frequency of occurrence of security threats is increasing significantly.

가상화 시스템에서 보안솔루션이 한계를 보이는 대표적인 이유는 하나의 가상화 시스템에 다수의 운영체제가 설치될 수 있기 때문이다. A typical reason why security solutions have limitations in virtualization systems is that multiple operating systems can be installed in one virtualization system.

해커들이 가상화 시스템에 설치되는 운영체제 중에서 하나를 이용해서 운영체제 수준에서 공격하여 파일을 수정 또는 삭제하는 경우, 이를 막기 어려운 문제를 가지고 있다. When hackers modify or delete files by attacking at the operating system level using one of the operating systems installed in the virtualization system, it is difficult to prevent this.

따라서, 파일의 수정 또는 삭제를 효율적으로 감시하고 차단할 수 있는 기술이 요구된다.Accordingly, there is a need for a technology capable of efficiently monitoring and blocking file modification or deletion.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 해쉬 관리를 통해 파일을 보호하는 장치 및 방법을 제공하는 것을 목적으로 한다.The present invention was derived to solve the problems of the prior art as described above, and an object of the present invention is to provide an apparatus and method for protecting a file through hash management.

본 발명의 일 실시 예에 따른 파일을 보호하는 방법은, 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계; 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계; 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계; 및 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 단계를 포함한다.A method of protecting a file according to an embodiment of the present invention includes: detecting a request to modify or delete a file included in a preset group while monitoring a guest operating system in a virtualization driver; inquiring from the virtual driver to a host operating system for permission to modify or delete a file included in the preset group; determining, in the host operating system, whether to allow modification or deletion of the file included in the preset group by using whether the file included in the preset group is included in the preset file list; and the host operating system permits modification or deletion of files included in the preset group or permits modification or deletion of files included in the preset group according to the determination result of whether to permit the modification or deletion of the files included in the preset group. Blocking modification or deletion of the file.

이때, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.In this case, the step of determining whether to allow the modification or deletion of the file included in the preset group may include, if the file included in the preset group is not included in the preset file list, included in the preset group It can be determined that modification or deletion of a file is permitted, and when a file included in the preset group is included in the preset file list, it is determined that modification or deletion of a file included in the preset group is not permitted. .

이때, 상기 기설정된 그룹에 포함된 파일은, 실행 파일인 것을 특징으로 할 수 있다.In this case, the file included in the preset group may be an executable file.

이때, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계는, 상기 가상화 드라이버에서 상기 기설정된 그룹에 포함된 파일을 기설정된 해쉬 함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 상기 계산된 해쉬값을 상기 호스트 운영체제로 송신하여 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는, 상기 호스트 운영체제의 파일 관리부에서 수정 또는 삭제가 차단되어야 하는 파일의 해쉬값이 저장된 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.In this case, the step of inquiring from the virtualization driver to the host operating system for permission to modify or delete the file included in the preset group includes using a preset hash function for the file included in the preset group in the virtualization driver. to generate a hash value calculated by hashing, and transmit the calculated hash value to the host operating system to inquire permission to modify or delete a file included in the predetermined group, The step of determining whether to allow modification or deletion of the file included in the preset group using whether the file included in the group is included in the preset file list may include modifying or deleting the file in the file management unit of the host operating system. Checks whether the calculated hash value is included in the preset file list in which the hash value of the file to be blocked is stored, and if the calculated hash value is not included in the preset file list, included in the preset group If modification or deletion of a file is permitted, and the calculated hash value is included in the predetermined file list, it may be determined that modification or deletion of the file included in the predetermined group is not permitted.

이때, 상기 기설정된 파일 목록은, 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.In this case, the preset file list may store a hash value corresponding to a file to be blocked from modification or deletion, and may further include at least one of identifier information for identifying the file or a path of the file.

이때, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계 이전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하는 단계; 및 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값을 상기 기설정된 파일 목록에 저장하는 단계를 더 포함할 수 있다.At this time, before detecting a request for modification or deletion of a file included in the preset group, when a request to register a file in the preset file list is received, checking whether the request is a registration request through a pre-approved local network ; and if the registration request is a registration request through a pre-approved local network, a hash value of the file to be modified is calculated using a preset hash function, and the hash value corresponding to the file to be registered is stored in the preset file list. It may further include the step of

이때, 파일을 보호하는 방법은, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하는 단계; 상기 기설정된 그룹에 포함된 파일을 수정하면 기설정된 해쉬 함수를 이용해서 상기 수정된 파일의 해쉬값을 계산하는 단계; 및 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는 단계를 더 포함할 수 있다.In this case, the method of protecting a file may include: receiving a modification request for a file included in the preset file list through a local network permitted by the host operating system; calculating a hash value of the modified file using a preset hash function when a file included in the preset group is modified; and modifying the hash value of the file before modification stored in the preset file list to the hash value of the modified file.

이때, 파일을 보호하는 방법은, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하는 단계; 및 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는 단계를 더 포함할 수 있다.In this case, the method of protecting a file may include: receiving a deletion request for a file included in the preset file list through a local network permitted by the host operating system; and deleting a hash value corresponding to the file requested to be deleted from the preset file list.

이때, 파일을 보호하는 방법은, 상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 상기 가상화 드라이버에 대한 무결성을 검증하는 단계; 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계; 및 상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계를 더 포함할 수 있다.In this case, the method of protecting a file may include parsing the file system of the guest operating system before starting the guest operating system and verifying the integrity of the virtualization driver executing the guest operating system; As a result of the verification, if the virtualization driver is intact, the memory area to which the virtualization driver is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the memory area corresponding to the volume boot record (VBR) of the guest operating system are blocking tampering; and executing the guest operating system and the virtualization driver.

본 발명의 일 실시 예에 따른 파일을 보호하는 장치는, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 파일 관리부; 및 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 상기 파일 관리부를 통해서 허가 여부를 확인하고 판단 결과에 따라 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하는 호스트 운영체제 파일 보호부를 포함한다.The device for protecting a file according to an embodiment of the present invention permits modification or deletion of a file included in the preset group by using whether the file included in the preset group is included in the preset file list. a file management unit to determine whether or not; And upon receiving an inquiry from the virtualization driver for permission to modify or delete a file included in the preset group, check whether permission is granted through the file management unit, and modify or modify the file included in the preset group according to the determination result Includes a host operating system file protector that permits or blocks deletion.

이때, 상기 파일 관리부는, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.In this case, the file management unit, if the file included in the preset group is not included in the preset file list, permits modification or deletion of the file included in the preset group, and is included in the preset group. If the file is included in the preset file list, it may be determined that modification or deletion of the file included in the preset group is not permitted.

이때, 상기 기설정된 그룹에 포함된 파일은, 실행 파일인 것을 특징으로 할 수 있다.In this case, the file included in the preset group may be an executable file.

이때, 상기 파일 관리부는, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 상기 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.In this case, the file management unit, upon receiving the calculated hash value for the file included in the preset group from the virtualization driver, checks whether the calculated hash value is included in the preset file list, and the calculated hash value If the value is not included in the preset file list, modification or deletion of the file included in the preset group is permitted, and if the calculated hash value is included in the preset file list, it is included in the preset group It may be determined that modification or deletion of the deleted file is not permitted.

이때, 상기 기설정된 파일 목록은, 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.In this case, the preset file list may store a hash value corresponding to a file to be blocked from modification or deletion, and may further include at least one of identifier information for identifying the file or a path of the file.

이때, 상기 파일 관리부는, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값으로 상기 기설정된 파일 목록에 저장할 수 있다.At this time, when the file management unit receives a request to register a file in the preset file list before detecting a request for modification or deletion of a file included in the preset group, whether it is a registration request through a pre-approved local network After checking, if the registration request is a registration request through a pre-approved local network, a hash value of the file to be modified is calculated using a preset hash function, and the preset file list is set as a hash value corresponding to the file to be registered. can be stored in

이때, 상기 파일 관리부는, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정할 수 있다.At this time, when the file management unit receives a request to modify a file included in the preset file list through a local network permitted by the host operating system, it calculates a hash value of the modified file using a preset hash function, , the hash value of the file before modification stored in the preset file list may be modified as the hash value of the modified file.

이때, 상기 파일 관리부는, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제할 수 있다.In this case, when the file manager receives a request to delete a file included in the preset file list through a local network permitted by the host operating system, a hash value corresponding to the file requested to be deleted from the preset file list is can be deleted.

이때, 파일을 보호하는 장치는, 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부; 및 상기 게스트 운영체제를 모니터링하다가 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 상기 호스트 운영체제 파일 보호부로 문의하는 상기 가상화 드라이버를 더 포함하고, 상기 호스트 운영체제 파일 보호부는, 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 문의 받으면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 판단한 결과를 상기 가상화 드라이버로 송신할 수 있다.In this case, the apparatus for protecting a file includes: an analysis unit that parses the file system of the guest operating system before starting the guest operating system and verifies the integrity of the virtualization driver executing the guest operating system; and if a request for modification or deletion of a file included in the preset group is detected while monitoring the guest operating system, it inquires to the host operating system file protection unit for permission to modify or delete a file included in the preset group and the host operating system file protection unit, if the verification result is that the virtualization driver is intact, a memory area to which the virtualization driver is allocated, a memory area corresponding to a master boot record (MBR) of the guest operating system, and Blocks modulation of a memory area corresponding to the volume boot record (VBR) of the guest operating system, and receives an inquiry from the virtualization driver whether to allow modification or deletion of files included in the preset group, the preset group A result of determining whether to allow the modification or deletion of the file included in the file may be transmitted to the virtualization driver.

이때, 상기 가상화 드라이버는, 상기 호스트 운영체제 파일 보호부에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 상기 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행할 수 있다.In this case, the virtualization driver blocks access to the file included in the preset group if the host operating system file protection unit does not permit modification or deletion of the file included in the preset group, and the preset group If modification or deletion of a file included in . is permitted, modification or deletion of a file included in the preset group may be performed.

이때, 상기 호스트 운영체제 파일 보호부는, 상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.At this time, when the host operating system file protection unit receives from the virtualization driver the start time of the virtualization driver and the address of the memory area to block modulation, the memory area to which the virtualization driver is allocated, the master boot record (MBR) of the guest operating system Modulation may be blocked by setting the access right of the memory area corresponding to , and the memory area corresponding to the volume boot record (VBR) of the guest operating system to read only.

본 발명은 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하고, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 파일을 보호하는 장치 및 방법에 관한 것으로, 기설정된 그룹에 포함된 파일 중에서 기설정된 파일 목록에 포함된 파일의 수정과 삭제로부터 파일을 보호할 수 있다.The present invention detects a request for modification or deletion of a file included in a preset group while monitoring the guest operating system in the virtualization driver, and the virtualization driver to the host operating system for modification or deletion of a file included in the preset group Inquiring for permission, the host operating system determines whether modification or deletion of the file included in the preset group is permitted by using whether the file included in the preset group is included in a preset file list, The host operating system permits modification or deletion of a file included in the preset group or permits modification or deletion of a file included in the preset group or files included in the preset group according to a determination result of whether to permit modification or deletion of the file included in the preset group It relates to an apparatus and method for protecting a file that blocks modification or deletion of a file, and it is possible to protect a file from modification and deletion of a file included in a preset file list among files included in a preset group.

도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 파일을 보호하는 장치의 구성을 도시한 도면이다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 3은 일 실시예에 따른 장치에서 기설정된 그룹에 포함된 파일을 수정 또는 삭제하기 전에 허가 받는 과정을 도시한 흐름도이다.
도 4는 일 실시예에 따른 장치에서 파일 목록에 파일을 등록하는 과정을 도시한 흐름도이다.
도 5는 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 수정하는 과정을 도시한 흐름도이다.
도 6은 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 삭제하는 과정을 도시한 흐름도이다.
도 7은 일 실시예에 따른 가상화 시스템에서 기설정된 그룹에 포함된 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
1 is a diagram illustrating a configuration of an apparatus for protecting files of a guest operating system and a file system in a virtualization system according to an embodiment.
FIG. 2 is a diagram illustrating a page table entry modified in order to block modulation of a memory area of a virtualization driver according to an embodiment.
3 is a flowchart illustrating a process of obtaining permission before modifying or deleting a file included in a preset group in an apparatus according to an exemplary embodiment.
4 is a flowchart illustrating a process of registering a file in a file list in an apparatus according to an exemplary embodiment.
5 is a flowchart illustrating a process of modifying a file included in a file list in an apparatus according to an exemplary embodiment.
6 is a flowchart illustrating a process of deleting a file included in a file list in an apparatus according to an exemplary embodiment.
7 is a diagram illustrating a message flow for protecting a file included in a preset group in a virtualization system according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for description purposes only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the components from other components, and the essence, order, or order of the components are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It will be understood that may also be "connected", "coupled" or "connected".

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having a common function will be described using the same names in other embodiments. Unless otherwise stated, a description described in one embodiment may be applied to another embodiment, and a detailed description in the overlapping range will be omitted.

이하에서는, 본 발명의 일 실시 예에 따른 해쉬 관리를 통해 파일을 보호하는 장치 및 방법을 첨부된 도 1 내지 도 8을 참조하여 상세히 설명한다.Hereinafter, an apparatus and method for protecting a file through hash management according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 8 .

도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 파일을 보호하는 장치의 구성을 도시한 도면이다.1 is a diagram illustrating a configuration of an apparatus for protecting files of a guest operating system and a file system in a virtualization system according to an embodiment.

도 1을 참조하면, 보안 장치는 크게 게스트 운영체제 시스템(OS; Operating System)(110), 호스트 운영체제 시스템(OS; Operating System)(120) 및 로컬 단말기(130)를 포함하여 구성될 수 있다.Referring to FIG. 1 , the security device may largely include a guest operating system (OS) 110 , a host operating system (OS) 120 , and a local terminal 130 .

게스트 OS(110)은 IP 주소를 가지고 네트워크에 연결되며, 호스트 OS(120)는 IP 주소를 가지고 있지 않거나, IP 주소를 가지고 있다 하더라도 호스트 OS(120)의 제어는 로컬 네트워크를 통한 로컬 단말기(130)를 통해서만 제어가 가능하도록 할 수 있다.The guest OS 110 has an IP address and is connected to the network, and even if the host OS 120 does not have an IP address or has an IP address, the control of the host OS 120 is performed by the local terminal 130 through the local network. ) can be controlled only through

네트워크를 통해서 게스트 OS(110)로 전송되는 데이터는 호스트 OS(120)를 통해서 게스트 OS(110)로 전달되지만, 호스트 OS(120)는 IP 주소를 가지고 있지 않거나, IP 주소를 가지고 있다 하더라도 허가된 로컬 단말기(130)를 통해서만 제어가 가능하므로, 외부에서는 호스트 OS(120)에 직접적으로 접근할 수 없도록 할 수 있다. Data transmitted to the guest OS 110 through the network is transmitted to the guest OS 110 through the host OS 120 , but the host OS 120 does not have an IP address or is allowed even if it has an IP address. Since control is possible only through the local terminal 130 , it is possible to prevent direct access to the host OS 120 from the outside.

즉, 호스트 OS(120)는 IP 주소의 보유 여부와 상관없이 허가된 단말기를 통해서만 접근할 수 있다. 따라서, 외부에서 호스트 OS(120)로 직접적인 접근이 원천적으로 봉쇄할 수 있도록 IP 주소를 가지고 있지 않는 것이 더 바람직하겠다.That is, the host OS 120 can access only through an authorized terminal regardless of whether the host OS 120 has an IP address. Therefore, it would be more preferable not to have an IP address so that direct access to the host OS 120 from the outside can be fundamentally blocked.

보다 구체적으로 게스트 OS(110)은 가상화 드라이버(Para-virtualized Agent)(112), 파일 시스템(114)을 포함하고, 호스트 OS(120)는 호스트 운영체제(OS) 파일 보호부(122), 분석부(Parser)(124), 파일 관리부(126)를 포함하여 구성될 수 있다.More specifically, the guest OS 110 includes a para-virtualized agent 112 and a file system 114 , and the host OS 120 includes a host operating system (OS) file protection unit 122 and an analysis unit. (Parser) 124 , it may be configured to include a file management unit 126 .

가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)를 통해 분석부(124)로 제공하여 무결성 여부를 확인한다. 이때, 에이전트의 메모리 영역 정보에 해당하는 메모리 주소는 커널의 구조체(structure) 및 API(Application Programming Interface)를 통해 획득할 수 있다.Before starting in the guest operating system, the virtualization driver 112 provides the start time and memory area information of the virtualization driver to the analysis unit 124 through the host operating system file protection unit 122 to check integrity. In this case, a memory address corresponding to the agent's memory area information may be obtained through a structure of the kernel and an application programming interface (API).

가상화 드라이버(112)는 운영체제에 관계없이 구현될 수 있으나, 운영체제에 따라 구현 방법이 달리질 수 있다. 예를 들어, 윈도우(Windows)의 경우 파일 시스템 미니필터 드라이버(file system minifilter driver)를 통해 가상화 드라이버(112)가 구현될 수 있고, 리눅스(Linux)의 경우 커널 모듈(kernel module)을 통해 가상화 드라이버(112)가 구현될 수 있다.The virtualization driver 112 may be implemented regardless of the operating system, but the implementation method may vary depending on the operating system. For example, in the case of Windows, the virtualization driver 112 may be implemented through a file system minifilter driver, and in the case of Linux, the virtualization driver through a kernel module. (112) may be implemented.

분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증 결과를 호스트 운영체제 파일 보호부(122)로 제공한다.The analyzer 124 parses the file system of the guest operating system and verifies the integrity of the virtualization driver before starting the guest OS 110 , and provides the verification result to the host operating system file protection unit 122 .

호스트 운영체제 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역의 변조를 차단한다. The host operating system file protection unit 122 blocks the modification of the memory area to which the virtualization driver 112 is allocated when the virtualization driver is intact as a result of the verification by the analysis unit 124 .

또한, 호스트 운영체제 파일 보호부(122)는 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한다.In addition, the host operating system file protection unit 122 blocks tampering of a memory area corresponding to a master boot record (MBR) of the guest operating system and a memory area corresponding to a volume boot record (VBR) of the guest operating system.

보다 구체적으로, 호스트 운영체제 파일 보호부(122)는 수신한 가상화 드라이버(112)의 시작 시간과 가상화 드라이버(112)가 할당된 메모리 영역의 주소를 이용하여 가상화 드라이버(112)가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.More specifically, the host operating system file protection unit 122 uses the received start time of the virtualization driver 112 and the address of the memory area to which the virtualization driver 112 is allocated. You can block tampering by setting the access right to read only.

그리고, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역의 주소와 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 주소를 이용해서 해당 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.And, by using the address of the memory area corresponding to the master boot record (MBR) of the guest operating system and the address of the memory area corresponding to the volume boot record (VBR) of the guest operating system, the access right of the corresponding memory area is read only (read only) ) to block tampering.

도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.FIG. 2 is a diagram illustrating a page table entry modified in order to block modulation of a memory area of a virtualization driver according to an embodiment.

도 2를 참조하면, 호스트 운영체제 파일 보호부(122)는 페이지 테이블 엔트리(page table entry)에서 음영으로 표시한 접근 권한(RWX bits)을 쓰기금지에 해당하는 읽기(read)로 수정하여 변조를 차단할 수 있다.Referring to FIG. 2 , the host operating system file protection unit 122 blocks tampering by modifying the access rights (RWX bits) shaded in the page table entry to read corresponding to write-protection. can

한편, 메모리 영역에 대한 변조를 차단하기 위해서 인텔의 경우 메모리 가상화 기술인 Extended Page Table(EPT)를 활용하고, AMD의 경우 Nested Page Tables(NPT)를 활용할 수 있다.Meanwhile, in the case of Intel, memory virtualization technology, Extended Page Table (EPT), can be used to block tampering in the memory area, and in the case of AMD, Nested Page Tables (NPT) can be utilized.

다시 도1의 설명으로 돌아와서, 가상화 드라이버(112)는 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 호스트 운영체제 파일 보호부(122)로 문의할 수 있다.Returning to the description of FIG. 1 again, when the virtualization driver 112 detects a request to modify or delete a file included in a preset group while monitoring the guest operating system, the virtualization driver 112 is responsible for modifying or deleting a file included in the preset group. Whether permission is granted may be inquired to the host operating system file protection unit 122 .

이때, 가상화 드라이버(112)는 기설정된 그룹에 포함된 파일을 기설정된 해쉬함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 호스트 운영체제 파일 보호부(122)로 송신하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의할 수 있다.At this time, the virtualization driver 112 hashes a file included in a preset group using a preset hash function to generate a calculated hash value, and returns the calculated hash value for the file included in the preset group to the host operating system file. It may transmit to the protection unit 122 to inquire permission for modification or deletion of a file included in a preset group.

호스트 운영체제 파일 보호부(122)는 가상화 드라이버(112)로부터 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 파일 관리부(126)를 통해서 허가 여부를 확인하고 판단 결과에 따라 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하고 판단결과를 가상화 드라이버(112)로 송신한다.When the host operating system file protection unit 122 receives an inquiry from the virtualization driver 112 for permission to modify or delete a file included in a preset group, the host operating system file protection unit 122 checks whether permission is granted through the file management unit 126 and according to the determination result Modification or deletion of files included in the preset group is permitted or blocked, and the determination result is transmitted to the virtualization driver 112 .

기설정된 그룹에 포함된 파일은 파일헤더 또는 확장자로 구분할 수 있으며, 실행 파일을 기설정된 그룹으로 분류할 수 있다. 이때, 실행 파일은 파일헤더가 PE(실행파일 헤더)구조 이거나 확장자가 EXE, DLL, SYS 등의 파일이 실행파일에 해당할 수 있다.Files included in a preset group may be classified by a file header or extension, and executable files may be classified into a preset group. In this case, in the executable file, the file header may have a PE (executable file header) structure, or files with extensions such as EXE, DLL, SYS, etc. may correspond to the executable file.

파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단할 수 있다.The file management unit 126 may determine whether to allow modification or deletion of the file included in the preset group by using whether the file included in the preset group is included in the preset file list.

파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있지 않으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.If the file included in the preset group is not included in the preset file list, the file management unit 126 permits modification or deletion of the file included in the preset group, and the file included in the preset group is the preset file. If it is included in the list, it may be determined that modification or deletion of the file included in the preset group is not permitted.

보다 구체적으로, 파일 관리부(126)는 가상화 드라이버(112)로부터 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 기설정된 파일 목록에 계산된 해쉬값이 포함되어 있는지 확인하고, 계산된 해쉬값이 기설정된 파일 목록에 포함되어 있지 않으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 계산된 해쉬값이 기설정된 파일 목록에 포함되어 있으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.More specifically, when the file management unit 126 receives the calculated hash value for the file included in the preset group from the virtualization driver 112, check whether the calculated hash value is included in the preset file list, and If the hash value is not included in the preset file list, modification or deletion of the file included in the preset group is permitted, and if the calculated hash value is included in the preset file list, the file included in the preset group It may be determined that modification or deletion is not permitted.

이때, 기설정된 파일 목록은 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 파일을 식별할 수 있는 식별자 정보 또는 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.In this case, the preset file list may store a hash value corresponding to a file to be blocked from modification or deletion, and may further include at least one of identifier information for identifying the file or a file path.

한편, 파일 관리부(126)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한(예를 들어, 허가된 로컬 단말기(130)를 통해서) 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 등록할 파일에 대응하는 해쉬값으로 기설정된 파일 목록에 저장할 수 있다.On the other hand, when the file management unit 126 receives a request to register a file in a preset file list before detecting a request to modify or delete a file included in a preset group, through a pre-authorized local network (for example, , through the permitted local terminal 130), it is checked whether the registration request A hash value corresponding to the file to be stored may be stored in a preset file list.

파일 관리부(126)는 호스트 운영체제(120)에서 허가된 로컬 네트워크를 통해서(예를 들어, 허가된 로컬 단말기(130)를 통해서) 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 수정된 파일의 해쉬값으로 수정할 수 있다.When the file manager 126 receives a request to modify a file included in the preset file list through the local network permitted by the host operating system 120 (eg, through the permitted local terminal 130), the The hash value of the modified file can be calculated using the set hash function, and the hash value of the file before modification stored in the preset file list can be modified as the hash value of the modified file.

파일 관리부(126)는 호스트 운영체제(120)에서 허가된 로컬 네트워크를 통해서(예를 들어, 허가된 로컬 단말기(130)를 통해서) 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제할 수 있다.When the file management unit 126 receives a request to delete a file included in the preset file list through the local network permitted by the host operating system 120 (eg, through the permitted local terminal 130), the A hash value corresponding to a file requested to be deleted can be deleted from the set file list.

가상화 드라이버(112)는 호스트 운영체제 파일 보호부(122)에서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행하도록 할 수 있다.The virtualization driver 112 blocks access to the file included in the preset group if the host operating system file protection unit 122 does not permit modification or deletion of the file included in the preset group, and includes it in the preset group If modification or deletion of a file is permitted, modification or deletion of a file included in a preset group can be performed.

한편, 가상화 드라이버(112)와 호스트 운영체제 파일 보호부(122)는 하이퍼콜 인터페이스(hypercall interface)를 이용해서 통신할 수 있다.Meanwhile, the virtualization driver 112 and the host operating system file protection unit 122 may communicate using a hypercall interface.

이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a method according to the present invention configured as described above will be described with reference to the drawings below.

도 3은 일 실시예에 따른 장치에서 기설정된 그룹에 포함된 파일을 수정 또는 삭제하기 전에 허가 받는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of obtaining permission before modifying or deleting a file included in a preset group in an apparatus according to an exemplary embodiment.

도 3을 참조하면, 가상화 드라이버(112)에서 게스트 운영체제(110)를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면(310), 가상화 드라이버(112)에서 호스트 운영체제(120)의 호스트 운영체제 파일 보호부(122)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(320).Referring to FIG. 3 , when the virtualization driver 112 monitors the guest operating system 110 and detects a request to modify or delete a file included in a preset group 310 , the virtualization driver 112 monitors the host operating system 120 . ) of the host operating system file protection unit 122 inquires for permission to modify or delete a file included in a preset group ( 320 ).

이때, 기설정된 그룹에 포함된 파일은 파일헤더 및 확장자로 구분할 수 있으며, 실행 파일을 기설정된 그룹으로 분류할 수 있다. 실행 파일은 파일헤더가 PE(실행파일 헤더)구조 이거나 확장자가 EXE, DLL, SYS 등의 파일이 실행파일에 해당할 수 있다.In this case, files included in the preset group may be classified by a file header and an extension, and executable files may be classified into a preset group. In an executable file, the file header may have a PE (executable file header) structure, or files with extensions such as EXE, DLL, SYS, etc. may correspond to executable files.

보다 구체적으로 320단계는 가상화 드라이버(112)에서 기설정된 그룹에 포함된 파일을 기설정된 해쉬함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 호스트 운영체제 파일 보호부(122)로 송신하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의할 수 있다.More specifically, in step 320, the virtualization driver 112 hashes a file included in a preset group using a preset hash function to generate a calculated hash value, and the calculated hash value for the file included in the preset group. may be transmitted to the host operating system file protection unit 122 to inquire permission for modification or deletion of a file included in a preset group.

호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)를 통해서 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 존재하는지 여부를 확인한다(330).The host operating system file protection unit 122 checks whether a file included in a predetermined group exists in a predetermined file list through the file management unit 126 ( 330 ).

330단계의 확인결과 호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)의 판단결과 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있으면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않고 차단으로 판단하고, 가상화 드라이버(112)로 판단결과를 제공하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단한다(340).As a result of the check in step 330 , if the file management unit 126 determines that a file included in the preset group is included in the preset file list in the host operating system file protection unit 122 , the file included in the preset group is modified or It is determined that the deletion is not permitted and blocked, and the determination result is provided to the virtualization driver 112 to block modification or deletion of files included in the preset group ( 340 ).

330단계의 확인결과 호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)의 판단결과 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있지 않으면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하는 것으로 판단하고, 가상화 드라이버(112)로 판단결과를 제공하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가한다(350).If it is determined in step 330 that the file management unit 126 determines that the file included in the preset group is not included in the preset file list in the host operating system file protection unit 122, the file included in the preset group is corrected. Alternatively, it is determined that deletion is permitted, and the determination result is provided to the virtualization driver 112 to permit modification or deletion of files included in a preset group (350).

330단계는 호스트 운영체제(120)의 파일 관리부(126)에서 기설정된 파일 목록에 가상 드라이버(112)에서 송신한 계산된 해쉬값이 포함되어 있는지 확인하는 것으로, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 존재하는지 여부를 확인할 수 있다. 이때, 기설정된 파일 목록은 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 파일을 식별할 수 있는 식별자 정보 또는 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.In step 330, the file management unit 126 of the host operating system 120 checks whether the calculated hash value transmitted from the virtual driver 112 is included in the preset file list. You can check whether it exists in the file list. In this case, the preset file list may store a hash value corresponding to a file to be blocked from modification or deletion, and may further include at least one of identifier information for identifying the file or a file path.

한편 도 3에는 도시되어 있지 않지만, 호스트 운영체제(120)의 분석부(124)에서 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하고, 호스트 운영체제 파일 보호부(122)에서 분석부(124)의 무결성 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한 후에, 게스트 운영체제(110)와 가상화 드라이버(112)를 실행할 수 있다.Meanwhile, although not shown in FIG. 3 , before starting the guest operating system in the analysis unit 124 of the host operating system 120 , the file system of the guest operating system is parsed and the integrity of the virtualization driver executing the guest operating system is verified, If the integrity verification result of the analysis unit 124 in the host operating system file protection unit 122 indicates that the virtualization driver is intact, the memory area to which the virtualization driver is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the guest operating system are After blocking the modulation of the memory area corresponding to the volume boot record (VBR), the guest operating system 110 and the virtualization driver 112 may be executed.

도 4는 일 실시예에 따른 장치에서 파일 목록에 파일을 등록하는 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process of registering a file in a file list in an apparatus according to an exemplary embodiment.

도 4를 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 파일의 등록을 요청받으면(410), 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인한다(420).Referring to FIG. 4 , when the file management unit 126 receives a request to register a file in a preset file list ( 410 ), it checks whether it is a registration request through a pre-approved local network ( 420 ).

420단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 파일 관리부(126)는 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 등록할 파일에 대응하는 해쉬값을 기설정된 파일 목록에 저장한다(430).As a result of checking in step 420, if the registration request is a registration request through a previously permitted local network, the file management unit 126 calculates a hash value of the file to be modified using a preset hash function, and returns a hash value corresponding to the file to be registered. It is stored in a preset file list (430).

420단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이 아니면, 파일 관리부(126)는 파일의 등록 요청을 차단한다(440).If it is determined in step 420 that the registration request is not a registration request through a pre-approved local network, the file management unit 126 blocks the file registration request ( 440 ).

도 5는 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 수정하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of modifying a file included in a file list in an apparatus according to an exemplary embodiment.

도 5를 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 포함된 파일에 대한 수정을 요청받으면(510), 사전에 허가된 로컬 네트워크를 통한 수정 요청인지 확인한다(520).Referring to FIG. 5 , when receiving a request to modify a file included in a preset file list ( 510 ), the file management unit 126 checks whether the request is a modification through a pre-authorized local network ( 520 ).

520단계의 확인결과 수정 요청이 사전에 허가된 로컬 네트워크를 통한 수정 요청이면, 파일 관리부(126)는 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 수정된 파일의 해쉬값으로 수정한다(530).As a result of checking in step 520, if the modification request is a modification request through a pre-authorized local network, the file management unit 126 calculates a hash value of the modified file using a predetermined hash function, and before modification stored in the predetermined file list The hash value of the file is corrected to the hash value of the modified file (530).

520단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 수정 요청이 아니면, 파일 관리부(126)는 파일의 수정 요청을 차단한다(540).If it is determined in step 520 that the registration request is not a modification request through a previously authorized local network, the file management unit 126 blocks the modification request of the file ( 540 ).

도 6은 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 삭제하는 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of deleting a file included in a file list in an apparatus according to an exemplary embodiment.

도 6을 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 포함된 파일에 대한 삭제를 요청받으면(610), 사전에 허가된 로컬 네트워크를 통한 삭제 요청인지 확인한다(620).Referring to FIG. 6 , when the file management unit 126 receives a request to delete a file included in a preset file list ( 610 ), it checks whether the request is a deletion request through a pre-approved local network ( 620 ).

620단계의 확인결과 수정 요청이 사전에 허가된 로컬 네트워크를 통한 삭제 요청이면, 파일 관리부(126)는 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제한다(630).As a result of checking in step 620, if the modification request is a deletion request through a pre-approved local network, the file management unit 126 deletes a hash value corresponding to the file requested to be deleted from the preset file list (630).

620단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 삭제 요청이 아니면, 파일 관리부(126)는 파일의 삭제 요청을 차단한다(640).If it is determined in step 620 that the registration request is not a request for deletion through a pre-approved local network, the file management unit 126 blocks the request to delete the file ( 640 ).

도 7은 일 실시예에 따른 가상화 시스템에서 기설정된 그룹에 포함된 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.7 is a diagram illustrating a message flow for protecting a file included in a preset group in a virtualization system according to an embodiment.

도 7을 참조하면, 가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)로 송신한다(710).Referring to FIG. 7 , before starting in the guest operating system, the virtualization driver 112 transmits a start time and memory area information of the virtualization driver to the host operating system file protection unit 122 ( 710 ).

호스트 OS 파일 보호부(122)는 시작 시간과 가상화 드라이버의 메모리 영역 정보를 분석부(124)로 제공한다(712).The host OS file protection unit 122 provides the start time and memory area information of the virtualization driver to the analysis unit 124 ( 712 ).

분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증한다(714).The analyzer 124 parses the file system of the guest operating system before starting the guest OS 110 and verifies the integrity of the virtualization driver (S714).

그리고, 분석부(124)는 무결성을 판단한 결과를 호스트 OS 파일 보호부(122)로 제공한다(716).Then, the analysis unit 124 provides the result of determining the integrity to the host OS file protection unit 122 (S716).

호스트 OS 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역에 쓰기가 금지되도록 읽기전용(read only)로 설정하여 변조를 차단한다(718).The host OS file protection unit 122 determines that the virtualization driver is intact as a result of the verification of the analysis unit 124 , the memory area to which the virtualization driver 112 is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the guest Modulation is blocked by setting it to read only so that writing is prohibited in the memory area corresponding to the volume boot record (VBR) of the operating system (718).

이후, 가상화 드라이버(112)는 게스트 운영체제(110)를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면(720), 호스트 운영체제(120)의 호스트 운영체제 파일 보호부(122)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(722).Thereafter, when the virtualization driver 112 detects a request to modify or delete a file included in a preset group while monitoring the guest operating system 110 ( 720 ), the host operating system file protection unit 122 of the host operating system 120 . Inquires for permission to modify or delete a file included in a group preset as ' (722).

호스트 운영체제 파일 보호부(122)는 파일 관리부(126)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(724).The host operating system file protection unit 122 inquires the file management unit 126 for permission to modify or delete a file included in a preset group (S724).

파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단한다(726).The file management unit 126 determines whether to allow modification or deletion of the file included in the preset group by using whether the file included in the preset group is included in the preset file list (S726).

파일 관리부(126)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과를 호스트 운영체제 파일 보호부(122)로 응답한다(728).The file management unit 126 responds to the host operating system file protection unit 122 with a result of determining whether to allow modification or deletion of the files included in the preset group to the host operating system file protection unit 122 (S728).

호스트 운영체제 파일 보호부(122)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과를 가상화 드라이버(112)로 응답한다(730).The host operating system file protection unit 122 responds to the virtualization driver 112 with a result of determining whether to allow modification or deletion of files included in a preset group ( 730 ).

가상화 드라이버(112)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단한다(732).The virtualization driver 112 permits modification or deletion of a file included in a preset group or allows modification or deletion of a file included in a preset group according to a determination result of whether to permit modification or deletion of a file included in a preset group. Modification or deletion of the block is blocked (732).

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

110; 게스트 운영체제 시스템
112; 가상화 드라이버
114; 파일 시스템
120; 호스트 운영체제 시스템
122; 호스트 운영체제 파일 보호부
124; 분석부
126; 파일 관리부
130; 로컬 단말기
110; guest operating system
112; virtualization driver
114; file system
120; host operating system
122; Host operating system file protection
124; analysis department
126; file management department
130; local terminal

Claims (20)

가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계;
상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계;
상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계; 및
상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 단계
를 포함하고,
상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는,
상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고,
상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
파일을 보호하는 방법.
Detecting a request to modify or delete a file included in a preset group while monitoring the guest operating system in the virtualization driver;
inquiring from the virtual driver to a host operating system for permission to modify or delete a file included in the preset group;
determining, in the host operating system, whether to allow modification or deletion of the file included in the preset group by using whether the file included in the preset group is included in the preset file list; and
The host operating system permits modification or deletion of a file included in the preset group or permits modification or deletion of a file included in the preset group or files included in the preset group according to a determination result of whether to permit modification or deletion of the file included in the preset group Steps to block modifications or deletions to
including,
The step of determining whether to allow modification or deletion of files included in the preset group includes:
If the file included in the preset group is not included in the preset file list, modify or delete the file included in the preset group is permitted,
If the file included in the preset group is included in the preset file list, it is determined that modification or deletion of the file included in the preset group is not permitted.
How to protect your files.
삭제delete 제1항에 있어서,
상기 기설정된 그룹에 포함된 파일은,
실행 파일인 것을 특징으로 하는
파일을 보호하는 방법.
According to claim 1,
The files included in the preset group are,
characterized in that it is an executable file
How to protect your files.
제1항에 있어서,
상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계는,
상기 가상화 드라이버에서 상기 기설정된 그룹에 포함된 파일을 기설정된 해쉬 함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 상기 계산된 해쉬값을 상기 호스트 운영체제로 송신하여 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고,
상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는,
상기 호스트 운영체제의 파일 관리부에서 수정 또는 삭제가 차단되어야 하는 파일의 해쉬값이 저장된 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
파일을 보호하는 방법.
According to claim 1,
Inquiring from the virtualization driver to the host operating system for permission to modify or delete a file included in the preset group comprises:
The virtualization driver hashes the file included in the preset group using a preset hash function to generate a calculated hash value, and transmits the calculated hash value to the host operating system to transmit the file included in the preset group. Inquire for permission to modify or delete
The step of determining, in the host operating system, whether to allow modification or deletion of the file included in the preset group by using whether the file included in the preset group is included in the preset file list,
The file management unit of the host operating system checks whether the calculated hash value is included in a preset file list in which a hash value of a file to be blocked from modification or deletion is stored, and the calculated hash value is included in the preset file list If not, modification or deletion of files included in the preset group is permitted, and if the calculated hash value is included in the preset file list, modification or deletion of files included in the preset group is permitted. deciding not to
How to protect your files.
제4항에 있어서,
상기 기설정된 파일 목록은,
수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고,
상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함하는
파일을 보호하는 방법.
5. The method of claim 4,
The preset file list is,
Stores the hash value corresponding to the file that should be blocked from modification or deletion,
Further comprising at least one of identifier information for identifying the file or a path of the file
How to protect your files.
제1항에 있어서,
상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계 이전에,
상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하는 단계; 및
확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값을 상기 기설정된 파일 목록에 저장하는 단계
를 더 포함하는 파일을 보호하는 방법.
According to claim 1,
Prior to the step of detecting a request to modify or delete a file included in the preset group,
checking whether the request for registration of a file in the preset file list is received through a pre-approved local network; and
If the registration request is a registration request through a pre-approved local network, the hash value of the file to be modified is calculated using a preset hash function, and the hash value corresponding to the file to be registered is stored in the preset file list. step
How to protect files containing more.
제1항에 있어서,
상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하는 단계;
상기 기설정된 그룹에 포함된 파일을 수정하면 기설정된 해쉬 함수를 이용해서 상기 수정된 파일의 해쉬값을 계산하는 단계; 및
상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는 단계
를 더 포함하는 파일을 보호하는 방법.
According to claim 1,
receiving a modification request for a file included in the preset file list through a local network permitted by the host operating system;
calculating a hash value of the modified file using a preset hash function when a file included in the preset group is modified; and
Correcting the hash value of the file before modification stored in the preset file list to the hash value of the modified file
How to protect files containing more.
제1항에 있어서,
상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하는 단계; 및
상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는 단계
를 더 포함하는 파일을 보호하는 방법.
According to claim 1,
receiving a deletion request for a file included in the preset file list through a local network permitted by the host operating system; and
Deleting a hash value corresponding to a file requested to be deleted from the preset file list
How to protect files containing more.
제1항에 있어서,
상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 상기 가상화 드라이버에 대한 무결성을 검증하는 단계;
검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계; 및
상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계
를 더 포함하는 파일을 보호하는 방법.
According to claim 1,
parsing the file system of the guest operating system before starting the guest operating system and verifying the integrity of the virtualization driver executing the guest operating system;
As a result of the verification, if the virtualization driver is intact, the memory area to which the virtualization driver is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the memory area corresponding to the volume boot record (VBR) of the guest operating system are blocking tampering; and
executing the guest operating system and the virtualization driver
How to protect files containing more.
기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 파일 관리부; 및
가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 상기 파일 관리부를 통해서 허가 여부를 확인하고 판단 결과에 따라 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하는 호스트 운영체제 파일 보호부
를 포함하고,
상기 파일 관리부는,
상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고,
상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
파일을 보호하는 장치.
a file management unit for determining whether to permit modification or deletion of files included in the preset group by using whether the files included in the preset group are included in the preset file list; and
Upon receiving an inquiry from the virtualization driver for permission to modify or delete a file included in the preset group, check whether permission is granted through the file management unit, and modify or delete the file included in the preset group according to the determination result Host operating system file protection unit that allows or blocks
including,
The file management unit,
If the file included in the preset group is not included in the preset file list, modify or delete the file included in the preset group is permitted,
If the file included in the preset group is included in the preset file list, it is determined that modification or deletion of the file included in the preset group is not permitted.
A device that protects your files.
삭제delete 제10항에 있어서,
상기 기설정된 그룹에 포함된 파일은,
실행 파일인 것을 특징으로 하는
파일을 보호하는 장치.
11. The method of claim 10,
The files included in the preset group are,
characterized in that it is an executable file
A device that protects your files.
제10항에 있어서,
상기 파일 관리부는,
상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 상기 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
파일을 보호하는 장치.
11. The method of claim 10,
The file management unit,
Upon receiving the calculated hash value for the file included in the preset group from the virtualization driver, it is checked whether the calculated hash value is included in the preset file list, and the calculated hash value is the preset file list If it is not included in , modification or deletion of a file included in the preset group is permitted, and if the calculated hash value is included in the preset file list, modification or deletion of a file included in the preset group judged not to permit
A device that protects your files.
제13항에 있어서,
상기 기설정된 파일 목록은,
수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고,
상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함하는
파일을 보호하는 장치.
14. The method of claim 13,
The preset file list is,
Stores the hash value corresponding to the file that should be blocked from modification or deletion,
Further comprising at least one of identifier information for identifying the file or a path of the file
A device that protects your files.
제10항에 있어서,
상기 파일 관리부는,
상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값으로 상기 기설정된 파일 목록에 저장하는
파일을 보호하는 장치.
11. The method of claim 10,
The file management unit,
When a request to register a file in the preset file list is received before detecting a request for modification or deletion of a file included in the preset group, it is checked whether it is a registration request through a pre-approved local network, and the confirmation result is a registration request If it is a registration request through the local network allowed in advance, the hash value of the file to be modified is calculated using a preset hash function and stored in the preset file list as a hash value corresponding to the file to be registered.
A device that protects your files.
제10항에 있어서,
상기 파일 관리부는,
상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는
파일을 보호하는 장치.
11. The method of claim 10,
The file management unit,
Upon receiving a request for modification of a file included in the preset file list through a local network permitted by the host operating system, a hash value of the modified file is calculated using a preset hash function and added to the preset file list. Modifying the hash value of the stored file before modification to the hash value of the modified file
A device that protects your files.
제10항에 있어서,
상기 파일 관리부는,
상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는
파일을 보호하는 장치.
11. The method of claim 10,
The file management unit,
When a deletion request for a file included in the preset file list is received through the local network permitted by the host operating system, a hash value corresponding to the file requested to be deleted from the preset file list is deleted.
A device that protects your files.
제10항에 있어서,
게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부; 및
상기 게스트 운영체제를 모니터링하다가 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 상기 호스트 운영체제 파일 보호부로 문의하는 상기 가상화 드라이버를 더 포함하고,
상기 호스트 운영체제 파일 보호부는,
검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 문의 받으면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 판단한 결과를 상기 가상화 드라이버로 송신하는
파일을 보호하는 장치.
11. The method of claim 10,
an analysis unit that parses the file system of the guest operating system before starting the guest operating system and verifies the integrity of the virtualization driver executing the guest operating system; and
When a request for modification or deletion of a file included in the preset group is detected while monitoring the guest operating system, it inquires to the host operating system file protection unit for permission to modify or delete a file included in the preset group Further comprising the virtualization driver,
The host operating system file protection unit,
As a result of the verification, if the virtualization driver is intact, the memory area to which the virtualization driver is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the memory area corresponding to the volume boot record (VBR) of the guest operating system are When tampering is blocked, and when a request is made from the virtualization driver whether to allow modification or deletion of files included in the preset group, the result of determining whether to permit modification or deletion of files included in the preset group to the virtualization driver
A device that protects your files.
제18항에 있어서,
상기 가상화 드라이버는,
상기 호스트 운영체제 파일 보호부에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 상기 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행하는
파일을 보호하는 장치.
19. The method of claim 18,
The virtualization driver is
If the host operating system file protection unit does not permit modification or deletion of the file included in the preset group, access to the file included in the preset group is blocked, and the file included in the preset group is modified Or, if deletion is permitted, modification or deletion of files included in the preset group is performed.
A device that protects your files.
제18항에 있어서,
상기 호스트 운영체제 파일 보호부는,
상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단하는
파일을 보호하는 장치.
19. The method of claim 18,
The host operating system file protection unit,
When the start time of the virtualization driver and the address of the memory area to block modulation are received from the virtualization driver, the memory area to which the virtualization driver is allocated, the memory area corresponding to the master boot record (MBR) of the guest operating system, and the guest operating system It blocks tampering by setting the access right of the memory area corresponding to the volume boot record (VBR) to read only.
A device that protects your files.
KR1020200040463A 2020-04-02 2020-04-02 Apparatus and method for protecting files through hash management KR102323732B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200040463A KR102323732B1 (en) 2020-04-02 2020-04-02 Apparatus and method for protecting files through hash management
PCT/KR2021/003561 WO2021201483A1 (en) 2020-04-02 2021-03-23 Apparatus and method for protecting files through hash management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200040463A KR102323732B1 (en) 2020-04-02 2020-04-02 Apparatus and method for protecting files through hash management

Publications (2)

Publication Number Publication Date
KR20210123121A KR20210123121A (en) 2021-10-13
KR102323732B1 true KR102323732B1 (en) 2021-11-11

Family

ID=77927639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200040463A KR102323732B1 (en) 2020-04-02 2020-04-02 Apparatus and method for protecting files through hash management

Country Status (2)

Country Link
KR (1) KR102323732B1 (en)
WO (1) WO2021201483A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6106805B2 (en) * 2013-04-18 2017-04-05 フェイスコン カンパニーリミテッドFacecon Co.,Ltd. File security method and apparatus therefor
KR101673774B1 (en) * 2015-06-01 2016-11-08 주식회사 수산아이앤티 Method for controlling file input and file output in a virtualized system
US20190042781A1 (en) * 2017-08-04 2019-02-07 Bitdefender IPR Management Ltd. Secure Storage Device
KR20190021673A (en) * 2017-08-23 2019-03-06 주식회사 수산아이앤티 Apparatus and method for preventing ransomware
KR102058493B1 (en) * 2018-05-25 2019-12-23 주식회사 수산아이앤티 Security device and method for providing security service through guest operating system integrity and file i / o control

Also Published As

Publication number Publication date
WO2021201483A1 (en) 2021-10-07
KR20210123121A (en) 2021-10-13

Similar Documents

Publication Publication Date Title
US9747172B2 (en) Selective access to executable memory
EP3103056B1 (en) Methods and apparatus for protecting operating system data
US9063899B2 (en) Security in virtualized computer programs
US7765579B2 (en) Security deployment system
US10630484B2 (en) Securing code loading by a guest in a virtual environment
US20100058041A1 (en) Method and Apparatus for Secure Instantly-On Computer System
US10922402B2 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
US9396329B2 (en) Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage
US10474832B2 (en) Method for controlling file input-output in virtualization system
KR20190021673A (en) Apparatus and method for preventing ransomware
KR102058493B1 (en) Security device and method for providing security service through guest operating system integrity and file i / o control
TW201830282A (en) Computer system and file access control method capable of reducing danger that an unauthorized file, such as a malware, is accessed or executed
EP3178032B1 (en) Embedding secret data in code
US11500787B2 (en) Enforcing code integrity using a trusted computing base
Schwarzl et al. Remote memory-deduplication attacks
US9398019B2 (en) Verifying caller authorization using secret data embedded in code
CN107562514B (en) Physical memory access control and isolation method
KR102323732B1 (en) Apparatus and method for protecting files through hash management
CN113448682A (en) Virtual machine monitor loading method and device and electronic equipment
US10809924B2 (en) Executable memory protection
CN113515779A (en) File integrity checking method, device, equipment and storage medium
US11934857B2 (en) Supporting execution of a computer program by using a memory page of another computer program
KR102084778B1 (en) Access control method and apparutus thereof
WO2024078159A1 (en) Integrity measurement method and apparatus
CN115982699A (en) Malicious attack defense method, device, equipment and medium based on secure memory

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right