KR102225820B1 - 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법 - Google Patents

악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법 Download PDF

Info

Publication number
KR102225820B1
KR102225820B1 KR1020190101301A KR20190101301A KR102225820B1 KR 102225820 B1 KR102225820 B1 KR 102225820B1 KR 1020190101301 A KR1020190101301 A KR 1020190101301A KR 20190101301 A KR20190101301 A KR 20190101301A KR 102225820 B1 KR102225820 B1 KR 102225820B1
Authority
KR
South Korea
Prior art keywords
feature
vector
hybrid
hot
hash
Prior art date
Application number
KR1020190101301A
Other languages
English (en)
Other versions
KR20210021838A (ko
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 KR1020190101301A priority Critical patent/KR102225820B1/ko
Publication of KR20210021838A publication Critical patent/KR20210021838A/ko
Application granted granted Critical
Publication of KR102225820B1 publication Critical patent/KR102225820B1/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

본 발명은 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 및 방법에 관한 것으로, 상기 하이브리드 피처 벡터 생성 장치는 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신하는 피처 집합 수신부, 상기 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터를 생성하는 원 핫 벡터 생성부, 상기 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성하는 피처 해시 생성부 및 상기 원 핫 벡터와 상기 피처 해시를 합성하여 상기 피처 집합에 대응하는 하이브리드 피처 벡터를 생성하는 하이브리드 피처 벡터 생성부를 포함한다.

Description

악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법{APPARATUS AND METHOD FOR GENERATING HYBRID FEATURE VECTOR FOR MACHINE LEARNING FOR MALICIOUS CODE ANALYSIS}
본 발명은 피처 벡터 생성 기술에 관한 것으로, 더욱 상세하게는 악성코드 탐지를 위한 학습 과정에서 발생하는 정보 손실을 줄일 수 있는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법에 관한 것이다.
인터넷 및 컴퓨터 기술이 지속적으로 개발되고, 이와 함께 이러한 기술을 악용하여 부당한 이익을 취하려는 시도도 증가하고 있다. 예를 들어, 악성코드를 사용자들의 컴퓨터에 설치 및 배포하여 사용자들로부터 부당한 이익을 취하는 방법이 증가하고 있다.
여기에서, 악성코드는 컴퓨터 사용자의 승인없이 컴퓨터에 침투하거나 설치되어 악의적인 행동을 하는 프로그램을 의미한다. 이에 따라, 보안 전문가들은 다양한 해결 방안을 모색하고 있다.
한국공개특허 제10-2009-0055669(2009.06.03)호
본 발명의 일 실시예는 악성코드 탐지를 위한 학습 과정에서 발생하는 정보 손실을 줄일 수 있는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 서로 다른 방식으로 생성된 피처 벡터를 하나의 하이브리드 피처 벡터로 합성하여 보완하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 원 핫 벡터의 공백 영역을 동일 크기의 피처 해싱 벡터로 채움으로써 원 핫 벡터의 정보 손실을 줄일 수 있는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치는 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신하는 피처 집합 수신부, 상기 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터를 생성하는 원 핫 벡터 생성부, 상기 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성하는 피처 해시 생성부 및 상기 원 핫 벡터와 상기 피처 해시를 합성하여 상기 피처 집합에 대응하는 하이브리드 피처 벡터를 생성하는 하이브리드 피처 벡터 생성부를 포함한다.
상기 피처 집합은 고정 길이의 피처와 가변 길이의 피처를 원소로서 포함하고, 상기 원 핫 벡터 생성부는 상기 고정 길이의 피처를 기초로 상기 원 핫 벡터를 생성하고, 상기 피처 해시 생성부는 상기 가변 길이의 피처를 기초로 상기 피처 해시를 생성할 수 있다.
상기 원 핫 벡터 생성부는 상기 학습 모집단에서 상기 고정 길이의 피처를 출현 빈도에 따라 정렬하고 정렬된 출현 빈도 간의 변화율이 가장 큰 피처의 순위를 기초로 상기 원 핫 벡터의 크기를 결정할 수 있다.
상기 원 핫 벡터 생성부 및 상기 피처 해시 생성부는 상기 피처 집합에 대해 각 피처 별로 상기 원 핫 인코딩과 상기 피처 해싱을 병렬적으로 수행하고 동일 크기의 원 핫 벡터와 피처 해시를 각각 생성할 수 있다.
상기 하이브리드 피처 벡터 생성부는 상기 원 핫 벡터의 원소 중에서 공백 원소를 추출하고 상기 공백 원소를 상기 피처 해시의 원소로 대체하여 상기 하이브리드 피처 벡터를 생성할 수 있다.
상기 하이브리드 피처 벡터 생성부는 상기 원 핫 벡터와 동일한 크기의 하이브리드 피처 벡터를 생성하는 제1 단계, 상기 원 핫 벡터에 대해 순차적으로 원소 값을 확인하는 제2 단계 및 각 원소 값에 따라 상기 하이브리드 피처 벡터의 원소를 상기 원 핫 벡터 또는 상기 피처 해시의 원소로 대체하는 제3 단계를 수행함으로써 상기 하이브리드 피처 벡터를 생성할 수 있다.
실시예들 중에서, 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 방법은 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신하는 단계, 상기 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터를 생성하는 단계, 상기 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성하는 단계 및 상기 원 핫 벡터와 상기 피처 해시를 합성하여 상기 피처 집합에 대응하는 하이브리드 피처 벡터를 생성하는 단계를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법은 서로 다른 방식으로 생성된 피처 벡터를 하나의 하이브리드 피처 벡터로 합성하여 보완할 수 있다.
본 발명의 일 실시예에 따른 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법은 원 핫 벡터의 공백 영역을 동일 크기의 피처 해싱 벡터로 채움으로써 원 핫 벡터의 정보 손실을 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 하이브리드 피처 벡터 생성 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 하이브리드 피처 벡터 생성 장치의 물리적 구성을 설명하는 도면이다.
도 3은 도 1에 있는 하이브리드 피처 벡터 생성 장치의 기능적 구성을 설명하는 블록도이다.
도 4는 도 1에 있는 하이브리드 피처 벡터 생성 장치에서 수행되는 하이브리드 피처 벡터 생성 과정을 설명하는 순서도이다.
도 5는 원 핫 인코딩 과정을 설명하는 도면이다.
도 6은 피처 해싱 과정을 설명하는 도면이다.
도 7 및 8은 하이브리드 피처 벡터 생성 과정을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 하이브리드 피처 벡터 생성 시스템을 설명하는 도면이다.
도 1을 참조하면, 하이브리드 피처 벡터 생성 시스템(100)은 사용자 단말(110), 하이브리드 피처 벡터 생성 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 하이브리드 피처 벡터 생성 장치(130)에게 피처 벡터 생성을 요청하고 그 결과를 수신할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 하이브리드 피처 벡터 생성 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 하이브리드 피처 벡터 생성 장치(130)와 동시에 연결될 수 있다.
하이브리드 피처 벡터 생성 장치(130)는 악성코드 분석를 위한 머신러닝 과정에서 사용되는 피처 벡터를 생성하여 제공할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 하이브리드 피처 벡터 생성 장치(130)는 사용자 단말(110)과 블루투스, WiFi, 통신망 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 사용자 단말(110)과 데이터를 주고받을 수 있다.
일 실시예에서, 하이브리드 피처 벡터 생성 장치(130)는 데이터베이스(150)와 연동하여 피처 벡터 생성 과정에서 필요한 정보를 저장할 수 있다. 한편, 하이브리드 피처 벡터 생성 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있고, 사용자 단말(110)과 하나의 장치로 통합되어 구현될 수 있다. 하이브리드 피처 벡터 생성 장치(130)는 프로세서, 메모리, 사용자 입출력부 및 네트워크 입출력부를 포함하여 구현될 수 있으며, 이에 대해서는 도 2에서 보다 자세히 설명한다.
데이터베이스(150)는 하이브리드 피처 벡터 생성 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 악성코드 분석용 머신러닝에 관한 정보를 저장할 수 있고, 학습을 위해 생성된 피처 벡터에 관한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 하이브리드 피처 벡터 생성 장치(130)가 머신러닝을 위해 하이브리드 피처 벡터를 생성하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
도 2는 도 1에 있는 하이브리드 피처 벡터 생성 장치의 물리적 구성을 설명하는 도면이다.
도 2를 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.
프로세서(210)는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 과정의 각 동작을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 하이브리드 피처 벡터 생성 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 하이브리드 피처 벡터 생성 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 하이브리드 피처 벡터 생성 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 하이브리드 피처 벡터 생성 장치(130)는 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 3은 도 1에 있는 하이브리드 피처 벡터 생성 장치의 기능적 구성을 설명하는 블록도이다.
도 3을 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 피처 집합 수신부(310), 원 핫 벡터 생성부(330), 피처 해시 생성부(350), 하이브리드 피처 벡터 생성부(370) 및 제어부(390)를 포함할 수 있다.
피처 집합 수신부(310)는 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신할 수 있다. 학습 모집단은 악성코드 분석을 위한 머신러닝에 사용되는 학습데이터의 집합에 해당할 수 있고, 피처 집합을 원소로서 포함할 수 있다. 피처 집합은 피처 벡터 생성에 사용되는 피처(feature)들의 집합에 해당할 수 있고 파일 단위로 구성될 수 있다. 즉, 하나의 파일(또는 문서)로부터 추출되는 피처들은 동일한 피처 집합에 포함될 수 있다. 따라서, 피처 집합을 기초로 생성된 피처 벡터는 해당 피처 집합과 연관된 파일(또는 문서)에 대한 피처 벡터에 해당할 수 있다.
일 실시예에서, 피처 집합은 고정 길이의 피처와 가변 길이의 피처를 원소로서 포함할 수 있다. 악성코드의 헤더(header)는 다양한 피처들을 구조체(structure) 형태로 보관할 수 있으며, 헤더에 대한 파싱(parsing)을 통해 해당 악성코드에 관한 피처들을 획득할 수 있다. 즉, 피처 집합은 하나의 파일(또는 문서)에 대한 분석을 통해 추출되는 피처들로 구성될 수 있으며, 이러한 피처들은 파일에 상관없이 일정한 길이를 가지는 피처와 파일에 따라 상이한 길이를 가지는 피처로 구분될 수 있다.
원 핫 벡터 생성부(330)는 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터(one hot vector)를 생성할 수 있다. 원 핫 벡터는 N 차원(N은 자연수)의 크기를 갖는 피처 벡터에 해당할 수 있으나, 반드시 이에 한정되지 않고, 사전에 설정된 다양한 크기에 맞춰 생성될 수 있다. 원 핫 인코딩(One Hot Encoding)에 대해서는 도 5에서 보다 자세히 설명한다.
일 실시예에서, 원 핫 벡터 생성부(330)는 고정 길이의 피처를 기초로 원 핫 벡터를 생성할 수 있다. 즉, 원 핫 벡터 생성부(330)는 피처 집합에 있는 피처들 중에서 고정 길이를 갖는 피처를 이용하여 원 핫 벡터를 생성할 수 있다. 원 핫 벡터 생성부(330)는 고정 길이의 피처만을 이용하여 원 핫 인코딩을 수행함으로써 피처 벡터의 정보 손실을 줄일 수 있다.
일 실시예에서, 원 핫 벡터 생성부(330)는 학습 모집단에서 고정 길이의 피처를 출현 빈도에 따라 정렬하고 정렬된 출현 빈도 간의 변화율이 가장 큰 피처의 순위를 기초로 원 핫 벡터의 크기를 결정할 수 있다. 출현 빈도가 낮은 피처는 파일(또는 문서)에 대한 주요 정보에 해당될 확률이 낮다는 점을 고려하여, 원 핫 벡터 생성부(330)는 학습 모집단에 있는 전체 파일(또는 문서)를 대상으로 출현 빈도가 높은 피처들 만을 기초로 원 핫 벡터를 생성할 수 있다.
예를 들어, 출현 빈도를 기초로 정렬한 결과 피처 1의 출현 빈도가 100, 피처 2의 출현 빈도가 70, 피처 3의 출현 빈도가 50인 경우, 피처 2의 출현 빈도 변화율은 출현 빈도가 100에서 70으로 감소한 결과 30에 해당하고 피처 3의 출현 빈도 변화율은 70에서 50으로 감소한 결과 20에 해당할 수 있다. 따라서, 원 핫 벡터 생성부(330)는 출현 빈도 변화율이 가장 큰 피처 3의 순위에 해당하는 3을 원 핫 벡터의 크기로 결정할 수 있다. 결과적으로, 원 핫 벡터 생성부(330)는 출현 빈도가 높은 3개의 피처들 만을 이용한 원 핫 인코딩을 수행하여 3차원의 피처 벡터를 생성할 수 있다.
피처 해시 생성부(350)는 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성할 수 있다. 여기에서, 피처 해시는 피처 해싱(Feature Hashing)을 통해 생성된 피처 벡터에 해당할 수 있다. 피처 해시는 원 핫 인코딩을 통해 생성된 원 핫 벡터와 동일한 크기로 생성될 수 있다. 피처 해싱(Feature Hashing)에 대해서는 도 6에서 보다 자세히 설명한다.
일 실시예에서, 피처 해시 생성부(350)는 가변 길이의 피처를 기초로 피처 해시를 생성할 수 있다. 즉, 피처 해시 생성부(350)는 피처 집합에 있는 피처들 중에서 가변 길이를 갖는 피처를 이용하여 피처 해시를 생성할 수 있다. 피처 해시 생성부(350)는 가변 길이의 피처를 대상으로 피처 해싱을 수행하여 원 핫 인코딩으로는 획득하기 어려운 정보를 획득할 수 있다.
일 실시예에서, 원 핫 벡터 생성부(330) 및 피처 해시 생성부(350)는 피처 집합에 대해 각 피처 별로 원 핫 인코딩과 피처 해싱을 병렬적으로 수행하고 동일 크기의 피처 벡터로서 원 핫 벡터와 피처 해시를 각각 생성할 수 있다. 즉, 원 핫 벡터 생성부(330)와 피처 해시 생성부(350)는 독립적으로 구현된 반면, 상호 연동하여 피처 집합으로부터 수신된 피처를 공유할 수 있고 원 핫 벡터와 피처 해시의 크기 정보를 공유할 수 있다.
하이브리드 피처 벡터 생성부(370)는 원 핫 벡터와 피처 해시를 합성하여 피처 집합에 대응하는 하이브리드 피처 벡터를 생성할 수 있다. 즉, 하이브리드 피처 벡터는 원 핫 벡터의 특징과 피처 해시의 특징이 상호 보완된 것에 해당할 수 있다.
일 실시예에서, 하이브리드 피처 벡터 생성부(370)는 원 핫 벡터의 원소 중에서 공백 원소를 추출하고 공백 원소를 피처 해시의 원소로 대체하여 하이브리드 피처 벡터를 생성할 수 있다. 원 핫 벡터는 원 핫 인코딩에 의해 생성된 피처 벡터로서 각 원소 값은 0 또는 1에 해당할 수 있고, 공백 원소는 원소 값이 0인 원소에 해당할 수 있다. 즉, 하이브리드 피처 벡터 생성부(370)는 원 핫 벡터의 원소 값이 0인 원소에 대해 대응되는 피처 해시의 원소 값을 할당하여 공백 원소로 인한 정보 손실을 보완할 수 있다.
일 실시예에서, 하이브리드 피처 벡터 생성부(370)는 원 핫 벡터와 동일한 크기의 하이브리드 피처 벡터를 생성하는 제1 단계, 원 핫 벡터에 대해 순차적으로 원소 값을 확인하는 제2 단계 및 각 원소 값에 따라 하이브리드 피처 벡터의 원소를 원 핫 벡터 또는 피처 해시의 원소로 대체하는 제3 단계를 수행함으로써 하이브리드 피처 벡터를 생성할 수 있다. 보다 구체적으로, 하이브리드 피처 벡터는 원 핫 벡터의 원소 값이 1인 경우 원 핫 벡터의 원소가 할당될 수 있고, 원 핫 벡터의 원소 값이 0인 경우 피처 해시의 원소가 할당될 수 있다.
일 실시예에서, 하이브리드 피처 벡터 생성부(370)는 원 핫 벡터의 공백 원소를 피처 해시의 원소로 대체하는 과정에서 피처 해시의 원소 값에 대한 스케일링(scaling) 또는 정규화(normalization)를 수행할 수 있다. 예를 들어, 하이브리드 피처 벡터 생성부(370)는 피처 해시의 원소 값 전체를 일정 비율로 증가 또는 감소시킬 수 있다. 또한, 하이브리드 피처 벡터 생성부(370)는 피처 해시의 원소 값 중에서 제일 작은 값을 0, 제일 큰 값을 1로 변환한 후 그 사이에 존재하는 원소 값은 0과 1사이의 값으로 변환할 수 있다.
제어부(390)는 하이브리드 피처 벡터 생성 장치(130)의 전체적인 동작을 제어하고, 피처 집합 수신부(310), 원 핫 벡터 생성부(330), 피처 해시 생성부(350) 및 하이브리드 피처 벡터 생성부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 도 1에 있는 하이브리드 피처 벡터 생성 장치에서 수행되는 하이브리드 피처 벡터 생성 과정을 설명하는 순서도이다.
도 4를 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 피처 집합 수신부(310)를 통해 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신할 수 있다(단계 S410). 하이브리드 피처 벡터 생성 장치(130)는 원 핫 벡터 생성부(310)를 통해 피처 집합에 있는 피처에 관한 원 핫 인코딩을 통해 원 핫 벡터를 생성할 수 있다(단계 S430).
또한, 하이브리드 피처 벡터 생성 장치(130)는 피처 해시 생성부(350)를 통해 피처 집합에 있는 피처에 관한 피처 해싱을 통해 피처 해시를 생성할 수 있다(단계 S450). 하이브리드 피처 벡터 생성 장치(130)는 하이브리드 피처 벡터 생성부(370)를 통해 원 핫 벡터와 피처 해시를 합성하여 피처 집합에 대응하는 하이브리드 피처 벡터를 생성할 수 있다(단계 S470).
도 5는 원 핫 인코딩 과정을 설명하는 도면이다.
도 5를 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 원 핫 벡터 생성부(330)를 통해 원 핫 인코딩(One Hot Encoding)을 수행할 수 있다.
원 핫 인코딩(One Hot Encoding)은 해당 피처가 존재하면 1, 존재하지 않으면 0으로 표시하여 피처 벡터를 생성하는 방법으로 피처 벡터의 크기가 피처의 개수에 의해 결정될 수 있다. 따라서, 원 핫 인코딩은 피처의 개수가 많을수록 정보의 손실이 커진다는 단점을 가질 수 있다.
도 5의 그림 (a)는 원 핫 인코딩을 구현한 소스코드에 해당할 수 있고, 보다 구체적으로 복수의 피처들(features)과 벡터 크기(N)을 입력으로 수신하여 원 핫 벡터(onehot_vector)를 생성하는 동작을 수행할 수 있다. 원 핫 인코딩은 각 피처에 대해 인덱스 테이블(index table)을 기초로 인덱스를 결정할 수 있고, 원 핫 벡터의 해당 인덱스에 대응하는 원소 값을 1로 할당하는 동작을 반복 수행함으로써 원 핫 벡터를 생성할 수 있다.
예를 들어, 도 5의 그림 (b)에서 색상(color)에 관한 피처를 원소로 하는 피처 집합이 red, green, blue를 원소로 포함하는 경우, 원 핫 인코딩을 수행하면 피처 red는 [1,0,0], 피처 green은 [0,1,0], 피처 blue는 [0,0,1]의 원 핫 벡터로 표현될 수 있다.
도 6은 피처 해싱 과정을 설명하는 도면이다.
도 5를 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 피처 해시 생성부(350)를 통해 피처 해싱(Feature Hashing)을 수행할 수 있다.
피처 해싱(Feature Hashing)은 해시 함수(Hash Function)를 이용하여 피처 벡터를 생성하는 방법에 해당할 수 있고, 각 피처에 대해 해시 함수의 결과를 인덱스(index)로 결정하여 해당 인덱스의 원소 값을 증가시켜 피처 해시를 생성할 수 있다.
도 6의 그림 (a)는 피처 해싱을 구현한 소스코드에 해당할 수 있고, 보다 구체적으로 복수의 피처들(features)과 벡터 크기(N)을 입력으로 수신하여 피처 해시(x)를 생성하는 동작을 수행할 수 있다. 피처 해싱은 각 피처에 대해 해시 함수를 적용하여 해시 값을 산출할 수 있고, 해당 해시 값과 벡터 크기(N) 간의 연산을 통해 해당 인덱스를 산출할 수 있다. 마지막으로, 피처 해시의 해당 인덱스에 대응하는 원소 값을 1만큼 증가시키는 동작을 반복 수행함으로써 피처 해시를 생성할 수 있다.
예를 들어, 도 5의 그림 (b)에서 피처 John Smith와 Sandra Dee는 해시 함수 적용 결과 인덱스 2에 해당하는 피처 해시의 값을 각각 1만큼 증가시킬 수 있고, 피처 Lisa Smith는 해시 함수 적용 결과 인덱스 1에 해당하는 피처 해시의 값을 1만큼 증가시킬 수 있으며, 피처 Sandra Dee는 해시 함수 적용 결과 인덱스 4에 해당하는 피처 해시의 값을 1만큼 증가시킬 수 있다. 이 경우, 피처 해시의 크기는 16에 해당할 수 있고, 원 핫 벡터 생성부(330)에 의해 생성된 원 핫 벡터의 크기와 동일할 수 있다.
도 7 및 8은 하이브리드 피처 벡터 생성 과정을 설명하는 도면이다.
도 7 및 8을 참조하면, 하이브리드 피처 벡터 생성 장치(130)는 하이브리드 피처 벡터 생성부(370)를 통해 원 핫 벡터와 피처 해시를 합성하여 하이브리드 피처 벡터를 생성할 수 있다.
보다 구체적으로, 하이브리드 피처 벡터 생성부(370)는 복수의 피처들(features)과 벡터 크기(N)을 입력으로 수신하여 하이브리드 피처 벡터(hybrid_feature_hashing_vector)를 생성하는 동작을 수행할 수 있다. 하이브리드 피처 벡터 생성부(370)는 각 피처에 대해 원 핫 인코딩과 피처 해싱을 병렬적으로 수행할 수 있고, 모든 피처에 대해 수행한 결과로서 원 핫 벡터(onehot_vector)와 피처 해시(feature_hashing_vector)를 생성할 수 있다.
하이브리드 피처 벡터 생성부(370)는 원 핫 벡터(onehot_vector)의 각 원소 값을 확인한 후 원소 값이 0인 경우 피처 해시의 원소 값으로 대체하는 동작을 반복 수행함으로써 하이브리드 피처 벡터를 생성할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 하이브리드 피처 벡터 생성 시스템
110: 사용자 단말 130: 하이브리드 피처 벡터 생성 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 피처 집합 수신부 330: 원 핫 벡터 생성부
350: 피처 해시 생성부 370: 하이브리드 피처 벡터 생성부
390: 제어부

Claims (7)

  1. 학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신하는 피처 집합 수신부;
    상기 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터를 생성하는 원 핫 벡터 생성부;
    상기 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성하는 피처 해시 생성부; 및
    상기 원 핫 벡터의 원소 중에서 공백 원소를 추출하고 상기 공백 원소를 상기 피처 해시의 원소로 대체하여 상기 피처 집합에 대응하는 하이브리드 피처 벡터를 생성하는 하이브리드 피처 벡터 생성부를 포함하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치.
  2. 제1항에 있어서,
    상기 피처 집합은 고정 길이의 피처와 가변 길이의 피처를 원소로서 포함하고,
    상기 피처 벡터 생성부는 상기 고정 길이의 피처를 기초로 상기 원 핫 벡터를 생성하고,
    상기 피처 해시 생성부는 상기 가변 길이의 피처를 기초로 상기 피처 해시를 생성하는 것을 특징으로 하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치.
  3. 제2항에 있어서, 상기 원 핫 벡터 생성부는
    상기 학습 모집단에서 상기 고정 길이의 피처를 출현 빈도에 따라 정렬하고 정렬된 출현 빈도 간의 변화율이 가장 큰 피처의 순위를 기초로 상기 원 핫 벡터의 크기를 결정하는 것을 특징으로 하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치.
  4. 제1항에 있어서, 상기 원 핫 벡터 생성부 및 상기 피처 해시 생성부는
    상기 피처 집합에 대해 각 피처 별로 상기 원 핫 인코딩과 상기 피처 해싱을 병렬적으로 수행하고 동일 크기의 원 핫 벡터와 피처 해시를 각각 생성하는 것을 특징으로 하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치.
  5. 삭제
  6. 제1항에 있어서, 상기 하이브리드 피처 벡터 생성부는
    상기 원 핫 벡터와 동일한 크기의 하이브리드 피처 벡터를 생성하는 제1 단계, 상기 원 핫 벡터에 대해 순차적으로 원소 값을 확인하는 제2 단계 및 각 원소 값에 따라 상기 하이브리드 피처 벡터의 원소를 상기 원 핫 벡터 또는 상기 피처 해시의 원소로 대체하는 제3 단계를 수행함으로써 상기 하이브리드 피처 벡터를 생성하는 것을 특징으로 하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치.
  7. 하이브리드 피처 벡터 생성 장치에서 수행되는 방법에 있어서,
    학습 모집단으로부터 파일 단위로 구성된 피처 집합을 수신하는 단계;
    상기 피처 집합에 있는 피처에 관한 원 핫 인코딩(One Hot Encoding)을 통해 원 핫 벡터를 생성하는 단계;
    상기 피처 집합에 있는 피처에 관한 피처 해싱(Feature Hashing)을 통해 피처 해시를 생성하는 단계; 및
    상기 원 핫 벡터의 원소 중에서 공백 원소를 추출하고 상기 공백 원소를 상기 피처 해시의 원소로 대체하여 상기 피처 집합에 대응하는 하이브리드 피처 벡터를 생성하는 단계를 포함하는 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 방법.
KR1020190101301A 2019-08-19 2019-08-19 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법 KR102225820B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190101301A KR102225820B1 (ko) 2019-08-19 2019-08-19 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190101301A KR102225820B1 (ko) 2019-08-19 2019-08-19 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210021838A KR20210021838A (ko) 2021-03-02
KR102225820B1 true KR102225820B1 (ko) 2021-03-10

Family

ID=75147720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190101301A KR102225820B1 (ko) 2019-08-19 2019-08-19 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102225820B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624325B1 (ko) * 2021-10-28 2024-01-12 가천대학교 산학협력단 샴네트워크와 클래스 활성화 지도 및 이산화방식을 이용한 이상 탐지 시스템 및 방법과 이를 위한 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180197089A1 (en) * 2017-01-10 2018-07-12 Crowdstrike, Inc. Computational modeling and classification of data streams
KR101880628B1 (ko) * 2017-11-27 2018-08-16 한국인터넷진흥원 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942798B1 (ko) 2007-11-29 2010-02-18 한국전자통신연구원 악성코드 탐지장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180197089A1 (en) * 2017-01-10 2018-07-12 Crowdstrike, Inc. Computational modeling and classification of data streams
KR101880628B1 (ko) * 2017-11-27 2018-08-16 한국인터넷진흥원 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Stack Exchange, "How to combine categorical and continuous input features for neural network training"(2019.05.)

Also Published As

Publication number Publication date
KR20210021838A (ko) 2021-03-02

Similar Documents

Publication Publication Date Title
CN104008064B (zh) 用于多级存储器压缩的方法和系统
CN102483731B (zh) 具有根据搜索负荷被均衡的指纹数据库的媒体识别系统
RU2701124C2 (ru) Составные функции разбиения
TW201342110A (zh) 在狀態機晶格中之計數器操作
CN102866954B (zh) 内存分配的方法及装置
JP2015118609A (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
EP2778953A1 (en) Encoded-search database device, method for adding and deleting data for encoded search, and addition/deletion program
CN109634921B (zh) 一种文件存储的方法及存储系统
US20150302022A1 (en) Data deduplication method and apparatus
KR102225820B1 (ko) 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR102289395B1 (ko) 자카드 모델 기반의 문서 검색 장치 및 방법
CN111221690B (zh) 针对集成电路设计的模型确定方法、装置及终端
CN115840765A (zh) 基于规则引擎的数据处理方法及装置
KR102269652B1 (ko) 보안관제 데이터 분석을 위한 머신러닝 기반의 학습 벡터 생성 장치 및 방법
KR102255600B1 (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
CN104935647B (zh) 一种文件分享方法及装置
CN115130130A (zh) 网盘文件解锁方法、装置、网盘及存储介质
CN107491460B (zh) 适配系统的数据映射方法及装置
US20130247211A1 (en) Authority changing device, generating device, and computer program product
KR102289411B1 (ko) 가중치 기반의 피처 벡터 생성 장치 및 방법
CN110262856A (zh) 一种应用程序数据采集方法、装置、终端及存储介质
US9654140B1 (en) Multi-dimensional run-length encoding
CN111061731B (zh) 一种加密数据全文检索方法
KR102172321B1 (ko) 데이터 중복 제거 방법
JP2016153930A (ja) 設定情報管理装置、設定情報管理方法、及び、設定情報管理プログラム

Legal Events

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