KR102232919B1 - 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템 - Google Patents

가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템 Download PDF

Info

Publication number
KR102232919B1
KR102232919B1 KR1020200099646A KR20200099646A KR102232919B1 KR 102232919 B1 KR102232919 B1 KR 102232919B1 KR 1020200099646 A KR1020200099646 A KR 1020200099646A KR 20200099646 A KR20200099646 A KR 20200099646A KR 102232919 B1 KR102232919 B1 KR 102232919B1
Authority
KR
South Korea
Prior art keywords
file
target server
area
mutation
stored
Prior art date
Application number
KR1020200099646A
Other languages
English (en)
Inventor
김연우
조성원
이원일
Original Assignee
(유)아홉
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (유)아홉 filed Critical (유)아홉
Priority to KR1020200099646A priority Critical patent/KR102232919B1/ko
Application granted granted Critical
Publication of KR102232919B1 publication Critical patent/KR102232919B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템이 제공된다. 상기 자가 변이 시스템은 복수의 변이 프로그램과 보호 영역 및 에이전트로 구성된 타깃 서버; 및 상기 타깃 서버와 통신 가능하게 연결되고, 변이코드 파일을 상기 에이전트로 전달하도록 구성된 변이 엔진 서버를 포함하고, 상기 타깃 서버는 상기 에이전트를 실행하여 상기 보호 영역으로의 스토리지 가상화 및 커스템 파일 시스템의 동작 여부 검증을 수행하고, 접근 가능한 사용자 인증 및 소프트웨어를 식별을 수행하고, 스케줄러에 의해 일정 주기 마다 상기 변이엔진 서버와 통신하여 상기 변이코드 파일을 다운로드하고, 레포지토리 모듈에 의해 상기 다운로드 된 파일을 상기 보호 영역에 해당하는 특정 위치에 저장할 수 있다.

Description

