KR20220093585A - System for analysing malicious code and operation method thereof - Google Patents

System for analysing malicious code and operation method thereof Download PDF

Info

Publication number
KR20220093585A
KR20220093585A KR1020200184449A KR20200184449A KR20220093585A KR 20220093585 A KR20220093585 A KR 20220093585A KR 1020200184449 A KR1020200184449 A KR 1020200184449A KR 20200184449 A KR20200184449 A KR 20200184449A KR 20220093585 A KR20220093585 A KR 20220093585A
Authority
KR
South Korea
Prior art keywords
client
image file
server
sub
volume
Prior art date
Application number
KR1020200184449A
Other languages
Korean (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 KR1020200184449A priority Critical patent/KR20220093585A/en
Publication of KR20220093585A publication Critical patent/KR20220093585A/en
Priority to KR1020230009485A priority patent/KR102618879B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

The present disclosure relates to an operation method for a malicious code analysis system using a bare metal sandbox. The operation method includes: a step in which a client transmits a first dynamic host configuration protocol (DHCP) request to a server; a step in which the server determines first network configuration information of the client; a step in which the server transmits the first network configuration information to the client; a step in which the client transmits a pre-boot execution environment (PXE) firmware request information to the server based on the first network configuration information; a step in which the server transmits a PXE firmware image file to the client; a step in which the client performs booting based on the PXE firmware image file; a step in which the client transmits a second DHCP request to the server; a step in which the server determines second network configuration information of the client; a step in which the client makes a connection to a storage area network (SAN) target based on the second network configuration information; and a step in which the client performs booting based on an m_2 booting image file included in iSCSI LUN.

Description

악성코드 분석 시스템 및 시스템의 동작 방법{SYSTEM FOR ANALYSING MALICIOUS CODE AND OPERATION METHOD THEREOF}Malicious code analysis system and method of operation

본 개시는 악성코드 분석 시스템 및 시스템의 동작 방법에 관한 것이다.The present disclosure relates to a malicious code analysis system and an operating method of the system.

악성코드 분석 시스템을 구축할 때, 반복적으로 악성코드를 감염시키고 복구시키는 과정이 필요하기 때문에 실제 사용하는 컴퓨터 환경과 분리된 환경을 구축해야한다. 분리된 환경을 구축하기 위해 사용하는 방법은 크게 소프트웨어적인 가상화 기술을 이용한 가상머신 샌드박스 시스템과 별도의 물리머신을 이용하는 베어메탈 샌드박스 시스템 방식이 존재한다. When building a malicious code analysis system, it is necessary to build an environment separated from the actual computer environment because the process of repeatedly infecting and recovering malicious code is required. There are largely two types of methods used to build a separate environment: a virtual machine sandbox system using software virtualization technology and a bare metal sandbox system method using a separate physical machine.

가상머신 샌드박스 시스템은 악성코드 분석에 사용된 오염된 환경을 초기화 하기 위하여 깨끗한 상태의 시스템 스냅샷을 만들어 놓고 해당 스냅샷을 다음 분석 시 사용할 수 있다.The virtual machine sandbox system creates a clean system snapshot to initialize the contaminated environment used for malicious code analysis, and the snapshot can be used for the next analysis.

베어메탈 샌드박스 시스템은 오염된 환경을 초기화 하기 위하여 악성코드가 동작하는 클라이언트와 네트워크로 연결된 다른 서버에 깨끗한 상태의 디스크 이미지를 저장해 놓고 분석이 끝날 때 마다, 클라이언트의 현재 물리디스크를 깨끗이 삭제하고 네트워크를 통해 다른 서버의 깨끗한 상태의 이미지를 수신하여 복구할 수 있다.The bare metal sandbox system stores a clean disk image in another server connected to the network with the client running the malicious code to initialize the contaminated environment. It can receive and restore images in a clean state from another server.

가상머신 샌드박스가 환경 초기화를 위하여 실제 물리디스크에 읽고 쓰는 양이 베어메탈 샌드박스에 비해 적기 때문에 속도가 빠르지만 많은 악성코드가 원활한 분석을 방해하기 위하여 가상 환경을 탐지하여 실행을 거부하거나 일반적인 환경에서 실행시킬 경우와 다른 행위를 하기 때문에, 원활한 분석을 위해 베어메탈 샌드박스 시스템이 필요할 수 있다.The virtual machine sandbox is faster because the amount of reading and writing to the actual physical disk for environment initialization is smaller than that of the bare metal sandbox, but many malicious codes detect the virtual environment and refuse to run it or refuse to run it in order to prevent smooth analysis. Because it behaves differently than when it is run in , a bare metal sandbox system may be required for smooth analysis.

베어메탈 샌드박스 시스템은 악성코드가 동작된 환경을 초기화 시키기 위하여 네트워크로 연결된 서버에 깨끗한 디스크 이미지를 저장해 놓는다. 클라이언트는 분석 환경 초기화 시 PXE를 통해 서버에 저장된 깨끗한 이미지를 다운로드하여 디스크에 새롭게 쓴다. 이러한 방식은 아래와 같은 두 가지 문제를 일으킬 수 있다.The bare metal sandbox system stores a clean disk image in a server connected to the network to initialize the environment in which the malicious code operates. When the analysis environment is initialized, the client downloads a clean image stored in the server through PXE and writes it to the disk. This approach can cause two problems:

보통 하나의 서버에 다수의 클라이언트가 연결될 수 있다. 악성코드 분석 시스템 환경에서 초기화 시 마다 서버는 약 20G정도의 디스크 이미지를 하나의 클라이언트에 전송한다. 다수의 클라이언트들이 동시에 초기화를 할 경우 네트워크 대역폭 때문에 병목현상이 발생하여 초기화 시간이 길어질 수 있다. 예를 들어, 10대의 베어메탈 샌드박스가 1G 네트워크 대역폭을 사용할 때 초기화에 약 10분정도를 소모할 수 있다. 즉, 베어메탈 샌드박스 시스템이 악성코드 분석 위해 3분을 소요하는 것이 비하여 초기화 시간이 지나치게 긴 문제점이 있다.Usually, multiple clients can be connected to one server. At each initialization in the malicious code analysis system environment, the server transmits a disk image of about 20G to one client. If multiple clients initialize at the same time, a bottleneck may occur due to network bandwidth and the initialization time may become longer. For example, when 10 bare metal sandboxes are using 1G network bandwidth, initialization can take about 10 minutes. That is, there is a problem that the initialization time is too long compared to the bare metal sandbox system that takes 3 minutes to analyze the malicious code.

클라이언트는 부팅속도를 단축하기 위하여 HDD보다는 SSD를 사용한다. SSD의 경우 디스크 쓰기에 대한 제약이 있다. 예를 들어, 250Gb의 용량을 가지는 SSD의 수명은 최대 150TB의 쓰기까지 가능할 수 있다. 상술한 바와 같이 악성코드 분석 시스템의 클라이언트가 초기화 시에 약 20GB의 쓰기를 수행한다면, 약 7500회의 분석 후 SSD 디스크를 교체해야할 수 있다. 따라서 악성코드 분석 시스템의 유지 비용이 큰 문제점이 있다.The client uses SSD rather than HDD to speed up booting. In the case of SSDs, there are restrictions on disk writes. For example, the lifetime of an SSD with a capacity of 250 Gb may be up to 150 TB of writes. As described above, if the client of the malicious code analysis system writes about 20 GB at the time of initialization, the SSD disk may need to be replaced after about 7,500 analysis. Therefore, there is a problem in that the maintenance cost of the malicious code analysis system is large.

본 개시의 베어메탈 샌드박스를 이용한 악성코드 분석 시스템의 동작 방법은, 클라이언트가 서버에 제 1 DHCP(Dynamic Host Configuration Protocol) 요청을 송신하는 단계, 서버가 클라이언트의 제 1 네트워크 설정 정보를 결정하는 단계, 서버가 제 1 네트워크 설정 정보를 클라이언트에 송신하는 단계, 클라이언트가 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 서버에 송신하는 단계, 서버가 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계, 클라이언트가 PXE 펌웨어 이미지 파일에 기초하여 부팅하는 단계, 클라이언트가 서버에 제 2 DHCP 요청을 송신하는 단계, 서버가 클라이언트의 제 2 네트워크 설정 정보를 결정하는 단계, 클라이언트가 제 2 네트워크 설정 정보에 기초하여 SAN(storage area network) 타겟에 연결하는 단계, 및 클라이언트가 SAN 타겟에 포함된 제 m_2 부팅 이미지 파일에 기초하여 부팅하는 단계를 포함한다.The operating method of the malicious code analysis system using the bare metal sandbox of the present disclosure includes the steps of: a client sending a first Dynamic Host Configuration Protocol (DHCP) request to a server; and the server determining first network configuration information of the client , the server sending the first network setting information to the client, the client sending the PXE (Preboot Execution Environment) firmware request information to the server based on the first network setting information, the server sending the PXE firmware image file to the client sending, the client booting based on the PXE firmware image file, the client sending a second DHCP request to the server, the server determining the second network setting information of the client, the client setting the second network connecting to a storage area network (SAN) target based on the information, and booting the client based on an m_2 th boot image file included in the SAN target.

본 개시의 악성코드 분석 시스템의 동작 방법의 서버가 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계는 서버가 클라이언트에 대응하는 부팅 이미지 파일을 초기화하는 단계 및 클라이언트에 대응하는 부팅 이미지 파일의 초기화가 완료된 경우, 서버가 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계를 포함한다.In the operating method of the malicious code analysis system of the present disclosure, the step of the server sending the PXE firmware image file to the client is the step of the server initializing the boot image file corresponding to the client and the initialization of the boot image file corresponding to the client is completed. , the server sending the PXE firmware image file to the client.

본 개시의 악성코드 분석 시스템의 동작 방법의 PXE 펌웨어 요청 정보를 서버에 송신하는 단계 및 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계는 TFTP(Trivial File Transfer Protocol) 프로토콜에 기초하여 수행되고, PXE 펌웨어 요청 정보를 서버에 송신하는 단계는 TFTP 프로토콜의 READ REQUEST(RRQ)인 것을 특징으로 한다.Transmitting the PXE firmware request information of the operating method of the malicious code analysis system of the present disclosure to the server and transmitting the PXE firmware image file to the client are performed based on a TFTP (Trivial File Transfer Protocol) protocol, and the PXE firmware request The step of sending the information to the server is characterized in that it is a READ REQUEST (RRQ) of the TFTP protocol.

본 개시의 악성코드 분석 시스템의 동작 방법의 클라이언트가 서버에 제 1 DHCP 요청을 송신하는 단계는 서버가 클라이언트에 재부팅 명령을 송신하는 단계 및 클라이언트에 전원이 다시 들어온 경우, 클라이언트는 서버에 제 1 DHCP 요청을 송신하는 단계를 포함하고, 부팅 이미지 파일을 초기화하는 단계는 서버가 클라이언트와 SAN LUN의 연결을 해제하는 단계, 클라이언트에 의해 악성 코드 분석 후 오염된 제 m_1 부팅 이미지 파일을 서버가 삭제하는 단계, 서버가 변경된 제 m 복제 마스터 이미지 파일에 기초하여 클라이언트에 대응하는 새로운 제 m_2 부팅 이미지 파일을 생성하는 단계, 및 제 m_2 부팅 이미지 파일을 클라이언트에 할당하는 단계를 포함한다.In the operating method of the malicious code analysis system of the present disclosure, the step of the client sending the first DHCP request to the server includes the server sending a reboot command to the client, and when the power is turned on again, the client sends the first DHCP request to the server sending a request, the step of initializing the boot image file includes the server disconnecting the client and the SAN LUN, the server deleting the m_1 boot image file that is contaminated after malicious code analysis by the client , generating, by the server, a new m_2 th boot image file corresponding to the client based on the changed m th replication master image file, and allocating the m_2 th boot image file to the client.

본 개시의 악성코드 분석 시스템의 동작 방법은 클라이언트에 대응하는 부팅 이미지 파일의 초기화가 완료되지 않은 경우, 서버가 클라이언트에 PXE 펌웨어 이미지 파일을 송신하지 않고, 초기화가 완료될 때까지 기다리는 단계를 포함한다.The operating method of the malicious code analysis system of the present disclosure includes, when initialization of the boot image file corresponding to the client is not completed, the server does not transmit the PXE firmware image file to the client, and waits until the initialization is completed. .

본 개시의 악성코드 분석 시스템의 동작 방법은 서버가 제 1 서브 볼륨 생성 후 마스터 이미지 파일을 생성하는 단계, 초기화 클라이언트가 마스터 이미지 파일로 부팅 후 기본 설정 정보를 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계, 서버가 변경된 마스터 이미지 파일이 들어있는 제 1 서브 볼륨을 계승하고, 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨을 생성하는 단계, 서버가 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트에 할당하는 단계, 및 클라이언트가 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 제 m 복제 마스터 이미지 파일에 적용하여 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계를 포함한다.The operating method of the malicious code analysis system of the present disclosure includes the steps of: the server creates a master image file after the first sub-volume is created; the initialization client boots to the master image file and then applies basic setting information to the master image file to change the master image file obtaining, the server inheriting the first sub-volume containing the changed master image file, and creating an n_1 th sub-volume that stores the m-th duplicate master image file, the server generating the n_1 th sub-volume included in the n_1 th sub-volume allocating the mth clone master image file to the client, and after the client boots to the mth clone master image file contained in the n_1 subvolume, the mth clone master image changed by applying additional setting information to the mth clone master image file acquiring the file.

본 개시의 악성코드 분석 시스템의 동작 방법은 서버가 변경된 제 m 복제 마스터 이미지 파일을 포함하는 제 n_1 서브 볼륨을 계승하고, 제 m_1 부팅 이미지 파일을 저장하는 제 n_2 서브 볼륨을 생성하는 단계, 서버가 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일을 클라이언트에 할당하는 단계, 및 클라이언트가 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버로 전송하는 단계를 포함한다.The operating method of the malicious code analysis system of the present disclosure includes the steps of: the server inheriting the n_1 th sub-volume including the changed m th duplicate master image file, and creating an n_2 th sub-volume storing the m_1 th boot image file, the server allocating the m_1th boot image file included in the n_2th sub-volume to the client, and performing malware analysis after the client boots with the m_1th boot image file included in the n_2th sub-volume, and performing a malware analysis on the contaminated m_1st boot image file and transmitting the result of analysis of malicious code related to the server.

본 개시의 악성코드 분석 시스템의 동작 방법의 제 1 서브 볼륨, 제 n_1 서브 볼륨은 COW(COPY ON WRITE)기능을 지원하는 파일시스템 상에 생성되거나, COW기능을 미지원하지만 COW기능이 소프트웨어적으로 구현된 파일시스템 상에 생성된다.The first sub-volume and the n_1 sub-volume of the operating method of the malicious code analysis system of the present disclosure are created on a file system that supports the COW (COPY ON WRITE) function, or the COW function is implemented in software although it does not support the COW function. created on the filesystem.

본 개시의 악성코드 분석 시스템의 동작 방법은 서버가 제 1 서브 볼륨 생성 후 마스터 이미지 파일을 생성하는 단계, 초기화 클라이언트가 마스터 이미지 파일로 부팅 후 기본 설정 정보를 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계, 서버가 변경된 마스터 이미지 파일이 들어있는 제 1 서브 볼륨을 계승하고, 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨을 생성하는 단계, 서버가 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트에 할당하는 단계, 및 클라이언트가 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 제 m 복제 마스터 이미지 파일에 적용하여 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계를 포함한다.The operating method of the malicious code analysis system of the present disclosure includes the steps of: the server creates a master image file after the first sub-volume is created; the initialization client boots to the master image file and then applies basic setting information to the master image file to change the master image file obtaining, the server inheriting the first sub-volume containing the changed master image file, and creating an n_1 th sub-volume that stores the m-th duplicate master image file, the server generating the n_1 th sub-volume included in the n_1 th sub-volume allocating the mth clone master image file to the client, and after the client boots to the mth clone master image file contained in the n_1 subvolume, the mth clone master image changed by applying additional setting information to the mth clone master image file acquiring the file.

본 개시의 악성코드 분석 시스템의 동작 방법은 서버가 변경된 제 m 복제 마스터 이미지 파일을 포함하는 제 n_1 서브 볼륨을 계승하고, 제 m_1 부팅 이미지 파일을 저장하는 제 n_2 서브 볼륨을 생성하는 단계, 서버가 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일을 클라이언트에 할당하는 단계, 및 클라이언트가 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버로 전송하는 단계를 더 포함한다.The operating method of the malicious code analysis system of the present disclosure includes the steps of: the server inheriting the n_1 th sub-volume including the changed m th duplicate master image file, and creating an n_2 th sub-volume storing the m_1 th boot image file, the server allocating the m_1th boot image file included in the n_2th sub-volume to the client, and performing malware analysis after the client boots with the m_1th boot image file included in the n_2th sub-volume, and performing a malware analysis on the contaminated m_1st boot image file It further includes the step of transmitting the analysis result of the malicious code related to the server.

본 개시의 악성코드 분석 시스템의 동작 방법은 클라이언트가 서버에 제 1 DHCP(Dynamic Host Configuration Protocol) 요청을 송신하는 단계, 서버가 클라이언트의 제 1 네트워크 설정 정보를 결정하는 단계, 서버가 제 1 네트워크 설정 정보를 클라이언트에 송신하는 단계, 클라이언트가 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 서버에 송신하는 단계, 서버가 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계, 클라이언트가 PXE 펌웨어 이미지 파일에 기초하여 부팅하는 단계, 클라이언트가 서버에 제 2 DHCP 요청을 송신하는 단계, 서버가 클라이언트의 제 2 네트워크 설정 정보를 결정하는 단계, 클라이언트가 제 2 네트워크 설정 정보에 기초하여 SAN(storage area network) 타겟에 연결하는 단계, 및 클라이언트가 SAN 타겟에 포함된 제 m_2 부팅 이미지 파일에 기초하여 부팅하는 단계를 포함한다.The operating method of the malicious code analysis system of the present disclosure includes the steps of: a client sending a first Dynamic Host Configuration Protocol (DHCP) request to a server; a server determining first network configuration information of the client; sending information to the client, the client sending Preboot Execution Environment (PXE) firmware request information to the server based on the first network setting information, the server sending a PXE firmware image file to the client, the client sending the PXE booting based on the firmware image file, the client sending a second DHCP request to the server, the server determining the second network configuration information of the client, the client based on the second network configuration information, storage (SAN) area network) connecting to the target, and booting the client based on the m_2 th boot image file included in the SAN target.

또한, 상술한 바와 같은 악성코드 분석 시스템의 동작 방법을 구현하기 위한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.In addition, a program for implementing the operating method of the malicious code analysis system as described above may be recorded in a computer-readable recording medium.

