KR102260404B1 - 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템 - Google Patents

물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템 Download PDF

Info

Publication number
KR102260404B1
KR102260404B1 KR1020200095599A KR20200095599A KR102260404B1 KR 102260404 B1 KR102260404 B1 KR 102260404B1 KR 1020200095599 A KR1020200095599 A KR 1020200095599A KR 20200095599 A KR20200095599 A KR 20200095599A KR 102260404 B1 KR102260404 B1 KR 102260404B1
Authority
KR
South Korea
Prior art keywords
physical machine
manager server
information
execution
module
Prior art date
Application number
KR1020200095599A
Other languages
English (en)
Inventor
정경수
류열주
문주호
Original Assignee
주식회사 베일리테크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 베일리테크 filed Critical 주식회사 베일리테크
Priority to KR1020200095599A priority Critical patent/KR102260404B1/ko
Application granted granted Critical
Publication of KR102260404B1 publication Critical patent/KR102260404B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • G06F21/562Static detection
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

프로세서, 저장 장치 및 통신 장치를 포함하는 일반 PC의 구성을 가지는 적어도 하나의 물리 머신 및 상기 적어도 하나의 물리 머신과 일대다(多)의 네트워크로 연결되는 매니저 서버를 포함하는 악성 코드 탐지 시스템으로서, 상기 매니저 서버는 사전 설정된 실행 환경을 구현하도록 생성된 초기 OS 이미지 및 악성 코드 관련 데이터를 저장하는 데이터베이스, 상기 초기 OS 이미지를 이용해 물리 머신을 네트워크 부팅 및 초기화하는 설정 모듈(240), 행위 분석이 필요한 실행 코드를 물리 머신으로 전송하고 행위 로그 정보를 수신하는 테스트 모듈, 수신한 행위 로그 정보를 분석하는 동적 분석 모듈(230) 및 실행 코드의 파일 형태를 비교하는 정적 분석 모듈을 포함하고, 상기 적어도 하나의 물리 머신은 네트워크를 통해 수신한 실행 코드의 행위 로그 정보를 처리하고 수집하는 동적 분석 데이터 수집 모듈, 수집된 행위 로그 정보를 저장하는 스토리지, 및 저장된 행위 로그 정보를 상기 매니저 서버로 전송하는 전송 모듈을 포함할 수 있다.

Description