가상화 및 COW 파일 시스템 기술을 이용한 자가 변이 시스템{Self-mutation system using virtualization and COW file system technology}
본 발명은 가상화 및 COW (Copy On Write)파일 시스템 기술을 이용한 자가 변이 시스템에 관한 것이다. 보다 상세하게는, 가상화 및 COW 파일 시스템 기술을 이용한 자가 변이 시스템의 안전한 보호 영역 구성 및 그 접근 방법과 그에 따른 데이터 저장 장치에 대한 것이다.
소프트웨어의 실행 코드를 안전하게 보호하기 위한 자가 변이 시스템을 고려할 수 있다. 이러한 자가 변이 시스템을 통한 소프트웨어의 실행 코드를 안전하게 보호하는 과정은 주로 에이전트를 통해 이루어질 수 있다. 이와 관련하여, 원격에 존재하는 변이 엔진 서버로부터 기 설정된 스케줄에 따라 소프트웨어를 다운로드받을 수 있다. 이와 관련하여, 다운로드된 소프트웨어는 임시로 저장되지만 교체 시 오동작 또는 복원을 위해 원본을 별도로 저장해 두어야 하는 문제점이 있다.
또한, 소프트웨어 코드의 안전한 보호 목적을 위하여 저장된 변이 코드의 보안성을 향상시킬 필요가 있다.
따라서, 본 발명의 목적은 전술한 문제를 해결하기 위해, 가상화 및 COW (Copy On Write)파일 시스템 기술을 이용한 자가 변이 시스템을 제공함에 있다.
또한, 본 발명의 목적은 가상화 및 COW 파일 시스템 기술을 이용한 자가 변이 시스템의 안전한 보호 영역 구성 및 그 접근 방법과 그에 따른 데이터 저장 장치를 제공하기 위한 것이다.
또한, 본 발명의 목적은 소프트웨어 코드의 안전한 보호 목적을 달성하기 위하여 자가 변이 시스템이 저장된 변이 코드의 보안성을 제공하기 위한 것이다.
본 발명에 따른 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템이 제공된다. 상기 자가 변이 시스템은 복수의 변이 프로그램과 보호 영역 및 에이전트로 구성된 타깃 서버; 및 상기 타깃 서버와 통신 가능하게 연결되고, 변이코드 파일을 상기 에이전트로 전달하도록 구성된 변이 엔진 서버를 포함하고, 상기 타깃 서버는 상기 에이전트를 실행하여 상기 보호 영역으로의 스토리지 가상화 및 커스템 파일 시스템의 동작 여부 검증을 수행하고, 접근 가능한 사용자 인증 및 소프트웨어를 식별을 수행하고, 스케줄러에 의해 일정 주기 마다 상기 변이엔진 서버와 통신하여 상기 변이코드 파일을 다운로드하고, 레포지토리 모듈에 의해 상기 다운로드 된 파일을 상기 보호 영역에 해당하는 특정 위치에 저장할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 파일 시스템의 파일 저장 모듈을 호출하여 상기 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별하고, 상기 파일에 대한 저장 경로 및 상기 파일에 대한 암호화 여부를 결정하고, 상기 파일을 상기 보호 영역의 상기 저장 경로에 저장할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 파일 시스템의 파일 읽기 모듈을 호출하여 상기 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별하고, 상기 파일에 대한 저장 경로 및 상기 파일에 대한 복호화 여부를 결정하고, 상기 보호 영역에 저장된 파일에 대한 읽기 작업을 수행할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 파일이 상기 보호 영역에 저장되는 경우, 상기 보호 영역에 대한 볼륨 가상화를 사용자 공간(user space)에서 수행하고, 상기 파일 시스템과 연관된 필터링 모듈의 적재(loading)를 커널 공간(kernel space)에서 수행할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 파일의 중요도에 따라 상기 파일을 상기 보호 영역 또는 일반 영역에 저장할지 여부를 결정하고, 상기 파일이 상기 보호 영역에 저장되는 것으로 결정된 경우, 상기 파일을 에 대한 가상화 이미지 파일을 생성하고 상기 가상화 이미지 파일을 상기 보호 영역의 특정 위치에 마운트하여 보호 영역 볼륨 마운트를 수행할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 가상화 이미지 파일에 대한 사용이 완료된 경우, 상기 보호 영역 볼륨 마운트를 해제하여 상기 보호 영역을 외부에서 인식할 수 없도록 제어하고, 상기 파일이 상기 일반 영역에 저장되는 것으로 결정된 경우, 상기 파일이 저장될 일반 영역에 대한 물리적 볼륨 마운트를 수행할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 사용자 공간에서 상기 파일에 대한 무결성 검증 후 상기 파일에 메타 정보 및 인증 정보를 추가하고, 상기 파일을 저장하기 위한 파일 저장 모듈을 호출하고, 커널 공간에서 상기 에이전트를 실행하여 상기 파일에 대한 소유자 인증을 수행할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 소유자 인증이 성공하면, 상기 커널 공간에서 상기 보호 영역의 지정 경로에 상기 파일을 암호화하여 저장하고, 상기 소유자 인증이 실패하면, 상기 사용자 공간에서 기본 파일저장 함수를 호출하여 상기 파일을 일반 영역에 저장할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 파일에 대한 읽기 작업을 수행하기 위해 사용자 공간에서 파일 읽기 모듈을 호출하고, 커널 공간에서 상기 파일과 연관된 메타 정보 및 인증 정보를 식별하고, 상기 에이전트를 실행하여 상기 파일에 대한 소유자 인증을 수행하고, 상기 소유자 인증이 성공하면, 상기 커널 공간에서 상기 파일에 대한 무결성 검증을 수행하여 상기 보호 영역의 지정 경로에 저장된 상기 파일에 대한 복호화 여부를 결정할 수 있다.
일 실시 예에 따르면, 상기 타깃 서버는 상기 소유자 인증이 실패하면, 상기 파일에 대한 읽기 작업을 수행하지 않고 시스템 파일 읽기 작업을 사용자 공간에서 수행하고, 상기 무결성 검증에 따라 상기 파일을 복호화하기로 결정한 경우, 상기 보호 영역의 지정 경로에 저장된 파일에 대한 읽기 작업을 상기 사용자 공간에서 수행할 수 있다.
본 발명에 따르면, 자가 변이 시스템 구성 요소에서 레포지토리 모듈을 보안적인 측면에서 안전하게 설계 및 구현하는 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 주기적 또는 비주기적으로 변이 코드 파일을 수신하고, 타깃 서버 환경의 특정 스토리지 영역에 안전하게 저장할 수 있다.
또한, 본 발명에 따르면, 수신되어 특정 스토리지 영역에 저장된 파일의 안전한 저장 및 암호화/복호화 방법을 제공할 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
도 1a는 본 발명에 따른 자가 변이 시스템의 구성도를 나타낸다.
도 1b는 본 발명에 따른 자가 변이 시스템과 관련하여, 사용자 공간과 커널 공간으로 구성된 COW 파일 시스템의 일 예시를 나타낸다.
도 1c는 본 발명에 따른 커스템 파일 시스템의 사용자 공간과 커널 공간이 VFS를 통해 인터페이스되는 구성을 나타낸다.
도 2는 본 발명에 따른 안전한 파일 저장을 위한 가상의 보호 영역 개념도를 나타낸다.
도 3은 본 발명에 따른 스토리지 가상화 및 암호화 기술을 적용한 파일 보호 방법 및 주요 기능을 수행하는 자가 변이 시스템의 구성을 나타낸다.
도 4는 본 발명에 따른 보호영역, 일반 영역 구분 및 파일 선택 저장과 연관된 스토리지 가상화 구현 방법을 수행하는 자가 변이 시스템의 개념도를 나타낸다.
도 5는 본 발명에 따른 자가 변이 시스템에서 파일의 안전한 저장 프로세스를 수행하는 흐름도를 나타낸다.
도 6은 본 발명에 따른 자가 변이 시스템의 필터 파일 시스템의 동작 절차를 나타낸다.
도 7은 본 발명에 따른 에이전트 다운로더 모듈에서 다운로드 받은 변이코드 파일을 저장하는 일련의 과정을 나타낸다.,
도 8은 본 발명에 따른 파일 읽기 모듈과 연관된 파일 시스템에서의 파일 읽기를 수행하는 일련의 과정을 나타낸다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제1, 제2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 모듈, 블록 및 부는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야에 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명한다. 하기에서 본 발명의 실시 예를 설명함에 있어, 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
이하에서는, 본 발명에 따른 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템에 대해 설명한다. 구체적으로, 가상화 및 COW 파일 시스템 기술을 이용한 자가 변이 시스템의 안전한 보호 영역 구성 및 그 접근 방법과 그에 따른 데이터 저장 장치가 개시된다.
이와 관련하여, 도 1a는 본 발명에 따른 자가 변이 시스템의 구성도를 나타낸다. 한편, 도 1b는 본 발명에 따른 자가 변이 시스템과 관련하여, 사용자 공간과 커널 공간으로 구성된 COW 파일 시스템의 일 예시를 나타낸다. 또한, 도 1c는 본 발명에 따른 커스템 파일 시스템의 사용자 공간과 커널 공간이 VFS를 통해 인터페이스되는 구성을 나타낸다.
본 발명에서는 자가 변이 시스템 구성 요소. 특히 레포지토리 모듈을 보안적인 측면에서 안전하게 설계 및 구현하는 방법에 대한 것이다.
이와 관련하여, 변이코드(파일)은 에이전트 측에서는 원격에서 수신하는 것이므로, 1차적으로 “변이 엔진 서버”와의 보안 통신 채널을 통해 다운로드 받게 된다.
에이전트의 “다운로더”모듈은 변이 엔진 서버의 “제어 및 통신부”와 보안 채널을 생성하여, 주기적 또는 비주기적으로 변이 코드 파일을 수신한다. 수신한 파일은 “타깃 서버 환경”의 특정 스토리지 영역에 저장된다. 본 발명에서는 이러한 수신한 파일의 안전한 저장 및 암호화 방안을 기술하고자 한다.
도 1a를 참조하면, 타깃 서버(1000)는 복수의 변이 프로그램과 보호 영역(1210) 및 에이전트(11000)로 구성될 수 있다. 한편, 변이 엔진 서버(2000)는 원본 코드 관리부(2100), 난독화 엔진(2200), 변이코드 관리부(2300) 및 제어 및 통신부(2400)로 구성될 수 있다. 변이 엔진 서버(2000)는 타깃 서버(1000)와 통신 가능하게 연결되고, 변이코드 파일을 에이전트(1100)로 전달하도록 구성될 수 있다.
타깃 서버(1000)는 에이전트를 실행하여 보호 영역으로의 스토리지 가상화 및 커스템 파일 시스템의 동작 여부 검증을 수행할 수 있다. 이와 관련하여, 도 1b를 참조하면, 스토리지 가상화는 다음과 같이 수행될 수 있다.
가상화 기술은 물리적 컴퓨팅 자원을 추상화 시켜 가변적으로 할당하여 사용하는 것으로 자원의 효율성을 높이는 데 있다. 스토리지 가상화는 여러가지 의도를 가지고 사용하게 되는데, 본 발명의 경우는 격리된 공간을 확보하여 외부 접근을 차단하는 데 있다. 이를 구현하는 기술로는 iSCSI, NFS, CIFS(SMB) 등의 기술을 사용하는데, iSCSI의 경우는 블록 디바이스를 NFS, CIFS는 파일 시스템을 제공하는 기술이다. 블록 디바이스는 흔히 하드 디스크라 불리는 것으로 운영체제에 할당되는 것이다. 가상화 기술에서는 컨테이너라 불리는 추상화된 운영체제에 할당되는데, 물리적인 운영체제와 달리 컨테이너는 프로세스의 실행으로 구별된다.
호스트 운영체제에 하이퍼바이저에 의해 게스트 운영체제를 구동하며, 자원을 할당하여 사용하는 구조가 되는데, 게스트 운영체제는 각각 컨테이너 또는 프로세스로 격리되어 구동된다. 격리된 실행 공간을 보장하기 위해 스토리지 가상화가 필요하게 되는데, 흔히 COW 파일 시스템이 이 요건을 충족하게 된다. COW 파일 시스템은 원본으로부터 복사(Copy)를 하고 변경되는 정보를 쓰는(Write) 저장 방식으로서, 원본을 수정하지 않고 변경된 정보만 저장하는 것이 COW(Copy on Write) 기법이라 지칭할 수 있다. 컨테이너는 가상화 이미지로부터 COW 방식으로 생성된다. 즉, 컨테이너 자체로 디스크 공간을 점유하지 않으며 변경된 정보만 기록하기 때문에 공간 활용에 매우 유용한 기법으로 활용할 수 있다.
커스템 파일 시스템의 일 예시로, COW 방식 파일시스템에 대해 설명하면 다음과 같다. 커스템 파일 시스템은 FUSE(File System in UserSpace)로 지칭될 수 있다. 파일 시스템은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 및 조직하는 체제를 지칭한다. 물리적 파일 시스템은 통상적으로 하드 디스크나 CD-ROM 같은 실제 자료 보관 장치를 사용하여 파일의 물리적 소재를 관리하는 것을 가리킨다 일 예로, FAT32, NTFS, EXT 등이 물리적 파일 시스템에 해당할 수 있다. 반면에, 커스템 파일 시스템은 소프트웨어적 파일 시스템에 해당한다. 네트워크 프로토콜(NFS, SMB 등)을 수행하는 클라이언트를 통해 파일 서버 상의 자료에 접근을 제공하는 방식과 가상 형태로 접근 수단만이 존재하는 방식(procfs 등)도 커스텀 파일 시스템의 범위에 포함될 수 있다. 따라서, 커스텀 파일 시스템은 디렉터리 서비스나 또는 레지스트리와 그 의미가 다르다.
간단히 파일 시스템의 기본은 프로그램으로 작성된 데이터를 하드 디스크에 어떻게 저장하고 불러올 지에 대한 방법을 정의하는 것이다. 이와 관련하여, 파일 시스템의 일 예시로 리눅스 파일 시스템을 고려하면 도 1b와 같이 구성될 수 있다. 도 1b를 참조하면, 사용자 공간과 별도로 구성되는 커널 공간은 SCI (System-call interface), VFS (Virtual file-system switch), 복수의 서브 파일 시스템들(FS0, FS1, ..., FSN), 블록 계층 및 디바이스 드라이버들로 구성될 수 있다.
파일 연산이 처리되는 흐름과 관련하여, 파일 시스템과 관련된 함수(open, close, read, write 등)을 호출할 때 어떤 방식으로 계층적으로 처리되는 지 검토하기로 한다. 예를 들어 리눅스에서 # cat <파일명> 으로 파일의 내용을 불러들여 화면에 출력할 수 있는데, 이 때 호출되는 “”함수의 흐름은 다음곽 ㅤㅏㅌ. Read 함수 API를 사용하면 sys_read 라는 system call 을 하는데, 이 때 둘 간의 관계를 연결하는 게 GLIBC라는 것이다. 즉, sys_read 시스템 콜을 GLIBC가 래핑(wrapping) 하여 read 함수로 사용자에게 제공하는 것이다. 이렇게 호출된 sys_read 함수는 VFS의 vfs_read 함수를 호출하게 되고, vfs_read가 각 파일 시스템의 read operation 읽기 동작에 매핑된 동작을 수행한다.
vfs_read가 각 파일 시스템의 read operation 읽기 동작에 매핑된 동작을 수행함에 따라, VFS가 등장한다. 파일 시스템이 여러 종류가 있는데(NTFS, EXT, FAT 등) 만일 VFS가 없으면 sys_read는 sys_read_for_ntfs, sys_read_for_fat 과 같이 여러 개가 존재해서 특정 파일 시스템에 특정 함수를 사용해야 하는데 이렇게 하는 방법은 복잡하고 불필요하다.
이때, VFS는 사용자가 read 함수를 호출하면 원하는 파일 시스템의 연산, 즉 마운트 되어 있는 파일 시스템의 연산을 호출할 수 있는 인터페이스를 제공하는데 이것이 struct file_operations 라는 것이다. 즉 vfs_read 가 호출되면 file_operations에 등록되어 있는 read 함수가 호출되며, 이 등록된 read 함수는 특정 파일 시스템에서 제공한다. 결론적으로, read -> sys_read -> vfs_read -> file_operations 구조체 안의 read 순으로 호출된다.
한편, 리눅스로 구현되는 커스템 파일 시스템의 인터페이스는 도 1c와 같다. 도 1c를 참조하면, VFS 가상 파일 시스템은 기본적으로 운영체제 마다 양태는 다르지만 구조는 비슷하게 구성되어 있다. 이에 커스텀 파일 시스템을 등록하여 원하는 동작을 하게 하려면 윈도우의 경우는 디바이스 드라이버를 제작해야 하며, 리눅스의 경우 커널 개발을 해야 한다. 특히 리눅스 파일 시스템의 경우는 개방형 구조 및 오픈소스 특성 상 FUSE 라는 것을 제공하여 커널 수준에서 개발하지 않고 사용자 수준에서 개발할 수 있도록 편의를 제공할 수 있다. 윈도우의 경우에서는 디바이스 드라이버를 이용하여 시스템 호출에 대해 후킹(Hooking)을 이용하여 특정 파일 경로에 대한 접근 시 원하는 행위를 하도록 코드를 작성할 수 있다.
한편, 소프트웨어의 실행 코드를 안전하게 보호하기 위한 자가 변이 시스템은 코드를 주기적 또는 비주기적으로 코드를 랜덤화 시켜 타깃 서버에 구동되는 소프트웨어를 구동 중에 실시간 변환시키고자 하는 데 본 특허의 목적이 있다. 이러한 자가 변이 시스템을 통한 소프트웨어의 실행 코드를 안전하게 보호하는 과정은 주로 에이전트를 통해 이루어진다. 이와 관련하여, 원격에 존재하는 “변이 엔진 서버”로부터 미리 랜덤화된 코드를 받아 타깃 서버 환경에서 레포지토리에 저장 후 스케쥴에 따라 소프트웨어를 교체할 수 있다. 이와 관련하여, 임시로 저장되지만 교체 시 오동작 또는 복원을 위해 원본을 저장해 두어야 할 필요가 있다.
자가 변이 시스템이 소프트웨어 코드의 안전한 보호 목적에 비추어 저장된 변이 코드의 보안성에 대한 필요성이 제기되며, 이를 해결하기 위한 것이 본 특허의 목적이다.
따라서, 본 발명에서는 자가 변이 시스템 구성 요소에서 특히 레포지토리 모듈을 보안적인 측면에서 안전하게 설계 및 구현하는 방법에 대한 것이다. 변이코드(파일)은 에이전트 측에서는 원격에서 수신하는 것이므로, 1차적으로 “변이 엔진 서버”와의 보안 통신 채널을 통해 다운로드 받게 된다. 에이전트의 “다운로더”모듈은 변이 엔진 서버의 “제어 및 통신부”와 보안 채널을 생성하여, 주기적 또는 비주기적으로 변이 코드 파일을 수신할 수 있다. 수신한 파일은 “타깃 서버 환경”의 특정 스토리지 영역에 저장된다.
본 발명에서는 이와 같이 수신된 변이코드 파일의 안전한 저장 및 암호화 방안을 기술하고자 한다.
이와 관련하여, 도 2는 본 발명에 따른 안전한 파일 저장을 위한 가상의 보호 영역 개념도를 나타낸다. 도 1a 내지 도 2를 참조하면, 타깃 서버(1000) 환경은 일반적인 운영체제 환경으로서 리눅스, 윈도우, 임베디드 등 다양하게 구성할 수 있으며, 특별히 제한을 두지 아니한다. 보호 영역(1220)은 가상 공간으로 격리된 스토리지 영역에서의 구분된 공간이다. 리눅스 운영체제를 예를 들면 스토리지 가상화 기술을 이용하여 볼륨 (윈도우 디렉토리에 대응)을 동적으로 할당(mount)하거나 해제(unmount)할 수 있다.
가상의 보호 영역(1220)은 할당하기 전이나 해제한 후에는 접근할 수 없다. 일반 영역은 이와 상관없이 접근할 수 있는 경로가 유지되고 파일을 마음대로 읽고 쓸 수 있는 영역이다. 보호 영역(1220)은 개념적인 의미로서 이를 구현하기 위한 기술은 다양하게 존재할 수 있다. 스토리지 가상화, COW 파일 시스템 구현, 파일 암호화, 드라이브 암호화 등이 그러한 예이다.
따라서, 본 발명에 따른 가상화 및 COW 파일 시스템 기술을 이용한 자가 변이 시스템은 "파일"을 안전하게 시스템에 저장하기 위해 시스템에 "보호 영역" 에 해당하는 논리적 저장 공간을 생성한다. 보호 영역(1220)은 "격리성", "기밀성"을 위해 "스토리지 가상화" 기술을 사용한다. 본 발명의 목적은 에이전트(1100)가 실행되는 동안만 보호 영역(1220)이 존재하며, 에이전트(1100)가 종료된 경우 보호 영역(1220)을 임의로 복원할 수 없도록 구성하는 것이다.
또한, 본 발명에서는 보호 영역(1220)에 "접근성", "기밀성"을 위해 "COW 파일 시스템" (커스텀 파일 시스템)을 구현하기 위한 것이다. 따라서, 본 발명에서 보호 영역(1220)에 존재하는 "파일"에 접근하는 모든 프로세스에 대해 에이전트(1100)만 접근 가능하고, "소유자"만 접근 가능하게 구성된다. 따라서, "보호 대상 소프트웨어"별로 "보호 영역"의 특정 공간 (저장 경로)에, "암호화" 하여 저장하거나 읽을 수 있게 한다.
한편, 도 3은 본 발명에 따른 스토리지 가상화 및 암호화 기술을 적용한 파일 보호 방법 및 주요 기능을 수행하는 자가 변이 시스템의 구성을 나타낸다.
도 3을 참조하면, 파일을 보호하기 위해서는 파일 자체를 암호화 하거나 파일이 저장된 공간 자체를 암호화 하는 방법이 있을 수 있다. 개별 파일 자체를 암호화 하는 것은 성능 저하나 관리상의 복잡성이 생길 수 있다. 본 발명에서는 보호 영역을 구분하여 저장된 공간 자체를 암호화 및 가상화 하는 방안을 제안한다.
보호 영역(1220)은 추상적 개념이나 저장하는 목적의 관점에서 스토리지 공간이다. 스토리지 공간에 저장되는 파일은 볼륨 또는 디렉터리로 표현되는 파일 시스템 개념 안에 연결되어 저장된다.
스토리지 가상화는 상기 스토리지 공간을 외부에 노출하지 아니하거나(숨기거나) 접근할 수 없도록 하고자 하는 목적으로 사용된다. COW 파일 시스템 구현은 보호 영역에 접근하는 함수 호출 (Copy) 시 접근 제어의 목적으로 사용한다. 즉 보호 영역에 파일을 읽거나 쓰고자 할 때 주체(프로세스, 사용자)를 식별하여 허용하거나 허용하지 아니할 수 있는 식으로 접근 제어를 구현할 수 있다.
구현 방식에 따라 선택적으로 특정 파일은 암호화할 수 있다. 즉, 중요 파일인 경우만 암호화 시키는 식으로 부하를 줄일 수 있다. 또는 스토리지 가상화 시 관련된 가상화 이미지를 암호화 시킬 수도 있다. 가상화 이미지로부터 볼륨을 생성하는 것을 방지하는 것이다.
에이전트(1100)는 스토리지 공간(1200)의 “보호 영역(1220)”에 접근하여 특정 파일을 읽어 들여 변이 대상 프로그램과 교체할 수 있다. 이때, 사전에 에이전트(1100)의 식별자를 COW 파일 시스템에서 확인 (인증)하여 접근 제어 여부를 결정할 수 있다.
구현에 따라 변이 프로그램이 여러 개인 경우, 접근 권한을 차등 부여하도록 설계할 수 있다. 즉 보호 영역을 변이 프로그램 별로 구분하고, 각각의 구분된 공간에 식별자를 두어 차등적으로 접근할 수 있도록 구현이 가능하다.
도 4는 본 발명에 따른 보호영역, 일반 영역 구분 및 파일 선택 저장과 연관된 스토리지 가상화 구현 방법을 수행하는 자가 변이 시스템의 개념도를 나타낸다. 한편, 도 5는 본 발명에 따른 자가 변이 시스템에서 파일의 안전한 저장 프로세스를 수행하는 흐름도를 나타낸다.
도 4 및 도 5를 참조하면, 본 발명은 타깃 서버 환경의 스토리지 가상화 및 선택적 암호화 기술을 적용하는 데 있다. 도 4를 참조하면, 고정된 가상화 이미지 파일을 생성하고 이를 특정 위치에 마운트 한다. 이를 쉽게 예를 들면 CDROM 이미지를 특정 위치 (예: E 드라이브)에 마운트 시키는 것과 유사하다고 할 수 있다.
가상화 이미지 파일은 처음에 아무런 내용도 존재하지 않은 상태로 구성될 수 있다. 가상화된 이미지 파일은 외부에서 접근할 수 없도록 암호화 하는 것이 필요하다. 암호화를 복호화 시키기 위한 암호화 키는 에이전트에 보관한다. 에이전트에서는 구동 시 또는 파일 저장이 필요한 경우 가상화 이미지 파일을 복호화 시켜 특정 위치에 마운트 하는 식으로 보호 영역을 생성한다. 이미지 파일만 복사해서는 내부 데이터를 알 수 없게 된다.
사용이 완료된 경우 또는 에이전트 실행이 종료되는 경우 이를 다시 해제하여 보호 영역을 숨긴다. 즉 외부에서 보호 영역의 존재를 알 수 없게 된다. 보호 영역을 숨김으로써 외부 또는 내부의 보안 공격 시도에 방어 수단으로 사용할 수 있다.
도 5를 참조하면, 먼저 에이전트가 실행된다. 에이전트가 실행되면 미리 구성한 가상화 이미지를 복호화 하고, 특정 위치에 볼륨을 마운트 한다. 이때, 복호화 방법, 마운트 할 위치, 접근 가능한 식별자 등의 정보를 에이전트가 관리할 수 있도록 설계한다. 윈도우의 경우 레지스트리나 특정 파일로 암호화 하거나 리눅스의 경우 별도 설정 파일로 관리하는 방법을 고려할 수 있다. 볼륨이 마운트 되면 “필터”파일 시스템이 로딩되어 있는 지 확인한다. “필터”파일 시스템의 상세한 동작은 후술한다.
에이전트는 <스토리지 가상화>, <커스텀 파일 시스템>의 동작 여부를 검증하며, 접근 가능한 사용자 및 소프트웨어를 식별한다. 이에 대한 상세한 동작 메커니즘은 후술한다. 스케줄러에 의해 일정 주기 마다 원격 변이엔진 서버와 통신하여 변이코드 파일을 다운로드 한다. 다운로드된 파일은 레포지토리 모듈에 의해 특정 위치에 파일이 저장되도록 구성될 수 있다.
전술한 바와 같이, <스토리지 가상화>, <커스텀 파일 시스템>을 이용한 자가 변이 시스템에 대해 상세하게 설명하면 다음과 같다. 이와 관련하여, 도 1a 내지 도 5를 참조하면, 자가 변이 시스템은 타깃 서버(1000)와 변이 엔진 서버(2000)로 구성될 수 있다. 타깃 서버(1000)는 복수의 변이 프로그램과 보호 영역(1210) 및 에이전트(11000)로 구성될 수 있다. 한편, 변이 엔진 서버(2000)는 원본 코드 관리부(2100), 난독화 엔진(2200), 변이코드 관리부(2300) 및 제어 및 통신부(2400)로 구성될 수 있다. 변이 엔진 서버(2000)는 타깃 서버(1000)와 통신 가능하게 연결되고, 변이코드 파일을 에이전트(1100)로 전달하도록 구성될 수 있다.
타깃 서버(1000)는 에이전트를 실행하여 보호 영역으로의 스토리지 가상화 및 커스템 파일 시스템의 동작 여부 검증을 수행할 수 있다. 타깃 서버(1000)는 접근 가능한 사용자 인증 및 소프트웨어를 식별을 수행할 수 있다. 타깃 서버(1000)는 스케줄러(1130)에 의해 일정 주기 마다 변이엔진 서버(2000)와 통신하여 변이코드 파일을 다운로드할 수 있다. 타깃 서버(1000)는 레포지토리 모듈에 의해 다운로드 된 파일을 보호 영역(1220)에 해당하는 특정 위치에 저장할 수 있다.
도 5를 참조하면, 타깃 서버는 파일 다운로드를 수행하기 이전에 에이전트 실행 과정(S110), 가상화 이미지에서 볼륨 마운트 과정(S120), 필터 파일 시스템 로딩 (검증) 과정(S130) 및 사용자 인증 과정(S140)을 수행할 수 있다. 한편, 타깃 서버는 스케줄러 실행 과정(S210), 파일 다운로드 과정(S220), 파일 별 필터링 과정(S230) 및 선택적 암호화 및 저장 과정(S240)을 수행할 수 있다. 또한, 타깃 서버는 사용 종료 시 마운트 해제 과정(S310) 및 (선택적) 가상화 이미지 암호화 과정(S320)을 수행할 수 있다.
도 6은 본 발명에 따른 자가 변이 시스템의 필터 파일 시스템의 동작 절차를 나타낸다.
도 6을 참조하면, “필터”파일 시스템은 파일 연산에 대한 저 수준에서의 커널 모듈이다. 즉, 파일 연산 동작 (read, write, seek, sync, open, create 등) 시스템 호출이 불릴 때 커널 수준에서 동작이 연쇄적으로 호출되는 데 기본 동작을 원하는 동작으로 바꾸는 메커니즘이다. 예를 들어 “파일 읽기”등) 또는 “파일 쓰기”등) 호출한 경우 커널에 “필터”파일 시스템 커널 모듈이 적재된 경우, 커널 모듈에 등록된 파일 연산 대체 로직이 대체 실행된다. 대체 로직에서 파일 인증 및 식별을 수행할 수 있다.
대상 파일은 미리 정상 파일의 특정 영역에 “메타 정보”“인증 정보”를 심어 넣는다. 이 과정은 미리 원격 변이 엔진 서버에서 변이코드를 생성할 때 정보를 주입할 수 있다. 또는 “에이전트”프로세스에서 변이코드 파일을 저장할 때 정보를 주입할 수 있겠다. 구현 방법은 편의에 따라 선택적으로 설계할 수 있다. “메타 정보”는 파일의 식별 코드, 생성 날짜, 해시 값, 저장 경로, 출처 서버 식별자 등의 정보를 담을 수 있으며, “인증 정보”는 프로세스 정보, 소유자 계정, 변이 프로그램 식별자, 암호 키 등이 될 수 있다. 파일 인증은 무결성 검증이나 소유자 인증을 수행할 수 있다. 구현 방법은 다양하게 존재할 수 있으나, 개략적인 방법을 기술하면 다음과 같다.
무결성 검증은 원격 변이 엔진 서버로부터 다운로더를 통해 파일을 다운로드 받을 때 수행한다. 대표적으로 MD5, SHA 알고리즘을 사용하여 파일의 해시 값을 구하여, 파일의 특정 영역에 기록된 원본 해시 값과 비교하여 무결성 검증을 수행한다. 선택적으로 전송 시 원본 해시 값을 별도로 전송할 수 있다.
소유자 인증은 일반적으로 인증서 기반 인증을 사용한다. 계정 별로 인증서를 발행하여 비밀키는 에이전트만 접근할 수 있는 영역에 저장하고, 공개키로 다운로드 받은 파일에 서명을 한다. 서명 정보로부터 소유자를 식별할 수 있도록 하는 식으로 파일의 소유자를 식별 및 변조 여부를 검증할 수 있다. 단순하게는 소유자 계정 별로 아이디/패스워드 인증 방식으로 구현할 수도 있다. 이 경우 패스워드는 MD5 해시로 파일이나 데이터베이스에 저장하도록 한다.
파일 인증은 파일 내부에 부가된 인증 정보 및 호출한 프로세스 식별 정보를 이용하여 인증한다. 예를 들면 “에이전트”프로세스에서 변이코드 파일을 읽거나 쓰는 경우, 프로세스 식별자(예: UID, PID 등)를 확인하여 “에이전트”프로세스가 아닌 경우 기본 파일 연산을 수행한다.
미리 쓰여진 파일 “메타 정보”로부터 파일이 저장되거나 읽기를 위한 참조 경로를 확인한다. 보통은 파일 읽기 시스템 호출 시 대상 경로를 입력 받지만, 보호 영역의 경로를 최상위 기준으로 파일을 찾는 순으로 경로 검색을 수행하도록 한다. 파일 쓰기를 수행하는 경우 파일은 보호 영역에 암호화 된 형태로 저장되며, 에이전트가 종료 될 때 또는 주기적으로 보호 영역의 데이터를 가상화 한다. 암호화 구현은 다양한 방법이 있을 수 있다. 다만 암호 키는 보관이 중요하므로 에이전트만 접근할 수 있는 영역에 보관한다. 사용자 계정 별로 암호 키를 별도로 생성하여 보관할 수도 있다.
도 1a 내지 도 6을 참조하면, 타깃 서버(1000)는 파일 시스템의 파일 저장 모듈을 호출하여 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별할 수 있다. 또한, 타깃 서버(1000)는 파일에 대한 저장 경로 및 상기 파일에 대한 암호화 여부를 결정하고, 파일을 보호 영역(1220)의 저장 경로에 저장할 수 있다. 이에 따라, 본 발명에 따른 자가 변이 시스템은 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 + 암호화 + 파일 저장 과정을 수행할 수 있다.
한편, 타깃 서버(1000)는 파일 시스템의 파일 읽기 모듈을 호출하여 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별할 수 있다. 또한, 타깃 서버(1000)는 파일에 대한 저장 경로 및 파일에 대한 복호화 여부를 결정하고, 보호 영역(1220)에 저장된 파일에 대한 읽기 작업을 수행할 수 있다. 이에 따라, 본 발명에 따른 자가 변이 시스템은 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 + 복호화 + 파일 읽기 과정을 수행할 수 있다.
이와 관련하여, 타깃 서버(1000)는 파일이 보호 영역(1220)에 저장되는 경우, 보호 영역(1220)에 대한 볼륨 가상화를 사용자 공간(user space)에서 수행할 수 있다. 반면에, 타깃 서버(1000)는 파일 시스템과 연관된 필터링 모듈의 적재(loading)를 커널 공간(kernel space)에서 수행할 수 있다.
도 1a 내지 도 4를 참조하면, 타깃 서버(1000)는 파일의 중요도에 따라 파일을 보호 영역(1220) 또는 일반 영역(1210)에 저장할지 여부를 결정할 수 있다. 또한편, 타깃 서버(1000)는 파일이 보호 영역(1220)에 저장되는 것으로 결정된 경우, 파일을 에 대한 가상화 이미지 파일을 생성할 수 있다. 또한, 타깃 서버(1000)는 가상화 이미지 파일을 보호 영역(1220)의 특정 위치에 마운트하여 보호 영역 볼륨 마운트를 수행할 수 있다. 또한, 타깃 서버(1000)는 가상화 이미지 파일에 대한 사용이 완료된 경우, 보호 영역 볼륨 마운트를 해제하여 보호 영역(1220)을 외부에서 인식할 수 없도록 제어할 수 있다. 반면에, 타깃 서버(1000)는 파일이 일반 영역(1210)에 저장되는 것으로 결정된 경우, 파일이 저장될 일반 영역(1210)에 대한 물리적 볼륨 마운트를 수행할 수 있다.
도 7은 본 발명에 따른 에이전트 다운로더 모듈에서 다운로드 받은 변이코드 파일을 저장하는 일련의 과정을 나타낸다.
도 1 내지 도 7을 참조하면, 타깃 서버(1000)는 사용자 공간에서 파일에 대한 무결성 검증 후 파일에 메타 정보 및 인증 정보를 추가하고, 파일을 저장하기 위한 파일 저장 모듈을 호출할 수 있다. 이와 관련하여, 사용자 공간에 해당하는 다운로더(1110)는 파일 무결성 검증 과정(S710), 메타 정보 및 인증 정보 추가 과정(S720) 및 파일 저장 과정(S730)을 수행할 수 있다.
또한, 타깃 서버(1000)는 커널 공간에서 에이전트(1100)를 실행하여 파일에 대한 소유자 인증을 수행할 수 있다. 타깃 서버(1000)는 소유자 인증이 성공하면, 커널 공간에서 보호 영역(1220)의 지정 경로에 파일을 암호화하여 저장할 수 있다. 이와 관련하여, 커널 공간에 해당하는 필터 파일 시스템은 에이전트 실행 여부 판단 과정(S740), 소유자 인증 결과 판단 과정(S750) 및 파일 저장 과정(S760)을 수행할 수 있다.
반면에, 타깃 서버(1000)는 소유자 인증이 실패하면, 사용자 공간에서 기본 파일저장 함수를 호출하여 파일을 일반 영역(1210)에 저장할 수 있다. 이와 관련하여, 사용자 공간에 해당하는 다운로더(1110)는 기본 파일저장 함수 수행 과정(S770)을 수행할 수 있다.
도 8은 본 발명에 따른 파일 읽기 모듈과 연관된 파일 시스템에서의 파일 읽기를 수행하는 일련의 과정을 나타낸다.
도 1 내지 도 8을 참조하면, 타깃 서버(1000)는 파일에 대한 읽기 작업을 수행하기 위해 사용자 공간에서 파일 읽기 모듈을 호출할 수 있다. 이와 관련하여, 사용자 공간에 해당하는 파일 읽기 모듈, 일 예로 프로그램 제어부(1120)는 파일 읽기 모듈 호출 과정(S810)을 수행할 수 있다. 한편, 타깃 서버(1000)는 커널 공간에서 파일과 연관된 메타 정보 및 인증 정보를 식별하고, 에이전트(1100)를 실행하여 파일에 대한 소유자 인증을 수행할 수 있다. 이와 관련하여, 커널 공간에 해당하는 필터 파일 시스템은 메타 정보 및 인증 정보 식별 과정(S820), 에이전트 실행 여부 판단 과정(S830) 및 소유자 인증 결과 판단 과정(S840)을 수행할 수 있다.
한편, 타깃 서버(1000)는 소유자 인증이 성공하면, 커널 공간에서 파일에 대한 무결성 검증을 수행하여 보호 영역(1220)의 지정 경로에 저장된 파일에 대한 복호화 여부를 결정할 수 있다. 이와 관련하여, 커널 공간에 해당하는 필터 파일 시스템은 파일 무결설 검증 과정(S850), 파일 복호화 과정(S860)을 수행할 수 있다.
한편, 타깃 서버(1000)는 소유자 인증이 실패하면, 해당 파일에 대한 읽기 작업을 수행하지 않고 시스템 파일 읽기 작업을 사용자 공간에서 수행할 수 있다. 이와 관련하여, 사용자 공간에 해당하는 파일 읽기 모듈, 일 예로 프로그램 제어부(1120)는 시스템 파일 읽기 수행 과정(S845)을 수행할 수 있다. 반면에, 타깃 서버(1000)는 무결성 검증에 따라 파일을 복호화 하기로 결정한 경우, 보호 영역(1220)의 지정 경로에 저장된 파일에 대한 읽기 작업을 사용자 공간에서 수행할 수 있다. 이와 관련하여, 사용자 공간에 해당하는 파일 읽기 모듈, 일 예로 프로그램 제어부(1120)는 파일 읽기 수행 과정(S870)을 수행할 수 있다.
이상에서는 본 발명에 따른 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템에 대해 설명하였다. 본 발명에 따른 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템의 기술적 효과는 다음과 같다.
본 발명에 따르면, 자가 변이 시스템 구성 요소에서 레포지토리 모듈을 보안적인 측면에서 안전하게 설계 및 구현하는 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 주기적 또는 비주기적으로 변이 코드 파일을 수신하고, 타깃 서버 환경의 특정 스토리지 영역에 안전하게 저장할 수 있다.
또한, 본 발명에 따르면, 수신되어 특정 스토리지 영역에 저장된 파일의 안전한 저장 및 암호화/복호화 방법을 제공할 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능뿐만 아니라 각각의 구성 요소들에 대한 설계 및 파라미터 최적화는 별도의 소프트웨어 모듈로도 구현될 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부(controller) 또는 프로세서(processor)에 의해 실행될 수 있다.