도 1은 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타낸 블록도이다.
도 3은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타낸 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타낸 블록도이다.
도 5는 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타낸 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다.
1 is a diagram illustrating a server or a client according to an embodiment of the present disclosure.
2 is a block diagram illustrating a server or a client according to an embodiment of the present disclosure.
3 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.
4 is a block diagram illustrating a server or a client according to an embodiment of the present disclosure.
5 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.
6 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.
7 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.
8 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the present disclosure to be complete, and those of ordinary skill in the art to which the present disclosure pertains. It is only provided to fully inform the person of the scope of the invention.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail.

본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. Terms used in this specification have been selected as currently widely used general terms as possible while considering the functions in the present disclosure, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.References in the singular herein include plural expressions unless the context clearly dictates the singular. Also, the plural expression includes the singular expression unless the context clearly dictates the plural.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. In the entire specification, when a part "includes" a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.Also, as used herein, the term “unit” refers to a software or hardware component, and “unit” performs certain roles. However, "part" is not meant to be limited to software or hardware. A “unit” may be configured to reside on an addressable storage medium and may be configured to refresh one or more processors. Thus, by way of example, “part” includes components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within components and “parts” may be combined into a smaller number of components and “parts” or further divided into additional components and “parts”.

본 개시의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서"는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서"는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서"는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.According to an embodiment of the present disclosure, “unit” may be implemented with a processor and a memory. The term "processor" should be interpreted broadly to include general purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like. In some contexts, “processor” may refer to an application specific semiconductor (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), or the like. The term “processor” refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such configurations. may refer to.

용어 "메모리"는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.The term “memory” should be interpreted broadly to include any electronic component capable of storing electronic information. The term memory includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erase-programmable read-only memory (EPROM), electrical may refer to various types of processor-readable media, such as erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor is capable of reading information from and/or writing information to the memory. A memory integrated in the processor is in electronic communication with the processor.

아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.Hereinafter, with reference to the accompanying drawings, embodiments will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. And in order to clearly describe the present disclosure in the drawings, parts not related to the description will be omitted.

도 1은 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타내는 도면이다.1 is a diagram illustrating a server or a client according to an embodiment of the present disclosure.

서버 또는 클라이언트는 제어부(100)를 포함할 수 있다. 제어부(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다. 프로세서(110)는 메모리(120)에 저장된 명령어들을 수행할 수 있다. The server or client may include the control unit 100 . The controller 100 may include a processor 110 and a memory 120 . The processor 110 may execute instructions stored in the memory 120 .

프로세서(110)는 메모리(120)에 저장된 명령어에 기초하여 서버 또는 클라이언트의 동작을 제어할 수 있다. 서버 또는 클라이언트는 하나의 프로세서를 포함할 수 있고, 복수의 프로세서를 포함할 수 있다. 서버 또는 클라이언트가 복수의 프로세서를 포함하는 경우, 복수의 프로세서 중 적어도 일부는 물리적으로 이격된 거리에 위치할 수 있다. 또한, 서버 또는 클라이언트는 이에 한정되지 않고 다양한 방식으로 구현될 수 있다.The processor 110 may control an operation of a server or a client based on instructions stored in the memory 120 . A server or a client may include one processor and may include a plurality of processors. When the server or the client includes a plurality of processors, at least some of the plurality of processors may be physically spaced apart from each other. In addition, the server or the client is not limited thereto and may be implemented in various ways.

도 2는 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타낸 블록도이다. 또한 도 3은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타낸 흐름도이다. 2 is a block diagram illustrating a server or a client according to an embodiment of the present disclosure. 3 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.

이하에서는 도 2와 함께 도 3의 악성코드 분석 시스템의 흐름도를 설명한다. Hereinafter, a flowchart of the malicious code analysis system of FIG. 3 together with FIG. 2 will be described.

악성코드 분석 시스템은 베어메탈 샌드박스 방식을 이용할 수 있다. 악성코드 분석 시스템은 적어도 하나의 서버(210) 및 적어도 하나의 클라이언트(260)를 포함할 수 있다. 클라이언트(260)는 제 1 클라이언트(261), 제 2 클라이언트(262), 제 3 클라이언트(263) 등을 포함할 수 있다. 제 1 클라이언트(261), 제 2 클라이언트(262), 제 3 클라이언트(263) 등은 각각 적어도 하나의 악성코드를 분석하기 위한 컴퓨터일 수 있다. 본 개시에서 클라이언트(260)는 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263) 중 적어도 하나를 지칭할 수 있다.The malware analysis system can use the bare metal sandbox method. The malicious code analysis system may include at least one server 210 and at least one client 260 . The client 260 may include a first client 261 , a second client 262 , a third client 263 , and the like. Each of the first client 261 , the second client 262 , and the third client 263 may be a computer for analyzing at least one malicious code. In the present disclosure, the client 260 may refer to at least one of the first client 261 , the second client 262 , and the third client 263 .

본 개시의 일 실시예에 따르면, 서버(210)는 프로세서 및 메모리를 포함할 수 있다. 서버(210)의 메모리는 휘발성 기억장치 및 비휘발성 기억장치를 포함할 수 있다. 또한 서버(210)의 휘발성 기억장치는 RAM 또는 RAM 디스크를 포함할 수 있다. 또한 서버(210)의 비휘발성 기억장치는 HDD 또는 SSD를 포함할 수 있다. 서버(210)의 메모리는 마스터 이미지 파일, 제 m 복제 마스터 이미지 파일, 부팅 이미지 파일 등을 저장하고 있을 수 있다. 제 m 복제 마스터 이미지 파일은 제 1 복제 마스터 이미지 파일, 제 2 복제 마스터 이미지 파일, 제 3 복제 마스터 이미지 파일 등을 포함할 수 있다. 부팅 이미지 파일은 제 1_1 부팅 이미지 파일, 제 2_1 부팅 이미지 파일, 제 3_1 부팅 이미지 파일 등을 포함할 수 있다. 여기서 m은 자연수일 수 있다.According to an embodiment of the present disclosure, the server 210 may include a processor and a memory. The memory of the server 210 may include a volatile memory device and a non-volatile memory device. In addition, the volatile storage device of the server 210 may include a RAM or a RAM disk. In addition, the nonvolatile storage device of the server 210 may include an HDD or an SSD. The memory of the server 210 may store a master image file, an m-th duplicate master image file, a boot image file, and the like. The mth replication master image file may include a first replication master image file, a second replication master image file, a third replication master image file, and the like. The boot image file may include a 1_1 boot image file, a 2_1 boot image file, and a 3_1 boot image file. Here, m may be a natural number.

본 개시의 다양한 실시예에 따르면, 서버(210)는 적어도 하나의 서버를 포함할 수 있다. 서버(210)는 메인 서버 및 스토리지 서버를 포함할 수 있다. 메인 서버는 전체 시스템의 동작을 제어하기 위한 구성이며, 클라이언트의 동작을 제어할 수 있다. 스토리지 서버는 메인 서버 또는 클라이언트가 사용할 데이터 및 메인 서버 또는 클라이언트가 생성한 데이터를 저장하는 서버일 수 있다. 메인 서버는 스토리지 서버와 하드웨어의 적어도 일부를 공유할 수 있다. 또는 메인 서버는 스토리지 서버와 독립적인 하드웨어로 구현되며 서로 유무선으로 연결되어 있을 수 있다. 스토리지 서버의 메모리는 마스터 이미지 파일, 제 m 복제 마스터 이미지 파일, 부팅 이미지 파일 등을 저장하고 있을 수 있다. 메인 서버, 스토리지 서버 및 클라이언트(260)는 동일 네트워크 상에 존재해야할 수 있다. 클라이언트(260)와 스토리지 서버 사이는 iSCSI로 연결될 수 있다. 또한, 스토리지 서버 및 메인 서버가 네트워크로 연결되는 것은 필수적이지 않을 수 있다.According to various embodiments of the present disclosure, the server 210 may include at least one server. The server 210 may include a main server and a storage server. The main server is a configuration for controlling the operation of the entire system, and can control the operation of the client. The storage server may be a server that stores data to be used by the main server or client and data generated by the main server or client. The main server may share at least a portion of hardware with the storage server. Alternatively, the main server may be implemented as hardware independent of the storage server and may be connected to each other by wire or wireless. The memory of the storage server may store a master image file, an mth clone master image file, a boot image file, and the like. The main server, storage server, and client 260 may exist on the same network. The client 260 and the storage server may be connected through iSCSI. In addition, it may not be necessary for the storage server and the main server to be connected through a network.

보다 구체적으로, 본 개시의 일 실시예에 따라 스토리지 서버가 단계(635) 및 단계(636)와 같은 TFTP 요청을 처리하는 경우, 메인 서버와 스토리지 서버 사이는 네트워크로 연결될 필요가 없을 수 있다. 하지만, 메인 서버가 단계(635) 및 단계(636)와 같은 TFTP 요청을 처리하는 경우, 메인 서버에서 스토리지 서버에 서브 볼륨 삭제 및 스냅샷 명령을 내려야 할 수 있다. 따라서 메인 서버에서 스토리지 서버에 명령을 내릴 수 있는 SSH나 r-command 등을 사용하거나, 커스텀 프로토콜을 만들어 이용해야 할 수 있다.More specifically, when the storage server processes TFTP requests such as steps 635 and 636 according to an embodiment of the present disclosure, a network connection between the main server and the storage server may not be necessary. However, when the main server processes TFTP requests such as steps 635 and 636, the main server may need to issue sub-volume deletion and snapshot commands to the storage server. Therefore, you may need to use SSH or r-command that can give commands to the storage server from the main server, or you may need to create and use a custom protocol.

클라이언트(260)의 메모리는 휘발성 기억장치 및 비휘발성 기억장치를 포함할 수 있다. 또한 클라이언트(260)의 휘발성 기억장치는 RAM 또는 RAM 디스크를 포함할 수 있다. 클라이언트(260)의 비휘발성 기억장치는 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등을 포함할 수 있다. 클라이언트(260)의 메모리는 시스템 펌웨어를 저장하기 위한 아주 적은 용량을 가질 수 있다. 시스템 펌웨어는 BIOS 또는 UEFI를 포함할 수 있다. 또한, 클라이언트(260)의 메모리는 PXE 펌웨어를 저장하여 클라이언트(260)의 프로세서가 PXE 펌웨어로 부팅하도록 할 수 있다. 클라이언트(260)는 iSCSI 프로토콜을 이용하여 서버(210)의 이미지 파일을 할당 받아서 메모리로 사용할 수 있다. 즉, 클라이언트(260)는 네트워크로 연결된 이미지 파일을 메모리로써 사용할 수 있다. 이미지 파일은 OS(Operation System) 및 악성코드 분석을 위한 각종 프로그램을 포함할 수 있다. iSCSI 타겟을 통해, 클라이언트(260)의 메모리 Input/Output은 네트워크를 통해 이루어질 수 있다.The memory of the client 260 may include a volatile memory device and a non-volatile memory device. Also, the volatile storage device of the client 260 may include a RAM or a RAM disk. The non-volatile storage of the client 260 includes read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erase-programmable read only memory (EPROM), electrical may include erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. The memory of the client 260 may have very little capacity for storing system firmware. System firmware may include BIOS or UEFI. In addition, the memory of the client 260 may store the PXE firmware so that the processor of the client 260 boots the PXE firmware. The client 260 may receive an image file of the server 210 by using the iSCSI protocol and use it as a memory. That is, the client 260 may use the network-connected image file as a memory. The image file may include various programs for analyzing an operating system (OS) and malicious code. Through the iSCSI target, memory Input/Output of the client 260 may be made through a network.

도 3은 악성코드 분석 시스템의 최초 설정을 나타낸다. 즉, 도 3의 과정은 악성코드 분석 시스템을 최초로 구축할 때 한 번만 수행될 수 있다.3 shows the initial setup of the malicious code analysis system. That is, the process of FIG. 3 can be performed only once when the malicious code analysis system is first built.

도 3을 참조하면, 서버(210)는 제 1 서브 볼륨(220)을 생성한 후 마스터 이미지 파일을 생성하는 단계(310)를 수행할 수 있다. 서버(210)의 메모리는 적어도 하나의 서브 볼륨을 포함할 수 있다. 제 1 서브 볼륨(220)은 서버(210)의 메모리에 구축될 수 있다. 또한 제 1 서브 볼륨(220)에는 마스터 이미지 파일이 생성될 수 있다. 마스터 이미지 파일은 운영체제 및 악성코드를 분석하기 위한 프로그램을 포함하는 파일일 수 있다. 이미지 파일은 디스크 이미지를 의미하는 것으로써, 하드 디스크, 테이프 디스크, 플로피 디스크, CD/DVD/BD, 플래시 디스크 등 저장 장치를 하나의 파일로 만든 것을 의미한다. 제 1 서브 볼륨(220)은 마스터 이미지 파일을 저장하고 있을 수 있다.Referring to FIG. 3 , the server 210 may perform a step 310 of generating a master image file after creating the first sub-volume 220 . The memory of the server 210 may include at least one sub-volume. The first sub-volume 220 may be built in the memory of the server 210 . Also, a master image file may be created in the first sub-volume 220 . The master image file may be a file including a program for analyzing an operating system and malicious code. An image file refers to a disk image, and refers to a storage device such as a hard disk, a tape disk, a floppy disk, a CD/DVD/BD, and a flash disk made into a single file. The first sub-volume 220 may store the master image file.

서버(210)의 메모리는 COPY ON WRITE 기능을 가질 수 있다. COPY ON WRITE는 원본 파일들을 복제할 때, 새로운 파일들을 생성하는 것이 아니고, 원본 파일을 참조하는 기술을 의미한다. 또한 COPY ON WRITE 기술에 의하면 복제한 파일들 중 일부가 수정되는 경우, 수정된 일부 파일에 대해서만 복제본을 생성한다. 따라서 원본 파일들과 복제한 파일들의 중복에 의한 오버헤드를 줄일 수 있다.The memory of the server 210 may have a COPY ON WRITE function. COPY ON WRITE does not create new files when duplicating original files, but refers to a technique that refers to the original files. In addition, according to the COPY ON WRITE technology, when some of the copied files are modified, a copy is created only for some of the modified files. Therefore, it is possible to reduce the overhead due to duplication of original files and duplicate files.

서버(210)는 COW(COPY ON WRITE) 기술을 구현하기 위하여 COW 기능을 지원하는 파일시스템을 이용할 수 있다. The server 210 may use a file system supporting a COW function in order to implement a COPY ON WRITE (COW) technology.

서버(210)는 COW(COPY ON WRITE)기능을 지원하는 파일시스템 상에 제 1 서브 볼륨(220) 또는 제 n_1 서브 볼륨(230)을 생성할 수 있다. 또한, 서버(210)는 COW기능을 미지원하지만 COW기능이 소프트웨어적으로 구현된 파일시스템 상에 제 1 서브 볼륨(220) 또는 제 n_1 서브 볼륨(230)을 생성할 수 있다. The server 210 may create a first sub-volume 220 or an n_1 th sub-volume 230 on a file system supporting a COPY ON WRITE (COW) function. Also, although the server 210 does not support the COW function, the first sub-volume 220 or the n_1 th sub-volume 230 may be created on a file system in which the COW function is implemented in software.

서버(210)는 Btrfs(b-tree file system) 파일 시스템을 이용할 수 있다. 즉, 서버(210)의 메모리는 Btrfs 파일 시스템으로 포맷되어 있을 수 있다. Btrfs는 COPY ON WRITE 기술이 구현되어 있는 파일 시스템일 수 있다. Btrfs에서 COPY ON WRITE 기술을 이용하여 서브 볼륨을 복제하거나, 파일을 복제하는 것을 스냅샷이라고 할 수 있다. 서버(210)는 제 1 서브 볼륨(220), 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 제 4_1 서브 볼륨(233), 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242) 및 제 4_2 서브 볼륨(243)을 Btrfs 파일 시스템 상에 생성할 수 있다.The server 210 may use a b-tree file system (Btrfs) file system. That is, the memory of the server 210 may be formatted in the Btrfs file system. Btrfs may be a file system in which COPY ON WRITE technology is implemented. Using the COPY ON WRITE technology in Btrfs to copy a sub volume or copy a file is called a snapshot. The server 210 includes a first sub-volume 220, a 2_1 sub-volume 231, a 3_1 sub-volume 232, a 4_1 sub-volume 233, a 2_2 sub-volume 241, a 3_2 sub-volume ( 242) and the 4_2 sub-volume 243 may be created on the Btrfs file system.

하지만 이에 한정되는 것은 아니며, COPY ON WRITE 기술은 COPY ON WRITE 기술을 미지원하는 파일 시스템 상에 소프트웨어적으로 구현될 수 있다. 서버(210)는 Btrfs이외의 FAT (FAT12, FAT16, FAT32), exFAT, NTFS, HFS and HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, Files-11, Veritas File System, VMFS, ZFS, 및 ReiserFS와 같은 파일시스템을 사용할 수 있다. 또한 COPY ON WRITE 기술은 위와 같은 파일 시스템 상에 소프트웨어적으로 구현될 수 있다.However, the present invention is not limited thereto, and the COPY ON WRITE technology may be implemented in software on a file system that does not support the COPY ON WRITE technology. Server 210 other than Btrfs FAT (FAT12, FAT16, FAT32), exFAT, NTFS, HFS and HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, Files-11, Veritas File System, VMFS, ZFS , and filesystems such as ReiserFS. In addition, the COPY ON WRITE technology can be implemented in software on the above file system.

서버(210)는 초기화 클라이언트를 선택할 수 있다. 서버(210)는 서버(210)와 연결가능한 클라이언트들 중 임의로 초기화 클라이언트를 선택할 수 있다. 또한 서버(210)는 미리 정해진 클라이언트를 초기화 클라이언트로 선택할 수 있다. 초기화 클라이언트는 적어도 하나의 클라이언트(260) 중 하나일 수 있다. 서버(210)는 초기화 클라이언트가 마스터 이미지 파일로 부팅하도록 제어할 수 있다. 보다 구체적으로 서버(210)는 초기화 클라이언트를 마스터 이미지 파일과 연결할 수 있다. 초기화 클라이언트와 마스터 이미지 파일을 연결하기 위하여 SAN(Storage area network) 프로토콜 등이 사용될 수 있다. SAN 프로토콜(250)은 Fibre Channel, FCoE(Fibre Channel over Ethernet), SRP(SCSI RDMA Protocol), iSCSI(Internet Small Computer Systems Interface), 또는 Infiniband 중 적어도 하나 프로토콜을 포함할 수 있다.The server 210 may select an initialization client. The server 210 may arbitrarily select an initialization client from among clients connectable to the server 210 . Also, the server 210 may select a predetermined client as an initialization client. The initiating client may be one of the at least one client 260 . The server 210 may control the initialization client to boot with the master image file. More specifically, the server 210 may connect the initialization client with the master image file. A storage area network (SAN) protocol or the like may be used to connect the initialization client and the master image file. The SAN protocol 250 may include at least one of Fiber Channel, Fiber Channel over Ethernet (FCoE), SCSI RDMA Protocol (SRP), Internet Small Computer Systems Interface (iSCSI), and Infiniband.

