KR20100069135A - 악성코드 분류 시스템 - Google Patents

악성코드 분류 시스템 Download PDF

Info

Publication number
KR20100069135A
KR20100069135A KR1020080127738A KR20080127738A KR20100069135A KR 20100069135 A KR20100069135 A KR 20100069135A KR 1020080127738 A KR1020080127738 A KR 1020080127738A KR 20080127738 A KR20080127738 A KR 20080127738A KR 20100069135 A KR20100069135 A KR 20100069135A
Authority
KR
South Korea
Prior art keywords
malicious code
malicious
similarity
file
score
Prior art date
Application number
KR1020080127738A
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 KR1020080127738A priority Critical patent/KR20100069135A/ko
Publication of KR20100069135A publication Critical patent/KR20100069135A/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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/563Static detection by source code analysis

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 악성코드 분류 시스템에 관한 것으로서, 악성코드를 9개의 그룹으로 분류하고, 이를 그룹의 특성에 맞는 여러 개의 클러스터로 구분한 후, 악성코드가 소속되는 각각의 클러스터에서 기준점을 기반으로 악성코드의 유사도를 측정함으로써, 기존의 악성코드와 새로운 악성코드의 유형 및 관련 정도를 쉽게 파악할 수 있는 악성코드 분류 시스템을 제공함에 그 특징적인 목적이 있다.
이러한 기술적 과제를 달성하기 위하여, 본 발명은, 기존 악성코드의 파일, 레지스트리, 네트워크 및 프로세스와 관련한 DB를 구축하고 있는 분석 데이터베이스부; 악성코드를 그룹핑(Grouping)하고, 각 그룹에 대한 클러스터를 정의함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도를 측정하는 악성코드 분류부; 및 상기 악성코드 분류부를 통해 측정된 가장 유사도가 소정 개수의 목록을 표시하고, 각각의 값에 대한 계산결과를 챠트형태로 표시하는 결과 표시부; 를 포함하는 것을 특징으로 한다.
악성코드, 분류, 클러스터

Description

