KR102318991B1 - 유사도 기반의 악성코드 진단 방법 및 장치 - Google Patents

유사도 기반의 악성코드 진단 방법 및 장치 Download PDF

Info

Publication number
KR102318991B1
KR102318991B1 KR1020210016426A KR20210016426A KR102318991B1 KR 102318991 B1 KR102318991 B1 KR 102318991B1 KR 1020210016426 A KR1020210016426 A KR 1020210016426A KR 20210016426 A KR20210016426 A KR 20210016426A KR 102318991 B1 KR102318991 B1 KR 102318991B1
Authority
KR
South Korea
Prior art keywords
software
malicious code
similarity
cluster
hash value
Prior art date
Application number
KR1020210016426A
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 KR1020210016426A priority Critical patent/KR102318991B1/ko
Application granted granted Critical
Publication of KR102318991B1 publication Critical patent/KR102318991B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/908Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Abstract

본 발명은 유사도 기반의 악성코드 진단 방법 및 장치에 관한 것으로, 기존 악성코드와의 유사도 해시 기반의 비교를 수행하여 악성코드의 종류를 식별하는 것을 일 목적으로 한다. 이러한 목적을 달성하기 위한 본 발명은 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일(제1 소프트웨어)를 수신하는 A 단계, 제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어의 유사도를 연산하는 B 단계, 제1 소프트웨어 및 제2 소프트웨어를 클러스터링하여 복수 개의 클러스터를 생성하는 C 단계, 상기 클러스터 내 포함된 제3 소프트웨어의 악성코드 여부를 식별하는 D 단계 및 제3 소프트웨어에 대한 악성코드 및 정상코드 비중에 따라 상기 클러스터에 속한 미확인 소프트웨어의 악성코드 여부를 식별하는 E 단계를 포함하는 것을 특징으로 한다.

Description

