KR20220093585A - System for analysing malicious code and operation method thereof - Google Patents
System for analysing malicious code and operation method thereof Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 claims abstract description 89
- 244000035744 Hura crepitans Species 0.000 claims abstract description 14
- 239000002184 metal Substances 0.000 claims abstract description 11
- 230000010076 replication Effects 0.000 claims description 74
- 238000011017 operating method Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 239000000835 fiber Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013403 standard screening design Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols 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
Description
본 개시는 악성코드 분석 시스템 및 시스템의 동작 방법에 관한 것이다.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
프로세서(110)는 메모리(120)에 저장된 명령어에 기초하여 서버 또는 클라이언트의 동작을 제어할 수 있다. 서버 또는 클라이언트는 하나의 프로세서를 포함할 수 있고, 복수의 프로세서를 포함할 수 있다. 서버 또는 클라이언트가 복수의 프로세서를 포함하는 경우, 복수의 프로세서 중 적어도 일부는 물리적으로 이격된 거리에 위치할 수 있다. 또한, 서버 또는 클라이언트는 이에 한정되지 않고 다양한 방식으로 구현될 수 있다.The
도 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
본 개시의 일 실시예에 따르면, 서버(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
본 개시의 다양한 실시예에 따르면, 서버(210)는 적어도 하나의 서버를 포함할 수 있다. 서버(210)는 메인 서버 및 스토리지 서버를 포함할 수 있다. 메인 서버는 전체 시스템의 동작을 제어하기 위한 구성이며, 클라이언트의 동작을 제어할 수 있다. 스토리지 서버는 메인 서버 또는 클라이언트가 사용할 데이터 및 메인 서버 또는 클라이언트가 생성한 데이터를 저장하는 서버일 수 있다. 메인 서버는 스토리지 서버와 하드웨어의 적어도 일부를 공유할 수 있다. 또는 메인 서버는 스토리지 서버와 독립적인 하드웨어로 구현되며 서로 유무선으로 연결되어 있을 수 있다. 스토리지 서버의 메모리는 마스터 이미지 파일, 제 m 복제 마스터 이미지 파일, 부팅 이미지 파일 등을 저장하고 있을 수 있다. 메인 서버, 스토리지 서버 및 클라이언트(260)는 동일 네트워크 상에 존재해야할 수 있다. 클라이언트(260)와 스토리지 서버 사이는 iSCSI로 연결될 수 있다. 또한, 스토리지 서버 및 메인 서버가 네트워크로 연결되는 것은 필수적이지 않을 수 있다.According to various embodiments of the present disclosure, the
보다 구체적으로, 본 개시의 일 실시예에 따라 스토리지 서버가 단계(635) 및 단계(636)와 같은 TFTP 요청을 처리하는 경우, 메인 서버와 스토리지 서버 사이는 네트워크로 연결될 필요가 없을 수 있다. 하지만, 메인 서버가 단계(635) 및 단계(636)와 같은 TFTP 요청을 처리하는 경우, 메인 서버에서 스토리지 서버에 서브 볼륨 삭제 및 스냅샷 명령을 내려야 할 수 있다. 따라서 메인 서버에서 스토리지 서버에 명령을 내릴 수 있는 SSH나 r-command 등을 사용하거나, 커스텀 프로토콜을 만들어 이용해야 할 수 있다.More specifically, when the storage server processes TFTP requests such as
클라이언트(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
도 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
서버(210)의 메모리는 COPY ON WRITE 기능을 가질 수 있다. COPY ON WRITE는 원본 파일들을 복제할 때, 새로운 파일들을 생성하는 것이 아니고, 원본 파일을 참조하는 기술을 의미한다. 또한 COPY ON WRITE 기술에 의하면 복제한 파일들 중 일부가 수정되는 경우, 수정된 일부 파일에 대해서만 복제본을 생성한다. 따라서 원본 파일들과 복제한 파일들의 중복에 의한 오버헤드를 줄일 수 있다.The memory of the
서버(210)는 COW(COPY ON WRITE) 기술을 구현하기 위하여 COW 기능을 지원하는 파일시스템을 이용할 수 있다. The
서버(210)는 COW(COPY ON WRITE)기능을 지원하는 파일시스템 상에 제 1 서브 볼륨(220) 또는 제 n_1 서브 볼륨(230)을 생성할 수 있다. 또한, 서버(210)는 COW기능을 미지원하지만 COW기능이 소프트웨어적으로 구현된 파일시스템 상에 제 1 서브 볼륨(220) 또는 제 n_1 서브 볼륨(230)을 생성할 수 있다. The
서버(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
하지만 이에 한정되는 것은 아니며, 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.
서버(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
또한 초기화 클라이언트는 마스터 이미지 파일로 부팅 후 기본 설정 정보를 마스터 이미지 파일에 적용하여 변경된 마스터 이미지 파일을 획득하는 단계(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
서버(210)는 COPY ON WRITE 기능에 의하여 변경된 마스터 이미지 파일이 들어있는 제 1 서브 볼륨(220)을 계승하고, 재변경된 마스터 이미지 파일을 저장하는 제 1_k 서브 볼륨을 생성하는 단계를 수행할 수 있다. 여기서 k는 자연수일 수 있다. 재변경된 마스터 이미지 파일은 변경된 마스터 이미지 파일과 버전이 다를 수 있다. 시스템은 변경된 마스터 이미지 파일과 다른 버전의 적어도 하나의 재변경된 마스터 이미지를 생성할 수 있다.The
초기화 클라이언트는 변경된 마스터 이미지 파일로 부팅하여 다른 기본 설정 정보를 마스터 이미지 파일에 적용할 수 있다. 예를 들어 초기화 클라이언트는 변경된 마스터 이미지 파일에 다른 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
사용자는 변경된 마스터 이미지 파일과 다른 환경을 동일 클라이언트에서 테스트 해보기 위하여 재변경된 마스터 이미지 파일을 생성할 수 있다. 또한 사용자는 재변경된 마스터 이미지 파일을 변경된 마스터 이미지 파일로 되돌리고 싶은 경우, 제 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
서버(210)는 클라이언트(260)의 수 이상의 서브 볼륨을 생성할 수 있다. 클라이언트의 수는 m일 수 있다. m은 자연수일 수 있다. 서버(210)는 마스터 이미지 파일을 저장하는 제 1 서브 볼륨(220) 및 제 m 복제 마스터 이미지 파일을 저장하는 제 n_1 서브 볼륨(230)을 포함하여 총 n 개의 서브 볼륨을 생성할 수 있다. 여기서 n은 2이상의 자연수일 수 있다. n=m+1일 수 있다.The
서버(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
제 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
이미 설명한 바와 같이 서버(210)는 COPY ON WRITE 기술이 구현되어 있을 수 있다. 최초로 생성된 제 n_1 서브 볼륨(230)에 저장되어 있는 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일과 동일할 수 있다. 또한 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 수 있다. 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 뿐이므로, 제 m 복제 마스터 이미지 파일이 디스크 내에서 차지하는 실제 용량은 변경된 마스터 이미지 파일의 용량보다 작을 수 있다. As already described, the
본 개시의 일 실시예에 따르면, 제 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
본 개시의 다양한 실시예에 따르면, 제 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
서버(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
서버(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
서버(210)는 iSCSI 연결에 필요한 정보를 생성하여 제 n_1 서브 볼륨(230)에 포함된 제 m 복제 마스터 이미지 파일을 클라이언트(260)에 할당할 수 있다. iSCSI 연결에 필요한 정보는 iSCSI 타겟의 식별정보를 포함할 수 있다. 서버(210)가 생성한 iSCSI 타겟의 식별정보의 개수는 클라이언트(260)의 수보다 크거나 같을 수 있다. 하나의 클라이언트는 적어도 하나의 iSCSI 타겟이 접속할 수 있기 때문이다.The
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
서버(210)는 클라이언트(260)에 IP주소 및 iSCSI 연결에 필요한 정보를 송신할 수 있다. iSCSI 타겟은 메모리 Input/Output을 위한 일종의 인터페이스일 수 있다. iSCSI 타겟의 형태는 네트워크에 연결된 물리적인 스토리지 자체일 수도 있고, 혹은 스토리지 서버에서 가동되는 소프트웨어로 구현된 서비스일 수도 있다. 이 외에도 iSCSI 타겟은 다양한 형태로 존재할 수 있다. 예를 들어, iSCSI 타겟은 서버(210)에 포함된 스토리지 서버일 수 있다. 스토리지 서버는 별도의 독립된 하드웨어를 가질 수 있으나 이에 한정되는 것은 아니며, 서버(210)의 적어도 일부의 하드웨어를 공유할 수 있다. 스토리지 서버는 대용량 메모리를 포함하는 서버일 수 있다. 클라이언트(260)는 IP 주소에 기초하여 네트워크를 설정할 수 있다. 또한 클라이언트(260)는 iSCSI 연결에 필요한 정보에 기초하여 제 n_1 서브 볼륨(230)에 연결할 수 있다. 제 n_1 서브 볼륨(230) 내의 제 m 복제 마스터 이미지 파일을 메모리로써 사용할 수 있다.The
클라이언트(260)가 제 n_1 서브 볼륨(230)에 포함된 제 m 복제 마스터 이미지 파일로 부팅 후 추가 설정 정보를 제 m 복제 마스터 이미지 파일에 적용하여 변경된 제 m 복제 마스터 이미지 파일을 획득하는 단계(350)를 수행할 수 있다.After the
클라이언트(260)는 제 n_1 서브 볼륨에 포함된 제 m 복제 마스터 이미지 파일로 부팅할 수 있다. 이미 설명한 바와 같이 최초로 생성된 제 m 복제 마스터 이미지 파일은 변경된 마스터 이미지 파일과 동일할 수 있다. 제 m 복제 마스터 이미지 파일에는 OS 및 프로그램이 설치되어 있을 수 있다. 하지만, 제 m 복제 마스터 이미지 파일에는 클라이언트(260)를 위한 드라이버가 설치되어 있지 않아 클라이언트(260)가 제대로 동작하지 않을 수 있다. 따라서 클라이언트(260)는 제 m 복제 마스터 이미지 파일에 추가 설정 정보를 적용할 수 있다. 추가 설정 정보를 적용한다는 것은, 프로그램의 정품인증을 하고, 드라이버 설치와 같은 개별 하드웨어에 필요한 설정하는 것을 의미할 수 있다. 클라이언트(260)는 이러한 과정을 통하여 변경된 제 m 복제 마스터 이미지를 획득할 수 있다.The
예를 들어, 클라이언트(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
클라이언트(260)는 자신의 하드웨어에 최적화된 변경된 복제 마스터 이미지 파일을 생성할 수 있다. 예를 들어, 변경된 제 1 복제 마스터 이미지 파일은 제 1 클라이언트(261)의 하드웨어에 최적화되어 있을 수 있다. 만약 제 2 클라이언트(262)가 변경된 제 1 복제 마스터 이미지 파일에 연결된다면, 제 2 클라이언트(262)는 자신의 하드웨어에 맞게 변경된 제 1 복제 마스터 이미지 파일을 재수정해야할 수 있다. 물론 제 1 클라이언트(261) 및 제 2 클라이언트(262)가 동일한 하드웨어를 가지는 경우, 변경된 제 1 복제 마스터 이미지 파일을 재수정할 필요 없을 수 있다는 점은 별론으로 한다. 또한, 다른 하드웨어를 가지더라도 별도의 하드웨어 의존적인 설정이 필요하지 않은 경우 재수정할 필요 없을 수 있다.The
또한 클라이언트(260)에 포함된 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)는 동일한 하드웨어를 가지더라도 서로 다른 설정을 이용하여 변경된 제 1 복제 마스터 이미지 파일, 변경된 제 2 복제 마스터 이미지 파일, 및 변경된 제 3 복제 마스터 이미지 파일을 생성할 수 있다. 서로 다른 설정은 서로 다른 드라이버, 프로그램, 파일을 가진다는 것을 의미할 수 있다. 악성코드 분석 시스템은 클라이언트(260)에 포함된 제 1 클라이언트(261), 제 2 클라이언트(262), 및 제 3 클라이언트(263)를 이용하여 다양한 환경에서 악성코드의 동작을 동시에 분석할 수 있다.In addition, the
악성코드 분석 시스템은 변경된 복제 마스터 이미지 파일을 클라이언트(260)의 초기화를 위해 이용할 수 있다. 클라이언트(260)가 악성코드 분석을 하기 위해 오염되더라도, 악성코드 분석 시스템은 변경된 복제 마스터 이미지 파일에 기초하여 클라이언트(260)를 초기상태로 돌릴 수 있다. 또한 클라이언트(260)는 초기 상태에서 다시 악성코드 분석을 수행할 수 있다. The malicious code analysis system may use the changed copy master image file for initialization of the
예를 들어, 변경된 제 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
서버(210)는 변경된 제 m 복제 마스터 이미지 파일이 들어있는 제 n_1 서브 볼륨(230)을 계승하고, 제 m_1 복제 마스터 이미지 파일을 저장하는 제 n_1_1 서브 볼륨을 더 생성하는 단계를 수행할 수 있다. 제 n_1_1 서브 볼륨은 클라이언트(260)에 각각 대응될 수 있다. 제 m_1 복제 마스터 이미지 파일을 포함할 수 있다. 제 m_1 복제 마스터 이미지 파일은 클라이언트(260)에 각각 대응될 수 있다.The
서버(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
이미 설명한 바와 같이 서버(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
제 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
서버(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
클라이언트(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
이상과 같이 서버(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
이하에서는 클라이언트(260)가 악성코드를 테스트하기 위하여 변경된 제 m 복제 마스터 이미지 파일을 이용하는 것을 중심으로 설명한다. 하지만 변경된 제 m 복제 마스터 이미지 파일 대신에 변경된 제 m_k 복제 마스터 이미지 파일을 이용하여도 악성코드를 테스트하기 위한 과정이 동일하게 설명될 수 있다.Hereinafter, the
도 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
제 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
서버(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
예를 들어 클라이언트(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
제 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
제 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
이미 설명한 바와 같이 서버(210)는 COPY ON WRITE 기술이 구현되어 있을 수 있다. 제 n_2 서브 볼륨(240)에 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일과 동일할 수 있다. 또한 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 수 있다. 최초로 생성된 제 m_1 부팅 이미지 파일은 변경된 제 m 복제 마스터 이미지 파일을 참조하기 위한 정보만을 포함할 뿐이므로, 제 m_1 부팅 이미지 파일의 용량은 변경된 제 m 복제 마스터 이미지 파일의 용량보다 작을 수 있다.As already described, the
본 개시의 일 실시예에 따르면,제 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
본 개시의 다양한 실시예에 따르면, 제 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
서버(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
서버(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
클라이언트(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
클라이언트(260)는 제 n_2 서브 볼륨(240)에 포함된 제 m_1 부팅 이미지 파일로 부팅 후 악성코드 분석을 수행하고 오염된 제 m_1 부팅 이미지 파일과 관련된 악성코드 분석 결과를 서버(210)로 전송하는 단계(530)를 수행할 수 있다. The
제 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
악성코드를 분석한다는 것은 클라이언트(260)가 악성코드에 감염되어 악성코드가 하는 동작을 로그 파일로 기록한다는 것을 의미할 수 있다. 따라서 제 m_1 부팅 이미지 파일은 오염될 수 있다.Analyzing the malicious code may mean that the
클라이언트(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
클라이언트(260)는 미리 정해진 시간동안에 악성코드 분석을 수행할 수 있다. 여기서 미리 정해진 시간은 시스템 관리자에 의하여 입력되거나, 외부의 장치로부터 수신될 수 있다. 클라이언트(260)에 의해 실행되는 악성코드 분석 프로그램은 악성코드 분석 결과를 도출하기 위한 일련의 명령어들이 포함되어 있을 수 있다. 클라이언트(260)가 미리 정해진 시간 내에 악성코드 분석 프로그램의 일련의 명령어들을 모두 실행하여 악성코드 분석 결과가 도출된 경우, 클라이언트(260)는 분석 결과를 서버(210)로 전송할 수 있다. 그 후 서버(210)는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 재시작하거나 종료할 수 있다. 또한, 클라이언트(260)가 미리 정해진 시간이 지났음에도 악성코드 분석 프로그램의 일련의 명령어들을 모두 실행하지 못한 경우, 클라이언트(260)는 현재까지 수집된 분석 결과를 서버(210)로 전송할 수 있다. 현재까지 수집된 분석 결과에는 분석 프로그램의 일련의 명령어들을 모두 실행하지 못했음을 나타내는 정보가 포함되어 있을 수 있다. 그 후 서버(210)는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 강제로 재시작하거나 종료할 수 있다. 클라이언트(260)가 분석을 시작한 후 미리 정해진 시간 내에 분석을 완료하지 못한 경우, 서버(210)는 클라이언트(260)를 종료시키거나 재부팅시켜서, 악성코드가 클라이언트(260)에서 지속적으로 실행되는 것을 방지할 수 있다. 따라서 악성 코드 시스템은 악성코드에 의한 부작용 또는 전력 낭비를 방지할 수 있다.The
서버(210)는 오염된 제 m_1 부팅 이미지 파일을 포함하는 제 n_2 서브 볼륨(240)을 초기화하기 위하여 클라이언트(260)를 종료시키거나 재부팅시킬 수 있다. 클라이언트(260)가 종료된 경우, 서버(210)는 클라이언트(260)에 시작 신호를 송신하여 클라이언트(260)가 다시 시작되도록 할 수 있다. 클라이언트(260)가 부팅 또는 재부팅하는 과정 중에, 오염된 제 m_1 부팅 이미지 파일을 포함하는 제 n_2 서브 볼륨(240)은 초기화 될 수 있다.The
서버(210)가 제 n_2 서브 볼륨(240)을 초기화 하는 과정을 도 6과 함께 설명한다.A process in which the
도 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
클라이언트(260)는 네트워크 설정이 되어있지 않으므로 브로드캐스팅으로 제 1 DHCP 요청을 송신할 수 있다.The
서버(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
서버(210)는 제 1 네트워크 설정 정보를 클라이언트(260)에 송신하는 단계(633)를 수행할 수 있다. 클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 네트워크를 설정하는 단계(634)를 수행할 수 있다. 예를 들어 클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 IP 주소, DNS서버, 게이트웨이 주소 중 적어도 하나를 설정할 수 있다. 클라이언트(260)는 네트워크 설정이 완료된 이후에 TCP/IP 또는 UDP 프로토콜 등을 이용하여 서버(210)와 데이터를 주고받을 수 있다.The
클라이언트(260)는 제 1 네트워크 설정 정보에 기초하여 PXE(Preboot Execution Environment) 펌웨어 요청 정보를 서버(210)에 송신하는 단계(635)를 수행할 수 있다. 이미 설명한 바와 같이 제 1 네트워크 설정 정보는 PXE 펌웨어 이미지의 위치를 포함할 수 있다. 클라이언트(260)는 PXE 펌웨어 위치에 기초하여 서버(210)에 PXE 펌웨어를 요청할 수 있다. 서버(210)는 독립적인 하드웨어를 가지는 적어도 하나의 서버를 포함할 수 있다. 또는 서버(210)는 적어도 일부의 하드웨어를 공유하는 적어도 하나의 서버를 포함할 수 있다. 클라이언트(260)는 PXE 펌웨어 이미지를 요청하기 위하여 PXE 펌웨어 위치를 서버(210)에 송신하므로, 서버(210)는 적어도 하나의 서버 중 PXE 펌웨어 이미지의 위치를 알 수 있다.The
클라이언트(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
PXE 펌웨어 이미지 파일은 서버(210)에 포함되어 있을 수 있지만 이에 한정되는 것은 아니다. PXE 펌웨어 이미지는 외부 PXE 서버에 저장되어 있을 수 있다. 또는 PXE 펌웨어 이미지는 서버(210)의 하드웨어의 적어도 일부를 공유하는 PXE 서버에 저장되어 있을 수 있다. 이 경우 클라이언트(260)는 제 1 네트워크 설정 정보에 포함된 PXE 펌웨어 이미지의 위치에 기초하여 PXE 서버에 PXE 펌웨어를 요청할 수 있다.The PXE firmware image file may be included in the
서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하는 단계(636)를 수행할 수 있다. 서버(210)는 TFTP 프로토콜을 이용하여 PXE 펌웨어 이미지 파일을 클라이언트(260)로 송신할 수 있다.The
서버(210)는 클라이언트에 PXE 펌웨어 이미지 파일을 송신하는 단계를 수행하기 전에 아래와 같은 단계를 더 수행할 수 있다. The
서버(210)는 클라이언트(260)에 대응하는 부팅 이미지 파일을 초기화하는 단계(640)를 수행할 수 있다. 부팅 이미지 파일은 m_1 부팅 이미지 파일 및 m_2 부팅 이미지 파일을 포함할 수 있다. 부팅 이미지 파일을 초기화하는 단계(640)를 설명하기 위하여 도 8을 잠시 참조한다.The
도 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
서버(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
클라이언트(260)에 의한 악성 코드 분석 과정에서 오염된 제 m_1 부팅 이미지 파일을 서버(210)가 삭제하는 단계(820)를 수행할 수 있다. 또는 서버(210)는 제 m_1 부팅 이미지 파일이 저장되어 있던 제 n_2 서브 볼륨(240)을 삭제하는 단계를 수행할 수 있다. In the process of analyzing the malicious code by the
서버(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
예를 들어 제 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
서버(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
다시 도 6을 참조하면, 클라이언트(260)에 대응하는 부팅 이미지 파일의 초기화가 완료된 경우, 서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하는 단계(636)를 수행할 수 있다.Referring back to FIG. 6 , when the initialization of the boot image file corresponding to the
또한, 클라이언트(260)에 대응하는 부팅 이미지 파일의 초기화가 완료되지 않은 경우, 서버(210)는 클라이언트(260)에 PXE 펌웨어 이미지 파일을 송신하지 않고, 초기화가 완료될 때까지 기다리는 단계를 수행할 수 있다. 서버(210)는 초기화 중 오류가 발생한 경우, 초기화를 다시 수행할 수 있다. 또한, 서버(210)는 초기화 중 오류가 발생한 경우, 사용자의 단말기에 오류와 관련된 정보를 유무선통신을 이용하여 송신할 수 있다. 사용자 단말기는, 사용자의 PC, 스마트폰, 태블릿 등을 포함할 수 있다. 오류와 관련된 정보는 오류의 발생여부에 대한정보, 오류의 내용에 대한 정보, 및 오류의 발생 시기에 대한 정보 중 적어도 하나를 포함할 수 있다. 사용자는 오류와 관련된 정보를 확인하여 필요한 조치를 신속히 취할 수 있다.In addition, if the initialization of the boot image file corresponding to the
클라이언트(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
도 7을 참조하면, 클라이언트(260)는 서버(210)에 제 2 DHCP 요청을 송신하는 단계(731)를 수행할 수 있다. 클라이언트(260)는 브로드캐스팅으로 서버(210)에 제 2 DHCP 요청을 송신할 수 있다. 하지만 이에 한정되는 것은 아니며, 클라이언트(260)는 서버(210)의 주소로 제 2 DHCP 요청을 송신할 수 있다.Referring to FIG. 7 , the
서버(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
서버(210)는 클라이언트(260)의 새로운 IP주소를 할당할 수 있다. 또한 서버(210)는 클라이언트(260)에 할당된 iSCSI 연결에 필요한 정보를 결정할 수 있다. 서버(210)는 클라이언트(260)에 포함된 적어도 하나의 클라이언트에 각각 iSCSI 연결에 필요한 정보를 할당할 수 있다. 적어도 하나의 클라이언트에 각각 할당된 iSCSI 연결에 필요한 정보는 서로 다를 수 있다. 즉 적어도 하나의 클라이언트와 iSCSI 연결에 필요한 정보는 1대1로 대응할 수 있다.The
서버(210)는 제 2 네트워크 설정 정보를 클라이언트(260)로 송신하는 단계(733)를 수행할 수 있다. 클라이언트(260)는 제 2 네트워크 설정 정보에 기초하여 네트워크를 설정하는 단계(734)를 수행할 수 있다. 네트워크를 설정하는 단계(734)는 네트워크를 설정하는 단계(634)와 동일/유사할 수 있다.The
클라이언트(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
iSCSI 타겟은 서버(210)에 포함된 스토리지 서버이거나 해당 서버에 존재할 수 있다. iSCSI 타겟은 메모리 Input/Output을 위한 일종의 인터페이스일 수 있다. iSCSI 타겟의 형태는 네트워크에 연결된 물리적인 스토리지 자체일 수도 있고, 혹은 스토리지 서버에서 가동되는 소프트웨어로 구현된 서비스일 수도 있다.The iSCSI target may be a storage server included in the
스토리지 서버는 별도의 독립된 하드웨어를 가질 수 있으나 이에 한정되는 것은 아니며, 서버(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
클라이언트(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
제 1 클라이언트(261)는 제 2_2 서브 볼륨(241)에 포함된 제 1_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다. 또한 제 2 클라이언트(262)는 제 3_2 서브 볼륨(242)에 포함된 제 2_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다. 또한 제 3 클라이언트(263)는 제 4_2 서브 볼륨(243)에 포함된 제 3_2 부팅 이미지 파일에 기초하여 새로운 악성코드를 분석할 준비가 완료될 수 있다.The
악성코드 분석 시스템은 복수의 클라이언트(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
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.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.
상기 서버가 상기 클라이언트에 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.
상기 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.
상기 클라이언트가 서버에 제 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.
상기 클라이언트에 대응하는 부팅 이미지 파일의 초기화가 완료되지 않은 경우, 상기 서버가 상기 클라이언트에 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.
상기 서버가 제 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.
상기 서버가 상기 변경된 제 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.
상기 제 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 서브 볼륨을 계승하고, 제 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.
상기 서버가 상기 변경된 제 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.
상기 클라이언트가 상기 서버에 제 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.
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)
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 |
-
2020
- 2020-12-28 KR KR1020200184449A patent/KR20220093585A/en not_active Application Discontinuation
-
2023
- 2023-01-25 KR KR1020230009485A patent/KR102618879B1/en active IP Right Grant
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 |