KR102199704B1 - 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102199704B1
KR102199704B1 KR1020200078570A KR20200078570A KR102199704B1 KR 102199704 B1 KR102199704 B1 KR 102199704B1 KR 1020200078570 A KR1020200078570 A KR 1020200078570A KR 20200078570 A KR20200078570 A KR 20200078570A KR 102199704 B1 KR102199704 B1 KR 102199704B1
Authority
KR
South Korea
Prior art keywords
token
detection
graph
tokens
representative
Prior art date
Application number
KR1020200078570A
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 KR1020200078570A priority Critical patent/KR102199704B1/ko
Application granted granted Critical
Publication of KR102199704B1 publication Critical patent/KR102199704B1/ko
Priority to US17/329,769 priority patent/US11232200B2/en

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/562Static detection
    • G06F21/565Static detection by checking file integrity
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing

Abstract

본 발명의 대표 토큰을 선정하기 위한 장치는 악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하는 토큰그래프생성부와, 상기 탐지명 토큰 그래프를 기초로 입력된 파일에 대해 대표 탐지명 토큰을 선정하는 대표토큰선정부를 포함한다.

Description

다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{An apparatus for selecting a representative token from the detection names of multiple vaccines, a method therefor, and a computer recordable medium storing program to perform the method}
본 발명은 대표 토큰을 선정 기술에 관한 것으로, 보다 상세하게는, 악성 파일에 대한 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
어떠한 파일, URL 등에 대하여 악성 여부를 검사하기 위해 하나의 백신 탐지 엔진을 쓸 수 있다. 입력되는 파일이 악성이라고 할 때 만약 이 탐지 엔진이 해당 악성 파일을 탐지할 수 있는 시그니처 등을 가지고 있지 않으면 탐지하지 못할 수 있고, 이는 해당 시스템의 감염으로 이어진다. 이를 방지하기 위해 다중 백신 소프트웨어를 통해 검사하면 미탐지 가능성을 상당히 줄일 수 있다. 이를 이용한 온라인 서비스가 상당 수 존재한다.
기존에 다중 백신을 통하여 입력되는 파일이 정상인지 악성인지 구분만 할 뿐 어떤 종류의 혹은 어떤 명칭의 악성코드인지 정보를 제공하지 않는다. 이를 극복하고자 AVClass 논문 [Sebastiㅱn, Marcos, et al. "Avclass: A tool for massive malware labeling." International Symposium on Research in Attacks, Intrusions, and Defenses. Springer, Cham, 2016.]에서는 서로 다른 백신 탐지명을 일치시키고자 수작업으로 만든 별칭테이블을 사용하고 한 파일을 입력하였을 때 백신 탐지명들에서 공통적으로 나오는 토큰들을 선정하는 아이디어를 제시하였다. 하지만 이는 별칭테이블이 오랫동안 업데이트가 없거나, 탐지명들에서 공통적으로 나오는 토큰이 없을 경우 상당한 성능저하가 발생되는 것을 확인하였다.
한국공개특허 제2019-0024400호 2019년 03월 08일 공개 (명칭: 객체 인식 장치 및 그 제어 방법)
본 발명의 목적은 별칭테이블 없이 복수의 서로 다른 탐지명들 중 상대적으로 더 자주 쓰이는 악성코드 토큰 혹은 명칭을 우선 선정할 수 있는 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 대표 토큰을 선정하기 위한 장치는 악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하는 토큰그래프생성부와, 상기 탐지명 토큰 그래프를 기초로 입력된 파일에 대해 대표 탐지명 토큰을 선정하는 대표토큰선정부를 포함한다.
상기 토큰그래프생성부는 악성파일에 대한 서로 다른 복수의 백신엔진의 복수의 탐지명을 수집하는 탐지명수집부와, 상기 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 생성하는 탐지명토큰화부와, 상기 구분된 복수의 토큰을 기초로 완전 그래프를 생성하는 그래프생성부를 포함한다.
상기 그래프생성부는 상기 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성하는 것을 특징으로 한다.
상기 토큰그래프생성부는 상기 조건부확률에 따라 노드 간의 관계를 도출하고, 도출된 노드 간의 관계가 약하거나 없는 경우, 상기 관계가 약하거나 없는 경우의 노드 간의 에지를 삭제하여 상기 완전 그래프를 축소함으로써 탐지명 토큰 그래프를 생성하는 그래프축약부를 더 포함한다.
상기 대표토큰선정부는 복수의 백신서버로부터 하나의 입력 파일의 서로 다른 복수의 탐지명을 입력받는 탐지명입력부와, 상기 입력 파일의 서로 다른 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 추출하는 탐지명전처리부와, 상기 탐지명 토큰 그래프를 기초로 상기 추출된 복수의 토큰 중 대표 탐지명 토큰을 선정하는 토큰선정부를 포함한다.
상기 토큰선정부는 상기 탐지명 토큰 그래프의 노드의 속성을 기초로 복수의 백신엔진들에서 해당 토큰이 공통으로 사용된 정도를 나타내는 공통지수 및 전체 토큰 중에서 해당 토큰의 비중을 나타내는 비중지수를 산출하고, 공통지수 및 비중지수 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 상기 추출된 복수의 토큰을 정렬하고, 상기 정렬된 순서대로 하나씩 분석 대상 토큰을 지정하고, 상기 탐지명 토큰 그래프로부터 복수의 노드 간의 관계를 참조하여 상기 분석 대상 토큰으로 지정된 토큰의 다음 순서 토큰에 대한 부분 집합의 수가 소정 수치 미만인 토큰이 있으면, 상기 지정된 토큰을 대표 탐지명 토큰으로 선정하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 대표 토큰을 선정하기 위한 방법은 토큰그래프생성부가 악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰의 상호 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하는 단계와, 대표토큰선정부가 상기 탐지명 토큰 그래프를 기초로 입력된 파일에 대해 대표 탐지명 토큰을 선정하는 단계를 포함한다.
상기 탐지명 토큰 그래프를 생성하는 단계는 탐지명수집부가 악성파일에 대한 서로 다른 복수의 백신엔진의 복수의 탐지명을 수집하는 단계와, 탐지명토큰화부가 상기 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 생성하는 단계와, 그래프생성부가 상기 구분된 복수의 토큰을 기초로 완전 그래프를 생성하는 단계를 포함한다.
상기 완전 그래프를 생성하는 단계는 그래프생성부가 상기 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성하는 것을 특징으로 한다.
상기 방법은 상기 완전 그래프를 생성하는 단계 후, 그래프축약부가 상기 조건부확률에 따라 노드 간의 관계를 도출하는 단계와, 상기 그래프축약부가 상기 도출된 노드 간의 관계가 약하거나 없는 경우, 상기 관계가 약하거나 없는 경우의 노드 간의 에지를 삭제하여 상기 완전 그래프를 축소함으로써 탐지명 토큰 그래프를 생성하는 단계를 더 포함한다.
상기 대표 탐지명 토큰을 선정하는 단계는 탐지명입력부가 복수의 백신서버로부터 하나의 입력 파일의 서로 다른 복수의 탐지명을 입력받는 단계와, 탐지명전처리부가 상기 입력 파일의 서로 다른 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 추출하는 탐지명전처리부와, 토큰선정부가 상기 탐지명 토큰 그래프를 기초로 상기 추출된 복수의 토큰 중 대표 탐지명 토큰을 선정하는 단계를 포함한다.
상기 대표 탐지명 토큰을 선정하는 단계는 상기 토큰선정부가 상기 탐지명 토큰 그래프의 토큰의 속성에 기초하여 복수의 백신엔진들에서 해당 토큰이 공통으로 사용된 정도를 나타내는 공통지수 및 전체 토큰 중에서 해당 토큰의 비중을 나타내는 비중지수를 산출하는 단계와, 상기 공통지수 및 상기 비중지수 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 상기 추출된 복수의 토큰을 정렬하는 단계와, 상기 정렬된 순서에 따라 복수의 토큰을 1개씩 분석 대상 토큰으로 지정하는 단계와, 상기 탐지명 토큰 그래프에서 상기 지정된 토큰의 다음 순서 토큰에 대해 부분 집합 관계에 있는 노드의 수를 조회하여 조회된 부분 집합 관계에 있는 노드의 수가 소정 수치 미만이면, 상기 지정된 토큰을 대표 탐지명 토큰으로 선정하는 단계를 포함한다.
본 발명의 다른 견지에 따르면, 본 발명의 실시예에 따른 대표 토큰을 선정하기 위한 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명에 따르면, 토큰 간 부분집합 관계 파악을 통하여 일반적이거나 구체적인 탐지명보다 해당 샘플 군을 잘 나타낼 수 있는 단어를 대표 탐지명 토큰으로 선정할 수 있다 또한, 본 발명은 공통지수를 기초로 백신들 사이에 두루 쓰이는 토큰을 검출하여 광범위하게 사용되는 단어를 대표 탐지명 토큰으로 찾아낼 수 있다. 더욱이, 본 발명은 비중지수를 기초로 샘플들 사이에 많이 쓰이는 토큰을 도출하여 좀 더 악성코드 군을 대표하는 단어를 대표 탐지명 토큰으로 선정할 수 있다.
도 1은 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 장치의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 그래프의 일례를 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 그래프 생성 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 장치의 구성을 설명하기 위한 도면이다. 도 2는 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 그래프의 일례를 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 다중 백신 진단명들 중 대표 토큰을 선정하기 위한 장치(10: 이하, '토큰선정장치'로 축약함)는 토큰그래프생성부(100) 및 대표토큰선정부(200)를 포함한다.
토큰그래프생성부(100)는 악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰의 상호 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하기 위한 것이다. 이를 위하여, 토큰그래프생성부(100)는 탐지명수집부(110), 탐지명토큰화부(120), 그래프생성부(130) 및 그래프축약부(140)를 포함한다.
탐지명수집부(110)는 복수의 악성파일에 대한 복수의 탐지명을 수집하고, 저장할 수 있다. 복수의 백신서버(20)는 서로 다른 백신엔진을 운영하며, 이러한 복수의 백신서버(20)는 서로 다른 백신엔진을 통해 탐지된 복수의 악성파일에 대해 서로 다른 복수의 탐지명을 사용한다.
다음의 표 1은 악성 파일에 대해 서로 다른 백신엔진이 사용하는 탐지명의 예를 보인다.
Figure 112020066286116-pat00001
표 1에 보인 바와 같이, 복수의 서로 다른 백신엔진(예컨대, AlYac, Kaspersky)은 동일한 악성파일(예컨대, File sha256: 0123abcd)에 대해서 서로 다른 탐지명("Backdoor.Remcos.A", "Backdoor.Win32.Remcos.neg")을 가진다. 이에 따라, 탐지명수집부(110)는 복수의 백신서버(20)로부터 복수의 악성파일에 대한 서로 다른 복수의 탐지명을 수집하고, 수집한 복수의 탐지명을 그 악성파일의 파일 정보와 함께 저장한다.
탐지명토큰화부(120)는 탐지명수집부(110)가 수집한 복수의 탐지명 각각을 기 설정된 기준에 따라 토큰화하여 복수의 토큰으로 구분한다. 다음의 표 2는 토큰화에 따라 생성된 토큰의 일례를 보인다.
Figure 112020066286116-pat00002
토큰으로 나누는 기준은 미리 정의되며, 다양한 기준을 설정할 수 있다. 이러한 기준 중 하나는 단어 및 숫자가 될 수 있다. 일례로, 단어 단위로 토큰을 구분하되, 숫자를 포함할 수 있다. 다른 예로, 단어 단위로 토큰을 구분하되, 숫자를 포함하지 않을 수 있다. 또한, 토큰 길이에 대한 기준을 마련할 수 있다. 예컨대, 토큰 길이 최소 기준을 설정하여 너무 짧은 길이의 토큰을 제외할 수 있다.
표 2의 예는 표 1의 탐지명을 토큰화한 것이며, 그 기준을 단어 단위로 토큰을 구분하되, 숫자를 포함하며, 토큰 길이 최소값을 5라고 설정한 경우이다. 이에 따라, 백신엔진 AlYac의 탐지명 [Backdoor.Remcos.A]에서 토큰 {"Backdoor", "Remcos"}가 추출되었으며, A는 토큰 길이 최소값을 만족하지 않아 제외되었다. 그리고 백신엔진 Kaspersky의 탐지명 [Backdoor.Win32.Remcos.neg]에서 토큰 {"Backdoor", "Win32", "Remcos"}가 추출되었다. 토큰 "Win32"의 경우, 단어에 숫자가 포함된 형태이며, neg는 토큰 길이 최소값을 만족하지 않아 제외되었다.
그래프생성부(130)는 탐지명토큰화부(120)가 생성한 복수의 토큰 각각을 노드로 하는 완전 그래프를 생성한다. 완전 그래프의 예를 도 2에 도시하였다. 도시된 바와 같이, 완전 그래프는 복수의 노드(N1, N2, N3, ..., Nn)를 포함하며, 복수의 노드는 에지(E12, E21, E23, E32, E31, E13...)로 연결된다.
완전 그래프에서 노드는 토큰으로 정의된다. 즉, 도 2의 완전 그래프는 n개의 토큰이 n개의 노드(N1, N2, N3, ..., Nn)를 구성한다. 각 노드는 토큰계수(TC: Token count) 및 파일계수(FC: File count)를 포함하는 속성을 가진다. 토큰계수(TC: Token count)는 중복 제거하지 않은 해당 토큰의 수를 나타낸다. 파일계수(FC: File count)는 해당 토큰이 포함된 파일(악성파일)의 수를 나타낸다. 다음의 표 3은 노드의 속성값의 예를 보인다.
Figure 112020066286116-pat00003
공통지수(Co: Common Index)는 노드의 속성인 토큰계수(TC) 및 파일계수(FC)를 기초로 해당 토큰이 백신엔진들 사이에 얼마나 공통적으로 쓰였는지를 나타내는 지수이며, 다음의 수학식 1을 통해 산출될 수 있다.
Figure 112020066286116-pat00004
수학식 1에서 Co는 공통 지수이고, TC는 토큰계수를 나타내며, FC는 파일계수를 나타낸다. 그리고 i는 각 토큰을 나타내는 인덱스이다.
비중지수(Im: Importance Index)는 노드의 속성인 토큰계수(TC)를 기초로 해당 토큰이 얼마나 비중이 높은지를 나타내는 지수이며, 다음의 수학식 2를 통해 산출될 수 있다.
Figure 112020066286116-pat00005
수학식 2에서 Im은 비중 지수이고, TC는 해당 토큰의 토큰계수를 나타내며, "∑TCi"는 전체 토큰의 토큰계수의 합을 나타낸다. 그리고 i는 각 토큰을 나타내는 인덱스이다.
완전 그래프의 모든 노드 각각은 다른 노드에 대한 방향을 가지는 에지가 존재한다. 예컨대, 도 2의 완전 그래프가 제1 노드(N1), 제2 노드(N2) 및 제3 노드(N3)로만 구성되었다고 가정하면, 제1 노드(N1) 및 제2 노드(N2) 상호간을 향하는 에지(E12, E21)와, 제2 노드(N2) 및 제3 노드(N3) 상호간을 향하는 에지(E23, E32)와, 제3 노드(N3) 및 제1 노드(N1) 상호간을 향하는 에지(E31, E13)가 존재한다. 이러한 에지는 조건부확률을 속성으로 가진다. 예컨대, 노드 A 및 B가 존재할 때, 노드 A에서 노드 B 방향으로의 에지(A→B)의 조건부확률 P(B|A)는 다음의 수학식 3에 따라 산출된다.
Figure 112020066286116-pat00006
Figure 112020066286116-pat00007
이와 같이, 그래프생성부(130)는 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성할 수 있다.
그래프축약부(140)는 조건부확률에 따라 노드 간의 관계의 정도에 따라 에지를 삭제하여 완전 그래프를 축약하여 탐지명 토큰 그래프를 완성한다. 예컨대, 조건부확률 허용 오차범위 계수 α가 0.1일 때, 산출된 조건부확률로부터 다음의 표 5와 같은 조건에 따라 노드 간의 관계를 도출한다.
Figure 112020066286116-pat00008
표 4에서 기타는 {P(B|A)>0.9 OR |B)>0.9}, {P(B|A)<0.1 OR P(A|B)<0.1}, {P(B|A)<0.9 OR P(A|B)>0.9}, {P(B|A)>0.9 OR P(A|B)<0.9} 등을 예시할 수 있다. 이러한 경우, 약한 관계라고 한다.
표 4에 보인 바와 같이, 도출된 관계는 '동일 관계', '부분집합 관계', '약한 관계' 및 '관계없음'을 포함한다. 그래프축약부(140)는 관계의 정도가 약하거나 없는('약한 관계' 및 '관계없음') 노드 간의 에지를 삭제하여 완전 그래프를 축약한다. 이와 같이, 관계의 정도가 약하거나 없는 에지를 삭제한 완전 그래프를 탐지명 토큰 그래프라고 칭한다. 특히, 관계의 정도는 조건부확률 허용 오차범위 계수 α가 작을수록 토큰 간 관계가 엄격해져서 보다 축소된 완전 그래프, 즉, 탐지명 토큰 그래프를 생성할 수 있다.
다음의 표 6은 조건부확률 허용 오차범위 계수 α가 0.1일 때, 산출된 조건부확률로부터 표 5와 같은 조건에 따라 노드 간의 관계를 도출한 구체적인 예를 나타낸다.
Figure 112020066286116-pat00009
표 6의 예에 따르면, Backdoor 및 Remcos의 관계는 Remcos가 Backdoor의 부분집합으로 정의되며, Phantom 및 Remcos는 상호 간에 관계가 없는 것을 알 수 있다. 이러한 경우, 그래프축약부(140)는 Phantom 및 Remcos 간의 에지를 삭제한다.
도 2에서 제1 노드(N1)가 토큰 Backdoor이고, 제2 노드(N2)가 토큰 Remcos라고 가정한다. 제1 노드(N1) 및 제2 노드(N2) 사이의 에지(E12, E21) 각각은 조건부확률에 따라 E12=P(Backdoor|Remcos), E21=P(Remcos|Backdoor)와 같이 정의된다. 만약 E12=0.11, E21=0.92이면 토큰 Backdoor는 토큰 Remcos를 포함하는 관계, 즉, 부분집합 관계(Backdoor⊃Remcos)이다.
또한, 제3 노드(N3)가 토큰 Phantom이라고 가정한다. 제2 노드(N2) 및 제3 노드(N2) 사이의 에지(E23, E32) 각각은 조건부확률에 따라 E23=P(Phantom|Remcos), E21=P(Remcos|Phantom)와 같이 정의된다. 만약 E23=0.01, E32=0.07이면 Backdoor와 Remcos는 상호 간에 관계없음을 알 수 있다. 이에 따라, 제2 노드(N2) 및 제3 노드(N2) 사이의 에지(E23, E32)는 삭제된다.
대표토큰선정부(200)는 대상 파일의 복수의 탐지명이 입력되면, 토큰그래프생성부(100)가 생성한 탐지명 토큰 그래프를 기초로 입력된 파일의 복수의 탐지명에 대해 대표 탐지명 토큰을 선정한다. 이를 위하여, 대표토큰선정부(200)는 탐지명입력부(210), 탐지명전처리부(220) 및 토큰선정부(230)를 포함한다.
탐지명입력부(210)는 어느 하나의 파일에 대한 복수의 탐지명을 입력받기 위한 것이다. 탐지명입력부(210)는 복수의 백신서버(20)로부터 하나의 입력 파일에 대한 서로 다른 복수의 탐지명을 입력받는다. 탐지명입력부(210)는 입력된 복수의 탐지명을 그 악성파일의 파일 정보와 함께 저장할 수 있다.
탐지명전처리부(220)는 탐지명입력부(210)가 입력 받은 입력 파일에 대한 복수의 탐지명 각각을 탐지명토큰화부(120)의 기준과 동일한 기준에 따라 토큰화하여 복수의 토큰을 추출한다. 이러한 토큰화는 탐지명토큰화부(120)와 동일하게 이루어진다.
토큰선정부(230)는 토큰그래프생성부(100)가 생성한 탐지명 토큰 그래프를 기초로 탐지명전처리부(220)가 추출한 복수의 토큰 중 대표 탐지명 토큰을 선정한다. 토큰선정부(230)는 다음과 같은 정책에 따라 대표 탐지명 토큰을 선정한다.
첫째, 복수의 백신엔진에서 공통으로 쓰이는 토큰이 우선 선정되도록 가중치를 부여한다. 이는 여러 백신에서 공통적으로 쓰일수록 대중적인 토큰인 것을 의미하기 때문이다. 둘째, 해당 토큰이 전체 토큰 중에서 비중이 크다면 우선 선정되도록 가중치를 준다. 이는 토큰의 비중이 클수록 악성코드 군을 대표하는 토큰이라는 것을 의미하기 때문이다. 셋째, 부분 집합 개수 제한을 통해 두루 쓰이는 토큰이 선정되지 않도록 한다. 예컨대, Backdoor는 Remcos와 Phantom 둘 다 포함하는 관계이다. Backdoor는 그 이외에도 많은 토큰과 함께 탐지명에 묶이기 때문에 부분 집합의 수가 클 수밖에 없다.
전술한 바와 같은 3가지 정책을 적용하기 위하여, 토큰선정부(230)는 우선, 탐지명전처리부(220)가 추출한 복수의 토큰 각각에 대해 토큰그래프생성부(100)가 생성한 탐지명 토큰 그래프로부터 공통지수(Co) 및 비중지수(Im)를 산출한다. 그리고 토큰선정부(230)는 공통지수(Co) 및 비중지수(Im) 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 추출된 복수의 토큰을 정렬한다.
일 실시예에 따르면, 토큰선정부(230)는 공통지수(Co)를 선순위 기준 지수로 선택하고, 비중지수(Im)를 후순위 기준 지수로 선택한다. 그런 다음, 토큰선정부(230)는 복수의 토큰을 선순위 기준 지수인 공통지수(Co)가 높은 순으로 정렬한다. 즉, 토큰선정부(230)는 공통지수(Co)의 내림차순으로 정렬한다. 그러면, 공통지수(Co)가 높은 순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰이 존재할 수 있다. 이러한 경우, 토큰선정부(230)는 공통지수(Co)가 높은 순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰을 후순위 기준 지수인 비중지수(Im)가 높은 순으로 정렬한다. 즉, 토큰선정부(230)는 공통지수(Co)의 내림차순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰을 비중지수(Im)의 내림차순으로 정렬한다.
다른 실시예에 따르면, 토큰선정부(230)는 공통지수(Co) 및 비중지수(Im) 중 어느 하나의 지수를 기준 지수로 선택하고, 선택된 기준 지수가 높은 순서에 따라 복수의 토큰을 정렬할 수 있다.
또 다른 실시예에 따르면, 토큰선정부(230)는 공통지수(Co) 및 비중지수(Im)의 합을 기준 지수로 선택하고, 선택된 기준 지수가 높은 순서에 따라 복수의 토큰을 정렬할 수 있다.
그런 다음, 토큰선정부(230)는 복수의 토큰이 정렬된 순서대로 하나씩 분석 대상 토큰을 지정한다. 이어서, 토큰선정부(230)는 탐지명 토큰 그래프로부터 복수의 노드 간의 관계를 참조하여 분석 대상 토큰으로 지정된 토큰의 다음 순서 토큰에 대한 부분 집합(부분 집합 관계)의 수가 소정 수치 미만인 토큰이 있으면, 현재 분석 대상 토큰으로 지정된 토큰을 대표 탐지명 토큰으로 선정한다. 결국, 토큰선정부(230)는 다음 순서 토큰에 대한 부분 집합의 수가 소정 수치 미만인 토큰 중 기준으로 선정된 공통지수(Co) 및 비중지수(Im) 중 적어도 하나의 지수가 가장 높은 토큰을 대표 탐지명 토큰으로 선정한다.
이와 같이, 본 발명에 따르면 다중 백신에서 정상 혹은 악성 진단뿐만 아니라 어떤 종류의 악성코드인지를 한 단어, 즉, 대표 탐지명 토큰으로 나타낼 수 있다. 예를 들어 너무 일반적이지 않은 이름(e.g. Trojan, Backdoor)이나 너무 구체적인 코드명(e.g. AABAEE) 대신 Remcos 처럼 대중적으로 쓰이는 이름이 선정될 수 있다. 이는 악성코드 탐지 머신러닝의 첫 단계인 데이터 라벨링에서 사용될 수 있다. 악성코드의 종류를 머신러닝으로 분류하고 싶을 때 백신엔진의 진단명과 유사 샘플을 찾는 방법(e.g. SSDeep, imphash 등)을 이용하거나 혹은 수동 분석을 통하여 악성코드 마다 하나씩 라벨을 부여하는 수작업이 필요하다. 하지만 해당 장치를 이용하면 라벨링 전 과정을 자동으로 처리할 수 있다. 새로운 진단명을 가지는 새로운 악성코드가 등장하더라도 토큰 그래프를 갱신하기만 하면 수작업 없이 새로운 라벨로 자동 라벨링이 가능하다.
또한 다중 백신에서 나오는 탐지명들을 한 단어, 즉, 토큰으로 요약하여 사용자 혹은 보고서에 나타낼 수 있다. 기존 솔루션들은 모든 백신엔진에서 나오는 탐지명을 열거하지만, 한 단어로 축약하여 나타냄으로써 가시성을 높일 수 있다. 뿐만 아니라 포털사이트와 연계하여 악성코드에 대한 키워드 검색을 통해 관련 보고서 및 기사를 연동하여 보고서의 수준을 높일 수 있다.
다음으로, 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법에 대해서 설명하기로 한다. 대표 토큰을 선정하기 위해 탐지명 토큰 그래프가 요구된다. 따라서 탐지명 토큰 그래프를 생성하는 방법에 대해서 먼저 설명한다. 도 3은 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 그래프 생성 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 토큰그래프생성부(100)의 탐지명수집부(110)는 S110 단계에서 복수의 백신서버(20)로부터 복수의 악성파일에 대한 서로 다른 복수의 탐지명을 수집한다. 복수의 백신서버(20)는 서로 다른 복수의 백신엔진을 포함하며, 복수의 서로 다른 백신엔진(예컨대, AlYac, Kaspersky)은 동일한 악성파일(예컨대, File sha256: 0123abcd)에 대해서 서로 다른 탐지명("Backdoor.Remcos.A", "Backdoor.Win32.Remcos.neg")을 가진다.
다음으로, 토큰그래프생성부(100)의 탐지명토큰화부(120)는 S120 단계에서 표 2에 보인 바와 같이, 앞서 탐지명수집부(110)가 수집한 복수의 탐지명 각각을 기 설정된 기준에 따라 토큰화하여 복수의 토큰으로 구분한다. 토큰으로 나누는 기준은 미리 설정될 수 있다. 예컨대, 그 기준을 단어 단위로 토큰을 구분하되, 숫자를 포함하며, 토큰 길이 최소값을 5라고 설정한 경우, 백신엔진 AlYac의 탐지명 [Backdoor.Remcos.A]로부터 2개의 토큰 {"Backdoor", "Remcos"}가 추출되었으며, A는 토큰 길이 최소값을 만족하지 않아 제외한다.
다음으로, 토큰그래프생성부(100)의 그래프생성부(130)는 S130 단계에서 탐지명토큰화부(120)가 생성한 복수의 토큰 각각을 노드로 하는 완전 그래프를 생성한다. 도 2에 도시된 바와 같이, 완전 그래프는 복수의 노드(N1, N2, N3, ..., Nn)를 포함하며, 복수의 노드는 에지(E12, E21, E23, E32, E31, E13...)로 연결된다. 완전 그래프에서 노드는 토큰으로 정의된다. 즉, 도 2의 완전 그래프는 n개의 토큰이 n개의 노드(N1, N2, N3, ..., Nn)를 구성한다. 각 노드는 속성으로 중복 제거하지 않은 해당 토큰의 수를 나타내는 토큰계수(TCt) 및 해당 토큰이 포함된 파일(악성파일)의 수를 나타내는 파일계수(FC)를 포함한다. 노드(토큰)의 속성인 토큰계수(TC) 및 파일계수(FC)로부터 수학식 1에 따라 해당 토큰이 백신엔진들 사이에 얼마나 공통적으로 쓰였는지를 나타내는 공통지수(Co)를 도출할 수 있다. 또한, 노드(토큰)의 속성인 토큰계수(TC)를 기초로 수학식 2에 따라 해당 토큰이 얼마나 비중이 높은지를 나타내는 비중지수(Im)를 산출할 수 있다. 완전 그래프의 모든 노드 각각은 다른 노드에 대한 방향을 가지는 에지가 존재한다. 이러한 에지는 수학식 3에 따라 산출되는 조건부확률을 속성으로 가진다. 이와 같이, 그래프생성부(130)는 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성할 수 있다.
다음으로, 토큰그래프생성부(100)의 그래프축약부(140)는 S140 단계에서 조건부확률을 통해 도출되는 에지를 기초로 노드 간의 관계를 도출한다. 도출된 관계는 동일 관계, 부분집합 관계, 약한 관계 및 관계없음으로 구분할 수 있다. 그런 다음, 그래프축약부(140)는 S150 단계에서 동일 관계 및 부분집합 관계를 제외한 약한 관계이거나, 관계가 없는 노드 간의 에지를 삭제하여 완전 그래프를 축약한다. 이로써, 탐지명 토큰 그래프가 완성된다. 예컨대, 도 2를 참조하면, 제1 노드(N1)는 토큰 Backdoor이고, 제2 노드(N2)는 토큰 Remcos 그리고 제3 노드(N3)는 토큰 Phantom이라고 가정한다. 제1 노드(N1) 및 제2 노드(N2) 사이의 에지(E12, E21) 각각은 조건부확률에 따라 E12=P(Backdoor|Remcos), E21=P(Remcos|Backdoor)와 같이 정의되며, E12=0.11, E21=0.92인 경우, 토큰 Backdoor는 토큰 Remcos를 포함하는 관계, 즉, 부분집합 관계(Backdoor⊃Remcos)이다. 또한, 제2 노드(N2) 및 제3 노드(N2) 사이의 에지(E23, E32) 각각은 조건부확률에 따라 E23=P(Phantom|Remcos), E21=P(Remcos|Phantom)와 같이 정의된다. 만약 E23=0.01, E32=0.07이면 Backdoor와 Remcos는 상호 간에 관계없음을 알 수 있다. 이에 따라, 제2 노드(N2) 및 제3 노드(N2) 사이의 에지(E23, E32)는 삭제된다.
다음으로, 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법을 설명하기 위한 흐름도이다. 도 5는 본 발명의 실시예에 따른 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
먼저, 도 4를 참조하면, 대표토큰선정부(200)의 탐지명입력부(210)는 S210 단계에서 복수의 백신서버(20)로부터 하나의 입력 파일에 대한 서로 다른 복수의 탐지명을 입력받는다. 이어서, 대표토큰선정부(200)의 탐지명전처리부(220)는 S220 단계에서 탐지명입력부(210)가 입력 받은 입력 파일에 대한 복수의 탐지명 각각을 탐지명토큰화부(120)의 기준과 동일한 기준에 따라 토큰화하여 복수의 토큰을 추출한다.
다음으로, 대표토큰선정부(200)의 토큰선정부(230)는 S230 단계에서 토큰그래프생성부(100)가 생성한 탐지명 토큰 그래프를 기초로 탐지명전처리부(220)가 추출한 복수의 토큰 중 대표 탐지명 토큰을 선정한다. 토큰선정부(230)는 다음과 같은 정책에 따라 대표 탐지명 토큰을 선정한다. 첫째, 복수의 백신엔진에서 공통으로 쓰이는 토큰이 우선 선정되도록 가중치를 부여한다. 둘째, 해당 토큰이 전제 토큰 중에서 비중이 크다면 우선 선정되도록 가중치를 준다. 셋째, 부분 집합 개수 제한을 통해 두루 쓰이는 토큰이 선정되지 않도록 한다. 그러면, 이러한 정책을 반영하여 대표 탐지명 토큰을 선정하는 S230 단계에 대해 보다 상세하게 설명하기로 한다.
도 5를 참조하면, 토큰선정부(230)는 S310 단계에서 탐지명전처리부(220)가 추출한 복수의 토큰 각각에 대해 토큰그래프생성부(100)가 생성한 탐지명 토큰 그래프로부터 공통지수(Co) 및 비중지수(Im)를 산출한다. 그런 다음, 토큰선정부(230)는 S320 단계에서 공통지수(Co) 및 비중지수(Im) 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 탐지명전처리부(220)가 추출한 복수의 토큰을 정렬한다.
S320 단계의 일 실시예에 따르면, 토큰선정부(230)는 공통지수(Co)를 선순위 기준 지수로 선택하고, 비중지수(Im)를 후순위 기준 지수로 선택한다. 그런 다음, 토큰선정부(230)는 복수의 토큰을 선순위 기준 지수인 공통지수(Co)가 높은 순으로 정렬한다. 즉, 토큰선정부(230)는 공통지수(Co)의 내림차순으로 정렬한다. 그러면, 공통지수(Co)가 높은 순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰이 존재할 수 있다. 이러한 경우, 토큰선정부(230)는 공통지수(Co)가 높은 순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰을 후순위 기준 지수인 비중지수(Im)가 높은 순으로 정렬한다. 즉, 토큰선정부(230)는 공통지수(Co)의 내림차순으로 정렬된 복수의 토큰 중 공통지수(Co)가 동일한 복수의 토큰을 비중지수(Im)의 내림차순으로 정렬한다.
S320 단계의 다른 실시예에 따르면, 토큰선정부(230)는 공통지수(Co) 및 비중지수(Im) 중 어느 하나의 지수를 기준 지수로 선택하고, 선택된 기준 지수가 높은 순서에 따라 복수의 토큰을 정렬할 수 있다.
S320 단계의 또 다른 실시예에 따르면, 토큰선정부(230)는 공통지수(Co) 및 비중지수(Im)의 합을 기준 지수로 선택하고, 선택된 기준 지수가 높은 순서에 따라 복수의 토큰을 정렬할 수 있다.
다음으로, 토큰선정부(230)는 S330 단계에서 복수의 토큰의 정렬된 순서에 따라 하나의 토큰 씩 분석 대상 토큰으로 지정한다. 이어서, 토큰선정부(230)는 S340 단계에서 복수의 토큰의 정렬된 순서 상에서 지정된 토큰의 다음 순서 토큰이 존재하는지 여부를 확인한다. 이러한 S340 단계의 확인 결과, 다음 순서 토큰이 존재하지 않으면, 프로세스를 종료한다. 반면, S340 단계의 확인 결과, 다음 순서 토큰이 존재하면, 토큰선정부(230)는 S350 단계에서 탐지명 토큰 그래프에서 지정된 토큰의 다음 순서 토큰에 대한 부분 집합의 수를 조회한다. 즉, 토큰선정부(230)는 탐지명 토큰 그래프에서 지정된 토큰의 다음 순서 토큰에 대해 부분 집합 관계에 있는 노드의 수를 조회한다. 그런 다음, 토큰선정부(230)는 S360 단계에서 부분 집합의 수가 기 설정된 수치 미만인지 여부를 판단한다. 이러한 판단 결과, 부분 집합의 수가 기 설정된 수치 이상이면, S330 단계로 회귀하여 복수의 토큰이 정렬된 순서에서 다음 순서의 토큰을 분석 대상 토큰으로 지정하고, 전술한 S330 단계 내지 S360 단계를 반복한다. 반면, S360 단계의 판단 결과, 부분 집합의 수가 기 설정된 수치 미만이면, 분석 대상으로 지정된 토큰을 대표 탐지명 토큰으로 선정한다.
이와 같이, 본 발명의 실시예에 따르면, 토큰 간 부분집합 관계 파악을 통하여 일반적이거나 구체적인 탐지명 보다 그 샘플 군을 잘 나타낼 수 있는 단어를 대표 탐지명 토큰으로 선정할 수 있다 또한, 본 발명은 백신들 사이에 두루 쓰이는 토큰을 검출하여 광범위하게 사용되는 단어를 대표 탐지명 토큰으로 찾아낼 수 있다. 샘플들 사이에 많이 쓰이는 토큰을 도출하여 좀 더 악성코드 군을 대표하는 단어를 대표 탐지명 토큰으로 선정할 수 있다.
한편, 전술한 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
10: 토큰선정장치
20: 백신서버
100: 토큰그래프생성부
110: 탐지명수집부
120: 탐지명토큰화부
130: 그래프생성부
140: 그래프축약부
200: 대표토큰선정부
210: 탐지명입력부
220: 탐지명전처리부
230: 토큰선정부

