KR20110087826A - 가상머신을 이용한 악성소프트웨어 탐지 방법 - Google Patents

가상머신을 이용한 악성소프트웨어 탐지 방법 Download PDF

Info

Publication number
KR20110087826A
KR20110087826A KR1020100007441A KR20100007441A KR20110087826A KR 20110087826 A KR20110087826 A KR 20110087826A KR 1020100007441 A KR1020100007441 A KR 1020100007441A KR 20100007441 A KR20100007441 A KR 20100007441A KR 20110087826 A KR20110087826 A KR 20110087826A
Authority
KR
South Korea
Prior art keywords
attachment
virtual machine
malicious
behavior
malicious code
Prior art date
Application number
KR1020100007441A
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 KR1020100007441A priority Critical patent/KR20110087826A/ko
Publication of KR20110087826A publication Critical patent/KR20110087826A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

첨부파일을 가지는 메일을 실제 시스템에 저장하기 이전에 가상머신을 이용하여 미리 악성코드 여부를 탐지하고, 알려진 악성코드가 아닌 경우 행위분석을 통해 악성행위 여부를 판단하여 새로운 악성코드로 정의하는 방법이 제공된다. 본 발명의 악성코드 탐지 방법은 수신된 전자메일에 첨부파일이 존재하는지 파악하는 단계와, 첨부파일이 존재하는 경우, 가상머신 상에서 상기 첨부파일을 실행하여 미리 등록된 악성코드에 해당하는지 판단하는 제1 탐지 단계 및 상기 첨부파일이 미리 등록된 악성코드가 아닌 경우, 상기 첨부파일의 실행에 따른 행동을 분석하여 악성코드로 분류할 것인지를 분석하는 제2 탐지 단계를 포함한다. 악성코드가 전자메일에 첨부파일 형태로 숨어 있더라도 이를 가상머신 상에서 미리 탐지하여 제거함으로써 시스템의 보안을 강화할 수 있고, 가상머신을 초기화한 후 신속하게 다른 전자메일을 모니터링할 수 있다.

Description