Claims (10)

  1. 가상화 및 COW (Copy On Write) 파일 시스템 기술을 이용한 자가 변이 시스템에 있어서,
    복수의 변이 프로그램과 보호 영역 및 에이전트로 구성된 타깃 서버; 및
    상기 타깃 서버와 통신 가능하게 연결되고, 변이코드 파일을 상기 에이전트로 전달하도록 구성된 변이 엔진 서버를 포함하고,
    상기 타깃 서버는,
    상기 에이전트를 실행하여 상기 보호 영역으로의 스토리지 가상화 및 커스템 파일 시스템의 동작 여부 검증을 수행하고, 접근 가능한 사용자 인증 및 소프트웨어를 식별을 수행하고,
    스케줄러에 의해 일정 주기 마다 상기 변이엔진 서버와 통신하여 상기 변이코드 파일을 다운로드하고,
    레포지토리 모듈에 의해 상기 다운로드 된 파일을 상기 보호 영역에 해당하는 특정 위치에 저장하고,
    상기 파일 시스템의 파일 저장 모듈을 호출하여 상기 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별하고,
    상기 파일에 대한 저장 경로 및 상기 파일에 대한 암호화 여부를 결정하고,
    상기 파일을 상기 보호 영역의 상기 저장 경로에 저장하고,
    상기 파일 시스템의 파일 읽기 모듈을 호출하여 상기 변이코드 파일, 메타 정보 및 인증 정보로 구성된 파일에 대한 인증 및 접근 권한을 식별하고,
    상기 파일에 대한 저장 경로 및 상기 파일에 대한 복호화 여부를 결정하고,
    상기 보호 영역에 저장된 파일에 대한 읽기 작업을 수행하고,
    상기 파일이 상기 보호 영역에 저장되는 경우, 상기 보호 영역에 대한 볼륨 가상화를 사용자 공간(user space)에서 수행하고,
    상기 파일 시스템과 연관된 필터링 모듈의 적재(loading)를 커널 공간(kernel space)에서 수행하는, 자가 변이 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서,
    상기 타깃 서버는,
    상기 파일의 중요도에 따라 상기 파일을 상기 보호 영역 또는 일반 영역에 저장할지 여부를 결정하고,
    상기 파일이 상기 보호 영역에 저장되는 것으로 결정된 경우, 상기 파일을 에 대한 가상화 이미지 파일을 생성하고 상기 가상화 이미지 파일을 상기 보호 영역의 특정 위치에 마운트하여 보호 영역 볼륨 마운트를 수행하는, 자가 변이 시스템.
  6. 제5 항에 있어서,
    상기 타깃 서버는,
    상기 가상화 이미지 파일에 대한 사용이 완료된 경우, 상기 보호 영역 볼륨 마운트를 해제하여 상기 보호 영역을 외부에서 인식할 수 없도록 하고,
    상기 파일이 상기 일반 영역에 저장되는 것으로 결정된 경우, 상기 파일이 저장될 일반 영역에 대한 물리적 볼륨 마운트를 수행하는, 자가 변이 시스템.
  7. 제1 항에 있어서,
    상기 타깃 서버는,
    사용자 공간에서 상기 파일에 대한 무결성 검증 후 상기 파일에 메타 정보 및 인증 정보를 추가하고, 상기 파일을 저장하기 위한 파일 저장 모듈을 호출하고,
    커널 공간에서 상기 에이전트를 실행하여 상기 파일에 대한 소유자 인증을 수행하는, 자가 변이 시스템.
  8. 제7 항에 있어서,
    상기 타깃 서버는,
    상기 소유자 인증이 성공하면, 상기 커널 공간에서 상기 보호 영역의 지정 경로에 상기 파일을 암호화하여 저장하고,
    상기 소유자 인증이 실패하면, 상기 사용자 공간에서 기본 파일저장 함수를 호출하여 상기 파일을 일반 영역에 저장하는, 자가 변이 시스템.
  9. 제1 항에 있어서,
    상기 타깃 서버는,
    상기 파일에 대한 읽기 작업을 수행하기 위해 사용자 공간에서 파일 읽기 모듈을 호출하고,
    커널 공간에서 상기 파일과 연관된 메타 정보 및 인증 정보를 식별하고, 상기 에이전트를 실행하여 상기 파일에 대한 소유자 인증을 수행하고,
    상기 소유자 인증이 성공하면, 상기 커널 공간에서 상기 파일에 대한 무결성 검증을 수행하여 상기 보호 영역의 지정 경로에 저장된 상기 파일에 대한 복호화 여부를 결정하는, 자가 변이 시스템.
  10. 제9 항에 있어서,
    상기 타깃 서버는,
    상기 소유자 인증이 실패하면, 상기 파일에 대한 읽기 작업을 수행하지 않고 시스템 파일 읽기 작업을 사용자 공간에서 수행하고,
    상기 무결성 검증에 따라 상기 파일을 복호화하기로 결정한 경우, 상기 보호 영역의 지정 경로에 저장된 파일에 대한 읽기 작업을 상기 사용자 공간에서 수행하는, 자가 변이 시스템.
