KR102058966B1 - 악성 어플리케이션 탐지 방법 및 그 장치 - Google Patents

악성 어플리케이션 탐지 방법 및 그 장치 Download PDF

Info

Publication number
KR102058966B1
KR102058966B1 KR1020180022851A KR20180022851A KR102058966B1 KR 102058966 B1 KR102058966 B1 KR 102058966B1 KR 1020180022851 A KR1020180022851 A KR 1020180022851A KR 20180022851 A KR20180022851 A KR 20180022851A KR 102058966 B1 KR102058966 B1 KR 102058966B1
Authority
KR
South Korea
Prior art keywords
characteristic information
file
apk
apk file
prediction model
Prior art date
Application number
KR1020180022851A
Other languages
English (en)
Other versions
KR20190102451A (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 KR1020180022851A priority Critical patent/KR102058966B1/ko
Publication of KR20190102451A publication Critical patent/KR20190102451A/ko
Application granted granted Critical
Publication of KR102058966B1 publication Critical patent/KR102058966B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

네트워크를 통해 배포될 수 있는 어플리케이션이 악성 어플리케이션인지 여부를 탐지할 수 있는 방법 및 장치가 제공 된다. 본 발명의 일 실시예에 따른 악성 어플리케이션 예측 모델 생성 방법은, 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계와, 상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계 및 상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계를 포함한다.

Description

악성 어플리케이션 탐지 방법 및 그 장치{METHOD FOR DETECTING MALICIOUS APPLICATION AND APPARATUS THEREOF}
본 발명은 컴퓨팅 장치에서 이용되는 어플리케이션을 분석하는 기술에 관한 것이다. 보다 자세하게는, 네트워크를 통해 배포될 수 있는 어플리케이션이 악성 어플리케이션인지 여부를 탐지할 수 있는 방법 및 장치에 관한 것이다.
본 영역의 기재는 본 발명의 여러 양태들에 대한 보다 나은 이해를 용이하게 하기 위해 배경 지식을 제공하기 위한 것이며, 종래 기술의 인정으로 간주되지 않아야 한다.
네트워크 환경과 서비스의 발달로 네트워크를 통해 수많은 어플리케이션들이 배포되고 있다. 예를 들어, Android™, iOS™ 등의 운영체제에서는 개발자들이 플랫폼과 서비스 인프라를 기반으로 서비스를 개발하고 공개하여 사람들이 이용할 수 있도록 하는 어플리케이션 마켓을 통해 어플리케이션을 배포한다. 또는 웹 페이지 등을 통해 어플리케이션 설치 파일을 전송함으로써 어플리케이션이 배포되기도 한다. 수 많은 어플리케이션들이 네트워크를 통해 배포되면서, 사용자에게 피해를 입히는 악성 어플리케이션이 배포되기도 한다.
Android™ 운영체제 시스템 상에 어플리케이션 소프트웨어를 배포 및 설치하기 위해 APK(Android Application PacKage)라 불리는 파일 포맷이 이용된다. 즉, 어플리케이션 소프트웨어가 설치 및 실행파일인 APK 파일을 통해서 배포될 수 있다. APK 파일을 작성하기 위해, 프로그램이 먼저 중간 언어로 컴파일된 다음, 그 부분들이 압축된 아카이브 파일(ZIP 포맷)으로 패키징된다. 아카이브 파일은 단일의 DEX(Dalvik EXecutable code) 파일(classes.dex), 여러 리소스들(예를 들어, 이미지 파일들) 및 APK 파일의 매니페스트에 전체 프로그램 코드를 포함한다. 아카이브 파일은 2개의 추가 파일들: CERT.SF 및 CERT.RSA를 포함한다. CERT.SF는 모든 다른 아카이브 파일들의 암호 해시들을 포함하고; CERT.RSA는 서명 검증을 위해 이용되는 공개 키를 포함한다. CERT.SF 만이 RSA 개인 키로 서명된다. CERT.SF에 대한 RSA 서명은 설치 동안에 APK 파일의 전체 컨텐츠의 검증을 실행한다. 실제로, CERT.SF 파일에 언급된 모든 파일들은 CERT.SF가 그들의 해시들을 포함하여 간접적으로 서명된다. 파일 다이제스트가 CERT.SF 파일에서의 해시와 매칭하지 않음을 소프트웨어가 검출하므로, 설치전에 임의의 파일을 변경하는 것은 오류를 야기시킨다.
DEX 파일 헤더는 또한 CEX 파일의 컨텐츠에 대한 글로벌 체크섬 등을 포함한다. 어플리케이션의 첫번째 실행시, 시스템은 실행전 시간에만 DEX 해석된 바이트 코드를 ODEX(Optimized DEX)로 불리는 최적화된 머신 명령들 시퀀스로 수정하는 옵티마이저를 이용한다. 옵티마이저는 또한 체크섬을 업데이트한다. 이후, ODEX 파일은 장래의 이용을 위해 파일 시스템 내에서의 특정 레포지토리에 저장될 수 있다.
본 발명이 해결하고자 하는 기술적 과제는, 기계 학습을 이용하여 악성 어플리케이션을 탐지할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 악성 어플리케이션 예측 모델 생성 방법은, 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계; 상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계; 및 상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계;를 포함할 수 있다.
또한, 다른 몇몇 실시 예에 따르면, 상기 제1 특성 정보는 API(Application Programming Interface) 특성 정보 및 문자열 특성 정보를 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 제1 특성 정보를 추출하는 단계는, 상기 학습용 APK 파일로부터 DEX(Dalvik Executable Format) 파일을 획득하는 단계와, 상기 DEX 파일의 문자열 테이블에 대해 미리 정해진 문자열의 포함 여부를 확인하는 단계와, 상기 미리 정해진 문자열의 포함 여부에 따라서 상기 문자열 특성 정보를 생성하는 단계와, 상기 DEX 파일을 컴파일한 어셈블리 코드에 포함된 조작 부호(OP code)를 확인하는 단계 및 상기 조작 부호에 따라서 상기 API 특성 정보를 생성하는 단계를 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 미리 정해진 문자열의 포함 여부를 확인하는 단계는, 상기 DEX 파일의 헤더로부터 상기 문자열 테이블의 위치를 참조하는 단계를 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 조작 부호를 확인하는 단계는, 상기 DEX 파일을 컴파일하여 상기 어셈블리 코드를 획득하는 단계와, 상기 어셈블리 코드 내에서 호출 명령어의 위치를 확인하는 단계와, 상기 호출 명령어의 위치를 이용하여 상기 조작 부호를 확인하는 단계를 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 어플리케이션 특성에 따라 그룹으로 분류된 검증용 APK 파일을 획득하는 단계; 상기 검증용 APK 파일로부터 제2 특성 정보를 추출하는 단계; 상기 검증용 APK 파일의 제2 특성 정보를 상기 악성 어플리케이션 예측 모델에 입력하여 상기 검증용 APK 파일을 분류하는 단계; 및 상기 분류 결과와 상기 검증용 APK 파일의 상기 그룹을 비교하여 상기 악성 어플리케이션 예측 모델에 대한 검증 결과를 출력하는 단계;를 더 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 그룹은 정상 그룹, 랜섬웨어(ransomware) 그룹, 애드웨어(adware) 그룹, 스파이웨어(spyware) 그룹, 봇넷(botnet) 그룹, 스미싱(smishing) 그룹, 및 RAT(Remote Access Trojan) 그룹을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 악성 어플리케이션 예측 모델을 생성하는 단계는, 복수의 학습 알고리즘을 각각 이용하여 상기 제1 특성 정보로부터 복수의 예측 모델을 생성하는 단계를 포함하고, 상기 악성 어플리케이션 예측 모델은, 분석 대상 APK 파일의 제3 특성 정보가 입력되면, 상기 제3 특성 정보를 상기 복수의 예측 모델 각각에 입력하고, 상기 복수의 예측 모델 각각의 출력값에 가중치를 부여한 값들을 합산한 합계값을 산출하고, 상기 합계값이 기준 값 이상인 경우 상기 분석 대상 APK 파일을 악성으로 분류할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 복수의 학습 알고리즘은 의사결정 트리(Decision Tree) 알고리즘, 랜덤 포레스트(Random Forest) 알고리즘, 서포트 벡터 머신(Support Vector Machine; SVM), 및 신경망(Neural Network) 알고리즘을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 악성 어플리케이션 탐지 방법은, 분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 단계; 상기 분석 대상 APK 파일로부터 제1 특성 정보를 추출하는 단계; 학습용 APK 파일의 제2 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제1 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 단계; 및 상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 단계;를 포함할 수 있다.
또한, 다른 몇몇 실시 예에 따르면, 상기 학습용 APK 파일을 획득하는 단계는, 미리 정해진 마켓 서버에 업로드된 제1 APK 파일을 획득하는 단계 및 URL(Uniform Resource Locator)을 결정하고, 상기 URL을 이용하여 제2 APK 파일을 추출하는 단계를 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 URL에 기초하여 제2 APK 파일을 추출하는 단계는, 제1 웹 페이지를 분석하여 제1 URL을 추출하는 단계와, 상기 제1 URL을 이용하여 상기 제2 APK 파일을 추출하는 단계 및 상기 제1 URL에 상응하는 제2 웹페이지를 분석하여 제2 URL을 추출하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 컴퓨팅 장치는, 프로세서; 및 상기 프로세서에 의하여 실행되는 복수의 인스트럭션을 저장하는 메모리를 포함하되, 상기 복수의 인스트럭션은 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 인스트럭션과, 상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 인스트럭션 및 상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 인스트럭션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 컴퓨팅 장치는, 프로세서; 및 상기 프로세서에 의하여 실행되는 복수의 인스트럭션을 저장하는 메모리를 포함하되, 상기 복수의 인스트럭션은 분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 인스트럭션과, 상기 분석 대상 APK 파일로부터 제1 특성 정보를 추출하는 인스트럭션과, 학습용 APK 파일의 제2 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제1 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 인스트럭션 및 상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 인스트럭션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 비일시적(non-transitory) 컴퓨터 판독 가능한 매체에 기록된 컴퓨터 프로그램은, 상기 컴퓨터 프로그램의 명령어들이 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에, 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계; 상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계; 상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계; 분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 단계; 상기 분석 대상 APK 파일로부터 제2 특성 정보를 추출하는 단계; 학습용 APK 파일의 제1 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제2 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 단계; 및 상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 단계;를 포함하는 동작이 수행되는 것을 특징으로 할 수 있다.
도 1은 몇몇 실시 예에 따른 악성 어플리케이션을 탐지하는 컴퓨팅 장치의 구조를 도시한 도면이다.
도 2는 다른 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하는 시스템의 구조를 도시한 도면이다.
도 3은 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하기 위한 악성 어플리케이션 예측 모델을 생성하는 프로세스를 도시한 도면이다.
도 4는 몇몇 실시 예에 따라 어플리케이션을 분류한 그룹을 도시한 도면이다.
도 5는 몇몇 실시 예에 따라 특성 정보를 추출하는 프로세스를 도시한 순서도이다.
도 6은 몇몇 실시 예에 따라 특성 정보를 추출하는 방법을 설명하기 위한 예시를 도시한 도면이다.
도 7은 몇몇 실시 예에 따라 API 특성 정보를 추출하는 방법을 설명하기 위한 예시를 도시한 도면이다.
도 8은 몇몇 실시 예에 따라 추출되는 특성 정보의 예시를 도시한 도면이다.
도 9는 몇몇 실시 예에 따라 악성 어플리케이션 예측 모델을 검증하는 프로세스를 도시한 도면이다.
도 10은 몇몇 실시 예에 따른 검증 결과의 예시를 도시한 도면이다.
도 11은 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하는 프로세스를 도시한 도면이다.
도 12는 다른 몇몇 실시 예에 따른 악성 어플리케이션 탐지 장치의 구조를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 몇몇 실시 예에 따른 악성 어플리케이션을 탐지하는 컴퓨팅 장치의 구조를 도시한 도면이다.
몇몇 실시 예에 따른 컴퓨팅 장치(100)는 트레이닝 장치(1) 및 탐지 장치(2)를 포함할 수 있다. 트레이닝 장치(1) 및 탐지 장치(2)는 컴퓨팅 장치(100)의 프로세서 및 프로세서에 의해 실행되는 복수의 인스트럭션을 저장하는 메모리를 이용하여 구현될 수 있다. 여기서, 복수의 인스트럭션은 실행됨으로써 컴퓨팅 장치(100)가 동작을 수행하도록 하는 것을 의미한다. 여기서, 프로세서는 하드웨어 프로세서일 수 있다.
몇몇 실시 예에 따른 트레이닝 장치(1)는 학습용 APK 파일(11)에 대한 기계 학습을 수행하여 악성 어플리케이션 예측 모델(120)을 생성할 수 있다. 여기서 학습용 APK 파일(11)은 그 특성에 따라 그룹으로 분류된 것일 수 있다. 즉, 학습용 APK 파일(11)은 그 속하는 그룹이 라벨링(labeling)된 데이터일 수 있다. 그룹은, 예를 들어, APK 파일이 정상 어플리케이션에 대한 것인지, 악성 어플리케이션에 대한 것인지 여부(또는, APK 파일이 악성 어플리케이션에 대한 것이라면 어떤 종류의 악성 어플리케이션에 대한 것인지)에 따라 APK를 분류하는 기준일 수 있다.
먼저, 트레이닝 장치(1)는 학습용 APK 파일(11)에 대한 특성 추출(Feature Extraction)(101)을 수행할 수 있다. 이후, 트레이닝 장치(1)는 특성 추출(101)을 수행한 결과로 획득된 특성 정보에 대한 학습(110)을 수행할 수 있다. 학습(110)을 수행한 결과 트레이닝 장치(1)는 악성 어플리케이션 예측 모델(120)을 생성할 수 있다. 악성 어플리케이션 예측 모델(120)은 APK 파일의 특성 정보를 입력하면 APK 파일이 속하는 그룹에 대한 예측 결과를 출력하는 기계 학습 모델일 수 있다.
몇몇 실시 예에 따르면, 트레이닝 장치(1)는 생성된 악성 어플리케이션 예측 모델(120)에 대한 검증을 수행할 수 있다. 악성 어플리케이션 예측 모델(120)에 대한 검증을 수행하기 위해, 트레이닝 장치(1)는 검증용 APK 파일(12)로부터 특성 추출(102)을 수행할 수 있다. 여기서, 검증용 APK 파일(12)은 그 특성에 따라 그룹으로 분류된 것일 수 있다. 트레이닝 장치(1)는 특성에 따라 그룹으로 분류된 APK 파일을 학습용 APK 파일(11)과 검증용 APK 파일(12)로 분류하여 학습(110) 및 검증에 사용할 데이터를 획득할 수 있다. 몇몇 실시 예에 따르면, 특성 추출(102)은 특성 추출(101)과 같은 방법으로 수행될 수 있다. 또는, 특성 추출(102)은 특성 추출(101)과 동일한 모듈을 이용하여 수행될 수도 있다.
악성 어플리케이션 예측 모델(120)에 대한 검증을 수행하기 위해, 특성 추출(102)을 수행한 결과 획득된 특성 정보를 악성 어플리케이션 예측 모델(120)에 입력할 수 있다. 특성 정보를 입력 받은 악성 어플리케이션 예측 모델(120)은 검증용 APK 파일(12)이 속하는 그룹에 대한 예측 결과를 출력할 수 있다. 트레이닝 장치(1)는 예측 결과와 검증용 APK 파일(12)이 속하는 그룹을 비교할 수 있다. 검증용 APK 파일(12)은 속하는 그룹이 지정되어 있으므로(즉, 라벨링된 데이터이므로), 트레이닝 장치(1)는 예측 결과가 옳았는지 여부를 나타내는 검증 결과(130)를 생성할 수 있다.
몇몇 실시 예에 따르면, 컴퓨팅 장치(100)는 검증 결과(130)를 디스플레이를 통해 출력할 수 있다. 또는, 다른 몇몇 실시 예에 따르면, 컴퓨팅 장치(100)는 검증 결과(130)가 미리 설정된 값 이상의 정탐율을 지시하지 않는 경우, 학습(110)을 추가로 수행할 수도 있다.
몇몇 실시 예에 따르면, 탐지 장치(2)는 분석 대상 APK 파일(13)에 대한 특성 추출(103)을 수행할 수 있다. 몇몇 실시 예에 따르면, 특성 추출(103)은 특성 추출(101)과 같은 방법으로 수행될 수 있다. 또는, 특성 추출(103)은 특성 추출(101)과 동일한 모듈을 이용하여 수행될 수도 있다. 탐지 장치(2)는 특성 추출(103)을 수행한 결과 획득된 특성 정보를 악성 어플리케이션 예측 모델(120)에 입력하여 판정 결과(140)를 출력할 수 있다. 판정 결과(140)는 분석 대상 APK 파일(13)이 속하는 그룹을 예측한 결과를 포함할 수 있다.
도 2는 다른 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하는 시스템의 구조를 도시한 도면이다.
다른 몇몇 실시 예에 따르면, 트레이닝 장치(1)와 탐지 장치(2)는 별도의 컴퓨팅 장치로 구성될 수 있다. 도 2를 참조하면, 트레이닝 장치(1)는 학습용 APK 파일(11)에 대한 학습을 수행하여 악성 어플리케이션 예측 모델(120)을 생성할 수 있다. 트레이닝 장치(1)는 생성된 악성 어플리케이션 예측 모델(120)을 데이터베이스(200)에 업로드할 수 있다.
이후, 다수의 탐지 장치(2)에 데이터베이스(200)로부터 악성 어플리케이션 예측 모델(120)을 다운로드하여 분석 대상 APK 파일(13)의 악성 여부를 판단할 수도 있다.
도 3은 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하기 위한 악성 어플리케이션 예측 모델을 생성하는 프로세스를 도시한 도면이다.
먼저, 단계 S310에서 트레이닝 장치(1)는 APK 파일을 획득할 수 있다. 여기서, 트레이닝 장치(1)는 로컬에 위치한 APK 파일을 선택 받거나, 네트워크를 통해 APK 파일을 수신할 수 있다. 다만, 이에 한정되지 아니한다. 또한, APK 파일은 그 특성에 따라 그룹으로 분류된 것일 수 있다. 예를 들어, 도 4를 참조하면, APK 파일은 정상, 랜섬웨어, 애드웨어, 스파이웨어, 봇넷, 스미싱, 및 RAT의 7가지 그룹 중 하나로 분류될 수 있다. 다만, 이에 한정되지 아니하며, APK 파일을 분류하는 그룹은 실시 예에 따라서 변경될 수 있다.
이후, 단계 S320에서 트레이닝 장치(1)는 획득된 APK 파일로부터 특성 정보를 추출할 수 있다. 여기서, 트레이닝 장치(1)는 특성 정보를 추출하기 위하여, APK 파일이 미리 정해진 특성 리스트에 포함된 특성을 포함하는지 여부를 결정할 수 있다.
이후, 단계 S330에서, 트레이닝 장치(1)는 추출한 특성 정보를 학습하여 악성 어플리케이션 예측 모델(120)을 생성할 수 있다. 몇몇 실시 예에 따르면, 트레이닝 장치(1)는 하나 이상의 기계 학습 알고리즘을 이용하여 특성 정보를 학습할 수 있다. 복수의 기계 학습 알고리즘을 이용하여 특성 정보를 학습한 경우, 악성 어플리케이션 예측 모델(120)은 각각의 기계 학습 알고리즘을 이용하여 생성된 복수의 예측 모델을 포함할 수 있다. 또한, 악성 어플리케이션 예측 모델(120)은 복수의 예측 모델의 출력값들 각각에 가중치를 부여하고, 가중치가 부여된 출력값들의 합산 결과에 따른 예측 결과를 출력할 수 있다. 예를 들어, 악성 어플리케이션 예측 모델(120)은 합산 결과가 미리 정해진 기준 값 이상인 경우 APK 파일이 악성 어플리케이션에 대한 것인 것으로 판단하는 결과를 출력할 수 있다.
일 실시 예에 따르면, 트레이닝 장치(1)는 의사결정 나무(Decision Tree; DT), 랜덤 포레스트(Random Forest; RF), 서포트 벡터 머신(SupportVector Machine; SV) 및 신경망(Neural Network; NN) 알고리즘을 이용하여 특성 정보를 학습할 수 있다.
의사결정 나무는 데이터를 학습하여 예측(Prediction)과 분류(Classification)를 위한 트리 구조를 구성하는 알고리즘이다. 트리 구조를 구성할 때, 트레이닝 장치(1)는 엔트로피(Entropy)와 정보 이득(Information Gain)을 이용하여 노드를 분기한다. 엔트로피는 데이터를 속성에 따라 나눌 때 주어진 데이터 집합의 혼잡도를 의미한다. 즉, 주어진 데이터 집합이 서로 다른 종류의 데이터로 구성되어 있으면 엔트로피가 높고, 같은 종류의 데이터로 구성되어 있으면 엔트로피가 낮다. 정보 이득은 임의의 특성을 선택했을 때, 데이터를 올바르게 구분하는 정도를 의미한다. 정보 이득은 주어진 상황의 엔트로피와 임의의 상황의 엔트로피의 차로 구해질 수 있다. 정보 이득값이 클수록 데이터에 대한 변별력이 좋은 것을 의미한다.
랜덤 포레스트는 분류와 회귀(Regression)에 사용될 수 있다. 랜덤 포레스트는 N개의 의사결정 나무로 구성된다. 랜덤 포레스트 알고리즘을 이용하여 학습된 모델에 따라 예측을 할 경우, N개의 알고리즘에 따른 모델에 대한 투표(vote)나 평균값을 이용하여 결과를 도출할 수 있다. 또한, 의사결정 나무의 과적합(overfitting) 문제를 해결하기 위해서 Bagging(Bootstrap aggregating) 알고리즘을 사용한다. Bagging 알고리즘은 주어진 데이터에 대해서 부트스트랩 자료를 생성하고, 각 부트스트랩 자료를 모델링한 후 결합(예를 들어, 투표 또는 평균값 산출)하여 최종 예측 모델을 산출한다.
서포트 벡터 머신은 대표적인 이진 분류기로 분류와 회귀에 이용된다. 서포트 벡터 머신은 주어진 많은 데이터들을 가능한 멀리하여 두 개의 집단으로 분리시키는 초평면(Hyperplane)을 찾는다. 초평면에 가장 가까운 지점을 서포트 벡터라 한다. 만약 데이터 집합이 비선형 데이터인 경우 커널(kernel) 트릭을 사용하여 데이터를 분류할 수 있다. 여기서, 커널은 선형 커널, 가우시안 커널, 또는 기타 커널일 수 있다.
신경망은 사람의 뇌를 모방하여 만든 알고리즘을 이용하여 데이터를 학습하는 알고리즘이다. 신경망은 뉴런(neuron), 계층(layer), 가중치(weight) 및 바이어스(bias)로 구성된다.
뉴런은 계산을 수행하기 위한 기본 요소이며, 계층은 뉴런의 집합을 의미한다.
계층은 입력 계층, 출력 계층 및 숨겨진 계층으로 나뉠 수 있다. 입력 계층은 신경망에서 특징 정보를 입력 받아 저장할 수 있는 계층이다. 특성 정보의 수와 입력 계층의 뉴런의 수가 동일하도록 입력 계층이 구성될 수 있다. 출력 계층은 분류 결과를 가지는 계층이다. 출력 계층의 뉴런의 수와 분류하고자 하는 클래스의 개수가 동일하도록 출력 계층이 구성될 수 있다. 숨겨진 계층은 신경망에서 출력 계층에 도달하기 위한 중간계층을 의미한다.
가중치 및 바이어스는 신경망의 계산에 필요한 요소이며, 가중치는 곱셈 연산에 이용되고, 바이어스는 덧셈 연산에 이용될 수 있다.
도 5는 몇몇 실시 예에 따라 특성 정보를 추출하는 프로세스를 도시한 순서도이다.
먼저, 단계 S510에서, 트레이닝 장치(1)는 특성 정보를 추출하기 위해 DEX 파일에 접근할 수 있다. DEX 파일은 APK 파일에 포함되어 있을 수 있다. DEX 파일은 헤더, 데이터, 문자열(string) 테이블, 타입(type) 테이블, 프로토(proto) 테이블, 필드(field) 테이블, 메소드(method) 테이블, 및 클래스(class) 테이블 등의 정보를 포함할 수 있다.
이후, 단계 S521에서, 트레이닝 장치(1)는 특성 리스트에 포함된 문자열이 DEX 파일의 문자열 테이블에 포함되어 있는지 여부를 확인할 수 있다. 트레이닝 장치(1)는 DEX 파일의 문자열 테이블에 접근하기 위하여 DEX 파일의 헤더를 참조할 수 있다. 이후, 단계 S522에서 트레이닝 장치(1)는 미리 정해진 특성 리스트에 포함된 문자열이 문자열 테이블에 포함되어 있는지 여부에 따라서 문자열 특성 정보를 생성할 수 있다. 예를 들어, 특성 리스트가 "NPKI, shutdown"이며, 문자열 테이블에 "NPKI"라는 문자열이 포함되어 있고, "shutdown"이라는 문자열이 포함되어 있지 않은 경우, 트레이닝 장치(1)는 "1, 0"을 특성 정보로서 생성할 수 있다.
또한, 트레이닝 장치(1)는 DEX 파일의 데이터에 직접 접근하여 API 특성 정보를 생성할 수 있다. API 특성 정보를 생성하기 위해, 트레이닝 장치(1)는 단계 S531에서 DEX 파일을 컴파일할 수 있다. 이후, 단계 S532에서 트레이닝 장치(1)는 DEX 파일을 컴파일하여 얻어진 어셈블리 코드에 포함된 조작 부호(OP code)를 확인할 수 있다. 즉, APK 파일에서 사용하는 메소드(method)에 대한 정보를 추출할 수 있다. 여기서, 어셈블리 코드는 중간 언어(intermediate language)로 구성된 코드를 의미한다. 트레이닝 장치(1)는 미리 정해진 특성 리스트에 포함된 조작 부호가 어셈블리 코드에 포함되어 있는지 여부에 따라서, 단계 S533에서 API 특성 정보를 생성할 수 있다. 예를 들어, 특성 리스트가 "delete, query,get, getColumbIndex"이며, DEX 파일이 delete, query,get를 조작 부호로 포함하고, getColumbIndex를 포함하지 않는 경우, 트레이닝 장치(1)는 API 특성 정보로서 "1, 1, 1, 0"을 생성할 수 있다.
이후, 단계 S540에서 트레이닝 장치(1)는 문자열 특성 정보와 API 특성 정보를 포함하는 특성 정보를 획득할 수 있다.
도 6은 몇몇 실시 예에 따라 특성 정보를 추출하는 방법을 설명하기 위한 예시를 도시한 도면이다.
도 6을 참조하면, APK 파일(600)은 DEX 파일(610)을 포함할 수 있다. 트레이닝 장치(1)는 DEX 파일(610)의 헤더(611)를 참조하여 문자열 테이블(612)의 위치를 확인할 수 있다. 트레이닝 장치(1)는 헤더(611)를 통해 문자열 테이블(612)에 접근하여 문자열 테이블(612)에 포함된 문자열들을 확인할 수 있다. 트레이닝 장치(1)는 문자열 테이블(612)에 특성 리스트에 포함된 문자열이 포함되어 있는지 여부에 따라서 문자열 특성(621)을 추출할 수 있다.
또한, 트레이닝 장치(1)는 메소드 테이블(613)에 접근하지 않고 DEX 파일의 데이터(614)에 직접 접근하여 API 특성(622)을 추출할 수 있다. 트레이닝 장치(1)는 DEX 파일의 데이터에 포함되어 있는 조작 부호(630)를 확인할 수 있다. 트레이닝 장치(1)는 확인된 조작 부호(630) 중에서 특성 리스트에 포함된 조작 부호가 있는지 여부에 따라서 API 특성 정보(622)를 생성할 수 있다.
도 7은 몇몇 실시 예에 따라 API 특성 정보를 추출하는 방법을 설명하기 위한 예시를 도시한 도면이다.
도 7을 참조하면, 트레이닝 장치(1)는 데이터(614)를 컴파일하여 어셈블리 코드(700)를 획득할 수 있다. 이후, 트레이닝 장치(1)는 어셈블리 코드(700) 내에서 호출 명령어(710)(예를 들어, invoke 등)의 위치를 탐색할 수 있다. 트레이닝 장치(1)는 호출 명령어(710) 이후에 위치한 코드를 조작 부호(720)로서 획득할 수 있다.
트레이닝 장치(1)는 획득된 조작 부호(720)에 상응하는 조작 부호가 특성 리스트에 포함되어 있는 경우, 해당 조작 부호에 상응하는 특성의 값을 1로 결정할 수 있다. 반대로, 트레이닝 장치(1)는 특성 리스트에 포함된 특성에 상응하는 조작 부호가 어셈블리 코드(700)에 포함되어 있지 않는 경우, 해당 조작 부호에 상응하는 특성의 값을 0으로 결정할 수 있다.
도 8은 몇몇 실시 예에 따라 추출되는 특성 정보의 예시를 도시한 도면이다.
도 8을 참조하면, 트레이닝 장치(1)는 미리 정해진 특성 리스트(810)에 포함된 특성을 APK 파일이 포함하는 경우(예를 들어, DEX 파일 내에 미리 정해진 문자열이나 조작 부호가 포함된 경우), 그 특성에 상응하는 특성 값을 1로 가지는 특성 정보(820)를 추출할 수 있다. 반대로, 미리 정해진 특성 리스트(810)에 포함된 특성을 APK 파일이 포함하지 않는 경우, 특성 정보(820)의 그 특성에 상응하는 특성 값을 0으로 가질 수 있다.
또한, 특성 정보(820)는 그 특성 정보를 추출한 어플리케이션을 식별하기 위하여, 분석 대상 어플리케이션 내지 분석 대상 APK 파일의 해시 값과 매칭하여 저장될 수 있다.
도 9는 몇몇 실시 예에 따라 악성 어플리케이션 예측 모델을 검증하는 프로세스를 도시한 도면이다.
트레이닝 장치(1)는 트레이닝 장치(1)가 생성한 악성 어플리케이션 예측 모델(120)을 검증할 수 있다. 단계 S910에서, 트레이닝 장치(1)는 악성 어플리케이션 예측 모델(120)을 검증하기 위한 APK 파일을 획득할 수 있다. 몇몇 실시 예에 따르면, 단계 S910에서 획득하는 APK 파일은 그 특성에 따라 그 APK 파일에 상응하는 어플리케이션이 속하는 그룹이 라벨링된 데이터일 수 있다. 다른 몇몇 실시 예에 따르면, 트레이닝 장치(1)는 미리 정해진 기준에 따라서 라벨링된 APK 파일을 학습용 APK 파일과 검증용 APK 파일로 분류하여 악성 어플리케이션 예측 모델(120)을 검증하기 위한 APK 파일을 획득할 수도 있다. 여기서 미리 정해진 기준은 학습용 APK 파일 양과 검증용 APK 파일의 양의 비율일 수 있다.
이후 단계 S920에서, 트레이닝 장치(1)는 획득된 APK 파일로부터 특성 정보를 추출할 수 있다. 몇몇 실시 예에 따르면, 트레이닝 장치(1)는 도 5에 도시된 프로세스를 단계 S910에서 획득된 APK 파일에 대해 실행하여 특성 정보를 추출할 수 있다.
이후 단계 S930에서, 트레이닝 장치(1)는 추출된 특성 정보를 악성 어플리케이션 예측 모델(120)에 입력할 수 있다. 특성 정보를 입력 받은 악성 어플리케이션 예측 모델(120)은 APK 파일의 분류 결과, 즉 APK 파일에 상응하는 어플리케이션이 속할 것으로 예측되는 그룹을 출력한다.
이후, 단계 S940에서, 트레이닝 장치(1)는 검증 결과를 생성할 수 있다. 단계 S910 에서 획득된 APK 파일은 그에 상응하는 그룹이 라벨링된 데이터이므로, 트레이닝 장치(1)는 악성 어플리케이션 예측 모델(120)이 예측한 그룹이 올바른 예측인지 여부를 판단할 수 있다. 즉, 단계 S940에서, 트레이닝 장치(1)는 APK 파일의 분류 결과와 실제 APK 파일이 속하는 그룹(APK 파일에 상응하는 어플리케이션이 속하는 그룹)을 비교하여 검증 결과를 생성할 수 있다.
도 10은 몇몇 실시 예에 따른 검증 결과의 예시를 도시한 도면이다.
도 10을 참조하면, 몇몇 실시 예에 따른 검증 결과는 정탐율, 과탐율 및 미탐율을 포함할 수 있다. 여기서, 정탐율은 악성 어플리케이션 예측 모델(120)이 예측한 결과를 검증한 결과 악성 어플리케이션 예측 모델(120)이 어플리케이션이 속하는 그룹을 올바르게 분류한 경우를 카운트한 값 내지 비율을 의미한다. 또한, 과탐율은 정상 어플리케이션을 악성 어플리케이션으로 분류한 경우를 카운트한 값 내지 비율을 의미한다. 또한 미탐율은 악성 어플리케이션을 정상 어플리케이션으로 분류한 경우를 카운트한 값 내지 비율을 의미한다.
도 11은 몇몇 실시 예에 따라 악성 어플리케이션을 탐지하는 프로세스를 도시한 도면이다.
단계 S1110에서, 탐지 장치(2)는 분석할 대상이 될 APK 파일을 획득할 수 있다. 여기서, APK 파일은 APK 파일에 상응하는 어플리케이션이 속하는 그룹이 알려지지 않은 어플리케이션일 수 있다. 몇몇 실시 예에 따르면, 탐지 장치(2)는 네트워크를 통해 배포되고 있는 APK 파일을 수집할 수 있다. 또는, 다른 몇몇 실시 예에 따르면, 탐지 장치(2)는 사용자 입력에 따라서 APK 파일을 입력 내지 선택 받을 수 있다.
이후, 단계 S1120에서, 탐지 장치(2)는 획득된 APK 파일로부터 특성 정보를 추출할 수 있다. 몇몇 실시 예에 따르면, 탐지 장치(2)는 도 5에 도시된 프로세스를 단계 S11110에서 획득된 APK 파일에 대해 실행하여 특성 정보를 추출할 수 있다.
이후 단계 S1130에서, 탐지 장치(2)는 추출된 특성 정보를 악성 어플리케이션 예측 모델(120)에 입력할 수 있다. 특성 정보를 입력 받은 악성 어플리케이션 예측 모델(120)은 단계 S1140에서 APK 파일의 분류 결과, 즉 APK 파일에 상응하는 어플리케이션이 속할 것으로 예측되는 그룹을 출력한다.
도 12는 다른 몇몇 실시 예에 따른 악성 어플리케이션 탐지 장치의 구조를 도시한 도면이다.
몇몇 실시 예에 따른 탐지 장치(2)는, 크롤러(1200) 및 악성 어플리케이션 예측 모델(120)을 이용하여 구성될 수 있다. 크롤러(1200)는 네트워크를 통해 배포된 APK 파일을 크롤링(crawling)하여 수집할 수 있다. 몇몇 실시 예에 따르면, 크롤러(1200)는 마켓 크롤러(1210) 및 URL(Uniform Resource Locator) 능동 크롤러(1220)를 포함할 수 있다.
마켓 크롤러(1210)는 미리 정해진 마켓 서버(14)에 업로드된 어플리케이션의 APK 파일을 크롤링할 수 있다. 마켓 서버(14)는 소프트웨어 어플리케이션을 판매/배포하는 서비스를 제공하는 서버를 의미한다. 마켓 서버(14)는 하나의 물리적인 서버만을 의미하는 것은 아니다.
URL 능동 크롤러(1220)는 웹페이지(15)를 이용하여 APK 파일을 수집할 수 있다. 몇몇 실시 예에 따르면, URL 능동 크롤러(1220)는 포털 사이트에 블랙마켓 관련 키워드를 입력하고, 블랙마켓으로 의심되는 웹 페이지(15)나 어플리케이션의 APK 파일을 수집할 수 있다. 도 12를 참조하면, URL 능동 크롤러(1220)는 키워드를 입력한 결과에 대한 페이지 분석(1223)을 수행하여 URL을 추출을 수행할 수 있다(1221). 여기서, 페이지 분석(1223)은 URL 능동 크롤러(1220)가 검색 페이지에 대한 파싱을 통해 URL을 수집하는 것을 의미한다. URL 능동 크롤러(1220)는 수집된 URL 중 APK 파일을 다운로드할 수 있는 URL이 수집된 경우, 그 URL을 이용하여 어플리케이션 추출(1222)을 수행한다. URL 능동 크롤러(1220)는 APK 파일을 다운로드할 수 있는 URL이 아닌 기타 URL이 수집된 경우, 그 URL을 통해 연결되는 페이지에 대한 페이지 분석(1223)을 다시 수행할 수 있다. 페이지 분석(1223)을 다시 수행한 결과, URL 능동 크롤러(1220)는 다른 APK 파일을 더 획득할 수 있다.
탐지 장치(2)는 크롤러(1200)에 의해 수집된 APK 파일로부터 특성 정보를 추출하고, 추출된 특성 정보를 악성 어플리케이션 예측 모델(120)에 입력할 수 있다. 탐지 장치(2)는 악성 어플리케이션 예측 모델(120)의 출력에 따라 수집된 APK 파일의 어플리케이션이 악성 어플리케이션인지 여부에 대한 정보를 출력할 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (15)

  1. 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계; 및
    상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계;
    어플리케이션 특성에 따라 그룹으로 분류된 검증용 APK 파일을 획득하는 단계;
    상기 검증용 APK 파일로부터 제2 특성 정보를 추출하는 단계;
    상기 검증용 APK 파일의 제2 특성 정보를 상기 악성 어플리케이션 예측 모델에 입력하여 상기 검증용 APK 파일을 분류하는 단계; 및
    상기 분류 결과와 상기 검증용 APK 파일의 상기 그룹을 비교하여 상기 악성 어플리케이션 예측 모델에 대한 검증 결과를 출력하는 단계를 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  2. 제1항에 있어서,
    상기 제1 특성 정보는,
    API(Application Programming Interface) 특성 정보 및 문자열 특성 정보를 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  3. 제2항에 있어서,
    상기 제1 특성 정보를 추출하는 단계는,
    상기 학습용 APK 파일로부터 DEX(Dalvik Executable Format) 파일을 획득하는 단계와,
    상기 DEX 파일의 문자열 테이블에 대해 미리 정해진 문자열의 포함 여부를 확인하는 단계와,
    상기 미리 정해진 문자열의 포함 여부에 따라서 상기 문자열 특성 정보를 생성하는 단계와,
    상기 DEX 파일을 컴파일한 어셈블리 코드에 포함된 조작 부호(OP code)를 확인하는 단계 및
    상기 조작 부호에 따라서 상기 API 특성 정보를 생성하는 단계를 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  4. 제3항에 있어서,
    상기 미리 정해진 문자열의 포함 여부를 확인하는 단계는,
    상기 DEX 파일의 헤더로부터 상기 문자열 테이블의 위치를 참조하는 단계를 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  5. 제3항에 있어서,
    상기 조작 부호를 확인하는 단계는,
    상기 DEX 파일을 컴파일하여 상기 어셈블리 코드를 획득하는 단계와,
    상기 어셈블리 코드 내에서 호출 명령어의 위치를 확인하는 단계와,
    상기 호출 명령어의 위치를 이용하여 상기 조작 부호를 확인하는 단계를 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  6. 삭제
  7. 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계; 및
    상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계;를 포함하고,
    상기 그룹은,
    정상 그룹, 랜섬웨어(ransomware) 그룹, 애드웨어(adware) 그룹, 스파이웨어(spyware) 그룹, 봇넷(botnet) 그룹, 스미싱(smishing) 그룹, 및 RAT(Remote Access Trojan) 그룹을 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  8. 어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계; 및
    상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계;를 포함하고,
    상기 악성 어플리케이션 예측 모델을 생성하는 단계는,
    복수의 학습 알고리즘을 각각 이용하여 상기 제1 특성 정보로부터 복수의 예측 모델을 생성하는 단계를 포함하고,
    상기 악성 어플리케이션 예측 모델은,
    분석 대상 APK 파일의 제3 특성 정보가 입력되면, 상기 제3 특성 정보를 상기 복수의 예측 모델 각각에 입력하고, 상기 복수의 예측 모델 각각의 출력값에 가중치를 부여한 값들을 합산한 합계값을 산출하고, 상기 합계값이 기준 값 이상인 경우 상기 분석 대상 APK 파일을 악성으로 분류하는,
    악성 어플리케이션 예측 모델 생성 방법.
  9. 제8항에 있어서,
    상기 복수의 학습 알고리즘은,
    의사결정 트리(Decision Tree) 알고리즘, 랜덤 포레스트(Random Forest) 알고리즘, 서포트 벡터 머신(Support Vector Machine; SVM), 및 신경망(Neural Network) 알고리즘을 포함하는,
    악성 어플리케이션 예측 모델 생성 방법.
  10. 삭제
  11. 분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 분석 대상 APK 파일로부터 제1 특성 정보를 추출하는 단계;
    학습용 APK 파일의 제2 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제1 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 단계; 및
    상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 단계;를 포함하고,
    상기 분석 대상 APK 파일을 획득하는 단계는,
    미리 정해진 마켓 서버에 업로드된 제1 APK 파일을 획득하는 단계 및
    URL(Uniform Resource Locator)을 결정하고, 상기 URL을 이용하여 제2 APK 파일을 추출하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  12. 제11항에 있어서,
    상기 URL에 기초하여 제2 APK 파일을 추출하는 단계는,
    제1 웹 페이지를 분석하여 제1 URL을 추출하는 단계와,
    상기 제1 URL을 이용하여 상기 제2 APK 파일을 추출하는 단계 및
    상기 제1 URL에 상응하는 제2 웹페이지를 분석하여 제2 URL을 추출하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  13. 프로세서; 및
    상기 프로세서에 의하여 실행되는 복수의 인스트럭션을 저장하는 메모리를 포함하되,
    상기 복수의 인스트럭션은,
    어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 인스트럭션과,
    상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 인스트럭션과,
    상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 인스트럭션과,
    분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 인스트럭션과,
    상기 분석 대상 APK 파일로부터 제2 특성 정보를 추출하는 인스트럭션과,
    학습용 APK 파일의 제1 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제2 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 인스트럭션 및
    상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 인스트럭션을 포함하는,
    컴퓨팅 장치.
  14. 삭제
  15. 비일시적(non-transitory) 컴퓨터 판독 가능한 매체에 기록된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램의 명령어들이 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에,
    어플리케이션 특성에 따라 그룹으로 분류된 학습용 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 학습용 APK 파일로부터 제1 특성 정보를 추출하는 단계;
    상기 제1 특성 정보를 학습하여 악성 어플리케이션 예측 모델을 생성하는 단계;
    분류되지 않은 분석 대상 APK(Android application PacKage) 파일을 획득하는 단계;
    상기 분석 대상 APK 파일로부터 제2 특성 정보를 추출하는 단계;
    학습용 APK 파일의 제1 특성 정보를 학습한 악성 어플리케이션 예측 모델에 상기 제2 특성 정보를 입력하여 상기 분석 대상 APK 파일을 분류하는 단계; 및
    상기 분류 결과에 따라 상기 APK 파일이 속하는 그룹을 출력하는 단계;를 포함하는 동작이 수행되는 것을 특징으로 하는,
    컴퓨터 프로그램.
KR1020180022851A 2018-02-26 2018-02-26 악성 어플리케이션 탐지 방법 및 그 장치 KR102058966B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180022851A KR102058966B1 (ko) 2018-02-26 2018-02-26 악성 어플리케이션 탐지 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180022851A KR102058966B1 (ko) 2018-02-26 2018-02-26 악성 어플리케이션 탐지 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20190102451A KR20190102451A (ko) 2019-09-04
KR102058966B1 true KR102058966B1 (ko) 2019-12-24

Family

ID=67950833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180022851A KR102058966B1 (ko) 2018-02-26 2018-02-26 악성 어플리케이션 탐지 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102058966B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112711723B (zh) * 2019-10-25 2024-04-30 北京搜狗科技发展有限公司 一种恶意网址检测方法、装置及电子设备
KR102345016B1 (ko) * 2020-02-26 2021-12-29 아주대학교 산학협력단 랜섬웨어 감지 방법 및 장치
WO2022025650A1 (ko) * 2020-07-29 2022-02-03 시큐차트 비.브이. 어플리케이션 검증 시스템 및 검증방법
KR102302484B1 (ko) 2020-11-26 2021-09-14 숭실대학교산학협력단 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치
CN115221516B (zh) * 2022-07-13 2024-04-26 中国电信股份有限公司 恶意应用程序识别方法及装置、存储介质、电子设备
KR20240037647A (ko) * 2022-09-15 2024-03-22 시큐차트글로벌 주식회사 어플리케이션 검증 시스템 및 검증방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090566A (ko) * 2015-01-22 2016-08-01 국민대학교산학협력단 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법
KR102582580B1 (ko) * 2016-01-19 2023-09-26 삼성전자주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
□ 조대희 외 4인, ‘API 정보와 기계학습을 통한 윈도우 실행파일 분류’, Journal of KIISE, Vol. 43, No. 12 1325-1333, 2016.12.*

Also Published As

Publication number Publication date
KR20190102451A (ko) 2019-09-04

Similar Documents

Publication Publication Date Title
KR102058966B1 (ko) 악성 어플리케이션 탐지 방법 및 그 장치
US12021881B2 (en) Automatic inline detection based on static data
Allix et al. Empirical assessment of machine learning-based malware detectors for Android: Measuring the gap between in-the-lab and in-the-wild validation scenarios
Sejfia et al. Practical automated detection of malicious npm packages
US11790237B2 (en) Methods and apparatus to defend against adversarial machine learning
Zhang et al. SaaS: A situational awareness and analysis system for massive android malware detection
Kim et al. Risk assessment of mobile applications based on machine learned malware dataset
CN106709336A (zh) 识别恶意软件的方法和装置
KR20190102456A (ko) 어플리케이션 클러스터링 방법 및 그 장치
CN112115326B (zh) 一种以太坊智能合约的多标签分类和漏洞检测方法
US20220318387A1 (en) Method and Computer for Learning Correspondence Between Malware and Execution Trace of the Malware
Karbab et al. Petadroid: adaptive android malware detection using deep learning
Karbab et al. SwiftR: Cross-platform ransomware fingerprinting using hierarchical neural networks on hybrid features
Zhang et al. Automatic detection of Android malware via hybrid graph neural network
Pektaş et al. Runtime-behavior based malware classification using online machine learning
Naeem et al. Identifying vulnerable IoT applications using deep learning
Chen et al. Guided malware sample analysis based on graph neural networks
Ufuktepe et al. Estimating software robustness in relation to input validation vulnerabilities using Bayesian networks
Ngo et al. Fast and efficient malware detection with joint static and dynamic features through transfer learning
Tatarinova et al. Extended vulnerability feature extraction based on public resources
Garg et al. Android malware classification using ensemble classifiers
Barth et al. How open should open source be?
Niu et al. Malware variants detection using density based spatial clustering with global opcode matrix
Conté Software weaknesses detection using static-code analysis and machine learning techniques
US20240214406A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program

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
GRNT Written decision to grant