물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템{METHOD FOR DETECTING MALICIOUS CODE WITH USING PHYSICAL MACHINE AND SYSTEM THEREOF}
본 발명은 악성 코드 탐지 시스템 및 악성 코드 탐지 방법에 관한 것으로, 보다 상세하게는 가상 머신이 아닌 실제 PC 구성의 물리 머신들을 이용하여 실행 코드의 악성 여부를 분석하고 탐지하는 방법 및 시스템에 관한 것이다.
악성 코드는 악의적인 목적을 위해 작성된 실행 가능한 코드를 통칭하는 것으로, 사용자 PC 등에서 실행될 경우 네트워크 트래픽 발생, 시스템 성능 저하, 파일 삭제 또는 변조, 정보 유출 등의 증상을 유발할 수 있다.
종래 이러한 악성 코드를 탐지하여 차단하는 방법으로서 가상 머신을 이용하는 기술이 널리 사용되었다. 종래 악성 코드 차단 방법은 가상 머신 환경에서 코드를 실행한 후 해당 코드가 수행하는 행위 정보들을 수집하여 악성 코드인지 여부를 판별하고, 악성 코드로 판별된 경우 이를 차단하는 방식을 사용한다. 이러한 가상 머신 환경에서는 악성 코드를 실행하더라도 악성 코드의 행위를 실제 사용자 환경으로부터 용이하게 분리할 수 있으며, 다른 악성 코드를 실행하기 위한 최초의 환경으로 되돌리기 쉽다는 장점이 있다.
그러나 최근에는 악성 코드에 가상 머신을 우회하기 위한 기술이 적용되어, 가상 머신임을 확인하면 악성 행위를 수행하지 않고 숨어 있다가 실제 PC 환경에서만 악성 행위를 수행하도록 악성 코드가 진화함에 따라, 종래 가상 머신에서의 행위 정보 수집을 통한 동적 분석 방법은 한계에 부딪히게 되었다.
또한, 악성 코드에 의해 공격받은 PC를 최초의 환경으로 되돌린다 하더라도 이미 공격받은 해당 OS나 포맷 후 재설치한 OS의 해시값은 최초 설치되었던 OS의 해시값과 다르므로 악성 코드 분석 환경이 정확히 최초와 일치하지 않게 되므로, 악성 코드의 행위분석을 하기에는 변수가 너무 다양해져서 분석이 어렵게 된다. 또한, 애초에 해시값이 동일한 OS였다 하더라도 해당 OS를 설치한 후 환경 변화 및 소프트웨어 설치와 같은 일종의 변경이 가해지면 이 역시 악성 코드 분석 환경이 정확히 최초와 일치하지 않는 경우가 된다.
이에, 가상 머신이 아닌 물리 머신에서의 동적 분석을 통한 악성 코드 탐지 기술의 필요성이 대두되고 있다. 본 발명은 이와 관련된 것이다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 네트워크 시스템의 일부에 구축되는 물리 머신을 이용한 악성 코드 탐지 시스템 및 악성 코드 탐지 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 악성 코드 탐지 시스템은, 프로세서, 저장 장치 및 통신 장치를 포함하는 일반 PC의 구성을 가지는 적어도 하나의 물리 머신 및 상기 적어도 하나의 물리 머신과 일대다(多)의 네트워크로 연결되는 매니저 서버를 포함하는 악성 코드 탐지 시스템으로서, 상기 매니저 서버는 사전 설정된 실행 환경을 구현하도록 생성된 초기 OS 이미지 및 악성 코드 관련 데이터를 저장하는 데이터베이스, 상기 초기 OS 이미지를 이용해 물리 머신을 네트워크 부팅 및 초기화하는 설정 모듈(240), 행위 분석이 필요한 실행 코드를 물리 머신으로 전송하고 행위 로그 정보를 수신하는 테스트 모듈, 수신한 행위 로그 정보를 분석하는 동적 분석 모듈(230) 및 실행 코드의 파일 형태를 비교하는 정적 분석 모듈을 포함하고, 상기 적어도 하나의 물리 머신은 네트워크를 통해 수신한 실행 코드의 행위 로그 정보를 처리하고 수집하는 동적 분석 데이터 수집 모듈, 수집된 행위 로그 정보를 저장하는 스토리지, 및 저장된 행위 로그 정보를 상기 매니저 서버로 전송하는 전송 모듈을 포함할 수 있다.
본 발명의 일 실시예에 따른 악성 코드 탐지 시스템은 가상 머신이 아닌 물리 머신에 악성 코드로 의심되는 실행 코드 등을 일부러 침입시키고 이들의 행위를 방치한다. 즉, 최근의 악성 코드들 대부분이 가상 머신을 빠르게 인식하고 활동 없이 잠복할 수 있으므로 본 발명은 일반 PC 구성의 물리 머신을 기존의 가상 머신 대신 활용하여 악성 코드의 자연스러운 행동들을 분석할 수 있고, 이를 바탕으로 새로운 악성 코드들도 빠르게 탐지할 수 있다.
일 실시예에서, 상기 사전에 설정된 실행 환경은 OS 기본 환경을 포함할 수 있다.
일 실시예에서, 상기 사전에 설정된 실행 환경은 추가적인 프로그램의 설치 상태를 더 포함할 수 있다.
일 실시예에서, 상기 매니저 서버는 OS 이미지 검증 모듈을 더 포함하고, 상기 OS 이미지 검증 모듈은 상기 설정 모듈(240)이 물리 머신을 초기화하기 전에 목표가 된 실행 환경을 구현할 OS 이미지의 동일성 여부를 확인할 수 있다.
일 실시예에서, 상기 동적 분석 모듈(230)은 상기 적어도 하나의 물리 머신으로부터 기 분석 완료된 악성 코드들의 행위 로그 정보를 기초로 수신한 실행 코드의 행위 로그 정보를 분석하고, 상기 실행 코드가 악성 코드인지 판별할 수 있다.
본 발명의 일 실시예에 따른 악성 코드 탐지 시스템의 동작 방법은, 프로세서, 저장 장치 및 통신 장치를 포함하는 일반 PC의 구성을 가지는 적어도 하나의 물리 머신 및 상기 적어도 하나의 물리 머신과 일대다(多)의 네트워크로 연결되는 매니저 서버를 포함하는 악성 코드 탐지 시스템의 동작 방법으로서, 상기 매니저 서버에 의해 행위 분석이 필요한 실행 코드의 파일 형태를 비교하는 정적 분석을 수행하는 단계; 상기 매니저 서버에 의해 상기 정적 분석 결과를 기초로 상기 물리 머신에 상기 실행 코드를 전송하고, 상기 실행 코드의 실행을 요청하는 단계; 상기 물리 머신에 의해 상기 실행 코드를 실행하여 행위 로그 정보를 획득하는 단계; 상기 매니저 서버에 의해 상기 로그 정보를 기초로 상기 실행 코드의 동적 분석을 수행하는 단계; 상기 매니저 서버에 의해 데이터베이스에 저장된 사전에 설정된 실행 환경 정보를 구현하도록 생성된 초기 OS 이미지를 기초로 상기 물리 머신의 초기화를 요청하는 단계; 및 상기 물리 머신에 의해 상기 OS 이미지를 기초로 초기화하는 단계를 포함할 수 있다.
일 실시예에서, 상기 사전에 설정된 실행 환경은 OS 기본 환경을 포함할 수 있다.
일 실시예에서, 상기 사전에 설정된 실행 환경은 추가적인 프로그램의 설치 상태를 더 포함할 수 있다.
일 실시예에서, 상기 매니저 서버에 의해 물리 머신을 초기화하기 전에 목표가 된 실행 환경을 구현하기 위한 상기 OS 이미지의 동일성 여부를 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 동적 분석을 수행하는 단계는, 상기 적어도 하나의 물리 머신으로부터 수신한 실행 코드의 행위 로그 정보를 기 분석 완료된 악성 코드들의 행위 로그 정보를 기초로 유사도를 판정하고, 상기 실행 코드가 악성 코드인지 판별하는 것을 특징으로 할 수 있다.
상술한 본 개시의 양태들은 본 개시의 바람직한 실시 예들 중 일부에 불과하며, 본 개시의 기술적 특징들이 반영된 다양한 실시 예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 개시의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 일 실시예에 따르면, 가상 머신이 아닌 실제 PC 구성의 물리 머신을 사용하여 악성 코드를 분석하므로 악성 코드의 우회 공격 및 잠복을 방지할 수 있다.
본 발명의 일 실시예에 따르면, OS의 해시값이 유지되는 초기화에 의해 물리 머신의 무결성을 회복할 수 있고, 따라서 악성 코드의 자연스러운 활동이 드러나는 조건 하에서 악성 코드를 동적 분석하므로 악성 코드 분석 결과의 정확도가 종래 대비 현저히 높아진다.
도 1은 악성 코드 탐지 시스템의 일 실시예를 도시한 개념도이다.
도 2는 악성 코드 탐지 시스템의 매니저 서버 구성의 일 실시예를 도시한 블록도이다.
도 3은 악성 코드 탐지 시스템의 물리 머신의 구성의 일 실시예를 도시한 블록도이다.
도 4는 악성 코드 탐지 시스템의 악성 코드 탐지 동작의 일 실시예를 도시한 순서도이다.
도 5는 악성 코드 탐지 시스템의 매니저 서버의 초기화 요청 동작의 일 실시예를 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명에 따른 실시예들이 적용되는 악성 코드 탐지 시스템이 설명될 것이다. 본 발명에 따른 실시예들이 적용되는 악성 코드 탐지 시스템은 아래 설명된 내용에 한정되지 않으며, 본 발명에 따른 실시예들은 다양한 통신 시스템에 적용될 수 있다.
도 1은 악성 코드 탐지 시스템의 일 실시예를 도시한 개념도이다.
도 1을 참조하면, 악성 코드 탐지 시스템은 매니저 서버(200) 및 적어도 하나의 물리 머신들(301 내지 303)을 포함할 수 있다. 매니저 서버(200)는 적어도 하나의 물리 머신들(301 내지 303)과 네트워크(100)를 통해 연결될 수 있다. 매니저 서버(200)는 복수개의 물리 머신들(301 내지 303)과 일대다 연결될 수 있다.
악성 코드 탐지 시스템의 각각의 장치들(예를 들어, 매니저 서버(200), 적어도 하나의 물리 머신들(301 내지 303))은 적어도 하나의 프로세서, 메모리 및 네트워크(100)와 연결되어 통신을 수행하는 송수신 장치를 포함할 수 있다. 또한, 통신 노드는 입력 인터페이스 장치, 출력 인터페이스 장치, 저장 장치 등을 더 포함할 수 있다. 악성 코드 탐지 시스템의 각각의 장치들에 포함된 각각의 구성 요소들은 버스(bus)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서는 메모리 및 저장 장치 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 신경망 처리 장치(neural network processing unit, NPU) 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리 및 저장 장치 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
도 2는 악성 코드 탐지 시스템의 매니저 서버(200)의 구성의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 악성 코드 탐지 시스템의 매니저 서버(200)는 정적 분석 모듈(210), 테스트 모듈(220), 동적 분석 모듈(230), 설정 모듈(240), OS(operating system) 이미지 검증 모듈(250) 및 데이터베이스(database)(260)를 포함할 수 있다.
매니저 서버(200)는 네트워크(100)를 통해 연결된 다른 장치로부터 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등을 수신할 수 있다. 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등을 분석 대상 정보로 지칭할 수 있다. 매니저 서버(200)의 정적 분석 모듈(210)은 분석 대상 정보를 정적으로 분석할 수 있다. 예를 들어, 매니저 서버(200)의 정적 분석 모듈(210)은 분석 대상 정보의 해시 값, API, 문자열 등의 정보를 기초로 분석 대상 정보를 실행하지 아니하고 분석을 수행할 수 있다.
매니저 서버(200)의 테스트 모듈(220)은 분석 대상 정보(예를 들어, 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등)를 연결된 적어도 하나의 물리 머신(300)에 전송할 수 있다. 매니저 서버(200)의 테스트 모듈(220)은 적어도 하나의 물리 머신(300)으로 하여금 전송한 분석 대상 정보의 실행을 요청할 수 있다.
그리고 매니저 서버(200)의 테스트 모듈(220)은 물리 머신(300)으로부터 실행된 분석 대상 정보의 실행 결과 정보를 획득할 수 있다. 매니저 서버(200)의 동적 분석 모듈(230)은 물리 머신(300)에서의 분석 대상 정보 실행 결과 정보를 기초로 분석 대상 정보를 동적으로 분석할 수 있다. 즉, 매니저 서버는 별도의 장치(예를 들어, 물리 머신)으로부터 획득한 분석 대상 정보의 실행 결과 정보를 기초로 분석 대상 정보를 동적으로 분석할 수 있다.
매니저 서버(200)는 물리 머신(300)에 초기화 요청 메시지를 전송할 수 있다. 구체적으로, 매니저 서버(200)의 설정 모듈(240)은 미리 생성한 OS 이미지를 물리 머신(300)에 전송할 수 있으며, 전송한 OS 이미지를 기초로 물리 머신(300)의 초기화를 요청하는 메시지를 전송할 수 있다. 매니저 서버(200)의 설정 모듈(240)은 데이터베이스(260)로부터 OS 이미지 및 OS 이미지를 생성하기 위한 실행 환경 정보를 획득할 수 있다.
OS 이미지 검증 모듈(250)은 설정 모듈(240)에 의해 생성된 초기 OS 이미지의 무결성을 검증할 수 있다. OS 이미지 검증 모듈(250)은 물리 머신(300)을 초기화하기 위해 물리 머신(300)의 초기화 이전의 실행 환경을 구현할 OS 이미지의 동일성 여부를 확인할 수 있다. OS 이미지 검증 모듈(250)은 OS 이미지의 해시 값을 기초로 동일성 여부를 확인할 수 있다. 본 문서에서 무결성이란, 관리자가 사전에 설정해놓은 초기 OS 환경과 동일한 상태를 의미한다. 초기 OS 환경이란 OS의 기본 환경일 수도 있고, OS의 기본 환경에 임의의 소프트웨어가 설치되거나 OS 기본 환경의 설정이 변경된 상태일 수 있다. 즉, 무결성 상태는 관리자가 설정하고자 의도한 초기 상태다.
데이터베이스(260)는 OS 이미지 및 OS 이미지를 생성하기 위한 실행 환경 정보를 저장하기 위한 메모리 및 저장 장치일 수 있다. 그리고 데이터베이스(260)는 물리 머신(300)으로부터 획득한 분석 대상 정보의 실행 기록 정보를 더 저장하기 위한 메모리 및 저장 장치일 수 있다.
매니저 서버(200)에 포함된 각각의 구성 요소들은 버스(bus)에 의해 연결되어 서로 통신을 수행할 수 있다.
도 3은 악성 코드 탐지 시스템의 물리 머신의 구성의 일 실시예를 도시한 블록도이다.
도 3를 참조하면, 악성 코드 탐지 시스템의 물리 머신(300)은 동적 분석 데이터 수집 모듈(310), 스토리지(320) 및 전송 모듈(330)을 포함할 수 있다.
물리 머신(300)은 네트워크(100)를 통해 연결된 다른 장치(예를 들어, 매니저 서버(200) 등)로부터 분석 대상 정보 등을 수신할 수 있다. 그리고 물리 머신(300)은 네트워크(100)를 통해 연결된 다른 장치(예를 들어, 매니저 서버(200) 등)로부터 분석 대상 정보의 실행 요청 메시지를 수신할 수 있다.
물리 머신(300)은 매니저 서버(200)으로부터의 실행 요청 메시지에 따라 분석 대상 정보(예를 들어, 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등)를 실행할 수 있다. 물리 머신(300)의 동적 분석 데이터 수집 모듈(310)은 분석 대상 정보의 실행 결과 물리 머신(300)에 기록되는 정보들을 수집하는 모듈일 수 있다. 동적 분석 데이터 수집 모듈(310)의 구체적인 구성의 일 실시예는 아래에 서술된 바와 같을 수 있다.
동적 분석 데이터 수집 모듈(310)은 API(Application Protocol Interface) 함수 호출 모듈(310-a) , 프로세스 모듈(310-b), 레지스트리 모듈(310-c), 서비스 라이브러리 모듈(310-d), PE(portable executable) 모듈(310-e), 메타데이터 모듈(310-f), Dropped 모듈(310-g), Yara 모듈(310-h), 메모리 덤프 모듈(310-i), Pcap 모듈(310-j), 다운로드 모듈(310-k), 네트워크 모듈(310-l), 파일 시스템 변경 모듈(310-m), Zero day 모듈(310-n), 및 SSL proxy 모듈(310-o)을 더 포함할 수 있다.
API 함수 호출 모듈(310-a) 은 분석 대상 정보의 실행 결과, 분석 대상 정보가 실행되면서 호출한 API들에 관한 정보를 수집하는 모듈일 수 있다. 프로세스 모듈(310-b)은 분석 대상 정보의 실행 결과, 분석 대상 정보가 실행되면서 실행한 프로세스들에 관한 정보를 수집하는 모듈일 수 있다. 레지스트리 모듈(310-c)은 분석 대상 정보의 설치 시, 분석 대상 정보에 의해 요구되는 정보들이 기록된 레지스트리에 관한 정보를 수집하는 모듈일 수 있다.
서비스 라이브러리 모듈(310-d)은 분석 대상 정보의 실행 결과, 분석 대상 정보가 사용한 라이브러리들에 관한 정보를 수집한 모듈일 수 있다. PE 모듈(310-e)은 분석 대상 정보의 실행 시 필요한 메모리 매핑에 관한 정보를 수집하는 모듈일 수 있다. 메타데이터 모듈(310-f)은 분석 대상 정보에 대한 기본적인 정보 파일 해시, 파일 크기, 생성 날짜 등의 정보를 수집하는 모듈일 수 있다.
Dropped 모듈(310-g)은 분석 대상 정보의 실행 결과, 분석 대상 정보의 명령어 중, 특정 시점에 추가 실행 파일을 다운로드하도록 실행되는 명령어에 관한 정보를 수집하는 모듈일 수 있다. Yara 모듈(310-h)은 분석 대상 정보의 바이너리(binary) 패턴 및/또는 문자열 패턴을 수집하는 모듈일 수 있다. 메모리 덤프 모듈(310-i)은 분석 대상 정보 실행 시, 물리 머신(300)의 메모리의 상태 값 및 상태 값의 변화량에 관한 정보를 수집하는 모듈일 수 있다.
Pcap 모듈(310-j)은 분석 대상 정보 실행 시, 외부로 통신하는 통신 내용에 관한 정보를 수집하는 모듈일 수 있다. 다운로드 모듈(310-k)은 분석 대상 정보 실행 시, 네트워크를 통해 물리 머신(300)에 다운로드 된 파일에 관한 정보를 수집하는 모듈일 수 있다. 네트워크 모듈(310-l)은 분석 대상 정보 실행 시, 분석 대상 정보의 요청에 따른 물리 머신(300)의 외부로의 통신 시도 내역에 관한 정보를 수집하는 모듈일 수 있다.
파일 시스템 변경 모듈(310-m)은 분석 대상 정보 실행 시, 분석 대상 정보에 의해 변경되는 파일 시스템 정보를 수집하는 모델일 수 있다. Zero day 모듈(310-n)은 분석 대상 정보 실행 시, 분석 대상 정보의 실행 시점이 분석 대상 정보에 대한 취약점 보완 패치 이전인지 여부를 모니터링하는 모듈일 수 있다. SSL proxy 모듈(310-o)은 분석 대상 정보 실행 시, 물리 머신(300)이 분석 대상 정보에 의해 암호화된 패킷을 송수신하는 경우, 암호화된 패킷을 평문으로 변환한 후, 패킷의 흐름에 관한 정보를 수집하는 모듈일 수 있다.
즉, 물리 머신(300)의 동적 분석 데이터 수집 모듈(310)은 분석 대상 정보의 행위 로그 정보, API 함수 호출 정보, 프로세스 기록 정보, 레지스트리 정보, 서비스 라이브러리 정보, PE 정보, 메타데이터 정보, 다운로드 기록 정보, 네트워크(100) 접속 기록 정보, 파일 시스템 변경 정보 중 적어도 하나의 정보를 획득할 수 있다. 그리고 물리 머신(300)은 적어도 하나의 실행 결과 데이터를 미리 설정된 기준에 따라 분류할 수 있으며, 재구성할 수 있다.
물리 머신(300)은 수집한 분석 대상 정보의 실행 결과 정보를 스토리지(320)에 저장할 수 있다. 즉, 물리 머신(300)은 실행 코드의 실행 결과 획득한 실행 코드의 행위 로그 정보, API 함수 호출 정보, 프로세스 기록 정보, 레지스트리 정보, 서비스 라이브러리 정보, PE 정보, 메타데이터 정보, 다운로드 기록 정보, 네트워크(100) 접속 기록 정보, 파일 시스템 변경 정보 중 적어도 하나의 정보를 스토리지(320)에 저장할 수 있다. 그리고 물리 머신(300)의 전송 모듈(330)은 분석 대상 정보의 실행 결과 정보를 포함하는 메시지를 매니저 서버(200)로 전송할 수 있다.
물리 머신(300)은 전송 모듈(330)을 포함할 수 있다. 전송 모듈(330)에 의해, 물리 머신(300)은 네트워크(100)를 통해 연결된 다른 장치(예를 들어, 매니저 서버(200) 등)로부터 OS 이미지, 실행 코드를 포함하는 분석 대상 정보를 수신할 수 있다. 그리고 물리 머신(300)은 매니저 서버(200)로부터 초기화 요청 메시지를 수신할 수 있다.
물리 머신(300)은 제어 모듈(340)을 포함하고, 제어 모듈(340)은 수신한 OS 이미지를 기초로 물리 머신(300)의 초기화를 실행할 수 있다. 즉, 초기화 동작을 실행한 물리 머신(300)은 수신한 OS 이미지를 재설치하여 분석 대상 정보의 실행 이전 상태로 복구할 수 있다.
매니저 서버(200)에 포함된 각각의 구성 요소들은 버스(bus)에 의해 연결되어 서로 통신을 수행할 수 있다.
도 2에 도시된 매니저 서버(200) 및 도 3에 도시된 물리 머신(300)을 포함하는 악성 코드 탐지 시스템의 악성 코드 탐지 방법은 아래에 설명된 바와 같을 수 있다.
도 4는 악성 코드 탐지 시스템의 악성 코드 탐지 동작의 일 실시예를 도시한 순서도이다.
도 4를 참조하면, 악성 코드 탐지 시스템은 매니저 서버(200) 및 매니저 서버(200)와 네트워크(100)를 통해 연결되는 적어도 하나의 물리 머신(300)을 포함할 수 있다.
매니저 서버(200)는 네트워크(100)를 통해 분석 대상 실행 코드를 수신할 수 있다(S401). 예를 들어, 매니저 서버(200)는 도메인 수집 서버로부터 분석 대상 도메인 정보를 획득할 수 있다. 매니저 서버(200)는 웹 서버(예를 들어, 대시 보드 등)로부터 분석 대상 웹 사이트 정보를 획득할 수 있다. 그리고 매니저 서버(200)는 네트워크(100) 기반 침입 탐지 시스템(network based intrusion detection system) 및/또는 호스트 기반 침입 탐지 시스템(host based intrusion detection system)(예를 들어, zeek, bro 등)으로부터 분석 대상 정보(예를 들어, 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등)를 획득할 수 있다.
매니저 서버(200)는 수신한 분석 대상 정보(예를 들어, 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등)들 각각을 정적 분석할 수 있다(S402). 예를 들어, 매니저 서버(200)는 도메인의 정보를 수집할 수 있으며, 수집된 도메인의 정보를 분석함으로써, 학습을 수행할 수 있다. 매니저 서버(200)는 정상적인 도메인(이하, 정상 도메인이라고 칭함)들의 정보를 수집하고, 수집한 정상 도메인 정보를 분석하여 미리 설정된 인공지능 알고리즘을 적용하여 정상 도메인 정보의 특성을 학습할 수 있다. 매니저 서버(200)는 악성 도메인들의 정보를 수집하고, 수집한 악성 도메인 정보를 분석하여 미리 설정된 인공지능 알고리즘을 적용하여 악성 도메인 정보의 특성을 학습할 수 있다. 그리고 매니저 서버(200)는 DGA(domain generating algorithm)에 의해 생성된 DGA 도메인들의 정보를 수집하고, 수집한 악성 도메인 정보를 분석하여 미리 설정된 인공지능 알고리즘을 적용하여 악성 도메인 정보의 특성을 학습할 수 있다.
매니저 서버(200)는 정적 분석 결과, 매니저 서버(200)는 악성 정보 임이 의심되는 복수개의 실행 코드들을 분류할 수 있다(S402).
매니저 서버(200)는 물리 머신(300)에 악성 코드 의심 실행 코드(이하 제1 실행 코드라고 함)를 적어도 하나의 물리 머신(300)에 전달할 수 있다(S403). 그리고 매니저 서버(200)는 제1 실행 코드의 분석을 요청하는 메시지인 제1 실행 코드 분석 요청 메시지를 적어도 하나의 물리 머신(300)에 전달할 수 있다(S404).
매니저 서버(200)에 연결된 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 제1 실행 코드를 수신할 수 있다(S403). 그리고 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 제1 실행 코드의 분석 요청 메시지를 수신할 수 있다(S404).
적어도 하나의 물리 머신(300)은 매니저 서버(200)의 요청 정보를 기초로 제1 실행 코드를 실행할 수 있다(S405). 적어도 하나의 물리 머신(300)은 제1 실행 코드의 실행 결과, 제1 실행 코드의 행위 로그 정보를 수집할 수 있다. 그리고 적어도 하나의 물리 머신(300)은 수신한 제1 실행 코드의 API 함수 호출 정보, 프로세스 기록 정보, 레지스트리 정보, 서비스 라이브러리 정보, PE 정보, 메타데이터 정보, 다운로드 기록 정보, 네트워크(100) 접속 기록 정보, 파일 시스템 변경 정보 중 적어도 하나의 정보를 수집할 수 있다. 실행 행위 로그 정보, API 함수 호출 정보, 프로세스 기록 정보, 레지스트리 정보, 서비스 라이브러리 정보, PE 정보, 메타데이터 정보, 다운로드 기록 정보, 네트워크(100) 접속 기록 정보, 파일 시스템 변경 정보 중 적어도 하나의 정보를 실행 결과 데이터로 지칭할 수 있다. 적어도 하나의 물리 머신(300)은 적어도 하나의 실행 결과 데이터를 미리 설정된 기준에 따라 분류할 수 있으며, 재구성할 수 있다.
적어도 하나의 물리 머신(300)은 미리 설정된 시간이 경과한 경우, 제1 실행 코드의 실행 결과 데이터를 매니저 서버(200)로 전달할 수 있다(S406). 매니저 서버(200)는 적어도 하나의 물리 머신(300)으로부터 제1 실행 코드의 실행 결과 데이터를 획득할 수 있다(S406).
매니저 서버(200)는 수신한 분석 대상 정보(예를 들어, 분석 대상 도메인 정보, 웹 사이트 정보 및 실행 코드 등) 중 악성 정보임이 의심되는 정보들 각각을 동적 분석할 수 있다(S407). 예를 들어, 매니저 서버(200)는 악성 정보임이 의심되는 정보들의 API 함수 호출 정보, 프로세스 기록 정보, 레지스트리 정보, 서비스 라이브러리 정보, PE 정보, 메타데이터 정보, 다운로드 기록 정보, 네트워크(100) 접속 기록 정보, 파일 시스템 변경 정보 중 적어도 하나의 정보를 기초로 악성 정보임이 의심되는 정보들 각각에 대해 동적 분석할 수 있다. 예를 들어, 매니저 서버(200)는 악성 정보임이 의심되는 정보들의 API 함수 정보를 기초로 물리 머신(300)에서 이루어진 행위를 분석할 수 있다. 매니저 서버(200)는 악성 정보임이 의심되는 정보들의 실행 결과 기록된 프로세스 실행 내역, 라이브러리 정보, 메모리 상태 정보, 통신 내역 등을 분석할 수 있다.
매니저 서버(200)는 분석 결과를 기초로 악성 정보임이 의심되는 복수개의 실행 코드들 중 적어도 일부를 악성 코드로 분류할 수 있다. 동적 분석은, 분석대상 파일을 물리 머신 환경에서 구동되는 운영체제(OS) 상에서 실행하였을 경우 분석대상 파일이 행하는 행위 정보를 수집하여 이를 분석하는 분석 방법을 의미한다.
또는 매니저 서버(200)는 제1 실행 코드의 실행 결과 데이터(예를 들어, 행위 로그 정보 등)과 기 분석 완료된 악성 코드들의 실행 결과 데이터(예를 들어, 행위 로그 정보 등)의 유사도를 판단할 수 있다. 매니저 서버(200)는 미리 설정된 모델을 통해 제1 실행 코드의 실행 결과 데이터와 기 분석 완료된 악성 코드들의 실행 결과 데이터의 유사도를 판단할 수 있다. 제1 실행 코드의 실행 결과 데이터와 기 분석 완료된 악성 코드들의 실행 결과 데이터의 유사도가 미리 설정된 값을 초과하는 경우, 매니저 서버(200)는 제1 실행 코드를 악성 코드로 판단할 수 있다(S407).
그리고 매니저 서버(200)는 동적 분석 결과들 각각을 연관 분석할 수 있다. 매니저 서버(200)는 악성 코드 분석 결과를 기초로 악성 코드의 유형별 탐지 건수 통계, 악성 코드 감염 추이, 국가별 유포지 정보, 레지스트리/API 함수 호출 정보, 악성 코드의 메타 정보/평판 정보 등을 추가로 분석할 수 있다.
매니저 서버(200)는 분석 대상 실행 코드 중 악성 코드로 분류된 실행 코드들의 실행 결과 정보를 기초로 정적 분석 모듈(210)을 업데이트할 수 있다. 예를 들어, 매니저 서버(200)는 도메인의 정보를 수집할 수 있으며, 수집된 도메인의 정보를 분석하고, 기존의 악성 도메인 탐지 모델의 가중치를 업데이트 함으로써 학습을 수행할 수 있다.
매니저 서버(200)는 분석 대상 실행 코드 중 악성 코드로 분류된 실행 코드들의 실행 결과 정보를 기초로 동적 분석 모듈(230)을 업데이트할 수 있다. 예를 들어, 매니저 서버(200)는 악성 코드의 실행 결과 정보를 수집할 수 있으며, 수집된 실행 결과 정보를 분석하고, 기존의 악성 도메인 탐지 모델의 가중치를 업데이트 함으로써 학습을 수행할 수 있다.
매니저 서버(200)는 악성 코드로 분류된 제1 실행 코드에 관한 정보를 네트워크를 통해 전송할 수 있다(S408). 웹 서버(예를 들어, 대시 보드 등), 네트워크 기반 침입 탐지 시스템 및 호스트 기반 침입 탐지 시스템 등은 매니저 서버로부터 제1 실행 코드에 관한 정보를 수신하여, 악성 코드 현황에 제1 실행 코드에 관한 정보를 업데이트할 수 있다.
매니저 서버(200)는 제1 실행 코드의 분석을 완료한 적어도 하나의 물리 머신(300)에 미리 생성한 OS 이미지를 전달할 수 있다. 그리고 매니저 서버(200)는 전달한 OS 이미지를 기초로 초기화를 요청하는 메시지인 초기화 요청 메시지를 적어도 하나의 물리 머신(300)에 전달하여 초기화를 요청할 수 있다(S409).
물리 머신(300)에 초기화를 요청하는 매니저 서버(200)의 구체적인 동작은 아래에 설명된 바와 같을 수 있다.
도 5는 악성 코드 탐지 시스템의 매니저 서버(200)의 초기화 요청 동작의 일 실시예를 도시한 흐름도이다.
매니저 서버(200)는 사전 설정된 실행 환경을 구현하도록 초기 OS 이미지를 생성할 수 있다(S409-1). 매니저 서버(200)는 물리 머신(300)의 OS 기본 환경 정보 및 추가적인 프로그램의 설치 상태 정보 중 적어도 하나의 정보를 이용하여 초기 OS 이미지를 생성할 수 있다(S409-1). 매니저 서버(200)는 물리 머신(300)의 사전 설정된 실행 환경 정보를 미리 데이터베이스(260)에 기록할 수 있다.
매니저 서버(200)는 물리 머신(300)의 초기화 이전의 실행 환경을 구현하기 위하여, 초기화 이전의 초기 OS 이미지와 생성한 초기 OS 이미지 간의 동일성 여부를 확인할 수 있다. 예를 들어, 매니저 서버(200)는 생성한 초기 OS 이미지의 해시를 획득할 수 있다(S409-2). 그리고 매니저 서버(200)는 초기화 이전의 초기 OS 이미지와 생성한 초기 OS 이미지의 해시 값을 비교하여 해시 값의 변경 여부를 판단할 수 있다(S409-3). 초기화 이전의 초기 OS 이미지와 생성한 초기 OS 이미지의 해시 값이 동일한 경우, 생성한 초기 OS 이미지는 초기화 이전의 초기 OS 이미지와 동일한 OS 이미지일 수 있다. 반면, 초기화 이전의 초기 OS 이미지와 생성한 초기 OS 이미지의 해시 값이 서로 상이한 경우, 생성한 초기 OS 이미지는 초기화 이전의 초기 OS 이미지와 상이한 OS 이미지일 수 있다.
초기화 이전의 초기 OS 이미지와 상이한 OS 이미지를 생성한 매니저 서버(200)는 데이터베이스(260)로부터 사전 설정된 실행 환경 정보(예를 들어, OS 기본 환경 정보 또는 프로그램의 설치 상태 정보)를 다시 획득하여 OS 이미지를 재생성할 수 있다.
초기화 이전의 초기 OS 이미지와 동일한 OS 이미지를 생성한 매니저 서버(200)는 생성한 OS 이미지를 물리 머신(300)에 전달할 수 있다(S409-4). 물리 머신들(301 내지 303) 각각의 실행 환경이 동일한 경우, 매니저 서버(200)는 연결된 물리 머신들(301 내지 303)에 동일한 OS 이미지를 전달할 수 있다. 또는 물리 머신들(301 내지 303) 각각의 실행 환경 정보가 상이한 경우, 서로 다른 초기 OS 이미지를 물리 머신들(301 내지 303) 각각에 전송할 수 있다.
물리 머신(300)에 초기 OS 이미지를 전송한 매니저 서버(200)는 전송한 초기 OS 이미지를 기초로 한 초기화의 수행을 지시하는 메시지를 물리 머신(300)에 전송할 수 있다(S409-5). 그리고 매니저 서버(200)는 초기 OS 이미지를 생성하기 위한 실행 환경 정보, 초기 OS 이미지의 해시 정보 및 초기화 관련 시점 정보 등을 데이터베이스(260)에 기록할 수 있다.
다시 도 4를 참조하면, 매니저 서버(200)에 연결된 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 OS 이미지를 수신할 수 있다. 그리고 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 초기화 요청 메시지를 수신할 수 있다. 적어도 하나의 물리 머신(300)은 매니저 서버(200)의 요청 정보를 기초로 OS를 초기화할 수 있다(S409).
적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 수신한 OS 이미지를 기초로 초기화 동작을 수행할 수 있으며, 초기화 동작을 완료하였음을 매니저 서버(200)에 보고할 수 있다. 매니저 서버(200)는 물리 머신(300)에 별개의 악성 코드 의심 실행 코드(이하 제2 실행 코드라고 함)를 적어도 하나의 물리 머신(300)에 전달할 수 있다(S410). 그리고 매니저 서버(200)는 제2 실행 코드의 분석을 요청하는 메시지인 제2 실행 코드 분석 요청 메시지를 적어도 하나의 물리 머신(300)에 전달할 수 있다(S411).
매니저 서버(200)에 연결된 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 제2 실행 코드를 수신할 수 있다(S410). 그리고 적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터 제2 실행 코드의 실행 요청 메시지를 수신할 수 있다(S411).
적어도 하나의 물리 머신(300)은 매니저 서버(200)로부터의 실행 요청 메시지를 기초로 제2 실행 코드를 실행할 수 있다(S412). 물리 머신(300)은 제2 실행 코드의 실행 결과 데이터를 매니저 서버(200)로 전달할 수 있다(S413).
매니저 서버(200)는 적어도 하나의 물리 머신(300)으로부터 획득한 제2 실행 코드의 실행 결과 데이터를 기초로 동적 분석을 수행할 수 있다(S414). 매니저 서버(200)는 제2 실행 코드의 동적 분석 결과를 기초로 제2 실행 코드의 악성 코드 여부를 판단하여, 네트워크(100)를 통해 제2 실행 코드의 악성 코드 여부를 보고할 수 있다(S415).
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 프로세서, 저장 장치 및 통신 장치를 포함하는 일반 PC의 구성을 가지는 적어도 하나의 물리 머신 및 상기 적어도 하나의 물리 머신과 일대다(多)의 네트워크로 연결되는 매니저 서버를 포함하는 악성 코드 탐지 시스템으로서,
    상기 매니저 서버는 사전에 설정된 실행 환경을 구현하도록 악성 코드 관련 데이터를 저장하는 데이터베이스, 행위 분석이 필요한 실행 코드를 물리 머신으로 전송하고 행위 로그 정보를 수신하는 테스트 모듈, 상기 물리 머신으로부터 수신한 상기 실행 코드의 실행으로 인한 행위 로그 정보를 분석하는 동적 분석 모듈, 실행 코드의 파일 형태를 비교하는 정적 분석 모듈, 및 상기 물리 머신을 초기화하기 위해, 상기 실행 코드의 전송 시점 이전의 상기 물리 머신의 OS 이미지와 동일한 초기 OS 이미지를 포함하는 초기화 요청 메시지를 상기 물리 머신에게 전송함으로써, 물리 머신을 네트워크 부팅 및 초기화하는 설정 모듈(240)을 포함하고,
    상기 적어도 하나의 물리 머신은 네트워크를 통해 수신한 실행 코드의 행위 로그 정보를 처리하고 수집하는 동적 분석 데이터 수집 모듈, 수집된 행위 로그 정보를 저장하는 스토리지, 및 저장된 행위 로그 정보를 상기 매니저 서버로 전송하는 전송 모듈을 포함하고, 상기 초기화 요청 메시지에 포함된 상기 초기 OS 이미지를 기초로 초기화함으로써, 관리자가 사전에 설정해놓은 초기 OS 환경과 동일한 상태를 갖는,
    악성 코드 탐지 시스템.
  2. 청구항 1에 있어,
    상기 사전에 설정된 실행 환경은 OS 기본 환경을 포함하는,
    악성 코드 탐지 시스템.
  3. 청구항 2에 있어,
    상기 사전에 설정된 실행 환경은 추가적인 프로그램의 설치 상태를 더 포함하는,
    악성 코드 탐지 시스템.
  4. 청구항 1에 있어,
    상기 매니저 서버는 OS 이미지 검증 모듈을 더 포함하고,
    상기 OS 이미지 검증 모듈은 상기 설정 모듈(240)이 물리 머신을 초기화하기 전에 목표가 된 실행 환경을 구현할 OS 이미지의 동일성 여부를 확인하는,
    악성 코드 탐지 시스템.
  5. 청구항 1에 있어,
    상기 동적 분석 모듈(230)은 상기 적어도 하나의 물리 머신으로부터 기 분석 완료된 악성 코드들의 행위 로그 정보를 기초로 수신한 실행 코드의 행위 로그 정보를 분석하고, 상기 실행 코드가 악성 코드인지 판별하는,
    악성 코드 탐지 시스템.
  6. 프로세서, 저장 장치 및 통신 장치를 포함하는 일반 PC의 구성을 가지는 적어도 하나의 물리 머신 및 상기 적어도 하나의 물리 머신과 일대다(多)의 네트워크로 연결되는 매니저 서버를 포함하는 악성 코드 탐지 시스템의 동작 방법으로서,
    상기 매니저 서버에 의해 행위 분석이 필요한 실행 코드의 파일 형태를 비교하는 정적 분석을 수행하는 단계;
    상기 매니저 서버에 의해 상기 정적 분석 결과를 기초로 상기 물리 머신에 상기 실행 코드를 전송하고, 상기 실행 코드의 실행을 요청하는 단계;
    상기 물리 머신에 의해 상기 실행 코드를 실행하여 행위 로그 정보를 획득하는 단계;
    상기 매니저 서버에 의해 상기 로그 정보를 기초로 상기 실행 코드의 동적 분석을 수행하는 단계;
    사전에 설정된 실행 환경을 구현하도록 상기 매니저 서버에 의해 상기 실행 코드의 전송 시점 이전의 상기 물리 머신의 OS 이미지와 동일한 초기 OS 이미지를 포함하는 초기화 요청 메시지를 상기 물리 머신에게 전송하는 단계; 및
    상기 물리 머신에 의해 상기 초기 OS 이미지를 기초로 초기화하는 단계를 포함하고,
    상기 물리 머신은, 상기 초기화 요청 메시지에 포함된 상기 초기 OS 이미지를 기초로 초기화함으로써, 관리자가 사전에 설정해놓은 초기 OS 환경과 동일한 상태를 갖는,
    악성 코드 탐지 시스템의 동작 방법.
  7. 청구항 6에 있어,
    상기 사전에 설정된 실행 환경은 OS 기본 환경을 포함하는,
    악성 코드 탐지 시스템의 동작 방법.
  8. 청구항 7에 있어,
    상기 사전에 설정된 실행 환경은 추가적인 프로그램의 설치 상태를 더 포함하는,
    악성 코드 탐지 시스템의 동작 방법.
  9. 청구항 6에 있어,
    상기 매니저 서버에 의해 물리 머신을 초기화하기 전에 목표가 된 실행 환경을 구현하기 위한 상기 OS 이미지의 동일성 여부를 확인하는 단계를 더 포함하는,
    악성 코드 탐지 시스템의 동작 방법.
  10. 청구항 6에 있어,
    상기 동적 분석을 수행하는 단계는,
    상기 적어도 하나의 물리 머신으로부터 기 분석 완료된 악성 코드들의 행위 로그 정보를 기초로 수신한 실행 코드의 행위 로그 정보를 분석하고, 상기 실행 코드가 악성 코드인지 판별하는 것을 특징으로 하는,
    악성 코드 탐지 시스템의 동작 방법.