악성코드 분류 시스템{SYSTEM FOR CLASSIFICATION OF MALICIOUS CODE}
본 발명은 악성코드 분류 시스템에 관한 것으로서, 더욱 상세하게는 악성코드를 9개의 그룹으로 분류하고, 이를 그룹의 특성에 맞는 여러 개의 클러스터로 구분한 후, 악성코드가 소속되는 각각의 클러스터에서 기준점을 기반으로 악성코드의 유사도를 측정함으로써, 기존의 악성코드와 새로운 악성코드의 유형 및 관련 정도를 쉽게 파악할 수 있는 악성코드 분류 시스템에 관한 것이다.
주지된 바와 같이, 악성코드란 악성 또는 악용 가능한 소프트웨어의 집합으로서, 바이러스, 웜, 스파이웨어, 악성 애드웨어 등 사용자와 컴퓨터에게 잠재적으로 위험이 되는 모든 소프트웨어를 총칭하는 말이며, 사전적 의미로 멀웨어(malware)는 'malicious software(악의적인 소프트웨어)'의 약자로, 사용자의 의사와 이익에 반해 시스템을 파괴하거나 정보를 유출하는 등 악의적 활동을 수행하도록 의도적으로 제작된 소프트웨어를 말한다. 국내에서는 '악성코드'로 번역되며. 자기 복제와 파일 감염이 특징인 바이러스를 포함하는 더 넓은 개념이라고 할 수 있다.
악성코드는 매일 수천 건씩 발생하고 있으며, 이를 체계적으로 분류하여 발 견된 바이러스가 신종인지 변종인지에 대한 판단기준을 설정할 필요가 있다. 변종인 경우에는 이전 코드와의 유사성이 어느 정도인지에 대한 유사도 제시가 필요할 것이다.
본 발명은 상기와 같은 문제점을 감안하여 안출된 것으로, 악성코드를 9개의 그룹으로 분류하고, 이를 그룹의 특성에 맞는 여러 개의 클러스터로 구분한 후, 악성코드가 소속되는 각각의 클러스터에서 기준점을 기반으로 악성코드의 유사도를 측정함으로써, 기존의 악성코드와 새로운 악성코드의 유형 및 관련 정도를 쉽게 파악할 수 있는 악성코드 분류 시스템을 제공함에 그 특징적인 목적이 있다.
이러한 기술적 과제를 달성하기 위하여, 본 발명은, 기존 악성코드의 파일, 레지스트리, 네트워크 및 프로세스와 관련한 DB를 구축하고 있는 분석 데이터베이스부; 악성코드를 그룹핑(Grouping)하고, 각 그룹에 대한 클러스터를 정의함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도를 측정하는 악성코드 분류부; 및 상기 악성코드 분류부를 통해 측정된 가장 유사도가 소정 개수의 목록을 표시하고, 각각의 값에 대한 계산결과를 챠트형태로 표시하는 결과 표시부; 를 포함하는 것을 특징으로 한다.
상기와 같은 본 발명에 따르면, 매일 수천건의 악성코드가 발견되는 상황에서, 기존 악성코드와의 유사도를 제공함으로써, 분석의 시간과 노력을 줄일 수 있으며, 악성코드 분석가들의 성향에 따라 다르게 분석될 수 있는 오류를 줄여줄 수 있는 효과도 있다.
본 발명의 구체적 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다.
본 발명에 따른 악성코드 분류 시스템에 관하여 도 1 내지 도 4j 를 참조하여 설명하면 다음과 같다.
도 1 은 본 발명에 따른 악성코드 분류 시스템(S)을 개념적으로 도시한 전체 구성도로서, 도시된 바와 같이 분석 데이터베이스부(100), 악성코드 분류부(200) 및 결과 표시부(300)를 포함하여 이루어진다.
분석 데이터베이스부(100)는, 기존 악성코드에 대한 데이터베이스 구축하고 있는 바, 도 2a 내지 도 2d 에 도시된 바와 같이 기존 악성코드의 파일 관련 DB(도 2a), 레지스트리 관련 DB(도 2b), 네트워크 관련 DB(도 2c), 프로세스 관련 DB(도 2d)가 구성된다.
또한, 분석 데이터베이스부(100)는, 도 2e 내지 도 2g 에 도시된 바와 같이 기존 악성코드에 대한 악성 정보 DB(도 2e), 분석관리 정보 DB(도 2f), 점수 정보 DB(도 2g)를 포함하는 기타 DB가 구성된다.
악성코드 분류부(200)는 악성코드를 그룹핑(Grouping)하고, 각 그룹에 대한 클러스터를 정의함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도 를 측정하는 기능을 수행하는 바, 상기 도 1 에 도시된 바와 같이 악성코드 그룹핑 설정모듈(210) 및 유사도 측정모듈(220)을 포함하여 이루어진다.
악성코드 그룹핑 설정모듈(210)은 악성코드를 9개로 그룹핑하고, 각 그룹내에서 클러스터를 정의하고, 이러한 클러스터별로 각 점수가 배정된 테이블을 구현하고 있다. 본 실시예에서, 악성코드를 트로이 목마(TROJAN), 다운로더(DOWMLOADER), 파일 바이러스(FILE VIRUS), 웜(WORM), 드롭퍼(DROPPER), 키로거(KEYLOGGER), 봇(BOT), 백도어(BACKDOOR) 및 애드웨어/스파이웨어(ADWARE/SPYWARE)로 9개로 설정하겠으나, 본 발명이 이에 한정되지 않는다.
도 3a 는 본 발명에 따른 트로이 목마(TROJAN)의 클러스터 현황을 보여주는 일예시도로서, 도시된 바와 같이, F_CREATE(파일을 생성하는가?), P_CREATE_OTHER(자신 외에 다른 프로세스를 실행시키는가?), R_MODIFY_YN(레지스트리를 변화시키는가?), N_US(네트워크 연결이 발생하는가?)로 클러스터를 나누게 된다.
이때, P_CREATE_OTHER 을 수행하면서 레지스트리의 내용을 수정하지 않는 경우는 없기 때문에 배제 하였다. 또한, 트로이 목마(TROJAN)이 다른 일은 수행하지 않고 네트워크 활동만 하는 경우도 없기 때문에 해당 속성도 고려하지 않는다.
도 3b 는 본 발명에 따른 다운로더(DOWMLOADER)의 클러스터 현황을 보여주는 일예시도이다. 다운로더의 경우, 다운받은 악성코드가 어떤 그룹에 속하느냐에 따라 해당 그룹의 클러스터를 적용시킨다.
도 3c 는 본 발명에 따른 파일 바이러스(FILE VIRUS)의 클러스터 현황을 보 여주는 일예시도이다. 파일 바이러스의 경우, 네트워크에 거의 영향을 주지 않고 시스템의 파일/레지스트리에 피해를 입힘으로써 시스템 파괴를 목적으로 것이 많다. 따라서, 네트워크(NETWORK)는 클러스터를 나누는데 사용하지 않는다.
도 3d 는 본 발명에 따른 웜(WORM)의 클러스터 현황을 보여주는 일예시도로서, 도시된 바와 같이 P_CREATE_OTHER 를 수행하면서 레지스트리를 수정하지 않는 경우는 없기 때문에 배제하도록 한다. 또한, 웜(WORM)은 자기 자신을 복제하는 악성코드이므로 네트워크(NETWORK)는 고려하지 않는다.
도 3e 는 본 발명에 따른 드롭퍼(DROPPER)의 클러스터 현황을 보여주는 일예시도이며, 도 3f 는 본 발명에 따른 키로거(KEYLOGGER)의 클러스터 현황을 보여주는 일예시도이다. 키로거의 경우, 입력한 키를 네트워크를 이용해 다른 곳으로 보내는 경우가 있고, 파일에 저장하는 경우가 있으며 둘다 이루어지는 경우로 나뉜다.
도 3g 는 본 발명에 따른 백도어(BACKDOOR)의 클러스터 현황을 보여주는 일예시도로서, 도시된 바와 같이 주기적으로 패킷을 전송하여 서버가 살아있음을 확인하는 백도어와 무제한 기다리는 경우의 백도어로 나뉜다.
한편, 봇(BOT)은 N_IRC_SERVER 와 N_IRC_CHANNEL 두 가지 속성으로 거의 판가름 나기 때문에 클러스터 셀이 존재하지 않으며, 애드웨어/스파이웨어(ADWARE/SPYWARE) 역시, 주소만 가지고 접속하기 때문에 클러스터 셀이 존재하지 않는다.
도 4a 는 본 발명에 따른 트로이 목마(TROJAN)의 점수가 배정된 테이블을 나타내는 일예시도로서, 트로이 목마(TROJAN)의 경우, 네트워크를 사용하지 않는 악성코드가 많으므로, 비교하는 두 악성코드가 모두 네트워크를 사용하지 않은 경우에는 20점을 부여하고, 그렇지 않은 경우에는 PORT와 OPEN_URL 항목을 통해 점수를 부여하게 된다.
도 4b 는 본 발명에 따른 다운로더(DOWMLOADER)의 점수가 배정된 테이블을 나타내는 일예시도이며, 다운로더의 경우, 다운받은 악성코드가 어떤 그룹에 속하느냐에 따라 해당 그룹의 계산식으로 계산한다.
하지만, 다운받은 파일이 아닌 원래 DOWNLOADER 악성코드가 다운로드 받기 위해 접근을 시도하는 경우, URL을 통해 가산점을 부여한다.
즉, 다운받은 파일의 성격이 전혀 다르거나 서버가 막혀 악성코드를 다운로드 받지 못하는 상황이라도 접근하는 URL을 통해 최소의 점수를 부여받을 수 있다.
만약, 두 악성코드 비교점수가 70점 이하일 경우에 URL의 가산점은 30점으로 한다. 그리하여 같은 다운로더이고 시스템에 미치는 영향이 매우 다르다고 해도 접속을 시도하는 URL이 같으면 최소 40% 는 보장할 수 있게 된다.
또한, 다운로더이지만 이미 서버가 막혀있어 다운받는 악성코드를 분석하지 못하더라도 같은 서버로부터 받은 파일이라면 40% 는 보장할 수 있는 것이다.
도 4c 는 본 발명에 따른 파일 바이러스(FILE VIRUS)의 점수가 배정된 테이블을 나타내는 일예시도이다. 네트워크 영향이 거의 없는 파일 바이러스는 네트워크를 배제한다. 또한, 각 악성코드별로 증상의 편차가 클 것으로 예상되어 TYPE에 서 15점을 부여한다.
도 4d 는 본 발명에 따른 웜(WORM)의 점수가 배정된 테이블을 나타내는 일예시도이다. 웜은 자기 자신을 복제하여 시스템에 악영향을 미치는 악성코드이다.
드롭퍼(DROPPER)의 경우, DROP하는 악성코드가 어떤 그룹에 속하느냐에 다라 해당 그룹의 계산식으로 계산한다.
드롭퍼는 DLL_INJECTION을 하는 악성코드가 많으므로 해당 그룹의 점수 테이블에 CALL_API 의 항목에서 10점 차감되고, DLL_INJECTION_NAME 항목에 점수가 10점 배정된다.
하지만, Dropper 인 경우에도 DLL_INJECTION을 하지 않는 경우가 있다. 이런 경우에는 위 트로이 목마(TROJAN)에서 네트워크 테이블과 마찬가지로 비교하는 두 악성코드 모두 DLL Injection 이 이루어지지 않으면 해당 점수를 받아갈 수 있게 된다.
예를 들어, 트로이 목마(TROJAN) 파일을 드롭하는 경우에는, 트로이 목마(TROJAN)의 프로세스(PROCESS) 테이블이 도 4e 의 (A)에서 (B)와 같이 수정된다.
또한, 웜(WORM) 파일을 드롭하는 경우에는, 웜(WORM)의 프로세스(PROCESS) 테이블이 도 4f 의 (A)에서 (B)와 같이 수정된다.
프로세스(PROCESS) 테이블 외에 다른 테이블은 해당 그룹의 원래 배점과 같으며, 프로세스(PROCESS) 테이블의 DLL_INJECTION_NAME에 10점을 부여하고, CALL_API에 10점을 차감하는 것이다.
도 4g 는 본 발명에 따른 키로거(KEYLOGGER)의 점수가 배정된 테이블을 나타 내는 일예시도이며, 키로그 기능에 쓰이는 API와 필요한 레지스트리는 키로그 악성코드마다 비슷할 것으로 보여진다. 그렇기 때문에 거의 대부분 높은 점수를 받을 레지스트리와 API 점수를 조금 낮은 점수를 부여하였다.
키로그는 주로 파일이나 네트워크를 통해 전달되므로 파일과 네트워크에 조금 높은 점수가 배정된다. 네트워크를 사용하지 않는 악성코드일 때 비교하는 두 악성코드가 모두 네트워크를 사용하지 않으면 30점을 부여하고, 그렇지 않은 경우에는 PORT와 OPEN_URL을 통해 점수를 부여하게 된다.
도 4h 는 본 발명에 따른 봇(BOT)의 점수가 배정된 테이블을 나타내는 일예시도이며, 도 4i 는 본 발명에 따른 백도어(BACKDOOR)의 점수가 배정된 테이블을 나타내는 일예시도이다. 백도어의 경우 해커의 명령을 받기 위해 항상 포트를 오픈하고 기다린다. 따라서, 해커의 주소를 중점으로 점수를 부여한다.
도 4j 는 본 발명에 따른 애드웨어/스파이웨어(ADWARE/SPYWARE)의 점수가 배정된 테이블을 나타내는 일예시도이다.
각 그룹은 멀웨어 코드(MALWARE CODE) 테이블, 파일(FILE) 테이블, 레지스트리(REGISTRY) 테이블, 네트워크 (NETWORK) 테이블, 프로세스(PROCESS) 테이블로 구분되어, 모든 그룹의 악성코드에 점수를 부여하는데 사용되며, 각 그룹의 특성마다 속성의 비중은 달라질 수 있다.
유사도 측정모듈(220)은 분석 데이터베이스부(100)에 구성되어 있는 기존의 악성코드와, 분류하고자 하는 악성코드를 비교하되, 각 점수가 배정된 악성코드 그 룹별 테이블을 바탕으로 분류하고자 하는 악성코드의 유사도 점수를 계산함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도를 측정한다.
예를 들어, 파일(FILE) 테이블에서는, 비교하는 두 악성코드가 생성하는 파일이 같을 경우, 유사도 측정모듈(220)은 다음의 [수식 1] 과 같이 계산하여 점수를 부여한다.
[수식 1]
Figure 112008086345592-PAT00001
즉, 유사도 측정모듈(220)은, 악성코드 SAMPLE 1 과 SAMPLE 2 가 각각 생성한 파일 중, 같은 파일의 개수와, 배정된 점수 및 두 악성코드 중 많이 생성된 파일의 개수와의 비를 곱함으로써, 점수를 부여한다.
이때, 각 문자열 비교시, 완전히 일치하는 않는 경우가 존재하게 된다. 따라서, 본 발명에서는, 문자열이 70% 이상 유사한 경우에는 배정된 점수의 50%를 부여한다.
SAMPLE 1 SAMPLE 2
arp_.exe arp1.exe
[표 1] 두 악성코드가 생성한 파일
위의 [표 1] 을 통해 볼 수 있듯이, 트로이 목마(TROJAN) 그룹의 두 악성코드 SAMPLE 1 및 SAMPLE 2 가 각각 arp_.exe 및 arp1.exe 파일을 생성하였다.
SAMPLE 1 및 SAMPLE 2 의 파일이름이 완전히 일치하지는 않으나, 4개의 문자열 중, 3글자(75%)가 유사하므로, 유사도 측정모듈(220)은 파일(FILE) 테이블의 CRATE NAME 항목에서, 배정된 10점 중, 5점(50%)를 부여한다.
또한, 악성코드 파일 수정이 부분 집합이 되는 경우 즉, 아래의 [표 2] 를 통해 볼 수 있듯이, 트로이 목마(TROJAN) 그룹의 두 악성코드 SAMPLE 1 및 SAMPLE 2 는 각각 5개 및 3개의 파일을 생성하였다. 이때, SAMPLE 2의 생성파일은 SAMPLE 1의 파일에 모두 포함된다.
SAMPLE 1 SAMPLE 2
winavxx.exe winavxx.exe
hadjajr.ini hadjajr.ini
vtr.dll printer.exe
printer.exe
~DF6C0F.tmp
[표 2] 두 악성코드가 생성한 파일
따라서, 유사도 측정모듈(220)은 파일(FILE) 테이블의 CREATE NAME 항목에서, 배정된 10점 중, 9점(90%)을 부여한다.
한편, CREATE, MODIFY, DELETE 의 경우, 세가지 역할 모두를 시행하지 않는 경우도 있기 때문에 세 영역에 통틀어 파일(FILE) 테이블에 점수를 부여한다.
만약, 악성코드 A가 CREATE와 MODIFY 작업을 하는 반면, 악성코드 B는 DELETE 의 작업만 할 경우에는 점수를 부여받지 못하게 되며, A B 모두 CREATE 작업만 하는 경우에는 CREATE 항목만으로 전체 배점을 받게 된다.
이는 파일(FILE) 테이블에서 DIR과 NAME 항목에 모두 적용된다.
또한, 레지스트리(REGISTRY) 테이블에서는, 비교하는 두 악성코드가 접근하는 레지스트리가 같을 경우, 유사도 측정모듈(220)은 다음의 [수식 2] 와 같이 계 산하여 점수를 부여한다.
[수식 2]
Figure 112008086345592-PAT00002
즉, 유사도 측정모듈(220)은 악성코드 SAMPLE 1 과 SAMPLE 2 가 생성한 레지스트리 개수 중, 같은 레지스트리의 개수와, 배정된 점수 및 두 악성코드 중 많이 변화된 레지스트리 개수와의 비를 곱함으로써, 점수를 부여한다.
이때, 각 레지스트리 문자열 비교시, 완전히 일치하는 않는 경우가 존재하게 된다. 따라서, 본 발명에서는, 문자열이 70% 이상 유사한 경우에는 배정된 점수의 50%를 부여한다.
또한, 유사도 측정모듈(220)은, 악성코드의 레지스트리 수정이 완전히 포함되는 경우 즉, 다음의 [표 3] 과 같이, SAMPLE 2 의 레지스트리가 SAMPLE 1 의 레지스트리에 완전히 포함하는 경우, 배정된 점수의 90%를 부여한다.
SAMPLE 1 SAMPLE 2
[HKCU \Software \Microsoft \Windows\CurrentVersion\Run] WinAVX=C: \WINDOWS \system32 \WinAvXX.exe [HKCU \Software \Microsoft \Windows\CurrentVersion\Run] WinAVX=C:\WINDOWS\system32\WinAvXX.exe
[HKCU \Software \Microsoft \Windows\CurrentVersion\Run] WinAVX=C:\WINDOWS\system32\WinAvXX.exe
[표 3] 두 악성코드가 생성한 레지스트리
즉, 위의 [표 3] 을 통해 볼 수 있듯이, 트로이 목마(TROJAN) 그룹의 두 악성코드 SAMPLE 1 및 SAMPLE 2 는 각각 2개 및 1개의 파일을 생성하였다.
이때, SAMPLE 2 의 생성파일은 SAMPLE 1 의 생성파일에 모두 포함된다. 이에 따라, 유사도 측정모듈(220)은 SAMPLE 2 의 레지스트리(REGISTRY) 테이블의 CRATE KEY에서, 배정된 10점 중, 9점(90%)을 부여한다.
한편, CREATE, MODIFY, DELETE 의 경우, 세 가지 역할 모두를 시행하지 않는 경우도 있기 때문에 세 영역에 통틀어 레지스트리(REGISTRY) 테이블에 점수를 부여한다.
만약, 악성코드 A 가 CREATE와 MODIFY 작업을 하는 반면, 악성코드 B가 DELETE 의 작업만 할 경우에는 점수를 부여받지 못하며, A, B 모두 CREATE 작업만 하는 경우에는, CREATE 항목만으로 전체 배점을 받게 된다.
또한, 네트워크(NETWORK) 테이블에서는, 네트워크를 사용하지 않는 경우와, 사용하는 경우로 나뉘어 질 수 있다.
네트워크를 사용하지 않는 경우에서는, 두 악성코드가 모두 네트워크를 사용하지 하지 않으면, 유사도 측정모듈(220)은 USE 항목에 배정된 점수인 만점을 부여하고, 한 쪽의 악성코드라도 네트워크를 사용한다면 점수를 부여하지 않는다.
한편, 네트워크를 사용하는 경우에서는, 유사도 측정모듈(220)은 PORT와 OPEN_URL 항목을 통해 점수를 부여한다.
또한, 프로세스(PROCESS) 테이블에서는, 유사도 측정모듈(220)은 PROCESS NAME 을 비교하여 점수를 부여한다. 즉, 프로세스상에 같은 이름인지 비교하여 점수를 부여하며,
한편, 유사도 측정모듈(220)은 CALL API 항목을 비교하여 점수를 부여한다.
즉, API는 중복을 제외한 전체 API 중에 얼마나 많은 API가 같은가를 가지고 점수를 부여한다.
예를 들어, 악성코드 A에 25개의 API 목록이 있고, B에 20개의 API 목록이 있다면, 해당 점수표의 API 점수를 25개의 API에 할당하고, 25개 중 몇 개가 같은지에 비례하여 점수가 부여된다.
만약, API에 20점이 배정되어 있는 클러스터에서, 악성코드 A가 40개의 API를 호출하고, B가 30개의 API를 호출할 때, B의 API와 A의 API가 15개 일치할 경우, 유사도 측정모듈(220)은 (20점/40개)*100(%)*15개로 계산하여 7.5점을 부여하게 된다.
상술한 바와 같이, 악성코드를 그룹핑하고 클러스터를 정의함으로써, 악성코드의 유사도를 비교하는 방법 즉, 분류하고자 하는 어떤 악성코드의 유사도를 판별하기 위해서 클러스터에 포함된 모든 샘플과 비교하는 방법은, 유사도의 신뢰성이 떨어지는 문제점이 있다. 따라서, 본 발명에서는 유사도 측정모듈(220)은, 분석 데이터베이스부(100)에 구성되어 있는 기존의 모든 악성코드 샘플과 비교하지 않고, 다수개의 샘플을 대표할 수 있는 기준점 즉, '기준 악성코드'를 설정하여 유사도의 신뢰성을 높일 수 있다.
이후, 유사도 측정모듈(220)은 분류하고자 하는 악성코드를, 9개의 악성코드의 각 파일(FILE), 레지스트리(REGISTRY), 네트워크(NETWORK), 프로세스(PROCESS) 테이블에 대하여 유사도를 측정함으로써, 해당 클러스터에서 가장 유사도가 높은 소정 개수의 목록을 추출한다.
결과 표시부(300)는 유사도 측정모듈(220)을 통해 측정된 가장 유사도가 소정 개수의 목록을 표시하고, 각각의 값에 대한 계산결과를 챠트형태로 표시한다. 본 실시예에서, 유사도가 높아 추출되는 목록의 개수를 10개로 설정하겠으나, 본 발명이 이에 한정되는 것은 아니다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
도 1 은 본 발명에 따른 악성코드 분류 시스템(S)을 개념적으로 도시한 전체 구성도.
도 2a 내지 도 2d 는 본 발명에 따른 기존 악성코드의 파일 관련 DB, 레지스트리 관련 DB, 네트워크 관련 DB 및 프로세스 관련 DB를 각각 나타내는 일예시도.
도 2e 내지 도 2g 는 본 발명에 따른 기존 악성코드에 대한 악성 정보 DB, 분석관리 정보 DB, 점수 정보 DB를 각각 나타내는 일예시도.
도 3a 는 본 발명에 따른 트로이 목마(TROJAN)의 클러스터 현황을 보여주는 일예시도.
도 3b 는 본 발명에 따른 다운로더(DOWMLOADER)의 클러스터 현황을 보여주는 일예시도.
도 3c 는 본 발명에 따른 파일 바이러스(FILE VIRUS)의 클러스터 현황을 보여주는 일예시도.
도 3d 는 본 발명에 따른 웜(WORM)의 클러스터 현황을 보여주는 일예시도.
도 3e 는 본 발명에 따른 드롭퍼(DROPPER)의 클러스터 현황을 보여주는 일예시도.
도 3f 는 본 발명에 따른 키로거(KEYLOGGER)의 클러스터 현황을 보여주는 일예시도.
도 3g 는 본 발명에 따른 백도어(BACKDOOR)의 클러스터 현황을 보여주는 일예시도.
도 4a 는 본 발명에 따른 트로이 목마(TROJAN)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4b 는 본 발명에 따른 다운로더(DOWMLOADER)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4c 는 본 발명에 따른 파일 바이러스(FILE VIRUS)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4d 는 본 발명에 따른 웜(WORM)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4e 는 트로이 목마(TROJAN) 파일을 드롭하는 경우, 본 발명에 따른 트로이 목마(TROJAN)의 프로세스(PROCESS) 테이블이 수정되는 것을 보여주는 일예시도.
도 4f 는 웜(WORM) 파일을 드롭하는 경우, 본 발명에 따른 웜(WORM)의 프로세스(PROCESS) 테이블이 수정되는 것을 보여주는 일예시도.
도 4g 는 본 발명에 따른 키로거(KEYLOGGER)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4h 는 본 발명에 따른 봇(BOT)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4i 는 본 발명에 따른 백도어(BACKDOOR)의 점수가 배정된 테이블을 나타내는 일예시도.
도 4j 는 본 발명에 따른 애드웨어/스파이웨어(ADWARE/SPYWARE)의 점수가 배정된 테이블을 나타내는 일예시도.
** 도면의 주요 부분에 대한 부호의 설명 **
100: 분석 데이터베이스부 200: 악성코드 분류부
300: 결과 표시부 210: 악성코드 그룹핑 설정모듈
220: 유사도 측정모듈

