KR102033354B1 - Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 - Google Patents
Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 Download PDFInfo
- Publication number
- KR102033354B1 KR102033354B1 KR1020170144951A KR20170144951A KR102033354B1 KR 102033354 B1 KR102033354 B1 KR 102033354B1 KR 1020170144951 A KR1020170144951 A KR 1020170144951A KR 20170144951 A KR20170144951 A KR 20170144951A KR 102033354 B1 KR102033354 B1 KR 102033354B1
- Authority
- KR
- South Korea
- Prior art keywords
- malware
- cnn
- input
- target file
- file
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 멀웨어 분석 장치에 관한 것으로, 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환하는 대상파일 변환부, 상기 입력파일을 기초로 생성된 적어도 하나의 n-그램을 이용하여 CNN 입력을 생성하는 CNN 입력 생성부 및 상기 CNN 입력을 CNN에 입력하여 상기 대상파일이 멀웨어인지 여부를 결정하는 멀웨어 탐지부를 포함한다. 따라서, 본 발명은 CNN 모델을 학습시켜 주어진 파일이 악성인지 정상인지 판별할 수 있고 악성인 경우 어느 악성 그룹에 속하는지 결정할 수 있다.
Description
본 발명은 멀웨어 분석 기술에 관한 것으로, 보다 상세하게는, CNN 모델을 학습시켜 주어진 파일이 악성인지 정상인지 판별할 수 있는 CNN 학습 기반의 멀웨어 분석 장치에 관한 것이다.
악성코드는 컴퓨터에 피해를 줄 수 있는 모든 소프트웨어를 의미한다. 악성코드는 1970년대 최초로 '래빗(The Rabbit)'이라는 이름으로 등장하여 1980년대 PC의 대중화와 컴퓨터 통신의 일반화에 따라 본격적으로 퍼지게 되었다. 최근 사이버 공격의 물량 공세는 보안 전문가들을 압도하고 있다. 악성코드는 연간 1억 개 이상 생산되며, 보안장비는 사람의 처리 능력을 초과하는 분량의 정보를 생성한다. 보안 전문가들의 시간 소모적 작업을 대신해 주고 핵심 정보만을 도출할 수 있는 혁신적인 인공지능 기술의 개발이 필요한 시점이다.
인공 신경망은 인공지능의 한 분야로서 생물학의 뇌 신경망을 모방하여 모델링한 수학적 모델이다. 뉴런(Neuron)이라 불리는 인간의 신경세포는 시냅스(Synapse)라 불리는 신경세포의 접합부를 통하여 정보를 교환하며 신경세포와 신경세포 간의 정보교환은 매우 단순하지만, 상당한 수의 신경세포가 모여 지능을 만들어 낸다. 이러한 구조는 몇몇의 신경세포가 잘못된 정보를 전달하여도 전체 정보에 큰 영향을 끼치지 않으므로 적은 오류에 매우 강인한 장점을 지닌다.
인공 신경망은 입력, 출력, 노드, 가중치로 구성되는데, 각각 생물학적 구조의 세포체, 수상돌기, 축삭, 시냅스를 모방한 것으로 볼 수 있다. 도 1은 뉴런을 모방한 인공 신경망의 기본 연산 과정을 나타내는 예시도이다. 도 1을 참조하면, 인공 신경망의 입력은 다수이며 생물학적으로 다른 신경세포로 생각할 수 있고 인공 신경망에서는 입력에 각각 연결되는 것을 신경세포가 아닌 노드라고 부른다.
다수의 노드로부터 전달받은 정보는 하나의 정보로 합산되어 출력을 만들게 되는데, 이 때 노드들 간의 가중치를 조절하여 정보를 생성한다. 인간의 신경세포 간의 정보 공유를 통한 지식 생성 과정은 모든 신경세포 간의 정보를 중요시 하는 것이 아니라 원하는 지식을 생성할 때 많은 비중을 두는 신경세포의 정보를 중요시한다. 인공 신경망의 원리도 이와 같이 각 노드 간의 가중치를 자유롭게 조절하며 원하는 결과를 생성하는 것이다.
은닉층이란 인공 신경망에서 입력층과 출력층 사이에 존재하는 계층이다. 답러닝(심층 신경망)은 두 개 이상 다수의 은닉층을 가진 인공 신경망 구조를 의미하며, 은닉층이 많을수록, 즉 깊어질수록, 각각의 노드들이 지니게 되는 정보가 다양화되어 복잡한 특정들도 잘 표현할 수 있게 된다. 반면에 학습에 소요되는 시간은 늘어난다. 딥러닝의 장점 중 하나는 학습 시간은 길지만 실제 분석은 빠르다는 점이다.
1) 활성화 함수(Activation Function)
활성화 함수는 입력으로 전달받은 정보들의 결합 값을 그대로 다음 층으로 전달하지 않고 일정 범위의 값으로 전환해 전달하기 위해 사용하는 함수이다. 활성화 함수는 비선형 함수만 가능한데, 하나의 뉴런이 로직게이트를 표현할 수 있고 로직게이트에 비선형성을 추가하면 모든 함수를 표현할 수 있기 때문이다. 비선형 함수는 다양하게 존재하는데 초기 신경망에서는 주로 시그모이드(Sigmoid) 함수가 사용되다가 최근 심층 신경망에서는 ReLU(Rectified Linear Unit) 함수를 사용한다.
2) 소프트맥스 함수(Softmax Function)
소프트맥스 함수는 출력층의 값에 대한 확률적 해석을 위해 사용한다. 소프트맥스 함수의 출력은 0에서 l사이의 실수이며, 함수 출력의 총합은 l이다. 출력 총합이 l이 되는 것은 소프트맥스 함수의 중요한 성질인데, 이 성질을 이용해 출력을 “확률”로 이해하여 분류(Classification) 문제를 해결할 수 있기 때문이다.
3) 드롭 아웃(Dropout)
드롭 아웃은 전 단계의 은닉층에서 다음 단계의 은닉층으로 정보를 전달할 때, 일정 확률로 이전 단계에서 전달 받는 정보를 잊어버리게 만드는 기법이다. 정보를 잊어버릴 노드는 무작위로 선택하며, 전 단계에서 전달받는 전체 정보 중 어느 정도의 비율로 잊어버리게 할지 설정할 수 있다.
드롭 아웃의 효과는 동일한 최초 모델에 대해 학습 과정마다 새로운 모델로 인식되어 학습 시킬 수 있으며, 최종적으로 설계한 모델이 트레이닝 데이터에서는 굉장히 높은 정확도를 보여 다른 데이터에 대해 낮은 정확도를 보여주는 과적합 문제를 해결할 수 있다. 도 2는 일반적인 신경망을 나타내는 예시도이고, 도 3은 드롭 아웃이 적용된 신경망을 나타내는 예시도이다. 도 2 및 3을 참조하면, 드롭 아웃 비율을 0.5로 설정하면 대략 절반의 노드들을 학습 과정에서 제외시킬 수 있다.
한국 공개특허공보 제10-2014-0137003(2014.12.01)호는 멀웨어를 검출하기 위한 컴퓨팅 디바이스에 관한 것으로, 더욱 상세하게는 로그를 생성하기 위해 컴퓨팅 디바이스 상의 애플리케이션의 거동을 로깅하기 위한 쿼리 로거, 애플리케이션의 거동을 특성화하는 거동 벡터를 생성하기 위해 쿼리 로거로부터의 로그를 분석하기 위한 거동 분석 엔진, 및 애플리케이션에 대한 거동 벡터를 양성 또는 멀웨어로서 분류하기 위한 분류기를 포함한다.
한국 공개특허공보 제10-2016-0146954(2016.12.21)호는 멀웨어의 추적 및 검출을 위한 시스템 및 방법에 관한 것으로, 더욱 상세하게는 프로세스와 관련되는 프로그램이 실행하기 시작했다는 것을 결정하는 단계와, 상기 프로그램이 모니터링되어야 한다는 것이 결정되는 경우, 상기 프로그램과 관련되는 이벤트를 추적하는 단계와, 상기 추적이 종료되기 이전에 추적될 이벤트의 수를 결정하는 단계와, 상기 프로세스가 멀웨어를 포함하는지를 결정하기 위해 상기 추적된 이벤트의 결과를 분석하는 단계를 포함한다.
본 발명의 일 실시예는 , CNN 모델을 학습시켜 주어진 파일이 악성인지 정상인지 판별할 수 있는 CNN 학습 기반의 멀웨어 분석 장치를 제공하고자 한다.
본 발명의 일 실시예는 멀웨어 탐지 및 분류를 위해 CNN 모델을 이용할 수 있도록 대상파일을 고정 크기의 입력파일로 변환할 수 있는 CNN 학습 기반의 멀웨어 분석 장치를 제공하고자 한다.
본 발명의 일 실시예는 대상 파일이 멀웨어인 경우 복수의 멀웨어 그룹 중 어느 하나에 속하는지를 결정할 수 있는 CNN 학습 기반의 멀웨어 분석 장치를 제공하고자 한다.
실시예들 중에서, CNN 학습 기반의 멀웨어 분석 장치는 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환하는 대상파일 변환부, 상기 입력 파일을 기초로 생성된 적어도 하나의 n-그램을 이용하여 CNN 입력을 생성하는 CNN 입력 생성부 및 상기 CNN 입력을 CNN에 입력하여 상기 대상파일이 멀웨어인지 여부를 결정하는 멀웨어 탐지부를 포함한다.
CNN 학습 기반의 멀웨어 분석 장치는 상기 대상파일이 멀웨어인 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정하는 멀웨어 분류부를 더 포함할 수 있다.
상기 대상파일 변환부는 상기 대상파일의 크기가 상기 고정 크기보다 작은 경우에는 상기 대상파일과 동일한 파일을 상기 대상파일의 끝에 연결하여 상기 고정 크기로 변환하고, 상기 대상파일의 크기가 상기 고정 크기보다 큰 경우에는 상기 대상파일의 끝에 제로 패딩(Zero-padding)을 하여 상기 고정 크기의 배수로 변환할 수 있다.
상기 CNN 입력 생성부는 상기 적어도 하나의 n-그램에 대해 피처 해싱(Feature Hashing)을 이용하여 상기 CNN 입력을 생성할 수 있다.
상기 멀웨어 탐지부는 상기 CNN 입력을 기초로 특정 수의 합성곱 연산 및 풀링 연산을 수행하여 특징을 추출하고, 상기 추출된 특징을 입력으로 하여 특정 수의 은닉층을 통과시킴으로써 상기 대상파일이 멀웨어인지 여부를 결정할 수 있다.
상기 멀웨어 탐지부는 맥스 풀링(Max pooling), 최소 풀링(Min pooling) 및 평균 풀링(Average pooling) 중 어느 하나를 이용하여 상기 풀링 연산을 수행할 수 있다.
상기 멀웨어 탐지부는 전 단계의 은닉층에서 다음 단계의 은닉층으로 정보를 전달할 때마다 특정 비율에 해당하는 정보만을 전달할 수 있다.
상기 멀웨어 탐지부는 상기 CNN의 출력층에 도달한 노드 값들에 대해 소프트맥스 함수를 적용하여 산출된 확률 값을 기초로 상기 대상파일이 멀웨어인지 여부를 결정할 수 있다.
상기 멀웨어 분류부는 상기 적어도 하나의 멀웨어 그룹 각각에 대해 상기 대상파일이 속할 확률을 산출한 후 가장 높은 확률과 연관된 멀웨어 그룹을 상기 대상파일의 유형을 결정할 수 있다.
실시예들 중에서, CNN 학습 기반의 멀웨어 분석 방법은 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환하는 단계, 상기 입력 파일을 기초로 생성된 적어도 하나의 n-그램을 이용하여 CNN 입력을 생성하는 단계 및 상기 CNN 입력을 CNN에 입력하여 상기 대상파일이 멀웨어인지 여부를 결정하는 단계를 포함한다.
CNN 학습 기반의 멀웨어 분석 방법은 상기 대상파일이 멀웨어인 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정하는 단계를 더 포함할 수 있다.
실시예들 중에서, 컴퓨터에 의해 수행 가능한 기록매체는 제10항의 방법을 기록한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 CNN 학습 기반의 멀웨어 분석 장치는 멀웨어 탐지 및 분류를 위해 CNN 모델을 이용할 수 있도록 대상파일을 고정 크기의 입력파일로 변환할 수 있다.
본 발명의 일 실시예에 따른 CNN 학습 기반의 멀웨어 분석 장치는 대상 파일이 멀웨어인 경우 복수의 멀웨어 그룹 중 어느 하나에 속하는지를 결정할 수 있다.
도 1은 뉴런을 모방한 인공 신경망의 연산 과정을 나타내는 예시도이다.
도 2는 일반적인 신경망을 나타내는 예시도이다.
도 3은 드롭 아웃이 적용된 신경망을 나타내는 예시도이다.
도 4는 본 발명의 일 실시예에 따른 CNN 학습 기반의 멀웨어 분석 시스템을 설명하는 도면이다.
도 5는 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치를 나타내는 블록도이다.
도 6은 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치에서 수행되는 멀웨어 분석 과정을 설명하는 순서도이다.
도 7은 CNN 모델을 위한 고정 크기 파일을 생성하는 방법을 나타내는 예시도이다.
도 8은 멀웨어 탐지를 위한 CNN 모델의 구조를 나타내는 예시도이다.
도 9는 멀웨어 분류를 위한 CNN 모델의 구조를 나타내는 예시도이다.
도 2는 일반적인 신경망을 나타내는 예시도이다.
도 3은 드롭 아웃이 적용된 신경망을 나타내는 예시도이다.
도 4는 본 발명의 일 실시예에 따른 CNN 학습 기반의 멀웨어 분석 시스템을 설명하는 도면이다.
도 5는 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치를 나타내는 블록도이다.
도 6은 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치에서 수행되는 멀웨어 분석 과정을 설명하는 순서도이다.
도 7은 CNN 모델을 위한 고정 크기 파일을 생성하는 방법을 나타내는 예시도이다.
도 8은 멀웨어 탐지를 위한 CNN 모델의 구조를 나타내는 예시도이다.
도 9는 멀웨어 분류를 위한 CNN 모델의 구조를 나타내는 예시도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 4는 본 발명의 일 실시예에 따른 CNN 학습 기반의 멀웨어 분석 시스템을 설명하는 도면이다.
도 4를 참조하면, 멀웨어 분석 시스템(400)은 사용자 단말(410), 멀웨어 분석 장치(430) 및 데이터베이스(450)를 포함할 수 있다.
사용자 단말(410)은 멀웨어 분석 장치(430)에게 멀웨어 분석의 대상이 되는 대상파일을 제공하는 컴퓨팅 장치에 해당하고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(410)은 멀웨어 분석 장치(430)와 네트워크를 통해 연결될 수 있고, 사용자 단말 1 내지 사용자 단말 n을 포함하는 적어도 하나의 사용자 단말(410)은 멀웨어 분석 장치(430)와 동시에 연결될 수 있다. 일 실시예에서, 사용자 단말(410)은 멀웨어 분석 장치(430)에게 멀웨어 분석의 대상이 되는 대상파일의 집합으로 구현된 분석 모집단을 제공할 수 있다.
멀웨어 분석 장치(430)는 네트워크를 통해 사용자 단말(410) 또는 데이터베이스(450)로부터 제공받은 대상파일을 분석하여 멀웨어를 탐지하고 분류할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 멀웨어 분석 장치(430)는 사용자 단말(410)과 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 사용자 단말(410)과 데이터를 주고 받을 수 있다.
멀웨어 분석 장치(430)는 데이터베이스(450)를 포함하여 구현될 수 있고, 데이터베이스(450)와 별도로 구현될 수 있다. 데이터베이스(450)와 별도로 구현된 경우 멀웨어 분석 장치(430)는 데이터베이스(450)와 연결되어 데이터를 송수신할 수 있다.
데이터베이스(450)는 멀웨어 분석 장치(430)가 멀웨어를 탐지하고 분류하기 위해 사용하는 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(450)는 멀웨어 분석 장치(430)가 멀웨어 분석을 위하여 CNN을 학습하기 위해 사용하는 복수의 멀웨어 정보들을 저장할 수 있고, 멀웨어 분석의 대상이 되는 대상파일 정보들을 저장할 수 있다.
여기에서, CNN(Convolution Neural Network, 합성곱 신경망)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러 개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 풀링 계층(pooling layer)들을 추가로 활용할 수 있다. CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있고, 다른 딥 러닝 구조들과 비교해서 영상 및 음성 분야 모두에서 좋은 성능을 보여줄 수 있다. CNN은 표준 역전달을 통해 훈련될 수 있고 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되며 적은 수의 매개변수를 사용한다는 장점을 가진다.
데이터베이스(450)는 특정 범위에 속하는 정보들을 저장하는 적어도 하나의 독립된 서브-데이터베이스들로 구성될 수 있고, 적어도 하나의 독립된 서브-데이터베이스들이 하나로 통합된 통합 데이터베이스로 구성될 수 있다. 적어도 하나의 독립된 서브-데이터베이스들로 구성되는 경우에는 각각의 서브-데이터베이스들은 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 상호 간의 데이터를 주고 받을 수 있다. 통합 데이터베이스로 구성되는 경우에는 각각의 서브-데이터베이스들을 하나로 통합하고 상호 간의 데이터 교환 및 제어 흐름을 관리하는 제어부를 포함할 수 있다.
도 5는 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치를 나타내는 블록도이다.
도 5를 참조하면, 멀웨어 분석 장치(430)는 대상파일 변환부(510), CNN 입력 생성부(520), 멀웨어 탐지부(530), 멀웨어 분류부(540) 및 제어부(550)를 포함할 수 있다.
대상파일 변환부(510)는 대상파일을 CNN 입력을 생성하는데 사용되는 입력파일로 변환할 수 있다. CNN을 이용하기 위해서는 입력의 크기가 일정해야 하는 제약조건을 만족해야 하며, 대상파일 변환부(510)는 제약조건을 만족시키기 위해 대상파일을 고정 크기의 입력파일로 변환할 수 있다.
일 실시예에서, 대상파일 변환부(510)는 대상파일의 크기가 고정 크기보다 작은 경우에는 대상파일과 동일한 파일을 대상파일의 끝에 연결하여 고정 크기로 변환하고, 대상파일의 크기가 고정 크기보다 큰 경우에는 대상파일의 끝에 제로 패딩(Zero-padding)을 하여 고정 크기의 배수로 변환할 수 있다. 여기에서, 제로 패딩(Zero-padding)은 자료의 개수가 부족한 경우 부족한 부분을 0으로 채우는 방법이다.
도 7은 CNN 모델을 위한 고정 크기 파일을 생성하는 방법을 나타내는 예시도이다. 도 7에서, 고정 크기가 6으로 설정된 경우 대상파일 변환부(510)가 대상파일의 크기를 고정 크기로 변환하는 과정을 나타낸다.
대상파일 변환부(510)는 고정 크기보다 파일 크기가 큰 경우에는 파일의 끝 부분에 제로 패딩을 하여 패딩 후 크기가 고정 크기의 배수가 되도록 하고 배수 만큼의 바이트씩 파일 앞부분부터 최대값,최소값 또는 평균값을 취해 새로운 파일을 만든다. 예를 들어, 주어진 파일의 크기가 8인 경우 대상파일 변환부(510)는 파일 끝에 '0'을 네 개 추가하여 크기를 12로 만들고, 2바이트씩 파일 앞부분부터 최대값, 최소값 또는 평균값을 취해 입력파일로 변환한다(710).
대상파일 변환부(510)는 고정 크기보다 파일 크기가 작은 경우에는 동일 파일을 이어 붙이고, 고정 크기 이상이 될 때까지 이 과정을 반복할 수 있다. 예를 들어, 주어진 파일의 크기가 2인 경우 대상파일 변환부(510)는 동일 파일을 이어 붙이는 과정을 2번 반복하여 크기 6인 입력파일로 변환할 수 있다(730). 주어진 파일의 크기가 5인 경우 대상파일 변환부(510)는 동일 파일을 1번 이어 붙여 크기 6인 입력파일로 변환할 수 있다(750).
CNN 입력 생성부(520)는 대상파일 변환부(510)에 의해 생성된 고정 크기를 갖는 입력파일을 기초로 CNN 입력을 생성할 수 있다. 보다 구체적으로 CNN 입력 생성부(520)는 고정 크기의 입력파일을 기초로 n-그램을 생성하고 n-그램을 이용하여 CNN 입력을 생성할 수 있다. 여기에서, n-그램은 주어진 연속적인 데이터에서 연속하는 n개의 항목으로 이루어진 부분 시퀀스를 의미한다.
일 실시예에서, CNN 입력 생성부(520)는 대상파일을 디스어셈블하여 생성된 어셈블리 파일에서 Mnemonic 시퀀스의 n-그램을 구하는 방식을 사용할 수 있다. n-그램 방법을 이용하면 파일 간의 유사도를 측정할 수 있고 파일을 대표하는 시그니처로도 활용할 수 있는 장점이 있다. 디스어셈블 방식은 기계어를 어셈블리어로 변환해주는 디스어셈블러를 이용하는데, 예를 들어, IDA Pro를 사용하여 디스어셈블 파일을 생성할 수 있다.
일 실시예에서, CNN 입력 생성부(520)는 대상파일이 바이너리 파일과 디스어셈블된 어셈블리 파일로 구성된 경우 두가지 파일 모두에 대해 n-그램 기법을 적용하는 방식으로 CNN 입력을 생성할 수 있다. CNN 입력 생성부(520)는 바이너리 파일에서는 바이트 단위로 2, 3 및 4-그램을 추출하고 어셈블리 파일에서는 Mnemonic만 추출한 뒤 Mnemonic 시퀀스에서 2, 3 및 4-그램을 추출할 수 있다. CNN 입력 생성부(520)는 바이너리에서 추출한 2, 3 및 4-그램을 적절한 고정 크기의 배열에 수치화시키고, 어셈블리 파일에서 Mnemonic으로 추출한 2, 3 및 4-그램을 다른 고정 크기의 배열에 수치화시킬 수 있다. CNN 입력 생성부(520)는 두 개의 배열을 연결하여 하나의 큰 배열로 변환하여 CNN 입력으로 생성할 수 있다.
일 실시예에서, CNN 입력 생성부(520)는 바이너리 파일에서는 바이트 단위로 2, 3 및 4-그램을 추출할 수 있고, 어셈블리 파일에서는 Mnemonic만 추출한 뒤, Mnemonic 시퀀스에서 2, 3 및 4-그램을 추출할 수 있다.
일 실시예에서, CNN 입력 생성부(520)는 적어도 하나의 n-그램에 대해 피처 해싱을 이용하여 CNN 입력을 생성할 수 있다. 예를 들어, CNN 입력 생성부(520)는 고정 크기의 입력파일로부터 추출된 2, 3 및 4-그램에 대해 피처 해싱 기법을 적용할 수 있다. 여기에서, 피처 해싱은 기계 학습 분야에서 특징들을 벡터화하는 빠르고 효율적인 방법인데, 임의의 특징을 벡터 또는 행렬의 인덱스로 변환하는 것이다.
CNN 입력 생성부(520)는 먼저 고정된 사이즈의 정수 배열을 생성하고 배열의 각 원소 값은 0으로 초기화 할 수 있다. CNN 입력 생성부(520)는 각각의 2, 3 및 4-그램을 임의의 해시에 통과시켜 해시 값을 구하고, 이 값을 배열의 인덱스로 사용하여 배열의 해당 칸을 1만큼 증가시는 과정을 통해 CNN 입력을 생성할 수 있다.
일 실시예에서, CNN 입력 생성부(520)는 각각의 2, 3 및 4-그램에 대해 첫 번째 해시를 통과시켜 인덱스 값을 구한 뒤, 첫 번째 해시와 다른 해시를 한 번 더 적용하여 나온 값에 따라 해당 배열 칸의 값을 1 증가 또는 감소시키는 방법을 사용하여 CNN 입력을 생성할 수 있다. CNN 입력 생성부(520)는 배열 값의 범위를 -256부터 256까지로 한정시킬 수 있다. CNN 입력 생성부(520)는 모든 2, 3 및 4-그램의 값을 배열에 반영시킨 후에는 모든 배열 칸의 값을 256으로 나누어 최종 범위가 -1에서 1사이의 값이 되도록 정규화 시킴으로써 CNN 입력을 생성할 수 있다.
멀웨어 탐지부(530)는 CNN 입력을 CNN에 입력하여 대상파일이 멀웨어인지 여부를 결정할 수 있다. 보다 구체적으로, 멀웨어 탐지부(530)는 CNN 입력 생성부(520)에 의해 생성된 CNN 입력을 피처 추출 단계와 분류 단계로 이루어진 CNN에 통과시켜 마지막 분류 단계의 출력층에 도달한 값들을 기초로 대상파일이 멀웨어인지 여부를 결정할 수 있다.
일 실시예에서, 멀웨어 탐지부(530)는 CNN 입력을 기초로 특정 수의 합성곱 연산 및 풀링 연산을 수행하여 특징을 추출하고, 추출된 특징을 입력으로 하여 특정 수의 은닉층을 통과시킴으로써 대상파일이 멀웨어인지 여부를 결정할 수 있다.
일 실시예에서, 멀웨어 탐지부(530)는 CNN 입력을 기초로 합성곱 연산 및 풀링 연산을 교차로 특정 수만큼 반복 수행하여 특징을 추출할 수 있다. 예를 들어, 멀웨어 탐지부(530)는 특징 추출 단계에서 CNN 입력에 대해 3번의 합성곱 연산과 3번의 풀링 단계를 거쳐 특징을 자동으로 추출하여 은닉층을 통과시키는 분류 단계로 전달할 수 있다.
일 실시예에서, 멀웨어 탐지부(530)는 특정 크기의 커널 및 특정 수의 커널을 사용하여 합성곱 연산을 수행할 수 있다. 예를 들어, 멀웨어 탐지부(530)는 커널 크기가 7이고 커널의 개수가 2개인 경우 입력파일에서 7바이트씩을 지역으로 하여 특징을 추출하며 커널의 개수가 2개이므로 지역적 특징 집합을 2개 추출할 수 있다.
일 실시예에서, 멀웨어 탐지부(530)는 맥스 풀링, 최소 풀링 및 평균 풀링 중 어느 하나를 이용하여 풀링 연산을 수행할 수 있다. 여기에서, 풀링 연산은 입력받은 데이터의 공간적 크기를 축소하는데 사용되고 샘플링 또는 리사이징과 같은 개념으로 합성곱 연산을 통해 추출한 지역적 특징들을 축소하여 입력의 작은 변화에 민감하지 않도록 해준다.
풀링 연산은 합성곱 연산과 비슷하게 어느 정도 크기의 지역에 대해 축소를 진행할지 고려하여 진행할 수 있다. 예를 들어, 일차원 데이터(바이트 입력)입력에서 풀링 연산의 크기가 2라면 주어진 데이터에서 2바이트씩을 선택하여 축소시킨다. 축소시키는 방법은 2바이트 중 최대값을 가지는 바이트를 선택하는 맥스 풀링(Max pooling), 최소값을 가지는 바이트를 선택하는 최소 풀링(Min pooling), 바이트들의 평균값을 취하는 평균 풀링(Average pooling) 등이 있다.
일 실시예에서, 멀웨어 탐지부(530)는 전 단계의 은닉층에서 다음 단계의 은닉층으로 정보를 전달할 때마다 특정 비율에 해당하는 정보만을 전달할 수 있다. 멀웨어 탐지부(530)는 다음 단계의 은닉층으로 전달하지 않을 정보를 무작위로 선택할 수 있고, 전 단계에서 전달받는 전체 정보 중 어느 정도의 비율로 전달하지 않을지 설정할 수 있다.
일 실시예에서, 멀웨어 탐지부(530)는 CNN의 출력층에 도달한 노드 값들에 대해 소프트맥스 함수를 적용하여 산출된 확률 값을 기초로 상기 대상파일이 멀웨어인지 여부를 결정할 수 있다. 소프트맥스 함수는 출력층의 값에 대한 확률적 해석을 위해 사용되는 함수이며, 출력 총합이 l이 되는 성질을 이용해 출력을 “확률”로 이해하여 분류(Classification) 문제를 해결할 수 있게 해준다.
멀웨어 분류부(540)는 멀웨어 탐지부(530)에 의해 대상파일이 멀웨어로 결정된 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정할 수 있다. 멀웨어 분류부(540)는 CNN 입력 생성부(520)에 의해 생성된 CNN 입력을 CNN에 입력하여 멀웨어가 어떤 그룹에 속하는지를 결정하는 다중 분류를 수행할 수 있다. 이 경우, CNN의 분류 단계에서 출력층은 기 설정된 멀웨어 그룹의 수 만큼의 노드로 구성될 수 있다.
일 실시예에서, 멀웨어 분류부(540)는 적어도 하나의 멀웨어 그룹 각각에 대해 대상파일이 속할 확률을 산출한 후 가장 높은 확률과 연관된 멀웨어 그룹을 대상파일의 유형으로 결정할 수 있다. 예를 들어, CNN이 총 9개의 노드로 구성된 출력층을 포함하는 경우, 멀웨어 분류부(540)는 CNN 입력 생성부(520)에 의해 생성된 CNN 입력을 CNN에 통과시켜 최종 출력으로 9개의 노드 값을 얻을 수 있고, 9개의 노드 값 각각에 대해 소프트맥스 함수를 적용시켜 각 노드에 해당하는 멀웨어 그룹에 속할 확률을 산출할 수 있다. 멀웨어 분류부(540)는 가장 높은 확률을 가진 멀웨어 그룹을 해당 대상파일의 유형으로 결정할 수 있다.
제어부(550)는 멀웨어 분석 장치(430)의 전체적인 동작을 제어하고, 대상파일 변환부(510), CNN 입력 생성부(520), 멀웨어 탐지부(530) 및 멀웨어 분류부(540) 간의 제어 흐름 및 데이터 흐름을 관리할 수 있다.
도 6은 도 4에 있는 CNN 학습 기반의 멀웨어 분석 장치에서 수행되는 멀웨어 분석 과정을 설명하는 순서도이다.
도 6을 참조하면, 멀웨어 분석 장치(430)는 대상파일 변환부(510)를 통해 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환할 수 있다(단계 S610). 멀웨어 분석 장치(430)는 CNN 입력 생성부(520)를 통해 입력파일을 기초로 생성된 적어도 하나의 n-그램을 이용하여 CNN 입력을 생성할 수 있다(단계 S630). 멀웨어 분석 장치(430)는 멀웨어 탐지부(530)를 통해 CNN 입력을 CNN에 입력하여 대상파일이 멀웨어인지 여부를 결정할 수 있다(단계 S650). 멀웨어 분석 장치(430)는 멀웨어 분류부(540)를 통해 대상파일이 멀웨어인 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정할 수 있다(단계 S670).
도 8은 멀웨어 탐지를 위한 CNN 모델의 구조를 나타내는 예시도이다.
도 8에서, 멀웨어 분석 장치(430)는 특징 추출 단계에서 세 번의 합성곱 연산과 세 번의 풀링 단계를 거쳐 특징을 자동으로 추출하여 분류 단계로 전달한다. 첫 번째 합성곱 연산을 위한 커널의 자동으로 추출하여 분류 단계로 전달한다. 첫 번째 합성곱 연산을 위한 커널의 크기는 7, 커널의 개수는 2 개이므로 입력받은 데이터에서 7 바이트씩을 지역으로 정하여 특정을 추출하며, 커널의 개수가 2개이므로 지역적 특징 집합이 2개가 추출된다. 멀웨어 분석 장치(430)는 두 번째와 세 번째 합성곱 연산도 첫 번째 연산과 동일하게 진행하며 풀링 연산 후 데이터를 전달할 때 드롭 아웃을 적용하여 과적합 현상을 방지할 수 있다. 멀웨어 분석 장치(430)는 분류 단계에서 입력받은 특징들을 네 개의 은닉층으로 통과시키며 출력층에서 소프트맥스 함수를 적용하여 탐지여부를 결정할 수 있다.
도 9는 멀웨어 분류를 위한 CNN 모델의 구조를 나타내는 예시도이다.
도 9에서, 멀웨어 분석 장치(430)는 고정 크기를 8,192 바이트로 설정하였고, 특징 추출 단계에서 네 번의 합성곱 연산과 네 번의 풀링 연산을 진행하여 특성을 자동적으로 생성할 수 있다. 첫 번 째 합성곱 연산을 위한 커널의 크기는 3, 커널의 개수는 2개이므로 3바이트 크기마다 추출한 지역 특징 집합이 2개 존재한다. 멀웨어 분석 장치(430)는 두 번째, 세 번째, 네 번째 합성곱 연산도 첫 번째 연산과 동일하게 진행할 수 있다. 멀웨어 분석 장치(430)는 분류 단계에서 입력받은 특징들을 한 개의 은닉층으로 통과시킬 수 있고 출력층에서 소프트맥스 함수를 적용하여 악성코드로 탐지된 대상파일이 각 그룹에 속할 확률을 구할 수 있다. 멀웨어 분석 장치(430)는 각 그룹에 속할 확률 중 가장 높은 확률을 가진 그룹을 해당 대상파일이 속한 그룹으로 결정할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
400: 멀웨어 분석 시스템
410: 사용자 단말
430: CNN 학습 기반의 멀웨어 분석 장치
450: 데이터베이스
510: 대상파일 변환부 520: CNN 입력 생성부
530: 멀웨어 탐지부 540: 멀웨어 분류부
550: 제어부
410: 사용자 단말
430: CNN 학습 기반의 멀웨어 분석 장치
450: 데이터베이스
510: 대상파일 변환부 520: CNN 입력 생성부
530: 멀웨어 탐지부 540: 멀웨어 분류부
550: 제어부
Claims (12)
- 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환하는 대상파일 변환부;
상기 입력파일을 기초로 생성된 적어도 하나의 n-그램에 대해 피처 해싱(Feature Hashing)을 이용하여 CNN 입력을 생성하는 CNN 입력 생성부; 및
상기 CNN 입력을 CNN에 입력하여 상기 대상파일이 멀웨어인지 여부를 결정하는 멀웨어 탐지부를 포함하되,
상기 CNN 입력 생성부는 상기 입력파일을 기초로 2, 3 및 4-그램을 각각 생성하는 제1 단계; 고정된 크기의 정수 배열을 생성하고 상기 정수 배열의 각 원소 값을 0으로 초기화하는 제2 단계; 각각의 2, 3 및 4-그램을 제1 해시에 통과시켜 상기 정수 배열의 인덱스 값을 산출하는 제3 단계; 상기 인덱스 값을 상기 제1 해시와 다른 제2 해시에 통과시켜 산출된 해시 값에 따라 상기 인덱스 값이 지정하는 배열 칸의 값을 1만큼 증가 또는 감소시키는 제4 단계; 및 모든 2, 3 및 4-그램을 상기 정수 배열에 반영시킨 후 모든 배열 칸의 값을 정규화시키는 제5 단계를 순차적으로 수행함으로써 상기 CNN 입력을 생성하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제1항에 있어서,
상기 대상파일이 멀웨어인 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정하는 멀웨어 분류부를 더 포함하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제1항에 있어서, 상기 대상파일 변환부는
상기 대상파일의 크기가 상기 고정 크기보다 작은 경우에는 상기 대상파일과 동일한 파일을 상기 대상파일의 끝에 연결하여 상기 고정 크기로 변환하고,
상기 대상파일의 크기가 상기 고정 크기보다 큰 경우에는 상기 대상파일의 끝에 제로 패딩(Zero-padding)을 하여 상기 고정 크기의 배수로 변환하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 삭제
- 제1항에 있어서, 상기 멀웨어 탐지부는
상기 CNN 입력을 기초로 특정 수의 합성곱 연산 및 풀링 연산을 수행하여 특징을 추출하고, 상기 추출된 특징을 입력으로 하여 특정 수의 은닉층을 통과시킴으로써 상기 대상파일이 멀웨어인지 여부를 결정하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제5항에 있어서, 상기 멀웨어 탐지부는
맥스 풀링(Max pooling), 최소 풀링(Min pooling) 및 평균 풀링(Average pooling) 중 어느 하나를 이용하여 상기 풀링 연산을 수행하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제5항에 있어서, 상기 멀웨어 탐지부는
전 단계의 은닉층에서 다음 단계의 은닉층으로 정보를 전달할 때마다 특정 비율에 해당하는 정보만을 전달하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제5항에 있어서, 상기 멀웨어 탐지부는
상기 CNN의 출력층에 도달한 노드 값들에 대해 소프트맥스 함수를 적용하여 산출된 확률 값을 기초로 상기 대상파일이 멀웨어인지 여부를 결정하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 제2항에 있어서, 상기 멀웨어 분류부는
상기 적어도 하나의 멀웨어 그룹 각각에 대해 상기 대상파일이 속할 확률을 산출한 후 가장 높은 확률과 연관된 멀웨어 그룹을 상기 대상파일의 유형으로 결정하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 장치.
- 대상파일 변환부, CNN 입력 생성부 및 멀웨어 탐지부를 포함하는 멀웨어 분석 장치에서 수행되는 방법에 있어서,
상기 대상파일 변환부에서, 분석 모집단 중 어느 하나의 대상파일을 이용하여 고정 크기의 입력파일로 변환하는 단계;
상기 CNN 입력 생성부에서, 상기 입력 파일을 기초로 생성된 적어도 하나의 n-그램에 대해 피처 해싱(Feature Hashing)을 이용하여 CNN 입력을 생성하는 단계; 및
상기 멀웨어 탐지부에서, 상기 CNN 입력을 CNN에 입력하여 상기 대상파일이 멀웨어인지 여부를 결정하는 단계를 포함하되,
상기 CNN 입력을 생성하는 단계는 상기 입력파일을 기초로 2, 3 및 4-그램을 각각 생성하는 제1 단계; 고정된 크기의 정수 배열을 생성하고 상기 정수 배열의 각 원소 값을 0으로 초기화하는 제2 단계; 각각의 2, 3 및 4-그램을 제1 해시에 통과시켜 상기 정수 배열의 인덱스 값을 산출하는 제3 단계; 상기 인덱스 값을 상기 제1 해시와 다른 제2 해시에 통과시켜 산출된 해시 값에 따라 상기 인덱스 값이 지정하는 배열 칸의 값을 1만큼 증가 또는 감소시키는 제4 단계; 및 모든 2, 3 및 4-그램을 상기 정수 배열에 반영시킨 후 모든 배열 칸의 값을 정규화시키는 제5 단계를 순차적으로 수행함으로써 상기 CNN 입력을 생성하는 단계인 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 방법.
- 제10항에 있어서,
상기 멀웨어 분석 장치는 멀웨어 분류부를 더 포함하고,
상기 멀웨어 분류부에서, 상기 대상파일이 멀웨어인 경우 기 설정된 적어도 하나의 멀웨어 그룹 중 어느 하나에 속하는지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 CNN 학습 기반의 멀웨어 분석 방법.
- 제10항의 방법을 컴퓨터에서 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170144951A KR102033354B1 (ko) | 2017-11-01 | 2017-11-01 | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170144951A KR102033354B1 (ko) | 2017-11-01 | 2017-11-01 | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190049286A KR20190049286A (ko) | 2019-05-09 |
KR102033354B1 true KR102033354B1 (ko) | 2019-10-17 |
Family
ID=66545340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170144951A KR102033354B1 (ko) | 2017-11-01 | 2017-11-01 | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102033354B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102302484B1 (ko) * | 2020-11-26 | 2021-09-14 | 숭실대학교산학협력단 | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 |
KR102518394B1 (ko) * | 2021-09-30 | 2023-04-05 | 단국대학교 산학협력단 | 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245494B (zh) * | 2019-06-18 | 2024-05-24 | 平安科技(深圳)有限公司 | 恶意软件的检测方法、电子装置及计算机可读存储介质 |
KR102289411B1 (ko) * | 2019-08-27 | 2021-08-12 | 국민대학교산학협력단 | 가중치 기반의 피처 벡터 생성 장치 및 방법 |
KR102528849B1 (ko) * | 2021-11-16 | 2023-05-08 | (주)트리니티소프트 | 인공지능 기반의 소스코드 보안 취약점 판단 모델의 생성을 통해 소스코드에 대한 보안 취약점 판단을 가능하게 하는 전자 장치 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017793A1 (en) | 2015-07-15 | 2017-01-19 | Cylance Inc. | Malware detection |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832211B2 (en) | 2012-03-19 | 2017-11-28 | Qualcomm, Incorporated | Computing device to detect malware |
US20150379268A1 (en) | 2014-06-27 | 2015-12-31 | Prabhat Singh | System and method for the tracing and detection of malware |
-
2017
- 2017-11-01 KR KR1020170144951A patent/KR102033354B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017793A1 (en) | 2015-07-15 | 2017-01-19 | Cylance Inc. | Malware detection |
Non-Patent Citations (3)
Title |
---|
Cornelia Caragea 외 2명. Protein Sequence Classification Using Feature Hashing. 2012.06. 1부.* |
딥러닝 - 3주차 딥러닝 - 소프트맥스, 손실함수(MSE, 교차엔트로피), SGD, 오버피팅 방지. 2017.05.15. 1부.* |
석선희 외 1명. Convolutional Neural Network 기반의 악성코드 이미지화를 통한 패밀리 분류. 2016.02. 1부.* |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102302484B1 (ko) * | 2020-11-26 | 2021-09-14 | 숭실대학교산학협력단 | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 |
WO2022114392A1 (ko) * | 2020-11-26 | 2022-06-02 | 숭실대학교 산학협력단 | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 |
US11809557B2 (en) | 2020-11-26 | 2023-11-07 | Foundation Of Soongsil University-Industry Cooperation | Mobile malicious code classification method based on feature selection and recording medium and device for performing the same |
KR102518394B1 (ko) * | 2021-09-30 | 2023-04-05 | 단국대학교 산학협력단 | 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20190049286A (ko) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102033354B1 (ko) | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 | |
Ahmed et al. | An inception V3 approach for malware classification using machine learning and transfer learning | |
CN111723368B (zh) | 基于Bi-LSTM和自注意力的恶意代码检测方法及系统 | |
Subba et al. | A neural network based system for intrusion detection and attack classification | |
Karlik et al. | Performance analysis of various activation functions in generalized MLP architectures of neural networks | |
CN112508085B (zh) | 基于感知神经网络的社交网络链路预测方法 | |
Zhang | Machine learning with feature selection using principal component analysis for malware detection: a case study | |
Ever et al. | Classification analysis of intrusion detection on NSL-KDD using machine learning algorithms | |
Zhang | MLPdf: an effective machine learning based approach for PDF malware detection | |
CN110765240A (zh) | 多相关句子对的语义匹配评估方法 | |
Nguyen et al. | Neural network structure for spatio-temporal long-term memory | |
Chen et al. | A comparison of machine learning algorithms for detecting XSS attacks | |
WO2020171904A1 (en) | Human body part segmentation with real and synthetic images | |
Rai et al. | Fraud detection in credit card data using machine learning techniques | |
Cahyani et al. | Ransomware detection on bitcoin transactions using artificial neural network methods | |
WO2020091919A1 (en) | Computer architecture for multiplier-less machine learning | |
Preethi et al. | Sparse auto encoder driven support vector regression based deep learning model for predicting network intrusions | |
Devi et al. | A Comparative Study on Handwritten Digit Recognizer using Machine Learning Technique | |
Constantin et al. | Deepfusion: Deep ensembles for domain independent system fusion | |
Ahli et al. | Binary and Multi-Class Classification on the IoT-23 Dataset | |
CN116189800B (zh) | 基于气体检测的模式识别方法、装置、设备及存储介质 | |
Pan et al. | New approach of friction model and identification for hydraulic system based on MAPSO-NMDS optimization Elman neural network | |
Law et al. | Functional link artificial neural network for multi-label classification | |
Wang et al. | A malware classification method based on the capsule network | |
Leelavathy et al. | A novel approach to classify users based on keystroke behavior |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |