KR102491451B1 - 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102491451B1
KR102491451B1 KR1020200189136A KR20200189136A KR102491451B1 KR 102491451 B1 KR102491451 B1 KR 102491451B1 KR 1020200189136 A KR1020200189136 A KR 1020200189136A KR 20200189136 A KR20200189136 A KR 20200189136A KR 102491451 B1 KR102491451 B1 KR 102491451B1
Authority
KR
South Korea
Prior art keywords
vector
learning
neural network
deep neural
network model
Prior art date
Application number
KR1020200189136A
Other languages
English (en)
Other versions
KR20220097767A (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 KR1020200189136A priority Critical patent/KR102491451B1/ko
Priority to US17/565,954 priority patent/US20220207141A1/en
Publication of KR20220097767A publication Critical patent/KR20220097767A/ko
Application granted granted Critical
Publication of KR102491451B1 publication Critical patent/KR102491451B1/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/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치는 입력정보로부터 입력벡터를 생성하는 전처리부와, 심층신경망모델을 통해 상기 입력벡터에 대해 복수의 계층의 학습된 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 분류부와, 상기 잠재벡터를 양자화하여 이진 벡터 형태로 악성코드의 시그니처를 생성하는 시그니처생성부를 포함한다.

Description

심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus for generating signature that reflects the similarity of the malware detection classification system based on deep neural networks, method therefor, and computer recordable medium storing program to perform the method}
본 발명은 시그니처 생성 기술에 관한 것으로, 보다 상세하게는, 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
수많은 변종 악성코드가 매일 생성되고 있고, 기존의 탐지 방법을 회피하는 변종 악성코드를 생성하는 방법이 발전하고 있다. 이로 인해 기존의 암호학적 해시 함수 기반의 시그니처 생성 방법뿐만 아니라 LSH(Locality sensitive hashing)로 대표되는 파일의 지역적 변화에 강건한 시그니처 생성 방법도 무력화되고 있다. 이를 해결하기 위해 변종 악성코드의 다형적 특성에 대응할 수 있는 시그니처 생성 방법이 필요하다.
한국공개특허 제2015-0133498호 2015년 11월 30일 공개 (명칭: 프로그램의 시그니처를 생성하는 시그니처 생성 장치 및 방법, 시그니처의 악성 코드를 검출하는 악성 코드 검출 장치 및 방법)
본 발명의 목적은 심층신경망을 기반으로 악성코드를 탐지하는 분류 체계의 유사도를 반영한 악성코드의 시그니처를 생성할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치는 악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력정보로부터 입력벡터를 생성하는 전처리부와, 심층신경망 모델을 통해 상기 입력벡터에 대해 복수의 계층의 학습된 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 분류부와, 상기 잠재벡터를 양자화하여 이진 벡터 형태로 악성코드의 시그니처를 생성하는 시그니처생성부를 포함한다.
상기 장치는 악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류에 따라 기댓값을 설정하고, 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고, 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 출력값을 산출하면, 산출된 출력값과 상기 알려진 악성코드 분류에 따라 설정된 기댓값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 분류학습부를 더 포함한다.
상기 장치는 악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류의 센터벡터를 기댓값으로 설정하고, 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고, 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하면, 산출된 잠재벡터와 상기 알려진 악성코드 분류의 센터벡터 간의 거리가 최소화되도록 상기 심층신경망모델의 가중치를 수정하는 거리함수학습부를 더 포함한다.
상기 거리함수학습부는 목적 함수
Figure 112020143971843-pat00001
의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며, 상기 Lc는 잠재벡터와 센터벡터의 거리가 최소화되도록 하는 목적 함수이고, 상기 λ는 거리함수학습부의 목적 함수의 연산 결과값이 심층신경망모델의 가중치 학습에 반영되는 비율이고, 상기 N은 학습용 입력벡터의 개수이고, 상기 i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, 상기 Cyi는 i번째 학습용 입력벡터의 악성코드 분류의 센터벡터이고, 상기 ei는 i 번째 학습용 입력벡터의 잠재벡터인 것을 특징으로 한다.
상기 장치는 악성코드 분류가 알려진 학습용 입력벡터에 대해 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값을 기댓값으로 설정하고, 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고, 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하면, 산출된 잠재벡터의 각 요소의 값과 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 이진화학습부를 더 포함한다.
상기 이진화학습부는 목적 함수
Figure 112020143971843-pat00002
의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며, 상기 Lb는 잠재벡터의 값이 이진화되도록(k1+k2 또는 k1-k2에 가까워지도록)하는 목적 함수이고, 상기 η 는 상기 목적 함수의 연산 결과값이 가중치 학습에 반영되는 비율이고, 상기 N은 학습용 입력벡터의 개수이고, 상기 M은 잠재벡터의 길이이고, 상기 i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, 상기 j는 1~M번째 잠재벡터의 요소 중 j번째 요소를 나타내며, 상기 bij는 i번째 학습용 입력벡터의 잠재벡터의 j번째 요소의 값인 것이고, 상기 k1은 상기 기준값이고, 상기 k2는 상기 이격값인 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법은 전처리부가 악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력정보로부터 입력벡터를 생성하는 단계와, 분류부가 심층신경망 모델을 통해 상기 입력벡터에 대해 복수의 계층의 학습된 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계와, 시그니처생성부가 상기 잠재벡터를 양자화하여 이진 벡터 형태로 악성코드의 시그니처 벡터를 생성하는 단계를 포함한다.
상기 방법은 상기 입력벡터를 생성하는 단계 전, 상기 전처리부가 악성코드 분류가 알려진 학습용 입력벡터를 생성하는 단계와, 분류학습부가 상기 학습용 입력벡터에 대해 상기 알려진 악성코드 분류에 따라 기댓값을 설정하는 단계와, 상기 분류학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계와, 상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 출력값을 산출하는 단계와, 상기 분류학습부가 상기 산출된 출력값과 상기 알려진 악성코드 분류에 따라 설정된 기댓값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 분류 학습 단계를 더 포함한다.
상기 방법은 상기 입력벡터를 생성하는 단계 전, 상기 분류 학습 단계 후, 거리함수학습부가 악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류의 센터벡터를 기댓값으로 설정하는 단계와, 상기 거리함수학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계와, 상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계와, 상기 거리함수학습부가 상기 산출된 잠재벡터와 상기 알려진 악성코드 분류의 센터벡터 간의 상기 벡터공간 상에서의 거리가 최소화되도록 상기 심층신경망모델의 가중치를 수정하는 거리함수 학습 단계를 더 포함한다.
상기 거리함수 학습 단계는 상기 거리함수학습부가 목적 함수
Figure 112020143971843-pat00003
의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며, 상기 Lc는 잠재벡터와 센터벡터의 거리가 최소화되도록 하는 목적 함수이고, 상기 λ는 거리함수학습부의 목적 함수의 연산 결과값이 심층신경망모델의 가중치 학습에 반영되는 비율이고, 상기 N은 학습용 입력벡터의 개수이고, 상기 i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, 상기 Cyi는 i번째 학습용 입력벡터의 악성코드 분류의 센터벡터이고, 상기 ei는 i 번째 학습용 입력벡터의 잠재벡터인 것을 특징으로 한다.
상기 방법은 상기 입력벡터를 생성하는 단계 전, 상기 거리함수 학습 단계 후, 이진화학습부가 악성코드 분류가 알려진 학습용 입력벡터에 대해 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값을 기댓값으로 설정하는 단계와, 상기 이진화학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계와, 상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계와, 상기 이진화학습부가 상기 산출된 잠재벡터의 각 요소의 값과 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 이진화 학습 단계를 더 포함한다.
상기 이진화 학습 단계는 상기 이진화학습부가 목적 함수
Figure 112020143971843-pat00004
의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며, 상기 Lb는 잠재벡터의 값이 이진화되도록(k1+k2 또는 k1-k2에 가까워지도록)하는 목적 함수이고, 상기 η는 상기 목적 함수의 연산 결과값이 가중치 학습에 반영되는 비율이고, 상기 N은 학습용 입력벡터의 개수이고, 상기 M은 잠재벡터의 길이이고, 상기 i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, 상기 j는 1~M번째 잠재벡터의 요소 중 j번째 요소를 나타내며, 상기 bij는 i번째 학습용 입력벡터의 잠재벡터의 j번째 요소의 값인 것이고, 상기 k1은 상기 기준값이고, 상기 k2는 상기 이격값인 것을 특징으로 한다.
본 발명의 다른 견지에 따르면, 전술한 본 발명의 실시예에 따른 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법을 실행시키는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공할 수 있다.
본 발명에 따르면, 악성코드의 다양한 특징들로부터 악성코드 탐지 분류체계의 유사도를 반영하도록 학습되는 심층신경망모델이 생성하는 악성코드의 시그니처를 통해 기존의 시그니처 방식이 가지는 정적 파일에 대한 간결한 표현에 대한 장점을 유지하면서도 기존 방식의 취약점인 다형적 특성을 가진 변종 악성코드를 탐지할 수 있고 악성코드간의 유사도를 평가할 수 있다.
도 1은 본 발명의 실시예에 따른 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치의 구성을 설명하기 위한 도면이다.
도 2 내지 도 5는 본 발명의 실시예에 따른 입력 정보를 임베딩하여 입력 벡터를 생성하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 심층신경망 모델을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 학습 방법에 따른 분류 특징을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 심층신경망 모델을 학습하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시예에 따른 심층신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법을 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
아울러, 본 발명의 범위 내의 실시예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다. 이하의 설명 및 특허 청구 범위에서, 컴퓨터 판독가능 명령어는, 예를 들면, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는, 예를 들면, 어셈블리어, 또는 심지어는 소스코드와 같은 이진, 중간 포맷 명령어일 수 있다.
먼저, 본 발명의 실시예에 따른 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치의 구성을 설명하기 위한 도면이다. 도 2 내지 도 5는 본 발명의 실시예에 따른 입력 정보를 임베딩하여 입력 벡터를 생성하는 방법을 설명하기 위한 도면이다. 도 6은 본 발명의 일 실시예에 따른 심층신경망 모델을 설명하기 위한 도면이다. 도 7은 본 발명의 일 실시예에 따른 학습 방법에 따른 분류 특징을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 시그니처생성장치(10)는 심층신경망(DNN: Deep Neural Network) 모델(210)을 이용하여 악성코드 분류에 대한 시그니처를 생성하기 위한 것이다. 이러한 시그니처생성장치(10)는 전처리부(100), 분류부(200), 학습부(300) 및 시그니처생성부(400)를 포함한다.
전처리부(100)는 심층신경망모델(210)에 입력되는 입력벡터(IV: Input Vector)를 생성하기 위한 것이다. 심층신경망모델(210)에 입력으로 주어지는 정보는 악성 코드 또는 정상 파일의 이진코드 및 파일 크기, 엔트리포인트, 헤더 등의 메타데이터 등을 포함할 수 있다. 전처리부(100)는 입력으로 주어지는 정보를 심층신경망 모델의 입력 규격에 맞춰 벡터화(vectorize)한다. 즉, 전처리부(100)는 악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력정보를 소정의 벡터공간에 임베딩하여 입력벡터(IV)를 생성하거나, 악성코드 분류가 알려진 파일에 대한 정보인 입력정보를 소정의 벡터공간에 임베딩(embedding)하여 학습용 입력벡터(IV)를 생성할 수 있다. 일례로, 도 2를 참조하면, 전처리부(100)는 악성코드 분류가 알려지지 않거나, 알려진 바이너리 파일(bf: binary file)에 존재하는 명령어 시퀀스(is: instruction sequence)와 바이트 시퀀스(bs: byte sequence)를 임베딩하여 입력벡터(IV)를 생성할 수 있다. 다른 예로, 전처리부(100)는 도 3에 도시된 바와 같이, 악성코드 분류가 알려지지 않거나, 알려진 악성코드 실행파일을 섬네일(thumbnail)화 하여 입력벡터(IV)로 사용할 수 있다. 또 다른 예로, 도 4에서 보듯이, 전처리부(100)는 악성코드 분류가 알려지지 않거나, 알려진 파일로부터 얻을 수 있는 파일 크기, 만들어진 날짜, 인증서 유무, 시작 주소, 섹터 정보 등과 같은 다양한 메타데이터(Metadata)를 임베딩하여 입력벡터(IV)를 생성할 수 있다. 또 다른 예로, 도 5에서 보듯이, 전처리부(100)는 악성코드 분류가 알려지지 않거나, 알려진 이진코드(bc: binary code)로부터 함수의 호출 그래프(cg: call graph)를 추출하고, 함수의 호출 관계를 바탕으로 유사한 부분그래프로 구성된 함수들을 유사한 벡터로 표현하여 입력벡터(IV)를 생성할 수 있다.
분류부(200)는 기본적으로, 심층신경망모델(210)을 실행시킬 수 있다. 분류부(200)는 심층신경망모델(210)을 통해 입력벡터(IV)에 대해 복수의 계층의 학습된 가중치(w)가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 입력벡터(IV)와의 유사도를 나타내는 잠재벡터(LV: Latent Vector)를 산출하고, 잠재벡터로부터 출력값을 산출할 수 있다.
심층신경망모델(210)은 복수의 계층을 포함하며, 복수의 계층 각각은 가중치가 적용되는 복수의 연산을 포함한다. 이러한 심층신경망모델(210)은 입력층(IL), 은닉층(HL) 및 출력층(OL)을 포함한다. 또한, 은닉층(HL)은 복수의 계층을 포함할 수 있다. 심층신경망모델(210)은 CNN(Convolutional Neural Network, 합성곱신경망), RNN(Recurrent Neural Network, 순환신경망), LSTM(Long Short Term Memory, 장단기메모리) 등을 예시할 수 있다.
본 발명의 실시예에 따른 심층신경망모델(210)의 일 예로, 도 6에 합성곱신경망(CNN)이 도시되었다. 합성곱신경망(CNN) 또한 입력층(IL), 은닉층(HL) 및 출력층(OL)을 포함할 수 있다. 입력층(IL)에는 전처리부(100)가 생성한 입력벡터(IV)가 입력된다. 이러한 입력벡터(IV)는 입력벡터(IV)의 기초가 되는 예컨대, 악성 코드 또는 정상 파일의 이진코드 및 파일 크기, 엔트리포인트, 헤더 등의 메타데이터 등의 입력 정보가 벡터화된 것이기 때문에 입력벡터(IV)와 입력벡터(IV)의 기초가 되는 파일은 동일성을 유지하며, 입력벡터(IV)에 대한 분석을 통해 입력벡터(IV)의 기초가 되는 파일이 속하는 악성코드 분류를 도출할 수 있다.
합성곱신경망(CNN)의 은닉층(HL)은 적어도 하나의 컨벌루션계층(CL), 적어도 하나의 풀링계층(PL) 및 적어도 하나의 완전연결층(FL)을 포함한다. 컨벌루션계층(CL)은 가중치(w) 행렬인 필터를 이용하여 컨볼루션(convolution) 연산을 수행하며, 풀링계층(PL) 또한 가중치(w) 행렬인 필터를 이용하여 풀링(pooling 또는 subsampling) 연산을 수행하고, 완전연결층(FL)은 가중치가 적용되는 활성화함수에 의한 연산을 수행한다. 여기서, 활성화함수는 시그모이드(Sigmoid), 하이퍼볼릭탄젠트(tanh: Hyperbolic tangent), ELU(Exponential Linear Unit), ReLU(Rectified Linear Unit), Leakly ReLU, Maxout, Minout, Softmax 등을 예시할 수 있다. 합성곱신경망(CNN)의 은닉층(HL)은 입력벡터(IV)에 대해 가중치가 적용되는 복수의 연산을 수행한다. 전술한 바와 같이, 가중치가 적용되는 연산은, 컨볼루션(convolution) 연산, 풀링(pooling 또는 subsampling) 연산, 활성화함수에 의한 연산 등을 예시할 수 있다. 특히, 은닉층(HL)의 출력은 잠재벡터(LV)가 된다. 즉, 은닉층(HL)의 마지막 계층이 완전연결층(FL)일 때, 잠재벡터(LV)는 완전연결층(FL)의 모든 노드의 출력값을 연걸한 값이 될 수 있다. 예컨대, 완전연결층(FL)의 모든 노느의 개수가 x개이고, x개의 노드의 출력이 b1, b2, ..., bx라면, 잠재벡터(LV)는 [b1, b2, ..., bx]가 된다.
출력층(OL)은 복수의 출력노드(O1 내지 Oy)를 포함한다. 복수의 출력노드(O1 내지 Oy) 각각은 은닉층(HL)의 마지막 계층, 예컨대, CNN의 경우, 완전연결층(FL)의 복수의 노드값 각각의 출력값에 대해 가중치가 곱해진 값을 모두 합산한 값을 입력받는다. 그러면, 복수의 출력노드(O1 내지 Oy) 각각은 입력된 값에 대해 활ㅅ어화함수에 의한 연산을 수행하여 출력값을 산출한다. 복수의 출력노드(O1 내지 Oy) 각각은 악성코드 분류에 해당한다. 복수의 출력노드(O1 내지 Oy) 각각의 출력값은 해당 출력노드(O1 내지 Oy)에 대응하는 악성코드 분류와 입력벡터(IV)와의 유사도를 나타낸다. 즉, 복수의 출력노드(O1 내지 Oy) 각각의 출력값은 입력벡터(IV)의 기초가 되는 파일이 복수의 출력노드(O1 내지 Oy) 각각에 대응하는 악성코드 분류에 속할 확률을 나타낸다.
예컨대, 학습하고자 하는 악성코드 분류가 APT, DDOS, RAT, Ransomware, Trojan, Worm 등이라고 가정한다. 그러면, 제1 출력노드(O1)는 APT에 대응하며, 제2 출력노드(O2)는 DDOS에 대응하며, 제3 출력노드(O3)는 RAT에 대응하며, 제4 출력노드(O4)는 Ransomware에 대응하며, 제5 출력노드(O5)는 Trojan에 대응하며, 제6 출력노드(O6)는 Worm에 대응할 수 있다. 이에 따라, 제1 출력노드(O1)의 출력값(p1)은 입력벡터(IV)와 APT와의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 APT일 확률을 나타낸다. 제2 출력노드(O2)의 출력값(p2)은 입력벡터(IV)와 DDOS와의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 DDOS일 확률을 나타낸다. 제3 출력노드(O3)의 출력값(p3)은 입력벡터(IV)와 RAT과의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 RAT일 확률을 나타낸다. 제4 출력노드(O4)의 출력값(p4)은 입력벡터(IV)와 Ransomware와의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 Ransomware일 확률을 나타낸다. 제5 출력노드(O5)의 출력값(p5)은 입력벡터(IV)와 Trojan과의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 Trojan일 확률을 나타낸다. 그리고 제6 출력노드(O6)의 출력값(p6)은 입력벡터(IV)와 Worm과의 유사도, 즉, 입력벡터(IV)의 기초가 되는 파일이 Worm일 확률을 나타낸다. 예컨대, 제1 내지 제6 출력노드(O1 내지 O6) 각각의 출력값 p1, p2, p3, p4, p5, p6 = {0.04, 0.77, 0.12, 0.04, 0.02, 0.01]이라고 가정한다. 그러면, 입력벡터(IV)가 APT일 확률이 4%이고, 입력벡터(IV)가 DDOS일 확률이 77%이며, 입력벡터(IV)가 RAT일 확률이 12%이고, 입력벡터(IV)가 Ransomware일 확률이 4%이고, 입력벡터(IV)가 Trojan일 확률이 2%이고, 입력벡터(IV)가 Worm일 확률이 1%임을 나타낸다. 이에 따라, 입력벡터(IV)는 확률이 가장 높은 DDOS에 속하는 것으로 판단할 수 있다.
다시, 도 1을 참조하면, 학습부(300)는 심층신경망모델(210)을 학습시키기 위한 것이다. 학습부(300)는 분류학습부(310), 거리함수학습부(320) 및 이진화학습부(330)를 포함한다.
분류학습부(310)는 심층신경망모델(210)이 입력벡터(IV)에 대한 연산을 통해 입력벡터(IV)가 속한 악성코드 분류를 도출할 수 있도록 학습시키기 위한 것이다. 즉, 분류학습부(310)는 심층신경망모델(210)이 산출한 잠재벡터(LV)가 입력벡터(IV)의 악성코드 분류를 나타내도록 학습시킨다. 전처리부(100)는 악성코드 분류가 알려진 파일에 대한 정보인 입력정보를 소정의 벡터공간에 임베딩(embedding)하여 학습용 입력벡터(IV)를 생성할 수 있다. 그러면, 분류학습부(310)는 악성코드 분류가 알려진 학습용 입력벡터에 대해 알려진 악성코드 분류에 따라 기댓값을 설정한다. 예컨대, 학습하고자 하는 악성코드 분류가 APT, DDOS, RAT, Ransomware, Trojan, 및 Worm을 포함하는 6개의 악성코드 분류만 존재한다고 가정한다. 그러면, 분류학습부(310)는 학습용 입력벡터(IV)의 알려진 악성코드 분류에 따라 다음의 표 1과 같이 심층신경망모델(210)이 산출하는 출력값에 대한 기댓값을 원핫인코딩(one-hot-encoding) 벡터로 설정할 수 있다.
Figure 112020143971843-pat00005
표 1과 같이 기댓값을 설정한 후, 분류학습부(310)는 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력한다. 그러면, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 입력벡터(IV)와의 유사도를 나타내는 출력노드(O1 내지 O6)의 출력값 {p1, p2, p3, p4, p5, p6}을 산출할 것이다. 그러면, 분류학습부(310)는 심층신경망모델(210)이 산출한 출력값 {p1, p2, p3, p4, p5, p6}과 알려진 악성코드 분류에 따라 설정된 기댓값(표 1)과의 차이가 최소가 되도록 심층신경망모델(210)의 가중치(w)를 수정하는 가중치 학습을 수행한다. 이러한 가중치 학습을 위해 역전파 알고리즘이 적용될 수 있다. 이와 같이, 분류학습부(310)가 표 1과 같이 기댓값을 원핫인코딩(one-hot-encoding) 벡터를 통해 기댓값을 설정하여 심층신경망모델(210)에 대해 가중치 학습을 수행함으로써 심층신경망모델(210)은 서로 다른 악성코드의 특징을 구분하여 학습할 수 있다.
거리함수학습부(320)는 심층신경망모델(210)이 입력벡터(IV)에 대한 연산을 통해 산출된 잠재벡터(LV)를 산출했을 때, 같은 분류에 속한 악성코드들의 잠재벡터(LV)간의 벡터공간 상에서의 유클리드 거리가 가까워지도록 심층신경망모델(210)을 학습시키기 위한 것이다. 전처리부(100)는 악성코드 분류가 알려진 파일에 대한 정보인 입력정보를 소정의 벡터공간에 임베딩(embedding)하여 학습용 입력벡터(IV)를 생성할 수 있다. 그러면, 거리함수학습부(320)는 악성코드 분류가 알려진 학습용 입력벡터(IV)에 대해 알려진 악성코드 분류의 센터벡터(CV: center vector)를 심층신경망모델(210)이 산출하는 잠재벡터(LV)에 대한 기댓값으로 설정한다. 센터벡터(CV)는 잠재벡터(LV)와 동일한 벡터공간에 임베딩된 벡터이며, 센터벡터(CV)는 악성코드 분류에 따라 미리 설정된다. 센터벡터(CV)를 설정할 때, 서로 다른 악성코드의 분류와 검색에 대한 영향을 줄이기 위해 각 센터벡터(CV)간 거리는 벡터공간 상에서 기 설정된 유클리드 거리 이상 이격되도록 설정된다. 또한, 센터벡터(CV)는 사전에 설정한 값을 고정으로 사용할 수도 있고, 잠재벡터(LV)와 센터벡터(CV)의 거리가 최소화되도록 학습하는 과정에서 센터벡터(CV) 또한 악성코드의 잠재벡터(LV)가 위치한 방향으로 업데이트 될 수도 있다.
기댓값을 설정한 후, 거리함수학습부(320)는 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력한다. 그러면, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 입력벡터(IV)와의 유사도를 나타내는 잠재벡터(LV)를 산출할 것이다. 그러면, 거리함수학습부(320)는 심층신경망모델(210)이 산출한 잠재벡터(LV)와 기댓값인 알려진 악성코드 분류의 센터벡터(CV: center vector)에 간의 벡터공간 상에서의 거리가 최소화되도록 심층신경망모델(210)의 가중치(w)를 수정하는 가중치 학습을 수행한다. 이때, 거리함수학습부(320)는 다음의 수학식 1과 같은 목적함수의 연산 결과값이 최소화되도록 심층신경망모델(210)의 가중치를 수정한다.
Figure 112020143971843-pat00006
여기서, Lc는 잠재벡터와 센터벡터의 거리가 최소화되도록 하는 목적 함수이고, λ는 거리함수학습부의 목적 함수의 연산 결과값이 심층신경망모델의 가중치 학습에 반영되는 비율이다. 또한, N은 학습용 입력벡터의 개수이고, 상기 i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, Cyi는 i번째 학습용 입력벡터의 악성코드 분류의 센터벡터이고, 상기 ei는 i 번째 학습용 입력벡터의 잠재벡터를 나타낸다.
도 7의 (A)는 벡터공간 상에서 거리가 최소화되도록 심층신경망모델(210)의 가중치(w)를 학습하지 않은 경우의 잠재벡터(LV)의 분포를 나타내며, 도 7의 (B)는 벡터공간 상에서 거리가 최소화되도록 심층신경망모델(210)의 가중치(w)를 학습한 경우의 잠재벡터(LV)의 분포를 나타낸다. 도 7의 (A)와 같은 경우, 단순히, 잠재벡터(LV)가 속한 악성코드 분류만 가능하며, 악성코드간의 유사도, 예컨대, 벡터공간 상에서의 거리를 나타낼 수 없다. 하지만, 거리함수학습부(320)에 의해 벡터공간 상에서 거리가 최소화되도록 심층신경망모델(210)의 가중치(w)를 학습한 경우, 악성코드 분류 각각의 센터벡터(CV)를 기준으로 유사도를 나타낼 수 있으며 악성코드 분류 간의 분류의 성능 역시 향상된다.
즉, 분류학습부(310)에 의해 원핫인코딩(one-hot-encoding) 벡터를 통해 기댓값을 설정하여 수행된 가중치 학습만 수행된다면, 심층신경망모델(210)의 연산 결과인 잠재벡터(LV)는 서로 다른 악성코드를 구분할 수 있지만, 원핫인코딩(one-hot-encoding) 벡터를 이용하였기 때문에 실제 유사한 정도에 대한 정보는 제공할 수 없다. 따라서 심층신경망모델(210)이 거리함수학습부(320)를 통해 서로 다른 악성코드 각각을 대표하는 복수의 센터벡터와의 거리를 학습함으로써, 심층신경망모델(210)이 산출한 잠재벡터는 악성코드를 구분하는 정보 뿐만 아니라, 어느 악성코드와 어느 정도 유사한지를 나타내는 유사도에 대한 정보를 가질 수 있다.
이진화학습부(330)는 잠재벡터(LV)의 각 요소값이 소정의 기준값을 기준으로 이진화되도록 심층신경망모델(210)을 학습시키기 위한 것이다. 즉, 이진화학습부(330)는 잠재벡터(LV)를 구성하는 각 요소가 양자화되어 1 또는 0의 값을 갖게 되더라도 동일한 악성코드 분류의 센터벡터(CV)와의 거리가 최소화되면서 잠재벡터(LV)들 사이의 거리가 가까워지도록 하기 위한 것이다. 전처리부(100)는 악성코드 분류가 알려진 파일에 대한 정보인 입력정보를 소정의 벡터공간에 임베딩(embedding)하여 학습용 입력벡터(IV)를 생성한다. 그런 다음, 이진화학습부(330)는 악성코드 분류가 알려진 학습용 입력벡터(IV)에 대해 이진화의 기준이 되는 기준값(k1)과 기준값으로부터 이격되는 정도를 결정하는 이격값(k2)을 이용하여 심층신경망모델(210)이 산출하는 잠재벡터(LV)에 대한 기댓값을 설정한다. 즉, 기댓값은 기준값에 이격값을 더한 값(k1+k2)과, 기준값에 이격값을 차감한 값(k1-k2)으로 설정된다. 기댓값을 설정한 후, 이진화학습부(330)는 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력한다. 그러면, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 입력벡터(IV)와의 유사도를 나타내는 잠재벡터(LV)를 산출할 것이다. 그러면, 이진화학습부(330)는 잠재벡터(LV)의 각 요소의 값과 기댓값(k1+k2 또는 k1-k2)과의 차이가 최소가 되도록 심층신경망모델(210)의 가중치(w)를 수정하는 가중치 학습을 수행한다. 다른 말로, 이진화학습부(330)는 심층신경망모델(210)이 산출한 잠재벡터(LV)의 각 요소의 값이 기준값에 이격값을 더한 값(k1+k2) 혹은 기준값에 이격값을 차감한 값(k1-k2)에 근접하여 이진화되도록 심층신경망모델(210)의 가중치(w)를 수정한다.
이때, 이진화학습부(330)는 다음의 수학식 2와 같은 목적함수의 연산 결과값이 최소화되도록 심층신경망모델(210)의 가중치를 수정할 수 있다.
Figure 112020143971843-pat00007
여기서, Lb는 잠재벡터의 값이 k1+k2 와 k1-k2에 이진화되도록 하는 목적 함수이고, η는 목적 함수의 연산 결과값이 가중치 학습에 반영되는 비율이다. 또한, N은 학습용 입력벡터의 개수이고, M은 잠재벡터의 길이이고, i는 1~N번째 학습용 입력벡터 중 i번째임을 나타내며, j는 1~M번째 잠재벡터의 요소 중 j번째 요소를 나타낸다. 그리고 bij는 i번째 학습용 입력벡터의 잠재벡터의 j번째 요소의 값을 나타내고, k1은 상기 기준값이고, 상기 k2는 상기 이격값을 나타낸다. 여기서, k1 및 k2는 양의 실수이다.
분류학습부(310) 및 거리함수학습부(320)에 의한 가중치 학습만 이루어진 경우, 심층신경망모델(210)의 연산 결과인 잠재벡터(LV)는 복수의 악성코드 각각에 대한 분류 정보 및 유사도 정보를 가지고 있지만, 그 값의 분포가 정규화(normalized)되어 있지 않기 때문에 잠재벡터(LV)에 대한 후속의 연산이 용이하지 않다. 예컨대, 잠재벡터(LV)가 길이 3의 벡터라고 가정하면, 잠재벡터(LV)의 각 요소가 [249050.0, -0.10688, 0.0001667]과 같이 출력될 수 있다. 이러한 경우, 서로 다른 스케일로 인해 후속의 연산(computing process) 시, 너무 많은 메모리가 소요된다. 하지만, 본 발명은 이진화학습부(330)를 통해 수학식 2에 도시된 바와 같이, 잠재벡터의 값이 소정의 기준값(k1) 및 이격값(k2)을 통해 이진화되도록 심층신경망모델(210)을 학습시키기 때문에 [249050.0, -0.10688, 0.0001667]과 같이 출력되지 않고, [0.4981, -0.5344, 0.5001]과 같이 출력된다. 이와 같이, 이진화학습부(330)에 의한 학습을 통해 잠재벡터(LV)의 모든 요소의 값이 소정 범위 내로 정규화되어 잠재벡터(LV)에 대한 후속의 연산(computing process)에 유리하다. 더욱이, 일반적인 경우, 벡터의 각 원소의 값이 0보다 작으면 0으로, 0이상이면 1로 양자화하여 시그니처를 생성하였지만, 본 발명의 실시예에 따른 이진화학습부(330)의 학습을 통해 잠재벡터(LV)의 각 요소값이 기준값(k1)보다 작으면 0으로 기준값(k1)보다 크면 1로 양자화할 수 있다.
다시, 도 1을 참조하면, 시그니처생성부(400)는 분류부(200)가 출력한 잠재벡터(LV)를 양자화(quantization)하여 이진 벡터 형태로 악성코드의 시그니처를 생성한다. 예컨대, 기준값(k1)이 0이고, 이격값(k2)이 0.5라고 가정한다. 그러면, 이진화학습부(330)에 의해 학습된 후의 잠재벡터(LV)의 각 요소의 값은 0.5나 -0.5 근처의 값, 전술한 예와 같이, [0.4981, -0.5344, 0.5001]와 같이 출력되기 때문에 데이터 저장이나 전송 등에서의 이점이 없다. 따라서 이러한 잠재벡터(LV)를 양자화(quantization)하여 1이나 0의 값으로 바꿔줘서 데이터를 표현하는데 사용되는 bit수를 줄이는 것이 바람직하다. 예컨대, 시그니처생성부(400)는 잠재벡터 [0.4981, -0.5344, 0.5001]을 양자화하여 이진 벡터 형태인 악성코드의 시그니처 벡터 [1, 0, 1]을 생성할 수 있다. 이에 따라, 벡터의 각 요소당 1 bit만을 이용하여 값을 표현할 수 있기 때문에 정보의 저장 및 전송에 유리하다.
다음으로, 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법에 대해서 설명하기로 한다. 시그니처 생성 방법의 설명에 앞서 심층신경망 모델을 학습하는 방법에 대해서 설명하기로 한다. 도 8은 본 발명의 실시예에 따른 심층신경망 모델을 학습하는 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 학습부(300)의 분류학습부(310)는 S110 단계에서 분류 학습을 수행한다. 즉, 분류학습부(310)는 악성코드 분류가 알려진 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력하고, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 잠재벡터를 산출하면, 심층신경망모델(210)이 산출한 잠재벡터와 알려진 악성코드 분류에 따라 설정된 기댓값과의 차이가 최소가 되도록 심층신경망모델(210)의 가중치(w)를 수정하는 학습을 수행한다.
분류학습부(310)에 의한 분류 학습이 완료되면, 학습부(300)의 거리함수학습부(320)는 S120 단계에서 거리함수 학습을 수행한다. 즉, 거리함수학습부(320)는 악성코드 분류가 알려진 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력하고, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 잠재벡터(LV)를 산출하면, 거리함수학습부(320)는 수학식 1에 따라 잠재벡터(LV)와 기댓값인 알려진 악성코드 분류의 센터벡터(CV)에 간의 벡터공간 상에서의 거리가 최소화되도록 심층신경망모델(210)의 가중치(w)를 수정하는 학습을 수행한다.
거리함수학습부(320)에 의한 학습이 완료되면, 학습부(300)의 이진화학습부(330)는 S130 단계에서 이진화 학습을 수행한다. 즉, 이진화학습부(330)는 학습용 입력벡터(IV)를 심층신경망모델(210)에 입력하고, 심층신경망모델(210)이 학습용 입력벡터(IV)에 대해 학습되지 않은 가중치(w)가 적용되는 복수의 연산을 수행하여 잠재벡터(LV)를 산출하면, 이진화학습부(330)는 수학식 2에 따라 잠재벡터(LV)의 각 요소의 값과 기댓값(k1+k2 또는 k1-k2)과의 차이가 최소가 되도록 심층신경망모델(210)의 가중치(w)를 수정하는 학습을 수행한다.
전술한 바와 같이 학습이 완료되면, 학습된 가중치(w)에 따라 본 발명의 실시예에 따른 심층신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법을 수행할 수 있다. 도 9는 본 발명의 실시예에 따른 심층신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 전처리부(100)는 S210 단계에서 악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력 정보를 소정의 벡터공간에 임베딩하여 입력벡터(IV)를 생성한다. 여기서, 입력 정보는 악성 코드 또는 정상 파일의 이진코드 및 파일 크기, 엔트리포인트, 헤더 등의 메타데이터 등을 포함할 수 있다.
다음으로, 분류부(200)는 S220 단계에서 전처리부(100)로부터 입력된 입력벡터(IV)로부터 적어도 하나의 악성코드 분류와 입력벡터(IV)와의 유사도를 나타내는 잠재벡터(LV)를 산출한다. 이때, 분류부(200)는 심층신경망모델(210)을 통해 입력벡터(IV)에 대한 복수의 계층의 학습된 가중치(w)가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 입력벡터와의 유사도를 나타내는 잠재벡터를 산출한다.
이어서, 시그니처생성부(400)는 S230 단계에서 잠재벡터(LV)를 양자화하여 이진 벡터 형태로 악성코드의 시그니처 벡터를 생성한다.
전술한 바와 같은 본 발명에 따르면, 분류학습부(310) 및 거리함수학습부(320)에 의해 학습된 심층신경망모델(210)은 임의의 입력벡터(IV)에 대한 잠재벡터(LV)가 동일한 악성코드 분류의 센터벡터(CV)와 가까워지도록 생성할 수 있다. 따라서 임의의 입력벡터(IV)로부터 도출된 잠재벡터(LV)는 유클리드 거리가 소정 거리 미만으로 가까운 잠재벡터(LV)와 동일한 악성코드 분류를 가지는 것으로 결정할 수 있다. 예컨대, 악성코드 샘플(Q)이 주어졌을 때, 샘플(Q)에 대한 잠재벡터(VQ)와 소정 거리 이내의 잠재벡터가 복수개 추출되면, 샘플(Q)에 대한 잠재벡터(VQ)는 추출된 잠재벡터와 동일한 악성코드 분류에 속하는 것으로 결정할 수 있다.
더욱이, 악성코드 분류가 알려지지 않은 어떤 악성코드 샘플이 주어졌을 때 해당 악성코드와 가장 유사한 특징을 가진 샘플을 잠재벡터(LV) 간의 거리 순서로 제공할 수 있다. 예컨대, A.exe와 가장 유사한 악성코드 샘플 3개를 요청했을 때 이미 학습된 악성코드 샘플 중 A.exe와 잠재벡터(LV) 거리가 가장 가까운 순서대로 B.exe, C.exe, D.exe를 반환할 수 있다.
전술한 분류 방법은 시그니처 벡터에도 동일하게 적용될 수 있다. 악성코드 분류가 알려지지 않은 악성코드에 대한 입력벡터(IV)에 대한 심층신경망모델(210)의 출력인 잠재벡터(LV)가 [0.4922, -0.5201, -0.471, 0.5113, 0.503]이라고 가정한다. 이러한 잠재벡터(LV)를 이진화한 시그니처 벡터는 [1, 0, 0, 1, 1]이 되며, 대상 시그니처 벡터라고 칭하기로 한다. 이때, 벡터공간 상에서 대상 시그니처 벡터와 기 저장된 복수의 시그니처 벡터와의 거리를 산출한다. 그리고 대상 시그니처 벡터와의 거리가 가장 가까운 적어도 하나의 시그니처 벡터 중 가장 많은 수의 시그니처 벡터가 속한 악성코드 분류를 대상 시그니처 벡터의 악성코드 분류로 결정할 수 있다.
예를 들어, 기존 악성코드 시그니처 벡터를 저장한 데이터베이스가 다음의 표 2와 같다고 가정한다.
[1, 0, 0, 1, 1] : Trojan
[0, 0, 0, 1, 1] : APT
[1, 0, 1, 0, 1] : Worm
[1, 1, 0, 1, 1] : Trojan
[1, 0, 0, 1, 1] : Worm
[1, 0, 0, 1, 1] : Worm
[0, 0, 0, 1, 1] : APT
[1, 0, 0, 1, 1] : Trojan
[1, 0, 0, 1, 0] : Trojan
[1, 0, 1, 0, 1] : Worm
[1, 0, 0, 1, 1] : Trojan
[1, 0, 1, 1, 1] : Trojan
......
이때, 벡터공간 상에서 대상 시그니처 벡터와 기 저장된 복수의 시그니처 벡터와의 거리를 산출하면 다음의 표 3과 같이 정렬할 수 있다.
Trojan Worm APT
[1,0,0,1,1] 4 2 1
[1,0,1,0,1] 0 2 0
[0,0,0,1,1] 1 0 1
[1,0,1,1,1] 1 0 0
대상 시그니처 벡터 [1, 0, 0, 1, 1]과의 거리가 가장 가까운(거리 0) 시그니처 벡터의 악성코드 분류에 따르면, Trojan이 4개이고, Worm이 2개이고, APT가 1개 존재한다. 이에 따라, 대상 시그니처 벡터 [1, 0, 0, 1, 1]의 악성코드 분류를 Trojan으로 결정할 수 있다.
또한, 악성코드 분류가 알려지지 않은 어떤 악성코드 샘플이 주어졌을 때 해당 악성코드와 가장 유사한 특징을 가진 샘플을 시그니처 벡터 간의 거리 순서로 제공할 수 있다. 예컨대, A.exe와 가장 유사한 악성코드 샘플 3개를 요청했을 때 이미 학습된 악성코드 샘플 중 A.exe와 시그니처 벡터 간의 거리가 가장 가까운 순으로 B.exe, C.exe, D.exe를 반환할 수 있다.
종래 기술에 따르면, 학습 데이터로부터 복수의 시그니처를 추출한 후 시그니처별로 중요도에 따라 구간 및 빈도수를 설정하여, 중요도가 높은 시그니처를 통해 악성코드를 분류한다. 즉, 종래 기술은 중요도가 높은 시그니처의 추출을 위해, 학습데이터를 실행한 후 행위관찰을 통해 추출한다. 반면, 본 발명은 악성코드의 시그니처를 추출함에 있어서, 행위 관찰을 요하지 않으며, 또한 악성코드에 대해 생성된 잠재벡터는 동일한 악성코드 분류 별로 군집화되므로, 분류의 정확도가 향상될 수 있다.
한편, 앞서 설명된 본 발명의 실시예에 따른 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다.
이상에서 설명한 바와 같이, 본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안 되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
본 발명의 실시예는 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 따라서 본 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
100: 전처리부
200: 심층신경망모델
300: 학습부
310: 분류학습부
320: 거리함수학습부
330: 이진화학습부
400: 시그니처생성부