또한 초기화 클라이언트는 마스터 이미지 파일로 부팅 후 기본 설정 정보를 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계(320)를 수행할 수 있다. 초기화 클라이언트는 마스터 이미지 파일을 설정하기 위하여 마스터 이미지 파일로 부팅할 수 있다. 마스터 이미지 파일로 부팅한 초기화 클라이언트는 기본 설정 정보를 마스터 이미지 파일에 적용할 수 있다. 예를 들어 초기화 클라이언트는 마스터 이미지 파일에 OS를 설치하고 악성코드를 분석하는 프로그램을 설치할 수 있다. 또한 초기화 클라이언트는 악성코드가 활동할 수 있는 프로그램을 설치하거나, 파일들을 생성해둘 수 있다. 초기화 클라이언트의 모든 설정이 끝난 경우, 서버(210)는 변경된 마스터 이미지 파일을 획득할 수 있다. 변경된 마스터 이미지 파일은 제 1 서브 볼륨에 저장되어 있을 수 있다. 변경된 마스터 이미지 파일은 클라이언트 별로 차이를 두지 않은 이미지 파일일 수 있다.In addition, the initialization client may perform step 320 of obtaining a changed master image file by applying basic setting information to the master image file after booting to the master image file. The init client can boot into the master image file to set it up. An initialization client booted with the master image file can apply basic configuration information to the master image file. For example, the initialization client can install the OS to the master image file and install a program that analyzes malicious code. In addition, the initialization client can install programs that malicious code can act on or create files. When all settings of the initialization client are completed, the server 210 may acquire a changed master image file. The changed master image file may be stored in the first sub-volume. The changed master image file may be an image file that does not differ for each client.

서버(210)는 COPY ON WRITE 기능에 의하여 변경된 마스터 이미지 파일이 들어있는 제 1 서브 볼륨(220)을 계승하고, 재변경된 마스터 이미지 파일을 저장하는 제 1_k 서브 볼륨을 생성하는 단계를 수행할 수 있다. 여기서 k는 자연수일 수 있다. 재변경된 마스터 이미지 파일은 변경된 마스터 이미지 파일과 버전이 다를 수 있다. 시스템은 변경된 마스터 이미지 파일과 다른 버전의 적어도 하나의 재변경된 마스터 이미지를 생성할 수 있다.The server 210 inherits the first sub-volume 220 containing the master image file changed by the COPY ON WRITE function, and creates a 1_k sub-volume that stores the changed master image file. . Here, k may be a natural number. The changed master image file may have a different version from the changed master image file. The system may create at least one re-modified master image of a different version than the altered master image file.

초기화 클라이언트는 변경된 마스터 이미지 파일로 부팅하여 다른 기본 설정 정보를 마스터 이미지 파일에 적용할 수 있다. 예를 들어 초기화 클라이언트는 변경된 마스터 이미지 파일에 다른 OS를 설치하고 다른 악성코드를 분석하는 프로그램을 설치할 수 있다. 또한 초기화 클라이언트는 악성코드가 활동할 수 있는 프로그램을 설치하거나, 파일들을 생성해둘 수 있다. 초기화 클라이언트의 모든 설정이 끝난 경우, 서버(210)는 재변경된 마스터 이미지 파일을 획득할 수 있다. 재변경된 마스터 이미지 파일은 제 1_k 서브 볼륨에 저장되어 있을 수 있다. 재변경된 마스터 이미지 파일은 클라이언트 별로 차이를 두지 않은 이미지 파일일 수 있다. 또한 서버(210)는 재변경된 마스터 이미지 파일을 이용하여 복제 마스터 이미지 파일을 생성할 수 있다.The init client can boot into the changed master image file and apply other preference information to the master image file. For example, the initialization client can install a different OS to the changed master image file and install a program that analyzes other malicious codes. In addition, the initialization client can install programs that malicious code can act on or create files. When all settings of the initialization client are finished, the server 210 may acquire a re-changed master image file. The re-modified master image file may be stored in the 1_k sub-volume. The re-modified master image file may be an image file that does not differ for each client. Also, the server 210 may generate a duplicate master image file using the re-modified master image file.

사용자는 변경된 마스터 이미지 파일과 다른 환경을 동일 클라이언트에서 테스트 해보기 위하여 재변경된 마스터 이미지 파일을 생성할 수 있다. 또한 사용자는 재변경된 마스터 이미지 파일을 변경된 마스터 이미지 파일로 되돌리고 싶은 경우, 제 1 서브 볼륨에 저장되어 있는 변경된 마스터 이미지 파일을 이용하여 쉽게 이전으로 돌아갈 수 있다. 이하에서는 제 1 서브 볼륨에 저장되어 있는 변경된 마스터 이미지 파일에 기초하여 제 n_1 서브 볼륨(230)에 저장되어 있는 제 m 복제 마스터 이미지 파일을 생성하는 과정을 설명한다. 하지만 제 1_k 서브 볼륨에 저장되어 있는 재변경된 마스터 이미지 파일에 기초하여 제 n_1 서브 볼륨(230)에 저장되어 있는 제 m 복제 마스터 이미지 파일을 생성하는 과정에도 동일한 설명이 적용될 수 있다.The user can create a re-modified master image file to test the changed master image file and a different environment on the same client. In addition, when the user wants to return the changed master image file to the changed master image file, the user can easily return to the previous one using the changed master image file stored in the first sub-volume. Hereinafter, a process of generating the m-th duplicate master image file stored in the n_1 th sub-volume 230 based on the changed master image file stored in the first sub-volume will be described. However, the same description may be applied to the process of generating the mth duplicate master image file stored in the n_1 th sub-volume 230 based on the re-modified master image file stored in the 1_k th sub-volume.

서버(210)는 변경된 마스터 이미지 파일이 들어있는 제 1 서브 볼륨(220)을 계승하고, 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨(230)을 생성하는 단계(330)를 수행할 수 있다. 여기서 m은 자연수일 수 있다. n은 2이상의 자연수일 수 있다. n=m+1일 수 있다.The server 210 inherits the first sub-volume 220 containing the changed master image file, and creates an n_1 th sub-volume 230 that stores the m-th duplicate master image file. Step 330 can be performed. have. Here, m may be a natural number. n may be a natural number of 2 or more. n=m+1.

서버(210)는 클라이언트(260)의 수 이상의 서브 볼륨을 생성할 수 있다. 클라이언트의 수는 m일 수 있다. m은 자연수일 수 있다. 서버(210)는 마스터 이미지 파일을 저장하는 제 1 서브 볼륨(220) 및 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨(230)을 포함하여 총 n 개의 서브 볼륨을 생성할 수 있다. 여기서 n은 2이상의 자연수일 수 있다. n=m+1일 수 있다.The server 210 may create more than the number of sub-volumes of the clients 260 . The number of clients may be m. m may be a natural number. The server 210 may create a total of n sub-volumes including the first sub-volume 220 for storing the master image file and the n_1 th sub-volume 230 for storing the m-th duplicate master image file. Here, n may be a natural number of 2 or more. n=m+1.

서버(210)는 클라이언트(260)마다 하나의 복제 마스터 이미지 파일을 할당할 수 있다. 예를 들어 클라이언트(260)가 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 포함하는 경우, 서버(210)는 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨(233)을 생성할 수 있다. 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨(233)은 각각 제 1 복제 마스터 이미지 파일, 제 2 복제 마스터 이미지 파일, 및 제 3 복제 마스터 이미지 파일을 포함할 수 있다. 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨(233)은 각각 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)에 대응될 수 있다. 이하에서는 제 n_1 서브 볼륨(230)을 중심으로 설명하지만 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 또는 제 4_1 서브 볼륨(233)에 대해서도 동일한 설명이 적용될 수 있다.The server 210 may allocate one replication master image file to each client 260 . For example, when the client 260 includes a first client 261 , a second client 262 , and a third client 263 , the server 210 may include a 2_1 sub-volume 231 , a 3_1 sub-volume 231 . A volume 232 and a 4_1 sub-volume 233 may be created. The 2_1 sub-volume 231, the 3_1 sub-volume 232, and the 4_1 sub-volume 233 may each include a first replication master image file, a second replication master image file, and a third replication master image file. have. The 2_1 sub-volume 231, the 3_1 sub-volume 232, and the 4_1 sub-volume 233 may correspond to the first client 261, the second client 262, and the third client 263, respectively. have. Hereinafter, the n_1 th sub volume 230 will be mainly described, but the same description may be applied to the 2_1 sub volume 231 , the 3_1 sub volume 232 , or the 4_1 sub volume 233 .

제 n_1 서브 볼륨(230)은 메모리에 생성될 수 있다. 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨은 제 1 서브 볼륨과 동일한 메모리에 생성될 수 있다. 하지만 이에 한정되는 것은 아니며, 제 2_1 서브 볼륨, 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨은 제 1 서브 볼륨과 다른 메모리에 생성될 수 있다. The n_1th sub-volume 230 may be created in the memory. The 2_1 sub-volume 231 , the 3_1 sub-volume 232 , and the 4_1 sub-volume may be created in the same memory as the first sub-volume. However, the present invention is not limited thereto, and the 2_1 sub-volume, the 3_1 sub-volume 232, and the 4_1 sub-volume may be created in a memory different from the first sub-volume.

제 n_1 서브 볼륨(230)은 COPY ON WRITE 기술에 의해 제 1 서브 볼륨(220)을 계승할 수 있다. 예를 들어, 제 1 서브 볼륨이 부모 볼륨이며 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232) 및 제 4_1 서브 볼륨(233)이 자식 볼륨일 수 있다. The n_1th sub-volume 230 may succeed the first sub-volume 220 by the COPY ON WRITE technique. For example, the first sub-volume may be a parent volume, and the 2_1 sub-volume 231 , the 3_1 sub-volume 232 , and the 4_1 sub-volume 233 may be child volumes.

이미 설명한 바와 같이 서버(210)는 COPY ON WRITE 기술이 구현되어 있을 수 있다. 최초로 생성된 제 n_1 서브 볼륨(230)에 저장되어 있는 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일과 동일할 수 있다. 또한 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 수 있다. 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 뿐이므로, 제 m 복제 마스터 이미지 파일이 디스크 내에서 차지하는 실제 용량은 변경된 마스터 이미지 파일의 용량보다 작을 수 있다. As already described, the server 210 may implement COPY ON WRITE technology. The m-th duplicate master image file stored in the n_1 th sub-volume 230 created initially may be the same as the changed master image file. In addition, the m-th duplicate master image file generated initially may include only information for referring to the changed master image file. Since the initially created mth replication master image file only includes information for referencing the changed master image file, the actual capacity occupied by the mth replication master image file on the disk may be smaller than the capacity of the changed master image file.

본 개시의 일 실시예에 따르면, 제 m 복제 마스터 이미지 파일이 수정되는 경우, 서버(210)는 변경된 마스터 이미지 파일로부터 해당파일을 실제로 복사하여 변경 후, 변경된 파일을 제 m 복제 마스터 이미지 파일에 반영할 수 있다. 즉, 제 m 복제 마스터 이미지 파일은 변경된 파일을 포함할 수 있다. 제 m 복제 마스터 이미지 파일은 "변경된 마스터 이미지 파일"과 다른 파일만을 실제로 포함할 수 있다. 이와 같이 원본인 변경된 마스터 이미지 파일과 달라진 부분만 복제 마스터 이미지 파일에 포함하므로, 메모리의 쓰기를 최소화할 수 있으며, 저장공간을 절약할 수 있다. 또한 쓰기 횟수가 한정된 메모리 사용 시, COPY ON WRITE 기술을 적용하지 않은 경우에 비해 메모리의 수명을 연장하여, 유지비용을 절약할 수 있다.According to an embodiment of the present disclosure, when the m-th replication master image file is modified, the server 210 actually copies the file from the changed master image file and reflects the changed file to the m-th replication master image file after the change. can do. That is, the mth replication master image file may include the changed file. The mth duplicate master image file may actually include only files different from the "modified master image file". In this way, since only the part that is different from the original changed master image file is included in the duplicate master image file, it is possible to minimize writing of memory and save storage space. In addition, when using a memory with a limited number of writes, it is possible to reduce the maintenance cost by extending the life of the memory compared to the case where COPY ON WRITE technology is not applied.

본 개시의 다양한 실시예에 따르면, 제 n_1 서브 볼륨이 수정되는 경우, 서버(210)는 제 1 서브 볼륨으로부터 변경된 사항만 제 n_1 서브 볼륨에 반영할 수 있다. 즉, 제 n_1 서브 볼륨은 변경된 컨텐츠를 포함할 수 있다. 제 n_1 서브 볼륨은 제 1 서브 볼륨과 다른 컨텐츠 만을 실제로 포함할 수 있다. 예를 들어, 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일은 제 1 서브 볼륨에 포함된 변경된 마스터 이미지 파일과 다른 컨텐츠 만을 실제로 포함할 수 있다. 이와 같이 원본인 제 1 서브 볼륨과 달라진 부분만 제 n_1 서브 볼륨에 포함되므로, 메모리의 쓰기를 최소화할 수 있으며, 저장공간을 절약할 수 있다. 또한 쓰기 횟수가 한정된 메모리 사용 시, COPY ON WRITE 기술을 적용하지 않은 경우에 비해 메모리의 수명을 연장하여, 유지비용을 절약할 수 있다.According to various embodiments of the present disclosure, when the n_1 th sub-volume is modified, the server 210 may reflect only the changes from the first sub-volume to the n_1 th sub-volume. That is, the n_1 th sub-volume may include changed content. The n_1th sub-volume may actually include only content different from that of the first sub-volume. For example, the mth duplicate master image file included in the n_1th sub-volume may actually include only content different from the changed master image file included in the first sub-volume. As described above, since only a portion different from the original first sub-volume is included in the n_1 th sub-volume, memory writing can be minimized and storage space can be saved. In addition, when using a memory with a limited number of writes, it is possible to reduce the maintenance cost by extending the life of the memory compared to the case where COPY ON WRITE technology is not applied.

서버(210)는 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트에 할당하는 단계(340)를 수행할 수 있다. 서버(210)는 제 n_1 서브 볼륨(230)에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트(260)에 할당하기 위하여 SAN(Storage area network) 프로토콜(250)을 이용할 수 있다. SAN 프로토콜(250)은 Fibre Channel, FCoE(Fibre Channel over Ethernet), SRP(SCSI RDMA Protocol), iSCSI(Internet Small Computer Systems Interface), 또는 Infiniband 중 적어도 하나 프로토콜을 포함할 수 있다. 이하에서는 iSCSI 프로토콜을 이용하는 것을 중심으로 설명한다. 하지만 다른 프로토콜을 이용하는 경우에도 동일한 설명이 적용될 수 있다.The server 210 may perform a step 340 of allocating the mth replication master image file included in the n_1th sub-volume to the client. The server 210 may use the storage area network (SAN) protocol 250 to allocate the mth replication master image file included in the n_1th sub-volume 230 to the client 260 . The SAN protocol 250 may include at least one of Fiber Channel, Fiber Channel over Ethernet (FCoE), SCSI RDMA Protocol (SRP), Internet Small Computer Systems Interface (iSCSI), and Infiniband. Hereinafter, description will be focused on using the iSCSI protocol. However, the same description can be applied even when other protocols are used.

서버(210)는 제 n_1 서브 볼륨(230) 내의 제 m 복제 마스터 이미지 파일에 대하여 iSCSI 연결에 필요한 정보를 생성할 수 있다. 예를 들어 서버(210)는 2_1 서브 볼륨(231), 3_1 서브 볼륨(232), 및 4_1 서브 볼륨(233) 내의 제 m 복제 마스터 이미지 파일에 대하여 각각 iSCSI 연결에 필요한 정보를 생성할 수 있다. 여기서 iSCSI 연결에 필요한 정보는 LUN(logical unit number), iSCSI 타겟의 네트워크 주소와 포트, 또는 iSCSI 타겟의 식별정보 중 적어도 하나의 정보를 포함할 수 있다. iSCSI 타겟의 식별정보는 iSCSI를 식별하기위한 정보일 수 있으며, iSCSI 타겟과 대응될 수 있다. iSCSI 타겟의 식별정보는 IQN(iSCSI Qualified Name)혹은 EUI(Extended Unique Identifier)을 포함할 수 있다. LUN은 iSCSI 타겟 내의 논리 디스크를 식별하기 위한 숫자일 수 있다. 한 개의 iSCSI 타겟은 여러 LUN을 가질 수 있다.The server 210 may generate information necessary for the iSCSI connection with respect to the mth replication master image file in the n_1th sub-volume 230 . For example, the server 210 may generate information required for iSCSI connection with respect to the m-th replication master image file in the 2_1 sub-volume 231 , the 3_1 sub-volume 232 , and the 4_1 sub-volume 233 , respectively. Here, the information required for the iSCSI connection may include at least one of a logical unit number (LUN), a network address and port of the iSCSI target, and identification information of the iSCSI target. The identification information of the iSCSI target may be information for identifying the iSCSI and may correspond to the iSCSI target. The identification information of the iSCSI target may include an iSCSI Qualified Name (IQN) or an Extended Unique Identifier (EUI). A LUN may be a number to identify a logical disk within an iSCSI target. One iSCSI target can have multiple LUNs.

서버(210)는 iSCSI 연결에 필요한 정보를 생성하여 제 n_1 서브 볼륨(230)에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트(260)에 할당할 수 있다. iSCSI 연결에 필요한 정보는 iSCSI 타겟의 식별정보를 포함할 수 있다. 서버(210)가 생성한 iSCSI 타겟의 식별정보의 개수는 클라이언트(260)의 수보다 크거나 같을 수 있다. 하나의 클라이언트는 적어도 하나의 iSCSI 타겟이 접속할 수 있기 때문이다.The server 210 may allocate the m-th replication master image file included in the n_1 th sub-volume 230 to the client 260 by generating information necessary for the iSCSI connection. The information required for the iSCSI connection may include identification information of the iSCSI target. The number of iSCSI target identification information generated by the server 210 may be greater than or equal to the number of clients 260 . This is because one client can connect to at least one iSCSI target.