유사도 기반의 악성코드 진단 방법 및 장치{METHOD AND DEVICE FOR DETECTING MALWARE BASED ON SIMILARITY}
본 발명은 유사도 기반의 악성코드 진단 방법 및 장치에 관한 것으로, 보다 자세하게는 악성코드를 분석하여 행동 패턴이 비슷하거나 공격자가 동일한 것으로 보이는 악성코드를 식별하여 알려지지 않은 악성코드의 종류를 식별하는 유사도 기반의 악성코드 진단 방법 및 장치에 관한 것이다.
악성코드는 악의적인 목적을 위해 설계된 소프트웨어로서, 자기 복제 능력과 감염 대상 유무에 따라 컴퓨터 바이러스, 웜, 트로이목마, 루트킷 등으로 분류된다. 악성코드는 컴퓨터 기술의 발전과 함께 큰 폭으로 증가하고 있으며 계속해서 기능이 추가된 변종이 등장하고 있어 그 빈도 수와 피해액이 늘어나고 있는 실정이다. 이에 따라 악성코드의 진단 및 치료에 대한 필요성이 증가하고 있는데, 종래에는 해시 값을 이용하여 검사 대상 파일이 악성코드 DB에 포함되어 있는 지의 여부를 판단하여 악성코드를 진단하는 방법이 주로 사용된다.
이러한 방법은 기존 악성코드에 변형을 가한 새로운 변종 악성코드일 경우 악성코드 DB에는 정확히 일치하는 악성코드가 포함되어 있지 않기 때문에 악성코드 탐지를 회피할 수 있다는 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위한 것으로서, 기능이 추가된 변종 악성코드를 식별할 수 있도록 기존 악성코드와의 유사도 해시 기반의 비교를 수행하여 악성코드의 종류를 식별하는 것을 일 목적으로 한다.
또한 본 발명은 복수 개의 악성코드를 클러스터링 하여 하나의 클러스터 내에 포함된 악성코드의 식별 비율에 따라 알려지지 않은 악성코드의 종류를 추정하는 것을 일 목적으로 한다.
이러한 목적을 달성하기 위한 본 발명은 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일(제1 소프트웨어)를 수신하는 A 단계, 제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어의 유사도를 연산하는 B 단계, 제1 소프트웨어 및 제2 소프트웨어를 클러스터링 하여 복수 개의 클러스터를 생성하는 C 단계, 상기 클러스터 내 포함된 제3 소프트웨어의 악성코드 여부를 식별하는 D 단계 및 제3 소프트웨어에 대한 악성코드 및 정상코드 비중에 따라 상기 클러스터에 속한 미확인 소프트웨어의 악성코드 여부를 식별하는 E 단계를 포함하는 것을 일 특징으로 한다.
또한 본 발명은 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일(제1 소프트웨어)를 수신하는 대상파일 수신 모듈, 적어도 하나의 제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어를 비교하여 유사도를 연산하는 유사도 연산 모듈, 제1 소프트웨어와 제2 소프트웨어를 클러스터링 하여 복수 개의 클러스터를 생성하는 클러스터링 모듈 및 상기 클러스터 내 포함된 소프트웨어의 악성코드 여부를 식별하여, 제3 소프트웨어에 대한 악성코드 및 정상코드 비중에 따라 상기 클러스터에 속한 미확인 소프트웨어의 악성코드 여부를 식별하는 악성코드 식별 모듈을 포함하는 것을 일 특징으로 한다.
전술한 바와 같은 본 발명에 의하면, 기능이 추가된 변종 악성코드를 식별할 수 있도록 기존 악성코드와의 유사도 해시 기반의 비교를 수행하여 악성코드의 종류를 식별할 수 있다.
또한 본 발명은 복수 개의 악성코드를 클러스터링 하여 하나의 클러스터 내에 포함된 악성코드의 식별 비율에 따라 알려지지 않은 악성코드의 종류를 추정하여 악성코드 분석 횟수를 줄일 수 있다.
도 1은 본 발명의 일 실시 예에 의한 유사도 기반의 악성코드 진단 장치의 구성을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 의한 유사도 기반의 악성코드 진단 방법을 설명하기 위한 순서도이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다.
도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다.
본 명세서에서 사용되는 용어는 단지 특정 예시적 실시 예들을 설명할 목적을 가지고 있으며 한정할 의도로 사용되는 것이 아니다. 본 명세서에서 사용된 바와 같은 단수적 표현들은 또한, 해당 문장에서 명확하게 달리 표시하지 않는 한, 복수의 의미를 포함하도록 의도될 수 있다. 용어 "및/또는," "그리고/또는"은 그 관련되어 나열되는 항목들의 모든 조합들 및 어느 하나를 포함한다. 용어 "포함한다", "포함하는", "포함하고 있는", "구비하는", "갖는", "가지고 있는" 등은 내포적 의미를 갖는 바, 이에 따라 이러한 용어들은 그 기재된 특징, 정수, 단계, 동작, 요소, 및/또는 컴포넌트를 특정하며, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹의 존재 혹은 추가를 배제하지 않는다. 본 명세서에서 설명되는 방법의 단계들, 프로세스들, 동작들은, 구체적으로 그 수행 순서가 확정되는 경우가 아니라면, 이들의 수행을 논의된 혹은 예시된 그러한 특정 순서로 반드시 해야 하는 것으로 해석돼서는 안 된다. 추가적인 혹은 대안적인 단계들이 사용될 수 있음을 또한 이해해야 한다.
또한, 각각의 구성요소는 각각 하드웨어 프로세서로 구현될 수 있고, 위 구성요소들이 통합되어 하나의 하드웨어 프로세서로 구현될 수 있으며, 또는 위 구성요소들이 서로 조합되어 복수 개의 하드웨어 프로세서로 구현될 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
기존 악성코드 식별 기술은 악성코드의 해시 값을 기반으로 함에 따라 기존 악성코드에 특정 기능이 추가된 변종 악성코드의 경우 기존 악성코드와 변종 악성코드의 해시 값이 전혀 상이하기 때문에 이를 식별하는 것에 한계가 있다.
따라서 본 발명의 일 실시 예에 의한 악성 코드 진단 장치는 종래 기술의 문제점을 해결하기 위해 유사도 해시 기반의 클러스터링을 수행해 알려지지 않은 악성코드를 식별하고 탐지할 수 있다.
도 1은 본 발명의 일 실시 예에 의한 유사도 기반의 악성코드 진단 장치의 구성을 설명하기 위한 도면이다. 악성코드 진단 장치는 대상파일을 수신하면 데이터베이스에 저장된 악성코드 파일 및 그에 따른 해시 값을 기반으로 대상파일이 악성코드인 지의 여부와 그 진단명을 식별할 수 있다.
도 1을 참조하면, 본 발명의 악성코드 진단 장치는 대상파일 수신 모듈(100), 유사도 연산 모듈(200), 클러스터링 모듈(300), 악성코드 식별 모듈(400), 그리고 데이터베이스(500)로 구성될 수 있다. 악성코드 진단 장치는 적어도 하나의 프로세서를 통해 대상파일 수신 모듈(100), 유사도 연산 모듈(200), 클러스터링 모듈(300), 악성코드 식별 모듈(400), 그리고 데이터베이스(500)의 동작을 처리할 수 있다.
대상파일 수신 모듈(100)은 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일인 제1 소프트웨어를 수신할 수 있다. 본 발명의 일 실시 예에 의한 악성코드 정보 제공 플랫폼은 신고된 악성 소프트웨어를 수집, 분석 및 공유하는 CTI(Cyber Threat Intelligence) 플랫폼일 것이며, 예를 들어 URLHaus 등일 수 있다.
대상파일 수신 모듈(100)은 악성코드 정보 제공 플랫폼에서 악성코드 검사 대상 파일인 제1 소프트웨어를 크롤링하여 제1 소프트웨어의 컨텐츠 및 메타데이터를 수집할 수 있다. 이 때 수신되는 메타데이터는 대상파일 수신 모듈(100)이 악성코드 정보 제공 플랫폼에서 제1 소프트웨어를 수집한 시간, 제1 소프트웨어의 형태, 사이즈, 확장자 등을 포함할 수 있다.
대상파일 수신 모듈(100)은 제1 소프트웨어의 컨텐츠 및 메타데이터를 데이터베이스(600)에 저장할 수 있다.
유사도 연산 모듈(200)은 적어도 하나의 제1 소프트웨어와 데이터베이스(600)에 저장된 악성코드 유무가 식별된 제2 소프트웨어를 비교하여 제1 소프트웨어의 종류를 식별할 수 있다.
이 과정에서 별도의 알고리즘 없이 제1 소프트웨어와 제2 소프트웨어 자체를 비교하는 경우 리소스가 많이 소모되어, 본 발명의 일 실시 예에 의한 악성코드 진단 장치는 유사도 해시 알고리즘을 통해 제1 소프트웨어와 제2 소프트웨어를 비교할 것이다.
유사도 해시(similarity hash, Locality Sensitive Hash) 알고리즘은 TLSH 알고리즘과 같이 기존의 해시 알고리즘과는 다르게 데이터의 컨텐츠를 기반으로 해시 값을 생성하는 것으로, 두 유사 데이터를 입력 데이터로 하는 경우 결과 값이 유사하게 생성되기 때문에 해시 값을 이용하여 두 데이터의 유사성을 판단할 수 있다.
유사도 연산 모듈(200)은 제1 소프트웨어에 유사도 해시 알고리즘을 적용하여 제1 해시 값을 연산할 수 있다. 유사도 연산 모듈(200)은 제1 해시 값을 데이터베이스(600)의 제1 소프트웨어와 관련된 섹션에 저장할 것이다.
유사도 연산 모듈(600)은 제1 소프트웨어의 제1 해시 값과 데이터베이스(600)에 저장된 제2 소프트웨어의 제2 해시 값의 차이가 기 설정된 임계 값 이하이면 제1 소프트웨어와 제2 소프트웨어가 유사하다고 판단할 수 있다.
본 발명의 일 실시 예에 의한 유사도 연산 모듈(600)은 제1 해시 값과 제2 해시 값의 차이를 연산함에 있어서 해밍 거리를 이용할 수 있으며, 해밍 거리 외 기존에 사용되는 다른 유사도 연산 방법을 채용할 수도 있다.
해밍 거리는 같은 길이의 두 문자열에서 같은 위치에 위치한 두 문자가 다른 것의 개수를 나타내는 것으로, 두 문자열에서 같은 위치에 위치한 두 문자가 3개가 다르면 해밍 거리는 3일 것이다.
예를 들어, 제1 해시 값이 bacc82b32fe8b8b45c9225f129196913이고 제2 해시 값이 bacc82b32fe8b8b45c9225f129196943이면 유사도 연산 모듈(200)은 제1 해시 값과 제2 해시 값 사이의 해밍 거리를 1로 판단할 수 있다.
유사도 연산 모듈(200)은 해밍 거리를 기반으로 제1 소프트웨어 및 제2 소프트웨어 사이의 유사도를 연산함에 있어서 해밍 거리가 적은 수치를 가질 수록 제1 소프트웨어와 제2 소프트웨어의 유사성이 높다고 판단할 것이다.
본 발명의 일 실시 예에 의한 악성코드 진단 장치는 제1 악성코드 파일의 제1 해시 값과 제2 악성코드 파일의 제2 해시 값 사이의 해밍 거리, 즉 상대적인 유사도 수치만을 알고 있기 때문에, 클러스터링을 수행하여 유사한 소프트웨어끼리 그룹핑 할 필요가 있다. 이에 따라 클러스터링 모듈(300)은 제1 소프트웨어와 제2 소프트웨어의 해밍 거리를 기반으로 제1 소프트웨어 및 제2 소프트웨어를 적어도 하나의 클러스터로 그룹핑 할 수 있다.
클러스터링 모듈(300)은 병합 계층 클러스터링(Agglomerative hierarchical clustering)을 기반으로 제1 소프트웨어와 제2 소프트웨어를 클러스터링 할 것이다. 클러스터링 모듈(300)을 통해 생성된 클러스터는 적어도 하나의 제3 소프트웨어를 포함할 것이다
클러스터링은 비지도 학습의 일종으로, 데이터의 특성을 기반으로 데이터 집단을 정의하고 데이터를 데이터 집단에 따라 나누는 것이며 이 중 병합 계층 클러스터링은 반복적으로 두 개의 가까운 클러스터를 찾아 병합하는 것을 의미한다.
클러스터링 과정을 구체적으로 설명하면, 클러스터링 모듈(300)은 일 소프트웨어(제1 소프트웨어 또는 제2 소프트웨어) 각각이 하나씩 포함되도록 클러스터를 설정할 수 있다. 예를 들어 클러스터링 모듈(300)은 n개의 제1 소프트웨어와 m개의 제2 소프트웨어가, 즉 소프트웨어가 n+m개 존재하면 n+m개의 클러스터를 생성할 것이다.
클러스터링 모듈(300)은 제3 소프트웨어가 포함된 클러스터 간의 해밍 거리를 기반으로 클러스터를 병합할 수 있다. 클러스터링 과정이 반복될수록 일 클러스터에 포함되는 제3 소프트웨어의 수가 많아지는데, 이 때 클러스터링 모듈(300)은 두 클러스터에 포함된 모든 제3 소프트웨어 사이의 해밍 거리를 연산하고, 연산된 해밍 거리의 최솟값이 제1 임계 값 이하이면 두 클러스터를 병합할 수 있다. 클러스터링 모듈(300)은 클러스터링을 병합하는 기준에 있어서 최솟값 뿐 아니라 두 클러스터에 포함된 모든 제3 소프트웨어 간의 해밍 거리에 대한 평균 값, 최댓값 등을 이용할 수도 있다.
클러스터링 모듈(300)은 복수 개의 클러스터에 포함된 제3 소프트웨어의 해시 값에 대한 해밍 거리가 가장 적은 두 클러스터를 식별한 후, 두 클러스터를 하나의 클러스터로 병합할 수 있다. 예를 들어 클러스터링 모듈(300)은 7개의 클러스터에 대한 해밍 거리가 1, 3, 2, 7, 14, 39이면 해밍 거리가 1인 두 클러스터를 하나의 클러스터로 병합할 수 있다.
클러스터링 모듈(300)은 두 클러스터 사이의 해밍 거리가 기 설정된 제1 임계 값 이하일 때만 클러스터를 병합할 수 있다. 구체적으로 설명하면 제1 임계 값이 10일 경우 상기 예시에서 클러스터링 모듈(300)은 해밍 거리가 1, 3, 2, 7인 클러스터만을 병합할 것이다.
클러스터링 모듈(300)은 병합된 클러스터의 수가 기 설정된 제2 임계 값에 도달할 때까지 상기 클러스터 병합 과정을 수행할 것이다.
악성코드 식별 모듈(400)은 복수 개의 클러스터에 대한 악성코드 여부를 식별할 수 있다. 악성코드 식별 모듈(400)은 클러스터에 대한 악성코드 여부를 식별하기 위하여 클러스터 내 포함된 제3 소프트웨어가 제1 타입 내지 제3 타입 중 어디에 속하는 지 먼저 파악할 것이다.
본 발명의 일 실시 예에 의한 악성코드 진단 장치는 소프트웨어의 악성코드 여부를 세 가지 타입으로 구분할 수 있는데, 악성코드로 진단된 소프트웨어가 포함된 제1 타입, 정상파일로 진단된 소프트웨어가 포함된 제2 타입, 알려지지 않은 미확인 소프트웨어가 포함된 제3 타입이다.
악성코드 식별 모듈(400)은 제3 소프트웨어의 타입을 식별하기 위하여 악성코드 진단 서비스를 이용할 수 있다. 악성코드 식별 모듈(400)은 구글의 자회사로 최대 70가지 이상의 바이러스 백신 소프트웨어를 기반으로 악성코드를 진단하는 사이트인 바이러스 토탈을 활용하여 제3 소프트웨어의 타입을 식별할 수 있다.
악성코드 식별 모듈(400)은 제3 소프트웨어의 해시 값을 바이러스 토탈에 검색하여 검색 결과를 크롤링할 수 있다. 악성코드 식별 모듈(400)은 제3 소프트웨어가 제1 타입에 속한다는 검색 결과를 수신하면, 해당 제3 소프트웨어에 대응하는 악성코드에 대한 진단명을 더 수신할 수 있다.
바이러스 토탈은 악성코드 파일의 진단명 포맷이 서로 상이하게 설정된 복수 개의 바이러스 백신 소프트웨어에 제3 소프트웨어가 제1 타입 내지 제3 타입 중 어디에 속하는 지를 각기 검색하기 때문에, 제3 소프트웨어가 제1 타입에 속할 경우 추출된 적어도 하나의 진단명을 대표 진단명으로 변환하는 과정이 필요하다. 본 발명의 일 실시 예에 의한 악성코드 식별 모듈(400)은 AVClass를 기반으로 동일 악성코드에 대한 서로 다른 진단명을 하나의 진단명으로 변환할 수 있다.
예를 들어 동일 악성코드 파일에 대하여 백신 소프트웨어 A는 Trojan-w32/autoRun.46526.B라고 명명하고 있고, 백신 소프트웨어 B는 Trojan-k32/autoRun.13.B라고 명명할 수 있다. 따라서 악성코드 식별 모듈(400)은 제3 소프트웨어가 제1 타입에 속하는 경우에, 함께 수신되는 진단명을 통합할 수 있다.
악성코드 식별 모듈(400)은 제3 소프트웨어가 제1 내지 제3 타입 중 어디에 속하는 지에 대한 정보를 데이터베이스(500)에 저장할 수 있다. 제3 소프트웨어가 제1 타입에 속하는 경우, 악성코드 식별 모듈(400)은 제1 타입에 속하는 제3 소프트웨어의 진단명을 데이터베이스에 더 저장할 수 있다.
악성코드 식별 모듈(400)은 클러스터 내 포함된 적어도 하나의 제3 소프트웨어가 제1 타입 내지 제3 타입에 속하는 비중에 따라 클러스터가 악성코드의 집단인 지의 여부를 판단할 수 있다.
구체적으로 악성코드 식별 모듈(400)은 클러스터 내 제1 타입인 제3 소프트웨어의 비중이 기 설정된 제1 비중 임계 값 이상이면 클러스터 내 제3 타입의 제3 소프트웨어가 제1 타입에 속하는 것으로 판단할 것이며, 클러스터 내 제2 타입인 제3 소프트웨어의 비중이 정상파일의 비중이 기 설정된 제1 비중 임계 값 이상이면 클러스터 내 제3 타입의 제3 소프트웨어가 제2 타입에 속하는 것으로 판단할 것이다.
이러한 과정을 통해 본 발명의 일 실시 예에 의한 악성코드 진단 장치는 클러스터 내 제3 타입의 제3 소프트웨어 대해 별도의 검사 과정 없이 악성 여부를 판단하고 진단명을 식별할 수 있게 된다.
본 발명의 또 다른 실시 예에 의하면, 악성코드 식별 모듈(400)은 일 클러스터 내 속한 소프트웨어 중 제1 타입 및 제2 타입에 속하는 제3 소프트웨어의 비중이 제2 비중 임계 값(20%) 미만일 경우, 정보가 충분하지 않아 판단이 어렵다고 판단하여 제3 소프트웨어를 악성코드 분석 우선순위 리스트에 추가할 수 있다.
한편 악성코드 식별 모듈(400)은 제3 소프트웨어의 제1 내지 제3 타입에 대한 비중에 따라 제1 타입 또는 제2 타입으로 설정된, 기존의 제3 타입의 제3 소프트웨어에 대한 악성코드 여부를 더 검증할 수 있는데, 이는 종래의 기술을 따른다.
도 2는 본 발명의 일 실시 예에 의한 유사도 기반의 악성코드 진단 방법을 나타낸 순서도이다. 이하에서는 도 2를 참조하여 악성코드 진단 방법을 설명한다. 악성코드 진단 방법에 대한 설명에 있어서, 앞서 설명한 악성코드 진단 장치와 중복되는 세부 실시 예는 생략될 수 있다.
악성코드 진단 장치(이하, 전자 장치)는 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일인 제1 소프트웨어를 수신(S110)할 수 있다. 본 발명의 일 실시 예에 의한 악성코드 정보 제공 플랫폼은 신고된 악성 소프트웨어를 수집, 분석 및 공유하는 CTI(Cyber Threat Intelligence) 플랫폼일 것이다.
전자 장치는 악성코드 정보 제공 플랫폼에서 악성코드 검사 대상 파일인 제1 소프트웨어를 크롤링하여 제1 소프트웨어의 컨텐츠 및 메타데이터를 수집할 수 있다. 이 때 수신되는 메타데이터는 악성코드 정보 제공 플랫폼에서 제1 소프트웨어를 수집한 시간, 제1 소프트웨어의 형태, 사이즈, 확장자 등을 포함할 수 있다. 전자 장치는 제1 소프트웨어의 컨텐츠 및 메타데이터를 데이터베이스에 저장할 수 있다.
전자 장치는 적어도 하나의 제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어의 비교를 통해 유사도를 연산(S120)할 수 있다. 본 발명의 일 실시 예에 의한 전자 장치는 유사도 해시 알고리즘을 통해 제1 소프트웨어와 제2 소프트웨어를 비교할 것이다. 전자 장치는 제1 소프트웨어에 유사도 해시 알고리즘을 적용하여 제1 해시 값을 연산할 수 있다. 전자 장치는 제1 해시 값을 데이터베이스의 제1 소프트웨어와 관련된 섹션에 저장할 것이다.
단계 120을 구체적으로 설명하면, 전자 장치는 제1 소프트웨어의 제1 해시 값과 데이터베이스에 저장된 제2 소프트웨어의 제2 해시 값의 차이가 기 설정된 임계 값 이하이면 제1 소프트웨어와 제2 소프트웨어가 유사하다고 판단할 수 있다.
본 발명의 일 실시 예에 의한 전자 장치는 제1 해시 값과 제2 해시 값의 차이를 연산함에 있어서 해밍 거리를 이용할 수 있으며, 해밍 거리 외 기존에 사용되는 다른 유사도 연산 방법을 채용할 수도 있다.
전자 장치는 해밍 거리를 기반으로 제1 소프트웨어 및 제2 소프트웨어 사이의 유사도를 연산함에 있어서 해밍 거리가 적은 수치를 가질 수록 제1 소프트웨어와 제2 소프트웨어의 유사성이 높다고 판단할 것이다.
본 발명의 일 실시 예에 의한 전자 장치는 제1 악성코드 파일의 제1 해시 값과 제2 악성코드 파일의 제2 해시 값 사이의 해밍 거리, 즉 상대적인 유사도 수치만을 알고 있기 때문에, 클러스터링을 수행하여 유사한 소프트웨어끼리 그룹핑 할 필요가 있다. 이에 따라 전자 장치는 제1 소프트웨어와 제2 소프트웨어의 해밍 거리를 기반으로 제1 소프트웨어 및 제2 소프트웨어를 적어도 하나의 클러스터로 그룹핑(S130) 할 수 있다.
전자 장치는 병합 계층 클러스터링(Agglomerative hierarchicla clustering)을 기반으로 제1 소프트웨어와 제2 소프트웨어를 클러스터링 하여, 일 클러스터는 적어도 하나의 제3 소프트웨어를 포함할 것이다.
단계 130을 구체적으로 설명하면 전자 장치는 일 소프트웨어 각각이 하나씩 포함되도록 클러스터를 설정할 수 있다. 이 후 전자 장치는 일 소프트웨어가 포함된 클러스터 간의 해밍 거리를 기반으로 클러스터를 병합할 수 있다. 클러스터링 과정이 반복될수록 일 클러스터에 포함되는 소프트웨어의 수가 많아짐에 따라 전자 장치는 두 클러스터에 포함된 모든 소프트웨어 간의 해밍 거리를 연산하고, 연산된 해밍 거리의 최솟값이 제1 임계 값 이하이면 두 클러스터를 병합할 수 있다.
즉, 전자 장치는 복수 개의 클러스터에 포함된 소프트웨어의 해시 값에 대한 해밍 거리가 가장 적은 두 클러스터를 식별한 후, 해밍 거리가 제1 임계 값 이하이면 두 클러스터를 하나의 클러스터로 병합할 수 있다. 전자 장치는 병합된 클러스터의 수가 제2 임계 값에 도달할 때까지 상기 과정을 반복할 것이다.
전자 장치는 단계 130에서 생성된 복수 개의 클러스터에 대한 악성코드 여부를 식별할 수 있다. 본 발명의 일 실시 예에 의한 전자 장치는 소프트웨어의 악성코드 여부를 세 가지 타입으로 구분할 수 있는데, 악성코드로 진단된 소프트웨어가 포함된 제1 타입, 정상파일로 진단된 소프트웨어가 포함된 제2 타입, 알려지지 않은 미확인 소프트웨어가 포함된 제3 타입이다.
전자 장치는 클러스터 내 포함된 소프트웨어가 제1 타입 내지 제3 타입 중 어디에 속하는 지 식별하기 위하여 악성코드 진단 서비스를 이용할 수 있다. 전자 장치는 구글의 자회사로 최대 70가지 이상의 바이러스 백신 소프트웨어를 기반으로 악성코드를 진단하는 사이트인 바이러스 토탈을 활용하여 소프트웨어의 타입을 식별할 수 있다.
전자 장치는 클러스터 내 포함된 소프트웨어의 해시 값을 바이러스 토탈에 검색하여 검색 결과를 크롤링할 수 있다. 전자 장치는 크롤링 결과 소프트웨어가 제1 타입에 속하면, 해당 소프트웨어에 대응하는 악성코드에 대한 진단명을 더 수신할 수 있다.
또한 바이러스 토탈은 복수 개의 바이러스 백신 소프트웨어에 소프트웨어를 검색하기 때문에 각 바이러스 백신 소프트웨어에서 각기 상이하게 정의한 악성코드 파일의 진단명 포맷을 통일시킬 필요가 있다. 따라서 전자 장치는 소프트웨어가 제1 타입에 속하는 경우 함께 수신되는 진단명을 통합할 수 있다. 전자 장치는 진단명 통합에 있어서 AVClass를 이용할 수 있다.
전자 장치는 소프트웨어의 타입을 데이터베이스에 저장할 수 있는데, 만약 소프트웨어가 제1 타입에 속하면 그 진단명에 대한 정보 또한 데이터베이스에 저장할 것이다.
전자 장치는 클러스터 내 포함된 제3 소프트웨어가 제1 타입 내지 제3 타입에 속하는 비중에 따라 클러스터가 악성코드의 집단인 지의 여부를 판단(S140)할 수 있다.
구체적으로 전자 장치는 클러스터 내 제1 타입인 소프트웨어의 비중이 기 설정된 제1 비중 임계 값 이상이면 클러스터 내 제3 타입의 제3 소프트웨어가 제1 타입에 속하는 것으로 판단할 것이며, 클러스터 내 제2 타입인 소프트웨어의 비중이 정상파일의 비중이 기 설정된 제1 비중 임계 값 이상이면 클러스터 내 제3 타입의 제3 소프트웨어가 제2 타입에 속하는 것으로 판단할 것이다. 이러한 과정을 통해 본 발명의 일 실시 예에 의한 전자 장치는 클러스터 내 제3 타입의 소프트웨어 대해 별도의 검사 과정 없이 악성 여부를 판단하고 진단명을 식별할 수 있게 된다.
본 발명의 또 다른 실시 예에 의하면, 전자 장치는 일 클러스터 내 속한 소프트웨어 중 제1 타입 및 제2 타입에 속하는 제3 소프트웨어의 비중이 제2 비중 임계 값(예를 들어 20%) 미만일 경우, 정보가 충분하지 않아 판단이 어렵다고 판단하여 제3 소프트웨어를 악성코드 분석 우선순위 리스트에 추가할 수 있다.
한편 전자 장치는 클러스터 내 소프트웨어의 제1 내지 제3 타입에 대한 비중에 따라 제1 타입 또는 제2 타입으로 설정된, 기존의 제3 타입의 소프트웨어에 대한 악성코드 여부를 더 검증할 수 있는데, 이는 종래의 기술을 따른다.
본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (9)

  1. 전자 장치가 유사도 기반으로 악성코드를 진단하는 방법에 있어서,
    악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일(제1 소프트웨어)를 수신하는 A 단계;
    제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어의 유사도를 연산하는 B 단계;
    제1 소프트웨어 및 제2 소프트웨어를 클러스터링하여 복수 개의 클러스터를 생성하는 C 단계;
    상기 클러스터 내 포함된 적어도 하나의 제3 소프트웨어의 악성코드 여부를 식별하는 D 단계; 및
    악성코드 혹은 정상파일로 진단된 제3 소프트웨어의 비중과 임계 값의 비교를 통해 상기 클러스터에 속한 미확인된 제3 소프트웨어의 악성코드 여부를 식별하는 E 단계를 포함하는 악성코드 진단 방법.
  2. 제1항에 있어서,
    상기 악성코드 정보 제공 플랫폼은 신고된 악성코드를 수집, 분석 및 공유하는 CTI 플랫폼인 것을 특징으로 하는 악성코드 진단 방법.
  3. 제2항에 있어서, 상기 A 단계는,
    상기 악성코드 정보 제공 플랫폼에서 제1 소프트웨어를 크롤링하여 제1 소프트웨어의 컨텐츠 및 메타데이터를 수집하는 단계;
    수집된 제1 소프트웨어의 컨텐츠 및 메타데이터를 데이터베이스에 저장하는 단계를 포함하는 악성코드 진단 방법.
  4. 제1항에 있어서, 상기 B 단계는,
    제1 소프트웨어에 유사도 해시 알고리즘을 적용하여 제1 해시 값을 연산하는 단계;
    제1 해시 값과 제2 소프트웨어의 제2 해시 값의 차이가 기 설정된 임계 값 이하이면 제1 소프트웨어와 제2 소프트웨어가 유사하다고 판단하는 단계를 포함하되, 제2 해시 값은 상기 데이터베이스에 저장되어 있는 악성코드 진단 방법.
  5. 제4항에 있어서,
    제1 해시 값과 제2 해시 값의 차이는 제1 해시 값과 제2 해시 값의 해밍 거리를 기반으로 하는 악성코드 진단 방법.
  6. 제1항에 있어서, 상기 C 단계는,
    병합 계층 클러스터링을 기반으로 제1 소프트웨어 및 제2 소프트웨어를 클러스터링 하는 악성코드 진단 방법.
  7. 제1항에 있어서, 상기 D 단계는,
    제3 소프트웨어는 악성코드로 진단된 소프트웨어를 포함하는 제1 타입, 정상파일로 진단된 소프트웨어를 포함하는 제2 타입, 상기 미확인 소프트웨어를 포함하는 제3 타입으로 구분 가능하여,
    악성코드 진단 서비스를 기반으로 제3 소프트웨어가 제1 내지 제3 타입 중 어느 곳에 속하는 지 식별하는 단계; 및
    제3 소프트웨어가 제1 타입에 속하는 경우 상기 악성코드 진단 서비스로부터 진단명을 더 수신하는 단계를 포함하는 악성코드 진단 방법.
  8. 제7항에 있어서, 상기 E 단계는,
    제3 소프트웨어에 대한 악성코드 비중이 기 설정된 제1 비중 임계 값 이상이면 상기 클러스터 내 포함된 제3 타입의 제3 소프트웨어를 제1 타입으로 설정하고 상기 진단명을 부여하는 단계를 더 포함하는 악성코드 진단 방법.
  9. 악성코드 정보 제공 플랫폼에서 적어도 하나의 악성코드 검사 대상 파일(제1 소프트웨어)를 수신하는 대상파일 수신 모듈;
    적어도 하나의 제1 소프트웨어와 데이터베이스에 저장된 악성코드 유무가 식별된 제2 소프트웨어를 비교하여 유사도를 연산하는 유사도 연산 모듈;
    제1 소프트웨어와 제2 소프트웨어를 클러스터링 하여 복수 개의 클러스터를 생성하는 클러스터링 모듈; 및
    상기 클러스터 내 포함된 적어도 하나의 제3 소프트웨어의 악성코드 여부를 식별하여, 악성코드 혹은 정상파일로 진단된 제3 소프트웨어의 비중과 임계 값의 비교를 통해 상기 클러스터에 속한 미확인된 제3 소프트웨어의 악성코드 여부를 식별하는 악성코드 식별 모듈을 포함하는 악성코드 진단 장치.
