KR102334228B1 - 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 - Google Patents

안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 Download PDF

Info

Publication number
KR102334228B1
KR102334228B1 KR1020200014694A KR20200014694A KR102334228B1 KR 102334228 B1 KR102334228 B1 KR 102334228B1 KR 1020200014694 A KR1020200014694 A KR 1020200014694A KR 20200014694 A KR20200014694 A KR 20200014694A KR 102334228 B1 KR102334228 B1 KR 102334228B1
Authority
KR
South Korea
Prior art keywords
family
android malicious
label
malicious app
vaccine
Prior art date
Application number
KR1020200014694A
Other languages
English (en)
Other versions
KR20210100844A (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 KR1020200014694A priority Critical patent/KR102334228B1/ko
Publication of KR20210100844A publication Critical patent/KR20210100844A/ko
Application granted granted Critical
Publication of KR102334228B1 publication Critical patent/KR102334228B1/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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은, 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계; 수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습하는 단계; 상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하는 단계; 상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여하는 단계; 및 상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하는 단계;를 포함한다. 이에 따라, 새로운 패밀리인 안드로이드 악성 앱을 분류할 수 있는 동시에 레이블 투표 기반으로 패밀리 분류의 정확도를 높일 수 있다.

Description

안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치{METHOD FOR FAMILY CLASSIFICATION BY WEIGHTED VOTING FOR ANDROID MALWARE LABELS, RECORDING MEDIUM AND DEVICE FOR PERFORMING THE METHOD}
본 발명은 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것으로서, 더욱 상세하게는 기계학습을 통해 추출된 백신 패밀리 분류 정확도를 레이블 투표과정에 가중치로 부여하여 안드로이드 악성 앱 패밀리 분류의 정확도를 향상시키는 기술에 관한 것이다.
기존에 존재하는 안드로이드 악성 앱 분류 연구는 기계학습을 활용한 분류와 레이블(Label) 정보를 이용한 분류가 존재한다.
기계학습을 활용한 패밀리 분류 연구는 분류하려는 안드로이드 악성 앱을 정적 및 동적 분석을 통해 안드로이드 악성 앱에 포함되는 특징정보(예: permission, API, activities, service 등)를 추출한다. 이후, 추출된 안드로이드 악성 앱 특징정보를 학습 feature로 하고 기계학습을 진행한다.
Dong-Jie Wu 등은 정적 분석을 통해 수집된 안드로이드 악성 앱 특징정보를 기반으로 안드로이드 악성 앱을 탐지하는 DroidMat를 제안하였다. 여기서, 제안된 방법은 안드로이드 악성 앱 중 permission, intent, API 정보를 사용하고 KNN 알고리즘을 이용해 안드로이드 악성 앱을 탐지한다.
Zhenglong Yuan 등은 정적 및 동적 분석으로 수집된 안드로이드 악성 앱 특징정보를 통해 안드로이드 악성 앱을 탐지하는 DroidDector를 제안하였다. 이때, 수집되는 특징정보는 permission, api, network, 파일 I/O, sms 등이 존재하고 DBN(Deep Belif Network)을 사용하여 안드로이드 악성 앱을 탐지한다.
반면, 레이블 정보를 이용한 안드로이드 악성 앱 분류는 기계학습을 진행하지 않는다. Marcos Sebastian 등은 여러 백신에서 제공된 레이블 정보를 이용하여 패밀리 분류할 수 있는 방법을 제안하였다. 여기서, 제안된 방법은 여러 백신에서 제공된 레이블 정보를 정규화하고 추출된 패밀리 후보에게 투표를 진행하여 투표값이 가장 많은 패밀리 후보를 패밀리로 결정한다.
그러나, 기계학습을 활용한 안드로이드 악성 앱 패밀리 분류는 높은 분류 정확도를 가지고 있지만, 학습 데이터 셋에 포함되지 않는 새로운 패밀리인 안드로이드 악성 앱을 분류하지 못하는 문제점이 존재한다.
또한, 레이블을 이용한 안드로이드 악성 앱 패밀리 분류는 새로운 패밀리인 안드로이드 악성 앱을 분류 가능하지만, 기계학습을 활용한 방법보다 낮은 정확도를 가지는 문제점이 존재한다.
KR 10-2013-0157331 A KR 10-2018-0022851 A KR 10-2018-0041974 A
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 정확도를 높이기 위해 기계학습을 통해 추출된 백신 패밀리 분류 정확도를 이용하여 레이블 투표과정에 가중치로 부여하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법을 수행하기 위한 장치를 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은, 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계; 수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습하는 단계; 상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하는 단계; 상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여하는 단계; 및 상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하는 단계;를 포함한다.
본 발명의 실시예에서, 상기 기계학습 모델을 학습하는 단계는, 안드로이드 악성 앱 데이터 셋의 패밀리 분류 결과를 명시적인 정답으로 정의하고 레이블을 이용하여 패밀리 분류하는 결과와 비교하여, 패밀리별 정확하게 분류되는 백신들을 추출하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 최종 패밀리로 결정하는 단계는, 수집된 레이블 정보에서 중복된 레이블을 제거하고 레이블 중에서 접미어(suffix)를 제거하는 단계; 남은 문자열을 토큰화하고, 패밀리 이름으로 될 수 없는 문자열을 필터링하는 단계; 및 같은 패밀리를 의미하는 문자열을 통일화 한 후 상기 가중치를 부여한 투표값으로 랭킹하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계는, 안드로이드 악성 앱의 API를 이용한 정적 분석 결과 및 동적 분석 결과를 수집할 수 있다.
본 발명의 실시예에서, 상기 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계는, 안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 중 적어도 하나를 포함하는 안드로이드 앱 관련된 정보를 수집할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치는, 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 APK 분석부; 수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습하는 모델 학습부; 상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하고, 상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여하는 패밀리 투표부; 및 상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하는 패밀리 추출부;를 포함한다.
본 발명의 실시예에서, 상기 모델 학습부는, 안드로이드 악성 앱 데이터 셋의 패밀리 분류 결과를 명시적인 정답으로 정의하고 레이블을 이용하여 패밀리 분류하는 결과와 비교하여, 패밀리별 정확하게 분류되는 백신들을 추출할 수 있다.
본 발명의 실시예에서, 상기 패밀리 투표부는, 수집된 레이블 정보에서 중복된 레이블을 제거한 후 레이블 중에서 접미어(suffix)를 제거하고, 남은 문자열을 토큰화하고, 패밀리 이름으로 될 수 없는 문자열을 필터링하고, 같은 패밀리를 의미하는 문자열을 통일화 한 후 상기 가중치를 부여한 투표값으로 랭킹할 수 있다.
본 발명의 실시예에서, 상기 APK 분석부는, 안드로이드 악성 앱의 API를 이용한 정적 분석 결과 및 동적 분석 결과를 수집하고, 수집되는 안드로이드 앱 관련된 정보는 안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 중 적어도 하나를 포함할 수 있다.
이와 같은 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법에 따르면, 기계학습을 활용하여 추출된 백신별 패밀리 분류 정확도를 이용하여 가중치를 설정하고, 레이블을 이용한 패밀리 투표과정에서 상기 가중치를 투표값에 부여한다. 이에 따라, 새로운 패밀리인 안드로이드 악성 앱을 분류할 수 있으며, 레이블 투표 기반 방법의 패밀리 분류 성능을 개선할 수 있다.
도 1은 본 발명의 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치의 블록도이다.
도 2는 도 1의 특징 정보 수집부에서 사용하는 학습 특징들의 예를 보여주는 표이다.
도 3은 도 1의 투표부에서의 패밀리 투표 과정을 보여주는 도면이다.
도 4는 본 발명에 따른 가중치 부여에 의한 패밀리 투표 과정을 상세하게 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법의 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치의 블록도이다.
본 발명에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치(10, 이하 장치)는 기계학습을 통해 추출된 백신 패밀리의 분류 정확도를 이용하여 레이블 투표과정에 가중치로 부여하고 안드로이드 악성 앱 패밀리 분류를 진행한다. 이를 통해 기존 동일한 투표값으로 진행하는 레이블 투표 기반 패밀리 분류의 정확도를 개선한다.
도 1을 참조하면, 본 발명에 따른 장치(10)는 APK 분석부(100), 모델 학습부(300), 패밀리 투표부(500) 및 패밀리 추출부(700)를 포함한다.
본 발명의 상기 장치(10) 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류를 수행하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 APK 분석부(100), 상기 모델 학습부(300), 상기 패밀리 투표부(500) 및 상기 패밀리 추출부(700)의 구성은 상기 장치(10)에서 실행되는 상기 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류를 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
상기 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 APK 분석부(100), 상기 모델 학습부(300), 상기 패밀리 투표부(500) 및 상기 패밀리 추출부(700)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
상기 장치(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 서버(server) 또는 엔진(engine) 형태일 수 있으며, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다.
상기 장치(10)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
본 발명의 안드로이드 악성 앱 특징정보를 통한 레이블 가중치 투표 기반 패밀리 분류는 기계학습을 통해 추출된 백신 패밀리 분류 정확도를 이용하여 백신 투표값에 부여하는 방식으로 구성된다.
기존 레이블을 이용한 안드로이드 악성 앱 패밀리 분류는 백신 패밀리 분류 정확도를 고려하지 않고 모든 백신들이 동일한 투표값 1로 투표를 진행하였다. 본 발명은 기존 레이블 투표 기반 패밀리 분류의 정확도를 개선하기 위하여 본 발명의 장치(10)는 다음과 같이 구성된다.
상기 APK 분석부(100)는 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집한다. 상기 APK 분석부(100)는 안드로이드 악성 앱으로부터 특징 정보를 수집하는 특징 정보 수집부(110) 및 레이블 정보 수집부(130)를 포함할 수 있다.
안드로이드 악성 앱 특징 정보는 악성코드 분석 사이트(예를 들어, VirusTotal)에서 제공된 API를 이용하여 정적 분석 결과 및 동적 분석 결과를 수집한다. 수집할 수 있는 정보는 안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 등과 같은 안드로이드 앱 관련된 정보가 포함될 수 있다.
상기 모델 학습부(300)는 수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습한다.
상기 모델 학습부(300)는 학습 데이터 생성부(310), 특징 정보 분석부(330) 및 모델 생성부(350)를 포함할 수 있다. 본 발명에서는 백신 기존 투표값에 가중치를 부여하기 위해 기계학습 모델이 필요하다.
상기 특징 정보 분석부(330)의 일 실시예에서, 기계학습에 사용되는 학습 특정 정보(feature)는 총 461개이다. 상기 학습 데이터 생성부(310)는 예를 들어, VirusTotal에서 수집된 특징 정보 중 22개를 학습 특징 정보(feature)로 사용하고 이는 도 2의 표와 같다.
이외에도 API 29버전을 기준으로 157개 퍼미션(permission) 사용 유무 및 282개 연산부호(opcode) 빈도수 등도 학습 특징 정보(feature)로 사용할 수 있다. 이러한 학습 데이터는 필요에 따라 변경하여 수집할 수 있다.
상기 학습 데이터 생성부(310)는 일 실시예에서, 기계학습 학습 데이터 셋을 만들기 위해 안드로이드 악성 앱 데이터 셋인 AMD 데이터 셋을 사용할 수 있다. 안드로이드 악성 앱 데이터 셋인 AMD는 안드로이드 악성 앱을 분류하고 패밀리를 정의한다.
안드로이드 악성 앱 데이터 셋인 AMD에서 제공되는 패밀리 분류 결과를 명시적인 정답으로 정하고 레이블을 이용하여 패밀리 분류하는 결과와 비교를 통해 패밀리별 정확하게 분류하는 백신들을 추출한다. 수집된 안드로이드 악성 앱 특징 정보 및 추출된 정확하게 패밀리 분류한 백신 결과를 학습데이터 셋으로 설정한다.
상기 모델 생성부(350)는 기계학습 모델을 생성하기 위해 예를 들어, 파이썬(Python)으로 구현된 기계학습 오픈소스 라이브러리 중 하나인 싸이킷-런(scikit-learn)을 사용할 수 있다.
상기 모델 학습부(300)는 랜덤 포레스트(Random Forest) 모델과 다중 레이블 분류하기 위한 OneVsRest를 사용하여 기계학습을 진행할 수 있다.
상기 패밀리 투표부(500)는 상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하고, 상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여한다.
상기 패밀리 투표부(500)는 투표부(510) 및 가중치 부여부(530)를 포함할 수 있다.
도 3은 도 1의 투표부에서의 패밀리 투표 과정을 보여주는 도면이다. 도 4는 본 발명에 따른 가중치 부여에 의한 패밀리 투표 과정을 상세하게 설명하기 위한 도면이다.
도 3을 참조하면, 상기 투표부(510)는 Marcos Sebastian 등이 제안하는 레이블을 이용하여 패밀리 분류하는 방법(AVCLASS)으로 진행할 수 있다. 해당 방법은 수집된 레이블 정보에서 중복된 레이블을 제거하고 레이블 중에서 접미어(suffix)를 제거한다.
이후, 나머지 남은 문자열을 토큰화하고 패밀리 이름으로 될 수 없는 문자열을 필터링하고, 같은 패밀리를 의미하는 문자열을 통일화 한 후 투표를 진행한다. 가장 많은 투표값을 가진 패밀리 후보를 패밀리로 결정한다. 이때, 종래 기술에서는 패밀리 후보들에 투표값을 1로 동일하게 부여하여 패밀리 분류의 정확도가 떨어졌다.
그러나, 본 발명에서는 백신 패밀리 분류하는 정확도를 고려하여 기계학습을 통해 추출된 백신별 패밀리 분류 정확도를 이용하여 투표과정에 가중치를 부여한다. 상기 분류 정확도는 백신별 패밀리 분류 정확도로서 확률 값이므로, 0 보다 크고 1 보다 작은 값을 갖는다.
상기 가중치 부여부(530)는 투표결과에 패밀리 후보들과 각각 대응하는 가중치를 부여한다. 상기 가중치는 패밀리 후보들의 분류 정확도에 따라 결정되므로, 기존 방법의 패밀리 분류 정확도를 개선할 수 있다.
본 발명에서 제안하는 레이블 가중치 투표 방법은 분류하려는 안드로이드 악성 앱의 특징정보를 수집하고, 이미 생성된 기계학습 모델을 이용하여 해당 안드로이드 악성 앱 패밀리를 분류하는 각 백신의 패밀리 분류 정확도를 추출한다.
추출된 백신의 패밀리 분류 정확도를 이용하여 투표값에 부여하고 투표수로 랭킹한 뒤, 가장 많은 투표값을 가진 패밀리 후보를 최종 패밀리로 결정한다.
상기 패밀리 추출부(700)는 상기 패밀리 후보들을 중 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하여 출력한다.
이에 따라, 본 발명은 기계학습을 활용하여 추출된 백신별 패밀리 분류 정확도를 이용한 가중치를 설정하고, 레이블을 이용한 패밀리 투표과정에 투표값에 부여하는 방법을 통해 새로운 패밀리인 안드로이드 악성 앱 분류의 정확도를 높일 수 있다.
도 5는 본 발명의 일 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법의 흐름도이다.
본 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은, 도 1의 장치(10)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 장치(10)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류를 수행하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
본 발명에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은 기계학습을 통해 추출된 백신 패밀리의 분류 정확도를 이용하여 레이블 투표과정에 가중치로 부여하고 안드로이드 악성 앱 패밀리 분류를 진행한다. 이를 통해 기존 동일한 투표값으로 진행하는 레이블 투표 기반 패밀리 분류의 정확도를 개선한다.
도 5를 참조하면, 본 실시예에 따른 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은, 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집한다(단계 S10).
안드로이드 악성 앱 특징 정보는 악성코드 분석 사이트(예를 들어, VirusTotal)에서 제공된 API를 이용하여 정적 분석 결과 및 동적 분석 결과를 수집한다. 수집할 수 있는 정보는 안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 등과 같은 안드로이드 앱 관련된 정보가 포함될 수 있다.
수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습한다(단계 S30).
본 발명의 안드로이드 악성 앱 특징정보를 통한 레이블 가중치 투표 기반 패밀리 분류는 기계학습을 통해 추출된 백신 패밀리 분류 정확도를 이용하여 백신 투표값에 부여한다. 본 발명에서는 백신 기존 투표값에 가중치를 부여하기 위해 기계학습 모델이 필요하다.
구체적으로, 기계학습에 사용되는 학습 특정 정보(feature)는 총 461개이다. 예를 들어, VirusTotal에서 수집된 특징 정보 중 22개를 학습 특징 정보(feature)로 사용하고 이는 도 2의 표와 같다.
이외에도 API 29버전을 기준으로 157개 퍼미션(permission) 사용 유무 및 282개 연산부호(opcode) 빈도수 등도 학습 특징 정보(feature)로 사용할 수 있다. 이러한 학습 데이터는 필요에 따라 변경하여 수집할 수 있다.
일 실시예에서, 기계학습 학습 데이터 셋을 만들기 위해 안드로이드 악성 앱 데이터 셋인 AMD 데이터 셋을 사용할 수 있다. 안드로이드 악성 앱 데이터 셋인 AMD는 안드로이드 악성 앱을 분류하고 패밀리를 정의한다.
안드로이드 악성 앱 데이터 셋인 AMD에서 제공되는 패밀리 분류 결과를 명시적인 정답으로 정하고 레이블을 이용하여 패밀리 분류하는 결과와 비교를 통해 패밀리별 정확하게 분류하는 백신들을 추출한다. 수집된 안드로이드 악성 앱 특징 정보 및 추출된 정확하게 패밀리 분류한 백신 결과를 학습데이터 셋으로 설정한다.
기계학습 모델을 생성하기 위해 예를 들어, 파이썬(Python)으로 구현된 기계학습 오픈소스 라이브러리 중 하나인 싸이킷-런(scikit-learn)을 사용할 수 있다. 예를 들어, 랜덤 포레스트(Random Forest) 모델과 다중 레이블 분류하기 위한 OneVsRest를 사용하여 기계학습을 진행할 수 있다.
상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출한다(단계 S50). 상기 분류 정확도는 백신별 패밀리 분류 정확도로서 확률 값이므로, 0 보다 크고 1 보다 작은 값을 갖는다.
본 발명에서는 백신 패밀리 분류하는 정확도를 고려하여 기계학습을 통해 추출된 백신별 패밀리 분류 정확도를 이용하여 투표과정에 가중치를 부여한다.
이를 위해, 본 발명에서 제안하는 레이블 가중치 투표 방법은 분류하려는 안드로이드 악성 앱의 특징정보를 수집하고, 이미 생성된 기계학습 모델을 이용하여 해당 안드로이드 악성 앱 패밀리를 분류하는 각 백신의 패밀리 분류 정확도를 추출한다.
상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여한다(단계 S70).
상기 패밀리 후보들의 투표는 Marcos Sebastian 등이 제안하는 레이블을 이용하여 패밀리 분류하는 방법(AVCLASS)으로 진행할 수 있다. 해당 방법은 먼저 수집된 레이블 정보에서 중복된 레이블을 제거하고 레이블 중에서 접미어(suffix)를 제거한다.
이후, 나머지 남은 문자열을 토큰화하고 패밀리 이름으로 될 수 없는 문자열을 필터링하고, 같은 패밀리를 의미하는 문자열을 통일화 한 후 투표를 진행한다. 가장 많은 투표값을 가진 패밀리 후보를 패밀리로 결정한다. 이때, 종래 기술에서는 패밀리 후보들에 투표값을 1로 동일하게 부여하여 패밀리 분류의 정확도가 떨어졌다.
그러나, 본 발명에서는 백신 패밀리 분류하는 정확도를 고려하여 기계학습을 통해 추출된 백신별 패밀리 분류 정확도를 이용하여 투표과정에 가중치를 부여한다. 이를 통해 기존 방법의 패밀리 분류 정확도를 개선할 수 있다.
상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정한다(단계 S90).
추출된 백신의 패밀리 분류 정확도를 이용하여 투표값에 부여하고 투표수로 랭킹한 뒤, 가장 많은 투표값을 가진 패밀리 후보를 최종 패밀리로 결정한다.
이에 따라, 본 발명은 기계학습을 활용하여 추출된 백신별 패밀리 분류 정확도를 이용한 가중치를 설정하고, 레이블을 이용한 패밀리 투표과정에 투표값에 부여하는 방법을 통해 새로운 패밀리인 안드로이드 악성 앱 분류의 정확도를 높일 수 있다.
이와 같은, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 악성코드 repository 기반 악성 앱 수집 및 분류 기술 연구 분야에서, 새로운 악성 앱에 대한 분류 정확도를 높이는 기술로서 정보통신 분야에서 유용하게 적용될 수 있다.
10: 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치
100: APK 분석부
110: 특징 정보 수집부
130: 레이블 정보 수집부
300: 모델 학습부
310: 학습 데이터 생성부
330: 특징 정보 분석부
350: 모델 생성부
500: 패밀리 투표부
510: 투표부
530: 가중치 부여부

Claims (10)

  1. 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치에서의 패밀리 분류방법으로서,
    안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계;
    수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습하는 단계;
    상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하는 단계;
    상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여하는 단계; 및
    상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하는 단계;를 포함하되,
    상기 최종 패밀리로 결정하는 단계는,
    수집된 레이블 정보에서 중복된 레이블을 제거하고 레이블 중에서 접미어(suffix)를 제거하는 단계;
    남은 문자열을 토큰화하고, 패밀리 이름으로 될 수 없는 문자열을 필터링하는 단계; 및
    같은 패밀리를 의미하는 문자열을 통일화 한 후 상기 가중치를 부여한 투표값으로 랭킹하는 단계를 포함하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법.
  2. 제1항에 있어서, 상기 기계학습 모델을 학습하는 단계는,
    안드로이드 악성 앱 데이터 셋의 패밀리 분류 결과를 명시적인 정답으로 정의하고 레이블을 이용하여 패밀리 분류하는 결과와 비교하여, 패밀리별 정확하게 분류되는 백신들을 추출하는 단계를 포함하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법.
  3. 삭제
  4. 제1항에 있어서, 상기 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계는,
    안드로이드 악성 앱의 API를 이용한 정적 분석 결과 및 동적 분석 결과를 수집하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법.
  5. 제4항에 있어서, 상기 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 단계는,
    안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 중 적어도 하나를 포함하는 안드로이드 앱 관련된 정보를 수집하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법.
  6. 제1항 내지 제2항 및 제4항 내지 제5항 중 어느 하나의 항에 기재된 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
  7. 안드로이드 악성 앱으로부터 특징 정보 및 레이블 정보를 수집하는 APK 분석부;
    수집된 안드로이드 악성 앱의 특징 정보와 안드로이드 악성 앱을 패밀리로 분류한 백신 결과를 학습데이터 셋으로 하는 기계학습 모델을 학습하는 모델 학습부;
    상기 기계학습 모델의 학습을 통해 각 백신별로 정확하게 패밀리를 분류하는 확률인 백신별 분류 정확도를 추출하고, 상기 안드로이드 악성 앱으로부터 수집된 레이블 정보를 이용하여 추출된 패밀리 후보들의 투표값에 상기 백신별 분류 정확도에 대응하는 가중치를 부여하는 패밀리 투표부; 및
    상기 패밀리 후보들을 상기 가중치를 부여한 투표값으로 랭킹하여 최대 투표값을 가진 패밀리 후보를 최종 패밀리로 결정하는 패밀리 추출부;를 포함하되,
    상기 패밀리 투표부는,
    수집된 레이블 정보에서 중복된 레이블을 제거한 후 레이블 중에서 접미어(suffix)를 제거하고, 남은 문자열을 토큰화하고, 패밀리 이름으로 될 수 없는 문자열을 필터링하고, 같은 패밀리를 의미하는 문자열을 통일화 한 후 상기 가중치를 부여한 투표값으로 랭킹하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치.
  8. 제7항에 있어서, 상기 모델 학습부는,
    안드로이드 악성 앱 데이터 셋의 패밀리 분류 결과를 명시적인 정답으로 정의하고 레이블을 이용하여 패밀리 분류하는 결과와 비교하여, 패밀리별 정확하게 분류되는 백신들을 추출하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치.
  9. 삭제
  10. 제7항에 있어서, 상기 APK 분석부는,
    안드로이드 악성 앱의 API를 이용한 정적 분석 결과 및 동적 분석 결과를 수집하고, 수집되는 안드로이드 앱 관련된 정보는 안드로이드 악성 앱으로 탐지되는 백신 이름 및 백신에서 제공된 레이블 정보와 퍼미션(permission), 인텐트(intent), 액티비티(activity), 서비스(service), 사이즈(size) 중 적어도 하나를 포함하는, 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 장치.
KR1020200014694A 2020-02-07 2020-02-07 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 KR102334228B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200014694A KR102334228B1 (ko) 2020-02-07 2020-02-07 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200014694A KR102334228B1 (ko) 2020-02-07 2020-02-07 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치

Publications (2)

Publication Number Publication Date
KR20210100844A KR20210100844A (ko) 2021-08-18
KR102334228B1 true KR102334228B1 (ko) 2021-12-02

Family

ID=77464781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200014694A KR102334228B1 (ko) 2020-02-07 2020-02-07 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치

Country Status (1)

Country Link
KR (1) KR102334228B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779579B (zh) * 2021-09-14 2024-04-09 西安电子科技大学 面向安卓应用的多模型联合检测***和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6803343B2 (ja) 2015-06-30 2020-12-23 エボニック オペレーションズ ゲーエムベーハー イソシアネート非含有反応性ポリウレタン組成物
KR102582580B1 (ko) * 2016-01-19 2023-09-26 삼성전자주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법
KR20180041974A (ko) 2016-10-17 2018-04-25 왕오상 선박용 부분화재 진압용 소화시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Alex Kantchelian et al, "Better Malware Ground Truth: Techniques for Weighting Anti-Virus Vendor Labels", Proceedings of the 8th ACM Workshop on Artificial Intelligence and Security(2015.)
Mederic Hurier et al, "Euphony: Harmonious Unification of Cacophonous Anti-Virus Vendor Labels for Android Malware", IEEE/ACM 14th International Conference on Mining Software Repositories(2017.)

Also Published As

Publication number Publication date
KR20210100844A (ko) 2021-08-18

Similar Documents

Publication Publication Date Title
Jerlin et al. A new malware detection system using machine learning techniques for API call sequences
CN108920954B (zh) 一种恶意代码自动化检测平台及方法
CN107169351A (zh) 结合动态行为特征的Android未知恶意软件检测方法
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
CN113821804B (zh) 一种面向第三方组件及其安全风险的跨架构自动化检测方法与***
US20220179955A1 (en) Mobile malicious code classification method based on feature selection and recording medium and device for performing the same
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
CN109740347A (zh) 一种针对智能设备固件的脆弱哈希函数的识别与破解方法
CN108509561B (zh) 基于机器学习的岗位招聘数据筛选方法、***及存储介质
CN109063478A (zh) 可移植的可执行文件的病毒检测方法、装置、设备及介质
Domin et al. Improving plagiarism detection in coding assignments by dynamic removal of common ground
CN109165564B (zh) 电子相册、生成方法、***、存储介质及计算机设备
KR102334228B1 (ko) 안드로이드 악성 앱 레이블 가중치 투표 기반 패밀리 분류 방법, 이를 수행하기 위한 기록 매체 및 장치
US11947572B2 (en) Method and system for clustering executable files
KR102031592B1 (ko) 악성코드를 탐지하기 위한 방법 및 장치
CN111444502B (zh) 面向种群的安卓恶意软件检测模型库方法
CN116541887B (zh) 一种大数据平台数据安全保护方法
CN105843890B (zh) 基于知识库面向大数据及普通数据的数据采集方法和***
Banik et al. Android Malware Detection by Correlated Real Permission Couples Using FP Growth Algorithm and Neural Networks
CN116821903A (zh) 检测规则确定及恶意二进制文件检测方法、设备及介质
CN110990834A (zh) 一种android恶意软件的静态检测方法、***及介质
KR102434899B1 (ko) 악성코드 탐지모델 학습방법 및 악성코드 탐지방법
CN105868271B (zh) 一种姓名统计方法及装置
CN114090650A (zh) 一种样本数据识别方法、装置、电子设备及存储介质
KR102427767B1 (ko) 구현 특징에 기반한 모바일 악성 애플리케이션 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치

Legal Events

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