KR102323732B1 - 해쉬 관리를 통해 파일을 보호하는 장치 및 방법 - Google Patents

해쉬 관리를 통해 파일을 보호하는 장치 및 방법 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
English (en)
Other versions
KR20210123121A (ko
Inventor
정회찬
문지훈
이창진
Original Assignee
주식회사 수산아이앤티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 수산아이앤티 filed Critical 주식회사 수산아이앤티
Priority to KR1020200040463A priority Critical patent/KR102323732B1/ko
Priority to PCT/KR2021/003561 priority patent/WO2021201483A1/ko
Publication of KR20210123121A publication Critical patent/KR20210123121A/ko
Application granted granted Critical
Publication of KR102323732B1 publication Critical patent/KR102323732B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하고, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 파일을 보호하는 장치 및 방법에 관한 것이다.

Description

해쉬 관리를 통해 파일을 보호하는 장치 및 방법{APPARATUS AND METHOD FOR PROTECTING FILES THROUGH HASH MANAGEMENT}
이하의 일 실시 예들은 가상화 시스템에서 게스트 운영체제를 운영함에 있어서 게스트 운영체제의 무결성을 확보하고 게스트 운영체제를 통해서 기설정된 그룹에 포함된 파일의 수정 또는 삭제를 보호하는 장치 및 방법에 관한 것이다.
"가상화"의 사전적 의미는 "실제로 있지 않거나 모호한 것에 대하여 실제로 존재하는 사실이나 개체로 가정하여 취급하는 것"으로 정의되어 있다.
본 발명에서 가상화 기술은 "컴퓨터 운영체제를 시스템 구조나 하드웨어에 영향을 받지 않고 설치, 사용할 수 있는 기술"이다.
가상화 기술은 최초로 1970년대에 IBM에서 제안한 기술로 당시에는 메인 프레임의 공간 절감과 비용적 문제를 해결하고자 제안되었다. 하지만, 최근에는 비용절감의 효과뿐만 아니라 호환성 및 유연성, 보안성을 제공하여 가상화 기술이 주목받고 있다. 주로 적용 분야는 클라우드 컴퓨팅을 위한 서버 가상화와 데스크톱 가상화, 모바일 가상화 등 분야가 다양하다.
이러한 가상화 기술을 보안성 때문에 이용되는 이유는, 높은 격리성(Isolation)이란 가상화의 장점에 바탕을 둔다. 가상화 환경은 일반적으로 게스트 운영체제가 실행되는 가상 머신과 이를 관리하는 호스트 운영체제가 실행되는 가상 머신 모니터(VMM; Virtual machine monitor) 혹은 하이퍼바이저(Hypervisor)로 구성되며, 각 가상 머신은 격리된 공간으로 존재한다. 특히 가상 머신에 위협이 발생한 경우에도 해당 가상 머신을 제외한 다른 가상 머신과 가상 머신 모니터에는 영향을 주지 않기 때문이다.
하지만, 가상화 시스템에서 기존에 물리머신에서 사용되는 보안솔루션들은 한계를 보이고 있고, 보안위협의 발생빈도도 크게 증가하고 있다.
가상화 시스템에서 보안솔루션이 한계를 보이는 대표적인 이유는 하나의 가상화 시스템에 다수의 운영체제가 설치될 수 있기 때문이다.
해커들이 가상화 시스템에 설치되는 운영체제 중에서 하나를 이용해서 운영체제 수준에서 공격하여 파일을 수정 또는 삭제하는 경우, 이를 막기 어려운 문제를 가지고 있다.
따라서, 파일의 수정 또는 삭제를 효율적으로 감시하고 차단할 수 있는 기술이 요구된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 해쉬 관리를 통해 파일을 보호하는 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시 예에 따른 파일을 보호하는 방법은, 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계; 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계; 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계; 및 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 단계를 포함한다.
이때, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
이때, 상기 기설정된 그룹에 포함된 파일은, 실행 파일인 것을 특징으로 할 수 있다.
이때, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계는, 상기 가상화 드라이버에서 상기 기설정된 그룹에 포함된 파일을 기설정된 해쉬 함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 상기 계산된 해쉬값을 상기 호스트 운영체제로 송신하여 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는, 상기 호스트 운영체제의 파일 관리부에서 수정 또는 삭제가 차단되어야 하는 파일의 해쉬값이 저장된 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
이때, 상기 기설정된 파일 목록은, 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
이때, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계 이전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하는 단계; 및 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값을 상기 기설정된 파일 목록에 저장하는 단계를 더 포함할 수 있다.
이때, 파일을 보호하는 방법은, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하는 단계; 상기 기설정된 그룹에 포함된 파일을 수정하면 기설정된 해쉬 함수를 이용해서 상기 수정된 파일의 해쉬값을 계산하는 단계; 및 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는 단계를 더 포함할 수 있다.
이때, 파일을 보호하는 방법은, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하는 단계; 및 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는 단계를 더 포함할 수 있다.
이때, 파일을 보호하는 방법은, 상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 상기 가상화 드라이버에 대한 무결성을 검증하는 단계; 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계; 및 상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 파일을 보호하는 장치는, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 파일 관리부; 및 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 상기 파일 관리부를 통해서 허가 여부를 확인하고 판단 결과에 따라 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하는 호스트 운영체제 파일 보호부를 포함한다.
이때, 상기 파일 관리부는, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
이때, 상기 기설정된 그룹에 포함된 파일은, 실행 파일인 것을 특징으로 할 수 있다.
이때, 상기 파일 관리부는, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 상기 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
이때, 상기 기설정된 파일 목록은, 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
이때, 상기 파일 관리부는, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값으로 상기 기설정된 파일 목록에 저장할 수 있다.
이때, 상기 파일 관리부는, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정할 수 있다.
이때, 상기 파일 관리부는, 상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제할 수 있다.
이때, 파일을 보호하는 장치는, 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부; 및 상기 게스트 운영체제를 모니터링하다가 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 상기 호스트 운영체제 파일 보호부로 문의하는 상기 가상화 드라이버를 더 포함하고, 상기 호스트 운영체제 파일 보호부는, 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 문의 받으면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 판단한 결과를 상기 가상화 드라이버로 송신할 수 있다.
이때, 상기 가상화 드라이버는, 상기 호스트 운영체제 파일 보호부에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 상기 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행할 수 있다.
이때, 상기 호스트 운영체제 파일 보호부는, 상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
본 발명은 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하고, 상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하고, 상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 파일을 보호하는 장치 및 방법에 관한 것으로, 기설정된 그룹에 포함된 파일 중에서 기설정된 파일 목록에 포함된 파일의 수정과 삭제로부터 파일을 보호할 수 있다.
도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 파일을 보호하는 장치의 구성을 도시한 도면이다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 3은 일 실시예에 따른 장치에서 기설정된 그룹에 포함된 파일을 수정 또는 삭제하기 전에 허가 받는 과정을 도시한 흐름도이다.
도 4는 일 실시예에 따른 장치에서 파일 목록에 파일을 등록하는 과정을 도시한 흐름도이다.
도 5는 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 수정하는 과정을 도시한 흐름도이다.
도 6은 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 삭제하는 과정을 도시한 흐름도이다.
도 7은 일 실시예에 따른 가상화 시스템에서 기설정된 그룹에 포함된 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
이하에서는, 본 발명의 일 실시 예에 따른 해쉬 관리를 통해 파일을 보호하는 장치 및 방법을 첨부된 도 1 내지 도 8을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 파일을 보호하는 장치의 구성을 도시한 도면이다.
도 1을 참조하면, 보안 장치는 크게 게스트 운영체제 시스템(OS; Operating System)(110), 호스트 운영체제 시스템(OS; Operating System)(120) 및 로컬 단말기(130)를 포함하여 구성될 수 있다.
게스트 OS(110)은 IP 주소를 가지고 네트워크에 연결되며, 호스트 OS(120)는 IP 주소를 가지고 있지 않거나, IP 주소를 가지고 있다 하더라도 호스트 OS(120)의 제어는 로컬 네트워크를 통한 로컬 단말기(130)를 통해서만 제어가 가능하도록 할 수 있다.
네트워크를 통해서 게스트 OS(110)로 전송되는 데이터는 호스트 OS(120)를 통해서 게스트 OS(110)로 전달되지만, 호스트 OS(120)는 IP 주소를 가지고 있지 않거나, IP 주소를 가지고 있다 하더라도 허가된 로컬 단말기(130)를 통해서만 제어가 가능하므로, 외부에서는 호스트 OS(120)에 직접적으로 접근할 수 없도록 할 수 있다.
즉, 호스트 OS(120)는 IP 주소의 보유 여부와 상관없이 허가된 단말기를 통해서만 접근할 수 있다. 따라서, 외부에서 호스트 OS(120)로 직접적인 접근이 원천적으로 봉쇄할 수 있도록 IP 주소를 가지고 있지 않는 것이 더 바람직하겠다.
보다 구체적으로 게스트 OS(110)은 가상화 드라이버(Para-virtualized Agent)(112), 파일 시스템(114)을 포함하고, 호스트 OS(120)는 호스트 운영체제(OS) 파일 보호부(122), 분석부(Parser)(124), 파일 관리부(126)를 포함하여 구성될 수 있다.
가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)를 통해 분석부(124)로 제공하여 무결성 여부를 확인한다. 이때, 에이전트의 메모리 영역 정보에 해당하는 메모리 주소는 커널의 구조체(structure) 및 API(Application Programming Interface)를 통해 획득할 수 있다.
가상화 드라이버(112)는 운영체제에 관계없이 구현될 수 있으나, 운영체제에 따라 구현 방법이 달리질 수 있다. 예를 들어, 윈도우(Windows)의 경우 파일 시스템 미니필터 드라이버(file system minifilter driver)를 통해 가상화 드라이버(112)가 구현될 수 있고, 리눅스(Linux)의 경우 커널 모듈(kernel module)을 통해 가상화 드라이버(112)가 구현될 수 있다.
분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증 결과를 호스트 운영체제 파일 보호부(122)로 제공한다.
호스트 운영체제 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역의 변조를 차단한다.
또한, 호스트 운영체제 파일 보호부(122)는 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한다.
보다 구체적으로, 호스트 운영체제 파일 보호부(122)는 수신한 가상화 드라이버(112)의 시작 시간과 가상화 드라이버(112)가 할당된 메모리 영역의 주소를 이용하여 가상화 드라이버(112)가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
그리고, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역의 주소와 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 주소를 이용해서 해당 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 2를 참조하면, 호스트 운영체제 파일 보호부(122)는 페이지 테이블 엔트리(page table entry)에서 음영으로 표시한 접근 권한(RWX bits)을 쓰기금지에 해당하는 읽기(read)로 수정하여 변조를 차단할 수 있다.
한편, 메모리 영역에 대한 변조를 차단하기 위해서 인텔의 경우 메모리 가상화 기술인 Extended Page Table(EPT)를 활용하고, AMD의 경우 Nested Page Tables(NPT)를 활용할 수 있다.
다시 도1의 설명으로 돌아와서, 가상화 드라이버(112)는 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 호스트 운영체제 파일 보호부(122)로 문의할 수 있다.
이때, 가상화 드라이버(112)는 기설정된 그룹에 포함된 파일을 기설정된 해쉬함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 호스트 운영체제 파일 보호부(122)로 송신하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의할 수 있다.
호스트 운영체제 파일 보호부(122)는 가상화 드라이버(112)로부터 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 파일 관리부(126)를 통해서 허가 여부를 확인하고 판단 결과에 따라 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하고 판단결과를 가상화 드라이버(112)로 송신한다.
기설정된 그룹에 포함된 파일은 파일헤더 또는 확장자로 구분할 수 있으며, 실행 파일을 기설정된 그룹으로 분류할 수 있다. 이때, 실행 파일은 파일헤더가 PE(실행파일 헤더)구조 이거나 확장자가 EXE, DLL, SYS 등의 파일이 실행파일에 해당할 수 있다.
파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단할 수 있다.
파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있지 않으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
보다 구체적으로, 파일 관리부(126)는 가상화 드라이버(112)로부터 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 기설정된 파일 목록에 계산된 해쉬값이 포함되어 있는지 확인하고, 계산된 해쉬값이 기설정된 파일 목록에 포함되어 있지 않으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 계산된 해쉬값이 기설정된 파일 목록에 포함되어 있으면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단할 수 있다.
이때, 기설정된 파일 목록은 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 파일을 식별할 수 있는 식별자 정보 또는 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
한편, 파일 관리부(126)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한(예를 들어, 허가된 로컬 단말기(130)를 통해서) 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 등록할 파일에 대응하는 해쉬값으로 기설정된 파일 목록에 저장할 수 있다.
파일 관리부(126)는 호스트 운영체제(120)에서 허가된 로컬 네트워크를 통해서(예를 들어, 허가된 로컬 단말기(130)를 통해서) 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 수정된 파일의 해쉬값으로 수정할 수 있다.
파일 관리부(126)는 호스트 운영체제(120)에서 허가된 로컬 네트워크를 통해서(예를 들어, 허가된 로컬 단말기(130)를 통해서) 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제할 수 있다.
가상화 드라이버(112)는 호스트 운영체제 파일 보호부(122)에서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행하도록 할 수 있다.
한편, 가상화 드라이버(112)와 호스트 운영체제 파일 보호부(122)는 하이퍼콜 인터페이스(hypercall interface)를 이용해서 통신할 수 있다.
이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 3은 일 실시예에 따른 장치에서 기설정된 그룹에 포함된 파일을 수정 또는 삭제하기 전에 허가 받는 과정을 도시한 흐름도이다.
도 3을 참조하면, 가상화 드라이버(112)에서 게스트 운영체제(110)를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면(310), 가상화 드라이버(112)에서 호스트 운영체제(120)의 호스트 운영체제 파일 보호부(122)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(320).
이때, 기설정된 그룹에 포함된 파일은 파일헤더 및 확장자로 구분할 수 있으며, 실행 파일을 기설정된 그룹으로 분류할 수 있다. 실행 파일은 파일헤더가 PE(실행파일 헤더)구조 이거나 확장자가 EXE, DLL, SYS 등의 파일이 실행파일에 해당할 수 있다.
보다 구체적으로 320단계는 가상화 드라이버(112)에서 기설정된 그룹에 포함된 파일을 기설정된 해쉬함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 호스트 운영체제 파일 보호부(122)로 송신하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의할 수 있다.
호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)를 통해서 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 존재하는지 여부를 확인한다(330).
330단계의 확인결과 호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)의 판단결과 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있으면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않고 차단으로 판단하고, 가상화 드라이버(112)로 판단결과를 제공하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단한다(340).
330단계의 확인결과 호스트 운영체제 파일 보호부(122)에서 파일 관리부(126)의 판단결과 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있지 않으면, 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하는 것으로 판단하고, 가상화 드라이버(112)로 판단결과를 제공하여 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가한다(350).
330단계는 호스트 운영체제(120)의 파일 관리부(126)에서 기설정된 파일 목록에 가상 드라이버(112)에서 송신한 계산된 해쉬값이 포함되어 있는지 확인하는 것으로, 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 존재하는지 여부를 확인할 수 있다. 이때, 기설정된 파일 목록은 수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고, 파일을 식별할 수 있는 식별자 정보 또는 파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
한편 도 3에는 도시되어 있지 않지만, 호스트 운영체제(120)의 분석부(124)에서 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하고, 호스트 운영체제 파일 보호부(122)에서 분석부(124)의 무결성 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한 후에, 게스트 운영체제(110)와 가상화 드라이버(112)를 실행할 수 있다.
도 4는 일 실시예에 따른 장치에서 파일 목록에 파일을 등록하는 과정을 도시한 흐름도이다.
도 4를 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 파일의 등록을 요청받으면(410), 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인한다(420).
420단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 파일 관리부(126)는 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 등록할 파일에 대응하는 해쉬값을 기설정된 파일 목록에 저장한다(430).
420단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이 아니면, 파일 관리부(126)는 파일의 등록 요청을 차단한다(440).
도 5는 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 수정하는 과정을 도시한 흐름도이다.
도 5를 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 포함된 파일에 대한 수정을 요청받으면(510), 사전에 허가된 로컬 네트워크를 통한 수정 요청인지 확인한다(520).
520단계의 확인결과 수정 요청이 사전에 허가된 로컬 네트워크를 통한 수정 요청이면, 파일 관리부(126)는 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 수정된 파일의 해쉬값으로 수정한다(530).
520단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 수정 요청이 아니면, 파일 관리부(126)는 파일의 수정 요청을 차단한다(540).
도 6은 일 실시예에 따른 장치에서 파일 목록에 포함된 파일을 삭제하는 과정을 도시한 흐름도이다.
도 6을 참조하면, 파일 관리부(126)는 기설정된 파일 목록에 포함된 파일에 대한 삭제를 요청받으면(610), 사전에 허가된 로컬 네트워크를 통한 삭제 요청인지 확인한다(620).
620단계의 확인결과 수정 요청이 사전에 허가된 로컬 네트워크를 통한 삭제 요청이면, 파일 관리부(126)는 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제한다(630).
620단계의 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 삭제 요청이 아니면, 파일 관리부(126)는 파일의 삭제 요청을 차단한다(640).
도 7은 일 실시예에 따른 가상화 시스템에서 기설정된 그룹에 포함된 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
도 7을 참조하면, 가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)로 송신한다(710).
호스트 OS 파일 보호부(122)는 시작 시간과 가상화 드라이버의 메모리 영역 정보를 분석부(124)로 제공한다(712).
분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증한다(714).
그리고, 분석부(124)는 무결성을 판단한 결과를 호스트 OS 파일 보호부(122)로 제공한다(716).
호스트 OS 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역에 쓰기가 금지되도록 읽기전용(read only)로 설정하여 변조를 차단한다(718).
이후, 가상화 드라이버(112)는 게스트 운영체제(110)를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면(720), 호스트 운영체제(120)의 호스트 운영체제 파일 보호부(122)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(722).
호스트 운영체제 파일 보호부(122)는 파일 관리부(126)로 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의한다(724).
파일 관리부(126)는 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단한다(726).
파일 관리부(126)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과를 호스트 운영체제 파일 보호부(122)로 응답한다(728).
호스트 운영체제 파일 보호부(122)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과를 가상화 드라이버(112)로 응답한다(730).
가상화 드라이버(112)는 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단한다(732).
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
110; 게스트 운영체제 시스템
112; 가상화 드라이버
114; 파일 시스템
120; 호스트 운영체제 시스템
122; 호스트 운영체제 파일 보호부
124; 분석부
126; 파일 관리부
130; 로컬 단말기