KR1020210016426A 2021-02-05 2021-02-05 유사도 기반의 악성코드 진단 방법 및 장치 KR102318991B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210016426A KR102318991B1 (ko) 2021-02-05 2021-02-05 유사도 기반의 악성코드 진단 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210016426A KR102318991B1 (ko) 2021-02-05 2021-02-05 유사도 기반의 악성코드 진단 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102318991B1 true KR102318991B1 (ko) 2021-10-29

Family

ID=78231185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210016426A KR102318991B1 (ko) 2021-02-05 2021-02-05 유사도 기반의 악성코드 진단 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102318991B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102437376B1 (ko) * 2022-02-09 2022-08-30 주식회사 샌즈랩 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102596046B1 (ko) * 2022-12-05 2023-10-31 주식회사 에스투더블유 악성 서버 탐지 방법 및 이를 수행하기 위한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090055669A (ko) * 2007-11-29 2009-06-03 한국전자통신연구원 악성코드 탐지장치 및 방법
KR20120071817A (ko) * 2010-12-23 2012-07-03 한국인터넷진흥원 악성코드 dna 및 메타데이터 자동 관리 시스템
KR101930293B1 (ko) * 2017-09-12 2018-12-18 연세대학교 산학협력단 정적 분석과 동적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법
KR102185831B1 (ko) * 2019-07-25 2020-12-03 호서대학교 산학협력단 디해시 기반 악성코드 분석 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090055669A (ko) * 2007-11-29 2009-06-03 한국전자통신연구원 악성코드 탐지장치 및 방법
KR20120071817A (ko) * 2010-12-23 2012-07-03 한국인터넷진흥원 악성코드 dna 및 메타데이터 자동 관리 시스템
KR101930293B1 (ko) * 2017-09-12 2018-12-18 연세대학교 산학협력단 정적 분석과 동적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법
KR102185831B1 (ko) * 2019-07-25 2020-12-03 호서대학교 산학협력단 디해시 기반 악성코드 분석 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102437376B1 (ko) * 2022-02-09 2022-08-30 주식회사 샌즈랩 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102596046B1 (ko) * 2022-12-05 2023-10-31 주식회사 에스투더블유 악성 서버 탐지 방법 및 이를 수행하기 위한 장치

