KR101863615B1 - 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR101863615B1
KR101863615B1 KR1020170064301A KR20170064301A KR101863615B1 KR 101863615 B1 KR101863615 B1 KR 101863615B1 KR 1020170064301 A KR1020170064301 A KR 1020170064301A KR 20170064301 A KR20170064301 A KR 20170064301A KR 101863615 B1 KR101863615 B1 KR 101863615B1
Authority
KR
South Korea
Prior art keywords
data
malicious code
neural network
layer
learning
Prior art date
Application number
KR1020170064301A
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 KR1020170064301A priority Critical patent/KR101863615B1/ko
Priority to PCT/KR2018/005866 priority patent/WO2018217019A1/ko
Priority to JP2019524109A priority patent/JP2019527447A/ja
Priority to EP18805159.3A priority patent/EP3483767B1/en
Priority to US16/320,529 priority patent/US11675903B2/en
Application granted granted Critical
Publication of KR101863615B1 publication Critical patent/KR101863615B1/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/08Learning methods
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Virology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것으로, 이러한 본 발명은 하나의 원소가 데이터 처리 단위인 2차원의 행렬로 이루어진 입력층과, 복수의 연산을 포함하는 복수의 계층으로 이루어지되, 상기 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 가중치가 적용되어 다음 계층의 연산에 입력되는 은닉층과, 복수의 노드로 이루어진 출력층을 포함하는 신경망과, 1차원의 이진 코드인 데이터가 입력되면, 상기 입력층의 행렬에 맞춰 상기 입력된 데이터를 변환하는 전처리부와, 상기 변환된 데이터가 의심 데이터이면, 상기 의심 데이터를 신경망에 입력하여 상기 신경망을 통해 상기 의심 데이터로부터 미리 학습된 악성 코드의 특징을 추출하고 분류하여 상기 의심 데이터에 포함된 악성 코드의 카테고리를 탐지하는 탐지부를 포함하는 변종 악성 코드를 탐지하기 위한 장치, 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.

Description