KR1020200099646A 2020-08-10 2020-08-10 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템 KR102232919B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200099646A KR102232919B1 (ko) 2020-08-10 2020-08-10 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200099646A KR102232919B1 (ko) 2020-08-10 2020-08-10 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템

Publications (1)

Publication Number Publication Date
KR102232919B1 true KR102232919B1 (ko) 2021-03-29

Family

ID=75250097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200099646A KR102232919B1 (ko) 2020-08-10 2020-08-10 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템

Country Status (1)

Country Link
KR (1) KR102232919B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100901014B1 (ko) * 2008-07-15 2009-06-04 (주)노애드 가상 환경상에서의 응용 프로그램 실행 장치 및 방법
KR20090075595A (ko) * 2008-01-04 2009-07-08 주식회사 마크애니 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법
KR20150048565A (ko) * 2013-10-28 2015-05-07 마이크론웨어(주) 가상 호출 경로를 이용한 드라이버 보안 시스템 및 방법
KR20180074967A (ko) * 2016-12-26 2018-07-04 포항공과대학교 산학협력단 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치
KR102105020B1 (ko) * 2019-08-30 2020-04-27 (유)아홉 가상 머신 기반 코드 변이 기술을 이용한 동적 자가변이 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090075595A (ko) * 2008-01-04 2009-07-08 주식회사 마크애니 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법
KR100901014B1 (ko) * 2008-07-15 2009-06-04 (주)노애드 가상 환경상에서의 응용 프로그램 실행 장치 및 방법
KR20150048565A (ko) * 2013-10-28 2015-05-07 마이크론웨어(주) 가상 호출 경로를 이용한 드라이버 보안 시스템 및 방법
KR20180074967A (ko) * 2016-12-26 2018-07-04 포항공과대학교 산학협력단 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치
KR102105020B1 (ko) * 2019-08-30 2020-04-27 (유)아홉 가상 머신 기반 코드 변이 기술을 이용한 동적 자가변이 시스템