iSCSI 타겟의 수는 동시에 사용할 클라이언트의 수와 같거나 많을 수 있다. 또한, 하나의 클라이언트는 적어도 하나의 iSCSI 타겟에 접속할 수 있다.The number of iSCSI targets can be equal to or greater than the number of clients to use at the same time. Also, one client may connect to at least one iSCSI target.

클라이언트(260)는 DHCP(Dynamic Host Configuration Protocol) 요청 정보를 서버(210)로 송신할 수 있다. 서버(210)는 DHCP 요청 정보에 대응하여 클라이언트(260)에 할당할 IP 주소를 결정할 수 있다. 또한, 서버(210)는 클라이언트(260)에 할당한 IP 주소를 iSCSI 연결에 필요한 정보와 매칭시킬 수 있다. 이미 설명한 바와 같이 iSCSI 연결에 필요한 정보는 LUN, iSCSI 타겟의 네트워크 주소와 포트, 또는 iSCSI 타겟의 식별정보 중 적어도 하나의 정보를 포함할 수 있다.The client 260 may transmit Dynamic Host Configuration Protocol (DHCP) request information to the server 210 . The server 210 may determine an IP address to be assigned to the client 260 in response to the DHCP request information. Also, the server 210 may match the IP address assigned to the client 260 with information required for the iSCSI connection. As already described, the information required for the iSCSI connection may include at least one of a LUN, a network address and port of an iSCSI target, and identification information of an iSCSI target.

서버(210)는 클라이언트(260)에 IP주소 및 iSCSI 연결에 필요한 정보를 송신할 수 있다. iSCSI 타겟은 메모리 Input/Output을 위한 일종의 인터페이스일 수 있다. iSCSI 타겟의 형태는 네트워크에 연결된 물리적인 스토리지 자체일 수도 있고, 혹은 스토리지 서버에서 가동되는 소프트웨어로 구현된 서비스일 수도 있다. 이 외에도 iSCSI 타겟은 다양한 형태로 존재할 수 있다. 예를 들어, iSCSI 타겟은 서버(210)에 포함된 스토리지 서버일 수 있다. 스토리지 서버는 별도의 독립된 하드웨어를 가질 수 있으나 이에 한정되는 것은 아니며, 서버(210)의 적어도 일부의 하드웨어를 공유할 수 있다. 스토리지 서버는 대용량 메모리를 포함하는 서버일 수 있다. 클라이언트(260)는 IP 주소에 기초하여 네트워크를 설정할 수 있다. 또한 클라이언트(260)는 iSCSI 연결에 필요한 정보에 기초하여 제 n_1 서브 볼륨(230)에 연결할 수 있다. 제 n_1 서브 볼륨(230) 내의 제 m 복제 마스터 이미지 파일을 메모리로써 사용할 수 있다.The server 210 may transmit an IP address and information necessary for an iSCSI connection to the client 260 . The iSCSI target may be a kind of interface for memory input/output. The form of the iSCSI target may be the physical storage itself connected to the network, or it may be a service implemented by software running on the storage server. In addition to this, the iSCSI target may exist in various forms. For example, the iSCSI target may be a storage server included in the server 210 . The storage server may have separate and independent hardware, but is not limited thereto, and may share at least a part of hardware of the server 210 . The storage server may be a server including a large amount of memory. The client 260 may configure a network based on the IP address. Also, the client 260 may connect to the n_1 th sub-volume 230 based on information required for the iSCSI connection. The mth duplicate master image file in the n_1th sub-volume 230 may be used as a memory.

클라이언트(260)가 제 n_1 서브 볼륨(230)에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 제 m 복제 마스터 이미지 파일에 적용하여 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계(350)를 수행할 수 있다.After the client 260 boots to the mth replication master image file included in the n_1th sub-volume 230, applying additional setting information to the mth replication master image file to obtain a changed mth replication master image file (350) ) can be done.

클라이언트(260)는 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅할 수 있다. 이미 설명한 바와 같이 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일과 동일할 수 있다. 제 m 복제 마스터 이미지 파일에는 OS 및 프로그램이 설치되어 있을 수 있다. 하지만, 제 m 복제 마스터 이미지 파일에는 클라이언트(260)를 위한 드라이버가 설치되어 있지 않아 클라이언트(260)가 제대로 동작하지 않을 수 있다. 따라서 클라이언트(260)는 제 m 복제 마스터 이미지 파일에 추가 설정 정보를 적용할 수 있다. 추가 설정 정보를 적용한다는 것은, 프로그램의 정품인증을 하고, 드라이버 설치와 같은 개별 하드웨어에 필요한 설정하는 것을 의미할 수 있다. 클라이언트(260)는 이러한 과정을 통하여 변경된 제 m 복제 마스터 이미지를 획득할 수 있다.The client 260 may boot from the mth duplicate master image file included in the n_1th sub-volume. As already described, the m-th duplicate master image file initially created may be the same as the changed master image file. An OS and a program may be installed in the mth clone master image file. However, the client 260 may not operate properly because the driver for the client 260 is not installed in the mth replication master image file. Accordingly, the client 260 may apply additional setting information to the mth duplicate master image file. Applying additional configuration information may mean setting necessary for individual hardware, such as activating the program and installing drivers. The client 260 may acquire the changed m-th duplicate master image through this process.

예를 들어, 클라이언트(260)에 포함된 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263) 각각은 제 1 복제 마스터 이미지 파일, 제 2 복제 마스터 이미지 파일, 및 제 3 복제 마스터 이미지 파일을 각각 변경하여 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일, 및 변경된 제 3 복제 마스터 이미지 파일을 생성할 수 있다. 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일, 및 변경된 제 3 복제 마스터 이미지 파일은 각각 제 2_1 서브 볼륨, 제 3_1 서브 볼륨, 및 제 4_1 서브 볼륨에 저장되어 있을 수 있다. For example, each of the first client 261 , the second client 262 , and the third client 263 included in the client 260 is a first replication master image file, a second replication master image file, and a second Each of the 3 replication master image files may be changed to generate a modified first replication master image file, a changed second replication master image file, and a modified third replication master image file. The changed first replication master image file, the changed second replication master image file, and the changed third replication master image file may be stored in the 2_1 sub-volume, the 3_1 sub-volume, and the 4_1 sub-volume, respectively.

클라이언트(260)는 자신의 하드웨어에 최적화된 변경된 복제 마스터 이미지 파일을 생성할 수 있다. 예를 들어, 변경된 제 1 복제 마스터 이미지 파일은 제 1 클라이언트(261)의 하드웨어에 최적화되어 있을 수 있다. 만약 제 2 클라이언트(262)가 변경된 제 1 복제 마스터 이미지 파일에 연결된다면, 제 2 클라이언트(262)는 자신의 하드웨어에 맞게 변경된 제 1 복제 마스터 이미지 파일을 재수정해야할 수 있다. 물론 제 1 클라이언트(261) 및 제 2 클라이언트(262)가 동일한 하드웨어를 가지는 경우, 변경된 제 1 복제 마스터 이미지 파일을 재수정할 필요 없을 수 있다는 점은 별론으로 한다. 또한, 다른 하드웨어를 가지더라도 별도의 하드웨어 의존적인 설정이 필요하지 않은 경우 재수정할 필요 없을 수 있다.The client 260 may create a modified clone master image file optimized for its own hardware. For example, the changed first replication master image file may be optimized for the hardware of the first client 261 . If the second client 262 is connected to the changed first replication master image file, the second client 262 may have to re-modify the changed first replication master image file to fit its own hardware. Of course, if the first client 261 and the second client 262 have the same hardware, it is separate from the fact that it may not be necessary to re-modify the changed first duplicate master image file. Also, even if you have different hardware, you may not need to re-modify if you do not need a separate hardware-dependent configuration.

또한 클라이언트(260)에 포함된 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)는 동일한 하드웨어를 가지더라도 서로 다른 설정을 이용하여 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일, 및 변경된 제 3 복제 마스터 이미지 파일을 생성할 수 있다. 서로 다른 설정은 서로 다른 드라이버, 프로그램, 파일을 가진다는 것을 의미할 수 있다. 악성코드 분석 시스템은 클라이언트(260)에 포함된 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 이용하여 다양한 환경에서 악성코드의 동작을 동시에 분석할 수 있다.In addition, the first client 261 , the second client 262 , and the third client 263 included in the client 260 use different settings even if they have the same hardware, and the changed first replication master image file, the changed A second replication master image file and a modified third replication master image file may be generated. Different settings can mean having different drivers, programs, and files. The malicious code analysis system may simultaneously analyze the operation of the malicious code in various environments using the first client 261 , the second client 262 , and the third client 263 included in the client 260 .

악성코드 분석 시스템은 변경된 복제 마스터 이미지 파일을 클라이언트(260)의 초기화를 위해 이용할 수 있다. 클라이언트(260)가 악성코드 분석을 하기 위해 오염되더라도, 악성코드 분석 시스템은 변경된 복제 마스터 이미지 파일에 기초하여 클라이언트(260)를 초기상태로 돌릴 수 있다. 또한 클라이언트(260)는 초기 상태에서 다시 악성코드 분석을 수행할 수 있다. The malicious code analysis system may use the changed copy master image file for initialization of the client 260 . Even if the client 260 is contaminated to perform malicious code analysis, the malicious code analysis system may return the client 260 to the initial state based on the changed copy master image file. Also, the client 260 may perform malicious code analysis again in the initial state.

예를 들어, 변경된 제 m 복제 마스터 이미지 파일은 클라이언트(260)의 초기상태를 저장한 이미지 파일일 수 있다. 예를 들어, 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일 및 변경된 제 3 복제 마스터 이미지 파일은 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263) 각각의 초기 상태를 저장한 이미지 파일일 수 있다. 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)가 사용하고 있는 이미지 파일이 악성코드를 분석하는 과정에서 오염된 경우, 악성코드 분석 시스템은 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일 및 변경된 제 3 복제 마스터 이미지 파일을 이용하여 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)의 이미지 파일을 초기 상태로 돌릴 수 있다. 또한 악성코드 분석 시스템은 초기 상태로 돌아간 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 이용하여 새로운 악성코드를 분석하기 시작할 수 있다. 이에 대하여 도 4 내지 도 5와 함께 보다 자세히 설명한다.For example, the changed mth replication master image file may be an image file storing the initial state of the client 260 . For example, the modified first replication master image file, the modified second replication master image file, and the modified third replication master image file are the first client 261 , the second client 262 , and the third client 263 respectively. It may be an image file in which the initial state of When the image files used by the first client 261 , the second client 262 , and the third client 263 are contaminated during the malicious code analysis process, the malicious code analysis system converts the changed first duplicate master image The image files of the first client 261 , the second client 262 , and the third client 263 can be returned to their initial state by using the file, the changed second clone master image file, and the changed third clone master image file. have. Also, the malicious code analysis system may start to analyze a new malicious code using the first client 261 , the second client 262 , and the third client 263 returned to the initial state. This will be described in more detail with reference to FIGS. 4 to 5 .

서버(210)는 변경된 제 m 복제 마스터 이미지 파일이 들어있는 제 n_1 서브 볼륨(230)을 계승하고, 제 m_1 복제 마스터 이미지 파일을 저장하는 제 n_1_1 서브 볼륨을 더 생성하는 단계를 수행할 수 있다. 제 n_1_1 서브 볼륨은 클라이언트(260)에 각각 대응될 수 있다. 제 m_1 복제 마스터 이미지 파일을 포함할 수 있다. 제 m_1 복제 마스터 이미지 파일은 클라이언트(260)에 각각 대응될 수 있다.The server 210 inherits the n_1 th sub-volume 230 containing the changed m-th replication master image file, and further creates an n_1_1 th sub-volume that stores the m_1 th replication master image file. The n_1_1 th sub-volume may correspond to each of the clients 260 . May include the m_1th replica master image file. The m_1th replication master image file may correspond to each of the clients 260 .

서버(210)는 클라이언트(260)의 수 이상의 서브 볼륨을 더 생성할 수 있다. 서버(210)는 클라이언트(260)마다 서브 볼륨에 포함된 하나의 이미지 파일을 할당할 수 있다. 예를 들어 클라이언트(260)가 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 포함하는 경우, 서버(210)는 제 2_1_1 서브 볼륨, 제 3_1_1 서브 볼륨 및 제 4_1_1 서브 볼륨을 생성할 수 있다. 제 2_1_1 서브 볼륨, 제 3_1_1 서브 볼륨 및 제 4_1_1 서브 볼륨은 각각 제 1_1 복제 마스터 이미지 파일, 제 2_1 복제 마스터 이미지 파일, 및 제 3_1 복제 마스터 이미지 파일을 포함할 수 있다. 제 2_1_1 서브 볼륨, 제 3_1_1 서브 볼륨 및 제 4_1_1 서브 볼륨은 각각 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)에 대응될 수 있다. 이하에서는 제 n_1_1 서브 볼륨을 중심으로 설명하지만 제 2_1_1 서브 볼륨, 제 3_1_1 서브 볼륨, 또는 제 4_1_1 서브 볼륨에 대해서도 동일한 설명이 적용될 수 있다.The server 210 may further create sub-volumes greater than or equal to the number of clients 260 . The server 210 may allocate one image file included in the sub-volume to each client 260 . For example, when the client 260 includes a first client 261 , a second client 262 , and a third client 263 , the server 210 may include a 2_1_1 sub-volume, a 3_1_1 sub-volume and a second client 263 . You can create 4_1_1 sub-volumes. The 2_1_1 th sub-volume, the 3_1_1 sub-volume, and the 4_1_1 sub-volume may include a 1_1 duplicate master image file, a 2_1 duplicate master image file, and a 3_1 duplicate master image file, respectively. The 2_1_1 sub-volume, the 3_1_1 sub-volume, and the 4_1_1 sub-volume may correspond to the first client 261 , the second client 262 , and the third client 263 , respectively. Hereinafter, the n_1_1 th sub-volume will be mainly described, but the same description may be applied to the 2_1_1 th sub-volume, the 3_1_1 sub-volume, or the 4_1_1 th sub-volume.

이미 설명한 바와 같이 서버(210)에 COPY ON WRITE 기술이 구현되어 있을 수 있다. 최초로 생성된 제 n_1_1 서브 볼륨에 저장되어 있는 제 m_1 복제 마스터 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일과 동일할 수 있다. 또한 최초로 생성된 제 m_1 복제 마스터 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 수 있다. 최초로 생성된 제 m_1 복제 마스터 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 뿐이므로, 제 m 복제 마스터 이미지 파일이 디스크 내에서 차지하는 실제 용량은 변경된 마스터 이미지 파일의 용량보다 작을 수 있다. As already described, the COPY ON WRITE technology may be implemented in the server 210 . The m_1 th replication master image file stored in the initially created n_1_1 th sub-volume may be the same as the changed m th replication master image file. In addition, the initially generated m_1 th replication master image file may include only information for referring to the changed m th replication master image file. Since the initially created m_1th replication master image file only contains information for referencing the changed mth replication master image file, the actual capacity occupied by the mth replication master image file on the disk may be smaller than the capacity of the changed master image file. can

제 n_1_1 서브 볼륨은 COPY ON WRITE 기술에 의해 제 n_1 서브 볼륨을 계승할 수 있다. 본 개시의 다양한 실시예에 따르면, 제 n_1_1 서브 볼륨이 수정되는 경우, 서버(210)는 제 n_1 서브 볼륨으로부터 변경된 사항만 제 n_1_1 서브 볼륨에 반영할 수 있다. 즉, 제 n_1_1 서브 볼륨은 변경된 컨텐츠를 포함할 수 있다. 제 n_1_1 서브 볼륨은 제 n_1 서브 볼륨과 다른 컨텐츠 만을 실제로 포함할 수 있다. 예를 들어, 제 n_1_1 서브 볼륨에 포함된 제 m_1 복제 마스터 이미지 파일은 제 n_1 서브 볼륨에 포함된 변경된 제 m 복제 마스터 이미지 파일과 다른 컨텐츠 만을 실제로 포함할 수 있다.The n_1_1 th sub-volume may succeed the n_1 th sub-volume by the COPY ON WRITE technique. According to various embodiments of the present disclosure, when the n_1_1 th sub-volume is modified, the server 210 may reflect only the changes from the n_1 th sub-volume to the n_1_1 th sub-volume. That is, the n_1_1 th sub-volume may include changed content. The n_1_1 th sub-volume may actually include only content different from the n_1 th sub-volume. For example, the m_1 th replication master image file included in the n_1_1 th sub-volume may actually include only content different from the changed m th replication master image file included in the n_1 th sub-volume.

서버(210)는 제 n_1_1 서브 볼륨에 포함된 제 m_1 복제 마스터 이미지 파일을 클라이언트에 할당하는 단계를 수행할 수 있다. 클라이언트(260)는 DHCP(Dynamic Host Configuration Protocol) 요청 정보를 서버(210)로 송신할 수 있다. 서버(210)는 DHCP 요청 정보에 대응하여 클라이언트(260)에 할당할 IP 주소를 결정할 수 있다. 또한, 서버(210)는 클라이언트(260)에 할당한 IP 주소를 iSCSI 연결에 필요한 정보와 매칭시킬 수 있다. 서버(210)는 클라이언트(260)에 IP주소 및 iSCSI 연결에 필요한 정보를 송신할 수 있다. The server 210 may perform the step of allocating the m_1 th replication master image file included in the n_1_1 th sub-volume to the client. The client 260 may transmit Dynamic Host Configuration Protocol (DHCP) request information to the server 210 . The server 210 may determine an IP address to be assigned to the client 260 in response to the DHCP request information. Also, the server 210 may match the IP address assigned to the client 260 with information required for the iSCSI connection. The server 210 may transmit an IP address and information necessary for an iSCSI connection to the client 260 .

클라이언트(260)는 제 n_1_1 서브 볼륨에 포함된 제 m_1 복제 마스터 이미지 파일로 부팅 후 더 추가 설정 정보를 제 m_1 복제 마스터 이미지 파일에 적용하여 변경된 제 m_1 복제 마스터 이미지 파일을 획득하는 단계를 수행할 수 있다. 변경된 제 m_1 복제 마스터 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일과 버전이 다를 수 있다. 시스템은 위와 같은 방법을 여러번 수행하여 제 m 복제 마스터 이미지 파일과 다른 버전의 적어도 하나의 복제 마스터 이미지를 생성할 수 있다. 사용자는 변경된 제 m 복제 마스터 이미지 파일과 다른 환경을 동일 클라이언트에서 테스트 해보기 위하여 변경된 제 m_1 복제 마스터 이미지 파일을 생성할 수 있다. 또한 사용자는 변경된 제 m_1 복제 마스터 이미지 파일을 변경된 제 m 복제 마스터 이미지 파일로 되돌리고 싶은 경우, 제 n_1 서브 볼륨에 저장되어 있는 변경된 제 m 복제 마스터 이미지 파일을 이용하여 쉽게 이전으로 돌아갈 수 있다. After booting with the m_1th replication master image file included in the n_1_1th sub-volume, the client 260 applies additional setting information to the m_1th replication master image file to obtain a changed m_1th replication master image file. have. The modified m_1st replication master image file may have a different version from the changed mth replication master image file. The system may perform the above method multiple times to generate at least one duplicate master image of a different version from the mth duplicate master image file. The user may create a changed m_1th replication master image file to test the environment different from the changed mth replication master image file on the same client. In addition, if the user wants to return the changed m_1th replication master image file to the changed mth replication master image file, the user can easily return to the previous using the changed mth replication master image file stored in the n_1th sub-volume.