Claims (13)

  1. 대표 토큰을 선정하기 위한 장치에 있어서,
    악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하는 토큰그래프생성부; 및
    상기 탐지명 토큰 그래프를 기초로 입력된 파일에 대해 대표 탐지명 토큰을 선정하는 대표토큰선정부;를 포함하고,
    상기 대표토큰선정부는,
    복수의 백신서버로부터 하나의 입력 파일의 서로 다른 복수의 탐지명을 입력받는 탐지명입력부;
    상기 입력 파일의 서로 다른 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 추출하는 탐지명전처리부; 및
    상기 탐지명 토큰 그래프를 기초로 상기 추출된 복수의 토큰 중 대표 탐지명 토큰을 선정하는 토큰선정부;를 포함하며,
    상기 토큰선정부는, 상기 탐지명 토큰 그래프의 노드의 속성을 기초로 복수의 백신엔진들에서 해당 토큰이 공통으로 사용된 정도를 나타내는 공통지수 및 전체 토큰 중에서 해당 토큰의 비중을 나타내는 비중지수를 산출하고, 상기 공통지수 및 비중지수 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 상기 추출된 복수의 토큰을 정렬하고, 상기 정렬된 순서대로 하나씩 분석 대상 토큰을 지정하고, 상기 탐지명 토큰 그래프로부터 복수의 노드 간의 관계를 참조하여 상기 분석 대상 토큰으로 지정된 토큰의 다음 순서 토큰에 대한 부분 집합의 수가 소정 수치 미만인 토큰이 있으면, 상기 지정된 토큰을 대표 탐지명 토큰으로 선정하는 것을 특징으로 하는,
    대표 토큰을 선정하기 위한 장치.
  2. 제1항에 있어서,
    상기 토큰그래프생성부는
    악성파일에 대한 서로 다른 복수의 백신엔진의 복수의 탐지명을 수집하는 탐지명수집부;
    상기 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 생성하는 탐지명토큰화부; 및
    상기 생성된 복수의 토큰을 기초로 완전 그래프를 생성하는 그래프생성부;
    를 포함하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 장치.
  3. 제2항에 있어서,
    상기 그래프생성부는
    상기 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 장치.
  4. 제3항에 있어서,
    상기 토큰그래프생성부는
    상기 조건부확률에 따라 노드 간의 관계를 도출하고, 도출된 노드 간의 관계가 약하거나 없는 경우, 상기 관계가 약하거나 없는 경우의 노드 간의 에지를 삭제하여 상기 완전 그래프를 축소함으로써 탐지명 토큰 그래프를 생성하는 그래프축약부;
    를 더 포함하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 장치.
  5. 삭제
  6. 삭제
  7. 대표 토큰을 선정하기 위한 방법에 있어서,
    토큰그래프생성부가 악성파일에 대한 복수의 탐지명으로부터 복수의 토큰을 추출하고, 추출된 복수의 토큰의 상호 간의 관계를 나타내는 탐지명 토큰 그래프를 생성하는 단계; 및
    대표토큰선정부가 상기 탐지명 토큰 그래프를 기초로 입력된 파일에 대해 대표 탐지명 토큰을 선정하는 단계;를 포함하고,
    상기 대표 탐지명 토큰을 선정하는 단계는,
    탐지명입력부가 복수의 백신서버로부터 하나의 입력 파일의 서로 다른 복수의 탐지명을 입력받는 단계;
    탐지명전처리부가 상기 입력 파일의 서로 다른 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 추출하는 단계; 및
    토큰선정부가, 상기 탐지명 토큰 그래프의 토큰의 속성에 기초하여, 복수의 백신엔진들에서 해당 토큰이 공통으로 사용된 정도를 나타내는 공통지수 및 전체 토큰 중에서 해당 토큰의 비중을 나타내는 비중지수를 산출하고, 상기 공통지수 및 비중지수 중 적어도 하나의 지수를 기준으로 선정하여 기준으로 선정된 지수가 높은 순서에 따라 상기 추출된 복수의 토큰을 정렬하고, 상기 정렬된 순서에 따라 복수의 토큰을 1개씩 분석 대상 토큰으로 지정하고, 상기 탐지명 토큰 그래프에서 상기 지정된 토큰의 다음 순서 토큰에 대해 부분 집합 관계에 있는 노드의 수를 조회하여 조회된 부분 집합 관계에 있는 노드의 수가 소정 수치 미만이면, 상기 지정된 토큰을 대표 탐지명 토큰으로 선정하는 단계;
    를 포함하는 것을 특징으로 하는, 대표 토큰을 선정하기 위한 방법.
  8. 제7항에 있어서,
    상기 탐지명 토큰 그래프를 생성하는 단계는
    탐지명수집부가 악성파일에 대한 서로 다른 복수의 백신엔진의 복수의 탐지명을 수집하는 단계;
    탐지명토큰화부가 상기 복수의 탐지명 각각을 토큰화하여 복수의 토큰을 생성하는 단계; 및
    그래프생성부가 상기 생성된 복수의 토큰을 기초로 완전 그래프를 생성하는 단계;
    를 포함하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 방법.
  9. 제8항에 있어서,
    상기 완전 그래프를 생성하는 단계는
    그래프생성부가 상기 복수의 토큰 각각을 노드로 하며 노드 간의 관계를 조건부확률로 나타내는 에지로 연결하는 완전 그래프를 생성하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 방법.
  10. 제9항에 있어서,
    상기 완전 그래프를 생성하는 단계 후,
    그래프축약부가 상기 조건부확률에 따라 노드 간의 관계를 도출하는 단계; 및
    상기 그래프축약부가 상기 도출된 노드 간의 관계가 약하거나 없는 경우, 상기 관계가 약하거나 없는 경우의 노드 간의 에지를 삭제하여 상기 완전 그래프를 축소함으로써 탐지명 토큰 그래프를 생성하는 단계;
    를 더 포함하는 것을 특징으로 하는
    대표 토큰을 선정하기 위한 방법.
  11. 삭제
  12. 삭제
  13. 컴퓨터에서 제7항 내지 제10항 중 어느 한 항에 따른 대표 토큰을 선정하기 위한 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020200078570A 2020-06-26 2020-06-26 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102199704B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200078570A KR102199704B1 (ko) 2020-06-26 2020-06-26 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US17/329,769 US11232200B2 (en) 2020-06-26 2021-05-25 Apparatus for selecting representative token from detection names of multiple vaccines, method therefor, and computer readable recording medium storing program for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200078570A KR102199704B1 (ko) 2020-06-26 2020-06-26 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR102199704B1 true KR102199704B1 (ko) 2021-01-08