가상머신을 이용한 악성소프트웨어 탐지 방법{method for detecting malware using vitual machine}
본 발명은 첨부파일을 가지는 메일을 실제 시스템에 저장하기 이전에 가상머신을 이용하여 미리 악성코드 여부를 탐지하고, 알려진 악성코드가 아닌 경우 행위분석을 통해 악성행위 여부를 판단하여 새로운 악성코드로 정의하는 방법에 관한 것이다.
내부망의 컴퓨터에 악성코드나 다운로더를 설치하고, 내부망 이용자들에게 피싱 메일을 발송하여 다운로더를 설치하게끔 유도한 다음에 악성코드를 다운로드하여 내부 망에 있는 다수의 PC를 공격하는 악성소프트웨어가 증가하고 있다.
종래의 악성소프트웨어 차단 시스템은 이를 효과적으로 탐지하기 위해 시그니처라고 알려진 해쉬값을 이용하여 유입 파일의 유해성을 판별한다. 만약 유입되는 파일의 해쉬값과 악성코드 해쉬값이 일치하면 악성코드로 간주하여 악성코드 차단 소프트웨어가 해당 파일을 차단한다. 시그니처 검사는 알려진 악성 소프트웨어 공격을 차단하는 데 매우 효과적인 방법이다. 하지만 시그니처 기반의 탐지 방식에도 약점은 있다. 만약 지금까지 발견되지 않은 새로운 악성코드가 담긴 파일이 유입된다면 파일의 유해성을 판별할 시그니처가 존재하지 않기 때문에 그냥 통과하게 된다.
또한 침입탐지시스템에서 해킹 메일을 탐지하기 위해 자주 사용하는 방식은 콘텐츠 필터링이다. 콘텐츠 필터링은 매스 메일러 웜이 전송하는 전자메일 형태, 즉 메일 제목(Subject), 본문(Body) 그리고 첨부파일(Attachment File) 명칭과 같이 특징적인 문구를 탐지한다. 이 방식은 시그니처 기반의 진단법과 유사한 개념으로서 악성코드가 자신의 복사본을 전송할 때 고정된 형태의 전자메일 형태로 전송한다는 점을 이용한다. 그러나 이 방식으로 최근 발생하는 해킹 메일을 탐지하기에는 역부족이다. 최근의 해킹 메일은 자료절취를 목적으로 사회공학적 기법을 이용하기 때문에 메일 제목, 본문, 그리고 첨부파일 명칭이 매번 변경되기 때문이다.
시간이 지나면서 멀웨어는 점점 더 복잡해지고 있으며, 그에 따라 멀웨어에 대한 분석도 더욱 어려워지고 있다. 예를 들어, Agobot은 302년에 처음 나온 이래로 580개 이상의 변형이 존재하는 것으로 관측되었다. 근래의 Agobot 변형은 DoS 공격을 수행하고, 은행 패스워드와 계정 정보를 훔치고, 다양한 집합의 원격 익스플로잇을 이용하여 네트워크상으로 전파되며, 탐지와 분해(disassembly)를 회피하기 위하여 다형성(polymorphism)을 사용하고, 감염시스템으로부터 취약성을 패치하거나 경쟁 멀웨어를 제거할 수 있는 능력까지 보유하고 있다.
이러한 동향들에 미루어 볼 때 향후의 악성코드는 국지적인 공격이 더욱 거세질 것으로 전망되며 이를 위해 해결책이 절실히 요구된다.
본 발명의 실시예들이 해결하고자 하는 과제는 전자 메일에 첨부파일 형태로 숨어있는 악성코드를 탐지하는 수단을 제공하는 것이다.
위의 과제를 해결하기 위한 본 발명의 일 양태로, 수신된 전자메일에 첨부파일이 존재하는지 파악하는 단계와, 첨부파일이 존재하는 경우 가상머신 상에서 상기 첨부파일을 실행하여 미리 등록된 악성코드에 해당하는지 판단하는 제1 탐지 단계 및 상기 첨부파일이 미리 등록된 악성코드가 아닌 경우, 상기 첨부파일의 실행에 따른 행동을 분석하여 악성코드로 분류할 것인지를 분석하는 제2 탐지 단계를 포함하는 가상머신을 이용한 악성소프트웨어 탐지 방법이 제공된다.
여기서, 상기 제1 탐지 단계는, 시그니처 기반의 분석 기법 및 콘텐츠 필터링 기반의 분석 기법 중 어느 하나를 이용하여 악성코드를 탐지한다.
그리고 상기 제2 탐지 단계는, 가상머신 상에서 상기 첨부파일을 실행하여 행위 분석 리포트를 생성하는 단계와, 상기 행위 분석 리포트를 분석하여 시스템의 상태 변경 지문을 생성하는 단계 및 상기 상태 변경 지문을 이용하여 상기 첨부파일을 새로운 악성행위로 분류하는 단계를 포함한다.
여기서, 상기 새로운 악성행위 분류 단계는, 상기 상태 변경 지문을 이용하여 상기 첨부파일의 행위 프로파일을 생성하는 단계 및 적어도 두 개의 행위 프로파일을 그룹화하는 단계를 포함할 수 있으며, 상기 행위 프로파일의 그룹화는 정규화된 압축 거리 기법을 이용하여 수행될 수 있다.
본 발명에 의하면 악성코드가 전자메일에 첨부파일 형태로 숨어 있더라도 이를 가상머신 상에서 미리 탐지하여 제거함으로써 시스템의 보안 수준을 한층 강화할 수 있다. 즉, 가상머신을 이용한 악성행위 탐지 기술은 사용자 시스템과 독립적인 별도의 가상머신 상에서 각 파일별로 악성행위를 탐지하고 실행함으로써 악성소프트웨어가 실행되며 시스템에 악영향을 끼쳐도 다시 가상머신을 초기화시킴으로써 빠른 시간 내에 새로운 가상시스템에서 각각의 대상파일에 대한 실행 및 판단이 가능해진다.
이는 실제 시스템을 구축하여 코드를 실행하여 코드를 실행하며 악성행위 여부를 판단하는 시스템보다 시스템 복원 등에 소요되는 시간이 대폭 감소되므로 다량의 대상파일에 대한 악성행위 탐지가 용이해진다. 또한 악성코드의 자동 분류 및 해석을 위하여 NCD를 거리 측도로 사용하여 지문들의 계위적 클러스터링을 적용하여 행위 분석 리포팅을 제공함으로써 알려지지 않은 악성소프트웨어의 탐지를 용이토록 한다.
도 1은 본 발명의 악성코드 탐지 방법이 실행되는 사용자 시스템의 개념도이다.
도 2는 본 발명의 악성코드 탐지 방법을 구현하기 위한 시스템 구조를 도시한다.
도 3은 본 발명에 따른 악성코드 탐지 응용 프로그램의 구조를 도시한다.
이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시예를 상세히 설명한다.
본 발명은 메일서버에 도착한 메일 중 첨부파일이 있는 메일에 대해 그 첨부파일을 실제 시스템(또는 사용자 시스템)에서 곧바로 실행하기 전에 미리 가상머신 상에서 실행하여 악성코드인지를 검사하는 방법을 제안한다. 또한 상기 첨부파일이 기존에 발견된 악성코드가 아닌 경우 행위 유형을 분석하여 악성행위로 분류하기 위한 방법을 제안한다.
즉, 사용자 시스템으로부터 독립된 별도의 가상머신 상에서 첨부파일을 실행하는 방식으로 악성행위 수행 여부를 탐지하므로 혹여 해당 첨부파일이 미발견된 악성코드로 판명되더라도 사용자 시스템에는 피해가 가지 않는다.
아울러, 첨부파일이 악성코드로 판명되면 가상머신을 초기화한 후 다시 새로운 첨부파일을 모니터링하므로 사용자 시스템에서 매번 첨부파일을 실행하여 악성행위 여부를 판단하는 것보다 시스템 복원 등에 소요되는 시간이 대폭 줄어든다. 따라서 다량의 메일에 대하여도 신속게 악성코드를 탐지해낼 수 있다.
이상의 기본 개념을 바탕으로 본 발명의 악성코드 탐지 방법을 상세히 설명한다.
도 1은 본 발명의 악성코드 탐지 방법이 실행되는 사용자 시스템의 개념도이다.
사용자 시스템의 일례로 PC가 사용되는 경우, PC 하드웨어(10) 상에는 사용자 시스템을 실제로 구동하는 호스트 OS(20)가 설치된다. 그리고 호스트 OS(20)의 플랫폼에 상관없이 사용자 응용 프로그램(또는 본 발명의 악성행위 모니터링 프로그램)을 구동하기 위해 호스트 OS(20) 위에 가상머신(1)이 설치된다.
가상머신(1)의 위에는 첨부파일의 악성행위를 모니터링하기 위한 테스트 OS(2)가 설치되고, 그 위에는 사용자 응용 프로그램(또는 본 발명의 악성행위 모니터링 프로그램)(3)이 설치된다. 가상머신(1), 테스트 OS(2) 및 사용자 응용 프로그램(3)을 가상머신 클러스터(Virtual Machine Cluster, VMC)(30)라 부른다.
호스트 OS(20)가 복수의 가상머신을 지원하는 경우, 복수의 VMC(30)에 포함된 각 가상머신을 제어하는 가상머신 모니터(25)가 더 설치될 수 있다. 일례로 VMware는 복수의 가상머신을 지원하므로 호스트 OS(20)로 VMware가 사용되는 경우 동시에 복수의 첨부파일을 모니터링할 수 있다.
도 2는 본 발명의 악성코드 탐지 방법을 구현하기 위한 시스템 구조를 도시한다. 도 2의 악성코드 탐지 시스템은 사용자 시스템(100)과, 메일 서버(200)를 포함한다.
메일 서버(200)는 메일을 송신 및 수신하는 통상의 메일 서버(200)의 기능 이외에도, 첨부파일이 있는 메일을 가상머신 클러스터(30)로 전송하는 역할을 더 수행한다.
도 3은 사용자 시스템(100)의 가상머신 클러스터(30)에 포함된 악성코드 탐지 응용 프로그램(3)의 구조를 도시한 블록도이다.
악성코드 탐지 응용 프로그램(3) 메일로부터 첨부파일을 추출하고 이를 가상머신 위에서 실행하여 기존에 알려진 악성코드인지 여부를 탐지하는 탐지모듈(3a)과, 상기 첨부파일이 기존에 알려진 악성코드인 경우 해당 메일을 폐기처분하는 처리모듈(3b)과, 상기 첨부파일이 기존에 알려진 악성코드가 아닌 경우 행위 분석을 위한 리포트(이를 '행위 분석 리포트'라 한다)를 생성하는 리포트모듈(3c)과, 상기 행위 분석 리포트를 이용하여 상기 첨부파일이 악성코드로 분류되는지를 분석 및 판단하는 분류모듈(3d)을 포함한다.
탐지모듈(3a)은 종래의 기법(예를 들어, 시그니처 기반의 분석 기법 또는 콘텐츠 필터링 기반의 분석 기법 등)를 이용하여 악성코드를 탐지한다.
처리모듈(3b)은 탐지모듈(3a)이 악성코드로 판단한 메일이나 리포트모듈(3d)에서 미발견 악성코드로 판단한 메일을 폐기처분하고, 사용자에게 악성코드로 인해 해당 메일을 폐기처분하였음을 통보한다.
리포트모듈(3c)은 메일의 첨부파일이 악성행위를 하는지 여부를 판단하기 위한 기초 자료로서 행위분석 리포트를 제공한다. 상기 행위분석 리포트에 포함될 수 있는 주요 행위의 예는 표 1과 같다.
주요 행위 상세 구분 설 명
DLL 로드 DLL 로드 어떤 DLL을 로드하는가?
파일 접근 새로운 파일 생성 어떤 파일을 생성하는가?
파일내용읽기 어떤 파일의 내용을 읽는가?
파일접근순서 파일에 대한 접근을 시간순서대로 나열
파일 복사 어떤 파일을 어디로 복사하는가?
레지스트리 읽기 어떤 Key 값을 읽는가?
쓰기 어떤 위치에 어떤 값을 쓰는가?
프로세스
접근
프로세스 생성 어떤 프로세스를 생성하는가?
프로세스 읽기 어떤 프로세스 영역의 정보를 읽는가?
프로세스 쓰기 어떤 프로세스 영역 내에 어떤 정보를 쓰는가?
쓰레드 실행 어떤 프로세스 영역 내에 어떤 쓰레드를 실행하는가?
서비스 접근 서비스 등록 어떤 서비스를 등록하는가?
서비스 실행 어떤 서비스를 실행하는가?
서비스 중지 어떤 서비스를 중지하는가?
서비스 제거 어떤 서비스를 제거하는가?
시스템 객체 접근 시스템 객체 생성 어떤 시스템 객체를 생성하는가?
시스템 객체 읽기 어떤 시스템 객체로부터 정보를 읽는가?
시스템 객체 쓰기 어떤 시스템 객체로 정보를 쓰는가?
네트워크 접근 연결 유형 외부 시스템으로 접근하는지?
외부로부터 접근을 기다리는지?
외부 시스템 주소 연결된 외부시스템의 IP주소 및 도메인은?
프로토콜 어떤 프로토콜을 사용하는지?(TCP, UDP)
연결포트 사용 포트번호는 몇 번인가?
또한, 상기 행위분석 리포트의 구체적인 실례는 다음의 표 2와 같다.
D:VIRUSMYTEST.EX_ : W32/Backdoor
====> Sandbox output:
[ General information ]
* Display message box (sample) : sample, te amo!.
* Display message box (KERN32) : KERN32, te amo!.
* File length: 58368 bytes.
* MD5 hash: 60a8d2e41147f48364e1eb3729ac53fb.