이상과 같이 서버(210)가 변경된 제 m 복제 마스터 이미지 파일이 들어있는 제 n_1 서브 볼륨(230)을 계승하고, 제 m_1 복제 마스터 이미지 파일을 저장하는 제 n_1_1 서브 볼륨을 더 생성과정을 설명하였다. 위와 동일한 과정을 이용하여 서버(210)는 변경된 제 m_k 복제 마스터 이미지 파일이 들어있는 제 n_1_k 서브 볼륨(230)을 계승하고, 제 m_(k+1) 복제 마스터 이미지 파일을 저장하는 제 n_1_(k+1) 서브 볼륨을 더 생성하는 단계를 수행할 수 있다. 여기서 k는 자연수일 수 있다.As described above, the server 210 inherits the n_1 th sub-volume 230 containing the changed m-th replication master image file and creates the n_1_1 th sub-volume for storing the m_1 th replication master image file. Using the same process as above, the server 210 inherits the n_1_k-th sub-volume 230 containing the changed m_k-th replication master image file, and stores the m_(k+1)-th replication master image file, n_1_(k) +1) The step of creating more sub-volumes may be performed. Here, k may be a natural number.

이하에서는 클라이언트(260)가 악성코드를 테스트하기 위하여 변경된 제 m 복제 마스터 이미지 파일을 이용하는 것을 중심으로 설명한다. 하지만 변경된 제 m 복제 마스터 이미지 파일 대신에 변경된 제 m_k 복제 마스터 이미지 파일을 이용하여도 악성코드를 테스트하기 위한 과정이 동일하게 설명될 수 있다.Hereinafter, the client 260 will mainly describe using the changed m-th duplicate master image file to test the malicious code. However, the process for testing the malicious code can be equally described by using the changed m_k clone master image file instead of the changed mth clone master image file.

도 4는 본 개시의 일 실시예에 따른 서버 또는 클라이언트를 나타낸 블록도이다. 또한 도 5는 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타낸 흐름도이다. 4 is a block diagram illustrating a server or a client according to an embodiment of the present disclosure. 5 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.

이하에서는 도 4와 함께 도 5의 악성코드 분석 시스템의 흐름도를 설명한다.Hereinafter, a flowchart of the malicious code analysis system of FIG. 5 together with FIG. 4 will be described.

서버(210)는 변경된 제 m 복제 마스터 이미지 파일을 포함하는 제 n_1 서브 볼륨(230)을 계승하고, 제 m_1 부팅 이미지 파일을 저장하는 제 n_2 서브 볼륨(240)을 생성하는 단계(510)를 수행할 수 있다. 여기서 m은 자연수일 수 있다. 또한 n은 2 이상의 자연수 일 수 있다. N=m+1일 수 있다.The server 210 inherits the n_1 th sub-volume 230 including the changed m th clone master image file, and creates an n_2 th sub-volume 240 that stores the m_1 th boot image file. Step 510 is performed. can do. Here, m may be a natural number. Also, n may be a natural number of 2 or more. N=m+1.

제 n_2 서브 볼륨(240)은 제 n_1 서브 볼륨(230)을 계승할 수 있다. 서버(210)는 제 n_1 서브 볼륨(230)에 Btrfs의 스냅샷 기능을 이용하여 제 n_2 서브 볼륨(240)은 생성할 수 있다. 이미 설명한 바와 같이 스냅샷 기능은 COPY ON WRITE 기능을 의미할 수 있다. 제 n_2 서브 볼륨(240)은 제 m_1 부팅 이미지 파일을 저장하고 있을 수 있다. The n_2 th sub-volume 240 may succeed the n_1 th sub-volume 230 . The server 210 may create the n_2th sub-volume 240 on the n_1th sub-volume 230 by using the snapshot function of Btrfs. As already described, the snapshot function may mean a COPY ON WRITE function. The n_2 th sub-volume 240 may store the m_1 th boot image file.

서버(210)는 클라이언트(260)의 수 이상의 서브 볼륨을 더 생성할 수 있다. 클라이언트의 수는 m일 수 있다. m은 자연수일 수 있다. 서버(210)는 마스터 이미지 파일을 저장하는 제 1 서브 볼륨(220), 제 n_1 서브 볼륨(230) 및 제 n_2 서브 볼륨(240)을 포함하여 총 n+m 개 이상의 서브 볼륨을 생성할 수 있다. 즉, 이 때, 동시에 사용할 클라이언트의 수가 m이라면 전체 서브 볼륨의 개수는 제 n_2 서브 볼륨 그룹에 해당되는 m개, n_1 서브 볼륨 그룹에 해당되는 m개, 그리고 제 1 서브 볼륨 1개로 최소 m+n개의 서브볼륨이 필요할 수 있다. 또한 이미 설명한 바와 같이 제 n_1_k 서브 볼륨 등이 더 생성된다면, 서브 볼륨의 개수는 더 많아질 수 있다. 여기서 n은 2이상의 자연수일 수 있다. n=m+1일 수 있다. 또한 k는 자연수일 수 있다.The server 210 may further create sub-volumes greater than or equal to the number of clients 260 . The number of clients may be m. m may be a natural number. The server 210 may create a total of n+m or more sub-volumes including the first sub-volume 220, the n_1th sub-volume 230, and the n_2th sub-volume 240 for storing the master image file. . That is, at this time, if the number of clients to be used at the same time is m, the total number of sub-volumes is m corresponding to the n_2 sub-volume group, m corresponding to the n_1 sub-volume group, and at least m+n with 1 first sub-volume. Two subvolumes may be required. Also, as already described, if the n_1_k-th sub-volume is further created, the number of sub-volumes may be increased. Here, n may be a natural number of 2 or more. n=m+1. Also, k may be a natural number.

예를 들어 클라이언트(260)가 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 포함하는 경우, 서버(210)는 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242) 및 제 4_2 서브 볼륨(243)을 생성할 수 있다. 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242) 및 제 4_2 서브 볼륨(243)은 각각 제 1_1 부팅 이미지 파일, 제 2_1 부팅 이미지 파일, 및 제 3_1 부팅 이미지 파일을 포함할 수 있다. 이하에서는 제 n_2 서브 볼륨(240)을 중심으로 설명하지만 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 또는 제 4_2 서브 볼륨(243)에 대해서도 동일한 설명이 적용될 수 있다.For example, when the client 260 includes a first client 261 , a second client 262 , and a third client 263 , the server 210 may include a second sub-volume 241 and a third sub-volume 3_2 A volume 242 and a 4_2 sub-volume 243 may be created. The 2_2 sub-volume 241 , the 3_2 sub-volume 242 , and the 4_2 sub-volume 243 may include a 1_1 boot image file, a 2_1 boot image file, and a 3_1 boot image file, respectively. Hereinafter, the n_2th sub-volume 240 will be mainly described, but the same description may be applied to the 2_2 sub-volume 241 , the 3_2 sub-volume 242 , or the 4_2th sub-volume 243 .

제 n_2 서브 볼륨(240)은 메모리에 생성될 수 있다. 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243)은 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 및 제 4_2 서브 볼륨(233) 또는 제 1 서브 볼륨(220)과 동일한 메모리에 생성될 수 있다. 하지만 이에 한정되는 것은 아니며, 제 2_1 서브 볼륨, 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243)은 제 1 서브 볼륨(220) 또는 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 및 제 4_1 서브 볼륨(233)과 다른 메모리에 생성될 수 있다. The n_2th sub-volume 240 may be created in the memory. 2_2 sub-volume 241, 3_2 sub-volume 242, and 4_2 sub-volume 243 are 2_1 sub-volume 231, 3_1 sub-volume 232, and 4_2 sub-volume 233 or It may be created in the same memory as the first sub-volume 220 . However, the present invention is not limited thereto, and the 2_1 sub-volume, the 3_2 sub-volume 242, and the 4_2 sub-volume 243 are the first sub-volume 220, the 2_1 sub-volume 231, and the 3_1 sub-volume ( 232), and the 4_1 sub-volume 233 may be created in a different memory.

제 n_2 서브 볼륨(240)은 COPY ON WRITE 기술에 의해 제 n_1 서브 볼륨(230)을 계승할 수 있다. 여기서 제 n_1 서브 볼륨(230)은 부모 볼륨이며 제 n_2 서브 볼륨(240)은 자식 볼륨일 수 있다. 또한 상술한 바와 같이 제 n_1_1 서브 볼륨이 생성되었다면, 제 n_2 서브 볼륨(240)은 은 COPY ON WRITE 기술에 의해 제 n_1_1 서브 볼륨을 계승할 수 있다. 이하에서는 제 n_2 서브 볼륨(240)이 제 n_1 서브 볼륨(230)을 계승하는 경우를 중심으로 설명하지만 제 n_2 서브 볼륨(240)이 제 n_1_1 서브 볼륨을 계승하는 경우에 대해서도 동일한 설명이 적용될 수 있다.The n_2th sub-volume 240 may succeed the n_1th sub-volume 230 by the COPY ON WRITE technique. Here, the n_1 th sub-volume 230 may be a parent volume, and the n_2 th sub-volume 240 may be a child volume. Also, if the n_1_1 th sub-volume is generated as described above, the n_2 th sub-volume 240 may inherit the n_1_1 th sub-volume by using the COPY ON WRITE technique. Hereinafter, the case where the n_2th sub-volume 240 succeeds the n_1th sub-volume 230 will be mainly described, but the same description can be applied to the case where the n_2th sub-volume 240 inherits the n_1_1th sub-volume. .

도 4를 참조하면, 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243)은 COPY ON WRITE 기술에 의해 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 및 제 4_1 서브 볼륨(233)을 각각 계승할 수 있다. 즉, 제 2_1 서브 볼륨(231), 제 3_1 서브 볼륨(232), 및 제 4_1 서브 볼륨(233)이 부모 볼륨이며 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243)이 자식 볼륨일 수 있다. 또한, 필요에 따라 서버(210)는 제 n_2 서브 볼륨(240)을 계승하여 제 n_k 서브 볼륨을 생성할 수 있다. 이와 같은 과정을 통하여 서브 볼륨들에 데이터의 읽기, 쓰기를 줄이면서도, 빠르고 안정적으로 악성코드를 분석할 수 있다.Referring to FIG. 4 , the 2_2 sub-volume 241, the 3_2 sub-volume 242, and the 4_2 sub-volume 243 are the 2_1 sub-volume 231 and the 3_1 sub-volume ( 232) and the 4_1th sub-volume 233 may be inherited, respectively. That is, the 2_1 sub-volume 231, the 3_1 sub-volume 232, and the 4_1 sub-volume 233 are parent volumes, and the 2_2 sub-volume 241, the 3_2 sub-volume 242, and the 4_2 sub-volume are Volume 243 may be a child volume. Also, if necessary, the server 210 may create an n_k-th sub-volume by inheriting the n_2th sub-volume 240 . Through this process, it is possible to quickly and stably analyze malicious codes while reducing the reading and writing of data to the sub-volumes.

이미 설명한 바와 같이 서버(210)는 COPY ON WRITE 기술이 구현되어 있을 수 있다. 제 n_2 서브 볼륨(240)에 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일과 동일할 수 있다. 또한 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 수 있다. 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 뿐이므로, 제 m_1 부팅 이미지 파일의 용량은 변경된 제 m 복제 마스터 이미지 파일의 용량보다 작을 수 있다.As already described, the server 210 may implement COPY ON WRITE technology. The m_1 th boot image file initially created in the n_2 th sub-volume 240 may be the same as the changed m th duplicate master image file. In addition, the initially generated m_1 th boot image file may include only information for referring to the changed m th clone master image file. Since the initially generated m_1 th boot image file only includes information for referencing the changed m th clone master image file, the capacity of the m_1 th boot image file may be smaller than the capacity of the changed m th clone master image file.

본 개시의 일 실시예에 따르면,제 m_1 부팅 이미지 파일이 수정되는 경우, 서버(210)는 변경된 제 m 복제 마스터 이미지 파일로부터 해당파일을 실제로 복사하여 변경 후 변경된 파일을 제 m_1 부팅 이미지 파일에 반영할 수 있다. 즉, 제 m_1 부팅 이미지 파일은 변경된 파일을 포함할 수 있다. 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일과 다른 파일만을 실제로 포함할 수 있다.According to an embodiment of the present disclosure, when the m_1 th boot image file is modified, the server 210 actually copies the corresponding file from the changed m th clone master image file and reflects the changed file to the m_1 th boot image file after the change. can do. That is, the m_1 th boot image file may include the changed file. The m_1 th boot image file may actually include only a file different from the changed m th clone master image file.

본 개시의 다양한 실시예에 따르면, 제 n_2 서브 볼륨이 수정되는 경우, 서버(210)는 제 n_1 서브 볼륨으로부터 변경된 사항만 제 n_2 서브 볼륨에 반영할 수 있다. 즉, 제 n_2 서브 볼륨은 변경된 컨텐츠를 포함할 수 있다. 제 n_2 서브 볼륨은 제 n_1 서브 볼륨과 다른 컨텐츠 만을 실제로 포함할 수 있다. 예를 들어, 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일은 제 n_1 서브 볼륨에 포함된 변경된 제 m 복제 마스터 이미지 파일과 다른 컨텐츠 만을 실제로 포함할 수 있다. According to various embodiments of the present disclosure, when the n_2th sub-volume is modified, the server 210 may reflect only the changes from the n_1th sub-volume to the n_2th sub-volume. That is, the n_2th sub-volume may include changed content. The n_2 th sub-volume may actually include only content different from the n_1 th sub-volume. For example, the m_1 th boot image file included in the n_2 th sub volume may actually include only content different from the changed m th duplicate master image file included in the n_1 th sub volume.

서버(210)는 제 n_2 서브 볼륨(240)에 포함된 제 m_1 부팅 이미지 파일을 클라이언트(260)에 할당하는 단계(520)를 수행할 수 있다. 서버(210)는 제 n_2 서브 볼륨(240) 내의 제 m_1 부팅 이미지 파일을 클라이언트(260)에 할당하기 위하여 SAN 프로토콜(250)을 이용할 수 있다. SAN 프로토콜(250)은 Fibre Channel, FCoE(Fibre Channel over Ethernet), SRP(SCSI RDMA Protocol), iSCSI(Internet Small Computer Systems Interface), 또는 Infiniband 중 적어도 하나 프로토콜을 포함할 수 있다. 이하에서는 iSCSI 프로토콜을 이용하는 것을 중심으로 설명한다. 하지만 다른 프로토콜을 이용하는 경우에도 동일한 설명이 적용될 수 있다.The server 210 may perform an operation 520 of allocating the m_1th boot image file included in the n_2th sub-volume 240 to the client 260 . The server 210 may use the SAN protocol 250 to allocate the m_1 th boot image file in the n_2 th sub-volume 240 to the client 260 . The SAN protocol 250 may include at least one of Fiber Channel, Fiber Channel over Ethernet (FCoE), SCSI RDMA Protocol (SRP), Internet Small Computer Systems Interface (iSCSI), and Infiniband. Hereinafter, description will be focused on using the iSCSI protocol. However, the same description can be applied even when other protocols are used.

서버(210)는 제 n_2 서브 볼륨(240) 내의 제 m_1 부팅 이미지 파일에 대하여 iSCSI 연결에 필요한 정보를 생성할 수 있다. 서버(210)는 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243) 내의 제 1_1 부팅 이미지 파일, 제 2_1 부팅 이미지 파일, 제 3_1 부팅 이미지 파일에 대하여 각각 iSCSI 연결에 필요한 정보를 생성할 수 있다. 여기서 iSCSI 연결에 필요한 정보는 LUN(logical unit number), iSCSI 타겟의 네트워크 주소와 포트, 또는 iSCSI 타겟의 식별정보 중 적어도 하나의 정보를 포함할 수 있다. iSCSI 타겟의 식별정보는 IQN(iSCSI Qualified Name)혹은 EUI(Extended Unique Identifier)을 포함할 수 있다. LUN은 iSCSI 타겟 내의 논리 디스크를 식별하기 위한 숫자일 수 있다.The server 210 may generate information necessary for iSCSI connection with respect to the m_1 th boot image file in the n_2 th sub volume 240 . The server 210 configures the first boot image file, the second_1 boot image file, and the third_1 boot image file in the 2_2 sub-volume 241, the 3_2 sub-volume 242, and the 4_2 sub-volume 243, respectively. You can create the necessary information for the iSCSI connection. Here, the information required for the iSCSI connection may include at least one of a logical unit number (LUN), a network address and port of the iSCSI target, and identification information of the iSCSI target. The identification information of the iSCSI target may include an iSCSI Qualified Name (IQN) or an Extended Unique Identifier (EUI). A LUN may be a number to identify a logical disk within an iSCSI target.

클라이언트(260)는 DHCP 요청 정보를 서버(210)로 송신할 수 있다. 서버(210)는 DHCP 요청 정보에 대응하여 클라이언트(260)에 할당할 IP 주소를 결정할 수 있다. 또한, 서버(210)는 클라이언트(260)에 할당한 IP 주소를 iSCSI 연결에 필요한 정보와 매칭시키실 수 있다. 서버(210)는 클라이언트(260)에 IP주소 및 iSCSI 연결에 필요한 정보를 송신할 수 있다. iSCSI 타겟은 서버(210)에 포함된 스토리지 서버일 수 있다. 스토리지 서버는 대용량 메모리를 포함하는 서버일 수 있다. 클라이언트(260)는 IP 주소에 기초하여 네트워크를 설정할 수 있다. 또한 클라이언트(260)는 iSCSI 타겟 주소에 기초하여 제 n_2 서브 볼륨(240)에 연결할 수 있으며, 제 n_2 서브 볼륨(240) 내의 제 m_1 부팅 이미지 파일을 메모리로써 사용할 수 있다. The client 260 may transmit DHCP request information to the server 210 . The server 210 may determine an IP address to be assigned to the client 260 in response to the DHCP request information. Also, the server 210 may match the IP address assigned to the client 260 with information required for the iSCSI connection. The server 210 may transmit an IP address and information necessary for an iSCSI connection to the client 260 . The iSCSI target may be a storage server included in the server 210 . The storage server may be a server including a large amount of memory. The client 260 may configure a network based on the IP address. In addition, the client 260 may connect to the n_2 th sub-volume 240 based on the iSCSI target address and use the m_1 th boot image file in the n_2 th sub-volume 240 as a memory.