Family

ID=74127730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200078570A KR102199704B1 (ko) 2020-06-26 2020-06-26 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (2)

Country Link
US (1) US11232200B2 (ko)
KR (1) KR102199704B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128389A (ja) * 2005-11-07 2007-05-24 Fujitsu Ltd 単語クラス作成プログラム、単語クラス作成装置、及び単語クラス作成方法、並びに類似度算出プログラム、類似度算出装置、及び類似度算出方法
JP2007207101A (ja) * 2006-02-03 2007-08-16 Infocom Corp グラフ生成方法、グラフ生成プログラム並びにデータマイニングシステム
JP2014533409A (ja) * 2011-11-15 2014-12-11 アビニシオ テクノロジー エルエルシー 変数トークンネットワークに基づくデータクラスタ化
JP2019016212A (ja) * 2017-07-07 2019-01-31 日本電信電話株式会社 付与装置、付与方法および付与プログラム
KR20190024400A (ko) 2017-08-31 2019-03-08 경북대학교 산학협력단 객체 인식 장치 및 그 제어 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562304B2 (en) * 2005-05-03 2009-07-14 Mcafee, Inc. Indicating website reputations during website manipulation of user information
US10649970B1 (en) * 2013-03-14 2020-05-12 Invincea, Inc. Methods and apparatus for detection of functionality
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128389A (ja) * 2005-11-07 2007-05-24 Fujitsu Ltd 単語クラス作成プログラム、単語クラス作成装置、及び単語クラス作成方法、並びに類似度算出プログラム、類似度算出装置、及び類似度算出方法
JP2007207101A (ja) * 2006-02-03 2007-08-16 Infocom Corp グラフ生成方法、グラフ生成プログラム並びにデータマイニングシステム
JP2014533409A (ja) * 2011-11-15 2014-12-11 アビニシオ テクノロジー エルエルシー 変数トークンネットワークに基づくデータクラスタ化
JP2019016212A (ja) * 2017-07-07 2019-01-31 日本電信電話株式会社 付与装置、付与方法および付与プログラム
KR20190024400A (ko) 2017-08-31 2019-03-08 경북대학교 산학협력단 객체 인식 장치 및 그 제어 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mederic Hurier et al, "Euphony: Harmonious Unification of Cacophonous Anti-Virus Vendor Labels for Android Malware"(2017.05.)* *

