KR101849595B1 - 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법 - Google Patents

그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법 Download PDF

Info

Publication number
KR101849595B1
KR101849595B1 KR1020160164146A KR20160164146A KR101849595B1 KR 101849595 B1 KR101849595 B1 KR 101849595B1 KR 1020160164146 A KR1020160164146 A KR 1020160164146A KR 20160164146 A KR20160164146 A KR 20160164146A KR 101849595 B1 KR101849595 B1 KR 101849595B1
Authority
KR
South Korea
Prior art keywords
malicious code
group
malicious
variant ratio
variant
Prior art date
Application number
KR1020160164146A
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 KR1020160164146A priority Critical patent/KR101849595B1/ko
Application granted granted Critical
Publication of KR101849595B1 publication Critical patent/KR101849595B1/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/561Virus type analysis
    • 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

Abstract

본 발명에 의한 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법이 개시된다. 본 발명에 따른 악성코드 분류 시스템은 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 그룹쌍 생성부; 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 제1 산출부; 상기 악성 코드 그룹 내 악성 코드를 비교하여 그 비교한 결과로 군집화 계수를 산출하는 제2 산출부; 및 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 변종 비율 또는 상기 군집화 계수를 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 그룹병합 결정부를 포함한다.

Description

그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법{MALICIOUS CODE CLASSIFICATION SYSTEM FOR PROVIDING GROUP MERGING FUNCTION AND METHOD THEREOF}
본 발명은 악성코드 분류 기법에 관한 것으로서, 보다 상세하게는 대표 악성 코드를 이용하여 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법에 관한 것이다.
정보자산의 중요성이 커짐에 따라 이를 노리는 공격자들에 의한 사이버 침해사고가 증가하였고, 침해사고에 가장 널리 사용되는 악성코드 역시 최근 몇 년간 급증하였다.
제한된 수의 전문가가 모든 악성코드를 수동으로 분석할 수 없기에 자동화된 대책들이 고려되었으며 이 중 가장 대표적인 것이 정적분석 기법의 일종인 시그니처 기반 악성코드 탐지기법을 주로 사용하는 백신 프로그램이다.
시그니처 기반의 악성코드 탐지기법은 대량의 검사 대상을 빠르게 처리할 수 있는 장점이 있으나, 공격자가 기존 악성코드의 일부를 수정한 변종 악성코드를 이용하여 탐지를 회피할 수 있다는 단점이 있다.
이에 대응하기 위한 것이 악성코드 프로파일링 기법으로 악성코드 프로파일링 기법은 실시간으로 유입되는 악성코드와 기존 악성코드의 유사도를 비교하여 변종을 식별한다. 이를 통해 악성코드 분석전문자가 자세히 분석해야 할 대상을 대폭 줄여주고 악성코드 트렌드를 분석할 수 있게 한다.
그러나 악성코드의 수가 늘어나면서 악성코드를 전수 비교하여 그룹을 분류하는 것은 사실상 불가능하다. 10,000개의 악성 코드를 전수 비교하기 위해서는 49,995,000번의 비교가 필요하며, 한번의 유사도 비교에 0.01초가 소요된다고 가정할 때, 약 5일이 소요된다. 전수 비교해야 할 악성코드가 늘어날수록 전수비교에 소요되는 시간은 기하급수적으로 증가하여 100만개의 악성코드를 전수비교하기 위해서는 158.5년 이상이 소요된다.
따라서 악성코드를 전수 비교하지 않고 효율적으로 변종 그룹을 식별해야 할 필요가 있다.
따라서 이러한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 제1 악성 코드 그룹의 대표 악성 코드와 제2 악성 코드 그룹 내 모든 악성 코드를 비교하여 그 비교한 결과로 변종 비율을 산출하고 산출된 변종 비율을 근거로 악성 코드 그룹 간 병합 여부를 결정하도록 한 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법을 제공하는데 있다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적들을 달성하기 위하여, 본 발명의 한 관점에 따른 악성코드 분류 시스템은 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 그룹쌍 생성부; 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 제1 산출부; 상기 악성 코드 그룹 내 악성 코드를 비교하여 그 비교한 결과로 군집화 계수를 산출하는 제2 산출부; 및 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 변종 비율 또는 상기 군집화 계수를 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 그룹병합 결정부를 포함할 수 있다.
또한 상기 그룹병합 결정부는 상기 병합된 악성 코드 그룹 내에 포함된 악성 코드 간 변종비율을 산출하고, 상기 산출된 변종비율을 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
또한, 상기 그룹병합 결정부는 가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우, 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 상기 그룹병합 결정부는 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당하는 악성 코드 각각의 군집화 계수를 산출하고, 상기 산출된 군집화 계수를 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
또한, 상기 그룹병합 결정부는 가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 상기 그룹병합 결정부는 가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 제1 산출부는 n번째 그룹 쌍에 포함된 제1 악성코드 그룹에 포함된 악성코드와 제2 악성 코드 그룹의 대표 악성코드를 모두 비교하여 제1 변종 비율을 산출하고, 상기 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 제2 변종 비율을 산출하며, 상기 산출된 제1 변종비율과 제2 변종비율을 이용하여 상기 n번째 그룹 쌍의 변종비율을 산출할 수 있다.
또한, 상기 제1 산출부는 상기 n번째 그룹 쌍의 변종비율 DCn을 수학식 {DCn = 상기 제1 변종비율 x 상기 제2 변종비율}에 의해 구하고, 상기 n = 1, 2, ..., N이다.
또한, 상기 제1 산출부는 각 악성 코드의 로컬 DC를 수학식 {로컬 DC = (그룹 내 변종의 개수) / (전체 악성 코드의 수 - 1)}에 의해 구하고, 모든 악성 코드의 로컬 DC를 평균하여 상기 변종 비율을 산출할 수 있다.
또한, 상기 제2 산출부는 상기 군집화 계수 CC를 수학식 {악성 코드의 로컬 CC = (변종끼리 가지는 관계의 수) / (변종끼리 가질 수 있는 관계의 수)}에 의해 구할 수 있다.
본 발명의 다른 한 관점에 따른 악성코드 분류 시스템은 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 그룹쌍 생성부; 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 산출부; 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 산출된 변종 비율을 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 그룹병합 결정부를 포함할 수 있다.
본 발명의 또 다른 한 관점에 따른 악성코드 분류 시스템에서 수행되는 그룹 병합 기능을 제공하기 위한 방법은 그룹쌍 생성부가 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 단계; 제1 산출부가 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 단계; 제2 산출부가 상기 악성 코드 그룹 내 악성 코드를 비교하여 그 비교한 결과로 군집화 계수를 산출하는 단계; 및 그룹병합 결정부가 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 변종 비율 또는 상기 군집화 계수를 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 단계를 포함할 수 있다.
또한, 상기 선정하는 단계는 상기 병합된 악성 코드 그룹 내에 포함된 악성 코드 간 변종비율을 산출하고, 상기 산출된 변종비율을 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
또한, 상기 선정하는 단계는 가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우, 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 상기 선정하는 단계는 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당하는 악성 코드 각각의 군집화 계수를 산출하고, 상기 산출된 군집화 계수를 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
또한, 상기 선정하는 단계는 가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 상기 선정하는 단계는 가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 상기 변종비율을 산출하는 단계는 n번째 그룹 쌍에 포함된 제1 악성코드 그룹에 포함된 악성코드와 제2 악성 코드 그룹의 대표 악성코드를 모두 비교하여 제1 변종 비율을 산출하고, 상기 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 제2 변종 비율을 산출하며, 상기 산출된 제1 변종비율과 제2 변종비율을 이용하여 상기 n번째 그룹 쌍의 변종비율을 산출할 수 있다.
또한, 상기 변종비율을 산출하는 단계는 상기 n번째 그룹 쌍의 변종비율 DCn을 수학식 {DCn = 상기 제1 변종비율 x 상기 제2 변종비율}에 의해 구하고, 상기 n = 1, 2, ..., N이다.
또한, 상기 변종비율을 산출하는 단계는 각 악성 코드의 로컬 DC를 수학식 {로컬 DC = (그룹 내 변종의 개수) / (전체 악성 코드의 수 - 1)}에 의해 구하고, 모든 악성 코드의 로컬 DC를 평균하여 상기 변종 비율을 산출할 수 있다.
또한, 상기 군집화 계수를 산출하는 단계는 상기 군집화 계수 CC를 수학식 {악성 코드의 로컬 CC = (변종끼리 가지는 관계의 수) / (변종끼리 가질 수 있는 관계의 수)}에 의해 구할 수 있다.
본 발명의 또 다른 한 관점에 따른 악성코드 분류 시스템에서 수행되는 그룹 병합 기능을 제공하기 위한 방법은 그룹쌍 생성부가 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 단계; 산출부가 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 단계; 그룹병합 결정부가 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 산출된 변종 비율을 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 단계를 포함할 수 있다.
이처럼, 본 발명은 제1 악성 코드 그룹의 대표 악성 코드와 제2 악성 코드 그룹 내 모든 악성 코드를 비교하여 그 비교한 결과로 변종 비율을 산출하고 산출된 변종 비율을 근거로 악성 코드 그룹 간 병합 여부를 결정하도록 함으로써, 유사한 악성 코드 그룹을 병합할 수 있다.
또한, 본 발명은 악성 코드 그룹의 병합을 통해 악성코드 변종 미탐을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 분류 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 악성 코드 그룹 분류 원리를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 악성코드 그룹을 병합하기 위한 방법을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 로컬 DC 산출 원리를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 대표 악성 코드 선정 방법을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 로컬 CC 산출 원리를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 악성 코드 분류 시스템을 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 코드 그룹화부의 상세한 구성을 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 그룹 병합부의 상세한 구성을 나타내는 도면이다.
이하에서는, 본 발명의 실시예에 따른 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법을 첨부한 도면을 참조하여 설명한다. 본 발명에 따른 동작 및 작용을 이해하는 데 필요한 부분을 중심으로 상세히 설명한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 동일한 명칭의 구성 요소에 대하여 도면에 따라 다른 참조부호를 부여할 수도 있으며, 서로 다른 도면임에도 불구하고 동일한 참조부호를 부여할 수도 있다. 그러나, 이와 같은 경우라 하더라도 해당 구성 요소가 실시예에 따라 서로 다른 기능을 갖는다는 것을 의미하거나, 서로 다른 실시예에서 동일한 기능을 갖는다는 것을 의미하는 것은 아니며, 각각의 구성 요소의 기능은 해당 실시예에서의 각각의 구성 요소에 대한 설명에 기초하여 판단하여야 할 것이다.
이때, 본 발명에서는 제1 악성 코드 그룹의 대표 악성 코드와 제2 악성 코드 그룹 내 모든 악성 코드를 비교하여 그 비교한 결과로 변종 비율을 산출하고 산출된 변종 비율을 근거로 악성 코드 그룹 간 병합 여부를 결정하도록 한 새로운 방안을 제안한다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 분류 방법을 설명하기 위한 도면이다.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 악성 코드 분류 시스템은 적어도 하나의 악성 코드를 포함하는 다수의 악성코드 그룹을 분류하여 저장하여 관리할 수 있다(S110). 여기서, 다수의 악성코드 그룹 각각에서 가장 변종이 많은 악성 코드가 해당 그룹의 대표 악성 코드로 선정될 수 있다.
다음으로, 악성 코드 분류 시스템은 새로운 악성 코드가 유입되는지를 확인할 수 있다(S120).
다음으로, 악성 코드 분류 시스템은 그 확인한 결과로 새로운 악성 코드가 유입되면, 유입된 악성 코드와 다수의 악성코드 그룹들 내 각 대표 악성 코드 간의 유사도를 비교하여 그 비교한 결과로 유사한 대표 악성 코드가 있는지를 확인할 수 있다(S130).
예컨대, 악성 코드 분류 시스템은 유입된 악성 코드와 다수의 악성코드 그룹들 내 각 대표 악성 코드와의 유사도를 산출하여 이를 기반으로 유사한 대표 악성 코드를 판단한다.
이때, 본원발명의 악성 코드 간 유사도를 산출하는 원리를 설명하면 다음과 같다.
먼저, 악성 코드 분류 시스템은 악성코드를 입력 받으면 입력받은 악성코드가 가상 머신 상에서 실행되는 과정에서 호출되는 API(Application Program Interface) 호출 정보를 수집할 수 있다. 여기서, API 호출 정보는 동적 분석 기반 행위 정보로서, API 시퀀스 정보와 API 이름으로 구성될 수 있다.
이러한 API 호출 정보가 수집되면, 악성 코드에 대한 악성 행위를 알 수 있다.
악성 코드 분류 시스템은 수집된 API 호출 정보를 API 코드 테이블을 참조하여 API 코드 시퀀스로 변환할 수 있다. 여기서 API 코드 시퀀스는 API 이름마다 할당되는 API 코드와 API 시퀀스 정보를 포함할 수 있다.
악성 코드 분류 시스템은 N-gram 알고리즘을 이용하여 변환된 API 코드 시퀀스로부터 악성 코드 간 유사도를 산출할 수 있다. 여기서, N-gram 알고리즘은 전체 문자열 내 인접한 N개의 음절을 서브스트링(gram)으로 분할하는 기법으로서, 예컨대, 자연어 처리, 오탈자 수정 및 검색 분야 등에서 문자열 비교 알고리즘으로 활용되고 있다.
이렇게 악성 코드 간 유사도(similarity)는 코사인 유사도(cosine similarity)를 사용할 수 있는데, 코사인 유사도는 다음의 [수학식 1]과 같이 정의된다.
[수학식 1]
Figure 112016118856314-pat00001
여기서, A, B는 API 코드 시퀀스의 벡터 요소이고, n은 벡터 요소간 분할 크기이다.
다음으로, 악성 코드 분류 시스템은 그 비교한 결과로 유사한 대표 악성 코드가 없으면, 유입된 악성 코드를 포함하는 새로운 악성코드 그룹을 생성하고(S150), 새롭게 생성된 악성코드 그룹의 대표 악성 코드로 해당 악성 코드를 지정할 수 있다(S152).
반면, 악성 코드 분류 시스템은 그 비교한 결과로 유사한 대표 악성 코드가 있으면, 유입된 악성 코드를 유사한 대표 악성 코드 중 가장 유사한 대표 악성 코드가 포함된 악성코드 그룹으로 분류할 수 있다(S140).
즉, 악성 코드 분류 시스템은 특정 임계치 이상의 유사도를 갖는 악성코드를 유사 또는 변종 악성코드라고 판단하여 이들 간 그룹을 형성하여 그룹 분류를 수행한다.
다음으로, 악성 코드 분류 시스템은 분류 결과로 악성코드 그룹을 갱신할 수 있다(S160).
도 2는 본 발명의 일 실시예에 따른 악성 코드 그룹 분류 원리를 설명하기 위한 도면이다.
도 2에 도시한 바와 같이, 본 발명에 따른 악성코드 분류장치는 유입된 악성 코드 간 유사도를 산출하고, 산출된 유사도가 임계치 이상 유사성을 형성하는 악성 코드가 그룹 분류를 수행한다.
즉, 네트워크 그래프 속성을 적용하여 유사성을 형성하는 악성 코드 간 엣지를 형성하고 그 엣지를 통해 하나의 그래프로 산출되는 악성 코드들을 동일 그룹으로 분류한다.
예컨대, 대량의 악성 코드가 유입되는 경우 악성 코드 간 유사도 분석을 통해 엣지를 연결하고 엣지가 연결된 하나의 그래프를 하나의 악성 코드 그룹 예컨대, {A, B, C, D}, {E, F, G, H}, {I, J, K}, {L}의 총 4개의 그룹으로 분류될 수 있다.
이러한 원리로, 본 발명에서는 유입되는 악성 코드와 유사한 악성 코드가 존재하는 경우 유사한 악성 코드와 엣지가 연결되어 해당 악성 코드 그룹으로 분류되고 유사한 악성 코드가 존재하지 않는 경우 새로운 악성 코드 그룹으로 분류된다.
이렇게 대표 악성코드를 선정하여 각 대표 악성코드의 변종을 그룹화하는 방법은 미탐과 오탐을 수반하고 미탐을 줄이기 위해 유사한 그룹을 찾아 병합하고자 한다.
도 3은 본 발명의 일 실시예에 따른 악성코드 그룹을 병합하기 위한 방법을 나타내는 도면이다.
도 3에 도시한 바와 같이, 본 발명의 일 실시예에 따른 악성 코드 분류 시스템은 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성할 수 있다(S301).
예컨대, 모드 악성코드 그룹이 {A, B, C, D}으로 4개일 경우, 이로부터의 그룹 쌍으로는 {A, B}, {A, C}, {A, D}, {B, C}, {B, D}, {C, D}의 총 6개가 생성될 수 있다.
다음으로, 악성 코드 분류 시스템은 n번째 그룹 쌍에 포함된 제1 악성코드 그룹에 포함된 악성코드와 제2 악성 코드 그룹의 대표 악성코드를 모두 비교하여 그 비교한 결과로 제1 변종 비율(Degree Centrality; DC) Ab를 산출할 수 있다(S302).
이때, 변종비율(DC)은 그룹을 형성하는 그래프 내에서 얼마나 많은 노드와 연결되어 있는지를 나타내는 파라미터로서, 특정 악성 코드 그룹 내 변종 비율을 정의한다.
즉, 두 악성 코드의 유사도가 기준치 이상일 경우 그 두 악성 코드를 변종으로 판별하고 판별된 변종 악성 코드는 그래프 내에서 연결된 것으로 볼 수 있다. 따라서 특정 악성 코드의 DC는 해당 악성 코드가 포함된 그룹 내에서 얼마나 많은 변종 악성 코드가 있는지를 나타내고, 다음의 [수학식 2]와 같이 정의할 수 있다.
[수학식 2]
악성 코드의 로컬 DC = (그룹 내 변종의 개수) / (전체 악성 코드의 수 - 1)
도 4는 본 발명의 일 실시예에 따른 로컬 DC 산출 원리를 설명하기 위한 도면이다.
도 4에 도시한 바와 같이, 4개의 악성 코드를 포함하는 악성 코드 그룹을 보여주고 있는데, 그 일예로, 악성 코드 그룹 내 악성 코드 A의 로컬 DC는 1(=3/3)이 된다.
다른 예로, 악성 코드 그룹 내 악성 코드 B의 로컬 DC는 0.66(=2/3)이고, 악성 코드 C의 로컬 DC는 0.66(=2/3)이며, 악성 코드 D의 로컬 DC는 0.33(=1/3)된다.
이렇게 산출된 악성 코드의 로컬 DC를 전체 평균하면 그룹의 제1 변종 비율 Ab가 산출된다.
다음으로, 악성 코드 분류 시스템은 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 그 비교한 결과로 제2 변종 비율 Ba를 산출할 수 있다(S303).
다음으로, 악성 코드 분류 시스템은 산출된 제1 변종비율과 제2 변종비율을 이용하여 n번째 그룹 쌍의 변종비율 DCn을 산출할 수 있는데(S304), 다음의 [수학식 3]과 같다.
[수학식 3]
DCn = Ab x Ba
여기서, n = 1, 2, ..., N
다음으로, 악성 코드 분류 시스템은 모든 그룹 쌍에 대한 변종비율이 산출 완료되었는지를 확인할 수 있다(S305). 즉, 악성코드 분류 시스템은 n=N이면 모든 그룹 쌍에 대한 변종비율 산출이 완료되었다고 판단하고 그렇지 않으면 1만큼 증가시켜 상기 과정을 반복할 수 있다.
다음으로, 악성 코드 분류 시스템은 그 확인한 결과로 모든 그룹쌍에 대한 변종비율 산출이 완료되면, 모든 그룹 쌍에 대한 변종 비율이 미리 설정된 임계치 미만인지를 확인할 수 있다(S306).
여기서, 미리 설정된 임계치는 0.7 이상으로 설정하되, 필요에 따라 변경될 수 있다.
다음으로, 악성 코드 분류 시스템은 그 확인한 결과로 모든 그룹 쌍에 대한 변종 비율이 임계치 미만인 경우 병합할 그룹이 없다고 판단하여 그룹 병합 과정을 종료할 수 있다.
반면, 악성 코드 분류 시스템은 모든 그룹 쌍에 대한 변종 비율이 임계치 미만이 아니라면, 임계치 이상인 그룹 쌍을 후보 그룹 쌍으로 추출할 수 있다(S307).
다음으로, 악성 코드 분류 시스템은 추출된 후보 그룹 쌍 중 변종 비율이 가장 높은 후보 그룹 쌍을 선정하여 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합할 수 있다(S308).
예컨대, 변종비율이 가장 높은 후보 그룹 쌍 {A, B}가 선정되면, 악성코드 그룹 A에 악성코드 그룹 B가 병합됨으로써 새로운 악성코드 그룹 A가 생성될 수 있다.
예컨대, 후보 그룹 쌍인 악성 코드 그룹 A = {a1, a2, a3}, B = {b1, b2}인 경우 새로운 악성코드 그룹 A = {a1, a2, a3, b1, b2}가 생성될 수 있다.
다음으로, 악성 코드 분류 시스템은 병합되어 새롭게 생성된 악성 코드 그룹 내에 포함된 악성 코드를 모두 비교하여 그 비교한 결과로 변종비율을 산출할 수 있다(S309).
다음으로, 악성 코드 분류 시스템은 산출된 변종비율 중 가장 높은 변종 비율을 갖는 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다(S310).
도 5는 본 발명의 일 실시예에 따른 대표 악성 코드 선정 방법을 나타내는 도면이다.
도 5에 도시한 바와 같이, 본 발명에 따른 악성 코드 분류 시스템은 산출된 변종비율 중 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인지를 확인할 수 있다(S311).
다음으로, 악성 코드 분류 시스템은 그 확인한 결과로 가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우 해당 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다(S312).
반면, 악성 코드 분류 시스템은 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당 악성 코드 각각의 군집화 계수(Clustering Coefficient)를 산출할 수 있다(S313).
이때, 군집화 계수(CC)는 자인과 연관된 노드들이 얼마나 뭉쳐있는지를 나타내는 파라미터로서, 특정 악성코드와 변종 관계인 악성 코드들이 서로 변종을 이루는 비율을 정의한다. 이러한 군집화 계수는 다음의 [수학식 4]와 같이 정의할 수 있다.
[수학식 4]
악성 코드의 로컬 CC = (변종끼리 가지는 관계의 수) / (변종끼리 가질 수 있는 관계의 수)
여기서, 변종끼리 가지는 관계의 수는 직접 연결되어 있는 노드의 수를 나타내고, 변종끼리 가질 수 있는 관계의 수는 연결되어 있는 모든 노드의 수를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 로컬 CC 산출 원리를 설명하기 위한 도면이다.
도 6에 도시한 바와 같이, 4개의 악성 코드를 포함하는 악성 코드 그룹을 보여주고 있는데, 그 일예로, 악성 코드 그룹 내 악성 코드 A의 로컬 CC는 0.33(=1/3)이 된다.
다른 예로, 악성 코드 그룹 내 악성 코드 B의 로컬 CC는 0.66(=2/3)가 되고, 악성 코드 C의 로컬 CC는 대략 0.66(=2/3)가 되며, 악성 코드 D의 로컬 CC는 대략 1(=3/3)된다.
다음으로, 악성 코드 분류 시스템은 2개 이상의 악성 코드 각각으로부터 산출된 군집화 계수 중 가장 높은 군집화 계수를 갖는 악성코드가 2개 이상인지를 확인할 수 있다(S314).
다음으로, 악성 코드 분류 시스템은 그 확인한 결과로 가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다(S312).
반면, 악성 코드 분류 시스템은 가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다(S315).
도 7은 본 발명의 일 실시예에 따른 악성 코드 분류 시스템을 나타내는 도면이다.
도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 악성 코드 분류 시스템은 코드 그룹화부(100), 그룹 병합부(200), 데이터베이스(database)(300)를 포함할 수 있다.
코드 그룹화부(100)는 다수의 악성 코드가 유입되면, 유입된 다수의 악성 코드를 악성 코드 그룹으로 분류할 수 있다.
도 8은 본 발명의 일 실시예에 따른 코드 그룹화부의 상세한 구성을 나타내는 도면이다.
도 8에 도시한 바와 같이, 본 발명의 일 실시예에 따른 코드 그룹화부(100)은 API 변환부(110), 유사도 산출부(120), 그룹화 결정부(130)로 구성될 수 있다.
API 변환부(110)는 악성코드를 입력 받으면 입력받은 악성코드가 가상 머신(virtual machine) 상에서 실행되는 과정에서 호출되는 API 호출 정보를 수집하고, 수집된 API 호출 정보를 API 코드 테이블을 참조하여 API 코드 시퀀스로 변환할 수 있다.
이때, 본 발명에서는 악성 코드를 가상 머신 상에서 실행하고 있지만 반드시 이에 한정되지 않고 샌드 박스(sandbox)와 같이 보호된 영역 안에서 실행시킬 수 있는 하드웨어나 소프트웨어 모두 가능하다.
유사도 산출부(120)는 N-gram 알고리즘을 이용하여 변환된 API 코드 시퀀스로부터 악성 코드 간 유사도를 산출할 수 있다.
그룹화 결정부(130)는 산출된 유사도를 기반으로 유사한 대표 악성 코드가 있으면, 유입된 악성 코드를 유사한 대표 악성 코드 중 가장 유사한 대표 악성 코드가 포함된 악성코드 그룹으로 분류할 수 있다.
그룹화 결정부(130)는 산출된 유사도를 기반으로 유사한 대표 악성 코드가 없으면, 유입된 악성 코드를 포함하는 새로운 악성코드 그룹을 생성하고, 그 새롭게 생성된 악성코드 그룹의 대표 악성 코드로 해당 악성 코드를 지정할 수 있다.
또한, 그룹 병합부(200)는 제1 악성 코드 그룹의 대표 악성 코드와 제2 악성 코드 그룹 내 모든 악성 코드를 비교하여 그 비교한 결과로 변종 비율을 산출하고 산출된 변종 비율을 근거로 악성 코드 그룹 간 병합 여부를 결정할 수 있다.
도 9는 본 발명의 일 실시예에 따른 그룹 병합부의 상세한 구성을 나타내는 도면이다.
도 9에 도시한 바와 같이, 본 발명의 일 실시예에 따른 그룹 병합부(200)는 그룹쌍 생성부(210), 제1 산출부(220), 제2 산출부(230), 그룹병합 결정부(240)로 구성될 수 있다.
그룹쌍 생성부(210)는 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성할 수 있다.
제1 산출부(220)는 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출할 수 있다.
이때, 제1 산출부(220)는 N개의 그룹 쌍에서 순차적으로 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 그 비교한 결과로 제1 변종 비율을 산출하고, n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 그 비교한 결과로 제2 변종 비율을 산출한 후 산출된 제1 변종비율과 제2 변종비율을 이용하여 n번째 그룹 쌍의 변종비율을 산출할 수 있다.
제2 산출부(230)는 악성 코드 그룹이 병합되어 병합된 악성 코드 그룹의 대표 악성 코드를 선정하기 위해 병합된 악성 코드 그룹 내 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당 악성 코드 각각의 군집화 계수를 산출할 수 있다.
그룹병합 결정부(240)는 산출된 변종 비율을 기반으로 그룹 쌍 중 변종 비율이 가장 높은 후보 그룹 쌍을 선정하여 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합할 수 있다.
그룹병합 결정부(240)는 병합되어 새롭게 생성된 악성 코드 그룹 내에 포함된 악성 코드 간 변종비율을 산출하고, 산출된 변종비율을 이용하여 새롭게 생성된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
이때, 그룹병합 결정부(240)는 가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우 해당 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
그룹병합 결정부(240)는 가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당 악성 코드 각각의 군집화 계수를 산출하고, 산출된 군집화 계수를 이용하여 새롭게 생성된 악성 코드 그룹의 대표 악성 코드를 선정할 수 있다.
이때, 그룹병합 결정부(240)는 가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정하고, 가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 새롭게 생성된 악성 코드 그룹의 대표 악성 코드로 선정할 수 있다.
또한, 데이터베이스(300)는 적어도 하나의 악성 코드를 포함하는 다수의 악성코드 그룹을 저장하고, 그룹 병합 과정에 따라 악성 코드 그룹을 갱신할 수 있다.
한편, 이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.
이상에서 설명한 실시예들은 그 일 예로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 코드 그룹화부
110: API 변환부
120: 유사도 산출부
130: 그룹화 결정부
200: 그룹 병합부
210: 그룹쌍 생성부
220: 제1 산출부
230: 제2 산출부
240: 그룹병합 결정부
300: 데이터베이스