클라이언트(260)는 제 n_2 서브 볼륨(240)에 포함된 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버(210)로 전송하는 단계(530)를 수행할 수 있다. The client 260 performs malicious code analysis after booting with the m_1th boot image file included in the n_2th sub-volume 240, and transmits the malicious code analysis result related to the contaminated m_1st boot image file to the server 210. Step 530 may be performed.

제 1 클라이언트(261)는 제 2_2 서브 볼륨(241)에 포함된 1_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고, 오염된 1_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 상기 서버로 전송할 수 있다. 또한, 제 2 클라이언트(262)는 제 3_2 서브 볼륨(242)에 포함된 2_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고, 오염된 2_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버로 전송할 수 있다. 제 3 클라이언트(263)는 제 4_2 서브 볼륨(243)에 포함된 3_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고, 오염된 3_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버로 전송할 수 있다. The first client 261 may perform malicious code analysis after booting with the 1_1 boot image file included in the 2_2 sub-volume 241, and transmit the malicious code analysis result related to the contaminated 1_1 boot image file to the server. . In addition, the second client 262 performs malicious code analysis after booting with the 2_1 boot image file included in the 3_2 sub-volume 242, and transmits the malicious code analysis result related to the contaminated 2_1 boot image file to the server. have. The third client 263 may perform malicious code analysis after booting with the 3_1 boot image file included in the 4_2 sub-volume 243 , and transmit a malicious code analysis result related to the contaminated 3_1 boot image file to the server.

악성코드를 분석한다는 것은 클라이언트(260)가 악성코드에 감염되어 악성코드가 하는 동작을 로그 파일로 기록한다는 것을 의미할 수 있다. 따라서 제 m_1 부팅 이미지 파일은 오염될 수 있다.Analyzing the malicious code may mean that the client 260 is infected with the malicious code and records the operation of the malicious code as a log file. Therefore, the m_1th boot image file may be corrupted.

클라이언트(260)는 분석 결과를 서버(210)로 전송할 수 있다. 분석 결과는 악성코드의 동작을 나타내는 로그 데이터일 수 있다. 클라이언트(260)는 악성코드를 분석하기 위하여 제 n_2 서브 볼륨(240)에 포함된 제 m_1 부팅 이미지 파일은 악성코드에 의하여 오염된다. 서버(210)는 오염된 제 m_1 부팅 이미지 파일을 포함하는 제 n_2 서브 볼륨(240)을 초기화할 수 있다. 즉 서버(210)는 오염된 1_1 부팅 이미지 파일을 포함하는 제 2_2 서브 볼륨(241)을 초기화할 수 있다. 또한, 서버(210)는 오염된 2_1 부팅 이미지 파일을 포함하는 제 3_2 서브 볼륨(242)을 초기화할 수 있다. 또한, 서버(210)는 오염된 3_1 부팅 이미지 파일을 포함하는 제 4_2 서브 볼륨(243)을 초기화할 수 있다. 제 n_2 서브 볼륨(240)을 초기화하기 위하여 서버(210)는 n_2 서브 볼륨(240)을 삭제 후 n_1 서브 볼륨(240)을 스냅샷 기능으로 복제하여 n_2 서브 볼륨(240)을 재생성할 수 있다. 스냅샷 기능은 COPY ON WRITE 기능과 대응될 수 있다.The client 260 may transmit the analysis result to the server 210 . The analysis result may be log data indicating the operation of the malicious code. In order for the client 260 to analyze the malicious code, the m_1 th boot image file included in the n_2 th sub-volume 240 is contaminated by the malicious code. The server 210 may initialize the n_2th sub-volume 240 including the corrupted m_1th boot image file. That is, the server 210 may initialize the 2_2 sub-volume 241 including the contaminated 1_1 boot image file. Also, the server 210 may initialize the 3_2 sub-volume 242 including the corrupt 2_1 boot image file. Also, the server 210 may initialize the 4_2 th sub-volume 243 including the corrupt 3_1 boot image file. In order to initialize the n_2th sub-volume 240 , the server 210 deletes the n_2 sub-volume 240 and copies the n_1 sub-volume 240 using a snapshot function to re-create the n_2 sub-volume 240 . The snapshot function may correspond to the COPY ON WRITE function.

클라이언트(260)는 미리 정해진 시간동안에 악성코드 분석을 수행할 수 있다. 여기서 미리 정해진 시간은 시스템 관리자에 의하여 입력되거나, 외부의 장치로부터 수신될 수 있다. 클라이언트(260)에 의해 실행되는 악성코드 분석 프로그램은 악성코드 분석 결과를 도출하기 위한 일련의 명령어들이 포함되어 있을 수 있다. 클라이언트(260)가 미리 정해진 시간 내에 악성코드 분석 프로그램의 일련의 명령어들을 모두 실행하여 악성코드 분석 결과가 도출된 경우, 클라이언트(260)는 분석 결과를 서버(210)로 전송할 수 있다. 그 후 서버(210)는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 재시작하거나 종료할 수 있다. 또한, 클라이언트(260)가 미리 정해진 시간이 지났음에도 악성코드 분석 프로그램의 일련의 명령어들을 모두 실행하지 못한 경우, 클라이언트(260)는 현재까지 수집된 분석 결과를 서버(210)로 전송할 수 있다. 현재까지 수집된 분석 결과에는 분석 프로그램의 일련의 명령어들을 모두 실행하지 못했음을 나타내는 정보가 포함되어 있을 수 있다. 그 후 서버(210)는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 강제로 재시작하거나 종료할 수 있다. 클라이언트(260)가 분석을 시작한 후 미리 정해진 시간 내에 분석을 완료하지 못한 경우, 서버(210)는 클라이언트(260)를 종료시키거나 재부팅시켜서, 악성코드가 클라이언트(260)에서 지속적으로 실행되는 것을 방지할 수 있다. 따라서 악성 코드 시스템은 악성코드에 의한 부작용 또는 전력 낭비를 방지할 수 있다.The client 260 may perform malicious code analysis for a predetermined period of time. Here, the predetermined time may be input by a system administrator or received from an external device. The malicious code analysis program executed by the client 260 may include a series of commands for deriving a malicious code analysis result. When the malicious code analysis result is derived by the client 260 executing a series of commands of the malicious code analysis program within a predetermined time, the client 260 may transmit the analysis result to the server 210 . Thereafter, the server 210 may restart or terminate the client 260 to initialize the n_2 th sub-volume 240 . Also, when the client 260 fails to execute all of a series of commands of the malicious code analysis program even after a predetermined time has elapsed, the client 260 may transmit the analysis results collected so far to the server 210 . The analysis results collected so far may include information indicating that all a series of commands of the analysis program have not been executed. After that, the server 210 may forcefully restart or terminate the client 260 to initialize the n_2th sub-volume 240 . If the client 260 does not complete the analysis within a predetermined time after starting the analysis, the server 210 terminates or reboots the client 260 to prevent the malicious code from being continuously executed in the client 260 . can do. Therefore, the malicious code system can prevent side effects or power wastage caused by the malicious code.

서버(210)는 오염된 제 m_1 부팅 이미지 파일을 포함하는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 종료시키거나 재부팅시킬 수 있다. 클라이언트(260)가 종료된 경우, 서버(210)는 클라이언트(260)에 시작 신호를 송신하여 클라이언트(260)가 다시 시작되도록 할 수 있다. 클라이언트(260)가 부팅 또는 재부팅하는 과정 중에, 오염된 제 m_1 부팅 이미지 파일을 포함하는 제 n_2 서브 볼륨(240)은 초기화 될 수 있다.The server 210 may terminate or reboot the client 260 to initialize the n_2 th sub-volume 240 including the m_1 th boot image file that is contaminated. When the client 260 is terminated, the server 210 may transmit a start signal to the client 260 so that the client 260 is restarted. During the process of booting or rebooting the client 260 , the n_2 th sub-volume 240 including the corrupt m_1 th boot image file may be initialized.

서버(210)가 제 n_2 서브 볼륨(240)을 초기화 하는 과정을 도 6과 함께 설명한다.A process in which the server 210 initializes the n_2th sub-volume 240 will be described with reference to FIG. 6 .

도 6은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다. 또한, 도 7은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다.6 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure. 7 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.

클라이언트(260)는 서버(210)에 제 1 DHCP(Dynamic Host Configuration Protocol) 요청을 송신하는 단계(631)를 수행할 수 있다. 도 6 및 도 7의 단계들은 클라이언트(260)가 부팅 또는 재부팅하면서 수행될 수 있다. 예를 들어, 클라이언트(260)는 전원이 꺼져 있는 상태에서 악성코드를 분석하기 위하여 서버(210) 또는 사용자의 명령에 의하여 전원이 켜질 수 있다. 또한 클라이언트(260)가 악성코드를 분석한 후 서버(210)는 클라이언트(260)에 대응되는 오염된 부팅 이미지를 초기화하기 위하여 클라이언트(260)에게 재부팅 명령을 송신할 수 있다. 클라이언트(260)는 서버(210)의 재부팅 명령에 기초하여, 전원이 잠시 꺼졌다가 다시 전원이 켜질 수 있다. 클라이언트(260)는 도 6 및 도 7의 단계들을 수행하기 시작할 수 있다. 예를 들어, 클라이언트(260)에 전원이 다시 들어온 경우, 클라이언트(260)는 서버(210)에 제 1 DHCP 요청을 송신하는 단계(631)를 수행할 수 있다.The client 260 may perform step 631 of transmitting a first Dynamic Host Configuration Protocol (DHCP) request to the server 210 . The steps of FIGS. 6 and 7 may be performed while the client 260 boots or reboots. For example, the power of the client 260 may be turned on according to a command from the server 210 or a user in order to analyze the malicious code while the power is turned off. In addition, after the client 260 analyzes the malicious code, the server 210 may transmit a reboot command to the client 260 to initialize the corrupted boot image corresponding to the client 260 . The power of the client 260 may be temporarily turned off and then turned on again based on a reboot command from the server 210 . Client 260 may begin performing the steps of FIGS. 6 and 7 . For example, when power is turned on again to the client 260 , the client 260 may perform an operation 631 of transmitting a first DHCP request to the server 210 .

클라이언트(260)는 네트워크 설정이 되어있지 않으므로 브로드캐스팅으로 제 1 DHCP 요청을 송신할 수 있다.The client 260 may transmit the first DHCP request through broadcasting because the network is not set.

서버(210)는 클라이언트(260)의 제 1 네트워크 설정 정보를 결정하는 단계(632)를 수행할 수 있다. 제 1 네트워크 설정 정보는 클라이언트(260)에 할당할 IP 주소 및 PXE(Preboot Execution Environment) 펌웨어 이미지 위치 중 적어도 하나를 포함할 수 있다. 예를 들어, 서버(210)는 사용 가능한 IP 주소 중 클라이언트(260)에 할당할 IP 주소를 결정할 수 있다. 또한 서버(210)는 PXE 펌웨어 이미지 위치를 나타내는 주소를 결정할 수 있다. PXE 펌웨어 이미지 위치는 미리 결정되어 있을 수 있다. 또한 서버(210)는 클라이언트(260)로부터 수신한 클라이언트(260)의 식별 정보에 기초하여 복수의 PXE 펌웨어 이미지 중 하나의 PXE 펌웨어 이미지를 선택하고, 선택된 PXE 펌웨어 이미지의 위치를 결정할 수 있다. The server 210 may perform step 632 of determining the first network configuration information of the client 260 . The first network setting information may include at least one of an IP address to be assigned to the client 260 and a location of a Preboot Execution Environment (PXE) firmware image. For example, the server 210 may determine an IP address to be assigned to the client 260 among available IP addresses. In addition, the server 210 may determine an address indicating the location of the PXE firmware image. The PXE firmware image location may be predetermined. Also, the server 210 may select one PXE firmware image from among a plurality of PXE firmware images based on the identification information of the client 260 received from the client 260 and determine the location of the selected PXE firmware image.

서버(210)는 제 1 네트워크 설정 정보를 클라이언트(260)에 송신하는 단계(633)를 수행할 수 있다. 클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 네트워크를 설정하는 단계(634)를 수행할 수 있다. 예를 들어 클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 IP 주소, DNS서버, 게이트웨이 주소 중 적어도 하나를 설정할 수 있다. 클라이언트(260)는 네트워크 설정이 완료된 이후에 TCP/IP 또는 UDP 프로토콜 등을 이용하여 서버(210)와 데이터를 주고받을 수 있다.The server 210 may perform step 633 of transmitting the first network setting information to the client 260 . The client 260 may perform an operation 634 of setting up a network based on the first network setting information. For example, the client 260 may set at least one of an IP address, a DNS server, and a gateway address based on the first network setting information. The client 260 may send/receive data to and from the server 210 using TCP/IP or UDP protocol after network setting is completed.

클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 서버(210)에 송신하는 단계(635)를 수행할 수 있다. 이미 설명한 바와 같이 제 1 네트워크 설정 정보는 PXE 펌웨어 이미지의 위치를 포함할 수 있다. 클라이언트(260)는 PXE 펌웨어 위치에 기초하여 서버(210)에 PXE 펌웨어를 요청할 수 있다. 서버(210)는 독립적인 하드웨어를 가지는 적어도 하나의 서버를 포함할 수 있다. 또는 서버(210)는 적어도 일부의 하드웨어를 공유하는 적어도 하나의 서버를 포함할 수 있다. 클라이언트(260)는 PXE 펌웨어 이미지를 요청하기 위하여 PXE 펌웨어 위치를 서버(210)에 송신하므로, 서버(210)는 적어도 하나의 서버 중 PXE 펌웨어 이미지의 위치를 알 수 있다.The client 260 may perform an operation 635 of transmitting Preboot Execution Environment (PXE) firmware request information to the server 210 based on the first network setting information. As already described, the first network setting information may include the location of the PXE firmware image. The client 260 may request the PXE firmware from the server 210 based on the PXE firmware location. The server 210 may include at least one server having independent hardware. Alternatively, the server 210 may include at least one server sharing at least a part of hardware. Since the client 260 transmits the location of the PXE firmware to the server 210 in order to request the PXE firmware image, the server 210 may know the location of the PXE firmware image among at least one server.

클라이언트(260)는 TFTP(Trivial File Transfer Protocol)을 이용하여 PXE 펌웨어 요청 정보를 송신할 수 있다. PXE 펌웨어 요청 정보는 TFTP 프로토콜의 READ REQUEST(RRQ)일 수 있다. TFTP(Trivial File Transfer Protocol)는 임의의 시스템이 원격 시스템으로부터 부팅(Booting) 코드를 다운로드하는 데 사용되는 프로토콜이다. 즉, 자체적으로 하드 디스크를 보유하지 못한 클라이언트가 서버(210)에 저장된 부팅 이미지를 네트워크를 통해 다운로드해 시스템을 초기화하는데 사용한다. 원격 부팅은 서버(210)에서 복잡한 파일 작업이 따로 필요하지 않아 단순한 전송 기능으로 구현될 수 있다. 즉, TFTP가 수행하는 작업은 서버(210)에서 하나의 파일인 PXE 펌웨어 이미지 파일을 클라이언트(260)로 복사해오는 것이라고 할 수 있다.The client 260 may transmit PXE firmware request information using Trivial File Transfer Protocol (TFTP). The PXE firmware request information may be a READ REQUEST (RRQ) of the TFTP protocol. TFTP (Trivial File Transfer Protocol) is a protocol used by an arbitrary system to download booting code from a remote system. That is, a client that does not have its own hard disk downloads the boot image stored in the server 210 over the network and uses it to initialize the system. The remote booting may be implemented as a simple transmission function because a complicated file operation is not separately required in the server 210 . That is, the task performed by the TFTP is to copy the PXE firmware image file, which is one file, from the server 210 to the client 260 .

PXE 펌웨어 이미지 파일은 서버(210)에 포함되어 있을 수 있지만 이에 한정되는 것은 아니다. PXE 펌웨어 이미지는 외부 PXE 서버에 저장되어 있을 수 있다. 또는 PXE 펌웨어 이미지는 서버(210)의 하드웨어의 적어도 일부를 공유하는 PXE 서버에 저장되어 있을 수 있다. 이 경우 클라이언트(260)는 제 1 네트워크 설정 정보에 포함된 PXE 펌웨어 이미지의 위치에 기초하여 PXE 서버에 PXE 펌웨어를 요청할 수 있다.The PXE firmware image file may be included in the server 210 , but is not limited thereto. The PXE firmware image may be stored in an external PXE server. Alternatively, the PXE firmware image may be stored in a PXE server that shares at least a part of hardware of the server 210 . In this case, the client 260 may request the PXE firmware from the PXE server based on the location of the PXE firmware image included in the first network setting information.

서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하는 단계(636)를 수행할 수 있다. 서버(210)는 TFTP 프로토콜을 이용하여 PXE 펌웨어 이미지 파일을 클라이언트(260)로 송신할 수 있다.The server 210 may perform step 636 of transmitting the PXE firmware image file to the client 260 . The server 210 may transmit the PXE firmware image file to the client 260 using the TFTP protocol.

서버(210)는 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계를 수행하기 전에 아래와 같은 단계를 더 수행할 수 있다. The server 210 may further perform the following steps before performing the step of transmitting the PXE firmware image file to the client.

서버(210)는 클라이언트(260)에 대응하는 부팅 이미지 파일을 초기화하는 단계(640)를 수행할 수 있다. 부팅 이미지 파일은 m_1 부팅 이미지 파일 및 m_2 부팅 이미지 파일을 포함할 수 있다. 부팅 이미지 파일을 초기화하는 단계(640)를 설명하기 위하여 도 8을 잠시 참조한다.The server 210 may perform step 640 of initializing the boot image file corresponding to the client 260 . The boot image file may include an m_1 boot image file and an m_2 boot image file. In order to describe the step 640 of initializing the boot image file, reference is made briefly to FIG. 8 .

도 8은 본 개시의 일 실시예에 따른 악성코드 분석 시스템의 동작을 나타내는 흐름도이다.8 is a flowchart illustrating an operation of a malicious code analysis system according to an embodiment of the present disclosure.

도 8의 단계들은 도 6의 부팅 이미지 파일을 초기화하는 단계(640)에 포함될 수 있다.The steps of FIG. 8 may be included in the step 640 of initializing the boot image file of FIG. 6 .