신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus for detecting variants of a malicious code based on neural network learning, method thereof and computer recordable medium storing program to perform the method}
본 발명은 변종 악성 코드를 탐지하기 위한 기술에 관한 것으로, 보다 상세하게는, 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
악성 코드란 악의적인 목적을 가지고 제작되어 컴퓨터에 악영향을 끼치는 모든 소프트웨어를 칭하며 기존 시그니처 기반의 탐지 방법 또는 정적 혹은 동적 분석 방법으로는 빠르게 증가하는 변종 악성코드에 대처하기에 어려움이 있다. 즉, 기존 악성코드 탐지의 경우 수동적 분석 및 시그니처를 생성하는 방식으로 대응하기 때문에 변종에 대한 대처가 어렵다. 악성코드 자동 생성 도구 등을 이용한 변종 생성 및 전파가 용이하다. 기존 악성코드의 정적 분석 방식은 악성 코드의 실행파일, 또는 디스어셈블된 코드로부터 사람이 임의로 특징을 뽑아내어 분석하기 때문에 데이터의 복합적인 특성을 반영하기 어렵다.
본 발명의 목적은 데이터에 포함된 변종 악성 코드를 탐지할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 변종 악성 코드를 탐지하기 위한 장치는 하나의 원소가 데이터 처리 단위인 2차원의 행렬로 이루어진 입력층과, 복수의 연산을 포함하는 복수의 계층으로 이루어지되, 상기 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 가중치가 적용되어 다음 계층의 연산에 입력되는 은닉층과, 복수의 노드로 이루어진 출력층을 포함하는 신경망과, 1차원의 이진 코드인 데이터가 입력되면, 상기 입력층의 행렬에 맞춰 상기 데이터를 변환하는 데이터변환부와, 상기 데이터가 의심 데이터이면, 상기 의심 데이터를 신경망에 입력하여 상기 신경망을 통해 상기 의심 데이터로부터 미리 학습된 악성 코드의 특징을 추출하고 분류하여 상기 의심 데이터에 포함된 악성 코드의 카테고리를 탐지하는 탐지부를 포함한다.
상기 데이터변환부는 상기 1차원의 이진 코드를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하는 것을 특징으로 한다.
상기 데이터변환부는 상기 1차원의 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하고, 상기 입력층의 행렬의 크기에 맞춰 상기 생성된 픽셀을 이용하여 이미지를 생성하는 것을 특징으로 한다.
본 발명의 실시예에 따른 변종 악성 코드를 탐지하기 위한 장치는 상기 변환된 데이터가 학습 데이터이면, 상기 학습 데이터를 상기 신경망에 입력하여 상기 신경망의 복수의 연산을 통해 출력된 출력값이 상기 학습 데이터의 알려진 악성 코드의 카테고리를 나타내는 기댓값이 되도록 역전파 알고리즘을 통해 상기 가중치를 보정하는 학습부를 더 포함한다.
상기 은닉층은 상기 의심 데이터가 매핑되는 복수의 특징 지도로 구성되며, 커널과의 연산을 통해 상기 의심 데이터에 포함된 악성 코드의 특징을 추출하는 회선층과, 상기 회선층에 대응하여 상기 추출된 악성 코드의 특징이 매핑되는 복수의 특징 지도로 구성되며, 커널과의 연산을 통해 상기 악성 코드의 특징을 다운샘플링하는 풀링층과, 각각이 상기 악성 코드의 특징을 표현하는 복수의 노드로 구성되는 완전연결층을 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 변종 악성 코드를 탐지하기 위한 방법은 1차원의 이진 코드인 입력 데이터가 입력되면, 하나의 원소가 데이터 처리 단위인 소정 크기의 2차원의 행렬에 맞춰 상기 데이터를 변환하는 단계와, 상기 데이터가 의심 데이터이면, 악성 코드의 특징이 미리 학습된 신경망을 통해 상기 악성 코드의 특징을 추출하고, 추출된 악성 코드의 특징에 따라 상기 의심 데이터에 포함된 악성 코드의 카테고리를 탐지하는 단계를 포함한다.
상기 변환하는 단계는 1차원의 이진 시퀀스로 이루어진 입력 데이터를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하는 것을 특징으로 한다.
상기 변환하는 단계는 상기 1차원의 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하는 단계와, 상기 생성된 픽셀을 이용하여 상기 행렬에 맞춰 이미지로 변환하는 단계를 포함한다.
전술한 방법은 상기 변환하는 단계 후, 상기 데이터가 학습 데이터이면, 상기 학습 데이터를 상기 신경망에 입력하여 상기 신경망의 복수의 연산을 통해 출력된 출력값이 상기 학습 데이터의 알려진 악성 코드의 카테고리를 나타내는 기댓값이 되도록 상기 가중치를 보정하는 단계를 더 포함한다.
상기 탐지하는 단계는 상기 의심 데이터가 매핑되는 특징 지도와 커널과의 연산을 통해 상기 의심 데이터에 포함된 악성 코드의 특징을 추출하는 단계와, 상기 추출된 악성 코드의 특징을 각각이 악성 코드의 특징을 나타내는 복수의 노드에 매핑하는 단계와, 상기 매핑된 악성 코드의 특징을 각각이 악성 코드의 카테고리를 나타내는 복수의 노드에 매핑하여 출력하는 단계를 포함한다.
또한, 전술한 본 발명의 바람직한 실시예에 따른 변종 악성 코드를 탐지하기 위한 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명에 따르면, 별도의 특징 추출 없이 1차원의 이진 데이터를 2차원 데이터로 변환하고, 다층의 비선형적 구조를 가진 신경망을 통해 학습하기 때문에 악성 코드 및 이의 변종의 특징을 추출할 수 있도록 학습할 수 있다. 따라서 별도의 특징 추출 도구 또는 전문가의 인위적 노력이 필요하지 않아 분석 시간이 단축되며, 기존 악성코드 분류 도구들이 잡아내지 못하는 변종도 학습 및 탐지할 수 있다.
도 1은 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터변환부의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 다른 실시예에 따른 데이터변환부의 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 신경망의 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 신경망의 내부 구조를 설명하기 위한 개념도이다.
도 6은 본 발명의 실시예에 따른 커널(Kc)을 이용한 컨벌루션 연산의 일례를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 풀링 연산의 일례를 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 가중치를 적용하는 노드의 연산을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 악성 코드를 학습하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 방법을 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치의 구성을 설명하기 위한 블록도이다. 또한, 도 2는 본 발명의 일 실시예에 따른 데이터변환부의 동작을 설명하기 위한 도면이고, 도 3은 본 발명의 다른 실시예에 따른 데이터변환부의 동작을 설명하기 위한 도면이다. 그리고 도 4는 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 신경망의 구성을 설명하기 위한 블록도이다. 또한, 도 5는 본 발명의 일 실시예에 따른 신경망의 내부 구조를 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치(이하, "악성코드탐지장치"로 축약함)는 데이터변환부(100), 학습부(200), 탐지부(300) 및 신경망(400)을 포함한다. 또한, 신경망(400)은 입력층(410), 은닉층(420) 및 출력층(430)을 포함하는 복수의 계층으로 이루어진다. 특히, 신경망(400)의 복수의 계층은 복수의 연산으로 이루어지며, 어느 하나의 계층의 어느 하나의 연산은 그 결과는 가중치가 적용되어 다음 계층의 적어도 하나의 연산의 입력이 된다. 이러한 연산 및 가중치는 복수의 계층 구조가 비선형성을 가지도록 한다.
신경망(400)의 입력층(410)은 하나의 원소가 데이터 처리 단위인 2차원의 행렬로 이루어진다. 데이터변환부(100)는 학습 데이터 및 의심 데이터 중 어느 하나인 데이터가 입력되면, 입력된 데이터를 신경망(400)의 규격에 맞춰 변환한다. 즉, 입력되는 데이터는 1차원의 이진 코드로 이루어지며, 데이터변환부(100)는 1차원의 이진 코드를 하나의 원소가 데이터 처리 단위인 2차원의 행렬에 맞춰 변환한다.
도 2를 참조하는 일 실시예에 따르면, 데이터변환부(100)는 데이터가 입력되면, 입력된 데이터의 이진 코드, 즉, 이진 시퀀스(binary sequence)를 k-bit씩 묶어 하나의 값으로 읽는다. 그리고 데이터변환부(100)는 k-bit씩 읽은 1차원의 이진 코드(이진 시퀀스)를 D 크기를 가지는 2차원의 벡터 시퀀스(vector sequence)로 변환한다. 여기서, k*D는 아키텍처에서 사용하는 워드 크기의 정수배이다. 즉, 데이터변환부(100)는 비정형성을 갖고 있던 코드를 k*D 크기로 정형화된 2차원의 벡터 시퀀스로 변환(embedding)한다. 그런 다음, 2차원의 벡터 시퀀스로 변환된 데이터(학습 데이터 또는 의심 데이터)를 학습부(200) 또는 탐지부(300)에 제공한다.
도 3을 참조하는 다른 실시예에 따르면, 데이터변환부(100)는 데이터가 입력되면, 입력된 데이터의 이진 코드를 픽셀 단위로 픽셀 단위로 구분하여 픽셀을 생성한다(00000000: black ~ FFFFFFFF: white). 예컨대, 입력된 데이터의 이진 코드를 8 bit 단위로 묶어 하나의 픽셀(pixel)로 나타낸다. 그런 다음, 데이터변환부(100)는 입력층(410)의 행렬의 크기에 맞춰 생성된 픽셀을 이용하여 이미지를 생성한다. 즉, 데이터변환부(100)는 입력층(410)의 행렬의 행과 열의 비와 동일한 비율을 가지는 이미지를 생성한다. 이와 같이, 본 발명의 다른 실시예에 따르면, 이진 코드를 변환하여 입력층(410)의 규격에 맞는 이미지를 생성한다. 이때, 데이터변환부(100)는 악성 코드마다 실행 파일의 크기가 상이하기 때문에, 가로, 세로의 비가 적정하게 유지될 수 있도록 이미지의 가로 길이를 실행 파일의 크기에 비례하여 고정시킨다. 특히, 데이터변환부(100)는 이미지로 나타내어진 데이터(학습 데이터, 의심 데이터)의 크기가 상이하기 때문에 입력층(410)의 규격에 맞추기 위해 padding, crop, resizing 등을 통해 이미지의 크기를 조절할 수 있다. 그런 다음, 2차원의 이미지로 변환된 데이터(학습 데이터 또는 의심 데이터)를 학습부(200) 또는 탐지부(300)에 제공한다.
학습부(200)는 데이터변환부(100)로부터 학습 데이터가 입력되면, 그 학습 데이터를 신경망(400)에 입력하여 신경망(400)을 학습시킨다(deep leaning). 신경망(400)은 각각이 복수의 연산을 포함하는 복수의 계층(layer)을 포함한다. 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 연산 결과는 가중치(w)가 적용되어 다음 계층의 적어도 하나의 연산에 입력된다. 학습부(200)는 학습 데이터를 신경망(400)에 입력하고, 신경망(400)은 복수의 계층의 복수의 노드를 통해 이루어지는 연산에 따른 최종 연산 결과가 해당 학습 데이터의 악성 코드의 카테고리를 나타내도록 가중치(w)를 산출한다. 이와 같이, 가중치(w)를 산출하는 과정을 '학습(deep leaning)'이라고 칭한다.
탐지부(300)는 데이터변환부(100)로부터 의심 데이터가 입력되면, 그 의심 데이터를 신경망(400)에 입력하여 신경망(400)을 통해 의심 데이터에 포함된 악성 코드의 카테고리를 탐지한다. 즉, 탐지부(300)는 신경망(400)을 통해 악성 코드의 카테고리를 탐지하고, 탐지된 악성 코드의 카테고리를 출력한다.
앞서 설명된 바와 같이, 신경망(400)은 복수의 연산을 포함하는 복수의 계층을 포함한다. 이러한 신경망(400)에 대해서 보다 상세하게 설명하기로 한다. 도 4를 참조하면, 신경망(400)은 입력층(410), 은닉층(420) 및 출력층(430)으로 이루어진다.
입력층(410)은 앞서 설명된 바와 같은 학습 데이터 혹은 의심 데이터가 입력되는 계층이다. 입력층(410)은 소정 크기의 2차원의 행렬이며, 이러한 2차원의 행렬의 하나의 원소는 일 실시예에 따르면, 아키텍처의 데이터 처리 단위인 워드의 정수배가 될 수 있다. 혹은, 다른 실시예에 따르면, 행렬의 하나의 원소는 픽셀이 될 수 있다.
또한, 은닉층(420)은 학습 데이터에 따라 악성 코드의 특징을 학습하거나, 학습된 바에 따라 연산을 수행하여 의심 데이터에 포함된 악성 코드의 특징을 분류하여 추출하기 위한 계층이다.
은닉층(420)은 교대로 반복되는 소정수의 회선층(CL: convolution layer) 및 풀링층(PL: pooling layer)과, 완전연결층(FL: Full Connection Layer)을 포함한다. 일례로, 도 5에 도시된 바와 같이, 2개의 회선층(CL1, CL2)과 2개의 풀링층(PL1, PL2)이 존재할 수 있다. 회선층(CL: CL1, CL2) 및 풀링층(PL: PL1, PL2)은 소정 크기의 특징 지도(feature map)로 이루어진다. 특징 지도를 이루는 각 원소는 소정 크기의 커널과의 연산, 즉, 컨볼루션(convolution) 연산 혹은 풀링(pooling 혹은 subsampling) 연산을 통해 산출된다. 도 5에 이러한 특징 지도는 실선의 사각형으로 도시되었고, 커널은 점선의 사각형으로 도시되었다.
회선층(CL1, CL2)의 특징지도를 이루는 각 원소는 소정 크기의 커널을 이용한 컨볼루션(convolution) 연산을 통해 산출된다. 컨벌루션 연산에 사용되는 커널(Kc)은 복수의 서로 다른 악성 코드의 특징을 추출하기 위한 것이다. 그리고 복수의 서로 다른 악성 코드의 특징을 추출하기 위하여 서로 다른 커널(Kc)의 원소는 상이한 값을 가진다. 도 6은 본 발명의 실시예에 따른 커널(Kc)을 이용한 컨벌루션 연산의 일례를 설명하기 위한 도면이다. 도시된 바와 같이, 입력인 특징 지도(M1)와 커널(Kc)이 컨벌루션 연산을 통해 새로운 특징지도(M2)를 출력한다. 도시된 바와 같이, 입력 특징지도(M1)는 4×4 크기이며, 커널(Kc)은 2×2 크기라고 가정한다. 여기서, 커널(Kc)은 컨벌루션 연산의 가중치(w)이다. 이와 같이, 4×4 크기의 특징지도와 2×2 크기의 커널을 컨볼루션 연산하여 3×3 크기의 특징 지도를 출력한다. 컨벌루션 연산은 커널(Kc)이 시프트하면서 대응하는 원소와 연산이 이루어진다. 이러한 컨벌루션 연산은 대응하는 원소의 곱과 그 곱들의 합으로 이루어진다. 일례로, 출력 특징지도(M2)의 (1, 1) 원소는 제1 연산(S1)을 통해 산출된다. 즉, 제1 연산(S1) 결과, 출력 특징지도(M2)의 (1, 1) 원소는 다음의 수학식 1과 같이 산출된다.
[수학식 1]
(1×1) + (1×1) + (0×0) + (1×0) = 2
또한, 출력 특징지도(M2)의 (2, 2) 원소는 제2 연산(S2)을 통해 산출된다. 이러한 제2 연산(S2) 결과, 출력 특징지도(M2)의 (2, 2) 원소는 다음의 수학식 2와 같이 산출된다.
[수학식 2]
(1×1) + (0×1) + (0×0) + (1×0) = 1
전술한 바와 같이, 컨벌루션 연산을 통해 생성된 특징지도에 대해 풀링 연산이 수행된다. 즉, 풀링 계층(PL1, PL2)의 특징 지도를 이루는 각 원소는 소정 크기의 커널을 이용한 풀링 연산(pooling 혹은 subsampling)을 통해 산출된다. 풀링 연산에 사용되는 커널(Kp)은 복수의 악성 코드의 특징을 다운샘플링하기 위한 것이다. 도 7은 본 발명의 실시예에 따른 풀링 연산의 일례를 설명하기 위한 도면이다. 도시된 바와 같이, 입력인 특징 지도(M3)와 커널(Kp)이 풀링 연산을 통해 새로운 특징지도(M4)를 출력한다. 도시된 바와 같이, 입력 특징지도(M3)는 4×4 크기이며, 커널(Kp)은 2×2 크기라고 가정한다. 이와 같이, 4×4 크기의 특징지도와 2×2 크기의 커널을 풀링 연산하여 2×2 크기의 특징 지도를 출력한다. 풀링 연산은 커널(Kp)이 일정한 수만큼 시프트하면서 대응하는 원소와 연산이 이루어진다. 이 실시예에서는 풀링 연산은 커널(Kp)이 커널의 크기만큼 시프트한다고 가정한다. 특히, 풀링 연산은 최대값, 평균값, 중간값, 놈(norm)값을 선택하는 연산 중 어느 하나가 될 수 있다. 이 실시예서는 최대값을 선택하는 풀링 연산이라고 가정한다. 일례로, 출력 특징지도(M4)의 (1, 1) 원소는 제3 연산(S3)을 통해 산출된다. 즉, 제3 연산(S3) 결과, 출력 특징지도(M4)의 (1, 1) 원소는 다음의 수학식 3과 같이 산출된다.
[수학식 3]
Max(1, 0, 4, 6) = 6
다른 예로, 출력 특징지도(M4)의 (1, 2) 원소는 제4 연산(S4)을 통해 산출된다. 이러한 제4 연산(S4) 결과, 출력 특징지도(M4)의 (1, 2) 원소는 다음의 수학식 4와 같이 산출된다.
[수학식 4]
Max(2, 3, 0, 1) = 3
전술한 바와 같이, 회선층(CL) 및 풀링층(PL)의 연산을 수행하면, 특징 지도의 수는 증가하고, 특징 지도를 구성하는 원소의 수는 감소한다.
완전연결층(FL)은 특징 지도의 모든 원소가 하나의 값으로 완전하게 연결된 계층이다. 이러한 상태를 완전연결(full connection) 상태라고 한다. 완전연결층(FL)은 복수의 노드로 이루어지며, 데이터로부터 추출할 수 있는 악성 코드의 특징을 분류하여 추출한 것이다. 따라서 완전연결층(FL)의 복수의 노드 각각은 서로 다른 악성 코드의 특징을 나타낸다. 또한, 각 노드는 고유의 연산을 가진다. 도 5의 실시예에는 n개의 노드(N1, N2, N3, ... Nn)가 도시되었다. 각 노드(N1, N2, N3, ... Nn)는 연결된 이전 계층의 연산 결과를 입력받아 연산을 수행하고, 다음 계층의 해당하는 노드(P1, P2, P3)로 출력한다.
도 8은 본 발명의 실시예에 따른 가중치를 적용하는 노드의 연산을 설명하기 위한 도면이다. 도시된 바와 같이, 어느 하나의 노드 Na는 이전 계층의 관련된 노드의 출력을 입력받아 연산을 수행한 후, 그 연산 결과를 출력한다. 이전 계층의 출력이 다음 계층에 입력될 때, 가중치(W)가 적용된다. 즉, 도 8에 도시된 바와 같이, 노드 Na의 입력은 이전 계층의 3개의 노드 각각의 연산 결과인 제1 내지 제3 출력(I1, I2, I3) 각각에 제1 내지 제3 가중치(W1, W2, W3) 각각을 적용하고, 이를 합산한 값이다. 즉, 노드 Na에 대한 입력은 다음의 수학식 5과 같다.
[수학식 5]
(I1 × W1) + (I2 × W2) + (I3 × W3)
또한, 노드 Na의 출력(O)은 다음 계층의 노드에 대응하는 가중치를 적용하여 제공된다. 예컨대, 도 6에 도시된 바와 같이, 노드 Na의 출력이 노드 Nb에 입력될 때, 가중치 Wb가 적용되어 제공되며, 노드 Na의 출력이 노드 Nc에 입력될 때, 가중치 Wc가 적용되어 제공된다.
완전연결층(FL)의 출력은 출력층(430)에 입력되며, 가중치(W)를 통해 완전연결층(FL)에 매핑된다. 출력층(430)의 노드 각각은 악성 코드의 카테고리에 대응한다. 이러한 출력층(430)의 노드 각각의 출력은 신경망(400)에 입력된 학습 데이터 혹은 의심 데이터가 해당 악성 코드 카테고리일 확률을 나타내는 스코어가 될 수 있다. 예컨대, 도 4의 출력층(430)의 노드 P1, P2, P3 각각은 악성 코드 카테고리 1, 2 및 3에 대응하며, 노드 P1, P2, P3 각각의 출력은 악성 코드 카테고리 1, 2 및 3일 확률을 의미한다.
이에 따라, 탐지부(300)는 의심 데이터를 신경망(400)에 입력하고, 신경망(400)의 최종 출력값, 즉, 출력층(430)의 노드 각각 출력에 따라 의심 데이터에 포함된 악성 코드가 어떤 악성 코드 카테고리에 속하는지 알 수 있다. 예컨대, 탐지부(300)는 노드 P1, P2, P3 중 어느 하나의 출력이 소정 수치 이상이며, 다른 2개 보다 높은 수치를 가지면, 입력된 의심 데이터에 포함된 악성 코드가 해당 노드에 대응하는 악성 코드의 카테고리에 속하는 것으로 판단할 수 있다.
다음으로, 본 발명의 실시예에 따른 악성 코드를 학습하는 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 악성 코드를 학습하는 방법을 설명하기 위한 흐름도이다.
학습 데이터가 입력되면, 데이터변환부(100)는 S110 단계에서 1차원의 이진 코드인 학습 데이터를 신경망(400)의 입력층(410)의 행렬에 맞춰 변환한다. 일 실시예 따르면, 데이터변환부(100)는 1차원의 이진 코드를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하여 학습부(200)에 입력한다. 다른 실시예에 따르면, 데이터변환부(100)는 1차원의 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하고, 생성된 픽셀을 이용하여 입력층(410)의 행렬의 행과 열의 비와 동일한 크기의 이미지로 변환하여 학습부(200)에 입력한다.
다음으로, 학습부(200)는 S120 단계에서 앞서 변환된 학습 데이터를 신경망(400)에 입력하여 신경망(400)의 출력값을 도출한다. 이때, 신경망(400)은 학습 데이터에 대해 복수의 계층의 복수의 연산을 통해 출력값을 도출한다. 여기서, 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 가중치가 적용되어 다음 계층의 연산에 입력된다.
학습 데이터는 그 악성 코드의 카테고리가 알려진 악성 코드이다. 따라서 학습 데이터를 입력했을 때, 신경망(400)의 출력, 즉, 신경망(400)의 출력층(430)의 출력값은 학습 데이터의 알려진 악성 코드의 카테고리를 나타내는 것을 기대할 수 있으며, 이와 같이, 학습 데이터를 신경망(400)에 입력했을 때, 기대하는 출력값을 기댓값이라고 칭한다. 따라서 학습부(200)는 S130 단계에서 출력값이 기댓값이 되도록 혹은 출력값과 기댓값의 차이가 최소가 되도록 역전파 알고리즘을 통해 가중치를 수정한다. 예컨대, 도 5에 도시된 바와 같이, 출력층(430)은 노드 P1, P2 및 P3를 포함하며, 각각 악성 코드의 제1 내지 제3 카테고리를 나타낸다고 가정한다. 또한, 입력된 학습 데이터는 제3 카테고리에 속하는 악성 코드를 포함한다고 가정한다. 제1 내지 제3 카테고리 각각의 출력값은 신경망(400)에 입력된 학습 데이터가 제1 내지 제3 카테고리에 속할 확률을 나타내는 점수이다. 따라서 학습부(200)는 출력층(430)의 노드 P3의 출력값이 최대가 되도록 역전파 알고리즘을 통해 가중치를 수정한다. 전술한 S110 단계 내지 S130 단계는 복수의 학습 데이터를 이용하여 "충분한 학습이 이루어질 때"까지 반복하여 수행하는 것이 바람직하다. 여기서, "충분한 학습이 이루어질 때"라 함은 임의의 학습 데이터를 입력한 경우 출력값과 기댓값의 차이가 기 설정된 수치 미만이 될 때까지를 의미한다.
그러면, 전술한 바와 같은 방법을 통해 충분히 학습된 신경망(400)을 통해 변종 악성 코드를 탐지하기 위한 방법에 대해서 설명하기로 한다. 도 10은 본 발명의 실시예에 따른 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 방법을 설명하기 위한 흐름도이다.
도 10을 참조하면, 의심 데이터가 입력되면, 데이터변환부(100)는 S210 단계에서 1차원의 이진 코드인 의심 데이터를 신경망(400)의 입력층(410)의 행렬에 맞춰 변환한다. 일 실시예 따르면, 도 2에 도시된 바와 같이, 데이터변환부(100)는 1차원의 이진 코드를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하여 탐지부(300)에 입력한다. 다른 실시예에 따르면, 도 3에 도시된 바와 같이, 데이터변환부(100)는 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하고, 생성된 픽셀을 이용하여 입력층(410)의 행렬의 행과 열의 비와 동일한 크기의 이미지로 변환하며, 탐지부(300)에 입력한다.
그런 다음, 탐지부(300)는 S220 단계에서 앞서 변환된 의심 데이터를 신경망(400)에 입력하여 신경망(400)의 출력값을 도출한다. 이때, 신경망(400)은 의심 데이터에 대해 복수의 계층의 복수의 연산을 통해 출력값을 산출한다. 여기서, 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 미리 학습된 가중치가 적용되어 다음 계층의 연산에 입력된다. 출력값을 도출하는 절차에 대해서 보다 상세히 설명하면, 신경망(400)의 입력층(410)에 의심 데이터가 입력되면, 은닉층(420)의 회선층(CL) 및 풀링층(PL)은 입력된 의심 데이터를 특징 지도와 커널(K)의 연산에 미리 학습된 가중치를 적용하여 의심 데이터에 포함된 악성 코드의 특징을 분류하여 추출한다. 그런 다음, 회선층(CL) 및 풀링층(PL)에서 추출된 악성 코드의 특징을 미리 학습된 가중치를 통해 완전연결층(FL)의 악성 코드의 특징을 나타내는 해당 노드에 매핑한다. 이어서, 완전연결층(FL)은 매핑된 악성 코드의 특징을 미리 학습된 가중치를 통해 출력층(430)의 악성 코드의 카테고리를 나타내는 해당 노드에 매핑한다. 그리고 출력층(430)의 각 노드는 의심 데이터에 포함된 악성 코드가 해당 악성 코드의 카테고리에 속할 확률을 스코어로 출력한다.
다음으로, 탐지부(300)는 S230 단계에서 의심 데이터에 포함된 악성 코드가 출력층(430)의 각 노드 중 출력값이 최대인 노드에 해당하는 악성 코드의 카테고리에 속하는 것으로 판단하고, 해당 악성 코드의 카테고리를 출력한다.
한편, 앞서 설명된 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 데이터변환부
200: 학습부
300: 탐지부
400: 신경망
410: 입력층
420: 은닉층
430: 출력층

