KR20190123369A - 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치 - Google Patents

머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치 Download PDF

Info

Publication number
KR20190123369A
KR20190123369A KR1020180041974A KR20180041974A KR20190123369A KR 20190123369 A KR20190123369 A KR 20190123369A KR 1020180041974 A KR1020180041974 A KR 1020180041974A KR 20180041974 A KR20180041974 A KR 20180041974A KR 20190123369 A KR20190123369 A KR 20190123369A
Authority
KR
South Korea
Prior art keywords
distribution
applications
malicious
normal
characteristic information
Prior art date
Application number
KR1020180041974A
Other languages
English (en)
Other versions
KR102046249B1 (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 KR1020180041974A priority Critical patent/KR102046249B1/ko
Publication of KR20190123369A publication Critical patent/KR20190123369A/ko
Application granted granted Critical
Publication of KR102046249B1 publication Critical patent/KR102046249B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

안드로이드 환경에서 각 어플리케이션의 특성정보(
Figure pat00322
)의 집합(IFS: Initial Feature Set)을 생성하고, 특성정보(
Figure pat00323
)를 악성코드와 연관성이 높은 순서대로 순위를 산정하고, 특성정보(
Figure pat00324
)를 포함하고 있는 악성 어플리케이션의 개수(
Figure pat00325
)와 정상 어플리케이션의 개수(
Figure pat00326
)를 산출하고, 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 산출하고, 각각 기 설정된 분포율 임계값과 비교하여, 결과에 따라 특성정보(
Figure pat00327
)의 랭크값(
Figure pat00328
)에 가중치(w)를 부여하고, 특성정보(
Figure pat00329
)를 최종 특성선정 집합(DFS: Derived Feature Set)으로 분류하는 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법이다.

Description

머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치{Method for Feature Selection of Machine Learning Based Malware Detection, RECORDING MEDIUM and Apparatus FOR PERFORMING THE METHOD}
본 발명은 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치에 관한 것으로서, 더욱 상세하게는 안드로이드 어플리케이션의 기능과 행동에 대해 선정되는 특성을 추출하고, 순위선정(Ranked) 방식을 기초로 하여 각 특성의 분포비율을 반영하는 악성코드 탐지를 위한 특성집합을 선별하는 방법에 관한 것이다.
모바일 환경에서 악성코드의 유입은 빠르게 증가하는 추세이며 이에 따라 금전적 피해를 야기할 수 있는 악성 행위의 탐지와 예측이 중요해지고 있다.
기존에 존재하는 악성코드 탐지를 위한 특성선정 알고리즘은 악성코드 패턴과 연관성이 없거나, 불필요한 특성을 학습 데이터로 사용할 경우, 과다학습으로 인하여 악성코드 탐지율이 저하될 수 있다. 따라서, 적정 수준으로 악성코드의 특성 수를 줄이는 작업을 한다. 또 다른 기존의 특성선정 알고리즘으로 특성 간의 독립성을 테스트하는 방법이 있다. 이는 머신러닝을 위해 특성의 카테고리와 관련성을 검증하는 개념이 주를 이루게 되어 도출되는 결과값이 초기 설정한 카테고리를 기준으로 편향되는 문제점(distribution Bias)이 발생하게 된다. 예를 들어, 악성(Malware) 어플리케이션에 편향된 특성이 선정되는 경우, 정상(Benign) 어플리케이션의 재현률(Recall) 값이 낮아질 수 있다.
따라서 종래의 머신러닝 기반 악성코드 탐지 기술은 해당 특성이 정상 어플리케이션 또는 악성 어플리케이션에 편중되는 문제점이 존재하고, 분석 대상 어플리케이션의 코드 크기가 클 경우 정확한 분석이 어려울 뿐 아니라 분석 과정에 상당한 시간이 소비된다는 문제점이 있다.
JP 6018345 US 2017/0262633 KR 10-2016-0119678 JP 2016-031629
본 발명의 일측면은 안드로이드 어플리케이션으로부터 프로그래밍 소스를 제공받고, 특성정보를 추출하여 해당 특성정보를 포함하는 악성 어플리케이션과 정상 어플리케이션의 분포율을 산출하고, 임계값과 비교하여 가중치를 부여함으로써 오탐률을 감소시킬 수 있는 악성코드 탐지를 위한 특성선정 방법, 이를 수행하기 위한 기록매체 및 장치를 제공한다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법은, 안드로이드 환경에서 각 어플리케이션의 특성정보(
Figure pat00001
)의 집합(IFS: Initial Feature Set)을 생성하는 단계; 상기 특성정보(
Figure pat00002
)를 악성코드와 연관성이 높은 순서대로 순위를 산정하여 랭크값(
Figure pat00003
)을 부여하는 단계; 상기 특성정보(
Figure pat00004
)를 포함하고 있는 악성 어플리케이션의 개수(
Figure pat00005
)와 정상 어플리케이션의 개수(
Figure pat00006
)를 산출하는 단계; 상기 악성 어플리케이션의 개수(
Figure pat00007
)와 정상 어플리케이션의 개수(
Figure pat00008
)를 이용하여 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 산출하고, 각각 기 설정된 분포율 임계값과 비교하는 단계; 상기 비교한 결과에 따라 상기 특성정보(
Figure pat00009
)의 랭크값(
Figure pat00010
)에 가중치(w)를 부여하는 단계; 및 상기 가중치가 부여된 랭크값(
Figure pat00011
)의 크기에 따라 상기 특성정보(
Figure pat00012
)를 최종 특성선정 집합(DFS: Derived Feature Set)으로 분류하는 단계;를 포함한다.
상기 각각 기 설정된 분포율 임계값과 비교하는 단계는, 상기 악성 어플리케이션의 개수(
Figure pat00013
)와 정상 어플리케이션의 개수(
Figure pat00014
)의 합 중에서 상기 악성 어플리케이션의 개수(
Figure pat00015
)의 비율인 악성 어플리케이션의 분포율(
Figure pat00016
)을 산출하는 단계; 상기 악성 어플리케이션의 개수(
Figure pat00017
)와 정상 어플리케이션의 개수(
Figure pat00018
)의 합 중에서 상기 정상 어플리케이션의 개수(
Figure pat00019
)의 비율인 정상 어플리케이션의 분포율(
Figure pat00020
)을 산출하는 단계; 상기 악성 어플리케이션의 분포율(
Figure pat00021
)을 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00022
)과 비교하는 단계; 및 상기 정상 어플리케이션의 분포율(
Figure pat00023
)을 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00024
)과 비교하는 단계;를 포함할 수 있다.
상기 가중치(w)를 부여하는 단계는, 산출된 악성 어플리케이션의 분포율(
Figure pat00025
) 및 정상 어플리케이션의 분포율(
Figure pat00026
)이 각각 기 설정된 분포율 임계값(
Figure pat00027
,
Figure pat00028
)을 초과하는 경우, 상기 특성정보(
Figure pat00029
)의 랭크값(
Figure pat00030
)에 가중치(w)를 부여할 수 있다.
상기 최종 특성선정 집합으로 분배하는 단계는, 상기 가중치가 부여된 랭크값(
Figure pat00031
)을 기 설정된 특성정보 임계값(
Figure pat00032
)과 비교하는 단계; 상기 가중치가 부여된 랭크값(
Figure pat00033
)이 상기 특성정보 임계값(
Figure pat00034
)을 만족하는 경우, 상기 가중치가 부여된 랭크값(
Figure pat00035
)인 특성정보(
Figure pat00036
)를 결과값(F)으로 산출하는 단계; 및 상기 결과값을 최종 특성선정 집합으로 저장하는 단계;를 포함할 수 있다.
상기 특성정보(
Figure pat00037
)의 집합을 생성하는 단계는, 상기 어플리케이션의 프로그래밍 소스로부터 수행과정을 암시하는 적어도 하나의 특성을 추출하는 단계; 및 상기 추출된 특성의 순서(i)를 랜덤으로 설정하여 특성정보(
Figure pat00038
)로 저장하는 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치는, 안드로이드 환경에서 각 어플리케이션의 모든 수행과정을 암시하는 특성정보(
Figure pat00039
)의 집합(IFS: Initial Feature Set)을 추출하는 정보 생성부; 상기 특성정보(
Figure pat00040
)를 악성코드와 연관성이 높은 순서대로 순위를 산정하여 랭크값(
Figure pat00041
)을 부여하는 랭크 산정부; 상기 특성정보(
Figure pat00042
)를 포함하고 있는 악성 어플리케이션의 개수(
Figure pat00043
)와 정상 어플리케이션의 개수(
Figure pat00044
)를 산출하는 개수 산출부; 상기 악성 어플리케이션의 개수(
Figure pat00045
)와 정상 어플리케이션의 개수(
Figure pat00046
)를 이용하여 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 산출하고, 각각 기 설정된 분포율 임계값과 비교하는 분포율 비교부; 상기 분포율 비교부의 결과에 따라 상기 특성정보(
Figure pat00047
)의 랭크값(
Figure pat00048
)에 가중치(w)를 부여하는 가중치 부여부; 및 상기 가중치가 부여된 랭크값(
Figure pat00049
)의 크기에 따라 상기 특성정보(
Figure pat00050
)를 최종 특성선정 집합(DFS: Derived Feature Set)으로 분류하는 최종 분배부;를 포함한다.
상기 분포율 비교부는, 상기 악성 어플리케이션의 개수(
Figure pat00051
)와 정상 어플리케이션의 개수(
Figure pat00052
)의 합 중에서 상기 악성 어플리케이션의 개수(
Figure pat00053
)의 비율인 악성 어플리케이션의 분포율(
Figure pat00054
)을 산출하는 악성분포율 산출부; 상기 악성 어플리케이션의 개수(
Figure pat00055
)와 정상 어플리케이션의 개수(
Figure pat00056
)의 합 중에서 상기 정상 어플리케이션의 개수(
Figure pat00057
)의 비율인 정상 어플리케이션의 분포율(
Figure pat00058
)을 산출하는 정상분포율 산출부; 상기 악성 어플리케이션의 분포율(
Figure pat00059
)을 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00060
)과 비교하는 제1 비교부; 및 상기 정상 어플리케이션의 분포율(
Figure pat00061
)을 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00062
)과 비교하는 제2 비교부;를 포함할 수 있다.
상기 가중치 부여부는, 상기 산출된 악성 어플리케이션의 분포율(
Figure pat00063
) 및 정상 어플리케이션의 분포율(
Figure pat00064
)이 각각 기 설정된 분포율 임계값(
Figure pat00065
,
Figure pat00066
)을 초과하는 경우, 상기 특성정보(
Figure pat00067
)의 랭크값(
Figure pat00068
)에 가중치(w)를 부여할 수 있다.
상기 최종 분배부는, 상기 가중치(w)가 부여된 랭크값(
Figure pat00069
)과 기 설정된 특성정보 임계값(
Figure pat00070
)을 비교하는 제3 비교부; 상기 가중치가 부여된 랭크값(
Figure pat00071
)이 상기 특성정보 임계값(
Figure pat00072
)을 만족하는 경우, 상기 가중치가 부여된 랭크값(
Figure pat00073
)인 특성정보(
Figure pat00074
)를 결과값(F)으로 산출하는 결과값 산출부; 및 상기 결과값(F)을 최종 특성선정 집합으로 저장하는 특성선정 결정부;를 포함할 수 있다.
상기 정보 생성부는, 상기 어플리케이션의 프로그래밍 소스로부터 수행과정을 암시하는 특성을 추출하는 특성 추출부; 및 상기 추출된 특성의 순서(i)를 랜덤으로 설정하여 특성정보(
Figure pat00075
)로 저장하는 저장부;를 포함할 수 있다.
상술한 본 발명의 일측면에 따르면, 안드로이드 어플리케이션의 악성코드 탐지를 위한 특성선정 시 순위선정(Ranked) 방식을 기초로 하여 각 특성의 분포비율을 반영한 분포값이 기 설정된 임계값(Thresholds)을 만족하는 경우, 가중치를 부여하여 결과값을 도출한다.
이에 따라, 악성코드 탐지에 사용하는 특성들이 악성(Malware) 또는 양성(Benign)에 편향되는 문제점(distribution Bias)을 해결하여 악성코드의 오탐률을 감소시키고, 악성코드 탐지의 재현률(Recall)과 정확도(Accuracy)를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 악성코드 탐지를 위한 특성선정 장치의 개략적인 구성을 나타내는 블록도이다.
도 2는 도 1의 특성정보 생성을 위한 정보 생성부를 자세히 도시한 블록도이다.
도 3은 도 1의 분포율 비교부의 상세한 블록도이다.
도 4는 도 1의 최종 분배부의 상세한 블록도이다.
도 5는 특성정보를 선정하는 알고리즘의 구체적인 의사코드가 도시된 도면이다.
도 6은 기존 특성선정 방법을 이용한 알고리즘의 일 예가 도시된 도면이다.
도 7은 본 발명의 특성선정 방법을 이용한 알고리즘의 일 예가 도시된 도면이다.
도 8은 본 발명의 일 실시예에 따른 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법의 흐름도이다.
도 9는 도 8의 특성정보 집합(IFS)을 생성하는 과정을 자세히 도시한 흐름도이다.
도 10은 도 8의 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 각각 기 설정된 분포율 임계값과 비교하는 과정을 자세히 도시한 흐름도이다.
도 11은 도 8의 가중치가 부여된 랭크값의 특성정보를 최종 특성선정 집합으로 전송하여 저장하는 과정을 자세히 도시한 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 안드로이드 환경에서 악성코드 탐지를 위한 특성선정 장치의 개략적인 구성을 나타내는 블록도이다.
안드로이드는 복수 개일 수 있고, 동적 분석을 위하여 악성코드 탐지를 위한 특성선정 장치(10)를 이용하여 안드로이드 어플리케이션의 수행과정을 암시하는 특성을 선정하는 과정을 수행할 수 있도록 설계될 수 있다. 안드로이드의 상태는 OS, 빌드 버전, 루틴, 루팅 상태, 하드웨어 정보 등에 따라 각각 다르게 생성 가능하다.
본 발명에 따른 악성코드 탐지를 위한 특성선정 장치(10)는 네트워크에 접속하여 다른 장치들과 통신이 가능하며, 사용자의 요청을 입력받아 특정 작업을 처리하여 결과를 출력할 수 있는 컴퓨터 장치일 수 있다. 하지만, 악성코드 탐지를 위한 특성선정 장치(10)는 이에 한정되는 것은 아니며 스마트폰, 태블릿 PC, 노트북, 웨어러블 장치 들과 같이 이하에서 설명되는 기능들을 수행할 수 있는 다른 전자장치들을 포함할 수 있다.
또한, 본 발명에 따라 안드로이드 환경에서 악성코드를 탐지하기 위한 특성선정 장치를 수행하게 될 경우, 안드로이드 공간에서 실행되는 .apk 및 .so 라이브러리에 대한 분석이 가능해지며, 특성선정 장치를 쉽게 백업할 수 있어 다양한 공격으로부터 복구가 가능하다.
또한, 본 발명에 따른 악성코드 탐지를 위한 특성선정 장치(10)는 물리적으로 구현되지 않은 응용 프로그램의 형태일 수도 있으며, 이러한 경우 응용프로그램(어플리케이션)의 형태로 다른 장치의 기록매체에 설치되어 동작될 수 있다. 예를 들어, 악성코드 탐지를 위한 특성선정 장치(10)는 달빅 가상 머신(Dalvik Virtual Machine)의 형태로 컴퓨터 장치에 구현될 수 있다.
구체적으로, 본 발명의 일 실시예에 따른 악성코드 탐지를 위한 특성선정 장치(10)는 정보 생성부(100), 랭크 산정부(200), 개수 산출부(300), 분포율 비교부(400), 가중치 부여부(500) 및 최종 분배부(600)를 포함한다.
이때, 악성코드 탐지를 위한 특성선정 장치(10)가 컴퓨터 장치인 경우, 각각의 구성요소는 물리적인 모듈로 구현될 수 있다. 반면, 악성코드 탐지를 위한 특성선정 장치(10)가 달빅 가상 머신의 형태로 구현되는 경우, 각각의 구성요소는 후술하는 기능들을 수행할 수 있도록 소프트웨어적으로 구현될 수 있다. 이하, 각각의 구성요소에 대하여 상세히 설명하기로 한다.
정보 생성부(100)는 각 어플리케이션의 특성을 추출하여 특성정보 집합(IFS: Initial Feature Set)을 생성할 수 있다.
정보 생성부(100)는 각 어플리케이션의 프로그래밍 소스로부터 수행과정을 암시하는 특성들을 추출하고, 각 특성들에 랜덤으로 순서를 매김으로써 특성정보(
Figure pat00076
)를 생성할 수 있다.
순서가 정해진 특성정보(
Figure pat00077
)는 특성정보 집합(IFS)에 순서대로 나열됨으로써, 특성정보 집합(IFS: Initial Feature Set)이 생성될 수 있다.
악성코드 탐지를 위한 특성선정 장치(10)가 달빅 가상 머신의 형태인 경우, 정보 생성부(100)는 달빅 가상 머신이 구현된 컴퓨터 장치로부터 어플리케이션의 특성들을 추출할 수 있다.
랭크 산정부(200)는 랜덤으로 순서가 매겨진 특성정보(
Figure pat00078
)를 악성코드와 연관성이 높은 순서대로 순위를 산정하여 랭크값(
Figure pat00079
)을 순차적으로 부여할 수 있다.
개수 산출부(300)는 특성정보(
Figure pat00080
)를 포함하고 있는 악성 어플리케이션의 개수(
Figure pat00081
)와 정상 어플리케이션의 개수(
Figure pat00082
)를 산출하여 저장할 수 있다. 악성 어플리케이션의 개수(
Figure pat00083
)와 정상 어플리케이션의 개수(
Figure pat00084
)는 새로운 어플리케이션의 추가에 따라 업데이트 될 수 있다.
분포율 비교부(400)는 특성정보(
Figure pat00085
)를 포함하고 있는 악성 어플리케이션 및 정상 어플리케이션의 분포율을 산출할 수 있다. 악성 어플리케이션의 개수(
Figure pat00086
)와 정상 어플리케이션의 개수(
Figure pat00087
)를 이용하여 악성 어플리케이션의 분포율(
Figure pat00088
)과 정상 어플리케이션의 분포율(
Figure pat00089
)을 산출해 낼 수 있다.
악성 어플리케이션의 분포율(
Figure pat00090
)은 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00091
)과 비교할 수 있고, 정상 어플리케이션의 분포율(
Figure pat00092
)을 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00093
)과 비교할 수 있다.
악성 어플리케이션 분포율 임계값(
Figure pat00094
)과 정상 어플리케이션 분포율 임계값(
Figure pat00095
)은 특성정보(
Figure pat00096
)를 포함하고 있는 악성 어플리케이션과 정상 어플리케이션의 비율에 대한 임계값일 수 있다.
악성 어플리케이션 분포율 임계값(
Figure pat00097
)과 정상 어플리케이션 분포율 임계값(
Figure pat00098
)은 악성코드 탐지를 위한 특성선정을 시작할 때 사용자로부터 입력받아 저장된 값일 수 있고, 각 어플리케이션으로부터 추출된 특성마다 다르게 저장될 수 있다.
가중치 부여부(500)는 제1 비교부(450)와 제2 비교부(470)의 결과로 악성 어플리케이션의 분포율(
Figure pat00099
)과 정상 어플리케이션의 분포율(
Figure pat00100
)이 각각의 분포율 임계값을 초과하는 경우에만 특성정보(
Figure pat00101
)의 랭크값(
Figure pat00102
)에 가중치(w)를 부여할 수 있다.
최종 분배부(600)는 각 어플리케이션으로부터 추출된 특성정보(
Figure pat00103
)를 비교하고, 비교한 결과에 따라 최종 특성정보 집합으로 분배할 수 있다. 최종 분배부(600)는 가중치 부여부(500)에서 가중치(w)를 부여받은 특성정보(
Figure pat00104
)의 랭크값(
Figure pat00105
)을 기 설정된 특성정보 임계값(
Figure pat00106
)과 비교할 수 있다.
기 설정된 특성정보 임계값(
Figure pat00107
)은 악성코드 탐지를 위한 특성을 선정하기 위한 알고리즘을 시작할 때 사용자로부터 입력받아 저장된 값일 수 있고, 각 어플리케이션으로부터 추출된 특성마다 다르게 저장될 수 있다.
가중치(w)를 부여받은 특성정보(
Figure pat00108
)의 랭크값(
Figure pat00109
)이 기 설정된 특성정보 임계값(
Figure pat00110
)을 초과하는 경우, 가중치(w)를 부여받은 랭크값(
Figure pat00111
)에 해당되는 특성정보(
Figure pat00112
)를 결과값(F)으로 산출하여 최종 특성선정 집합으로 전송하고, 가중치(w)를 부여받은 특성정보(
Figure pat00113
)의 랭크값(
Figure pat00114
)이 기 설정된 특성정보 임계값(
Figure pat00115
)을 초과하지 않는 경우, 가중치(w)를 부여받은 특성정보(
Figure pat00116
)의 랭크값(
Figure pat00117
)에 대한 선정과정을 종료한다.
도 2를 참조하여, 도 1의 특성정보 생성을 위한 정보 생성부(100)를 자세히 설명하기로 한다.
본 실시예에 따른 특성 추출부(110)는 각 어플리케이션의 프로그래밍 소스에서 특성을 추출할 수 있다. 각 어플리케이션의 수행과정을 암시하는 프로그래밍 소스를 모두 특성으로 추출하여 특성정보(
Figure pat00118
)로 저장하고, 저장부(130)가 랜덤으로 순서를 지정할 수 있고, 정보 생성부(100)는 저장부(130)가 랜덤으로 지정한 순서대로 특성정보 집합(IFS)을 생성할 수 있다.
특성정보 집합(IFS)의 특성정보(
Figure pat00119
)는 저장부(130)가 랜덤으로 지정한 순서대로 랭크 산정부(200)에 의해 랭크값(
Figure pat00120
)이 부여될 수 있다.
도 3를 참조하여, 도 1의 분포율 산출 및 가중치 부여를 위한 분포율 비교부(400)를 자세히 설명하기로 한다.
분포율 비교부(400)는 악성분포율 산출부(410), 정상분포율 산출부(430), 제1 비교부(450) 및 제2 비교부(470)를 포함할 수 있다. 분포율 비교부(400)는 악성분포율 산출부(410)와 정상분포율 산출부(430)는 개수 산출부(300)에서 산출하여 저장한 악성 어플리케이션의 개수(
Figure pat00121
)와 정상 어플리케이션의 개수(
Figure pat00122
)를 이용하여 악성 어플리케이션의 분포율(
Figure pat00123
)과 정상 어플리케이션의 분포율(
Figure pat00124
)을 산출해 낼 수 있다.
악성 어플리케이션의 분포율(
Figure pat00125
)은 악성 어플리케이션의 개수(
Figure pat00126
)와 정상 어플리케이션의 개수(
Figure pat00127
)의 합 중에서 악성 어플리케이션의 개수(
Figure pat00128
)의 비율일 수 있고, 정상 어플리케이션의 분포율(
Figure pat00129
)은 악성 어플리케이션의 개수(
Figure pat00130
)와 정상 어플리케이션의 개수(
Figure pat00131
)의 합 중에서 정상 어플리케이션의 개수(
Figure pat00132
)의 비율일 수 있다.
제1 비교부(450)는 악성 어플리케이션의 분포율(
Figure pat00133
)을 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00134
)과 비교할 수 있다.
제2 비교부(470)는 정상 어플리케이션의 분포율(
Figure pat00135
)을 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00136
)과 비교할 수 있다.
악성 어플리케이션 분포율 임계값(
Figure pat00137
)과 정상 어플리케이션 분포율 임계값(
Figure pat00138
)은 특성정보(
Figure pat00139
)를 포함하고 있는 악성 어플리케이션과 정상 어플리케이션의 비율에 대한 임계값일 수 있다. 악성 어플리케이션 분포율 임계값(
Figure pat00140
)과 정상 어플리케이션 분포율 임계값(
Figure pat00141
)은 악성코드 탐지를 위한 특성선정을 시작할 때 사용자로부터 입력받아 저장된 값일 수 있고, 각 어플리케이션으로부터 추출된 특성마다 다르게 저장될 수 있다.
도 4를 참조하여, 도 1의 최종 분배부(600)를 자세히 설명하기로 한다.
최종 분배부(600)는 제3 비교부(610), 결과값 산출부(630) 및 특성선정 결정부(650)를 포함할 수 있다.
제3 비교부(610)는 가중치 부여부(500)에서 가중치(w)를 부여받은 특성정보(
Figure pat00142
)의 랭크값(
Figure pat00143
)을 기 설정된 특성정보 임계값(
Figure pat00144
)과 비교할 수 있다.
기 설정된 특성정보 임계값(
Figure pat00145
)은 악성코드 탐지를 위한 특성을 선정하기 위한 알고리즘을 시작할 때 사용자로부터 입력받아 저장된 값일 수 있고, 각 어플리케이션으로부터 추출된 특성마다 다르게 저장될 수 있다.
결과값 산출부(630)는 제3 비교부(610)에서 기 설정된 특성정보 임계값(
Figure pat00146
)과 비교한 결과에 따라 가중치(w)를 부여받은 특성정보(
Figure pat00147
)의 랭크값(
Figure pat00148
)을 결과값(F)으로 산출하거나 산출하지 않을 수 있다.
가중치(w)를 부여받은 특성정보(
Figure pat00149
)의 랭크값(
Figure pat00150
)이 기 설정된 특성정보 임계값(
Figure pat00151
)을 초과하는 경우, 가중치(w)를 부여받은 특성정보(
Figure pat00152
)의 랭크값(
Figure pat00153
)을 결과값(F)으로 산출하고, 가중치(w)를 부여받은 특성정보(
Figure pat00154
)의 랭크값(
Figure pat00155
)이 기 설정된 특성정보 임계값(
Figure pat00156
)을 초과하지 않는 경우, 가중치(w)를 부여받은 특성정보(
Figure pat00157
)의 랭크값(
Figure pat00158
)에 대한 선정과정을 종료한다.
특성선정 결정부(650)는 결과값 산출부(630)에서 결과값(F)이 산출된 특성정보(
Figure pat00159
)를 최종 특성선정 집합으로 분배할 수 있다.
도 5는 악성코드 탐지를 위한 특성선정 장치(10)의 특성정보를 선정하는 알고리즘의 일 예가 도시된 도면이다.
특성정보를 선정하는 알고리즘의 입력값은 특성정보 집합(IFS), 악성 어플리케이션 분포율 임계값(
Figure pat00160
), 정상 어플리케이션 분포율 임계값(
Figure pat00161
), 특성정보 임계값(
Figure pat00162
), 가중치(w)일 수 있다. 특성정보 집합(IFS)에 있는 특성정보(
Figure pat00163
)마다 랭크값(
Figure pat00164
)을 부여하고, 랭크값(
Figure pat00165
)의 순서대로 특성정보(
Figure pat00166
)가 포함된 악성 어플리케이션의 개수(
Figure pat00167
)와 정상 어플리케이션의 개수(
Figure pat00168
)를 산출한 뒤, 악성 어플리케이션의 분포율(
Figure pat00169
)과 정상 어플리케이션의 분포율(
Figure pat00170
)을 산출할 수 있다.
악성 어플리케이션의 분포율(
Figure pat00171
)이 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00172
)을 초과하고, 정상 어플리케이션의 분포율(
Figure pat00173
)이 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00174
)을 초과하는 경우, 특성정보(
Figure pat00175
)의 랭크값(
Figure pat00176
)에 가중치(w)를 부여할 수 있다.
가중치(w)가 부여된 랭크값(
Figure pat00177
)은 기 설정된 특성정보 임계값(
Figure pat00178
) 비교하고, 비교한 결과 가중치(w)가 부여된 랭크값(
Figure pat00179
)이 기 설정된 특성정보 임계값(
Figure pat00180
)을 초과하는 경우, 가중치(w)가 부여된 랭크값(
Figure pat00181
)인 특성정보(
Figure pat00182
)를 결과값으로 산출할 수 있다.
특성선정 알고리즘을 거쳐 산출된 결과값은 최종 특성선정 집합(DFS)으로 분배할 수 있다. 앞서 수행된 특성정보(
Figure pat00183
)의 선정과정이 종료되면 다음 순서의 특성정보(
Figure pat00184
)에 대한 선정과정을 수행함으로써, 특성정보 집합(IFS)에 있는 모든 특성정보(
Figure pat00185
)에 대해 선정과정을 수행할 수 있다.
도 6은 기존 특성선정 방법을 이용한 알고리즘의 일 예를 도시한 도면이다.
기존 특성선정 방법을 이용한 알고리즘의 종류로는 ChiSquared(특정 특성의 발생과 특정 클래스의 발생이 독립적인지 여부를 테스트하는 특성선정 방법), SymmetricalUncert(대칭적 불확실성 측정값을 기반으로 특성을 평가하는 특성선정 방법, Symm(Class, Attribute) = 2 * (H(Class) - H(Class | Attribute)) / H(Class) + H(Attribute)), ConsistencySubset(트레이닝 셋을 특성 집합에 적용하였을 때의 클래스 값들 사이의 일관성의 정도를 계산하는 특성선정 방법), CfsSubsetl(각 특성의 예측 값을 특성들의 중복 분산의 차수에 기반하여 검증하는 특성선정 방법), FilteredSubset(임의의 제약조건들이 있는 필터를 통과한 특성들에 대하여 평가하고, 각 특성이 아닌 특성 집단에 대하여 평가하는 특성선정 방법), GainRatioAttribute(클래스와 관련한 증가율을 기반으로 특성을 평가하는 특성선정 방법), InfoGainAttribute(클래스의 정보 이윤을 기반으로 특성을 평가하는 특성선정 방법, InfoGain(Class,Attribute) = H(Class) - H(Class | Attribute)), ReliefFAttrivute(일반적으로 이진 분류에 쓰이며, 하나의 집단을 여러가지 이진 문제로 분해하여 다항식 분류로 일반화하여 특성을 선정하는 특성선정 방법), ClassifierSubset(트레이닝 셋을 통해 특성의 하위 집단이나 개별 셋을 평가하고, 분류기를 사용하여 특성 집합의 장점을 추정하는 특성선정 방법), OneRAttribute(악성코드 예측을 위하여 최소 오류를 가진 특성을 도출하는 OneR의 개념을 이용해서 특성을 평가하는 특성선정 방법) 등이 존재한다.
전술한 바와 같은 기존의 특성선정 방법을 이용할 경우, 악성(Malware) 어플리케이션의 특성 탐지에 사용되어 정상(Benign) 어플리케이션의 특성에 대한 재현률(Recall)값이 낮아질 수 있고, 낮은 순위에 존재하는 특성들을 고려하지 못하는 단점이 발생할 수 있고, 이로부터 오탐률이 증가할 수 있다.
도 7은 본 발명의 특성선정 방법을 이용한 알고리즘의 일 예를 도시한 도면이다.
본 발명의 특성선정 방법을 이용할 경우, 머신러닝을 활용하여 악성(Malware) 어플리케이션 탐지에 사용되는 특성선정 시에도 특성정보의 집합별로 균형 잡힌 수의 특성이 도출 가능하고, 이로부터 편향된 특성을 제외할 수 있으므로 오탐률이 감소할 수 있다.
도 8은 본 발명의 일 실시예에 따른 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법의 흐름도이다.
악성코드 탐지를 위한 특성선정은 안드로이드 사용자로부터 수행 명령을 입력받아 시작될 수도 있고, 주기적으로 시작될 수도 있다.
악성코드 탐지를 위한 특성선정 장치(10)는 각 어플리케이션의 프로그래밍 소스를 수집하고, 프로그래밍 소스로부터 어플리케이션의 모든 수행과정을 암시하는 적어도 하나 이상의 특성을 추출하여 특성정보 집합(IFS)을 생성할 수 있다(710).
특성정보 집합(IFS)에 속해 있는 특성정보(
Figure pat00186
)들은 악성코드와의 연관성 정도를 판별하고, 악성코드와의 연관성이 높은 특성정보(
Figure pat00187
)에 랭크값(
Figure pat00188
)을 순차적으로 부여할 수 있다(720).
각각의 특성정보(
Figure pat00189
)를 포함하고 있는 악성 어플리케이션의 개수(
Figure pat00190
)와 정상 어플리케이션의 개수(
Figure pat00191
)를 산출하고(730), 악성 어플리케이션의 개수(
Figure pat00192
)와 정상 어플리케이션의 개수(
Figure pat00193
)를 이용하여 악성 어플리케이션의 분포율(
Figure pat00194
)과 정상 어플리케이션의 분포율(
Figure pat00195
)을 산출할 수 있다(740).
악성 어플리케이션의 분포율(
Figure pat00196
)은 악성 어플리케이션의 개수(
Figure pat00197
)와 정상 어플리케이션의 개수(
Figure pat00198
)의 합 중에서 악성 어플리케이션의 개수(
Figure pat00199
)의 비율일 수 있고, 정상 어플리케이션의 분포율(
Figure pat00200
)은 악성 어플리케이션의 개수(
Figure pat00201
)와 정상 어플리케이션의 개수(
Figure pat00202
)의 합 중에서 정상 어플리케이션의 개수(
Figure pat00203
)의 비율일 수 있다.
산출된 악성 어플리케이션의 분포율(
Figure pat00204
)은 기 설정된 악성 어플리케이션 분포율 임계값(
Figure pat00205
)과 비교할 수 있고, 정상 어플리케이션의 분포율(
Figure pat00206
)은 기 설정된 정상 어플리케이션 분포율 임계값(
Figure pat00207
)과 비교할 수 있다(750).
악성 어플리케이션 분포율 임계값(
Figure pat00208
)과 정상 어플리케이션 분포율 임계값(
Figure pat00209
)은 특성정보(
Figure pat00210
)를 포함하고 있는 악성 어플리케이션과 정상 어플리케이션의 비율에 대한 임계값일 수 있다.
악성 어플리케이션 분포율 임계값(
Figure pat00211
)과 정상 어플리케이션 분포율 임계값(
Figure pat00212
)은 악성코드 탐지를 위한 특성선정을 시작할 때 사용자로부터 입력받아 저장된 값일 수 있고, 각 어플리케이션으로부터 추출된 특성마다 다르게 저장될 수 있다.
악성 어플리케이션의 분포율(
Figure pat00213
)과 정상 어플리케이션의 분포율(
Figure pat00214
)이 각각 기 설정된 분포율 임계값(
Figure pat00215
)을 초과하는 경우, 해당 특성정보(
Figure pat00216
)를 결과값(F)으로 산출하고, 해당 결과값(F)인 특성정보(
Figure pat00217
)를 최종 특성선정 집합(DFS)으로 전송하여 순차적으로 저장할 수 있다(770).
도 9를 참조하여, 도 8의 특성정보 집합(IFS)을 생성하는 과정을 구체적으로 설명하도록 한다.
악성코드 탐지를 위한 특성선정 장치(10)는 각 어플리케이션의 프로그래밍 소스를 수집하고(701), 수집된 프로그래밍 소스로부터 어플리케이션의 모든 수행과정을 암시하는 적어도 하나 이상의 특성을 추출할 수 있다(703).
추출된 특성에 순서(i)를 랜덤으로 설정하여 특성정보(
Figure pat00218
)로 저장할 수 있고(705), 순서가 결정된 특성정보(
Figure pat00219
)들을 순서대로 나열함으로써(707), 특성정보 집합(IFS)를 생성할 수 있다.
도 10을 참조하여, 도 8의 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 각각 기 설정된 분포율 임계값과 비교하는 과정을 구체적으로 설명하도록 한다.
악성 어플리케이션의 분포율(
Figure pat00220
)은 악성 어플리케이션 분포율 임계값(
Figure pat00221
)과 비교하고(751), 정상 어플리케이션의 분포율(
Figure pat00222
)은 정상 어플리케이션 분포율 임계값(
Figure pat00223
)과 비교하여(753) 악성 어플리케이션의 분포율(
Figure pat00224
)과 정상 어플리케이션의 분포율(
Figure pat00225
)이 각각 기 설정된 분포율 임계값(
Figure pat00226
)을 초과하는 경우, 해당 특성정보(
Figure pat00227
)의 랭크값(
Figure pat00228
)에 가중치(w)를 부여할 수 있다(760).
악성 어플리케이션의 분포율(
Figure pat00229
)과 정상 어플리케이션의 분포율(
Figure pat00230
)이 각각 기 설정된 분포율 임계값(
Figure pat00231
)을 초과하지 않으면 해당 특성정보(
Figure pat00232
)의 선정과정을 종료하고, 다음 순서의 특성정보(
Figure pat00233
)의 선정과정을 시작할 수 있다.
도 11을 참조하여, 도 8의 가중치가 부여된 랭크값의 특성정보를 최종 특성선정 집합으로 전송하여 저장하는 과정을 구체적으로 설명하도록 한다.
악성 어플리케이션의 분포율(
Figure pat00234
)과 정상 어플리케이션의 분포율(
Figure pat00235
)이 각각 기 설정된 분포율 임계값(
Figure pat00236
)을 초과하여 가중치(w)가 부여된 랭크값(
Figure pat00237
)이 기 설정된 특성정보 임계값을 초과하는 경우(761), 최종 특성선정 집합(DFS)으로 전송할 수 있다(763).
가중치(w)가 부여된 랭크값(
Figure pat00238
)이 기 설정된 특성정보 임계값을 초과하지 않으면 해당 특성정보(
Figure pat00239
)의 선정과정을 종료하고, 다음 순서의 특성정보(
Figure pat00240
)의 선정과정을 시작할 수 있다.
앞서 수행된 특성정보(
Figure pat00241
)의 선정과정이 종료되면 다음 순서의 특성정보(
Figure pat00242
)에 대한 선정과정을 수행함으로써, 특성정보 집합(IFS)에 있는 모든 특성정보(
Figure pat00243
)에 대해 선정과정을 수행할 수 있다.
전술한 바와 같이, 본 발명은 머신러닝 기반의 악성코드 탐지를 위한 특성선정 방법으로서, 특성정보(
Figure pat00244
)를 포함하는 악성 어플리케이션 및 정상 어플리케이션의 분포에 대한 임계값(Thresholds) 개념을 반영하여 해당 특성정보(
Figure pat00245
)를 포함하는 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율이 임계값(Thresholds)을 초과하게 되면 가중치를 부여한다. 이로부터, 일부 어플리케이션에 편향된 특성정보(
Figure pat00246
)가 선정되는 경우를 방지할 수 있으며, 재현률(Recall)과 정확도(Accuracy)를 향상시킬 수 있다.
이와 같은, 악성코드 탐지를 위한 특성선정 장치(10)를 구축하는 방법을 제공하는 기술은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 특성선정 장치
100 : 정보 생성부
110 : 특성 추출부
130 : 저장부
200 : 랭크 산정부
300 : 개수 산출부
400 : 분포율 비교부
410 : 악성분포율 산출부
430 : 정상분포율 산출부
450 : 제1 비교부
470 : 제2 비교부
500 : 가중치 부여부
600 : 최종 분배부
610 : 제3 비교부
630 : 결과값 산출부
650 : 특성선정 결정부