서버(210)는 클라이언트(260)와 SAN(storage area network) LUN(Logic unit number)의 연결을 해제하는 단계(810)를 수행할 수 있다. 여기서 SAN LUN은 iSCSI LUN을 포함할 수 있다. 이하에서는 iSCSI를 중심으로 설명하지만 SAN에 포함되는 다른 프로토콜에 대해서도 동일한 설명이 적용될 수 있다. 이미 설명한 바와 같이 클라이언트(260)는 재부팅 또는 부팅 중이므로, iSCSI 타겟과 연결이 해제되어 있을 수 있다. 서버(210)는 클라이언트(260)에 대응되는 iSCSI 타겟의 LUN을 삭제할 수 있다. 서버(210)는 클라이언트(260)에 대응되는 iSCSI 타겟의 LUN을 삭제하여 클라이언트(260)가 iSCSI 타겟에 다시 연결되는 것을 방지할 수 있다. 또한 서버(210)는 n_2 서브 볼륨(240)의 초기화가 완료된 이후에 클라이언트(260)가 iSCSI에 연결하도록 제어할 수 있다. The server 210 may perform an operation 810 of disconnecting the connection between the client 260 and a storage area network (SAN) logical unit number (LUN). Here, the SAN LUN may include an iSCSI LUN. The following description focuses on iSCSI, but the same description can be applied to other protocols included in the SAN. As already described, since the client 260 is rebooting or booting, the connection to the iSCSI target may be released. The server 210 may delete the LUN of the iSCSI target corresponding to the client 260 . The server 210 may prevent the client 260 from reconnecting to the iSCSI target by deleting the LUN of the iSCSI target corresponding to the client 260 . Also, the server 210 may control the client 260 to connect to the iSCSI after initialization of the n_2 sub-volume 240 is completed.

클라이언트(260)에 의한 악성 코드 분석 과정에서 오염된 제 m_1 부팅 이미지 파일을 서버(210)가 삭제하는 단계(820)를 수행할 수 있다. 또는 서버(210)는 제 m_1 부팅 이미지 파일이 저장되어 있던 제 n_2 서브 볼륨(240)을 삭제하는 단계를 수행할 수 있다. In the process of analyzing the malicious code by the client 260 , the server 210 deletes the m_1th boot image file that is contaminated in step 820 . Alternatively, the server 210 may delete the n_2th sub-volume 240 in which the m_1th boot image file is stored.

서버(210)는 변경된 제 m 복제 마스터 이미지 파일에 기초하여 클라이언트(260)에 대응하는 새로운 제 m_2 부팅 이미지 파일을 생성하는 단계(830)를 수행할 수 있다. 또는 서버(210)는 제 n_2 서브 볼륨(240)을 제 n_1 서브 볼륨(230)에 기초하여 다시 생성하는 단계를 수행할 수 있다. 제 n_2 서브 볼륨(240)은 COPY ON WRITE 기술에 의하여 제 n_1 서브 볼륨(230)에 기초하여 다시 생성될 수 있다. 제 m_2 부팅 이미지는 제 n_2 서브 볼륨(240)에 저장되어 있을 수 있다. 제 m_2 부팅 이미지는 변경된 제 m 복제 마스터 이미지 파일과 동일할 수 있다. 제 m_2 부팅 이미지는 악성코드에 오염되지 않은 부팅 이미지일 수 있다.The server 210 may perform an operation 830 of generating a new m_2 th boot image file corresponding to the client 260 based on the changed m th replication master image file. Alternatively, the server 210 may perform the step of re-creating the n_2 th sub-volume 240 based on the n_1 th sub-volume 230 . The n_2 th sub-volume 240 may be regenerated based on the n_1 th sub-volume 230 by the COPY ON WRITE technique. The m_2 th boot image may be stored in the n_2 th sub volume 240 . The m_2 th boot image may be the same as the changed m th clone master image file. The m_2th boot image may be a boot image that is not contaminated with malicious code.

예를 들어 제 2_2 서브 볼륨(241)은 제 2_1 서브 볼륨(231)에 기초하여 다시 생성될 수 있다. 제 2_2 서브 볼륨(241)은 제 1_2 부팅 이미지를 포함할 수 있다. 제 3_2 서브 볼륨(242)은 제 3_1 서브 볼륨(232)에 기초하여 다시 생성될 수 있다. 제 3_2 서브 볼륨(242)은 제 2_2 부팅 이미지를 포함할 수 있다. 제 4_2 서브 볼륨(243)은 제 4_1 서브 볼륨(233)에 기초하여 다시 생성될 수 있다. 제 4_2 서브 볼륨(243)은 제 3_2 부팅 이미지를 포함할 수 있다.For example, the 2_2 sub-volume 241 may be regenerated based on the 2_1 sub-volume 231 . The 2_2 sub-volume 241 may include a 1_2 boot image. The 3_2 sub-volume 242 may be regenerated based on the 3_1 sub-volume 232 . The 3_2 sub-volume 242 may include a 2_2 boot image. The 4_2th sub-volume 243 may be regenerated based on the 4_1th sub-volume 233 . The 4_2 th sub-volume 243 may include a 3_2 th boot image.

서버(210)는 제 m_2 부팅 이미지 파일을 클라이언트에 할당하는 단계(840)를 수행할 수 있다. 서버(210)는 재생성된 제 n_2 서브 볼륨(240)을 백킹-스토어(backing-store)로 사용하는 새로운 LUN을 생성할 수 있다. 예를 들어 서버(210)는 재생성된 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243) 각각에 저장된 제 m_2 부팅 이미지 파일에 대해 새로운 LUN을 생성할 수 있다. 재생성된 제 2_2 서브 볼륨(241), 제 3_2 서브 볼륨(242), 및 제 4_2 서브 볼륨(243)에 저장된 제 1_2 부팅 이미지 파일, 제 2_2 부팅 이미지 파일, 제 3_2 부팅 이미지 파일은 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)에 각각 할당될 수 있다.The server 210 may perform an operation 840 of allocating the m_2 th boot image file to the client. The server 210 may create a new LUN using the regenerated n_2 th sub-volume 240 as a backing-store. For example, the server 210 may create a new LUN for the m_2th boot image file stored in each of the regenerated 2_2 sub-volume 241, 3_2 sub-volume 242, and 4_2 sub-volume 243. . 1_2 boot image file, 2_2 boot image file, and 3_2 boot image file stored in the regenerated 2_2 sub-volume 241, 3_2 sub-volume 242, and 4_2 sub-volume 243 are stored in the first client ( 261 ), the second client 262 , and the third client 263 , respectively.

다시 도 6을 참조하면, 클라이언트(260)에 대응하는 부팅 이미지 파일의 초기화가 완료된 경우, 서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하는 단계(636)를 수행할 수 있다.Referring back to FIG. 6 , when the initialization of the boot image file corresponding to the client 260 is completed, the server 210 may perform an operation 636 of transmitting the PXE firmware image file to the client 260 .

또한, 클라이언트(260)에 대응하는 부팅 이미지 파일의 초기화가 완료되지 않은 경우, 서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하지 않고, 초기화가 완료될 때까지 기다리는 단계를 수행할 수 있다. 서버(210)는 초기화 중 오류가 발생한 경우, 초기화를 다시 수행할 수 있다. 또한, 서버(210)는 초기화 중 오류가 발생한 경우, 사용자의 단말기에 오류와 관련된 정보를 유무선통신을 이용하여 송신할 수 있다. 사용자 단말기는, 사용자의 PC, 스마트폰, 태블릿 등을 포함할 수 있다. 오류와 관련된 정보는 오류의 발생여부에 대한정보, 오류의 내용에 대한 정보, 및 오류의 발생 시기에 대한 정보 중 적어도 하나를 포함할 수 있다. 사용자는 오류와 관련된 정보를 확인하여 필요한 조치를 신속히 취할 수 있다.In addition, if the initialization of the boot image file corresponding to the client 260 is not completed, the server 210 does not transmit the PXE firmware image file to the client 260 and waits until the initialization is completed. can When an error occurs during initialization, the server 210 may perform initialization again. Also, when an error occurs during initialization, the server 210 may transmit error-related information to the user's terminal using wired/wireless communication. The user terminal may include a user's PC, smartphone, tablet, and the like. The information related to the error may include at least one of information about whether an error has occurred, information about the content of the error, and information about an error occurrence time. Users can check information related to errors and take necessary actions quickly.

클라이언트(260)는 PXE 펌웨어 이미지 파일에 기초하여 부팅하는 단계(637)를 수행할 수 있다. 클라이언트(260)는 PXE 펌웨어 이미지 파일을 이용하여 iSCSI 타겟의 LUN에 연결하기 위한 기초적인 준비를 할 수 있다. 클라이언트(260)에 포함된 복수의 클라이언트(261, 262, 263)는 PXE 펌웨어 이미지 파일에 의하여 부팅하여, OS로 부팅하기 위한 상태가 될 수 있다. 클라이언트(260)에 포함된 복수의 클라이언트(261, 262, 263)는 PXE 펌웨어 이미지 파일에 의하여 부팅하여, iSCSI 타겟의 LUN에 연결하기 위한 상태가 될 수 있다. 서버(210)는 복수의 클라이언트(261, 262, 263)에 OS를 부팅하기 위하여 개별적으로 제어할 필요 없이, 복수의 클라이언트(261, 262, 263)에 PXE 펌웨어 이미지 파일을 송신하여 클라이언트(260)가 자동으로 OS를 부팅하도록 할 수 있다. 이하에서는 도 7과 함께 악성코드 분석 장치의 동작 방법을 더 설명한다.The client 260 may perform booting ( 637 ) based on the PXE firmware image file. The client 260 may make basic preparations to connect to the LUN of the iSCSI target using the PXE firmware image file. The plurality of clients 261 , 262 , and 263 included in the client 260 may be booted by the PXE firmware image file to be in a state for booting into the OS. The plurality of clients 261 , 262 , and 263 included in the client 260 may be booted by the PXE firmware image file and put into a state for connecting to the LUN of the iSCSI target. The server 210 transmits the PXE firmware image file to the plurality of clients 261, 262, and 263 without having to individually control the plurality of clients 261, 262, and 263 to boot the OS to the client 260. can automatically boot the OS. Hereinafter, an operation method of the malicious code analysis apparatus will be further described with reference to FIG. 7 .

도 7을 참조하면, 클라이언트(260)는 서버(210)에 제 2 DHCP 요청을 송신하는 단계(731)를 수행할 수 있다. 클라이언트(260)는 브로드캐스팅으로 서버(210)에 제 2 DHCP 요청을 송신할 수 있다. 하지만 이에 한정되는 것은 아니며, 클라이언트(260)는 서버(210)의 주소로 제 2 DHCP 요청을 송신할 수 있다.Referring to FIG. 7 , the client 260 may perform an operation 731 of transmitting a second DHCP request to the server 210 . The client 260 may send a second DHCP request to the server 210 by broadcasting. However, the present invention is not limited thereto, and the client 260 may transmit the second DHCP request to the address of the server 210 .

서버(210)는 클라이언트(260)의 제 2 네트워크 설정 정보를 결정하는 단계(732)를 수행할 수 있다. 제 2 네트워크 설정 정보는 IP 주소 또는 iSCSI 연결에 필요한 정보 중 적어도 하나를 포함할 수 있다. 여기서 iSCSI 연결에 필요한 정보는 클라이언트(260)가 클라이언트(260)에 대응되는 제 n_2 서브 볼륨(240) 내의 제 m_1 부팅 이미지 파일에 연경하기 위해 필요한 정보를 의미할 수 있다. 또한, iSCSI 연결에 필요한 정보는 LUN(logical unit number), iSCSI 타겟의 네트워크 주소와 포트, 또는 iSCSI 타겟의 식별정보 중 적어도 하나의 정보를 포함할 수 있다. iSCSI 타겟의 식별정보는 IQN(iSCSI Qualified Name)혹은 EUI(Extended Unique Identifier)을 포함할 수 있다. LUN은 iSCSI 타겟 내의 논리 디스크를 식별하기 위한 숫자일 수 있다.The server 210 may perform an operation 732 of determining the second network configuration information of the client 260 . The second network setting information may include at least one of an IP address and information required for an iSCSI connection. Here, the information required for the iSCSI connection may mean information required for the client 260 to connect to the m_1 th boot image file in the n_2 th sub volume 240 corresponding to the client 260 . In addition, the information required for the iSCSI connection may include at least one of a logical unit number (LUN), a network address and port of the iSCSI target, and identification information of the iSCSI target. The identification information of the iSCSI target may include an iSCSI Qualified Name (IQN) or an Extended Unique Identifier (EUI). A LUN may be a number to identify a logical disk within an iSCSI target.

서버(210)는 클라이언트(260)의 새로운 IP주소를 할당할 수 있다. 또한 서버(210)는 클라이언트(260)에 할당된 iSCSI 연결에 필요한 정보를 결정할 수 있다. 서버(210)는 클라이언트(260)에 포함된 적어도 하나의 클라이언트에 각각 iSCSI 연결에 필요한 정보를 할당할 수 있다. 적어도 하나의 클라이언트에 각각 할당된 iSCSI 연결에 필요한 정보는 서로 다를 수 있다. 즉 적어도 하나의 클라이언트와 iSCSI 연결에 필요한 정보는 1대1로 대응할 수 있다.The server 210 may allocate a new IP address of the client 260 . Also, the server 210 may determine information required for the iSCSI connection allocated to the client 260 . The server 210 may allocate information required for each iSCSI connection to at least one client included in the client 260 . Information required for each iSCSI connection allocated to at least one client may be different. That is, information required for an iSCSI connection with at least one client can correspond one-to-one.

서버(210)는 제 2 네트워크 설정 정보를 클라이언트(260)로 송신하는 단계(733)를 수행할 수 있다. 클라이언트(260)는 제 2 네트워크 설정 정보에 기초하여 네트워크를 설정하는 단계(734)를 수행할 수 있다. 네트워크를 설정하는 단계(734)는 네트워크를 설정하는 단계(634)와 동일/유사할 수 있다.The server 210 may perform step 733 of transmitting the second network setting information to the client 260 . The client 260 may perform an operation 734 of setting up a network based on the second network setting information. Step 734 of setting up a network may be the same/similar to step 634 of setting up a network.

클라이언트(260)는 제 2 네트워크 설정 정보에 기초하여 SAN(storage area network) 타겟에 연결하는 단계(735)를 수행할 수 있다. SAN은 Fibre Channel, FCoE(Fibre Channel over Ethernet), SRP(SCSI RDMA Protocol), iSCSI 또는 Infiniband 중 하나일 수 있다. 즉, SAN 타겟은 iSCSI 타겟일 수 있다. 이하에서는 iSCSI를 중심으로 설명하지만 다른 프로토콜에 대해서도 동일한 설명이 적용될 수 있다.클라이언트(260)는 n_2 서브 볼륨(240)에 저장된 m_1 부팅 이미지에 연결될 수 있다. The client 260 may perform an operation 735 of connecting to a storage area network (SAN) target based on the second network configuration information. The SAN can be one of Fiber Channel, Fiber Channel over Ethernet (FCoE), SCSI RDMA Protocol (SRP), iSCSI, or Infiniband. That is, the SAN target may be an iSCSI target. Hereinafter, iSCSI will be mainly described, but the same description may be applied to other protocols. The client 260 may be connected to the m_1 boot image stored in the n_2 sub-volume 240 .

iSCSI 타겟은 서버(210)에 포함된 스토리지 서버이거나 해당 서버에 존재할 수 있다. iSCSI 타겟은 메모리 Input/Output을 위한 일종의 인터페이스일 수 있다. iSCSI 타겟의 형태는 네트워크에 연결된 물리적인 스토리지 자체일 수도 있고, 혹은 스토리지 서버에서 가동되는 소프트웨어로 구현된 서비스일 수도 있다.The iSCSI target may be a storage server included in the server 210 or may exist in the corresponding server. The iSCSI target may be a kind of interface for memory input/output. The form of the iSCSI target may be the physical storage itself connected to the network, or it may be a service implemented in software running on the storage server.

스토리지 서버는 별도의 독립된 하드웨어를 가질 수 있으나 이에 한정되는 것은 아니며, 서버(210)의 적어도 일부의 하드웨어를 공유할 수 있다. 스토리지 서버는 대용량 메모리를 포함하는 서버일 수 있다. 또한 클라이언트(260)는 iSCSI 연결에 필요한 정보에 기초하여 서버(210)의 서브 볼륨에 저장된 부팅 이미지에 연결할 수 있다. 클라이언트(260)는 서버(210)의 서브 볼륨의 부팅 이미지를 메모리로써 사용할 수 있다. 즉, 클라이언트(260)는 서버(210)의 제 n_2 서브 볼륨(240) 내의 제 m_2 부팅 이미지 파일을 메모리로써 사용할 수 있다. 예를 들어 제 1 클라이언트(261)는 제 2_2 서브 볼륨(241) 내의 제 1_2 부팅 이미지 파일에 연결될 수 있다. 제 2_2 서브 볼륨(241)은 제 1_2 부팅 이미지 파일을 저장하고 있을 수 있다. 제 1_2 부팅 이미지 파일은 오염된 제 1_1 부팅 이미지를 삭제한 후 제 2_1 서브 볼륨(231)의 변경된 제 1 복제 마스터 이미지 파일에 기초하여 생성된 깨끗한 부팅 이미지 일 수 있다. 제 2 클라이언트(262)는 제 3_2 서브 볼륨(242) 내의 제 2_2 부팅 이미지 파일에 연결될 수 있다. 제 3_2 서브 볼륨(242)은 제 2_2 부팅 이미지 파일을 저장하고 있을 수 있다. 제 3 클라이언트(263)는 제 4_2 서브 볼륨(243) 내의 제 3_2 부팅 이미지 파일에 연결될 수 있다. 제 4_2 서브 볼륨(243)은 제 3_2 부팅 이미지 파일을 저장하고 있을 수 있다.The storage server may have separate and independent hardware, but is not limited thereto, and may share at least a part of hardware of the server 210 . The storage server may be a server including a large amount of memory. Also, the client 260 may connect to the boot image stored in the sub-volume of the server 210 based on information required for the iSCSI connection. The client 260 may use the boot image of the sub-volume of the server 210 as a memory. That is, the client 260 may use the m_2th boot image file in the n_2th sub-volume 240 of the server 210 as a memory. For example, the first client 261 may be connected to the first_2 boot image file in the second_2 sub-volume 241 . The 2_2 sub-volume 241 may store the 1_2 boot image file. The 1_2 boot image file may be a clean boot image generated based on the changed first duplicate master image file of the 2_1 sub-volume 231 after the contaminated 1_1 boot image is deleted. The second client 262 may be connected to the 2_2 boot image file in the 3_2 sub-volume 242 . The 3_2 sub-volume 242 may store the 2_2 boot image file. The third client 263 may be connected to the 3_2 boot image file in the 4_2 sub-volume 243 . The 4_2 th sub-volume 243 may store a 3_2 th boot image file.