Claims (11)

  1. 변종 악성 코드를 탐지하기 위한 장치에 있어서,
    하나의 원소가 데이터 처리 단위인 2차원의 행렬로 이루어진 입력층과, 복수의 연산을 포함하는 복수의 계층으로 이루어지되, 상기 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 가중치가 적용되어 다음 계층의 연산에 입력되는 은닉층과, 복수의 노드로 이루어진 출력층을 포함하는 신경망;
    1차원의 이진 코드인 데이터가 입력되면, 상기 1차원의 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하고, 상기 입력층의 행렬의 크기에 맞춰 상기 생성된 픽셀을 이용하여 이미지를 생성함으로써 상기 데이터를 변환하는 데이터변환부; 및
    상기 데이터가 의심 데이터이면, 상기 데이터변환부에 의해 변환된 상기 데이터를 의심 데이터로서 상기 신경망에 입력하고, 상기 신경망을 통해 상기 의심 데이터로부터 미리 학습된 악성 코드의 특징을 추출하고 분류하여 상기 의심 데이터에 포함된 악성 코드의 카테고리를 탐지하는 탐지부;를 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 장치
  2. 제1항에 있어서,
    상기 데이터변환부는,
    상기 1차원의 이진 코드를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 데이터가 학습 데이터이면, 상기 데이터변환부에 의해 변환된 상기 데이터를 학습 데이터로서 상기 신경망에 입력하고, 상기 신경망의 복수의 연산을 통해 출력된 출력값이 상기 학습 데이터의 알려진 악성 코드의 카테고리를 나타내는 기댓값이 되도록 역전파 알고리즘을 통해 상기 가중치를 보정하는 학습부;를 더 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 장치.
  5. 제1항에 있어서,
    상기 은닉층은,
    상기 의심 데이터가 매핑되는 복수의 특징 지도로 구성되며, 커널과의 연산을 통해 상기 의심 데이터에 포함된 악성 코드의 특징을 추출하는 회선층;
    상기 회선층에 대응하여 상기 추출된 악성 코드의 특징이 매핑되는 복수의 특징 지도로 구성되며, 커널과의 연산을 통해 상기 악성 코드의 특징의 표본을 추출하는 풀링층; 및
    각각이 상기 악성 코드의 특징을 표현하는 복수의 노드로 구성되는 완전연결층;을 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 장치.
  6. 하나의 원소가 데이터 처리 단위인 2차원의 행렬로 이루어진 입력층과, 복수의 연산을 포함하는 복수의 계층으로 이루어지되, 상기 복수의 계층 중 어느 하나의 계층의 어느 하나의 연산의 결과는 가중치가 적용되어 다음 계층의 연산에 입력되는 은닉층과, 복수의 노드로 이루어진 출력층을 포함하는 신경망;을 이용한 변종 악성 코드를 탐지하기 위한 방법으로서,
    1차원의 이진 코드인 입력 데이터가 입력되면, 데이터변환부가, 상기 1차원의 이진 코드를 픽셀 단위로 구분하여 픽셀을 생성하고, 상기 생성된 픽셀을 이용하여 상기 행렬의 행과 열의 비와 동일한 비율을 가지는 이미지로 상기 데이터를 변환하는 단계;
    상기 데이터가 의심 데이터이면, 탐지부가, 상기 데이터변환부에 의해 변환된 상기 데이터를 의심 데이터로서 상기 신경망에 입력하고, 상기 신경망을 통해 악성 코드의 특징을 추출하고, 추출된 악성 코드의 특징에 따라 상기 의심 데이터에 포함된 악성 코드의 카테고리를 탐지하는 단계;를 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 방법.
  7. 제6항에 있어서,
    상기 변환하는 단계는,
    1차원의 이진 시퀀스로 이루어진 입력 데이터를 아키텍처에서 사용하고 있는 워드 크기의 정수배 씩 구분하여 2차원의 벡터 시퀀스로 변환하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 방법.
  8. 삭제
  9. 제6항에 있어서,
    상기 변환하는 단계 후,
    상기 데이터가 학습 데이터이면, 학습부가, 상기 데이터변환부에 의해 변환된 상기 데이터를 학습 데이터로서 상기 신경망에 입력하고, 상기 신경망의 복수의 연산을 통해 출력된 출력값이 상기 학습 데이터의 알려진 악성 코드의 카테고리를 나타내는 기댓값이 되도록 역전파 알고리즘에 따라 상기 가중치를 보정하는 단계;를 더 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 방법.
  10. 제6항에 있어서,
    상기 탐지하는 단계는,
    상기 의심 데이터가 매핑되는 특징 지도와 커널과의 연산을 통해 상기 의심 데이터에 포함된 악성 코드의 특징을 추출하는 단계;
    상기 추출된 악성 코드의 특징을 각각이 악성 코드의 특징을 나타내는 복수의 노드에 매핑하는 단계; 및
    상기 매핑된 악성 코드의 특징을 각각이 악성 코드의 카테고리를 나타내는 복수의 노드에 매핑하여 출력하는 단계;를 포함하는 것을 특징으로 하는 변종 악성 코드를 탐지하기 위한 방법.
  11. 제6항, 제7항, 제9항 및 제10항 중 어느 한 항에 따른 변종 악성 코드를 탐지하기 위한 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020170064301A 2017-05-24 2017-05-24 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR101863615B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170064301A KR101863615B1 (ko) 2017-05-24 2017-05-24 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