Claims (11)

  1. 안드로이드 환경에서 각 어플리케이션의 특성정보(
    Figure pat00247
    )의 집합(IFS: Initial Feature Set)을 생성하는 단계;
    상기 특성정보(
    Figure pat00248
    )를 악성코드와 연관성이 높은 순서대로 순위를 산정하여 랭크값(
    Figure pat00249
    )을 부여하는 단계;
    상기 특성정보(
    Figure pat00250
    )를 포함하고 있는 악성 어플리케이션의 개수(
    Figure pat00251
    )와 정상 어플리케이션의 개수(
    Figure pat00252
    )를 산출하는 단계;
    상기 악성 어플리케이션의 개수(
    Figure pat00253
    )와 정상 어플리케이션의 개수(
    Figure pat00254
    )를 이용하여 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 산출하고, 각각 기 설정된 분포율 임계값과 비교하는 단계;
    상기 비교한 결과에 따라 상기 특성정보(
    Figure pat00255
    )의 랭크값(
    Figure pat00256
    )에 가중치(w)를 부여하는 단계; 및
    상기 가중치가 부여된 랭크값(
    Figure pat00257
    )의 크기에 따라 상기 특성정보(
    Figure pat00258
    )를 최종 특성선정 집합(DFS: Derived Feature Set)으로 분류하는 단계;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법.
  2. 제1항에 있어서,
    상기 각각 기 설정된 분포율 임계값과 비교하는 단계는,
    상기 악성 어플리케이션의 개수(
    Figure pat00259
    )와 정상 어플리케이션의 개수(
    Figure pat00260
    )의 합 중에서 상기 악성 어플리케이션의 개수(
    Figure pat00261
    )의 비율인 악성 어플리케이션의 분포율(
    Figure pat00262
    )을 산출하는 단계;
    상기 악성 어플리케이션의 개수(
    Figure pat00263
    )와 정상 어플리케이션의 개수(
    Figure pat00264
    )의 합 중에서 상기 정상 어플리케이션의 개수(
    Figure pat00265
    )의 비율인 정상 어플리케이션의 분포율(
    Figure pat00266
    )을 산출하는 단계;
    상기 악성 어플리케이션의 분포율(
    Figure pat00267
    )을 기 설정된 악성 어플리케이션 분포율 임계값(
    Figure pat00268
    )과 비교하는 단계; 및
    상기 정상 어플리케이션의 분포율(
    Figure pat00269
    )을 기 설정된 정상 어플리케이션 분포율 임계값(
    Figure pat00270
    )과 비교하는 단계;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법.
  3. 제1항에 있어서,
    상기 가중치(w)를 부여하는 단계는,
    산출된 악성 어플리케이션의 분포율(
    Figure pat00271
    ) 및 정상 어플리케이션의 분포율(
    Figure pat00272
    )이 각각 기 설정된 분포율 임계값(
    Figure pat00273
    ,
    Figure pat00274
    )을 초과하는 경우, 상기 특성정보(
    Figure pat00275
    )의 랭크값(
    Figure pat00276
    )에 가중치(w)를 부여하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법.
  4. 제1항에 있어서,
    상기 최종 특성선정 집합으로 분배하는 단계는,
    상기 가중치가 부여된 랭크값(
    Figure pat00277
    )을 기 설정된 특성정보 임계값(
    Figure pat00278
    )과 비교하는 단계;
    상기 가중치가 부여된 랭크값(
    Figure pat00279
    )이 상기 특성정보 임계값(
    Figure pat00280
    )을 만족하는 경우, 상기 가중치가 부여된 랭크값(
    Figure pat00281
    )인 특성정보(
    Figure pat00282
    )를 결과값(F)으로 산출하는 단계; 및
    상기 결과값을 최종 특성선정 집합으로 저장하는 단계;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법.
  5. 제1항에 있어서,
    상기 특성정보(
    Figure pat00283
    )의 집합을 생성하는 단계는,
    상기 어플리케이션의 프로그래밍 소스로부터 수행과정을 암시하는 적어도 하나의 특성을 추출하는 단계; 및
    상기 추출된 특성의 순서(i)를 랜덤으로 설정하여 특성정보(
    Figure pat00284
    )로 저장하는 단계;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법.
  6. 제1항 내지 제5항 중 어느 하나의 항에 따른 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
  7. 안드로이드 환경에서 각 어플리케이션의 모든 수행과정을 암시하는 특성정보(
    Figure pat00285
    )의 집합(IFS: Initial Feature Set)을 추출하는 정보 생성부;
    상기 특성정보(
    Figure pat00286
    )를 악성코드와 연관성이 높은 순서대로 순위를 산정하여 랭크값(
    Figure pat00287
    )을 부여하는 랭크 산정부;
    상기 특성정보(
    Figure pat00288
    )를 포함하고 있는 악성 어플리케이션의 개수(
    Figure pat00289
    )와 정상 어플리케이션의 개수(
    Figure pat00290
    )를 산출하는 개수 산출부;
    상기 악성 어플리케이션의 개수(
    Figure pat00291
    )와 정상 어플리케이션의 개수(
    Figure pat00292
    )를 이용하여 악성 어플리케이션의 분포율과 정상 어플리케이션의 분포율을 산출하고, 각각 기 설정된 분포율 임계값과 비교하는 분포율 비교부;
    상기 분포율 비교부의 결과에 따라 상기 특성정보(
    Figure pat00293
    )의 랭크값(
    Figure pat00294
    )에 가중치(w)를 부여하는 가중치 부여부; 및
    상기 가중치가 부여된 랭크값(
    Figure pat00295
    )의 크기에 따라 상기 특성정보(
    Figure pat00296
    )를 최종 특성선정 집합(DFS: Derived Feature Set)으로 분류하는 최종 분배부;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치.
  8. 제7항에 있어서,
    상기 분포율 비교부는,
    상기 악성 어플리케이션의 개수(
    Figure pat00297
    )와 정상 어플리케이션의 개수(
    Figure pat00298
    )의 합 중에서 상기 악성 어플리케이션의 개수(
    Figure pat00299
    )의 비율인 악성 어플리케이션의 분포율(
    Figure pat00300
    )을 산출하는 악성분포율 산출부;
    상기 악성 어플리케이션의 개수(
    Figure pat00301
    )와 정상 어플리케이션의 개수(
    Figure pat00302
    )의 합 중에서 상기 정상 어플리케이션의 개수(
    Figure pat00303
    )의 비율인 정상 어플리케이션의 분포율(
    Figure pat00304
    )을 산출하는 정상분포율 산출부;
    상기 악성 어플리케이션의 분포율(
    Figure pat00305
    )을 기 설정된 악성 어플리케이션 분포율 임계값(
    Figure pat00306
    )과 비교하는 제1 비교부; 및
    상기 정상 어플리케이션의 분포율(
    Figure pat00307
    )을 기 설정된 정상 어플리케이션 분포율 임계값(
    Figure pat00308
    )과 비교하는 제2 비교부;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치.
  9. 제7항에 있어서,
    상기 가중치 부여부는,
    상기 산출된 악성 어플리케이션의 분포율(
    Figure pat00309
    ) 및 정상 어플리케이션의 분포율(
    Figure pat00310
    )이 각각 기 설정된 분포율 임계값(
    Figure pat00311
    ,
    Figure pat00312
    )을 초과하는 경우, 상기 특성정보(
    Figure pat00313
    )의 랭크값(
    Figure pat00314
    )에 가중치(w)를 부여하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치.
  10. 제7항에 있어서,
    상기 최종 분배부는,
    상기 가중치(w)가 부여된 랭크값(
    Figure pat00315
    )과 기 설정된 특성정보 임계값(
    Figure pat00316
    )을 비교하는 제3 비교부;
    상기 가중치가 부여된 랭크값(
    Figure pat00317
    )이 상기 특성정보 임계값(
    Figure pat00318
    )을 만족하는 경우, 상기 가중치가 부여된 랭크값(
    Figure pat00319
    )인 특성정보(
    Figure pat00320
    )를 결과값(F)으로 산출하는 결과값 산출부; 및
    상기 결과값(F)을 최종 특성선정 집합으로 저장하는 특성선정 결정부;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치.
  11. 제7항에 있어서,
    상기 정보 생성부는,
    상기 어플리케이션의 프로그래밍 소스로부터 수행과정을 암시하는 특성을 추출하는 특성 추출부; 및
    상기 추출된 특성의 순서(i)를 랜덤으로 설정하여 특성정보(
    Figure pat00321
    )로 저장하는 저장부;를 포함하는, 머신러닝 기반 악성코드 탐지를 위한 특성선정 장치.