Claims (13)

  1. 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치에 있어서,
    악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력정보로부터 입력벡터를 생성하는 전처리부;
    심층신경망 모델을 통해 상기 입력벡터에 대해 복수의 계층의 학습된 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 분류부; 및
    상기 잠재벡터를 양자화하여 이진 벡터 형태로 악성코드의 시그니처를 생성하는 시그니처생성부;를 포함하고,
    상기 심층신경망 모델은, 상기 심층신경망 모델이 산출한 잠재벡터가 입력벡터의 악성코드 분류를 나타내도록 학습시키는 분류학습부; 상기 심층신경망 모델이 입력벡터에 대한 연산을 통해 잠재벡터를 산출할 때 같은 분류에 속한 악성코드들의 잠재벡터 간의 벡터공간 상에서의 거리가 가까워지도록 학습시키는 거리함수학습부; 및 상기 심층신경망 모델이 산출한 잠재벡터의 각 요소값이 소정의 기준값을 기준으로 이진화되도록 학습시키는 이진화학습부;를 포함하는 학습부에 의해 학습되고,
    상기 이진화학습부는, 악성코드 분류가 알려진 학습용 입력벡터에 대해 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값을 기댓값으로 설정하고, 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고, 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하면, 산출된 잠재벡터의 각 요소의 값과 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 것을 특징으로 하는,
    시그니처 생성 장치.
  2. 제1항에 있어서,
    악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류에 따라 기댓값을 설정하고,
    상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고,
    상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 출력값을 산출하면,
    산출된 출력값과 상기 알려진 악성코드 분류에 따라 설정된 기댓값과의 차이가 최소가 되도록
    상기 심층신경망모델의 가중치를 수정하는
    분류학습부;
    를 더 포함하는 것을 특징으로 하는
    시그니처 생성 장치.
  3. 제1항에 있어서,
    악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류의 센터벡터를 기댓값으로 설정하고,
    상기 학습용 입력벡터를 상기 심층신경망모델에 입력하고,
    상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하면,
    산출된 잠재벡터와 상기 알려진 악성코드 분류의 센터벡터 간의 거리가 최소화되도록
    상기 심층신경망모델의 가중치를 수정하는
    거리함수학습부;
    를 더 포함하는 것을 특징으로 하는
    시그니처 생성 장치.
  4. 제3항에 있어서,
    상기 거리함수학습부는
    목적 함수
    Figure 112020143971843-pat00008
    의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며,
    상기 Lc는 잠재벡터와 센터벡터의 거리가 최소화되도록 하는 목적 함수이고,
    상기 λ는 거리함수학습부의 목적 함수의 연산 결과값이 심층신경망모델의 가중치 학습에 반영되는 비율이고,
    상기 N은 학습용 입력벡터의 개수이고,
    상기 i는 1~N번째 학습용 입력벡터 중 i 번째임을 나타내며,
    상기 Cyi는 i 번째 학습용 입력벡터의 악성코드 분류의 센터벡터이고,
    상기 ei는 i 번째 학습용 입력벡터의 잠재벡터인 것을 특징으로 하는
    시그니처 생성 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 이진화학습부는
    목적 함수
    Figure 112022077694999-pat00009
    의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며,
    상기 Lb는 잠재벡터의 값이 이진화되도록 하는 목적 함수이고,
    상기 η는 상기 목적 함수의 연산 결과값이 가중치 학습에 반영되는 비율이고,
    상기 N은 학습용 입력벡터의 개수이고,
    상기 M은 잠재벡터의 길이이고,
    상기 i는 1~N번째 학습용 입력벡터 중 i 번째임을 나타내며,
    상기 j는 1~M번째 잠재벡터의 요소 중 j번째 요소를 나타내며,
    상기 bij는 i번째 학습용 입력벡터의 잠재벡터의 j번째 요소의 값이고,
    상기 k1은 상기 기준값이고,
    상기 k2는 상기 이격값인 것을 특징으로 하는
    시그니처 생성 장치.
  7. 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 방법에 있어서,
    전처리부가 악성코드 분류가 알려지지 않은 파일에 대한 정보인 입력정보로부터 입력벡터를 생성하는 단계;
    분류부가 심층신경망 모델을 통해 상기 입력벡터에 대해 복수의 계층의 학습된 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계; 및
    시그니처생성부가 상기 잠재벡터를 양자화하여 이진 벡터 형태로 악성코드의 시그니처 벡터를 생성하는 단계;를 포함하고,
    상기 심층신경망 모델은,
    분류학습부가 상기 심층신경망 모델이 산출한 잠재벡터가 입력벡터의 악성코드 분류를 나타내도록 학습시키는 분류학습단계;
    거리함수학습부가 상기 심층신경망 모델이 입력벡터에 대한 연산을 통해 잠재벡터를 산출할 때 같은 분류에 속한 악성코드들의 잠재벡터 간의 벡터공간 상에서의 거리가 가까워지도록 학습시키는 거리함수학습단계;
    이진화학습부가 상기 심층신경망 모델이 산출한 잠재벡터의 각 요소값이 소정의 기준값을 기준으로 이진화되도록 학습시키는 이진화학습단계;를 통해 학습되고,
    상기 이진화학습단계는,
    상기 거리함수학습단계 후,
    상기 이진화학습부가 악성코드 분류가 알려진 학습용 입력벡터에 대해 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값을 기댓값으로 설정하는 단계;
    상기 이진화학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계;
    상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계;
    상기 이진화학습부가 상기 산출된 잠재벡터의 각 요소의 값과 기준값에 이격값을 더한 값 또는 기준값에 이격값을 차감한 값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 단계;
    를 포함하는 것을 특징으로 하는
    시그니처 생성 방법.
  8. 제7항에 있어서,
    상기 분류학습단계는,
    상기 전처리부가 악성코드 분류가 알려진 학습용 입력벡터를 생성하는 단계;
    분류학습부가 상기 학습용 입력벡터에 대해 상기 알려진 악성코드 분류에 따라 기댓값을 설정하는 단계;
    상기 분류학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계;
    상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 출력값을 산출하는 단계;
    상기 분류학습부가 상기 산출된 출력값과 상기 알려진 악성코드 분류에 따라 설정된 기댓값과의 차이가 최소가 되도록 상기 심층신경망모델의 가중치를 수정하는 단계;
    를 포함하는 것을 특징으로 하는
    시그니처 생성 방법.
  9. 제8항에 있어서,
    상기 거리함수학습단계는,
    상기 분류학습단계 후,
    거리함수학습부가 악성코드 분류가 알려진 학습용 입력벡터에 대해 상기 알려진 악성코드 분류의 센터벡터를 기댓값으로 설정하는 단계;
    상기 거리함수학습부가 상기 학습용 입력벡터를 상기 심층신경망모델에 입력하는 단계;
    상기 분류부의 상기 심층신경망모델이 상기 학습용 입력벡터에 대해 학습되지 않은 가중치가 적용되는 복수의 연산을 수행하여 적어도 하나의 악성코드 분류와 상기 입력벡터와의 유사도를 나타내는 잠재벡터를 산출하는 단계;
    상기 거리함수학습부가 상기 산출된 잠재벡터와 상기 알려진 악성코드 분류의 센터벡터 간의 벡터공간 상에서의 거리가 최소화되도록 상기 심층신경망모델의 가중치를 수정하는 단계;
    를 포함하는 것을 특징으로 하는
    시그니처 생성 방법.
  10. 제9항에 있어서,
    상기 거리함수학습단계는
    상기 거리함수학습부가
    목적 함수
    Figure 112022077694999-pat00010
    의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며,
    상기 Lc는 잠재벡터와 센터벡터의 거리가 최소화되도록 하는 목적 함수이고,
    상기 λ는 거리함수학습부의 목적 함수의 연산 결과값이 심층신경망모델의 가중치 학습에 반영되는 비율이고,
    상기 N은 학습용 입력벡터의 개수이고,
    상기 i는 1~N번째 학습용 입력벡터 중 i 번째임을 나타내며,
    상기 Cyi는 i 번째 학습용 입력벡터의 악성코드 분류의 센터벡터이고,
    상기 ei는 i 번째 학습용 입력벡터의 잠재벡터인 것을 특징으로 하는
    시그니처 생성 방법.
  11. 삭제
  12. 제7항에 있어서,
    상기 이진화학습단계는
    상기 이진화학습부가
    목적 함수
    Figure 112022077694999-pat00011
    의 연산 결과값이 최소화되도록 상기 심층신경망모델의 가중치를 수정하며,
    상기 Lb는 잠재벡터의 값이 이진화되도록(k1+k2 또는 k1-k2에 가까워지도록)하하는 목적 함수이고,
    상기 η는 상기 목적 함수의 연산 결과값이 가중치 학습에 반영되는 비율이고,
    상기 N은 학습용 입력벡터의 개수이고,
    상기 M은 잠재벡터의 길이이고,
    상기 i는 1~N번째 학습용 입력벡터 중 i 번째임을 나타내며,
    상기 j는 1~M번째 잠재벡터의 요소 중 j번째 요소를 나타내며,
    상기 bij는 i번째 학습용 입력벡터의 잠재벡터의 j번째 요소의 값이고,
    상기 k1은 상기 기준값이고,
    상기 k2는 상기 이격값인 것을 특징으로 하는
    시그니처 생성 방법.
  13. 컴퓨터에서 제7항 내지 제10항, 및 제12항 중 어느 한 항에 따른 시그니처 생성 방법을 실행시키는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020200189136A 2020-12-31 2020-12-31 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102491451B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200189136A KR102491451B1 (ko) 2020-12-31 2020-12-31 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US17/565,954 US20220207141A1 (en) 2020-12-31 2021-12-30 Apparatus for generating a signature that reflects the similarity of a malware detection and classification system based on deep neural networks, method therefor, and computer-readable recording medium recorded with a program for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200189136A KR102491451B1 (ko) 2020-12-31 2020-12-31 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (2)