클라이언트(260)는 iSCSI LUN에 할당된 제 m_2 부팅 이미지 파일에 기초하여 부팅하는 단계(736)를 수행할 수 있다. 클라이언트(260)가 iSCSI LUN에 연결된다는 것은 클라이언트(260)가 제 n_2 서브 볼륨(240)에 저장된 m_2 부팅 이미지에 네트워크로 연결됨을 의미할 수 있다. 클라이언트(260)가 iSCSI LUN에 연결된다는 것은 클라이언트(260)가 제 n_2 서브 볼륨(240)에 저장된 m_2 부팅 이미지를 메모리로써 사용함을 의미할 수 있다. iSCSI 타겟을 통해, 클라이언트(260)의 메모리 Input/Output은 네트워크를 통해 이루어질 수 있다.The client 260 may perform booting ( 736 ) based on the m_2 th boot image file allocated to the iSCSI LUN. The connection of the client 260 to the iSCSI LUN may mean that the client 260 is connected to the m_2 boot image stored in the n_2 th sub-volume 240 through a network. The connection of the client 260 to the iSCSI LUN may mean that the client 260 uses the m_2 boot image stored in the n_2 th sub-volume 240 as a memory. Through the iSCSI target, memory Input/Output of the client 260 may be made through a network.

제 1 클라이언트(261)는 제 2_2 서브 볼륨(241)에 포함된 제 1_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다. 또한 제 2 클라이언트(262)는 제 3_2 서브 볼륨(242)에 포함된 제 2_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다. 또한 제 3 클라이언트(263)는 제 4_2 서브 볼륨(243)에 포함된 제 3_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다.The first client 261 may be ready to analyze a new malicious code based on the 1_2 boot image file included in the 2_2 sub-volume 241 . Also, the second client 262 may be ready to analyze a new malicious code based on the 2_2 boot image file included in the 3_2 sub-volume 242 . Also, the third client 263 may be ready to analyze a new malicious code based on the 3_2 boot image file included in the 4_2 sub-volume 243 .

악성코드 분석 시스템은 복수의 클라이언트(261, 262, 263)를 이용하여 악성코드 분석을 수행할 수 있다. 악성코드 분석 과정에서 복수의 클라이언트(261, 262, 263)의 제 1_2 부팅 이미지, 제 2_2 부팅 이미지, 및 제 3_2 부팅 이미지는 다시 오염될 수 있다. 악성코드 분석 시스템은 도 6 및 도 7과 같은 과정을 다시 수행하여 부팅 이미지를 초기화 할 수 있다. The malicious code analysis system may perform malicious code analysis using a plurality of clients 261 , 262 , and 263 . In the malicious code analysis process, the 1st_2 boot image, the 2_2 boot image, and the 3_2 boot image of the plurality of clients 261 , 262 , and 263 may be contaminated again. The malicious code analysis system may initialize the boot image by performing the same process as in FIGS. 6 and 7 again.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).

이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, various embodiments have been mainly looked at. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

Claims (11)

베어메탈 샌드박스를 이용한 악성코드 분석 시스템의 동작 방법에 있어서,
클라이언트가 서버에 제 1 DHCP(Dynamic Host Configuration Protocol) 요청을 송신하는 단계;
상기 서버가 상기 클라이언트의 제 1 네트워크 설정 정보를 결정하는 단계;
상기 서버가 상기 제 1 네트워크 설정 정보를 상기 클라이언트에 송신하는 단계;
상기 클라이언트가 상기 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 상기 서버에 송신하는 단계;
상기 서버가 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계;
상기 클라이언트가 상기 PXE 펌웨어 이미지 파일에 기초하여 부팅하는 단계;
상기 클라이언트가 상기 서버에 제 2 DHCP 요청을 송신하는 단계;
상기 서버가 상기 클라이언트의 제 2 네트워크 설정 정보를 결정하는 단계;
상기 클라이언트가 상기 제 2 네트워크 설정 정보에 기초하여 SAN(storage area network) 타겟에 연결하는 단계; 및
상기 클라이언트가 상기 SAN 타겟에 포함된 제 m_2 부팅 이미지 파일에 기초하여 부팅하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
In the operating method of a malicious code analysis system using a bare metal sandbox,
sending, by the client, a first Dynamic Host Configuration Protocol (DHCP) request to the server;
determining, by the server, first network configuration information of the client;
sending, by the server, the first network setting information to the client;
transmitting, by the client, Preboot Execution Environment (PXE) firmware request information to the server based on the first network setting information;
sending, by the server, a PXE firmware image file to the client;
booting by the client based on the PXE firmware image file;
sending, by the client, a second DHCP request to the server;
determining, by the server, second network configuration information of the client;
connecting, by the client, to a storage area network (SAN) target based on the second network configuration information; and
and booting the client based on the m_2 th boot image file included in the SAN target.
제 1 항에 있어서,
상기 서버가 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계는,
상기 서버가 상기 클라이언트에 대응하는 부팅 이미지 파일을 초기화하는 단계; 및
상기 클라이언트에 대응하는 부팅 이미지 파일의 초기화가 완료된 경우, 상기 서버가 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
The method of claim 1,
The step of the server sending the PXE firmware image file to the client comprises:
initializing, by the server, a boot image file corresponding to the client; and
and transmitting, by the server, a PXE firmware image file to the client when initialization of the boot image file corresponding to the client is completed.
제 1 항에 있어서,
상기 PXE 펌웨어 요청 정보를 상기 서버에 송신하는 단계 및 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계는 TFTP(Trivial File Transfer Protocol) 프로토콜에 기초하여 수행되고,
상기 PXE 펌웨어 요청 정보를 상기 서버에 송신하는 단계는 TFTP 프로토콜의 READ REQUEST(RRQ)인 것을 특징으로 하는 악성코드 분석 시스템의 동작 방법.
The method of claim 1,
Transmitting the PXE firmware request information to the server and transmitting the PXE firmware image file to the client are performed based on a Trivial File Transfer Protocol (TFTP) protocol,
The method of operating a malicious code analysis system, characterized in that transmitting the PXE firmware request information to the server is a READ REQUEST (RRQ) of a TFTP protocol.
제 2 항에 있어서,
상기 클라이언트가 서버에 제 1 DHCP 요청을 송신하는 단계는,
상기 서버가 상기 클라이언트에 재부팅 명령을 송신하는 단계; 및
상기 클라이언트에 전원이 다시 들어온 경우, 상기 클라이언트는 상기 서버에 상기 제 1 DHCP 요청을 송신하는 단계를 포함하고,
상기 부팅 이미지 파일을 초기화하는 단계는,
상기 서버가 상기 클라이언트와 SAN LUN의 연결을 해제하는 단계;
상기 클라이언트에 의해 악성 코드 분석 후 오염된 제 m_1 부팅 이미지 파일을 상기 서버가 삭제하는 단계;
상기 서버가 변경된 제 m 복제 마스터 이미지 파일에 기초하여 상기 클라이언트에 대응하는 새로운 상기 제 m_2 부팅 이미지 파일을 생성하는 단계; 및
상기 제 m_2 부팅 이미지 파일을 상기 클라이언트에 할당하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
3. The method of claim 2,
The step of the client sending a first DHCP request to the server comprises:
sending, by the server, a reboot command to the client; and
when the client is powered on again, the client sending the first DHCP request to the server;
Initializing the boot image file includes:
disconnecting, by the server, the connection between the client and the SAN LUN;
deleting, by the server, the corrupted m_1st boot image file after analyzing the malicious code by the client;
generating, by the server, a new m_2th booting image file corresponding to the client based on the changed mth replication master image file; and
and allocating the m_2th boot image file to the client.
제 2 항에 있어서,
상기 클라이언트에 대응하는 부팅 이미지 파일의 초기화가 완료되지 않은 경우, 상기 서버가 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하지 않고, 초기화가 완료될 때까지 기다리는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
3. The method of claim 2,
and if the initialization of the boot image file corresponding to the client is not completed, the server does not transmit the PXE firmware image file to the client and waits until the initialization is completed.
제 4 항에 있어서,
상기 서버가 제 1 서브 볼륨 생성 후 마스터 이미지 파일을 생성하는 단계;
초기화 클라이언트가 상기 마스터 이미지 파일로 부팅 후 기본 설정 정보를 상기 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계;
상기 서버가 상기 변경된 마스터 이미지 파일이 들어있는 상기 제 1 서브 볼륨을 계승하고, 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨을 생성하는 단계;
상기 서버가 상기 제 n_1 서브 볼륨에 포함된 상기 제 m 복제 마스터 이미지 파일을 상기 클라이언트에 할당하는 단계; 및
상기 클라이언트가 상기 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 상기 제 m 복제 마스터 이미지 파일에 적용하여 상기 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
5. The method of claim 4,
generating, by the server, a master image file after the first sub-volume is created;
obtaining, by an initialization client, a changed master image file by applying basic setting information to the master image file after booting to the master image file;
generating, by the server, an n_1 th sub-volume that inherits the first sub-volume containing the changed master image file and stores the m-th duplicate master image file;
allocating, by the server, the mth replication master image file included in the n_1th sub-volume to the client; and
After the client boots to the m-th clone master image file included in the n_1 sub-volume, applying additional setting information to the m-th clone master image file to obtain the changed m-th clone master image file How code analysis systems work.
제 6 항에 있어서,
상기 서버가 상기 변경된 제 m 복제 마스터 이미지 파일을 포함하는 상기 제 n_1 서브 볼륨을 계승하고, 상기 제 m_1 부팅 이미지 파일을 저장하는 제 n_2 서브 볼륨을 생성하는 단계;
상기 서버가 상기 제 n_2 서브 볼륨에 포함된 상기 제 m_1 부팅 이미지 파일을 상기 클라이언트에 할당하는 단계; 및
상기 클라이언트가 상기 제 n_2 서브 볼륨에 포함된 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 상기 서버로 전송하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
7. The method of claim 6,
generating, by the server, an n_2th sub-volume that inherits the n_1 th sub-volume including the changed m-th clone master image file and stores the m_1 th boot image file;
allocating, by the server, the m_1 th boot image file included in the n_2 th sub-volume to the client; and
and performing malicious code analysis after the client boots with the m_1 th boot image file included in the n_2 th sub-volume, and transmitting the malicious code analysis result related to the contaminated m_1 th boot image file to the server. How the analysis system works.
제 6 항에 있어서,
상기 제 1 서브 볼륨, 제 n_1 서브 볼륨은 COW(COPY ON WRITE)기능을 지원하는 파일시스템 상에 생성되거나, 상기 COW기능을 미지원하지만 COW기능이 소프트웨어적으로 구현된 파일시스템 상에 생성되는 악성코드 분석 시스템의 동작 방법.
7. The method of claim 6,
The first sub-volume and the n_1th sub-volume are generated on a file system that supports the COW (COPY ON WRITE) function, or a malicious code generated on a file system that does not support the COW function but has the COW function implemented in software. How the analysis system works.
서버가 제 1 서브 볼륨 생성 후 마스터 이미지 파일을 생성하는 단계;
초기화 클라이언트가 상기 마스터 이미지 파일로 부팅 후 기본 설정 정보를 상기 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계;
상기 서버가 상기 변경된 마스터 이미지 파일이 들어있는 상기 제 1 서브 볼륨을 계승하고, 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨을 생성하는 단계;
상기 서버가 상기 제 n_1 서브 볼륨에 포함된 상기 제 m 복제 마스터 이미지 파일을 클라이언트에 할당하는 단계; 및
상기 클라이언트가 상기 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 상기 제 m 복제 마스터 이미지 파일에 적용하여 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.
generating, by the server, a master image file after the first sub-volume is created;
obtaining, by an initialization client, a changed master image file by applying basic setting information to the master image file after booting to the master image file;
generating, by the server, an n_1 th sub-volume that inherits the first sub-volume containing the changed master image file and stores the m-th duplicate master image file;
allocating, by the server, the mth replication master image file included in the n_1th sub-volume to a client; and
and acquiring, by the client, a changed mth duplicated master image file by applying additional setting information to the mth duplicated master image file after booting with the mth duplicated master image file included in the n_1th sub-volume How the analysis system works.
제 9 항에 있어서,
상기 서버가 상기 변경된 제 m 복제 마스터 이미지 파일을 포함하는 상기 제 n_1 서브 볼륨을 계승하고, 제 m_1 부팅 이미지 파일을 저장하는 제 n_2 서브 볼륨을 생성하는 단계;
상기 서버가 상기 제 n_2 서브 볼륨에 포함된 상기 제 m_1 부팅 이미지 파일을 상기 클라이언트에 할당하는 단계; 및
상기 클라이언트가 상기 제 n_2 서브 볼륨에 포함된 상기 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 상기 서버로 전송하는 단계를 더 포함하는 악성코드 분석 시스템의 동작 방법.
10. The method of claim 9,
generating, by the server, an n_2 th sub-volume that inherits the n_1 th sub-volume including the changed m th replication master image file and stores the m_1 th boot image file;
allocating, by the server, the m_1 th boot image file included in the n_2 th sub-volume to the client; and
The method further comprising the step of the client performing malicious code analysis after booting with the m_1st boot image file included in the n_2th sub-volume, and transmitting a malicious code analysis result related to the contaminated m_1th booting image file to the server How the malware analysis system works.
제 10 항에 있어서,
상기 클라이언트가 상기 서버에 제 1 DHCP(Dynamic Host Configuration Protocol) 요청을 송신하는 단계;
상기 서버가 상기 클라이언트의 제 1 네트워크 설정 정보를 결정하는 단계;
상기 서버가 상기 제 1 네트워크 설정 정보를 상기 클라이언트에 송신하는 단계;
상기 클라이언트가 상기 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 상기 서버에 송신하는 단계;
상기 서버가 상기 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계;
상기 클라이언트가 상기 PXE 펌웨어 이미지 파일에 기초하여 부팅하는 단계;
상기 클라이언트가 상기 서버에 제 2 DHCP 요청을 송신하는 단계;
상기 서버가 상기 클라이언트의 제 2 네트워크 설정 정보를 결정하는 단계;
상기 클라이언트가 상기 제 2 네트워크 설정 정보에 기초하여 SAN(storage area network) 타겟에 연결하는 단계; 및
상기 클라이언트가 상기 SAN 타겟에 포함된 제 m_2 부팅 이미지 파일에 기초하여 부팅하는 단계를 포함하는 악성코드 분석 시스템의 동작 방법.

11. The method of claim 10,
sending, by the client, a first Dynamic Host Configuration Protocol (DHCP) request to the server;
determining, by the server, first network configuration information of the client;
sending, by the server, the first network setting information to the client;
transmitting, by the client, Preboot Execution Environment (PXE) firmware request information to the server based on the first network setting information;
sending, by the server, a PXE firmware image file to the client;
booting by the client based on the PXE firmware image file;
sending, by the client, a second DHCP request to the server;
determining, by the server, second network configuration information of the client;
connecting, by the client, to a storage area network (SAN) target based on the second network configuration information; and
and booting the client based on the m_2 th boot image file included in the SAN target.

KR1020200184449A 2020-12-28 2020-12-28 System for analysing malicious code and operation method thereof KR20220093585A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200184449A KR20220093585A (en) 2020-12-28 2020-12-28 System for analysing malicious code and operation method thereof
KR1020230009485A KR102618879B1 (en) 2020-12-28 2023-01-25 System for analysing malicious code and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200184449A KR20220093585A (en) 2020-12-28 2020-12-28 System for analysing malicious code and operation method thereof

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020230009485A Division KR102618879B1 (en) 2020-12-28 2023-01-25 System for analysing malicious code and operation method thereof

Publications (1)

Publication Number Publication Date
KR20220093585A true KR20220093585A (en) 2022-07-05

Family

ID=82402248

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200184449A KR20220093585A (en) 2020-12-28 2020-12-28 System for analysing malicious code and operation method thereof
KR1020230009485A KR102618879B1 (en) 2020-12-28 2023-01-25 System for analysing malicious code and operation method thereof

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020230009485A KR102618879B1 (en) 2020-12-28 2023-01-25 System for analysing malicious code and operation method thereof

Country Status (1)

Country Link
KR (2) KR20220093585A (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4990066B2 (en) * 2007-08-21 2012-08-01 株式会社日立製作所 A storage system with a function to change the data storage method using a pair of logical volumes
KR101436101B1 (en) * 2012-09-21 2014-09-01 엑세스(주) Server apparatus and method for providing storage replacement service of user equipment
JP6600034B2 (en) * 2018-04-13 2019-10-30 株式会社 みずほ銀行 Motion analysis system and motion analysis method

Also Published As

Publication number Publication date
KR20230027104A (en) 2023-02-27
KR102618879B1 (en) 2023-12-29

Similar Documents

Publication Publication Date Title
US9940460B1 (en) Cleaning malware from backup data
US11093155B2 (en) Automated seamless migration with signature issue resolution
US9384094B2 (en) Method and system for instant restore of system volume from a backup image
US9329943B2 (en) Methods and systems for instant restore of system volume
US9378121B2 (en) Item-level restoration and verification of image level
US8838542B1 (en) Optimized image archiving
CN107209705B (en) Activity rollback for a computing environment
US10915411B2 (en) Advanced multiple backup recovery
US9003000B2 (en) System and method for operating system installation on a diskless computing platform
US11960501B2 (en) Preserving user profiles across remote desktop sessions
TW201729123A (en) Method and server for remote launching deployment utility
US9804855B1 (en) Modification of temporary file system for booting on target hardware
EP2306320A1 (en) Server image migration
JP2007334878A (en) Long-term data archiving system and method
US20040010666A1 (en) Storage services and systems
TW201629785A (en) Management controller
US9729660B2 (en) Method and system for detecting virtual machine migration
US10157103B2 (en) Efficient processing of file system objects for image level backups
US11543973B2 (en) Techniques for software recovery and restoration
US7506115B2 (en) Incremental provisioning of software
KR102618879B1 (en) System for analysing malicious code and operation method thereof
US11797404B2 (en) Techniques for peer node recovery
US20230222090A1 (en) Test adaption and distribution according to customer knowledge base
US7975136B1 (en) Hardware-independent detection of SAN logical volumes
US10102020B2 (en) Methods, systems, and computer readable media for virtual machine (VM) deployment using read-only memory

Legal Events

Date Code Title Description
E601 Decision to refuse application