KR1020180041974A 2018-04-11 2018-04-11 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치 KR102046249B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180041974A KR102046249B1 (ko) 2018-04-11 2018-04-11 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180041974A KR102046249B1 (ko) 2018-04-11 2018-04-11 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치

Publications (2)

Publication Number Publication Date
KR20190123369A true KR20190123369A (ko) 2019-11-01
KR102046249B1 KR102046249B1 (ko) 2019-11-18

Family

ID=68535624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180041974A KR102046249B1 (ko) 2018-04-11 2018-04-11 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치

Country Status (1)

Country Link
KR (1) KR102046249B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966272A (zh) * 2021-03-31 2021-06-15 国网河南省电力公司电力科学研究院 一种基于对抗式网络的物联网Android恶意软件检测方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6018345A (ja) 1983-07-11 1985-01-30 日東電工株式会社 積層板の製造方法
KR20130076266A (ko) * 2011-12-28 2013-07-08 한양대학교 산학협력단 악성 코드 자동 탐지 방법
JP2016031629A (ja) 2014-07-29 2016-03-07 日本電信電話株式会社 特徴選択装置、特徴選択システム、特徴選択方法、および、特徴選択プログラム
KR20160028724A (ko) * 2014-09-04 2016-03-14 한국전자통신연구원 악성코드 특징 정보 기반의 유사 악성코드 검색 장치 및 방법
KR20160100887A (ko) * 2016-08-12 2016-08-24 충남대학교산학협력단 코드 블록 비교를 통한 악성 코드 탐지 방법
KR20160119678A (ko) 2015-10-30 2016-10-14 엑스브레인 주식회사 기계 학습을 이용한 웹 공격 탐지방법 및 장치
US20170262633A1 (en) 2012-09-26 2017-09-14 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
KR101803889B1 (ko) * 2017-01-18 2017-12-04 한국인터넷진흥원 위험도 기반 악성 어플리케이션 탐지 방법 및 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6018345A (ja) 1983-07-11 1985-01-30 日東電工株式会社 積層板の製造方法
KR20130076266A (ko) * 2011-12-28 2013-07-08 한양대학교 산학협력단 악성 코드 자동 탐지 방법
US20170262633A1 (en) 2012-09-26 2017-09-14 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
JP2016031629A (ja) 2014-07-29 2016-03-07 日本電信電話株式会社 特徴選択装置、特徴選択システム、特徴選択方法、および、特徴選択プログラム
KR20160028724A (ko) * 2014-09-04 2016-03-14 한국전자통신연구원 악성코드 특징 정보 기반의 유사 악성코드 검색 장치 및 방법
KR20160119678A (ko) 2015-10-30 2016-10-14 엑스브레인 주식회사 기계 학습을 이용한 웹 공격 탐지방법 및 장치
KR20160100887A (ko) * 2016-08-12 2016-08-24 충남대학교산학협력단 코드 블록 비교를 통한 악성 코드 탐지 방법
KR101803889B1 (ko) * 2017-01-18 2017-12-04 한국인터넷진흥원 위험도 기반 악성 어플리케이션 탐지 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966272A (zh) * 2021-03-31 2021-06-15 国网河南省电力公司电力科学研究院 一种基于对抗式网络的物联网Android恶意软件检测方法
CN112966272B (zh) * 2021-03-31 2022-09-09 国网河南省电力公司电力科学研究院 一种基于对抗式网络的物联网Android恶意软件检测方法