Publication Number Publication Date
KR20220097767A KR20220097767A (ko) 2022-07-08
KR102491451B1 true KR102491451B1 (ko) 2023-01-27

Family

ID=82119154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200189136A KR102491451B1 (ko) 2020-12-31 2020-12-31 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (2)

Country Link
US (1) US20220207141A1 (ko)
KR (1) KR102491451B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101863615B1 (ko) * 2017-05-24 2018-06-01 (주)이스트소프트 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US20110219449A1 (en) * 2010-03-04 2011-09-08 St Neitzel Michael Malware detection method, system and computer program product
KR101583932B1 (ko) 2014-05-20 2016-01-11 한양대학교 산학협력단 프로그램의 시그니처를 생성하는 시그니처 생성 장치 및 방법, 시그니처의 악성 코드를 검출하는 악성 코드 검출 장치 및 방법
CN105718795B (zh) * 2015-08-28 2019-05-07 哈尔滨安天科技股份有限公司 Linux下基于特征码的恶意代码取证方法及系统
US10200391B2 (en) * 2015-09-23 2019-02-05 AVAST Software s.r.o. Detection of malware in derived pattern space
CN105354496B (zh) * 2015-10-10 2018-05-25 北京顶象技术有限公司 Android平台自动生成的恶意程序的检测方法及系统
CN108334776B (zh) * 2017-01-19 2020-09-04 中国移动通信有限公司研究院 一种变形恶意代码的检测方法及装置
US11108809B2 (en) * 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
CN108280350B (zh) * 2018-02-05 2021-09-28 南京航空航天大学 一种面向Android的移动网络终端恶意软件多特征检测方法
US11973778B2 (en) * 2018-12-03 2024-04-30 British Telecommunications Public Limited Company Detecting anomalies in computer networks
KR20200073822A (ko) * 2018-12-14 2020-06-24 한국인터넷진흥원 악성코드 분류 방법 및 그 장치
US11449609B2 (en) * 2019-01-22 2022-09-20 Sophos Limited Detecting obfuscated malware variants
BR102020003104A2 (pt) * 2020-02-13 2021-08-24 Samsung Eletrônica da Amazônia Ltda. Método para identificação e classificação de ponto de acesso baseado em http usando aprendizagem de máquina
CN111770053B (zh) * 2020-05-28 2022-12-16 江苏大学 一种基于改进的聚类与自相似性的恶意程序检测方法
US20220147815A1 (en) * 2020-11-09 2022-05-12 Domaintools, Llc Multi-level ensemble classifers for cybersecurity machine learning applications
US11575692B2 (en) * 2020-12-04 2023-02-07 Microsoft Technology Licensing, Llc Identity spray attack detection with adaptive classification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101863615B1 (ko) * 2017-05-24 2018-06-01 (주)이스트소프트 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Lukasz Kaiser et al., "Fast Decoding in Sequence Models Using Discrete Latent Variables", Proceedings of the 35 th International Conference on Machine Learning(2018.07.)*
O. E. David and N. S. Netanyahu, "DeepSign: Deep Learning for Automatic Malware Signature Generation and Classification", 2015 International Joint Conference on Neural Networks(2017.11.)*