Claims (20)

  1. 가상화 드라이버에서 게스트 운영체제를 모니터링하다가 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계;
    상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계;
    상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계; 및
    상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부에 대한 판단결과에 따라서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 차단하는 단계
    를 포함하고,
    상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는,
    상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고,
    상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
    파일을 보호하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 기설정된 그룹에 포함된 파일은,
    실행 파일인 것을 특징으로 하는
    파일을 보호하는 방법.
  4. 제1항에 있어서,
    상기 가상화 드라이버에서 호스트 운영체제로 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하는 단계는,
    상기 가상화 드라이버에서 상기 기설정된 그룹에 포함된 파일을 기설정된 해쉬 함수를 이용해서 해쉬하여 계산된 해쉬값을 생성하고, 상기 계산된 해쉬값을 상기 호스트 운영체제로 송신하여 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의하고,
    상기 호스트 운영체제에서 상기 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 단계는,
    상기 호스트 운영체제의 파일 관리부에서 수정 또는 삭제가 차단되어야 하는 파일의 해쉬값이 저장된 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
    파일을 보호하는 방법.
  5. 제4항에 있어서,
    상기 기설정된 파일 목록은,
    수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고,
    상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함하는
    파일을 보호하는 방법.
  6. 제1항에 있어서,
    상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하는 단계 이전에,
    상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하는 단계; 및
    확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값을 상기 기설정된 파일 목록에 저장하는 단계
    를 더 포함하는 파일을 보호하는 방법.
  7. 제1항에 있어서,
    상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하는 단계;
    상기 기설정된 그룹에 포함된 파일을 수정하면 기설정된 해쉬 함수를 이용해서 상기 수정된 파일의 해쉬값을 계산하는 단계; 및
    상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는 단계
    를 더 포함하는 파일을 보호하는 방법.
  8. 제1항에 있어서,
    상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하는 단계; 및
    상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는 단계
    를 더 포함하는 파일을 보호하는 방법.
  9. 제1항에 있어서,
    상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 상기 가상화 드라이버에 대한 무결성을 검증하는 단계;
    검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계; 및
    상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계
    를 더 포함하는 파일을 보호하는 방법.
  10. 기설정된 그룹에 포함된 파일이 기설정된 파일 목록에 포함되어 있는지 여부를 이용해서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제의 허가 여부를 판단하는 파일 관리부; 및
    가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가를 문의 받으면, 상기 파일 관리부를 통해서 허가 여부를 확인하고 판단 결과에 따라 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하거나 차단하는 호스트 운영체제 파일 보호부
    를 포함하고,
    상기 파일 관리부는,
    상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고,
    상기 기설정된 그룹에 포함된 파일이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
    파일을 보호하는 장치.
  11. 삭제
  12. 제10항에 있어서,
    상기 기설정된 그룹에 포함된 파일은,
    실행 파일인 것을 특징으로 하는
    파일을 보호하는 장치.
  13. 제10항에 있어서,
    상기 파일 관리부는,
    상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 계산된 해쉬값을 수신하면 상기 기설정된 파일 목록에 상기 계산된 해쉬값이 포함되어 있는지 확인하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있지 않으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하고, 상기 계산된 해쉬값이 상기 기설정된 파일 목록에 포함되어 있으면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않음으로 판단하는
    파일을 보호하는 장치.
  14. 제13항에 있어서,
    상기 기설정된 파일 목록은,
    수정 또는 삭제가 차단되어야 하는 파일에 대응하는 해쉬값을 저장하고,
    상기 파일을 식별할 수 있는 식별자 정보 또는 상기 파일의 경로 중에서 적어도 하나를 더 포함하는
    파일을 보호하는 장치.
  15. 제10항에 있어서,
    상기 파일 관리부는,
    상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하기 전에, 상기 기설정된 파일 목록에 파일의 등록을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 등록 요청인지 확인하고, 확인결과 등록 요청이 사전에 허가된 로컬 네트워크를 통한 등록 요청이면, 기설정된 해쉬 함수를 이용해서 수정할 파일의 해쉬값을 계산하여 상기 등록할 파일에 대응하는 해쉬값으로 상기 기설정된 파일 목록에 저장하는
    파일을 보호하는 장치.
  16. 제10항에 있어서,
    상기 파일 관리부는,
    상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 수정 요청을 수신하면, 기설정된 해쉬 함수를 이용해서 수정된 파일의 해쉬값을 계산하고, 상기 기설정된 파일 목록에 저장된 수정전 파일의 해쉬값을 상기 수정된 파일의 해쉬값으로 수정하는
    파일을 보호하는 장치.
  17. 제10항에 있어서,
    상기 파일 관리부는,
    상기 호스트 운영체제에서 허가된 로컬 네트워크를 통해서 상기 기설정된 파일 목록에 포함된 파일에 대한 삭제 요청을 수신하면, 상기 기설정된 파일 목록에서 삭제 요청받은 파일에 대응하는 해쉬값을 삭제하는
    파일을 보호하는 장치.
  18. 제10항에 있어서,
    게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부; 및
    상기 게스트 운영체제를 모니터링하다가 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제 요청을 감지하면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 상기 호스트 운영체제 파일 보호부로 문의하는 상기 가상화 드라이버를 더 포함하고,
    상기 호스트 운영체제 파일 보호부는,
    검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 상기 가상화 드라이버로부터 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 문의 받으면, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제에 대한 허가 여부를 판단한 결과를 상기 가상화 드라이버로 송신하는
    파일을 보호하는 장치.
  19. 제18항에 있어서,
    상기 가상화 드라이버는,
    상기 호스트 운영체제 파일 보호부에서 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하지 않으면 상기 기설정된 그룹에 포함된 파일로의 접근을 차단하고, 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 허가하면 상기 기설정된 그룹에 포함된 파일에 대한 수정 또는 삭제를 수행하는
    파일을 보호하는 장치.
  20. 제18항에 있어서,
    상기 호스트 운영체제 파일 보호부는,
    상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단하는
    파일을 보호하는 장치.