[ Changes to filesystem ]
* Deletes file C:WINDOWSSYSTEM32kern32.exe.
* Creates file C:WINDOWSSYSTEM32kern32.exe.

[ Changes to registry ]
* Creates key "HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnce".
* Sets value "kernel32"="C:WINDOWSSYSTEM32kern32.exe -sys" in key "HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnce".

[ Changes to system settings ]
* Creates WindowsHook monitoring keyboard activity.

[ Network services ]
* Connects to "30.223.3.130" on port 6667 (TCP).
* Connects to IRC server.
* IRC: Uses nickname CurrentUser[FRK][19].
* IRC: Uses username SErVERINO.
* IRC: Joins channel #Sl4cK_r0oT.

[ Process/window information ]
* Creates a mutex ZZM9H9YY.
* Creates a mutex SrVFrK.
표 2의 예에서, 일반 정보(General Information), 파일 시스템에서의 변동 사항(Changes to filesystem), 레지스트리에서의 변동 사항(Changes to resistry), 시스템 설정에서의 변동 사항(Changes to system settings), 네트워크 연결 상황(Network services), OS의 프로세스 현황(Process/window information) 등이 리포팅되고 있음을 알 수 있다.
상기 행위분석 리포트에는 OS의 커널에 대한 API(Application Programming Interface)의 로그 분석 결과가 포함될 수 있다. 상기 API 로그분석 결과의 구체적인 일례는 다음의 표 3과 같다.
KERNEL32!CopyFileA ("C:WINDOWSSYSTEM32KERN32.EXE",
"C:WINDOWSSYSTEM32kern32.exe",0x00000000)
KERNEL32!GetFileAttributesA ("C:WINDOWSSYSTEM32kern32.exe")
KERNEL32!GetFileAttributesA ("C:WINDOWSSYSTEM32kern32.exe")
KERNEL32!CreateFileA
("C:WINDOWSSYSTEM32KERN32.EXE",0x80000000,
0x00000000,0x00000000,0x00000003,0x00000000,0x00000000)
KERNEL32!SetFileAttributesA
("C:WINDOWSSYSTEM32kern32.exe",0x00000006)
ADVAPI32!RegCreateKeyExA (0x80000002,"SoftwareMicrosoftWindows
CurrentVersionRunOnce",0x00000000,NULL,0x00000000,0x000F003F,0x00000000,
0x4FD01154,0x00000000)
ADVAPI32!RegSetValueExA (0x730214B,"kernel32",0x00000000,0x00000001,
"C:WINDOWSSYSTEM32kern32.exe -sys",0x00000023)
ADVAPI32!RegCloseKey (0x730214B)
KERNEL32!CreateMutexA (0x00000000,0x00000000,"SrVFrK")
KERNEL32!GetLastError ()
KERNEL32!CreateThread (0x00000000,0x00000000,0x004027B9,0x74116F00,
0x00000004,0x74116F00)
분류모듈(3d)은 악성코드로 의심되는 파일에 대한 행위 분석 리포트를 분석하여 시스템 호출의 시퀀스나 패턴이 아닌 파일의 작성이나 프로세스의 생성 등과 같은 시스템의 상태 변화를 파악하고, 이를 근거로 하여 새로운 악성행위를 분류 및 정의한다.
전술한 바와 같이, 탐지모듈(3a)은 콘텐츠-기반 시그니처를 이용하여 악성코드를 탐지한다. 그러나 상기 콘텐츠-기반 시그니처는 폴리모피즘(Polymorphism)과 메타모피즘(Metamorphism)을 이용하기 때문에 본질적으로 정확하지 않을 수 있다. 또한 탐지모듈(3a)은 특정 익스플로잇 행위에 따른 시그니처-기반으로 악성코드를 탐지할 수도 있지만, 멀티-벡터 공격이 가해지면 무력해질 수밖에 없다.
분류모듈(3d)은 악성코드로 의심되는 파일(이하 '유사 악성코드'라 함)을 가상머신 상에서 실행하고, 해당 파일의 실행으로 인해 생성된 운영체제 객체들을 추적하여 악성코드 분류를 위한 지문(이하 '악성행위 지문'이라 함)을 생성한다.
상기 악성행위 지문을 위해 사용자가 볼 수 있는 작성 파일이나 생성 프로세스 등과 같은 시스템의 상태 변경에 대한 축약된 집합이 사용될 수 있다. 이러한 지문들이 프로그램적인 행위를 나타내는 추상적 코드 시퀀스보다 불변적이고 직접적이다. 다시 말해, 본 발명에 의해 생성된 지문들은 유발된 잠재적인 손해를 평가하고, 새로운 위협을 탐지하고 분류하며, 이러한 위협의 완화와 제거를 위한 위험 평가에 도움을 주기 위하여 직접적으로 사용될 수 있다.
상기 악성행위 지문을 생성하기 위해 유사 악성코드의 프로파일을 그와 유사한 클래스의 행위를 나타내는 그룹들에 자동으로 묶는 방법을 사용할 수 있다. 이를 위해 유사 악성코드 표본의 실제 실행과 상태 변경을 지속적으로 관측할 필요가 있다. 상기 상태 변경에 의해 행위적 지문(behavioral fingerprint)을 만들어지고, 상기 행위적 지문은 유사한 상태 변경 행위를 나타내는 악성코드 클래스와 그 서브 클래스를 정의하기 위하여 다른 지문들과 연동될 수 있다.
상기 상태 변경은 개별적인 시스템 호출보다는 상위 레벨의 추상화된 개념이다. 유사 악성코드가 시스템에 끼치는 비-과도성(non-transient) 상태 변경을 악성행위라 정의할 경우, 암호화된 바이너리와 비결정적 이벤트의 순서화 등의 하위-레벨 시그니처를 이용하여 정적 분석을 따돌리는 통상적인 회피(obfuscation) 기법들은 상기 상태 변경의 분석을 통해 효과적으로 방어될 수 있다.
분류모듈(3d)은 상기 상태 변경의 내역을 파악하기 위해 상기 행위분석 리포트를 이용한다. 즉, 상기 행위분석 리포트에는 생성(spawn) 프로세스 이름, 수정된 레지스터리 키, 수정된 파일 이름, 네트워크 연결 시도 내역 등의 상태 변경 목록이 수록되어 있으며, 상기 상태 변경 목록을 이용하여 유사 악성코드의 행위 프로파일을 생성한다.
한편, 유사 악성코드를 분류하고 각 분류에 의미 있는 레이블(label)을 부여하기 위해 상기 유사 악성코드 행위 프로파일들을 그룹화할 필요가 있다.
상기 행위 프로파일을 그룹화하는 한 가지 방법은 어떤 두 개의 프로파일 사이의 차이를 측정한 거리 척도(distance metric)를 이용하는 것이다. 두 번째 방법은 유사 악성코드 프로파일들 간의 유사성을 정의하기 위하여 편집거리(edit distance) 개념을 도입하는 것이다. 세 번째 방법은 정규화된 압축 거리(Normalized Compression Distance, NCD)를 사용하는 것이다. 상기 NCD는 정보 내용의 근사화를 제공하기 위해 다음의 수학식 1과 같이 정의될 수 있다.
Figure pat00001
여기서, x+y는 x와 y의 접속(concatenation)이며, C(x)는 x의 zlib-압축 길이를 나타낸다. 직관적으로 NCD는 두 표본(모니터링 대상의 유사 악성코드)에 존재하는 정보의 중복을 나타낸다. 그리고 동일하지는 않으나 결과적으로 유사한 행위는 가까운 거리로 나타난다. 예를 들어, 다른 값을 가지는 두 개의 레지스트리 항목이나 같은 위치에 있는 임의의 파일 이름들은 가까운 거리로 나타나며, 다만 정보 내용의 구체적인 차이는 정규화(normalization)로 처리된다.
표 4는 10개의 유사 악성코드에 대한 행위 프로파일을 표시한 것이고, 표 5는 표 4에 표시된 행위 프로파일들을 NCD를 이용하여 그룹화한 결과를 도시한 것이다.
이름 표시 MD5 P/F/R/N
W32/Backdoor.QWO
W32/Backdoor.QWO
W32/IRCBot-based!Maximus
W32/Mytob.gen@MM
W32/Bancos.IQK
W32/Backdoor.AHJJ
W32/Parite.B
W32/Bancos.IJG
IRC/Zapchast.AK@bd
W32/VB-Backdoor!Maximus
A
B
C
D
E
F
G
H
I
J
71b99714cddd66181e54194c44ba59df
be5f889d12fe608e48be11e883379b7a
df1cda05aab2d366e626eb25b9cba229
5bf169aba400f20cbe1b237741eff090
eef804714ab4f89ac847357f3174aa1d
80f64d342fddcc980ae81d7f8456641e
12586ef09abc1520c1ba3e998baec457
ff0f3c170ea69ed266b8690e13daf1a6
36f6008760bd8de057ddb1ef99c0b4d7
c13f3448119220d006e93608c5ba3e58
8/13/27/0
8/13/27/0
1/1/6/1
1/1/6/2
1/2/8/3
2/11/28/1
1/4/3/1
1/2/8/1
3/22/29/3
5/32/28/1
A B C D E F G H I J
A 0.06 0.07 0.84 0.84 0.82 0.73 0.80 0.82 0.68 0.77
B 0.07 0.06 0.84 0.85 0.82 0.73 0.80 0.82 0.68 0.77
C 0.84 0.84 0.04 0.22 0.45 0.77 0.64 0.45 0.84 0.86
D 0.85 0.85 0.23 0.05 0.45 0.76 0.62 0.43 0.83 0.86
E 0.83 0.83 0.48 0.47 0.03 0.72 0.38 0.09 0.80 0.85
F 0.71 0.71 0.77 0.76 0.72 0.05 0.77 0.72 0.37 0.54
G 0.80 0.80 0.65 0.62 0.38 0.78 0.04 0.35 0.78 0.86
H 0.83 0.83 0.48 0.46 0.09 0.73 0.36 0.04 0.80 0.85
I 0.67 0.67 0.83 0.82 0.79 0.38 0.77 0.79 0.05 0.53
J 0.75 0.75 0.86 0.85 0.83 0.52 0.85 0.83 0.52 0.08
표 5는 표 4에서 기술된 유사 악성코드들에 대한 정규화된 압축 거리의 행렬을 보여준다. 행위 지문의 두 집합 사이에 공유된 정보 내용을 알면, 유사성을 기반으로 여러 조각의 악성코드들을 결합할 수 있다.
분류모듈(240은 계위적 클러스터링 알고리즘을 이용하여 트리 구조를 구축하고, 해당 트리 구조로부터 의미 있는 그룹을 추출할 수 있다. 또한 그룹들 사이의 거리 차이를 계산하기 위하여 '불일치성(inconsistency)' 측도를 사용할 수 있다. 상기 불일치성 측도를 이용하여 하나의 트리를 별개의 그룹들로 분리하는 것이다. 표 6은 표 5의 유사 악성코드들을 상기 불일치성 측도를 이용하여 복수의 그룹들로 분류한 결과를 도시한 것이다.
그룹 요소 중복 예제
C1
C2
C3
C4
C, D
A, B
E, G, H
F, I, J
67.86%
97.96%
56.60%
53.59%
scans 25
cygwin 루트킷 설치
AV 무력화
IRC
표 6의 예에서, 10 개의 유사 악성코드 조각들이 4 개의 다른 그룹들로 분류된 것을 확인할 수 있다. C1 그룹에서 C는 mytob의 행위를, D는 대량 메일링 스캐닝 웜의 행위를 나타낸다. C와 D에 대하여 관측된 행위 중에서 25번 포트 스캔과 같이 5개는 동일하며, 다른 여러 개는 행위 폴리모피즘을 보여주고 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 아래의 청구범위에서 정의하는 본 발명의 기본 개념을 이용하여 당업자가 여러 가지로 변형 및 개량한 형태 또한 본 발명의 권리범위에 속한다.
사용자 시스템 : 100 메일 서버 : 200
PC 하드웨어 : 10 호스트 OS : 20
가상머신 모니터 : 25 가상머신 클러스터 : 30
가상머신 : 1 테스트 OS : 2
악성코드 탐지 응용 프로그램 : 3
탐지 모듈 : 3a 처리 모듈 : 3b
리포트 모듈 : 3c 분류 모듈 : 3d

Claims (6)

  1. 수신된 전자메일에 첨부파일이 존재하는지 파악하는 단계;
    첨부파일이 존재하는 경우, 가상머신 상에서 상기 첨부파일을 실행하여 미리 등록된 악성코드에 해당하는지 판단하는 제1 탐지 단계; 및
    상기 첨부파일이 미리 등록된 악성코드가 아닌 경우, 상기 첨부파일의 실행에 따른 행동을 분석하여 악성코드로 분류할 것인지를 분석하는 제2 탐지 단계
    를 포함하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
  2. 제1항에 있어서, 상기 제1 탐지 단계는,
    시그니처 기반의 분석 기법 및 콘텐츠 필터링 기반의 분석 기법 중 어느 하나를 이용하여 악성코드를 탐지하는 것을 특징으로 하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제2 탐지 단계는,
    가상머신 상에서 상기 첨부파일을 실행하여 행위 분석 리포트를 생성하는 단계;
    상기 행위 분석 리포트를 분석하여 시스템의 상태 변경 지문을 생성하는 단계; 및
    상기 상태 변경 지문을 이용하여 상기 첨부파일을 새로운 악성행위로 분류하는 단계
    를 포함하는 것을 특징으로 하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
  4. 제3항에 있어서, 상기 행위 분석 리포트는,
    파일 시스템에서의 변동 사항(Changes to filesystem), 레지스트리에서의 변동 사항(Changes to resistry), 시스템 설정에서의 변동 사항(Changes to system settings), 네트워크 연결 상황(Network services), OS의 프로세스 현황(Process/window information), OS의 커널에 대한 API(Application Programming Interface)의 로그 분석 결과 중 적어도 하나를 포함하는 것을 특징으로 하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
  5. 제4항에 있어서, 상기 새로운 악성행위 분류 단계는,
    상기 상태 변경 지문을 이용하여 상기 첨부파일의 행위 프로파일을 생성하는 단계; 및
    적어도 두 개의 행위 프로파일을 그룹화하는 단계
    를 포함하는 것을 특징으로 하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
  6. 제5항에 있어서,
    상기 행위 프로파일의 그룹화는 정규화된 압축 거리 기법을 이용하여 수행되는 것을 특징으로 하는 가상머신을 이용한 악성소프트웨어 탐지 방법.
KR1020100007441A 2010-01-27 2010-01-27 가상머신을 이용한 악성소프트웨어 탐지 방법 KR20110087826A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100007441A KR20110087826A (ko) 2010-01-27 2010-01-27 가상머신을 이용한 악성소프트웨어 탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100007441A KR20110087826A (ko) 2010-01-27 2010-01-27 가상머신을 이용한 악성소프트웨어 탐지 방법

Publications (1)

Publication Number Publication Date
KR20110087826A true KR20110087826A (ko) 2011-08-03

Family

ID=44926531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100007441A KR20110087826A (ko) 2010-01-27 2010-01-27 가상머신을 이용한 악성소프트웨어 탐지 방법

Country Status (1)

Country Link
KR (1) KR20110087826A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013077565A1 (ko) * 2011-11-22 2013-05-30 주식회사 안랩 악성코드 진단 및 치료 서비스 장치 및 방법
KR101421631B1 (ko) * 2013-03-19 2014-07-22 주식회사 잉카인터넷 멀웨어 치료스크립트 생성 시스템 및 방법
KR20160119295A (ko) * 2015-04-02 2016-10-13 현대오토에버 주식회사 하둡 기반의 악성코드 탐지 방법과 시스템
KR20160138523A (ko) * 2015-03-18 2016-12-05 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
KR20200097218A (ko) 2019-02-07 2020-08-18 고려대학교 산학협력단 Gcn 기반의 어셈블리 코드 학습 장치 및 방법과 이를 이용한 보안 약점 탐지 장치 및 방법
WO2021187782A1 (ko) * 2020-03-18 2021-09-23 (주)수산아이앤티 악성 트래픽 검출 방법 및 그 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013077565A1 (ko) * 2011-11-22 2013-05-30 주식회사 안랩 악성코드 진단 및 치료 서비스 장치 및 방법
KR101291125B1 (ko) * 2011-11-22 2013-08-01 주식회사 안랩 악성코드 진단 및 치료 서비스 장치, 방법 및 그 방법을 실행시키기 위한 기록매체
KR101421631B1 (ko) * 2013-03-19 2014-07-22 주식회사 잉카인터넷 멀웨어 치료스크립트 생성 시스템 및 방법
KR20160138523A (ko) * 2015-03-18 2016-12-05 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
US10915624B2 (en) 2015-03-18 2021-02-09 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for determining behavior information corresponding to a dangerous file
KR20160119295A (ko) * 2015-04-02 2016-10-13 현대오토에버 주식회사 하둡 기반의 악성코드 탐지 방법과 시스템
KR20200097218A (ko) 2019-02-07 2020-08-18 고려대학교 산학협력단 Gcn 기반의 어셈블리 코드 학습 장치 및 방법과 이를 이용한 보안 약점 탐지 장치 및 방법
WO2021187782A1 (ko) * 2020-03-18 2021-09-23 (주)수산아이앤티 악성 트래픽 검출 방법 및 그 장치
KR20210117006A (ko) * 2020-03-18 2021-09-28 주식회사 수산아이앤티 악성 트래픽 검출 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
US11625485B2 (en) Method of malware detection and system thereof
US8261344B2 (en) Method and system for classification of software using characteristics and combinations of such characteristics
JP6370747B2 (ja) バーチャルマシーンモニタベースのアンチマルウェアセキュリティのためのシステム及び方法
US20240012907A1 (en) Cloud based just in time memory analysis for malware detection
KR101265173B1 (ko) 비실행 파일 검사 장치 및 방법
US7934261B1 (en) On-demand cleanup system
WO2018222766A1 (en) Real-time detection of and protection from malware and steganography in a kernel mode
KR20180032566A (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
US20080201722A1 (en) Method and System For Unsafe Content Tracking
Roseline et al. A comprehensive survey of tools and techniques mitigating computer and mobile malware attacks
EP3455773A1 (en) Inferential exploit attempt detection
KR20110087826A (ko) 가상머신을 이용한 악성소프트웨어 탐지 방법
Čeponis et al. Towards a robust method of dataset generation of malicious activity for anomaly-based HIDS training and presentation of AWSCTD dataset
Barabosch et al. Bee master: Detecting host-based code injection attacks
TWI515599B (zh) Computer program products and methods for monitoring and defending security
US10546125B1 (en) Systems and methods for detecting malware using static analysis
Xie et al. Lightweight examination of dll environments in virtual machines to detect malware
Ravula et al. Learning attack features from static and dynamic analysis of malware
Ravula Classification of malware using reverse engineering and data mining techniques
Zhang et al. A practical taint-based malware detection
US10061924B1 (en) Detecting malicious code based on deviations in executable image import resolutions and load patterns
Ravula et al. Dynamic analysis of malware using decision trees
Saleh Malware detection model based on classifying system calls and code attributes: a proof of concept
CN115982673A (zh) 安全检测方法、装置、电子设备及计算机可读取存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application