Claims (5)

  1. 악성코드 분류 시스템에 있어서,
    기존 악성코드의 파일, 레지스트리, 네트워크 및 프로세스와 관련한 DB를 구축하고 있는 분석 데이터베이스부;
    악성코드를 그룹핑(Grouping)하고, 각 그룹에 대한 클러스터를 정의함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도를 측정하는 악성코드 분류부; 및
    상기 악성코드 분류부를 통해 측정된 가장 유사도가 소정 개수의 목록을 표시하고, 각각의 값에 대한 계산결과를 챠트형태로 표시하는 결과 표시부; 를 포함하되,
    상기 분석 데이터베이스부는, 기존 악성코드에 관한 악성 정보, 분석관리 정보 및 점수 정보와 관련한 DB를 더 포함하는 것을 특징으로 하는 악성코드 분류 시스템.
  2. 제 1 항에 있어서,
    상기 악성코드 분류부는,
    악성코드를 다수개로 그룹핑하며, 각 그룹내에서 클러스터를 정의하고, 클러스터별로 각 점수가 배정된 테이블을 구현하고 있는 악성코드 그룹핑 설정모듈; 및
    상기 분석 데이터베이스부에 구성되어 있는 기존의 악성코드와, 분류하고자 하는 악성코드를 비교하되, 각 점수가 배정된 악성코드 그룹별 테이블을 바탕으로 분류하고자 하는 악성코드의 유사도 점수를 계산함으로써, 기존의 악성코드와 분류하고자 하는 악성코드의 유사도를 측정하는 유사도 측정모듈; 을 포함하는 것을 특징으로 하는 악성코드 분류 시스템.
  3. 제 1 항에 있어서,
    상기 유사도 측정모듈은,
    상기 분석 데이터베이스부에 구성되어 있는 기존의 모든 악성코드 샘플과 비교하지 않고, 다수개의 샘플을 대표할 수 있는 '기준 악성코드'를 설정하는 것을 특징으로 하는 악성코드 분류 시스템.
  4. 제 1 항에 있어서,
    상기 유사도 측정모듈은,
    분류하고자 하는 악성코드를, 다수개의 악성코드의 각 파일(FILE), 레지스트리(REGISTRY), 네트워크(NETWORK), 프로세스(PROCESS) 테이블에 대하여 유사도를 측정함으로써, 해당 클러스터에서 유사도가 높은 순으로 소정 개수의 목록을 추출하는 것을 특징으로 하는 악성코드 분류 시스템.
  5. 제 1 항에 있어서,
    상기 악성코드는, 트로이 목마(TROJAN), 다운로더(DOWMLOADER), 파일 바이러스(FILE VIRUS), 웜(WORM), 드롭퍼(DROPPER), 키로거(KEYLOGGER), 봇(BOT), 백도어(BACKDOOR) 및 애드웨어/스파이웨어(ADWARE/SPYWARE)를 포함하는 것을 특징으로 하는 악성코드 분류 시스템.