Similar Documents

Publication Publication Date Title
US10891378B2 (en) Automated malware signature generation
US20210256127A1 (en) System and method for automated machine-learning, zero-day malware detection
US10162967B1 (en) Methods and systems for identifying legitimate computer files
Fan et al. Malicious sequential pattern mining for automatic malware detection
US8955133B2 (en) Applying antimalware logic without revealing the antimalware logic to adversaries
US9747452B2 (en) Method of generating in-kernel hook point candidates to detect rootkits and the system thereof
US7809670B2 (en) Classification of malware using clustering that orders events in accordance with the time of occurance
US9398034B2 (en) Matrix factorization for automated malware detection
US7519998B2 (en) Detection of malicious computer executables
Kim et al. Improvement of malware detection and classification using API call sequence alignment and visualization
KR100942798B1 (ko) 악성코드 탐지장치 및 방법
US8108931B1 (en) Method and apparatus for identifying invariants to detect software tampering
RU2708356C1 (ru) Система и способ двухэтапной классификации файлов
EP3346664B1 (en) Binary search of byte sequences using inverted indices
US20200012784A1 (en) Profile generation device, attack detection device, profile generation method, and profile generation computer program
KR102318991B1 (ko) 유사도 기반의 악성코드 진단 방법 및 장치
CN109670318B (zh) 一种基于核控制流图循环验证的漏洞检测方法
RU2706883C1 (ru) Система и способ снижения количества ложных срабатываний классифицирующих алгоритмов
RU2587429C2 (ru) Система и способ оценки надежности правила категоризации
US10929531B1 (en) Automated scoring of intra-sample sections for malware detection
Gao et al. Adaptive-hmd: Accurate and cost-efficient machine learning-driven malware detection using microarchitectural events
KR20180133726A (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
KR101907681B1 (ko) 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체
US11487876B1 (en) Robust whitelisting of legitimate files using similarity score and suspiciousness score
Darshan et al. An empirical study to estimate the stability of random forest classifier on the hybrid features recommended by filter based feature selection technique

Legal Events

Date Code Title Description
GRNT Written decision to grant