Also Published As

Publication number Publication date
KR20220097767A (ko) 2022-07-08
US20220207141A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US11461537B2 (en) Systems and methods of data augmentation for pre-trained embeddings
KR101938212B1 (ko) 의미와 문맥을 고려한 주제기반 문서 자동 분류 시스템
CN107590168B (zh) 用于关系推断的系统和方法
KR20200052453A (ko) 딥러닝 모델 학습 장치 및 방법
CN112052451A (zh) 一种webshell检测方法和装置
US11954202B2 (en) Deep learning based detection of malicious shell scripts
CN113723070B (zh) 文本相似度模型训练方法、文本相似度检测方法及装置
CN116089648B (zh) 基于人工智能的档案管理系统及方法
KR20220116111A (ko) 인공 신경망의 추론 데이터에 대한 신뢰도를 판단하는 방법
Jeyakarthic et al. Optimal bidirectional long short term memory based sentiment analysis with sarcasm detection and classification on twitter data
US20210044864A1 (en) Method and apparatus for identifying video content based on biometric features of characters
CN111783088B (zh) 一种恶意代码家族聚类方法、装置和计算机设备
KR102491451B1 (ko) 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
Yin et al. Adversarial attack, defense, and applications with deep learning frameworks
CN116257601A (zh) 一种基于深度学习的违法词库构建方法及系统
CN115858776A (zh) 一种变体文本分类识别方法、系统、存储介质和电子设备
US11727703B2 (en) Apparatus for detecting contextually-anomalous sentence in document, method therefor, and computer-readable recording medium having program for performing same method recorded thereon
CN116432633A (zh) 地址纠错方法、装置、计算机设备及可读介质
KR20200010679A (ko) 이질성 학습 기반의 정보 분류 장치
WO2024012179A1 (zh) 模型训练方法、目标检测方法及装置
WO2024012138A1 (zh) 目标检测模型训练方法、目标检测方法及装置
EP4357985A1 (en) Identifying whether a sample will trigger misclassification functionality of a classification model
US20240177464A1 (en) Active learning device and active learning method
CN116776144A (zh) 样本行为特征确定方法、特征提取模型的训练方法及装置
KR101559376B1 (ko) 엔트로피를 최대화하는 실시간 조합 자질 구축 방법 및 이를 수행하는 조합 자질 구축 장치

Legal Events

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