KR1020080127738A 2008-12-16 2008-12-16 악성코드 분류 시스템 KR20100069135A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080127738A KR20100069135A (ko) 2008-12-16 2008-12-16 악성코드 분류 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080127738A KR20100069135A (ko) 2008-12-16 2008-12-16 악성코드 분류 시스템

Publications (1)

Publication Number Publication Date
KR20100069135A true KR20100069135A (ko) 2010-06-24

Family

ID=42367286

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080127738A KR20100069135A (ko) 2008-12-16 2008-12-16 악성코드 분류 시스템

Country Status (1)

Country Link
KR (1) KR20100069135A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329037B1 (ko) * 2011-12-21 2013-11-14 한국인터넷진흥원 변종 악성 코드를 탐지하기 위한 시스템 및 방법
KR101328641B1 (ko) * 2011-12-15 2013-11-20 한국인터넷진흥원 악성코드 통합정보 생성 시스템 및 이를 포함하는 악성코드 통합관리 시스템
CN104331664A (zh) * 2014-11-27 2015-02-04 南京大学 一种在取证场景下自动分析未知恶意程序特征的方法
KR20160046640A (ko) * 2014-10-21 2016-04-29 한국전자통신연구원 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
US10284577B2 (en) 2015-06-15 2019-05-07 Iyuntian Co., Ltd. Method and apparatus for file identification
KR102259884B1 (ko) * 2020-06-26 2021-06-03 주식회사 이스트시큐리티 관제 대응을 위한 통합진단정보를 제공하기 위한 장치, 이를 위한 방법 및 이 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328641B1 (ko) * 2011-12-15 2013-11-20 한국인터넷진흥원 악성코드 통합정보 생성 시스템 및 이를 포함하는 악성코드 통합관리 시스템
KR101329037B1 (ko) * 2011-12-21 2013-11-14 한국인터넷진흥원 변종 악성 코드를 탐지하기 위한 시스템 및 방법
KR20160046640A (ko) * 2014-10-21 2016-04-29 한국전자통신연구원 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
CN104331664A (zh) * 2014-11-27 2015-02-04 南京大学 一种在取证场景下自动分析未知恶意程序特征的方法
CN104331664B (zh) * 2014-11-27 2017-08-08 南京大学 一种在取证场景下自动分析未知恶意程序特征的方法
US10284577B2 (en) 2015-06-15 2019-05-07 Iyuntian Co., Ltd. Method and apparatus for file identification
KR102259884B1 (ko) * 2020-06-26 2021-06-03 주식회사 이스트시큐리티 관제 대응을 위한 통합진단정보를 제공하기 위한 장치, 이를 위한 방법 및 이 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Similar Documents