Similar Documents

Publication Publication Date Title
US9881013B2 (en) Method and system for providing restricted access to a storage medium
US9699155B2 (en) Cloud aware file system
US10977381B2 (en) Protection system and method against unauthorized data alteration
US7506170B2 (en) Method for secure access to multiple secure networks
US9292222B2 (en) Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
US7840750B2 (en) Electrical transmission system in secret environment between virtual disks and electrical transmission method thereof
US20130275973A1 (en) Virtualisation system
KR101705550B1 (ko) 보안 저장 영역에 대한 응용 프로그램의 접근 제어 방법 및 장치
US7536524B2 (en) Method and system for providing restricted access to a storage medium
US11502824B2 (en) Encryption by default in an elastic computing system
KR100596135B1 (ko) 가상 디스크를 이용한 응용 프로그램 별 접근통제시스템과 그 통제방법
US20090271586A1 (en) Method and system for providing restricted access to a storage medium
US20030221115A1 (en) Data protection system
AU1329601A (en) System and method for providing data security
WO2012061046A2 (en) Creating distinct user spaces through mountable file systems
US8762738B2 (en) System and method for protecting content on a storage device
JP2001318797A (ja) 自動データ処理装置
CN110569650A (zh) 基于国产操作系统的可移动存储设备权限管理方法及系统
KR101227187B1 (ko) 보안영역 데이터의 반출 제어시스템과 그 제어방법
KR20220085786A (ko) 랜섬웨어 방지
KR102232919B1 (ko) 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템
KR100549644B1 (ko) 저장공간의 운영효율성을 높인 가상 디스크를 이용한 응용프로그램 별 접근 통제시스템과 그 통제방법
KR101371031B1 (ko) 드라이브 기반 파일 보안 시스템
KR20210087887A (ko) 파일 서버 내에서 발생하는 파일 이벤트에 따라 해당 파일의 속성 또는 파일을 변경하는 파일 서버 데이터 보호 방법 및 장치
Butler Leveraging Emerging Disk Functionality for New Security Services

Legal Events

Date Code Title Description
GRNT Written decision to grant