KR102140714B1 - 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템 - Google Patents

안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템 Download PDF

Info

Publication number
KR102140714B1
KR102140714B1 KR1020180147579A KR20180147579A KR102140714B1 KR 102140714 B1 KR102140714 B1 KR 102140714B1 KR 1020180147579 A KR1020180147579 A KR 1020180147579A KR 20180147579 A KR20180147579 A KR 20180147579A KR 102140714 B1 KR102140714 B1 KR 102140714B1
Authority
KR
South Korea
Prior art keywords
code
data
malicious code
main part
android
Prior art date
Application number
KR1020180147579A
Other languages
English (en)
Other versions
KR20200061830A (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 KR1020180147579A priority Critical patent/KR102140714B1/ko
Publication of KR20200061830A publication Critical patent/KR20200061830A/ko
Application granted granted Critical
Publication of KR102140714B1 publication Critical patent/KR102140714B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification

Abstract

본 발명은 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 실행코드를 나타내는 주요부분을 패턴화(이미지화, 사운드화 등)하고, 그 패턴화된 정보를 머신러닝에 적용하여 악성코드를 진단함으로서, 안드로이드 환경에서 악성코드 탐지 성능을 향상시키는 기술로서, 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 선택 추출하는 검사영역 추출부와, 검사영역 추출부가 추출한 주요부분의 데이터를 패턴화하여 패턴데이터를 생성하는 변환부와, 변환부가 생성한 패턴데이터를 종래 악성코드 패턴과 대비하여 패턴데이터의 악성코드 포함 여부를 진단하는 악성코드 검사부를 포함한다.

Description

안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템 {MALWARE DETECTION AND CLASSIFICATION METHOD AND SYSTEM, INCLUDING PATTERN KEY PARTS OF ANDROID APPLICATIONS}
본 발명은 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템에 관한 것으로서, 보다 상세하게는 안드로이드 애플리케이션에서 실행코드를 포함하는 주요부분을 패턴화(이미지화, 사운드화 등)하고, 그 패턴화된 정보를 머신러닝에 적용하여 악성코드를 진단함으로서, 안드로이드 환경에서 악성코드 탐지 및 패밀리 분류 성능을 향상시키는 방법 및 시스템에 관한 기술이다.
모바일 플랫폼 시장 중 안드로이드를 대상으로 하는 악성코드의 등장 속도가 나날이 증가하고 있다. 보안솔루션업체 McAfee에 따르면, 2017년 3분기에 5천 760만개의 새로운 악성코드가 등장하며 최고치를 경신했다.
폭발적으로 증가하는 악성코드에 비하여 기존의 시그니처 및 이상행위 탐지 등을 기반으로 하는 안드로이드 악성코드 탐지 시스템은 시그니처 및 anomaly DB의 업데이트 속도가 충분히 현 상황에 대처할 만큼 빠르지 않다는 한계점이 나타났다.
이러한 한계점으로 인해 우회가 상대적으로 쉬우며 새로운 유형의 악성코드나 제로데이에 취약하다는 단점이 존재한다.
종래 악성코드 탐지의 한계점을 극복하기 위해 머신러닝 기법이 도입되고 있다.
악성코드를 분석하는 방식으로는 크게 정적 분석과 동적 분석이 존재한다. 악성코드를 실행하지 않고 디컴파일 혹은 디스어셈블된 코드를 분석하는 방법인 정적 분석은 코드 커버리지(Code coverage)가 높다는 장점을 가지나, 분석에 많은 시간이 소요되며 난독화 등의 분석 방해 기법에 의해 제한적으로 이용이 가능하다. 반면, 동적 분석은 악성코드를 제한된 환경에서 실행하며 일부를 분석하는 방법이다. 이는 분석 방해 기법으로부터 상대적으로 자유로우며 상대적으로 적은 분석 시간을 요구한다는 장점이 있으나, 코드 커버리지가 협소하여 Logic bomb이나 Time bomb 등에 대처가 힘들고, 제한된 환경을 구성하기가 복잡하다는 단점이 있다.
미국 공개특허 2012-0047580
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 안드로이드 애플리케이션에서 실행코드를 포함하는 주요부분을 패턴화(이미지화, 사운드화 등)하고, 그 패턴화된 정보를 머신러닝에 적용하여 악성코드를 진단함으로서, 안드로이드 환경에서 악성코드 탐지 및 패밀리 분류 성능을 향상시키는 방법 및 시스템을 제공하기 위한 것이다.
또한, 본 발명의 목적은 안드로이드 애플리케이션(APK)의 DEX 파일 전체를 패턴화하여 머신러닝에 입력하는 종래 기술을 개선하기 위해, DEX 파일에서 실행코드가 포함되는 code_item을 패턴화하고, 그 패턴화된 정보를 머신러닝에 적용하여 악성코드를 탐지 분류하는 방법 및 시스템을 제공하기 위한 것이다.
상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 시스템은 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 선택 추출하는 검사영역 추출부와; 상기 검사영역 추출부가 추출한 주요부분을 패턴화하여 패턴데이터를 생성하는 변환부와; 상기 변환부가 생성한 패턴데이터를 종래 악성코드 패턴이 학습된 머신러닝에 입력하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 악성코드 검사부를 포함하는 것을 특징으로 한다.
또한, 상기 변환부에서 생성된 패턴데이터는 이미지 포맷의 데이터인 것을 특징으로 할 수 있다.
또한, 상기 변환부는 상기 주요부분을 이진코드(binary code) 형태로 로드한 후 기 설정된 단위로 분할하고, 분할된 이진코드를 대응되는 명암 또는 색상으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 변환부는 상기 악성코드 검사부의 머신러닝 알고리즘에 입력되는 데이터 포맷에 대응하여 이미지 포맷의 패턴데이터를 확대 또는 압축하는 것을 특징으로 할 수 있다.
또한, 상기 변환부에서 생성된 패턴데이터는 사운드 포맷의 데이터인 것을 특징으로 할 수 있다.
또한, 상기 변환부는 상기 주요부분의 이진코드를 MIDI 포맷으로 변환한 후, 변환된 MIDI 포맷의 데이터를 wav 포맷 또는 MFCC(Mel-Frequency Cepstral Coefficients) 포맷으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 변환부는 주요부분의 MIDI 포맷 변환 시, 주요부분을 1 바이트 단위로 분할한 후, 상기 1 바이트를 2 비트로 구성된 제1채널과, 6 비트로 구성된 제2채널로 구성하는 것을 특징으로 할 수 있다.
또한, 상기 변환부는 제1채널과 제2채널의 음이 서로 중복되지 않게 적어도 어느 하나의 채널에 가중치를 더한 후 MIDI 포맷으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 주요부분은 상기 안드로이드 애플리케이션의 DEX파일 중 실행코드를 나타내는 code-item이 포함되는 것을 특징으로 할 수 있다.
또한, 상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 안드로이드 애플리케이션의 프로그래밍 언어에 대응하는 추가영역을 추출하는 것을 특징으로 할 수 있다.
또한, 상기 추가영역은 프로그래밍 언어가 C 또는 C++인 경우 so 확장자의 파일이고, 프로그래밍 언어가 C#인 경우 Assembly-CSharp.dll 또는 App.dll 등의 dll 파일이며, 프로그래밍 언어가 .NET libraries인 경우 System.dll 및 System.core.dll 등의 dll 파일이고, 프로그래밍 언어가 HTML인 경우 index.html 파일이며, 프로그래밍 언어가 Javascript인 경우 index.js과 같은 js 파일인 것을 특징으로 할 수 있다.
또한, 상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 안드로이드 애플리케이션의 구글플레이 카테고리에 대응하는 추가영역을 추출하고, 상기 악성코드 검사부는 상기 애플리케이션의 카테고리에 대응하는 진단을 실시하는 것을 특징으로 할 수 있다.
또한, 상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 악성코드 검사부가 진단 대상으로 하는 악성코드의 멀웨어 패밀리에 대응하는 추가영역을 추출하는 것을 특징으로 할 수 있다.
한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법은 검사영역 추출부가 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 추출하는 단계와, 변환부가 상기 검사영역 추출부에서 추출된 주요부분의 데이터를 패턴화하여 패턴데이터를 생성하는 단계와, 악성코드 검사부가 상기 변환부에서 생성된 패턴데이터를 종래 악성코드 패턴과 대비하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의한 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템에 따르면,
첫째, 종래의 안드로이드 애플리케이션 악성코드 진단 기술에서는 추가적인 처리 과정 없이 DEX파일 전체를 진단 대상으로 하기 때문에 진단을 위한 데이터 볼륨이 상당하고 악성코드 진단에 불필요한 정보까지 고려하였으나, 본 발명은 DEX파일 중에서 Data 섹션의 실행코드(code_item)만을 추출하여 악성코드 진단을 실시하기 때문에 분석 대상이 되는 데이터 볼륨이 감축되면서도 불필요한 정보를 제외할 수 있어 악성코드의 진단율도 개선할 수 있다.
둘째, 본 발명은 프로그래밍 언어에 따라 추가적으로 감염될 수 있는 영역을 발견하여 해당 영역들을 검사 데이터에 추가함으로써 악성코드 검사를 실패할 확률이 현저히 감소하게 된다.
셋째, 검사영역 추출부가 안드로이드 애플리케이션에서 주요부분만을 추출하면, 패턴데이터를 머신러닝에 입력할 수 있는 크기로 압축하더라도 손실이 현저히 더 적게 되어 악성코드 진단율이 현저히 향상될 수 있게 된다.
도 1은 안드로이드 애플리케이션에 포함되는 파일을 나타낸 참고 도면.
도 2는 안드로이드 애플리케이션에 포함된 파일 중 classes.dex 파일에 포함된 섹션들과, Data 섹션의 세부 구성을 나타낸 참고 도면.
도 3은 DEX 클래스 구성의 색인(Dex class member indexing)을 나타낸 참고 도면.
도 4는 data 섹션과 class_defs 섹션의 관계를 나타낸 참고 도면.
도 5는 본 발명의 실시예에 따른 안드로이드 멀웨어 탐지 분류 시스템의 구성도.
도 6은 멀웨어 패밀리의 리스트를 나타낸 예시 도면.
도 7은 주요부분을 이미지 포맷으로 변환하는 실시예에 있어서, 주요부분의 이진코드를 대응하는 색상으로 변환하는 것으로 이미지를 생성하는 과정을 나타낸 도면.
도 8은 주요부분을 사운드 포맷으로 변환하는 실시예에 있어서, 주요부분의 이진코드를 MIDI 포맷으로 변환하는 과정을 나타낸 도면.
도 9는 주요부분을 사운드 포맷으로 변환하는 실시예에 있어서, MIDI 포맷으로 변환된 데이터가 wav, MFCC 등의 다른 포맷으로 변환되는 것을 나타낸 도면.
도 10은 본 발명의 실시예에 따른 안드로이드 악성앱 탐지 방법의 순서도.
첨부한 도면을 참조하여 본 발명의 실시예들에 의한 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이 실시예는 단일 또는 복수개로 구성된 컴퓨팅 시스템에서 실행되어 각 구성의 기능이 실시될 수 있다.
먼저, 안드로이드 애플리케이션의 구조를 설명한다.
도 1은 Java로 개발된 안드로이드 애플리케이션 APK의 내부 구조로서, AndroidManifest.xml, assets/, META-INF/, lib/, classes.dex, res/, resources.arsc 등의 파일이 포함된다(Unity, Xamarin, PhoneGap, Cordova, Cocos2d 등의 교차 플랫폼 앱 개발도구로 개발된 애플리케이션의 경우에는 APK 구조가 상이할 수 있다).
도 2를 참조하면, 이 중 classes.dex(이하, DEX파일)의 구조는 크게 header, string_ids, type_ids, proto_ids, fields_ids, method_ids, class_defs, link_data, 식별자 및 클래스 관련 오프셋들이 저장된 배열들과 DEX파일 내 실질적인 데이터와 실행코드(명령어)를 가지는 영역인 Data 섹션으로 구성된다.
Data 섹션은 바이트코드 및 메소드의 정보가 존재하는 code_item, String 값이 저장되는 string_data, 디버깅(debugging) 관련 정보 등이 포함되는 Optional, 모든 섹션과 컴포넌트(component)의 크기와 오프셋(offset)을 가지는 map list 등으로 구성된다.
Data 섹션 외 다른 섹션들은 데이터가 아닌 오프셋과 크기에 대한 정보를 가지고 있다.
도 3 및 도 4를 참조하면, DEX 파일의 class_defs 섹션은 클라스를 나타내는 class_def_item 들을 포함한다. class_def_item에는 class_data_off가 포함되는데, class_data_off가 class_data_item을 가리킨다.
class_data_item은 각 클래스의 데이터를 포함한다. 또한, class_data_item은 DEX 파일의 data 섹션에 존재한다.
data 섹션의 class_data_item은 encoded method 포맷의 direct method 및 virtual method 멤버를 포함한다. encoded method 포맷은 code_off를 포함하는데, 각 메소드는 encoded method에 의해 표현된다. code_off는 code_item을 의미하며, code_item은 각 메소드의 명령들을 포함한다. code_item의 insns_size 및 insns 멤버 필드가 메소드의 바이트 코드 즉, 실행코드(instructions)를 나타낸다.
안드로이드 애플리케이션에 관한 연구 경험에 비추어 DEX파일을 심도있게 분석한 결과, 악성코드가 동작하는 실행코드가 code_item에 위치하게 됨을 발견할 수 있었다.
도 5를 참조하면, 본 발명의 실시예에 의한 안드로이드 멀웨어 탐지 분류 시스템(100)은 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 추출하는 검사영역 추출부(120), 상기 검사영역 추출부(120)가 추출한 주요부분을 패턴화하여 패턴데이터를 생성하는 변환부(140), 상기 변환부(140)가 생성한 패턴데이터를 종래 악성코드 패턴이 학습된 머신러닝에 입력하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 악성코드 검사부(160)를 포함한다.
또한, 진단 대상 안드로이드 애플리케이션을 입력받는 입력부(110)도 포함할 수 있다.
주요부분의 데이터는 안드로이드 애플리케이션의 DEX파일 중 Data 섹션의 code_item이 포함된다.
검사영역 추출부(120)는 안드로이드 애플리케이션의 APK를 압축해제(unzip)하여 DEX파일을 추출한 후, DEX파일의 헤더를 파싱하여 Data 섹션의 오프셋(offset)을 획득한다. 이후, 오프셋을 기준으로 파일을 분리하여 실행코드가 포함된 code_item을 주요부분으로 정의한다.
종래의 안드로이드 애플리케이션 악성코드 진단 기술에서는 별도의 전처리 과정 없이 DEX파일 전체를 진단 대상으로 하기 때문에 진단을 위한 데이터 볼륨이 상당하였다. 반면, 본 발명의 실시예는 DEX파일 심도있게 분리하여 code_item만을 추출하고 악성코드를 진단하기 때문에 분석 대상이 되는 데이터 볼륨이 현저히 감축되면서도 악성코드의 진단율에는 영향을 주지 않게 된다.
한편, 안드로이드는 다양한 개발 환경에서도 애플리케이션 제작이 가능하다. 예를 들어, Java 뿐만 아니라, C#, Javascript, C++, HTML 등의 프로그래밍 언어로도 애플리케이션의 제작이 가능하다. 하지만, 프로그래밍 언어에 따라 악성코드가 위치할 수 있는 영역이 추가로 발생됨을 발견하였다.
따라서, 본 발명의 실시예에 의한 안드로이드 멀웨어 탐지 분류 시스템(100)의 검사영역 추출부(120)는 code_item과 함께 추출될 추가영역을 안드로이드 애플리케이션의 프로그래밍 언어에 대응하여 선택한다.
구체적으로, 검사영역 추출부(120)는 Java로 제작된 애플리케이션에서는 반드시 code_item을 추출한다. C 또는 C++로 제작된 애플리케이션에서는 code_item과 so 확장자의 파일을 추출한다. C#으로 제작된 애플리케이션에서는 code_item과 Assembly-CSharp.dll 또는 App.dll 등의 dll 파일을 추출한다. .NET libraries로 제작된 애플리케이션에서는 code_item, System.dll 및 System.core.dll 등의 dll 파일을 추출한다. HTML로 제작된 애플리케이션에서는 code_item 및 index.html 파일을 추출한다. Javascript로 제작된 애플리케이션에서는 code_item 및 index.js 등의 dll 파일을 추출한다.
다른 실시예로서, 검사영역 추출부(120)는 애플리케이션의 프로그래밍 언어에 관계없이, code_item, so 확장자 파일, dll 확장자 파일, js 확장자 파일, html 확장자 파일을 일괄적으로 추출할 수 있다.
이 실시예는 애플리케이션에서 code_item에 더하여 악성코드가 감염될 수 있는 영역을 선택적으로 추가 추출하기 때문에 애플리케이션 전체를 대상으로 악성코드 검사를 실시하는 종래기술보다 악성코드 검사 대상이 되는 데이터 볼륨이 감축되는 효과가 있다. 데이터 볼륨이 감축되면 악성코드 검사 시간이 감축되고, 보다 정밀한 검사가 가능해지는 등 향상된 효과가 다수 발생된다. 아울러, 종래기술들은 DEX파일만을 검사하는 경향이 있어 애플리케이션이 다른 프로그래밍 언어로 제작된 경우에는 악성코드가 포함된 영역을 검사하지 않는 문제가 있으나, 이 실시예는 프로그래밍 언어에 따라 추가적으로 감염될 수 있는 영역을 발견하여 해당 영역들을 검사 데이터에 추가함으로써 악성코드 검사가 실패할 확률을 현저히 감소시켰다.
또한, 애플리케이션은 카테고리에 따라 이용되는 클래스, 메소드(API), 코드, 컴포넌트(액티비티, 서비스, 콘텐츠 제공자, Broadcast receiver), 스트링(문자열), 인텐트(intent) 등에서 차이가 있다. 카테고리란 게임, 금융, 문서 편집기, 백신, 유틸리티 등 애플리케이션을 기능 중심으로 분류한 그룹이라 볼 수 있다. 안드로이드 애플리케이션의 배포를 주도하는 구글플레이(2018년 현재의 명칭)는 등록된 애플리케이션을 카테고리별로 분류하여 제공하고 있다. 다른 실시예로서, 검사영역 추출부(120)는 code-item과 함께 추출될 추가영역을 구글플레이의 애플리케이션 카테고리에 대응하여 선택하고, 악성코드 검사부(160)는 애플리케이션의 카테고리에 대응하는 진단을 실시할 수 있다. 예를 들어, 악성코드가 다수 이용하는 음성API(악성 앱이 다수 사용하는 API) 및 카테고리 별 애플리케이션들이 다수 이용하는 양성API(정상 앱이 다수 사용하는 API)들을 악성코드 검사부(160)의 머신러닝에 기 학습시키고, 검사영역 추출부(120)가 검사 대상 애플리케이션이 호출하는 API를 추출하여, 추출된 API가 관련 카테고리의 양성API의 패턴과 유사한지, 악성API의 패턴과 유사한지 대조할 수 있게 실시될 수 있다. 이 밖에도, 카테고리에 따라 애플리케이션에서 나타나는 고유 특징을 사전에 정의한 후, 검사 대상 애플리케이션의 카테고리에 대응하여 악성코드 진단이 실시되게 할 수 있다.
도 6은 멀웨어 패밀리(Malware family)의 예를 나타낸 표이다. 악성코드는 유형에 따라 멀웨어 패밀리로 분류할 수 있다. 악성코드의 유형에는 바이러스, 웜, 트로이목마, 백도어, 논리폭탄, 봇, adware, spyware, ransomware 등이 있으며, 멀웨어 패밀리는 이러한 악성코드를 유형별로 분류하는 기준이 된다.
다른 실시예로서, 검사영역 추출부(120)는 code-item과 함께 추출될 추가영역을 악성코드 검사부(160)가 진단 대상으로 하는 악성코드 종류에 대응하여 선택하는 것을 특징으로 할 수 있다.
이론적으로, 애플리케이션에서 모든 악성코드를 진단하는 것이 바람직하지만, 실제 산업에서 진단 소프트웨어를 제공하는 기업은 멀웨어 패밀리의 유형 중 일부에서만 탁월한 진단 기술을 가지고 있다. 예를 들어, 어느 한 기업은 바이러스, 웜 및 트로이목마의 탐지 기술에서 선도적이지만, 에드웨어, 스파이웨어 및 랜섬웨어에는 무력할 수 있다. 다른 한 기업은 랜섬웨어의 진단과 치료에는 선도적이지만 그 외 악성코드에는 무력할 수 있다. 이러한 이유로 검사영역 추출부(120)는 진단하고자 하는 악성코드의 유형이 멀웨어 패밀리 중 일부로 한정될 수 있는데, 검사영역 추출부(120)는 한정된 악성코드 유형에 대응하여 추출영역을 선택한다.
도 7을 참조하면, 본 발명의 제1실시예에 따른 안드로이드 멀웨어 탐지 분류 시스템(100)은 주요부분의 데이터 및 추가영역을 이미지 포맷의 패턴데이터로 변환한 후 악성코드를 진단한다. 제1실시예는 변환부(140)에서 생성된 패턴데이터가 이미지 포맷의 데이터이고, 악성코드 검사부(160)는 정적 데이터 분석에 강인한 머신러닝 알고리즘을 이용하여 패턴데이터의 악성코드 포함 여부를 진단한다.
구체적으로, 변환부(140)는 주요부분을 이진코드 형태로 로드한 후 기 설정된 단위로 분할한다. 또한, 분할된 이진코드를 대응되는 명암 또는 색상으로 변환하는 것으로 이미지를 생성한다. 도면을 참조하면, 이 실시예는 검사영역 추출부(120)가 추출한 데이터를 이진코드로 읽어 8-bit 벡터(vector)로 변환하고, 이것을 하나의 픽셀(pixel)로 표현하여 한 픽셀 당 0에서 255의 값을 가지는 그레이스케일 이미지(Grayscale Image)를 생성했다.
이미지는 데이터의 볼륨에 대응하여 일정 너비(width)를 가지는 행으로 구성된다. 너비는 픽셀 수 단위가 될 수 있다. 실시예로서, 이미지의 너비는 데이터의 볼륨에 대응하여 정사각형이 되는 픽셀 수가 될 수 있다. 예를 들어, 데이터의 볼륨이524,288 bit라면, 이미지의 너비는 256 픽셀이 될 수 있다(256×256 이미지 생성).
데이터 볼륨 범위 [KB] 이미지 너비 [pixel]
<10 32
10 - 30 64
30 - 60 128
60 - 100 256
100 - 200 384
200 - 500 512
500 - 1000 768
>1000 1024
변환부(140)는 마지막 이진코드가 8 bit를 완성하지 않고 종료되어 픽셀을 생성할 수 없거나, 이진코드가 종료되어 사각형 이미지의 마지막 영역이 일부 완성되지 않으면, 사각형 이미지가 완성될 수 있게 부족한 영역에 0-padding을 삽입한다. 이로써, 변환부(140)는 선(linear) 성격의 이미지를 생성할 수 있게 된다.
악성코드 검사부(160)는 이미지 내 악성코드 포함 여부를 진단하기 위해 정적 데이터 분석에 강인한 머신러닝 알고리즘을 이용한다. 정적 데이터 분석에 강인한 머신러닝 알고리즘에는 합성곱신경망(Convolutional Neural Network, CNN) 등이 있다. 이 실시예는 이미지화된 패턴데이터의 분석을 위해 CNN을 이용하였다.
CNN은 이미지 분석에 특화된 알고리즘이다. 대표적으로 Google의 AlphaGo, Facebook의 얼굴인식 알고리즘 등이 CNN을 이용한다. CNN은 특정 입력에 해당하는 최적의 출력을 찾아주는 성능이 뛰어나고, 코드의 커버리지가 광범위한 장점이 있다.
실험에서는 CNN 중에서도 state-of-the-art CNN 모델인 Inception-V3, Inception-ResNet-V2을 이용하였다. Inception-V3는 GoogLeNet을 개량시킨 모델로써, 많은 정적 데이터 분석 연구에서 응용되고 있다. 한편, Inception-ResNet-V2는 Inception-V3에 ResNet의 특성을 결합한 모델이다. 각 CNN 모델에 적용되는 최적화 방법(Optimization method)은 RMSprop(Root Mean Square Propagation), Adam(Adaptive Moment Estimation), SGD(Stochastic Gradient Descent)를 이용하였다. Adam은 인기가 있는 알고리즘으로써, 많은 딥러닝 프레임워크(Deep Learning framework)에서 이용한다. SGD는 RMSprop과 Adam의 원형이 되는 알고리즘으로, Inception-v3와 결합되었을 때, 높은 성능으로 악성코드를 탐지하는 특징이 있다.
악성코드 검사부(160)의 정확한 악성코드 진단을 위해, 머신러닝 알고리즘을 공지된 악성코드로부터 변환된 이미지 패턴으로 학습이 실시된다. 학습부(180)는 공지된 악성코드들을 이미지 패턴화하여 악성코드 검사부(160)의 머신러닝에 입력함으로써, 머신러닝이 악성코드의 패턴을 학습할 수 있게 지원한다. 변환부(140)가 생성하는 패턴데이터와 학습부(180) 생성하는 이미지 패턴화된 악성코드는 동일한 포맷을 가지는 것이 바람직하다.
머신러닝 알고리즘에 입력되는 데이터는 기 설정된 포맷을 만족해야 한다. 예를 들어, 머신러닝 알고리즘은 256×256 크기의 이미지만을 입력 받을 수 있다. 이 경우, 더 작은 이미지로 생성된 패턴데이터는 확대되어야 하고, 더 큰 이미지로 생성된 패턴데이터는 압축되어야 한다. 이미지화된 패턴데이터를 머신러닝의 입력 포맷에 대응하게 확대 또는 압축하는 것은 변환부(140)가 실시한다.
이때, 검사영역 추출부(120)가 안드로이드 애플리케이션에서 주요부분의 데이터만을 추출하는 특징이 큰 강점이 된다. 종래 기술과 같이 애플리케이션의 모든 영역이나, 모든 DEX파일이 검사 대상으로 설정되어 이미지화된 패턴데이터가 생성되면 방대한 데이터 볼륨에 의해 이미지의 크기도 커지게 된다. 큰 이미지가 작은 크기의 이미지로 압축될수록 손실이 다수 발생되는 것은 자명한 사항이다. 이 실시예는 검사영역 추출부(120)가 악성코드가 포함될 수 있는 영역만을 선택적으로 추출하기 때문에, 종래 기술과 대비하여 동일한 애플리케이션의 진단을 실시하더라도 생성되는 패턴데이터의 이미지 크기가 훨씬 더 작다. 따라서 패턴데이터를 머신러닝에 입력할 수 있는 크기로 압축하더라도 손실이 현저히 더 적게 된다. 적은 손실로 압축된 이미지의 패턴은 머신러닝이 선행 학습한 악성코드의 패턴과 대비하기가 더 용이하므로, 악성코드 검사부(160)의 진단율이 현저히 향상될 수 있게 된다.
한편, 도 8을 참조하면, 본 발명의 제2실시예에 따른 안드로이드 멀웨어 탐지 분류 시스템(100)은 주요부분의 데이터 및 추가영역을 사운드 포맷의 패턴데이터로 변환한 후 악성코드를 진단한다. 제2실시예는 변환부(140)에서 생성된 패턴데이터는 사운드 포맷의 데이터이고, 악성코드 검사부(160)는 동적 데이터 분석에 강인한 머신러닝 알고리즘을 이용하여 패턴데이터의 악성코드 포함 여부를 진단한다.
구체적으로, 변환부(140)는 주요부분의 데이터 및 추가영역의 이진코드(binary code)를 MIDI(Musical Instrument Digital Interface) 포맷으로 변환한다. 또한, 변환된 MIDI 포맷의 주요부분의 데이터 및 추가영역을 wav 포맷 또는 MFCC(Mel-Frequency Cepstral Coefficients) 포맷으로 재 변환한다.
MIDI는 디지털 음원 생성을 위한 언어로서, 음원은 아니지만, 음에 대한 정보를 기록한다. MIDI에는 악기의 종류, 음의 높낮이, 감쇠(Attenuation), 동시 연구되는 악기를 의미하는 채널, Note ON/OFF 등의 정보들이 포함된다.
하나의 채널은 하나의 악기로 볼 수 있다. 복수의 채널이 설정되면 여러 악기의 협연으로 볼 수 있다. 5선지에 악기별로 음표가 작성되듯 채널별로 음표가 설정된다.
실시예로서, 변환부(140)는 주요부분의 데이터 및 추가영역의 이진코드를 1 바이트 단위로 분할하여 MIDI 포맷으로 변환한다.
피치(Pitch)는 음의 높낮이를 의미하는 주파수이고, 이것은 음표로 나타낼 수 있다.
MIDI에서 음표의 범위는 0 부터 127 까지, 즉 7 비트까지의 데이터를 표현할 수 있다. 그러나 1 바이트는 8 비트로서, 0 내지 255까지 나타낼 수 있으므로, MIDI 음표에서는 1 바이트를 음표로 표현하는 것이 불가능하다.
이 문제를 해결하기 위해, 제2실시예의 변환부(140)는 1 바이트의 8 비트 중 2개의 비트를 제1채널의 음표로 설정하고, 나머지 6개의 비트를 제2채널의 음표로 설정한다. 제1채널은 0 내지 3까지 4개의 음을 출력하는 악기인 것으로 가정하고, 제2채널은 0 내지 63까지 64개의 음을 출력하는 악기인 것으로 가정하여 두 개의 악기가 동시에 하모니를 이루는 것으로 가정하는 것이다. 이러한 방식으로 1 바이트를 나누어 MIDI화 하면, 하나의 음이 재생되는 타이밍에 256개(1 바이트)의 정보를 모두 담을 수 있게 된다.
또한, 제2실시예의 변환부(140)는 제1채널과 제2채널에서 음이 서로 중복되는 것을 방지하기 위해, 적어도 어느 하나의 채널에 가중치를 더한 후 MIDI 포맷으로 변환한다. 즉, 제1채널이 음표를 설정하는 범위와, 제2채널이 음표를 설정하는 범위가 중복되지 않게 한다. 예를 들어, 제1채널의 이진 값이 11이고, 제2채널의 이진 값이 000011이면, 두 채널의 음표가 동일 위치에 설정되어 데이터의 식별이 어렵게 된다. 이 문제의 해결을 위해, 이 실시예는 제2채널의 이진 값에 가중치 24를 더한 후 음표를 설정하였다. 24를 더한 이유는 피아노가 최대 88개의 음을 가지는 것에 착안하여 6 비트로 표현되는 최대값이 24와 더해질 때 88이 되게 한 것이다. 제2채널에 더해진 수 24에 의해, 제2채널은 0 내지 23에 해당되는 음표가 나타나지 않게 된다. 따라서, 0 내지 23의 범위에 나타는 음표는 제1채널의 음표인 것으로 식별할 수 있게 된다.
또한, 제1채널은 4가지의 음을 표현할 수 있으나, 0 내지 23의 넓은 범위에서 음표의 설정이 가능하므로, 음 간 식별력을 강화하기 위해, 이진 값에 가중치를 더하거나 곱해줄 수 있다. 이 실시예는 제1채널의 이진 값에 3을 곱하였다. 이진 값이 1이면 3번째 음표, 2이면 6번째 음표, 3이면 9번째 음표가 설정되므로 제1채널의 음 식별이 더 용이하게 된다.
도 8을 참조하면, 변환부(140)는 MIDI 포맷으로 변환된 주요부분의 데이터 및 추가영역을 wav 포맷으로 변환한다. MIDI는 음의 정보를 포함하지만, 그 자체가 오디오 파일은 아니다. wav 포맷으로 변환된 주요부분의 데이터는 오디오 재생이 가능하게 된다.
wav 파일은 16 비트, 44100Hz의 일반적 수준으로 변환되었을 때 1초당 87KB의 용량을 가진다. 샘플링 레이트(sampling rate)가 높을수록 정교한 오디오가 재생되지만, 일정 수준을 넘으면 오히려 wav 파일의 볼륨이 너무 크게 되어 오디오 분석에 투입되는 자원이 과도하게 된다. 따라서, 이 실시예는 샘플링 레이트를 22050 Hz 이하로 설정하였다.
또한, 변환부(140)는 MIDI 포맷 또는 wav 포맷의 주요부분의 데이터 및 추가영역을 MFCC(Mel-frequency cepstral coefficients) 포맷으로 변환할 수 있다.
악성코드 검사부(160)는 사운드 포맷의 패턴데이터에서 악성코드 포함 여부를 진단하기 위해 동적 데이터 분석에 강인한 머신러닝 알고리즘을 이용한다. 사운드 포맷의 정보는 시간 축을 따라 출력되는 데이터가 상이하므로 동적 데이터 분석 기법이 적용되는 것이 바람직하다. 동적 데이터 분석에 강인한 머신러닝 알고리즘에는 순환신경망(Recurrent Neural Network, RNN) 등이 있다. 이 실시예는 사운드화된 패턴데이터의 분석을 위해 RNN을 이용하였다.
CNN은 현재의 출력이 과거의 입력에 영향을 받는 시간적 종속성(temporal dependency)을 표현하지 못한다. 하지만, RNN(Recurrent Neural Network)은 시계열(time series) 패턴 또는 서열(sequence) 데이터 분석의 수학적 모델링에 적합하다. 일정 시간 간격으로 시간에 종속적으로 측정된 시계열(time series)자료에는 주가, 매출액, 물가지수, 환율, 실업률 등이 있다. 또한, 순서가 의미를 가지는 서열(sequence)자료에는 텍스트, 음성, 동영상, DNA 가닥의 염기쌍 등이 있다. RNN은 현재의 출력이 과거의 입력에 영향을 받는 시간적 종속성(temporal dependency)을 표현하는 능력을 가지고 있다. RNN을 시간 전개에 따라 신경망의 구조를 전개하면 전향신경망(feed-forward network)과 같은 구조를 나타낸다. 따라서, RNN은 음성, 동영상, 언어 모델 분석에 다수 활용되고 있다.
악성코드 검사부(160)의 정확한 악성코드 진단을 위해, 머신러닝 알고리즘은 공지된 악성코드로부터 변환된 사운드 패턴으로 학습이 실시된다. 학습부(180)는 공지된 악성코드들을 사운드 패턴화하여 악성코드 검사부(160)의 머신러닝에 입력함으로써, 머신러닝이 악성코드의 패턴을 학습할 수 있게 지원한다.
학습부(180)가 변환하는 악성코드의 사운드 패턴은 변환부(140)에서 변환하는 패턴데이터와 동일 포맷인 것이 바람직하다.
안드로이드 멀웨어 탐지 분류 시스템(100)은 악성코드가 일정한 패턴을 가지고 있음에 착안하여 제안된 것으로서, 진단 대상 애플리케이션의 주요영역 패턴과 악성코드의 패턴을 대비하기 때문에 종래 데이터 코드를 진단하는 방법에서 탐지할 수 없었던 은폐(난독화, 패킹 등 이용)된 악성코드도 탐지할 수 있게 된다.
이어서, 도 10을 참조하여 본 발명의 실시예에 따른 안드로이드 악성앱 탐지 방법을 설명한다.
본 발명의 실시예에 따른 안드로이드 악성앱 탐지 방법은 검사영역 추출부(120)가 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 추출하는 단계(S120)와, 변환부(140)가 상기 검사영역 추출부(120)에서 추출된 주요부분의 데이터를 패턴화하여 패턴데이터를 생성하는 단계(S140)와, 악성코드 검사부(160)가 상기 변환부(140)에서 생성된 패턴데이터를 종래 악성코드 패턴과 대비하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 단계(S160)를 포함한다.
이밖에, 본 발명의 실시예에 따른 안드로이드 악성앱 탐지 방법은 안드로이드 악성앱 탐지에서 실시된 기능이 각 단계에 대응하여 순차적으로 실행되는 것으로 실시될 수 있다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 다음 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
100 : 안드로이드 멀웨어 탐지 분류 시스템
110 : 입력부
120 : 검사영역 추출부
140 : 변환부
160 : 악성코드 검사부
180 : 학습부

Claims (14)

  1. 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 선택 추출하는 검사영역 추출부와;
    상기 검사영역 추출부가 추출한 주요부분을 패턴화하여 패턴데이터를 생성하는 변환부와;
    상기 변환부가 생성한 패턴데이터를 종래 악성코드 패턴이 학습된 머신러닝에 입력하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 악성코드 검사부를 포함하고,
    상기 주요부분은 상기 안드로이드 애플리케이션의 DEX파일 중 실행코드를 나타내는 code-item이 포함되고,
    상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 안드로이드 애플리케이션의 구글플레이 카테고리에 대응하는 추가영역을 추출하고,
    상기 악성코드 검사부는 상기 애플리케이션의 카테고리에 대응하는 진단을 실시하고,
    상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 악성코드 검사부가 진단 대상으로 하는 악성코드의 멀웨어 패밀리에 대응하는 추가영역을 추출하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  2. 제1항에 있어서,
    상기 변환부에서 생성된 패턴데이터는 이미지 포맷의 데이터인 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  3. 제2항에 있어서,
    상기 변환부는 상기 주요부분을 이진코드(binary code) 형태로 로드한 후 기 설정된 단위로 분할하고, 분할된 이진코드를 대응되는 명암 또는 색상으로 변환하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  4. 제2항에 있어서,
    상기 변환부는 상기 악성코드 검사부의 머신러닝 알고리즘에 입력되는 데이터 포맷에 대응하여 이미지 포맷의 패턴데이터를 확대 또는 압축하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  5. 제1항에 있어서,
    상기 변환부에서 생성된 패턴데이터는 사운드 포맷의 데이터인 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  6. 제5항에 있어서,
    상기 변환부는 상기 주요부분의 이진코드를 MIDI 포맷으로 변환한 후, 변환된 MIDI 포맷의 데이터를 wav 포맷 또는 MFCC(Mel-Frequency Cepstral Coefficients) 포맷으로 변환하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  7. 제6항에 있어서,
    상기 변환부는 주요부분의 MIDI 포맷 변환 시, 주요부분을 1 바이트 단위로 분할한 후, 상기 1 바이트를 2 비트로 구성된 제1채널과, 6 비트로 구성된 제2채널로 구성하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  8. 제7항에 있어서,
    상기 변환부는 제1채널과 제2채널의 음이 서로 중복되지 않게 적어도 어느 하나의 채널에 가중치를 더한 후 MIDI 포맷으로 변환하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  9. 삭제
  10. 제1항에 있어서,
    상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 안드로이드 애플리케이션의 프로그래밍 언어에 대응하는 추가영역을 추출하는 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  11. 제10항에 있어서, 상기 추가영역은
    프로그래밍 언어가 C 또는 C++인 경우 so 확장자의 파일이고,
    프로그래밍 언어가 C#인 경우 Assembly-CSharp.dll 또는 App.dll이 포함된 dll 파일이며,
    프로그래밍 언어가 .NET libraries인 경우 System.dll 및 System.core.dll이 포함된 dll 파일이고,
    프로그래밍 언어가 HTML인 경우 index.html 파일이며,
    프로그래밍 언어가 Javascript인 경우 index.js이 포함된 js 파일인 것을 특징으로 하는 안드로이드 멀웨어 탐지 분류 시스템.
  12. 삭제
  13. 삭제
  14. 검사영역 추출부가 안드로이드 애플리케이션에서 악성코드가 포함될 수 있는 주요부분의 데이터를 추출하는 단계와;
    변환부가 상기 검사영역 추출부에서 추출된 주요부분의 데이터를 패턴화하여 패턴데이터를 생성하는 단계와;
    악성코드 검사부가 상기 변환부에서 생성된 패턴데이터를 종래 악성코드 패턴과 대비하여 상기 패턴데이터의 악성코드 포함 여부를 진단하는 단계를 포함하고,
    상기 주요부분은 상기 안드로이드 애플리케이션의 DEX파일 중 실행코드를 나타내는 code-item을 포함하는 단계와;
    상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 안드로이드 애플리케이션의 구글플레이 카테고리에 대응하는 추가영역을 추출하고, 상기 악성코드 검사부는 상기 애플리케이션의 카테고리에 대응하는 진단을 실시하는 단계와;
    상기 검사영역 추출부는 Data 섹션의 실행코드 부분과, 상기 악성코드 검사부가 진단 대상으로 하는 악성코드 멀웨어 패밀리에 대응하는 추가영역을 추출하는 단계를 포함하는 것을 특징으로 하는 안드로이드 악성앱 탐지 방법.
KR1020180147579A 2018-11-26 2018-11-26 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템 KR102140714B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180147579A KR102140714B1 (ko) 2018-11-26 2018-11-26 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180147579A KR102140714B1 (ko) 2018-11-26 2018-11-26 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20200061830A KR20200061830A (ko) 2020-06-03
KR102140714B1 true KR102140714B1 (ko) 2020-08-03

Family

ID=71087437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180147579A KR102140714B1 (ko) 2018-11-26 2018-11-26 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102140714B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518394B1 (ko) * 2021-09-30 2023-04-05 단국대학교 산학협력단 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120047580A1 (en) 2010-08-18 2012-02-23 Smith Ned M Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Mehrdad Farrokhmanesh et al, "A Novel Method for Malware Detection Using Audio Signal Processing Techniques"(2016.08.)*
Sang Ni et al, "Malware Identification Using Visualization Images and Deep Learning"(2018.04.)*
William Lee et al, "Cross-Platform Mobile Malware: Write Once, Run Everywhere"(2015.)*

Also Published As

Publication number Publication date
KR20200061830A (ko) 2020-06-03

Similar Documents

Publication Publication Date Title
CN107908963B (zh) 一种自动化检测恶意代码核心特征的方法
US11200315B2 (en) Artificial intelligence based malware detection system and method
US5675711A (en) Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US9349006B2 (en) Method and device for program identification based on machine learning
CN109829306B (zh) 一种优化特征提取的恶意软件分类方法
WO2015190446A1 (ja) マルウェア判定器、マルウェア判定システム、マルウェア判定方法、プログラム
US11475133B2 (en) Method for machine learning of malicious code detecting model and method for detecting malicious code using the same
CN111460446B (zh) 基于模型的恶意文件检测方法及装置
US11790237B2 (en) Methods and apparatus to defend against adversarial machine learning
CN109492395B (zh) 一种检测恶意程序的方法、装置及存储介质
CN110572393A (zh) 一种基于卷积神经网络的恶意软件流量分类方法
KR20200071822A (ko) 애플리케이션의 동적 특징정보 및 머신러닝을 이용하여 멀웨어를 탐지 분류하는 시스템 및 방법
KR102151318B1 (ko) 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치
WO2019163963A1 (ja) トラヒック特徴情報抽出装置、トラヒック特徴情報抽出方法、及びトラヒック特徴情報抽出プログラム
KR102140714B1 (ko) 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템
KR102174475B1 (ko) 머신러닝을 이용하여 애플리케이션의 난독화 또는 패킹 여부를 식별하는 시스템과, 그것을 포함하는 은폐된 멀웨어 탐지 분류 시스템 및 방법
TW202240453A (zh) 學習惡意行為與惡意程式的執行序列之關聯性的方法與計算機與用於實作類神經網路的方法
JP7274162B2 (ja) 異常操作検知装置、異常操作検知方法、およびプログラム
CN112287645B (zh) 一种基于生成式对抗网络的恶意pdf文档生成方法
CN108229168B (zh) 一种嵌套类文件的启发式检测方法、系统及存储介质
CN113468524A (zh) 基于rasp的机器学习模型安全检测方法
CN115688108B (zh) 一种webshell静态检测方法及系统
CN115766090A (zh) 一种多特征融合神经网络网络安全检测方法
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN114547628A (zh) 漏洞检测方法及装置

Legal Events

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