Also Published As

Publication number Publication date
US11232200B2 (en) 2022-01-25
US20210406373A1 (en) 2021-12-30

Similar Documents

Publication Publication Date Title
US10764353B2 (en) Automatic genre classification determination of web content to which the web content belongs together with a corresponding genre probability
US6952776B1 (en) Method and apparatus for increasing virus detection speed using a database
RU2454714C1 (ru) Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
CN108920954B (zh) 一种恶意代码自动化检测平台及方法
Shaw et al. A practical and robust approach to coping with large volumes of data submitted for digital forensic examination
US20210201016A1 (en) Classifying digital documents in multi-document transactions based on embedded dates
US20120290927A1 (en) Data Classifier
US20120136812A1 (en) Method and system for machine-learning based optimization and customization of document similarities calculation
CA2743273C (en) Method and device for intercepting junk mail
JP2007528520A (ja) 検索エンジンに登録されたウェブサイトを管理するための方法およびシステム
JPH06250861A (ja) コンピュータ・ウィルスおよび他の望ましくないソフトウェア実在物のシグネチャを評価し抽出するための方法および装置
US9519704B2 (en) Real time single-sweep detection of key words and content analysis
CN110750615B (zh) 文本重复性判定方法和装置、电子设备和存储介质
JP2008033687A (ja) 検索クエリー作成装置
KR101638535B1 (ko) 사용자 검색어 연관 이슈패턴 검출 방법, 이를 수행하는 이슈패턴 검출 서버 및 이를 저장하는 기록매체
KR20070009338A (ko) 이미지 상호간의 유사도를 고려한 이미지 검색 방법 및장치
KR101542739B1 (ko) 정규 표현식의 매칭을 처리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR102199704B1 (ko) 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102246405B1 (ko) Tf-idf 기반 벡터 변환 및 데이터 분석 장치 및 방법
KR101692244B1 (ko) 스팸 분류 방법, 이를 수행하기 위한 기록 매체 및 스팸 분류 장치
US20210192047A1 (en) Multi-purpose agent for endpoint scanning
US20190213486A1 (en) Virtual Adaptive Learning of Financial Articles Utilizing Artificial Intelligence
US10050922B2 (en) Server and method for processing email messages
CN114302227A (zh) 基于容器采集的网络视频采集与解析的方法和系统
US20110172991A1 (en) Sentence extracting method, sentence extracting apparatus, and non-transitory computer readable record medium storing sentence extracting program

Legal Events

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