KR1020200095599A 2020-07-30 2020-07-30 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템 KR102260404B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200095599A KR102260404B1 (ko) 2020-07-30 2020-07-30 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200095599A KR102260404B1 (ko) 2020-07-30 2020-07-30 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템

Publications (1)

Publication Number Publication Date
KR102260404B1 true KR102260404B1 (ko) 2021-06-03

Family

ID=76396375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200095599A KR102260404B1 (ko) 2020-07-30 2020-07-30 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템

Country Status (1)

Country Link
KR (1) KR102260404B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150129357A (ko) * 2014-05-12 2015-11-20 한국전자통신연구원 실 환경 악성코드 분석 장치 및 방법
KR20200061421A (ko) * 2018-11-23 2020-06-03 주식회사 이스트시큐리티 독립된 장치를 이용한 악성코드 분석 시스템, 이를 위한 장치 및 이를 위한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150129357A (ko) * 2014-05-12 2015-11-20 한국전자통신연구원 실 환경 악성코드 분석 장치 및 방법
KR20200061421A (ko) * 2018-11-23 2020-06-03 주식회사 이스트시큐리티 독립된 장치를 이용한 악성코드 분석 시스템, 이를 위한 장치 및 이를 위한 방법

Similar Documents

Publication Publication Date Title
US10033748B1 (en) System and method employing structured intelligence to verify and contain threats at endpoints
US10581879B1 (en) Enhanced malware detection for generated objects
US10289837B2 (en) Log information generation apparatus and recording medium, and log information extraction apparatus and recording medium
RU2659737C1 (ru) Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов
RU2739865C2 (ru) Система и способ обнаружения вредоносного файла
CN109586282B (zh) 一种电网未知威胁检测系统及方法
EP3776304A1 (en) Trusted execution security policy platform
KR102362516B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102424014B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102396237B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
CN110889112B (zh) 一种基于白名单机制的软件运行统一控制系统及方法
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
KR102260404B1 (ko) 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템
US20230048076A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
KR102420884B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102411383B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
US11763004B1 (en) System and method for bootkit detection
KR20210083780A (ko) Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템
KR102396236B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102396238B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102447278B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102447280B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102437376B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102447279B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
US20240214396A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program

Legal Events

Date Code Title Description
GRNT Written decision to grant