KR1020200040463A 2020-04-02 2020-04-02 해쉬 관리를 통해 파일을 보호하는 장치 및 방법 KR102323732B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200040463A KR102323732B1 (ko) 2020-04-02 2020-04-02 해쉬 관리를 통해 파일을 보호하는 장치 및 방법
PCT/KR2021/003561 WO2021201483A1 (ko) 2020-04-02 2021-03-23 해쉬 관리를 통해 파일을 보호하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200040463A KR102323732B1 (ko) 2020-04-02 2020-04-02 해쉬 관리를 통해 파일을 보호하는 장치 및 방법

Publications (2)

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

Family

ID=77927639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200040463A KR102323732B1 (ko) 2020-04-02 2020-04-02 해쉬 관리를 통해 파일을 보호하는 장치 및 방법

Country Status (2)

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101724089B1 (ko) * 2013-04-18 2017-04-06 주식회사 페이스콘 파일 보안 방법 및 이를 위한 장치
KR101673774B1 (ko) * 2015-06-01 2016-11-08 주식회사 수산아이앤티 가상화 시스템에서 파일 입출력 제어를 위한 방법
US20190042781A1 (en) * 2017-08-04 2019-02-07 Bitdefender IPR Management Ltd. Secure Storage Device
KR20190021673A (ko) * 2017-08-23 2019-03-06 주식회사 수산아이앤티 랜섬웨어 방지 장치 및 방법
KR102058493B1 (ko) * 2018-05-25 2019-12-23 주식회사 수산아이앤티 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법

Also Published As

Publication number Publication date
WO2021201483A1 (ko) 2021-10-07
KR20210123121A (ko) 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 (ko) 랜섬웨어 방지 장치 및 방법
KR102058493B1 (ko) 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
TW201830282A (zh) 計算機系統及檔案存取控制方法
EP3178032B1 (en) Embedding secret data in code
Schwarzl et al. Remote memory-deduplication attacks
US11500787B2 (en) Enforcing code integrity using a trusted computing base
CN113448682A (zh) 一种虚拟机监控器加载方法、装置及电子设备
US9398019B2 (en) Verifying caller authorization using secret data embedded in code
CN107562514B (zh) 一种物理内存访问控制与隔离方法
KR102323732B1 (ko) 해쉬 관리를 통해 파일을 보호하는 장치 및 방법
US10809924B2 (en) Executable memory protection
CN113515779A (zh) 文件的完整性校验方法、装置、设备及存储介质
US11934857B2 (en) Supporting execution of a computer program by using a memory page of another computer program
KR102084778B1 (ko) 접근 통제 방법 및 그 장치
WO2024078159A1 (zh) 完整性度量方法及装置
CN115982699A (zh) 基于安全内存的恶意攻击防御方法、装置、设备及介质

Legal Events

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