Publication Publication Date Title
EP3814961B1 (en) Analysis of malware
US11258805B2 (en) Computer-security event clustering and violation detection
US20200162494A1 (en) Automatically grouping malware based on artifacts
US11089046B2 (en) Systems and methods for identifying and mapping sensitive data on an enterprise
US11899786B2 (en) Detecting security-violation-associated event data
US20150172303A1 (en) Malware Detection and Identification
US10200390B2 (en) Automatically determining whether malware samples are similar
KR101693370B1 (ko) 퍼지 화이트리스팅 안티-멀웨어 시스템 및 방법
EP3716111A1 (en) Computer-security violation detection using coordinate vectors
CN114679329B (zh) 用于基于赝象对恶意软件自动分组的***
Rieck et al. Automatic analysis of malware behavior using machine learning
EP2946331B1 (en) Classifying samples using clustering
US8464345B2 (en) Behavioral signature generation using clustering
US20170149830A1 (en) Apparatus and method for automatically generating detection rule
US20200159916A1 (en) Computer-security event security-violation detection
US20150186649A1 (en) Function Fingerprinting
KR20100069135A (ko) 악성코드 분류 시스템
KR20150124020A (ko) 악성코드 식별 태그 설정 시스템 및 방법, 및 악성코드 식별 태그를 이용한 악성코드 검색 시스템
WO2023154779A2 (en) Methods and systems for identifying anomalous computer events to detect security incidents
WO2018047027A1 (en) A method for exploring traffic passive traces and grouping similar urls
US10437995B2 (en) Systems and methods for inference of malware labels in a graph database
JP2016525750A (ja) 合法的オブジェクトの誤用の識別
Ramani et al. Analysis of Android malware permission based dataset using machine learning

Legal Events

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