PCT/KR2018/005866 WO2018217019A1 (ko) 2017-05-24 2018-05-24 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JP2019524109A JP2019527447A (ja) 2017-05-24 2018-05-24 ニューラルネットワーク学習ベースの変種悪性コードを検出するための装置、そのための方法及びこの方法を実行するためのプログラムが記録されたコンピュータ読み取り可能な記録媒体
EP18805159.3A EP3483767B1 (en) 2017-05-24 2018-05-24 Device for detecting variant malicious code on basis of neural network learning, method therefor, and computer-readable recording medium in which program for executing same method is recorded
US16/320,529 US11675903B2 (en) 2017-05-24 2018-05-24 Apparatus for detecting variants of malicious code based on neural network learning, method therefor and computer readable recording medium storing program for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170064301A KR101863615B1 (ko) 2017-05-24 2017-05-24 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR101863615B1 true KR101863615B1 (ko) 2018-06-01

Family

ID=62635174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170064301A KR101863615B1 (ko) 2017-05-24 2017-05-24 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (5)

Country Link
US (1) US11675903B2 (ko)
EP (1) EP3483767B1 (ko)
JP (1) JP2019527447A (ko)
KR (1) KR101863615B1 (ko)
WO (1) WO2018217019A1 (ko)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101817A (zh) * 2018-08-13 2018-12-28 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
KR20190003202A (ko) * 2017-06-30 2019-01-09 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
KR102093275B1 (ko) * 2019-05-23 2020-03-25 (주)지란지교시큐리티 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법
EP3654217A1 (en) * 2018-11-16 2020-05-20 Accenture Global Solutions Limited Malware detection
US10803384B2 (en) 2018-07-11 2020-10-13 MakinaRocks Co., Ltd. Anomaly detection
KR20200133644A (ko) * 2019-05-20 2020-11-30 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
KR102185831B1 (ko) * 2019-07-25 2020-12-03 호서대학교 산학협력단 디해시 기반 악성코드 분석 장치 및 방법
KR102223345B1 (ko) * 2019-12-30 2021-03-04 부산대학교 산학협력단 완료 시간 예측을 위한 데이터 변환 장치 및 방법
KR20210035502A (ko) * 2019-09-24 2021-04-01 국민대학교산학협력단 보안관제 데이터 분석을 위한 머신러닝 기반의 학습 벡터 생성 장치 및 방법
CN113127864A (zh) * 2019-12-31 2021-07-16 奇安信科技集团股份有限公司 特征码提取方法、装置、计算机设备和可读存储介质
KR20220097767A (ko) * 2020-12-31 2022-07-08 주식회사 이스트시큐리티 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102518394B1 (ko) 2021-09-30 2023-04-05 단국대학교 산학협력단 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템
WO2023085476A1 (ko) * 2021-11-12 2023-05-19 주식회사 시큐어링크 통합특성 인공지능 기반 가상화 시스템 회피형 악성코드 탐지 장치
US11790085B2 (en) 2020-10-29 2023-10-17 Electronics And Telecommunications Research Institute Apparatus for detecting unknown malware using variable opcode sequence and method using the same

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10607004B2 (en) * 2016-09-29 2020-03-31 Intel Corporation Methods and apparatus to improve feature engineering efficiency with metadata unit operations
KR101863615B1 (ko) * 2017-05-24 2018-06-01 (주)이스트소프트 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US10656940B1 (en) * 2019-02-04 2020-05-19 Architecture Technology Corporation Systems, devices, and methods for source code generation from binary files
CN110223553B (zh) * 2019-05-20 2021-08-10 北京师范大学 一种答题信息的预测方法及系统
CN110245326B (zh) * 2019-06-13 2023-10-24 武汉轻工大学 基于神经网络的数据估算方法、设备、存储介质及装置
US11526725B2 (en) * 2019-12-06 2022-12-13 Bank Of America Corporation Attention-based layered neural network architecture for explainable and high-performance AI processing
CN111310439B (zh) * 2020-02-20 2023-06-27 齐鲁工业大学 一种基于深度特征变维机制的智能语义匹配方法和装置
CN111783088B (zh) * 2020-06-03 2023-04-28 杭州迪普科技股份有限公司 一种恶意代码家族聚类方法、装置和计算机设备
US20230418943A1 (en) 2020-11-26 2023-12-28 Npcore, Inc. Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same
CN112861135B (zh) * 2021-04-12 2024-05-31 中南大学 基于注意力机制的恶意代码检测方法
US11615523B2 (en) 2021-08-18 2023-03-28 Zhejiang Gongshang University Methods for recognizing small targets based on deep learning networks
CN113673594B (zh) * 2021-08-18 2022-07-12 浙江工商大学 一种基于深度学习网络的瑕疵点识别方法
CN113806746B (zh) * 2021-09-24 2024-03-22 沈阳理工大学 基于改进cnn网络的恶意代码检测方法
CN114741697B (zh) * 2022-04-22 2023-10-13 中国电信股份有限公司 恶意代码分类方法、装置、电子设备和介质
US11934523B1 (en) * 2022-12-01 2024-03-19 Flexxon Pte. Ltd. System and method for securing data files
CN116089951B (zh) * 2023-02-24 2023-07-14 山东云天安全技术有限公司 一种恶意代码检测方法、可读存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294758A1 (en) * 2004-10-25 2007-12-20 Siemens Aktiengesesllschaft Method for Registering a Mobile Communication Terminal in a Local Area Network
US20160350532A1 (en) * 2015-04-16 2016-12-01 Cylance Inc. Recurrent neural networks for malware analysis
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952776B1 (en) * 1999-09-22 2005-10-04 International Business Machines Corporation Method and apparatus for increasing virus detection speed using a database
KR100548983B1 (ko) * 2000-11-02 2006-02-02 (주)마크텍 디지털 증명서의 발급 및 인증을 위한 텍스트의 삽입 방법및 장치
JP5569935B2 (ja) 2010-07-23 2014-08-13 日本電信電話株式会社 ソフトウェア検出方法及び装置及びプログラム
US10157279B2 (en) * 2015-07-15 2018-12-18 Cylance Inc. Malware detection
US20170068816A1 (en) * 2015-09-04 2017-03-09 University Of Delaware Malware analysis and detection using graph-based characterization and machine learning
KR101778679B1 (ko) * 2015-10-02 2017-09-14 네이버 주식회사 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템
US11049004B1 (en) * 2015-11-15 2021-06-29 ThetaRay Ltd. System and method for anomaly detection in dynamically evolving data using random neural network decomposition
CN105989288B (zh) 2015-12-31 2019-04-16 武汉安天信息技术有限责任公司 一种基于深度学习的恶意代码样本分类方法及系统
EP3475822B1 (en) * 2016-06-22 2020-07-22 Invincea, Inc. Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning
US9721097B1 (en) * 2016-07-21 2017-08-01 Cylance Inc. Neural attention mechanisms for malware analysis
US20180183815A1 (en) * 2016-10-17 2018-06-28 Kerry Wayne Enfinger System and method for detecting malware
US11620471B2 (en) * 2016-11-30 2023-04-04 Cylance Inc. Clustering analysis for deduplication of training set samples for machine learning based computer threat analysis
US10133865B1 (en) * 2016-12-15 2018-11-20 Symantec Corporation Systems and methods for detecting malware
US10819724B2 (en) * 2017-04-03 2020-10-27 Royal Bank Of Canada Systems and methods for cyberbot network detection
US10685284B2 (en) * 2017-04-03 2020-06-16 Royal Bank Of Canada Systems and methods for malicious code detection
KR101863615B1 (ko) * 2017-05-24 2018-06-01 (주)이스트소프트 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102007809B1 (ko) * 2019-03-05 2019-08-06 에스지에이솔루션즈 주식회사 이미지를 이용한 신경망 기반 익스플로잇킷 탐지 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294758A1 (en) * 2004-10-25 2007-12-20 Siemens Aktiengesesllschaft Method for Registering a Mobile Communication Terminal in a Local Area Network
US20160350532A1 (en) * 2015-04-16 2016-12-01 Cylance Inc. Recurrent neural networks for malware analysis
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Zhang Junlin et al. "A Distributed Representation Model for Collaborative Filtering", 2015 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101960869B1 (ko) 2017-06-30 2019-03-21 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법
KR20190003202A (ko) * 2017-06-30 2019-01-09 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법
US10803384B2 (en) 2018-07-11 2020-10-13 MakinaRocks Co., Ltd. Anomaly detection
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
CN109101817B (zh) * 2018-08-13 2023-09-01 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
CN109101817A (zh) * 2018-08-13 2018-12-28 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
EP3654217A1 (en) * 2018-11-16 2020-05-20 Accenture Global Solutions Limited Malware detection
US10880328B2 (en) 2018-11-16 2020-12-29 Accenture Global Solutions Limited Malware detection
KR20200133644A (ko) * 2019-05-20 2020-11-30 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
KR102241859B1 (ko) * 2019-05-20 2021-04-20 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
KR102093275B1 (ko) * 2019-05-23 2020-03-25 (주)지란지교시큐리티 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법
KR102185831B1 (ko) * 2019-07-25 2020-12-03 호서대학교 산학협력단 디해시 기반 악성코드 분석 장치 및 방법
KR20210035502A (ko) * 2019-09-24 2021-04-01 국민대학교산학협력단 보안관제 데이터 분석을 위한 머신러닝 기반의 학습 벡터 생성 장치 및 방법
KR102269652B1 (ko) * 2019-09-24 2021-06-25 국민대학교산학협력단 보안관제 데이터 분석을 위한 머신러닝 기반의 학습 벡터 생성 장치 및 방법
KR102223345B1 (ko) * 2019-12-30 2021-03-04 부산대학교 산학협력단 완료 시간 예측을 위한 데이터 변환 장치 및 방법
CN113127864A (zh) * 2019-12-31 2021-07-16 奇安信科技集团股份有限公司 特征码提取方法、装置、计算机设备和可读存储介质
CN113127864B (zh) * 2019-12-31 2024-05-24 奇安信科技集团股份有限公司 特征码提取方法、装置、计算机设备和可读存储介质
US11790085B2 (en) 2020-10-29 2023-10-17 Electronics And Telecommunications Research Institute Apparatus for detecting unknown malware using variable opcode sequence and method using the same
KR20220097767A (ko) * 2020-12-31 2022-07-08 주식회사 이스트시큐리티 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102491451B1 (ko) * 2020-12-31 2023-01-27 주식회사 이스트시큐리티 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102518394B1 (ko) 2021-09-30 2023-04-05 단국대학교 산학협력단 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템
WO2023085476A1 (ko) * 2021-11-12 2023-05-19 주식회사 시큐어링크 통합특성 인공지능 기반 가상화 시스템 회피형 악성코드 탐지 장치