Claims (22)

  1. 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 그룹쌍 생성부;
    상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 제1 산출부;
    상기 악성 코드 그룹 내 악성 코드를 비교하여 그 비교한 결과로 군집화 계수를 산출하는 제2 산출부; 및
    상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 변종 비율 또는 상기 군집화 계수를 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 그룹병합 결정부;
    를 포함하는, 악성코드 분류 시스템.
  2. 제1 항에 있어서,
    상기 그룹병합 결정부는,
    상기 병합된 악성 코드 그룹 내에 포함된 악성 코드 간 변종비율을 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정하는, 악성코드 분류 시스템.
  3. 제2 항에 있어서,
    상기 그룹병합 결정부는,
    가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우, 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 악성코드 분류 시스템.
  4. 제2 항에 있어서,
    상기 그룹병합 결정부는,
    가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당하는 악성 코드 각각의 군집화 계수를 산출하고, 상기 산출된 군집화 계수를 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정하는, 악성코드 분류 시스템.
  5. 제4 항에 있어서,
    상기 그룹병합 결정부는,
    가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 악성코드 분류 시스템.
  6. 제4 항에 있어서,
    상기 그룹병합 결정부는,
    가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 악성코드 분류 시스템.
  7. 제1 항에 있어서,
    제1 산출부는,
    n번째 그룹 쌍에 포함된 제1 악성코드 그룹에 포함된 악성코드와 제2 악성 코드 그룹의 대표 악성코드를 모두 비교하여 제1 변종 비율을 산출하고,
    상기 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 제2 변종 비율을 산출하며,
    상기 산출된 제1 변종비율과 제2 변종비율을 이용하여 상기 n번째 그룹 쌍의 변종비율을 산출하는, 악성코드 분류 시스템.
  8. 제7 항에 있어서,
    상기 제1 산출부는,
    상기 n번째 그룹 쌍의 변종비율 DCn을 다음의 수학식 {DCn = 상기 제1 변종비율 x 상기 제2 변종비율}에 의해 구하고, 상기 n = 1, 2, ..., N인, 악성코드 분류 시스템.
  9. 제1 항에 있어서,
    상기 제1 산출부는,
    각 악성 코드의 로컬 DC를 다음의 수학식 {로컬 DC = (그룹 내 변종의 개수) / (전체 악성 코드의 수 - 1)}에 의해 구하고,
    모든 악성 코드의 로컬 DC를 평균하여 상기 변종 비율을 산출하는, 악성코드 분류 시스템.
  10. 제1 항에 있어서,
    상기 제2 산출부는,
    상기 군집화 계수 CC를 다음의 수학식 {악성 코드의 로컬 CC = (변종끼리 가지는 관계의 수) / (변종끼리 가질 수 있는 관계의 수)}에 의해 구하는, 악성코드 분류 시스템.
  11. 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 그룹쌍 생성부;
    상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 산출부;
    상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 산출된 변종 비율을 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 그룹병합 결정부;
    를 포함하는, 악성코드 분류 시스템.
  12. 악성코드 분류 시스템에서 수행되는 그룹 병합 기능을 제공하기 위한 방법에 있어서,
    그룹쌍 생성부가 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 단계;
    제1 산출부가 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 단계;
    제2 산출부가 상기 악성 코드 그룹 내 악성 코드를 비교하여 그 비교한 결과로 군집화 계수를 산출하는 단계; 및
    그룹병합 결정부가 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 변종 비율 또는 상기 군집화 계수를 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 단계;
    를 포함하는, 그룹 병합 기능을 제공하기 위한 방법.
  13. 제12 항에 있어서,
    상기 선정하는 단계는,
    상기 병합된 악성 코드 그룹 내에 포함된 악성 코드 간 변종비율을 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정하는, 그룹 병합 기능을 제공하기 위한 방법.
  14. 제13 항에 있어서,
    상기 선정하는 단계는,
    가장 높은 변종 비율을 갖는 악성 코드가 하나인 경우, 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 그룹 병합 기능을 제공하기 위한 방법.
  15. 제13 항에 있어서,
    상기 선정하는 단계는,
    가장 높은 변종 비율을 갖는 악성 코드가 2개 이상인 경우, 해당하는 악성 코드 각각의 군집화 계수를 산출하고, 상기 산출된 군집화 계수를 이용하여 상기 병합된 악성 코드 그룹의 대표 악성 코드를 선정하는, 그룹 병합 기능을 제공하기 위한 방법.
  16. 제15 항에 있어서,
    상기 선정하는 단계는,
    가장 높은 군집화 계수를 갖는 악성 코드가 하나인 경우 해당하는 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 그룹 병합 기능을 제공하기 위한 방법.
  17. 제15 항에 있어서,
    상기 선정하는 단계는,
    가장 높은 군집화 계수를 갖는 악성 코드가 2개 이상인 경우, 유입 시간이 더 빠른 악성 코드를 상기 병합된 악성 코드 그룹의 대표 악성 코드로 선정하는, 그룹 병합 기능을 제공하기 위한 방법.
  18. 제12 항에 있어서,
    상기 변종비율을 산출하는 단계는,
    n번째 그룹 쌍에 포함된 제1 악성코드 그룹에 포함된 악성코드와 제2 악성 코드 그룹의 대표 악성코드를 모두 비교하여 제1 변종 비율을 산출하고,
    상기 n번째 그룹 쌍에 포함된 제1 악성코드 그룹의 대표 악성코드와 제2 악성 코드 그룹에 포함된 악성코드를 모두 비교하여 제2 변종 비율을 산출하며,
    상기 산출된 제1 변종비율과 제2 변종비율을 이용하여 상기 n번째 그룹 쌍의 변종비율을 산출하는, 그룹 병합 기능을 제공하기 위한 방법.
  19. 제18 항에 있어서,
    상기 변종비율을 산출하는 단계는,
    상기 n번째 그룹 쌍의 변종비율 DCn을 다음의 수학식 {DCn = 상기 제1 변종비율 x 상기 제2 변종비율}에 의해 구하고, 상기 n = 1, 2, ..., N인, 그룹 병합 기능을 제공하기 위한 방법.
  20. 제12 항에 있어서,
    상기 변종비율을 산출하는 단계는,
    각 악성 코드의 로컬 DC를 다음의 수학식 {로컬 DC = (그룹 내 변종의 개수) / (전체 악성 코드의 수 - 1)}에 의해 구하고,
    모든 악성 코드의 로컬 DC를 평균하여 상기 변종 비율을 산출하는, 그룹 병합 기능을 제공하기 위한 방법.
  21. 제12 항에 있어서,
    상기 군집화 계수를 산출하는 단계는,
    상기 군집화 계수 CC를 다음의 수학식 {악성 코드의 로컬 CC = (변종끼리 가지는 관계의 수) / (변종끼리 가질 수 있는 관계의 수)}에 의해 구하는, 그룹 병합 기능을 제공하기 위한 방법.
  22. 악성코드 분류 시스템에서 수행되는 그룹 병합 기능을 제공하기 위한 방법에 있어서,
    그룹쌍 생성부가 그룹 병합을 위한 제어 명령을 받으면, 모든 악성코드 그룹을 이용하여 서로 다른 두 개의 악성코드 그룹으로 이루어진 N개의 그룹 쌍을 생성하는 단계;
    산출부가 상기 N개의 그룹 쌍에서 순차적으로 각 그룹 쌍 내 악성 코드 그룹을 모두 비교하여 그 비교한 결과로 변종 비율을 산출하는 단계;
    그룹병합 결정부가 상기 산출된 변종 비율을 기반으로 후보 그룹 쌍을 선정하고 상기 선정된 후보 그룹 쌍에 포함된 악성코드 그룹을 병합하고, 상기 산출된 변종 비율을 이용하여 상기 병합된 악성코드 그룹의 대표 악성 코드를 선정하는 단계;
    를 포함하는, 그룹 병합 기능을 제공하기 위한 방법.
KR1020160164146A 2016-12-05 2016-12-05 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법 KR101849595B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160164146A KR101849595B1 (ko) 2016-12-05 2016-12-05 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160164146A KR101849595B1 (ko) 2016-12-05 2016-12-05 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101849595B1 true KR101849595B1 (ko) 2018-04-17

Family

ID=62083168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160164146A KR101849595B1 (ko) 2016-12-05 2016-12-05 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101849595B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809670B2 (en) 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
KR101230271B1 (ko) 2010-12-24 2013-02-06 고려대학교 산학협력단 악성 코드 탐지를 위한 시스템 및 방법
US20150244733A1 (en) 2014-02-21 2015-08-27 Verisign Inc. Systems and methods for behavior-based automated malware analysis and classification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809670B2 (en) 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
KR101230271B1 (ko) 2010-12-24 2013-02-06 고려대학교 산학협력단 악성 코드 탐지를 위한 시스템 및 방법
US20150244733A1 (en) 2014-02-21 2015-08-27 Verisign Inc. Systems and methods for behavior-based automated malware analysis and classification

Similar Documents

Publication Publication Date Title
JP7441582B2 (ja) データ侵害を検出するための方法、装置、コンピュータ可読な記録媒体及びプログラム
Tian et al. An automated classification system based on the strings of trojan and virus families
US20170193230A1 (en) Representing and comparing files based on segmented similarity
Darshan et al. Performance evaluation of filter-based feature selection techniques in classifying portable executable files
US10614312B2 (en) Method and apparatus for determining signature actor and identifying video based on probability of appearance of signature actor
WO2010011344A1 (en) Frame based video matching
KR101930293B1 (ko) 정적 분석과 동적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법
US20170372069A1 (en) Information processing method and server, and computer storage medium
Mishra et al. A survey on the robustness of feature importance and counterfactual explanations
JP2017004123A (ja) 判定装置、判定方法および判定プログラム
WO2022180613A1 (en) Global iterative clustering algorithm to model entities' behaviors and detect anomalies
KR102367859B1 (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
US20150058272A1 (en) Event correlation detection system
KR101849595B1 (ko) 그룹 병합 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법
KR101815968B1 (ko) 그룹 분리 기능을 제공하기 위한 악성코드 분류 시스템 및 그 방법
KR102246405B1 (ko) Tf-idf 기반 벡터 변환 및 데이터 분석 장치 및 방법
CN112699936A (zh) 一种电力cps广义虚假数据注入攻击识别方法
CN112070161A (zh) 一种网络攻击事件分类方法、装置、终端及存储介质
KR102018443B1 (ko) 네트워크 침입 탐지 시스템 및 방법, 이를 수행하기 위한 기록매체
JP2006155344A (ja) データ分析装置、データ分析プログラム及びデータ分析方法
CN115664814A (zh) 网络入侵检测方法、装置、电子设备及存储介质
KR102255600B1 (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
CN110197066B (zh) 一种云计算环境下的虚拟机监控方法及监控系统
KR102357475B1 (ko) 개선된 gbtd 알고리즘을 이용한 에너지 절도 검출 시스템 및 방법
KR102266950B1 (ko) 데이터 불균형 해결을 위한 언더샘플링 기반 앙상블 방법

Legal Events

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