KR102204222B1 - 독립된 장치를 이용한 악성코드 분석 시스템 - Google Patents

독립된 장치를 이용한 악성코드 분석 시스템 Download PDF

Info

Publication number
KR102204222B1
KR102204222B1 KR1020180145923A KR20180145923A KR102204222B1 KR 102204222 B1 KR102204222 B1 KR 102204222B1 KR 1020180145923 A KR1020180145923 A KR 1020180145923A KR 20180145923 A KR20180145923 A KR 20180145923A KR 102204222 B1 KR102204222 B1 KR 102204222B1
Authority
KR
South Korea
Prior art keywords
analysis
suspicious file
guest device
guest
module
Prior art date
Application number
KR1020180145923A
Other languages
English (en)
Other versions
KR20200061421A (ko
Inventor
반규태
전상현
박종화
신윤호
Original Assignee
주식회사 이스트시큐리티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이스트시큐리티 filed Critical 주식회사 이스트시큐리티
Priority to KR1020180145923A priority Critical patent/KR102204222B1/ko
Publication of KR20200061421A publication Critical patent/KR20200061421A/ko
Application granted granted Critical
Publication of KR102204222B1 publication Critical patent/KR102204222B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 독립된 장치를 이용한 악성코드 분석 시스템은 클라이언트단말과, 상기 클라이언트단말과 스위치를 통해 네트워크 내에서 단절된 분석게스트장치와, 상기 클라이언트단말로부터 의심 파일을 포함하는 분석 요청 메시지를 수신하면, 상기 분석게스트장치에서 상기 의심 파일이 실행되도록 하며, 상기 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 상기 분석게스트장치로부터 수집하고, 상기 의심 파일의 실행이 종료되면, 상기 로그 정보를 통해 의심 파일을 분석하는 분석서버를 포함한다.

Description

독립된 장치를 이용한 악성코드 분석 시스템{System for analysing malicious code using independent device}
본 발명은 악성코드 분석 기술에 관한 것으로, 보다 상세하게는, 악성 코드인지 의심되는 의심 파일을 네트워크 상에서 별도로 분리된 장치에서 실행시켜 악성 코드를 분석하는 악성코드 분석 시스템, 이를 위한 장치 및 이를 위한 방법에 관한 것이다.
기술 고도화에 따라 가상화 환경, 즉, 가상 머신(VM: Virtual Machine)과 분석 모듈을 탐지하여 동작하지 않은 악성 코드가 갈수록 증가하고 있다. 최근 이슈화된 악성코드 대부분에서 고도화된 안티 가상 머신과 탐지 회피 기술을 찾아볼 수 있다.
[선행기술문헌]
[특허문헌] 한국공개특허 제10-2004-0098902호, 2004년 11월 26일 공개 (명칭: 프로세스메모리의 악성코드 검출기 및 그 방법)
가상화 환경 분석시스템은 악성 코드로부터 쉽게 파악되기 때문에 동작되지 않을 수 있다. 분석 모듈을 분리하지 않은 경우 분석 모듈 또한 확인하여 동작하지 않거나 정상 행위만 할 수 있다. 상술한 문제점들을 해결하기 위해 별도의 처리 모듈을 만들 수 있으나, 이후 악성코드가 고도화 되면 제차 대응해야하는 일들이 반복된다. 이러한 경우 최초 공격은 차단하기 어렵다. 따라서 본 발명의 목적은 가상화 환경이 아닌 물리 PC를 이용하여 모든 분석은 별도의 장치에서 진행하고, 실제 사용자 PC 환경과 동일한 환경을 구성하여 악성 코드를 분석하기 위한 장치 및 방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 독립된 장치를 이용한 악성코드 분석 시스템은 클라이언트단말과, 상기 클라이언트단말과 스위치를 통해 네트워크 내에서 단절된 분석게스트장치와, 상기 클라이언트단말로부터 의심 파일을 포함하는 분석 요청 메시지를 수신하면, 상기 분석게스트장치에서 상기 의심 파일이 실행되도록 하며, 상기 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 상기 분석게스트장치로부터 수집하고, 상기 의심 파일의 실행이 종료되면, 상기 로그 정보를 통해 의심 파일을 분석하는 분석서버를 포함한다.
상기 분석 요청 메시지는 상기 클라이언트단말의 실행 환경에 대한 정보인 분석환경정보를 포함하며, 상기 분석서버는 상기 클라이언트단말과 동일한 실행 환경이 조성되도록 상기 분석환경정보에 따라 상기 분석게스트장치를 실행시킨 후, 상기 분석게스트장치에서 상기 의심 파일이 실행되도록 하는 것을 특징으로 한다.
상기 분석서버는 상기 의심 파일이 실행된 후, 소정의 타임아웃 시간 이후로도 상기 분석게스트장치에서 의심 파일의 실행이 지속되거나, 혹은, 상기 로그 정보를 수신하지 못하면, 상기 분석게스트장치를 강제로 종료시키는 것을 특징으로 한다.
상기 분석서버는 복수의 운영체제 이미지를 저장하는 이미지DB를 포함하는 스토리지와, 상기 클라이언트단말로부터 분석환경정보 및 의심 파일을 포함하는 분석 요청 메시지를 수신하면, 상기 분석환경정보에 따라 상기 이미지DB로부터 상기 클라이언트단말에서 실행되는 운영체제와 동일한 운영체제 이미지를 추출하고, 상기 클라이언트단말과 동일한 실행 환경이 조성되도록 상기 추출된 운영체제 이미지를 제공하여 상기 분석게스트장치에서 실행되도록 하고, 상기 의심 파일을 제공하여 상기 분석게스트장치에서 상기 의심 파일이 실행되도록 하는 관리머신과, 상기 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 상기 분석게스트장치로부터 수집하고, 상기 의심 파일의 실행이 종료되면, 상기 로그 정보를 통해 의심 파일을 분석하는 분석호스트머신을 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 독립된 장치를 이용한 악성코드 분석을 위한 분석호스트머신은 클라이어트단말과 네트워크 상에서 분리되며, 상기 클라이언트단말과 동일한 실행 환경에서 의심 파일을 실행하는 분석게스트장치와 네트워크를 통해 연결하는 게스트연결모듈과, 상기 분석게스트장치로부터 상기 의심 파일의 실행에 따라 발생하는 행위 로그인 로그 정보를 수집하고, 상기 수집된 로그 정보를 통해 상기 의심 파일을 분석하는 분석모듈을 포함한다.
상기 분석호스트머신은 상기 의심 파일이 실행된 후, 소정의 타임아웃 시간 이후로도 상기 분석게스트장치에서 의심 파일의 실행이 지속되는 경우, 혹은, 상기 분석모듈이 상기 분석게스트장치로부터 알 수 없는 이유로 소정 횟수 혹은 소정 시간 동안 로그 정보를 수신하는 못한 경우, 상기 분석호스트머신이 강제로 종료되도록 요청하는 게스트종료모듈을 더 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 분석서버의 독립된 장치를 이용한 악성코드 분석을 위한 방법은 클라이언트단말로부터 의심 파일을 포함하는 분석 요청 메시지를 수신하는 단계와, 상기 클라이언트단말과 스위치를 통해 네트워크 내에서 단절된 복수의 분석게스트장치 중 어느 하나를 선정하는 단계와, 상기 선정된 분석게스트장치에서 상기 의심 파일이 실행되도록 하는 단계와, 상기 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 상기 분석게스트장치로부터 수집하는 단계와, 상기 의심 파일의 실행이 종료되면, 상기 로그 정보를 통해 의심 파일을 분석하는 단계를 포함한다.
상기 분석 요청 메시지는 상기 클라이언트단말의 실행 환경에 대한 정보인 분석환경정보를 포함하며, 상기 클라이언트단말과 스위치를 통해 네트워크 내에서 단절된 복수의 분석게스트장치 중 어느 하나를 선정하는 단계 후, 상기 선정된 분석게스트장치에서 상기 의심 파일이 실행되도록 하는 단계 전, 상기 클라이언트단말과 동일한 실행 환경이 조성되도록 상기 분석환경정보에 따라 상기 분석게스트장치를 실행시키는 단계를 더 포함한다.
상기 수집하는 단계 후, 상기 분석하는 단계 전, 상기 의심 파일이 실행된 후, 소정의 타임아웃 시간 이후로도 상기 분석게스트장치에서 의심 파일의 실행이 지속되거나, 상기 로그 정보를 수신하는 못하면, 상기 분석게스트장치를 강제로 종료시키는 단계를 더 포함한다.
상술한 바와 같이 본 발명에 따르면, 분석게스트장치가 클라이언트단말과 네트워크 상에서 분리되고, 클라이언트단말과 동일한 실행 환경에서 의심 파일을 실행시킨 후, 분석하기 때문에 가상화 환경과 분석 모듈을 탐지하여 동작하지 않은 악성 코드인 경우에도 효과적으로 검출하여 악성 코드 문제를 해결할 수 있다.
도 1은 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석 시스템의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 악성코드 분석을 위한 분석서버의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 악성코드 분석을 위한 스토리지(120)의 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 악성코드 분석을 위한 관리머신의 구성을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 악성코드 분석을 위한 분석호스트머신의 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 악성코드 분석을 위한 분석게스트장치의 구성을 설명하기 위한 도면이다.
도 7 내지 9는 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석을 위한 방법을 설명하기 위한 흐름도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.
먼저, 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석 시스템에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석 시스템의 구성을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 악성 코드 분석 시스템(10: 이하, '분석시스템'으로 축약함)은 분석서버(100), 게스트분석장치(200), 전원제어장치(201), 클라이언트단말(300) 및 스위치(400)를 포함한다.
클라이언트단말(300)은 운영체제를 통해 부팅되고, 컴퓨팅 연산을 수행하는 장치가 될 수 있다. 이러한 클라이언트단말(300)은 대표적으로 PC(Personal Computer)를 예시할 수 있다.
분석게스트장치(200)는 스위치(400)에 의해 네트워크 상에서 분리된 독립된 장치이다. 이러한 분석게스트장치(200)는 클라이언트단말(300)과 마찬가지로, 운영체제를 통해 부팅되고, 컴퓨팅 연산을 수행하는 장치가 될 수 있다. 이러한 분석게스트장치(200)는 대표적으로 PC(Personal Computer)를 예시할 수 있다.
클라이언트단말(300)은 의심 파일이 발견되면, 의심 파일과 분석환경정보를 포함하는 분석 요청 메시지를 분석서버(100)로 전송한다.
분석서버(100)는 클라이언트단말(300)로부터 분석 요청 메시지를 수신하면, 분석게스트장치(200)에서 의심 파일이 실행되도록 하며, 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 분석게스트장치(200)로부터 수집한 후, 수집된 로그 정보를 통해 의심 파일을 분석한다. 그리고 분석서버(100)는 분석 결과를 해당 클라이언트단말(300)에 제공한다.
다음으로, 본 발명의 실시예에 따른 악성코드 분석을 위한 분석서버의 구성에 대해서 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 악성코드 분석을 위한 분석서버의 구성을 설명하기 위한 도면이다.
도 2를 참조하면, 분석서버(100)는 관리머신(110), 스토리지(120), 분석호스트머신(130) 및 가상화운영체제(140)를 포함한다. 관리머신(110), 스토리지(120) 및 분석호스트머신(130)은 가상화운영체제(140) 상에서 동작하는 가상머신(VM: Virtual Machine)으로 구성될 수 있다.
스토리지(120)는 분석을 위해 필요한 다양한 정보와 그 분석에 따른 분석 결과를 저장하기 위한 복수의 데이터베이스를 저장한다.
관리머신(110)은 클라이언트단말(300)로부터 분석환경정보 및 의심 파일을 포함하는 분석 요청 메시지를 수신하면, 분석환경정보에 따라 클라이언트단말과 동일한 실행 환경이 조성되도록 운영체제 이미지를 제공하여 분석게스트장치(200)에서 실행되도록 하고, 의심 파일을 제공하여 분석게스트장치(200)에서 의심 파일이 실행되도록 한다.
분석호스트머신(130)은 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 분석게스트장치(200)로부터 수집하고, 의심 파일의 실행이 종료되면, 로그 정보를 통해 의심 파일을 분석한다.
다음으로, 본 발명의 실시예에 따른 악성코드 분석을 위한 스토리지(120)의 구성에 대해서 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 악성코드 분석을 위한 스토리지(120)의 구성을 설명하기 위한 도면이다. 도 3을 참고하면, 본 발명의 실시예에 따른 스토리지(120)는 이미지DB(121), 분석요청DB(122), 의심파일DB(123) 및 분석결과DB(124)를 포함한다.
이미지DB(121)는 복수의 OS 이미지를 저장하며, 복수의 OS 이미지는 분석환경정보에 따라 분석게스트장치(200)에 제공된다. 분석요청DB(122)는 분석 요청에 따른 분석 요청 메시지가 저장된다. 의심파일DB(123)는 의심 파일이 저장된다. 이때, 저장 공간 확보를 위해 동일한 의심 파일은 하나만 저장된다. 분석결과DB(124)는 의심 파일에 대한 분석 결과를 저장한다.
다음으로, 본 발명의 실시예에 따른 악성코드 분석을 위한 관리머신(110)의 구성에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 악성코드 분석을 위한 관리머신의 구성을 설명하기 위한 도면이다.
도 4를 참조하면, 본 발명의 실시예에 따른 관리머신(110)은 명령처리모듈(111), 메시지등록모듈(112) 및 게스트초기화모듈(113)을 포함한다.
명령처리모듈(111)은 복수의 클라이언트단말(300) 중 적어도 하나로부터 분석 요청 메시지를 수신한다. 분석 요청 메시지는 의심 파일과, 분석환경정보를 포함한다. 여기서, 의심 파일은 악성코드로 의심되는 파일로서 각 클라이언트단말(300)에서 수집된 파일이다. 분석환경정보는 분석 환경인 클라이언트단말(300)의 악성 코드가 실행되는 환경에 대한 정보를 의미한다. 예컨대, 분석환경정보는 클라이언트단말(300)의 OS 이미지 종류, OS 버전, 구동되는 프로그램, 구동 시간대 등을 포함할 수 있다. 실제 클라이언트에서 구동되는 OS 환경에 따라 악성코드의 동작 결과가 달라질 수 있으므로, 명령처리모듈(111)은 분석환경정보를 통해 분석게스트장치(200)로 하여금 동일한 OS 환경을 만든 후 의심 파일을 실행하도록 할 수 있다. 이로써, 분석 결과의 정확성 및 신뢰도를 향상시킬 수 있다. 즉, 명령처리모듈(111)은 클라이언트단말(300)로부터 분석 요청을 받으면 분석 요청 메시지에 포함된 분석환경정보에 따라 다수의 분석게스트장치(200) 중 하나를 동일한 OS 환경(OS 이미지)으로 부팅하도록 한 후, 의심 파일을 실행하도록 한다. 또한, 명령처리모듈(111)은 해당 분석 요청에 따라 의심 파일을 분석한 결과를 분석호스트머신(130)으로부터 수신하면, 수신된 분석 결과를 요청한 클라이언트단말(300)에 전달한다.
메시지등록모듈(112)은 명령처리모듈(111)에서 수신한 분석 요청에 따라 대응되는 의심 파일을 매칭시켜 스토리지(120)의 의심파일DB(123)에 저장한다. 한편, 각 클라이언트단말(300)로부터 수신한 의심 파일이 동일한 파일일 수 있다. 이에 따라, 메시지등록모듈(112)이 모든 의심 파일을 저장하면 스토리지(120)의 저장 공간이 부족할 수 있다. 따라서 메시지등록모듈(112)은 수신한 모든 분석 요청 메시지를 식별하여 구분하되, 수신된 분석 요청 메시지에 포함된 의심 파일이 기존 의심파일DB(123)에 존재하는 것이면, 기존 의심 파일에 새로 수신한 분석 요청을 매칭시킨 후 새로 수신한 의심 파일은 저장하지 않고 삭제할 수 있다. 또한, 메시지등록모듈(112)은 분석게스트장치(200)에서 실행된 의심 파일에 대한 분석 결과를 각각의 분석 요청에 매칭시켜 분석결과DB(124)에 저장한다.
게스트초기화모듈(113)은 분석 요청 메시지에 따라 분석을 수행할 분석게스트장치(200)가 선정되면, 선정된 분석게스트장치(200)를 초기화 시킨다. 또한, 게스트초기화모듈(113)은 분석호스트머신(130)의 게스트종료모듈(133)의 요청에 따라 분석게스트장치(200)를 재부팅시켜 초기화시킬 수 있다.
다음으로, 본 발명의 실시예에 따른 악성코드 분석을 위한 분석호스트머신(130)의 구성에 대해서 설명하기로 한다. 도 5는 본 발명의 실시예에 따른 악성코드 분석을 위한 분석호스트머신의 구성을 설명하기 위한 도면이다.
도 5를 참조하면, 분석호스트머신(130)은 복수의 분석게스트장치(200)의 동작 상태를 모니터링한다. 이때, 분석호스트머신(130)은 각각의 분석게스트장치(200)에 1:1로 매칭되도록 복수로 구성될 수도 있고, 하나의 분석호스트머신(130)이 복수의 분석게스트장치(200)에 대한 프로세스를 멀티로 처리할 수도 있다. 즉, 하나의 분석호스트머신(130)이 복수의 분석게스트장치(200)를 모니터(1:N 구성)하게 할 수도 있다. 이러한 분석호스트머신(130)은 게스트연결모듈(131), 분석모듈(132) 및 게스트종료모듈(133)을 포함한다.
게스트연결모듈(131)은 분석게스트장치(200)와 네트워크를 통한 연결을 수립한다. 이때, 게스트연결모듈(131)은 분석게스트장치(200)의 호스트연결모듈(230)과 네트워크를 통해 연결된다.
분석모듈(132)은 분석게스트장치(200)로부터 로그 정보를 주기적으로 수신한다. 수신된 로그 정보는 분석을 위해 누적하여 저장될 수 있다. 분석게스트장치(200)에서 의심 파일이 실행되면, 그 실행에 따른 행위 로그인 로그 정보가 생성된다. 분석게스트장치(200)의 행위모니터링모듈(240)은 이러한 로그 정보를 분석모듈(132)로 전송할 수 있다. 분석모듈(132)은 분석게스트장치(200)에서 의심 파일이 실행이 종료되거나, 분석게스트장치(200)가 강제로 종료되면, 기 수신된 로그 정보를 분석하여 그 분석 결과를 생성한다. 분석모듈(132)은 분석이 완료되면 분석결과를 관리머신(110)에 제공한다.
게스트종료모듈(133)은 분석게스트장치(200)의 정상 종료 상황 및 비정상 종료 상황을 판별한다. 여기서, 정상 종료 상황은 소정 타임아웃 시간 동안 분석게스트장치(200)가 의심 파일의 실행을 종료한 후, 샘플 실행이 종료되었음을 알리는 샘플실행종료 메시지를 전송하여 게스트종료모듈(133)이 이를 수신한 경우를 의미한다. 비정상 종료 상황은 소정의 타임아웃 시간 이후로도 분석게스트장치(200)에서 의심 파일의 실행이 지속되어 게스트종료모듈(133)이 샘플실행종료 메시지를 수신하지 못한 경우이거나, 분석모듈(132)이 분석게스트장치(200)로부터 알 수 없는 이유로 소정 횟수 혹은 소정 시간 동안 로그 정보를 수신하지 못한 경우를 의미한다. 예컨대, 분석게스트장치(200)는 의심 파일의 실행 중 블루스크린 상태 혹은 소정 시간 이상 동작 정지 상태가 될 수 있다. 이러한 경우, 분석모듈(132)은 분석게스트장치(200)로부터 로그 정보를 수신하지 못할 수 있다. 게스트종료모듈(133)은 정상 종료 상황이면, 분석게스트장치(200)가 리버트(revert)되도록 하고, 분석게스트장치(200)를 종료시키고, 게스트초기화모듈(113)을 통해 분석게스트장치(200)를 재부팅하도록 한다. 반면, 비정상 종료 상황이면, 게스트종료모듈(133)은 전원제어장치(201)를 제어하여 분석호스트머신(130)을 강제로 종료시키고, 게스트초기화모듈(113)을 통해 분석게스트장치(200)를 재부팅하도록 한다.
다음으로, 본 발명의 실시예에 따른 악성코드 분석을 위한 분석게스트장치(200)의 세부 구성에 대해서 상세하게 설명하기로 한다. 도 6은 본 발명의 실시예에 따른 악성코드 분석을 위한 분석게스트장치의 구성을 설명하기 위한 도면이다.
분석게스트장치(200)는 복수이며, 복수의 분석게스트장치(200)는 서로 독립적으로 구동되는 물리적 장치로 구성된다. 예컨대, 물리적 장치는 PC(Personal Computer)가 될 수 있다. 각각의 분석게스트장치(200)는 전원제어장치(201)에 의해 독립적으로 전원이 공급된다.
분석게스트장치(200)는 초기화모듈(210), 메시지처리모듈(220), 호스트연결모듈(230) 및 행위모니터링모듈(240)을 포함한다.
초기화모듈(210)은 관리머신(100)의 게스트초기화모듈(113)의 요청에 따라 분석게스트장치(200)를 초기화시키거나, 재부팅한다. 초기화모듈(210)은 분석게스트장치(200)를 초기화시킨 후, 네트워크 이상 여부를 확인한 후, 호스트연결모듈(220) 및 메시지처리모듈(230)을 동작시킨다.
메시지처리모듈(220)은 분석서버(100)의 관리머신(110)의 명령처리모듈(111)로부터 운영체제 이미지 및 의심 파일을 수신한다. 메시지처리모듈(220)은 명령처리모듈(111)로부터 수신된 운영체제 이미지에 따라 부팅을 수행하며, 이러한 실행 환경에서 명령처리모듈(111)로부터 수신된 의심 파일을 실행한다. 메시지처리모듈(220)은 의심 파일의 실행이 종료되면, 샘플실행종료 메시지를 분석호스트머신(130)으로 전송한다.
호스트연결모듈(230)은 대상이 되는 분석호스트머신(130)을 검색하여 연결한다. 이때, 호스트연결모듈(230)은 분석호스트머신(130)의 게스트연결모듈(131)과 네트워크를 통해 연결된다.
행위모니터링모듈(240)은 분석게스트장치(200)의 커널에서 동작하는 서비스이며, 행위모니터링모듈(240)은 의심 파일의 실행에 따라 발생되는 행위 로그인 로그 정보를 분석호스트머신(130)으로 전송한다.
다음으로, 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석을 위한 방법에 대해서 설명하기로 한다. 도 7 내지 9는 본 발명의 실시예에 따른 독립된 장치를 이용한 악성코드 분석을 위한 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 분석서버(100)의 관리머신(110)의 명령처리모듈(111)은 S110 단계에서 복수의 클라이언트단말(300) 중 적어도 하나로부터 분석 요청 메시지를 수신한다.
분석 요청 메시지를 수신한 후, 분석서버(100)의 메시지등록모듈(112)은 S120 단계에서 명령처리모듈(111)에서 수신한 분석 요청에 따라 대응되는 의심 파일을 매칭시켜 스토리지(120)의 의심파일DB(123)에 저장한다.
분석서버(100)의 관리머신(110)의 명령처리모듈(111)은 S130 단계에서 복수의 분석게스트장치(200) 중 의심 파일을 실행할 분석게스트장치(200)를 선정한다. 이어서, 분석서버(100)의 게스트초기화모듈(113)은 S140 단계에서 앞서 명령처리모듈(111)이 선정한 분석게스트장치(200)가 초기화하도록 선정한 분석게스트장치(200)로 초기화 명령을 전송한다. 초기화 명령을 수신하면, 분석게스트장치(200)의 초기화모듈(210)은 S150 단계에서 분석게스트장치(200)를 초기화시킨다.
한편, 분석서버(100)의 관리머신(110)의 명령처리모듈(111)은 S160 단계에서 분석 요청 메시지에 포함된 분석환경정보에 따라 이미지DB(121)로부터 운영체제(OS: Operating System) 이미지를 추출한다.
그런 다음, 명령처리모듈(111)은 S170 단계에서 추출된 운영체제 이미지와, 분석 요청 메시지에 포함된 의심 파일을 앞서 선정된 분석게스트장치(200)로 전달한다. 이에 따라, 분석게스트장치(200)의 메시지처리모듈(220)은 운영체제 이미지 및 의심 파일을 수신할 수 있다.
도 8을 참조하면, 운영체제 이미지 및 의심 파일을 수신한 후, 분석게스트장치(200)의 호스트연결모듈(230)은 S180 단계에서 대상이 되는 분석호스트머신(130)을 검색하여 연결한다. 이에 따라, 해당 분석호스트머신(130)의 게스트연결모듈(131)은 분석게스트장치(200)와 네트워크를 통해 연결을 수립한다.
분석호스트머신(130)과 연결된 후, 분석게스트장치(200)의 메시지처리모듈(220)은 S190 단계에서 명령처리모듈(111)로부터 수신된 운영체제 이미지에 따라 부팅을 수행하여 클라이언트단말(300)과 동일한 실행 환경을 형성한다. 이러한 실행 환경에서 메시지처리모듈(220)은 S200 단계에서 명령처리모듈(111)로부터 수신된 의심 파일을 실행한다.
행위모니터링모듈(240)은 의심 파일이 실행된 후, 종료 이전까지, 분석게스트장치(200)의 커널에서 동작한다. 이때, 행위모니터링모듈(240)은 S210 단계에서 의심 파일의 실행에 따라 발생되는 행위 로그인 로그 정보를 분석호스트머신(130)으로 소정 주기에 따라 지속적으로 전송한다. 이에 따라, 분석호스트머신(130)의 분석모듈(132)은 분석게스트장치(200)로부터 로그 정보를 주기적으로 수신한다.
분석호스트머신(130)는 S220 단계에서 분석게스트장치(200)로부터 수신되는 로그 정보 및 타이머를 기초로 종료 프로세스를 결정하고, 분석게스트장치(200)를 종료시킨다. 이러한 S220 단계에 대해 보다 자세히 도 9를 참조하여 설명한다.
먼저, 게스트종료모듈(143)은 S221 단계에서 분석모듈(132)이 분석게스트장치(200)로부터 주기적으로 수신되는 로그 정보 및 타이머를 기초로 종료 이벤트를 확인한다.
본 발명의 실시예에서 비정상 종료 상황은 타이머를 통해 측정되는 소정의 타임아웃 시간 이후로도 분석게스트장치(200)에서 의심 파일의 실행이 지속되어 게스트종료모듈(143)이 샘플실행종료 메시지를 수신하지 못한 경우이거나, 분석모듈(132)이 알 수 없는 이유로 소정 횟수 혹은 소정 시간 동안 로그 정보를 수신하는 못한 경우를 의미한다. 또한, 정상 종료 상황은 타이머를 통해 측정되는 소정 타임아웃 시간 내에 분석게스트장치(200)가 의심 파일의 실행을 종료한 후, 샘플 실행이 종료되었음을 알리는 샘플실행종료 메시지를 전송하여 게스트종료모듈(143)이 이를 수신한 경우를 의미한다.
종료 이벤트를 확인하면서, 게스트종료모듈(143)은 S222 단계에서 분석게스트장치(200)가 비정상 종료 상황인지 여부를 판단한다.
S222 단계의 판단 결과, 비정상 종료 상황이면 게스트종료모듈(143)은 S223 단계에서 전원제어장치(201)를 제어하여 분석호스트머신(130)을 강제로 종료시키고, 게스트초기화모듈(113)을 통해 분석게스트장치(200)를 재부팅하도록 한다.
S222 단계의 판단 결과, 비정상 종료 상황이면 게스트종료모듈(143)은 S224 단계로 진행하여 정상 종료 상황인지 여부를 판별한다.
S224 단계의 판별 결과, 정상 종료 상황이 아니면, 게스트종료모듈(143)은 S221 단계로 진행하여 종료 이벤트를 지속적으로 확인한다.
반면, S224 단계의 판별 결과, 정상 종료 상황이면, 게스트종료모듈(143)은 S225 단계에서 분석게스트장치(200)를 리버트(revert)시키고, S226 단계에서 분석게스트장치(200)를 종료시킨 후, 게스트초기화모듈(113)을 통해 분석게스트장치(200)를 재부팅시킨다.
다시 도 8을 참조하면, 분석게스트장치(200)가 종료된 후, 분석호스트머신(130)의 분석모듈(132)은 S230 단계에서 분석게스트장치(200)로부터 수신된 로그 정보를 분석한다. 그런 다음, 분석호스트머신(130)의 분석모듈(132)은 분석이 완료되면 분석결과를 관리머신(110)에 제공한다.
그러면, 관리머신(110)의 메시지등록모듈(112)은 S240 단계에서 해당 분석 결과를 해당 분석 요청 메시지에 매칭시켜 스토리지(120)의 분석결과DB(124)에 저장한다.
이어서, 관리머신(110)의 명령처리모듈(111)은 S250 단계에서 해당 분석 요청에 따라 의심 파일에 대한 분석 결과를 요청한 클라이언트단말(300)로 전송한다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 명세서에서 설명한 주제의 특정한 실시형태를 설명하였다. 기타의 실시형태들은 이하의 청구항의 범위 내에 속한다. 예컨대, 청구항에서 인용된 동작들은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 성취할 수 있다. 일 예로서, 첨부도면에 도시한 프로세스는 바람직한 결과를 얻기 위하여 반드시 그 특정한 도시된 순서나 순차적인 순서를 요구하지 않는다. 특정한 구현예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
100: 분석서버 110: 관리머신
111: 명령처리모듈 112: 메시지등록모듈
113: 게스트초기화모듈 120: 스토리지
121: 이미지DB 122: 분석요청DB
123: 의심파일DB 124: 분석결과DB
130: 분석호스트머신 131: 게스트연결모듈
132: 분석모듈 133: 게스트종료모듈
200: 분석게스트장치 210: 초기화모듈
220: 메시지처리모듈 230: 호스트연결모듈
240: 행위모니터링모듈 201: 전원제어장치

Claims (9)

  1. 가상화운영체제 상에서 독립된 장치를 이용한 악성코드 분석 시스템에 있어서,
    복수의 클라이언트단말;
    상기 클라이언트단말과 스위치를 통해 네트워크 내에서 분리된 분석게스트장치; 및
    분석서버;를 포함하고,
    상기 분석서버는,
    복수의 운영체제 이미지를 저장하는 이미지DB, 상기 클라이언트단말로부터 수신한 분석 요청 메세지를 저장하는 분석요청DB, 의심 파일을 저장하는 의심파일DB, 및 각각의 의심 파일에 대한 분석 결과를 분석 요청 메세지에 매칭시켜 저장하는 분석결과DB를 포함하는 스토리지;
    상기 클라이언트단말로부터 의심 파일 및 분석환경정보를 포함하는 분석 요청 메시지를 수신하면, 상기 분석환경정보에 따라 상기 이미지DB로부터 상기 클라이언트단말에서 실행되는 운영체제와 동일한 운영체제 이미지를 추출하고, 상기 클라이언트단말과 동일한 실행 환경이 조성되도록 상기 추출된 운영체제 이미지를 제공하여 상기 분석게스트장치에서 실행되도록 하고, 상기 의심 파일을 제공하여 상기 분석게스트장치에서 상기 의심 파일이 실행되도록 하는 관리머신;
    상기 의심 파일의 실행에 따라 발생되는 실행 로그인 로그 정보를 상기 분석게스트장치로부터 수집하고, 상기 의심 파일의 실행이 종료되면, 상기 로그 정보를 통해 의심 파일을 분석하는 분석호스트머신;
    소정의 타임아웃 시간 이후로도 상기 분석게스트장치에서 의심 파일을 실행이 지속되는 경우, 혹은 상기 분석게스트장치로부터 알 수 없는 이유로 소정 횟수 혹은 소정 시간 동안 로그 정보를 수신하지 못한 경우 상기 분석게스트장치를 강제 종료시키는 전원제어장치;를 포함하는 것을 특징으로 하는,
    악성코드 분석 시스템.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 관리머신은,
    복수의 클라이언트단말 중 적어도 하나로부터 분석 요청 메세지를 수신하면, 상기 분석 요청 메세지에 포함된 상기 분석환경정보를 통해 상기 클라이언트단말에서 실행되는 운영체제와 동일한 운영체제로 상기 분석게스트장치를 부팅하여 해당 의심 파일을 실행하고, 상기 분석호스트머신으로부터 상기 의심 파일에 대한 분석 결과를 수신하여 상기 클라이언트단말에 전달하는 명령처리모듈;
    상기 명령처리모듈에서 수신한 상기 분석 요청 메세지에 따라 대응되는 의심 파일을 매칭시켜 상기 의심파일DB에 저장하고, 상기 분석게스트장치에서 실행된 상기 의심 파일에 대한 분석결과를 각각의 분석 요청 메세지에 매칭시켜 분석결과DB에 저장하는 메세지등록모듈;
    상기 분석 요청 메세지에 따라 분석을 수행할 분석게스트장치를 초기화시키고, 상기 분석호스트머신의 요청에 따라 상기 분석게스트장치를 재부팅하여 초기화시키는 게스트초기화모듈;을 포함하는 것을 특징으로 하는,
    악성코드 분석 시스템.
  5. 제1항에 있어서,
    상기 분석호스트머신은,
    상기 클라이언트단말과 네트워크 상에서 분리되며, 상기 클라이언트단말과 동일한 실행 환경에서 의심 파일을 실행하는 상기 분석게스트장치와 네트워크를 통해 연결하는 게스트연결모듈; 및
    상기 분석게스트장치로부터 상기 의심 파일의 실행에 따라 발생하는 행위 로그인 로그 정보를 수집하고, 상기 수집된 로그 정보를 통해 상기 의심 파일을 분석하는 분석모듈;을 포함하는 것을 특징으로 하는,
    악성코드 분석 시스템.
  6. 제5항에 있어서,
    상기 분석호스트머신은,
    상기 의심 파일이 실행된 후, 소정의 타임아웃 시간 이후로도 상기 분석게스트장치에서 의심 파일의 실행이 지속되는 경우, 혹은 상기 분석모듈이 상기 분석게스트장치로부터 알 수 없는 이유로 소정 횟수 혹은 소정 시간 동안 로그 정보를 수신하지 못한 경우, 상기 분석호스트머신이 강제로 종료되도록 요청하는 게스트종료모듈;을 더 포함하는 것을 특징으로 하는,
    악성코드 분석 시스템.
  7. 삭제
  8. 삭제
  9. 삭제
KR1020180145923A 2018-11-23 2018-11-23 독립된 장치를 이용한 악성코드 분석 시스템 KR102204222B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180145923A KR102204222B1 (ko) 2018-11-23 2018-11-23 독립된 장치를 이용한 악성코드 분석 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180145923A KR102204222B1 (ko) 2018-11-23 2018-11-23 독립된 장치를 이용한 악성코드 분석 시스템

Publications (2)

Publication Number Publication Date
KR20200061421A KR20200061421A (ko) 2020-06-03
KR102204222B1 true KR102204222B1 (ko) 2021-01-19

Family

ID=71087639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180145923A KR102204222B1 (ko) 2018-11-23 2018-11-23 독립된 장치를 이용한 악성코드 분석 시스템

Country Status (1)

Country Link
KR (1) KR102204222B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102260404B1 (ko) * 2020-07-30 2021-06-03 주식회사 베일리테크 물리 머신을 이용한 악성 코드 탐지 방법 및 악성 코드 탐지 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015230601A (ja) * 2014-06-05 2015-12-21 株式会社日立システムズ プログラム解析装置、プログラム解析方法及びプログラム解析システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593163B1 (ko) * 2014-05-12 2016-02-15 한국전자통신연구원 실 환경 악성코드 분석 장치 및 방법
KR101787470B1 (ko) * 2016-02-15 2017-11-16 한국전자통신연구원 Usb로 연결된 외부 장치 기반의 악성코드 분석 장치 및 이를 이용한 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015230601A (ja) * 2014-06-05 2015-12-21 株式会社日立システムズ プログラム解析装置、プログラム解析方法及びプログラム解析システム

Also Published As

Publication number Publication date
KR20200061421A (ko) 2020-06-03

Similar Documents

Publication Publication Date Title
US6606716B1 (en) Method and system for automated technical support for computers
US8584229B2 (en) Methods and apparatus supporting access to physical and virtual trusted platform modules
US10481924B2 (en) Dynamically managing a serial port interface connected to a direct console user interface (DCUI) of virtualization software using headless flags
US10379922B1 (en) Error recovery in a virtual machine-based development environment
US10540498B2 (en) Technologies for hardware assisted native malware detection
KR20120031745A (ko) 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
US10521279B2 (en) System and method for dynamic log level control
US10831467B2 (en) Techniques of updating host device firmware via service processor
EP2977889A1 (en) Out-of-band retrieval of network interface controller information
US20190171507A1 (en) Techniques of monitoring and updating system component health status
US10430261B2 (en) Detecting a guest operating system crash on a virtual computing instance
CN1208717C (zh) 用于对计算机的自动技术支持的方法和系统
WO2013024510A2 (en) Storage control apparatus
KR102204222B1 (ko) 독립된 장치를 이용한 악성코드 분석 시스템
US10353729B1 (en) Managing service dependencies across virtual machines in a development environment
CN108090352B (zh) 检测系统及检测方法
US11023586B2 (en) Auto detection mechanism of vulnerabilities for security updates
CN114064216A (zh) 一种虚拟机初始化方法、装置、终端设备及存储介质
JP2018081514A (ja) マルウェアの解析方法及び記憶媒体
KR102174692B1 (ko) 가상화 환경에서의 장애 처리 방법
US20190173749A1 (en) Platform specific configurations setup interface for service processor
US11494289B2 (en) Automatic framework to create QA test pass
US10572435B2 (en) Techniques of accessing serial console of BMC using host serial port
US10509656B2 (en) Techniques of providing policy options to enable and disable system components
CN107506141B (zh) 一种存储系统对卷组状态自动判断和激活的方法及系统

Legal Events

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