Also Published As

Publication number Publication date
KR102046249B1 (ko) 2019-11-18

Similar Documents

Publication Publication Date Title
JP7441582B2 (ja) データ侵害を検出するための方法、装置、コンピュータ可読な記録媒体及びプログラム
US20200195667A1 (en) Url attack detection method and apparatus, and electronic device
CN110505241B (zh) 一种网络攻击面检测方法及系统
US8572007B1 (en) Systems and methods for classifying unknown files/spam based on a user actions, a file's prevalence within a user community, and a predetermined prevalence threshold
US8533831B2 (en) Systems and methods for alternating malware classifiers in an attempt to frustrate brute-force malware testing
KR102450834B1 (ko) 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
US8280830B2 (en) Systems and methods for using multiple in-line heuristics to reduce false positives
US8336100B1 (en) Systems and methods for using reputation data to detect packed malware
CN105022957B (zh) 随选检测恶意程序的方法及其电子装置
US8626675B1 (en) Systems and methods for user-specific tuning of classification heuristics
CN113408558B (zh) 用于模型验证的方法、装置、设备和介质
JP2017004123A (ja) 判定装置、判定方法および判定プログラム
US20080127043A1 (en) Automatic Extraction of Programming Rules
JP6281491B2 (ja) テキストマイニング装置、テキストマイニング方法及びプログラム
KR20160099160A (ko) 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
US20150058272A1 (en) Event correlation detection system
KR102046249B1 (ko) 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치
KR20150047241A (ko) 콘트롤 플로우 그래프들을 이용하는 프로그램의 표절 판단 방법 및 장치
US8402545B1 (en) Systems and methods for identifying unique malware variants
US11899794B1 (en) Machine learning model robustness characterization
JP7259932B2 (ja) 仮説検証装置、仮説検証方法、及びプログラム
CN108563950B (zh) 基于SVM的Android恶意软件检测方法
TWI647586B (zh) 行為推論模型生成裝置及其行為推論模型生成方法
KR20210024748A (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
JP7259436B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム

Legal Events

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