Also Published As

Publication number Publication date
US20190163904A1 (en) 2019-05-30
WO2018217019A1 (ko) 2018-11-29
EP3483767A1 (en) 2019-05-15
EP3483767A4 (en) 2020-02-26
US11675903B2 (en) 2023-06-13
EP3483767B1 (en) 2023-07-26
JP2019527447A (ja) 2019-09-26

Similar Documents

Publication Publication Date Title
KR101863615B1 (ko) 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN112396115B (zh) 基于注意力机制的目标检测方法、装置及计算机设备
CN108985317B (zh) 一种基于可分离卷积和注意力机制的图像分类方法
KR101930940B1 (ko) 영상 분석 장치 및 방법
CN110807362B (zh) 一种图像检测方法、装置和计算机可读存储介质
GB2489272A (en) Segmentation of images into superpixels
EP4237977B1 (en) Method for detection of malware
CN113469072B (zh) 基于GSoP和孪生融合网络的遥感图像变化检测方法及系统
CN111784624B (zh) 目标检测方法、装置、设备及计算机可读存储介质
JP6414458B2 (ja) 演算処理装置
CN110490265B (zh) 一种基于双路卷积和特征融合的图像隐写分析方法
KR101888647B1 (ko) 이미지 분류 장치 및 방법
TWI770967B (zh) 一種神經網路的訓練方法、視頻識別方法及電腦設備和電腦可讀儲存介質
CN116012722A (zh) 一种遥感影像场景分类方法
CN111899203A (zh) 基于标注图在无监督训练下的真实图像生成方法及存储介质
CN116645592A (zh) 一种基于图像处理的裂缝检测方法和存储介质
CN114332559B (zh) 一种基于自适应跨模态融合机制和深度注意力网络的rgb-d显著性目标检测方法
CN116311451A (zh) 一种多模态融合人脸活体检测模型生成方法和装置、电子设备
Abdukhamidov et al. Hardening interpretable deep learning systems: Investigating adversarial threats and defenses
CN117636426A (zh) 一种基于注意力机制的面部和情景情感识别方法
CN117315499A (zh) 一种卫星遥感图像目标检测方法及系统
CN117314750A (zh) 一种基于残差生成网络的图像超分辨率重建方法
KR20200134813A (ko) 기계 학습을 위한 이미지 처리 장치 및 방법
CN108805786B (zh) 基于最低有效位匹配隐写分析方法及装置
CN113674383A (zh) 生成文本图像的方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant