KR20200039912A - Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법 - Google Patents

Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법 Download PDF

Info

Publication number
KR20200039912A
KR20200039912A KR1020180119492A KR20180119492A KR20200039912A KR 20200039912 A KR20200039912 A KR 20200039912A KR 1020180119492 A KR1020180119492 A KR 1020180119492A KR 20180119492 A KR20180119492 A KR 20180119492A KR 20200039912 A KR20200039912 A KR 20200039912A
Authority
KR
South Korea
Prior art keywords
analysis
file
information
target file
malicious
Prior art date
Application number
KR1020180119492A
Other languages
English (en)
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 KR1020180119492A priority Critical patent/KR20200039912A/ko
Publication of KR20200039912A publication Critical patent/KR20200039912A/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법에 관한 것으로서, 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 분석대상 파일을 수집하는 웹 크롤러와, 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 분석 서버와, 기존에 분석된 파일에 대한 정보를 저장하고 있으며, 분석대상 파일의 바이너리 파일, 파일 메타정보 정보, 탐지정보, 분석정보를 포함한 분석결과 파일을 저장하는 데이터베이스를 포함한다. 본 발명에 따르면, 웹 크롤러를 통해 인터넷상에 존재하는 악성 및 정상 APK 파일을 자동으로 수집하여 대용량의 학습 데이터를 확보할 수 있으므로 안드로이드 악성코드의 탐지 및 분석의 정확도를 향상시킬 수 있다. 또한, 이러한 대용량의 학습 데이터에 대해 학습(딥러닝) 알고리즘을 적용할 경우 기계가 스스로 가중치까지 학습하므로 APK 수집에서 분석, 결과 출력까지 전 과정 완전 자동화가 가능해진다.

Description

AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법{System and method for automatically analysing android malware by artificial intelligence}
본 발명은 악성코드 분석 기술에 관한 것으로, 더욱 상세하게는 자동화된 AI 기반 학습을 통해 안드로이드 악성코드를 신속하고 정확하게 분석할 수 있도록 하는 AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법에 관한 것이다.
스마트폰 기술이 발달함에 따라 기존에 PC에서만 할 수 있던 금융 거래 등의 기능들이 이전됨으로써 스마트폰은 점차 악성코드의 공격 대상이 되고 있다. 더욱이 안드로이드는 전 세계적으로 높은 점유율을 차지하고 있으며 오픈소스이기 때문에 다른 운영체제에 비해 상대적으로 취약하다. 이러한 연유로 해마다 안드로이드 신규 악성코드의 수가 큰 폭으로 증가하고 있다. 이제는 이러한 신규 악성코드를 분석가가 처리하기에는 절대적으로 불가능한 상황이 나타나고 있다. 이에 안드로이드 악성코드 자동화 분석 방안을 필요로 하고 있다.
스마트폰의 운영체제는 구글의 Android, 애플의 iOS, MS의 Windows 등 다양한 운영체제가 있다. 그 중에서도 안드로이드 운영체제는 국내뿐만 아니라 글로벌에서도 많은 사용자들이 이용 중이다. statcounter.com의 조사에 따르면 국내 및 글로벌 스마트폰 운영체제 점유율은 [표 1], [표 2]에 보이듯이 안드로이드가 절반 이상을 차지하고 있다[1]. [표 1]은 국내 스마트폰 운영체제 점유율을 나타낸 것이고, [표 2]는 글로벌 스마트폰 운영체제 점유율을 나타낸 것이다.
Figure pat00001
Figure pat00002
하지만 안드로이드 운영체제는 다른 운영체제에 비해 특유의 개방형 구조로 인해 상대적으로 악성코드에 더 취약하며 다양한 공격에 또한 노출되어 있다. 실제로도 공격받는 모바일 운영체제의 97%가 안드로이드를 대상으로 한다[2].
또한 스마트폰의 성능 및 기능 증가로 많은 유저가 사용함으로써 악성코드의 수 또한 큰 폭으로 증가하고 있다. Kaspersky Lab의 Mobile Virusology의 보고서에 따르면 2014년에 비해 2015년에는 신규 악성코드 개수가 29만개에서 89만개로 약 3배 증가했다고 밝히고 있다[3]. 현재에는 다양한 안드로이드 보안제품이 제공되지만 대다수는 시그니처 기반으로 악성 여부를 확인하고 있다. 이러한 시그니처 방식은 신규 악성코드나 변종 악성코드에 대해서는 탐지가 어렵다는 문제점을 가지고 있다. 이에, 이러한 문제를 해결하기 위한 방안도 필요로 되고 있다.
대한민국 공개특허공보 제2017-0087007호(공개일 2017.07.27.) "악성코드 분석을 위한 전자 장치 및 이의 방법"
[1] statcounet.com, smart phone OS share table, http://gs.statcounter.com/#mobile+tablet-os-ww-quarterly-201401-201604 [2] scmagazineuk.com, http://www.scmagazineuk.com/updated-97-of-malicious-mobile-malware-targets-android/article/422783/ [3] Kaspersky report, https://securelist.com/analysis/kaspersky-security-bulletin/73839/mobile-malware-evolution-2015/ [4] 서승현, 전길수 , "스마트폰 보안 위협 및 대응 전략", TTA Jounal No.132, pages 44-48. [5] T. J. Cho, H. K. Kim, J. H. Lee, M. G. Jung, J. H. Yi, "A Scheme for Indentifying Malicious Applications Based on API Characteristics", Nov 2015. [6] 조정원, 박병욱, 남대현, 김형범, "안드로이드 모바일 악성코드와 모의 해킹 진단", 에이콘 2014. [7] Balaji Baskaran, Anca Ralescu, " A Study of Android Malware Detection Techniques and Machine Learning", Apr 2016. [8] H. Lee, S. Jang, J. Yoon, "Efficient Malware Detector for Android Devices", Aug 2014. [9] Cheol. Jeon, J.H. Jang, B.J. Kim, J.M. Jung, Y.K. Cho "A Robust Permission-Based Malicious Application Filtering Scheme for Effective Android Application Reviews", Apr 2014. [10] W. Glodek, R. Harang. " Rapid permission-based detection and analysis of mobile malware using random decision forest", Nov 2013. [11] P.P.K. Chan, W.K. Song, " Static detection of android malware by using permission and api calls", July 2014. [12] K.H. Kim, "A Hybrid Method for Android Malware Detection", Feb 2016 [13] H.S. Ham, M.J. Choi, "Analysis of android malware detection performance using machine learning classifiers", Oct 2013. [14] S.W. Min, H.J. Cho, J.S. Shin, J.C. Ryou, " Android malware analysis and detection method using machine learning", Feb 2013. [15] Idan Revivo, Ofer Caspi, "Automated Android Malware Analysis With Cuckoo Sandbox", Aug 2015, Black hat. [16] https://github.com/ajinabraham/Mobile-Security-Framework-MobSF [17] https://github.com/pjlantz/droidbox [18] http://sanddroid.xjtu.edu.cn/ [19] Mika Kultanen, "Malware analysis system", May 2016 [20] J.A. Lee, "A malware deetection method in the android using system k-means clustering" Hoseo Uni, June 2015. [21] 강현철 외 6명, "고객관계관리를 위한 데이터 마이닝 조사론", 자유아카데미. [22] J.MacQueen "Some methods for classification and analysis of multivariate observations." In Proceedings of the Fifth Berkeley Symposium on Mathematical Statisticsand Probability.VolumeI, Statistics, L.M.LeCam and J.Neyman(Eds.).University of California Press, 1967 [23] Zhao Xiaoyan, Fang Juan, Wang Xiujuan. "Android malware detection based on permission". May 2014 [24] Alexander Statnikov, Constantin F. Aliferis, Duglas p. Hardin, Isabelle Guyon, "A Gentle Introduction to Support vector Machines in Biomedicine", World Scientific, 2011 [25] J.Y. Kwon, "Bankruptcy Prediction based on the Support Vector Machine and the Random Forest", Ewha Univ, Dec 2015. [26] http://kooc.kaist.ac.kr/1609_machinelearning_1_3/joinLectures/7715 [27] H.S. Ham, "SVM-based Android Malware Detection", Kangwon Univ, Dec 2013. [28] I. Ideses, A. Neuberger, "Adware detection and privacy control in mobile devices", Dec 2014
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 웹 크롤러를 통해 인터넷상에 존재하는 악성 및 정상 APK 파일 수집하고, 대용량의 데이터에 근거한 학습을 수행하도록 함으로써, APK 수집에서 분석, 결과 출력까지 전과정을 완전 자동화하는 AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 AI 기반 안드로이드 악성코드 자동화 분석 시스템은, 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 분석대상 파일을 수집하는 웹 크롤러; 상기 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 분석 서버; 및 기존에 분석된 파일에 대한 정보를 저장하고 있으며, 상기 분석대상 파일의 바이너리 파일, 파일 메타정보 정보, 탐지정보, 분석정보를 포함한 분석결과 파일을 저장하는 데이터베이스;를 포함한다.
이때, 상기 분석대상 파일은 APK 파일이며, 상기 인공지능 기반은 딥러닝을 기반으로 한다. 즉, 상기 분석대상 파일의 특징들을 정적 분류와 동적 분류에 적용하여 상기 분석대상 파일의 악성코드 여부를 출력시키되, 정적 분류 및 동적 분류는 딥러닝 기반 분류로서, 사전에 학습된 학습 데이터(Train set)을 가지고, 학습된 학습 데이터(Train set)와 비교하여 분석대상 파일의 악성여부를 판단한다.
한편, 본 발명의 AI 기반 안드로이드 악성코드 자동화 분석 방법은, (a) 웹 크롤러가 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 APK 파일을 포함하는 분석대상 파일을 수집하는 단계; (b) 분석 서버가 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 단계; 및 (c) 상기 분석 서버가 분석대상 파일의 바이너리 파일과, 파일 메타정보 정보, 탐지정보, 분석정보를 포함하는 분석결과 파일을 데이터베이스에 저장하는 단계;를 포함한다.
상기 (b) 단계는, 상기 분석대상 파일의 특징들을 정적 분류와 동적 분류에 적용하여 상기 분석대상 파일의 악성코드 여부를 출력시키되, 정적 분류 및 동적 분류는 딥러닝 기반 분류로서, 사전에 학습된 학습 데이터(Train set)을 가지고, 학습된 학습 데이터(Train set)와 비교하여 분석대상 파일의 악성여부를 판단한다. 좀 더 구체적으로, 상기 데이터베이스를 참조하여 상기 분석대상 파일이 리스트에 존재하지 않을 경우에는 분석대상 파일 및 그 파일정보를 업로드하는 단계; 상기 파일정보를 참조하여 정적 작업큐 및 동적 작업큐에 각각 등록하는 단계; 작업큐에서 등록된 작업을 순차적으로 호출하여 해당 작업의 분석대상 파일에 대한 정보를 수집하는 단계; 수집된 정보를 바탕으로 정적 특징(Feature)과 동적 특징(Feature)을 추출하는 단계; 추출된 특징(Feature)들을 상기 데이터베이스에 저장하는 단계; 추출된 특징들을 분류기에 입력하고, 분류기의 출력에 따라 해당 분석대상 파일을 분류하고 악성코드 여부를 판별하는 단계; 및 정적 분류와 동적 분류의 결과를 가중치를 부가하여 최종 결과를 도출하는 단계;를 포함한다.
상술한 바와 같이, 본 발명에 의한 AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법에 따르면, 웹 크롤러를 통해 인터넷상에 존재하는 악성 및 정상 APK 파일을 자동으로 수집하여 대용량의 학습 데이터를 확보할 수 있으므로 안드로이드 악성코드의 탐지 및 분석의 정확도를 향상시킬 수 있다.
또한, 이러한 대용량의 학습 데이터에 대해 학습(딥러닝) 알고리즘을 적용할 경우 기계가 스스로 가중치까지 학습하므로 APK 수집에서 분석, 결과 출력까지 전 과정 완전 자동화가 가능해진다. 즉, 사용자에 의한 수작업 과정이 전혀 필요없게 된다.
도 1은 APK 파일 구조를 나타낸 도면이다.
도 2 내지 도 4는 다양한 CuckooDroid 구현 방식을 나타낸 개념도이다.
도 5는 두 개의 클래스를 가지는 종속변수로 이루어진 데이터를 선형으로 분류하는 SVM 개념도이다.
도 6은 분류기를 일반화한 개념도이다.
도 7은 본 발명의 일 실시예로서, AI 기반 안드로이드 악성코드 자동화 분석 시스템의 개념도이다.
도 8은 분석 결과 데이터를 나타낸 도면이다.
도 9는 본 발명의 일 실시예로서, AI 기반 안드로이드 악성코드 자동화 분석 방법의 흐름도이다.
도 10은 분석 결과를 나타낸 도면이다.
도 11은 SVM 실험 결과를 나타낸 도면이다.
도 12는 k-menas 실험 결과를 나타낸 도면이다.
도 13은 SVM과 k-menas를 비교한 그래프이다.
이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조 부호는 동일한 구성 요소를 지칭함을 전제하여 설명하기로 한다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성 요소가 다른 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성 요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성 요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
본 발명에서는 AI(Artificial Intelligence) 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법을 제안한다. 안드로이드 악성코드를 신속하고 정확하게 분석하기 위해 샌드박스를 통한 자동화 환경을 구현하고 인공지능(머신러닝, 딥러닝)을 이용한 탐지 모델을 제안한다. 이를 통해 악성코드를 신속하고 정확하게 탐지하고 분석할 뿐 아니라 완전 자동화한다.
본 발명에서는 웹 크롤러를 통해 인터넷상에 존재하는 악성 및 정상 APK 파일(virustotal 등등)을 수집한다. 즉, 유저의 입력 APK가 없어도 자동으로 수집하여 분석이 가능하도록 한다. 즉, 기존의 SVM 머신러닝 알고리즘은 사용자의 사전 학습(교육)이 필요하다. 그러나, 일례로서 본 발명에서 딥러닝 기반 학습이 이루어질 경우, 즉 딥러닝 알고리즘인 CNN(Convolutional Neural Networks), LSTM(Long short term memory networks) 등을 사용할 경우에 기계가 스스로 가중치까지 학습하므로 사용자가 수작업으로 하던 일이 사라져 APK 수집에서 분석, 결과 출력까지 전 과정을 완전 자동화시킬 수 있다.
이하, 먼저 안드로이드 구조와 악성코드 종류 및 특성, 이를 분석하기 위한 여러 분석 방법을 살펴본 후, 샌드박스의 종류에 대해 설명하고 본 발명에서 구축한 방식을 소개하고, 자동화 탐지에 사용될 두 가지 방식의 머신러닝과 딥러닝에 대해 설명한다. 그리고, 제안한 모델을 구현하고 성능 및 결과를 평가해 본다. 마지막으로 본 발명에 대한 결론과 향후 기술 과제를 설명한다.
안드로이드 악성코드 유형 및 특성
스마트폰 악성코드는 PC 악성코드와는 크게 다르지 않다. 큰 차이는 스마트폰에서 동작하면서 스마트폰 기기 내에 저장된 금융 및 개인 정보를 유출하거나 잠금 등을 통해 금전적 이익을 취하는 것이다[4]. 그리고 행위에 따라 랜섬웨어, 웜, 바이러스, 스파이웨어, 트로이 목마 등으로 불린다. [표 3]은 악성코드의 유형에 대한 설명이다[5].
Figure pat00003
[표 3]에 나타난 것 이외에도 루트킷, 백도어 등 다양한 종류가 있다. 악성코드는 한 번에 한 가지 행위만 하는 것이 아니라 동시에 여러 행위를 할 수도 있다. 예를 들면 트로이 목마 형태는 스파이웨어 및 랜섬웨어 행위 등을 동시에 수행할 수도 있다.
안드로이드 어플리케이션 구조
안드로이드 어플리케이션을 개발하게 되면 apk 파일로 생성이 된다. 이 apk 파일은 ZIP와 같은 하나의 압축파일 형태이다. apk 파일을 압축해제하면 도 1과 같이, 크게 classes.dex 파일, AndroidManifest.xml 파일, res 및 META-INF 파일로 나눠진다.
AndroidManifest.xml 파일은 컴포넌트에 대한 정의를 포함하고, 앱의 사용 권한(Permission)이 포함된다. 악의적으로 사용될 수 있는 권한이 있기 때문에 classes.dex와 같이 유심히 봐야할 파일이다[6].
안드로이드 악성코드 분석
1. 정적 분석
정적분석은 어플리케이션의 실행 없이 어플리케이션 안의 파일에 대한 특성을 추출하여 분석하는 방식이다. 이 방식은 별도로 실행하지 않고 데이터를 얻을 수 있어서 자원과 시간의 활용 측면에서는 효율적이다. 그러나 악성코드 제작자가 정적 분석을 회피하기 위해 코드를 일부 수정하게 될 경우나 특성의 추출이 어려울 경우에는 탐지가 어려운 경우도 발생한다[7].
주로 사용하는 정적 분석의 특성은 권한(Permission)과 API 등이 있다. 이는 apk 파일을 구성하는 AndroidManifest.xml과 class.dex 파일에서 추출할 수 있다. 이를 추출하기 위한 디컴파일 도구로는 dex2jar, jd-gui, AXMLPrinter2, APKtool 등이 있다. 수동 분석의 경우에는 이러한 도구를 이용하여 정적분석에 필요한 특성들을 일일이 추출해야하는 번거로움이 있다.
어플리케이션에서 사용하는 권한의 종류에 따라 악성코드 여부를 감지하는 방법이 있다. 어플리케이션을 다운 받기 전에 권한을 추출하여 k-Nearest Neighborhood을 이용하여 악성 여부를 감지하는 것인데 87%의 정확도를 가지고 있다. 하지만 이러한 권한을 이용하여 분석하는 방법은 정상 어플리케이션도 악성 어플리케이션으로 감지하는 false negative가 발생한다[8].
권한을 이용하여 탐지를 하는 또 다른 기술에는 모바일 악성코드에 자주 사용되는 6개의 조합을 추출하여 악성 여부를 확인하는 방법이 있다.
Figure pat00004
[표 4]는 악성코드가 자주 사용하는 권한의 조합인데 이를 이용하여 Application-Relation Graph를 생성한다. 기존에 사용하고 있는 ClamAV 시스템과 필터링 기법을 함께 적용하고 이를 실험한 결과 98.4%의 정확도를 보였다. 이 기술의 단점은 Application-Relation Graph를 검색하기 위한 저장 공간이 필요하고, 높은 FNR을 보인다는 한계점이 있다[9].
Glodek과 Harang의 논문에서는 Random Forest를 이용하여 악성 어플리케이션을 탐지하는 방안을 연구하였다[10]. 권한과 브로드캐스트 리시버, 네이티브 코드의 특성을 이용하여 500개의 정상 어플리케이션과 500개의 악성코드를 분석하였다. 실험결과는 상용화된 많은 수의 안티 바이러스 제품보다 위 방법을 적용했을 때 탐지에 더 뛰어난 성능을 보였다.
Chan과 Song의 논문에서는 권한과 API를 이용했을 때 악성코드를 탐지하는 효율을 측정하는 연구를 하였다[11]. 권한의 특성은 AndroidManifest.xml을, API 특성은 classes.dex 파일을 이용하여 추출하였고 API는 유의미한 19개를 별도로 선정하였다. 기계학습의 종류인 Naive Bayes, Support Vector Machine(SVM), RBF Network, Multi Layer Perception, Liblinear, J48 Decision tree, Random Forest 등을 이용하여 악성 어플리케이션 탐지율을 비교하였다. 실험의 결과는 API와 권한을 단일로 사용했을 때 보다 조합하여 사용하였을 때 90%의 정확성을 보였다.
S.W. Min의 연구는 안드로이드 어플리케이션이 사용하는 API를 분석하여 악성코드 여부를 판별한다. 정보 유출 및 수집을 수행하는 악성 어플리케이션에 국한하여 실험을 하였다. 여기에 자주 사용되는 API 및 횟수를 추출하여 분석에 사용하였다. 군집화에 사용되는 K-means와 EM을 알고리즘을 이용하여 악성코드를 탐지하는데 약 82% 탐지율을 보였다. 약 40개 정도의 정보 유출을 시도하는 API만을 기반으로 탐지하였기에 범용성과 정교한 탐지가 어렵다는 한계점이 존재했다[14].
Figure pat00005
Figure pat00006
[표 5]는 정적 분석에서 가장 높은 빈도로 사용되는 특성을 정리한 것이다. 그리고 [표 6]은 가장 높은 탐지율을 보이는 특성 조합을 정리한 것이다. 이 두 가지 표를 관찰해보건대 높은 탐지율과 실패율을 줄이기 위한 특성은 Permission과 API가 뛰어남이 보인다[7].
2. 동적 분석
동적 분석은 어플리케이션이 실행되는 도중에 특성을 추출하는 방식인데 네크워크 트래픽, 배터리 사용량, IP주소 등이 분석에 사용된다. 특성을 추출할 때에는 실제 단말기를 사용하거나 AVD(Android Virtual Device)에서 실제로 실행을 하여 추출을 한다. 정적 분석의 한계를 보완하기 위해 고안됐으며 최근에는 정적 분석과 혼합하여 사용을 하기도 한다. 추출되는 자원정보의 수와 자원정보의 종류에 따라 분석 성능에 차이가 난다[12].
Figure pat00007
[표 7]은 가장 빈번하게 사용되는 특성과 그에 맞는 기계학습 알고리즘을 정리한 것이다. 네트워크 트래픽과 다른 행위 패턴들은 악성적인 행위를 빠르게 탐지하는데 도움을 주며 IP주소는 추적을 통해 공격이 어디에서 이루어지는 찾기 쉽게 알려 주기도 한다. SMS나 다른 로그들은 악성 행위를 탐지할 때 높은 확률에 이르게 도움을 준다[7].
Ham과 Choi의 논문에서는 30개의 일반 어플리케이션, 5개의 악성 어플리케이션으로 동적 분석에 대한 연구를 진행하였다. 동적 분석 기법을 적용하기 위해 32개의 특성을 7개의 카테고리로 세분화하였다. 여기에 사용된 특성과 카테고리는 [표 8]과 같다.
Figure pat00008
메모리 카테고리에서는 세분화를 위해 Native와 Dalvik으로 분류하여 실험을 수행하였다. 이들은 Naive Bayes와 Random Forest LR, SVM 등의 알고리즘을 사용하여 분석하여 이 중에서 SVM이 가장 우수함을 증명하였다. 최근의 스마트폰에서는 이 연구에서 사용되는 32개의 특성을 추출하기 위해서는 루팅이 필요하다는 한계점이 존재한다[13].
악성코드 분석 가상환경 유형
자동화 분석을 위해서는 샌드박스와 같은 가상화 환경이 필요하다. 지금까지 안드로이드 분석을 위한 가상화 환경으로는 CuckooDroid, YSO_MobSF, DroidBox, Sandroid 등이 있다. 이 중에는 온라인 서비스만 제공하는 경우도 존재하고 유료서비스도 존재하기도 한다. [표 9]에 나타난 서비스 이외에도 다른 샌드박스 유형들이 존재하지만 서비스가 종료되었거나 유료로만 제공하는 것들은 제외하였다[15][16][17][18].
Figure pat00009
본 발명에서는 [표 9]의 4가지 유형 중에 CuckooDroid로 환경을 구축한다. CuckooDoird는 Cuckoo Sandbox에서 확장되어 만들어진 것이다. 안드로이드 운영체제의 샘플 분석을 위해 이용된다. Cuckoo Sandbox 버전 1.2에서 개발됐지만 2016년 8월부터는 2.0 버전도 호환됐다. 하지만 아직까지도 호환성에 사소한 문제들이 있어 여기에서는 1.2버전에서 환경을 구축하였다. CuckooDroid는 안드로이드 리눅스, 안드로이드 에뮬레이터, 안드로이드 크로스 플랫폼 디바이스 등과 같이 총 3가지 구현 방식이 존재한다[15][19].
첫 번째 방식은 호스트에 리눅스 가상환경을 구축한 것인데 도 2와 같이 표현된다. 가상머신 내에 안드로이드 에뮬레이터나 AVD가 설치되기 때문에 다소 느린 경향이 있다. 그래서 OpenGl 그래픽 카드가 요구된다. 파이썬(Python) 에이전트를 통해 가상머신과 연결된다[15][19].
두 번째 방식은 가상머신 없이 호스트 내에 바로 AVD를 설치하는 방식인데 도 3과 같이 표현된다. AVD 모듈을 통해 분석이 진행되기 때문에 안드로이드 시스템과 같이 운영되기가 현실적으로 어려운 부분이 많다. 이 방식도 파이썬 에이전트를 통해 AVD와 연결된다[15][19].
마지막 방식은 본 발명에서 구축한 방식인데 호스트 내에 안드로이드 가상 머신을 직접 구축한 방식이다. 가상 머신은 오픈 소스인 Android-x86로 동작한다. 위 두 가지 방식과는 다르게 APK 에이전트를 통해 호스트와 연결된다. 따라서 작업을 하기에는 최적의 환경을 갖추고 있다[15][19].
악성코드 탐지를 위한 기계학습 알고리즘
기계학습에 사용되는 알고리즘은 SVM, K-NN, Naive Bayes, k-means 등 다양한 알고리즘이 존재한다. 또한 분류 형태에 따라 분류(classify), 군집(cluster) 그리고 사전 학습여부에 따라 지도(supervised) 와 비지도(unsupervised) 학습으로 나누기도 한다. 본 발명에서는 분류 방식을 이용한 SVM, 군집 방식을 이용한 k-means를 활용하여 탐지율을 비교하고자 하고 더 높은 성능을 보이는 알고리즘을 자동화 분석 모델에 적용할 수 있다. 이 두 알고리즘을 택한 이유는 각각 다른 성격의 알고리즘이고 보편적으로 사용되고 있으며 특히 SVM의 경우는 지금까지의 연구 결과에 높은 탐지율을 나타냈기 때문이다[13][23].
객체(Instance)들이 각 성격에 맞는 그룹들로 분할될 경우 군집화 방식을 주로 적용한다. 군집 분석은 비지도 방식으로(unsupervised) 객체들의 사이의 유사성 또는 거리에 근거하여 분석을 하는 기법이다. 쉽게 말하면 주어진 데이터에서 유사한 객체들을 n개의 군집으로 그룹화한 후 그 군집들의 성격을 파악하고 이해하는 것이다. 특히 대량의 데이터에서 개개별로 객체를 요약하는 것보다 전체를 몇 개의 그룹으로 군집화하여 쉽게 그룹들의 특성을 알 수 있다.
군집화는 주어진 데이터들의 대한 사전 정보 없이 의미있는 자료구조를 찾아낼 수 있는 장점이 있다. 그리고 객체들 간의 거리를 데이터 형태에 맞게 정의하면 거의 모든 형태의 데이터에 적용이 가능하다. 하지만 이러한 장점이외에도 단점이 존재한다. 첫 번째는 초기 군집수를 설정해야하는데 군집수가 데이터 구조에 적합하지 않으면 좋은 결과를 얻을 수가 없다. 그리고 객체들 간의 거리나 그 거리를 어떤 가중치에 의해 결정하였는가에 따라서 결과가 크게 달라지기 때문에 이를 정하는데 매우 신중해야한다[21].
1. K-means Clustering
1967년에 MacQueen이 처음으로 제안하였다. 2009년에 강화된 k-means가 나오긴 했지만 아직까지도 여전히 사용 중인 알고리듬 중에 하나이다. k-means는 군집의 수인 k이 값을 정하고 군집 내 유사성별로 분류하여 n개의 객체들을 k개의 군집으로 분류한다. 군집 방식은 데이터와 그에 대응하는 군집의 중심점 사이의 거리의 제곱들 총합을 최소화하는 방식으로 정해진다[22].
Figure pat00010
[표 10]은 k-means의 알고리즘을 나타낸 것이다. 먼저 초기 k개의 중심점들을 선택한다. 여기서 k는 사용자가 명시하는 군집의 개수 또는 초기 중심점이다. 각각의 점들은 자신과 가장 가까운 중심점에 지정이 되며 이렇게 중심점으로부터 할당된 점들의 집합이 군집이 된다. 그런 다음 각 군집의 중심점은 할당된 점들을 기반으로 다시 계산한다. 이 행위를 반복하여 중심점들이 동일하게 유지될 때까지 계속한다. 이를 식으로 나타내면 다음과 같다.
Figure pat00011
E는 모든 객체들의 제곱오차를 합한 것이고, p는 주어진 객체를 나타내는 공간의 점이고,
Figure pat00012
는 군집,
Figure pat00013
의 평균이다.
2. S.V.M(Support Vector Machine)
SVM은 1970년대에 Vapnik에 의해서 소개된 바 있으나 그 당시에는 인정받지 못했다. 1990년 후반이 되어서야 Cortes와 Vapnik(1995) 그리고 Burges(1998)에 의해서 각광받기 시작했으며 현재까지 사용되고 있는 인기있는 머신러닝 중 하나이다[24].
SVM의 간단한 개념은 두 범주를 갖는 객체들을 분류하는 것이라 할 수 있다
이 때 서포터 벡터와 초평면(hyperplane)의 거리를 나타내는 margin을 최대화를 꾀하는데 목적을 가진다. 도 5는 두 개의 클래스를 가지는 종속변수로 이루어진 데이터를 선형으로 분류하는 가장 간단한 SVM이다[25].
데이터 집합을 두 개의 클래스로 구분하는 초평면은 무수히 많이 존재한다. SVM은 수많은 초평면들 중에서 두 클래스의 경계에 있는 데이터에 초점을 맞추어 분류기준을 제시한다. 이로 인해 margin이란 개념을 도입하는데 이는 초평면에서 가장 가까운 거리에 위치한 벡터 사이의 수직거리를 의미한다. SVM은 이 margin을 최대화하는 초평면을 구하는 과정이다. 이 때, 초평면과 가장 가까운 곳에 위치한 벡터를 support vector라고 한다. 아래는 SVM의 수식을 구하는 과정이다.
선형 형태의 방정식은 f(x)=w*x+b이다. 여기서 초평면에 있는 경우엔 w*x+b=0가 된다. 임의의 점 x에서 초평면의 점 x'로 수선을 내리면 위의 식은
Figure pat00014
가 된다(r은 거리). 이 식을 제일 처음 식에 대입하면
Figure pat00015
, 초평면 위에 있을 때 아래와 같이 풀어진다.
Figure pat00016
, 결국엔 이를 최대화(r은 거리이므로=margin) 하는 값이 SVM에서 원하고자 하는 값이 된다. 이 때 제약 조건은
Figure pat00017
이다. 하지만 현실에서의 대부분의 데이터는 도 6과 같이 완벽한 초평면을 찾는 것은 쉽지 않다. 그래서 어느 정도의 overlapping를 허용하는 가운데 아래와 같은 제약 조건 하에서 최적 분류기준을 찾는다[25][26].
Figure pat00018
이러한 SVM은 기존 분류기와의 큰 차이는 일반화가 가능하다는 것이다. 음영 처리된 두 클래스를 분류하는 직선으로는 ①은 적합하지 않다. ②, ③은 클래스를 구분하는 직선이 될 수가 있다. 기존의 분류기는 ①에서 시작하여 ②의 직선을 찾으면 학습과정이 종료된다. 하지만 SVM은 최적의 직선인 ③을 찾는 과정을 거친다[27].
그리고 SVM은 비선형 클래스를 커널 함수를 이용해 선형 클래스로 변형하여 초평면을 구할 수도 있다. 이를 커널 트릭이라고 하는 무한대의 차원까지 구해낼 수 있다. 커널 함수의 종류에는 Polykernel, 가우시안 RBF커널 등 다양한 함수가 존재한다. 커널 함수를 자동으로 설정하는 방법이 없어서 실험에 의한 휴리스틱한 선택을 해야 한다.
그러면, 여기서 본 발명에서 제시하는 AI 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법에 대해 설명하기로 한다. 또한 전체적인 구성도와 분석에 사용될 특성에 대해서도 소개한다.
안드로이드 악성코드 분석을 위해 데이터를 추출하기 위해선 Apktool, dex2jar와 같은 툴을 사용해서 일일이 분석 데이터를 추출해서 분석을 하는 불편함이 있었다. 기존 기술에서도 기계학습을 통한 악성코드 탐지에도 분석 속도를 향상시키기 위해 자동화의 필요성에 대해서도 언급하였다[20]. 이러한 불편을 해소할 수 있는 분석환경이 2015년 BlackHat에서 소개되었다[15]. CuckooDroid를 통한 정적분석 데이터뿐만 아니라 동적 분석 데이터까지 수월하게 확보할 수 있게 되었다. 게다가 오픈 소스이기 때문에 사용자의 환경에서 맞게 수정이 가능하다. 여기에서는 이를 이용하여 분석을 보다 수월하고 더 빠르게 수행할 수 있는 모델을 소개한다.
도 7은 본 발명의 일 실시예로서, AI 기반 안드로이드 악성코드 자동화 분석 시스템의 개념도이다.
도 7을 참조하면, 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 분석대상(APK 파일)을 수집하는 웹 크롤러(1)와, 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 분석 서버(2)와, 기존에 분석된 파일에 대한 정보를 저장하고 있으며, 분석대상 파일의 바이너리 파일, 분석결과(파일 메타정보 정보, 탐지정보, 분석정보) 파일을 저장하는 데이터베이스(Data Base ; DB)(3)를 포함한다.
이와 같이 구성된 본 발명의 AI 기반 안드로이드 악성코드 자동화 분석 시스템에서는, 먼저 사용자가 어플리케이션의 분석 요청을 하면 분석 대상이 데이터베이스에 존재하는 여부를 확인한다. 여기에서 Hash 데이터를 메타 데이터로 사용하는데 이는 데이터베이스 검색 시 빠른 속도로 찾는 것이 가능해지고 찾기도 수월하다. 안드로이드 악성코드의 경우 유사한 악성코드가 여러 개 존재할 수가 있기 때문에 Fuzzy hash를 이용하는 두 가지 경우 모두를 고려한다.
한편 웹 크롤러는, 사용자가 어플리케이션의 분석 요청을 하면, 사용자 검색 설정정보에 대한 분석을 통해 설정 크기 이상의 빈도수를 갖는 하나 이상의 주요 검색어 정보를 추출하고, 추출된 주요 검색어 정보를 중심으로 검색이 이루어지는 것이 바람직하다.
데이터베이스에 존재하는 악성코드이면 별도의 분석과정을 거치지 않고 사용자에게 기존의 데이터를 출력해주고 그렇지 않을 경우 분석이 진행된다. 샌드박스 환경에서는 분석이 완료되면 도 8과 같이 json(report 폴더), html(report 폴더), pcap, 스크린 샷 등등의 분석 결과 파일이 생성된다. 여러 파일 중에서 report 폴더에 있는 .json 파일에 정적분석 및 동적 분석 등의 데이터가 저장되기 때문에 이 파일을 파싱해서 기계학습을 적용한다.
지도 형식의 머신러닝 알고리즘을 사용할 경우에는 사전에 교육이 필요하다. 이를 위해 기존 분석 데이터에 의해 학습된 데이터베이스가 존재한다. 여기에서는 160여개의 악성코드와 37개의 정상 파일의 분석을 통해 학습하였다.
한편, 딥러닝 알고리즘을 사용할 경우에는 분석 서버는, 분석대상 파일의 특징들을 정적 분류와 동적 분류에 적용하여 분석대상 파일의 악성코드 여부를 출력시키되, 정적 분류 및 동적 분류는 딥러닝 기반 분류로서, 사전에 학습된 학습 데이터(Train set)을 가지고, 학습된 학습 데이터(Train set)와 비교하여 분석대상 파일의 악성여부를 판단한다. 또한, 악성여부를 1~10사이의 확률로 나타내는 베이스라인도 함께 추출하고, 학습 데이터(Train set)는 분석대상 파일의 악성여부를 판단하기 위해 필요한 베이스라인을 수립하기 위해, 사전에 수집된 라벨링(label)된 악성 및 정상파일의 특징(Feature) 정보를 포함할 수 있다.
최종적으로 어플리케이션 분석 및 머신러닝 분석이 끝나면 결과를 웹 페이지(webpage) 등을 통해 사용자에 제공해주게 된다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 AI 기반 안드로이드 악성코드 자동화 분석 방법에 대해 설명하기로 한다.
도 9는 본 발명의 일 실시예로서, AI 기반 안드로이드 악성코드 자동화 분석 방법의 흐름도이다.
도 9를 참조하면, 웹 크롤러가 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 분석대상 파일(APK 파일)을 수집한다(S1).
분석 서버(2)가 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석한다(S2).
이에 대해 구체적으로 설명하면 다음과 같다.
먼저, 데이터베이스를 참조하여 분석대상 파일이 리스트에 존재할 경우에는 분석대상 파일에 대한 작업을 더 이상 진행하지 않는다.
만약, 분석대상 파일이 리스트에 존재하지 않을 경우에는 분석대상 파일(또는 바이너리 파일) 및 그 파일정보(분석대상 파일의 파일정보)를 업로드 한다(S21).
이에 파일정보를 참조하여 정적 작업큐 및 동적 작업큐에 각각 등록한다(S22). 또한, 분석대상 파일에 대한 작업을 작업큐에 등록할 때, 작업정보를 등록한다. 이때, 분석대상 파일의 작업정보는 작업에 대한 식별정보(인덱스 등), 분석대상 파일의 바이너리 파일의 저장 위치, 분석대상 파일의 파일정보, 분석대상 파일에 대한 동적 분석을 하는 시간을 나타내는 분석제한 시간 등을 포함한다.
이어서, 작업큐에서 등록된 작업을 순차적으로 호출하여 해당 작업의 분석대상 파일에 대한 정보를 수집한다(S23). 이때, 정적 정보의 수집 작업과, 동적 정보의 수집 작업을 별도로 구분하여 수행할 수 있다.
수집된 정보를 바탕으로 정적 특징(Feature)과 동적 특징(Feature)을 추출한다(S24). 이때, 정적 특징의 추출 작업과, 동적 정보의 추출 작업을 별도로 구분하여 수행할 수 있다. 즉, 사전에 정해진 파일 구조에 따라 분석대상 파일에서 정적 특징들 및 동적 특징들을 추출한다.
추출된 특징(Feature)들은 데이터베이스에 저장된다(S25).
추출된 특징들을 분류기(CLASSFIER)에 입력하고, 분류기의 출력에 따라 해당 분석대상 파일을 분류하고 악성코드 여부를 판별한다(S26). 이때, 분류 작업 역시 동적 분류와 정적 분류를 구분하여 수행할 수 있다.
정적 분류와 동적 분류의 결과를 가중치를 부가하여 최종 결과를 도출한다(S27).
마지막으로, 분석 서버(2)가 분석대상 파일의 바이너리 파일, 분석결과(파일 메타정보 정보, 탐지정보, 분석정보) 파일을 데이터베이스(3)저장한다(S3).
자동화 환경 구축
샌드박스 환경의 구성은 운영체제는 debian-8.5.0-amd64-netinst, 가상 머신은 VMware Workstation v-12 사용하였고 모든 설치는 루트 권한으로 진행하였다.
환경 설정에 관한 부분은 제외하므로 http://cuckoo-droid.readthedocs.io/en/latest/ 를 참조한다.
1. CuckooDroid 설치
Cuckoo Sandbox 설치 후 CuckooDroid를 설치한다.
#git clone git://github.com/cuckoosandbox/cuckoo.git cuckoo -b 1.2
명령어를 통해 Cuckoo Sandbox 설치 후
#git remote add droid https://github.com/idanr1986/cuckoo-droid
#git pull --no-edit -s recursive -X theirs droid master
CuckooDroid를 설치한다.
#apt-get install python python-pip python-dev libffi-devlibssl-dev
#echo protobuf >> requirements.txt
#pip install -r requirement.txt
통해 실행에 필요한 파이썬 라이브러리를 설치하도록 한다.
2. 기타 분석 도구 설치
가.TCP dump
# apt-get install tcpdump
Tcpdump는 루트 권한으로 실행이 되는데 cuckoo는 루트권한으로 실행되는 것을 추천하지 않는다. 따라서 아래와 같은 명령어로 capability를 바이너리로 설정한다.
# setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
나.mongodb
#apt-get install mongdb
mongodb 사용시에는 샌드박스 환경 설정에서 추가로 설정이 필요하다.
다. Yara
사용자의 편의에 따라 설치하지 않아도 된다. 설치 과정은 다음과 같다.
#wget https://github.com/plusvic/yara/archive/v3.4.0.tar.gz
설치가 완료되면 다음 명령어를 실행한다.
# ./bootstrap.sh
# ./configure && make && make install
# ./configure-enable-cuckoo
설정이 완료되면 아래 폴더로 이동 후 추가로 설치를 한다.
# cd yara-python/
# python setup.py build
# python setup.py install
라. ssdeep
퍼지 해싱을 사용하기 위해 설치하는 도구이다. 설치 과정은 다음과 같다.
#wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.12/ssdeep-2.12.tar.gz
# ./configure && make && make install
파이선 확장을 위해 필요한 추가 툴인 pydeep 설치하는 과정이다.
# git clone https://github.com/kbandla/pydeep
# cd ./pydeep
# python setup.py build
# python setup.py install
3. 안드로이드 가상머신 설치
먼저 VirtualBox 설치 후 안드로이드 가상 머신을 설치한다. Virtualbox의 버전은 크게 상관없다. 분석 환경은 Virtualbox-v5.0을 설치하였다.
# apt-get install virtualbox
설치가 완료 되면 네트워크 설정을 위해 아래와 같은 명령어를 입력한다.
# vboxmanage hostonlyif create
# ip link set vboxnet0 up
# ip addr add 192.168.56.1/24 dev vboxnet0
설정이 완료되면 안드로이드 가상 머신을 설치해야 하는데 아래 사이트로 가서
Android x86 4.4 RC2 버전을 받는다.
http://www.android-x86.org
안드로이드 가상 머신이 설치 완료 된 후 Terminal 어플리케이션을 통해 /etc/init.sh 파일을 수정하도록 한다. 여기에선 su를 통해 루트권한 상승이 필요하다. 해당 파일에
ifconfig eth0 192.168.56.10 netmask 255.255.255.0 up
route add default gw 192.168.56.1 dev eth0
ndc resolver setifdns eth0 8.8.8.8. 8.8.4.4
ndc resolver setdefaultif eth0
입력하고 저장한 후 재부팅을 한다. 설정을 마친 후 분석을 위한 어플리케이션을 설치하기 위해 호스트 PC로 돌아온다.
# apt-get install android-tools-adb
adb 설치 후
# adb connect 192.168.56.10
# adb root
# adb connect 192.168.56.10
# cd /root/cuckoo(설치된 폴더위치)/utils/android_emulator_creator
# ./create_guest_device.sh
# cd ../hooks_generator
# python generate_hook_json.py
실행 후 생성된 파일 hooks.json을 안드로이드 가상 머신 /data/local/tmp 위치에 복사한다.
# adb push ./hooks.json/data/local/tmp
설치가 완료 된후 안드로이드 가상머신에 설치 된 어플리케이션 설정을 해야하는데 앞서 소개한 사이트를 참조한다.
정상적으로 설치가 됐다면 어플리케이션의 분석 결과를 도 10과 같이 확인할 수 있다.
악성코드 탐지를 위한 특성
머신러닝에 사용될 악성코드 특성은 지금까지 정적분석에 자주 사용된 권한과 APIs를 이용한다. 두 가지 특성을 사용하게 된 이유는 권한만 사용하였을 때도 높은 비율로 악성코드를 탐지하였다[20]. 하지만 이때는 정상 파일을 악성코드로 판단하는 True Negative가 높은 비율로 발생한다. 따라서 이를 보완할 수 있는 세부적인 API를 특성을 추가로 사용하게 되었다. 그 밖에도 다른 기술들에 따르면 권한과 API특성을 조합할 때 높은 탐지율이 나왔던 연구 결과 또한 존재한다[7][11][20]. 이 두 가지 특성은 CuckooDroid 분석이 끝나면 생성되는 report.json 파일에서 추출한다. 권한은 json 파일의 apkinfo.manifest.permissions을 파싱하였고 APIs는 apkinfo.static_method_calls.all_methods에서 파싱하였다. 160개의 악성코드와 37개의 정상 파일에서 추출된 APIs와 권한을 사용 빈도에 따라 재정리하였다.
모델 성능 평가
분석을 위한 머신러닝 도구는 weka-3-8-0-x64 버전을 이용하였다. 악성 어플리케이션은 contagio를 통해 얻었고 정상 어플리케이션은 Gooleplay 및 apkpure를 통해서 입수하였다. 본 실험은 160개의 악성코드와 37개 정상 파일로 얻은 데이터로 실험하였고 검증은 37개의 악성코드와 26개의 정상파일로 하였다. 그리고 본 발명에 사용된 악성코드는 애드웨어, 스파이웨어, 트로이 목마, 랜섬웨어, 부트킷, 루트킷, 랫 등 다양한 악성코드를 학습데이터로 사용하였다.
본 발명에서는 실험의 성능 결과 분석에 사용할 지표로 TPR(True False positive), FPR(False Positive Rate), Precision, Accuracy 지표를 사용한다.
Figure pat00019
TP는 정상 파일을 정상 파일로 판단한 수치를 의미하고 TN은 악성 파일을 악성 파일로 판단한 수치를 의미한다. 그리고 FN은 정상 파일인데도 악성 파일로 인식했을 때를 의미하고 마지막으로 FP는 악성 파일임에도 정상 파일로 인식했을 때를 의미한다. 이를 통해 TPR, FPR, Precision, Accuracy를 구한다. 각 각의 수식은 아래와 같다.
Figure pat00020
,
Figure pat00021
TPR은 정상 파일을 Positive라고 가정하고, 실제 정상 파일 중에서 정상 파일로 판단한 비율을 나타낸다. FPR은 악성 파일 중에서 정상 파일로 잘못 판단한 비율을 의미한다. FPR 지표는 악성 파일을 정상 파일로 판단했기 때문에 이는 상당히 중요한 지표로 여겨진다. Precision은 판단치의 오차를 나타내는 지표로, 정상 파일로 판단한 것 중에서 실제 정상 파일의 비율을 의미하며, 마지막으로 Accuracy는 시스템의 정확도를 나타내는 지표로 머신 알고리즘의 정확도 비교에 사용된다. 전체 결과 중에서 정상 파일과 악성 파일을 각각 정확히 판단한 비율을 의미한다.
기계학습 알고리즘 비교 실험
사전 학습 데이터로 SVM 트레이닝 후 테스트를 실험하였다. 도 11은 SVM의 테스트 결과이다. 전체 오탐율은 약 5%로 나타났다.
도 12는 k-means의 테스트 결과이다. 전체적인 오탐율은 약 15%로 나타났다.
두 실험을 토대로 TPR, FPR, Precision, Accuracy 등의 지표를 비교해 보았다.
도 13을 참조하면, TPR 지표는 SVM이 k-means봐 9% 포인트가 더 높은 약 92%이다. FPR 지수는 SVM이 k-means보다 2% 포인트가 낮은 4%로 나타났다. 이로 미루어 보면 전체적인 성능은 SVM이 뛰어남이 보이고 k-means 같은 경우엔 전체 중에 6%만 악성 파일을 정상 파일로 인식했지만, 정상 파일을 악성 파일로 인식하는 false negative가 높은 비율로 나타나고 있음이 보인다. 이를 보완하기 위해서 정상 파일을 제대로 분류할 수 있는 다른 특성과의 조합이 필요해 보인다.
판단치의 오차를 나타내는 Precision 지표는 두 알고리즘 모두 대체적으로 높은 비율을 보이고 있다. 정확도 지수를 나타내는 Accuracy 지표는 SVM이 약 5% 포인트 높은 94%로 나타났다.
지금과 같은 분석 환경에선 k-means보다 SVM 알고리즘이 탐지율과 낮은 오탐율을 보이므로 뛰어남을 알 수 있다. 추가적으로 악성코드 탐지를 위한 FPR을 줄이기 위해선 권한과 APIs 이외에도 추가적인 요소가 필요함이 보인다.
모델 성능 결과 평가
최근까지 '머신러닝을 통한 악성코드 분석' 관련된 많은 기술들은 자동화 분석을 기능이 없었고 몇 몇 논문은 자동화에 대한 필요성을 언급하였다. 지금까지의 실험을 통해 자동화 분석이 가능함을 보였고 그 분석 데이터 또한 정적/동적 분석 데이터까지 추출되어 다양한 용도로 사용할 수도 있다. 게다가 머신러닝 SVM 알고리즘을 통해 높은 탐지율 또한 확인할 수 있었다.
기존에 다른 기술들의 머신러닝 탐지율을 [표 12]로 정리하였다.
Figure pat00022
실험 결과를 보면 분석 환경과 사용된 특성이 차이가 있지만 대체적으로 SVM알고리즘이 k-means보다 나은 것이 보인다. Ideses와 Neuberger의 연구는[28] 상당히 높은 탐지율을 보이고 있다. 애드웨어에 한해서 탐지를 했고 샘플의 수가 7000개로 많은 양이다. 그리고 특성의 조합이 달랐기 때문에 본 발명과 탐지율에서 다소 차이가 있다고 추측한다. 본 발명에서 제안한 모델은 트로이목마, 애드웨어, 스파이웨어, 랜섬웨어, 루트킷 등 모든 악성코드 등이 포함된 데이터로 학습하였고 테스트하였고 샘플의 수도 약 200여개로 많은 수를 사용하지 못했다. 하지만 본 발명은 자동화 분석이 되므로 계속해서 분석을 수행할 때 마다 데이터는 누적되므로 머신러닝을 통한 탐지율은 이보다 향상될 수 있다.
결 론
매년 안드로이드 악성코드는 크게 증가하여 분석 인력이 따라 갈 수 없는 수준에 이르렀다. 그래서 본 발명에서는 기존에 안드로이드 악성코드를 분석할 때 소요되는 분석 시간을 줄이고 전문성이 없어도 분석을 수행할 수 있도록 자동화 분석환경을 제안하였다. 그리고 대상 악성코드를 정확히 탐지하기 위해 두 가지의 머신러닝 알고리즘의 결과 분석을 통해 더 나은 알고리즘을 자동화 모델에 제안했다. 머신러닝의 특징상 누적되는 데이터는 많아질수록 더 높은 탐지율을 보여줄 것이다.
또한 자동화 분석으로 추출되는 데이터는 정적 분석 데이터뿐만 아니라 동적 분석 데이터까지도 추출이 가능하다. 탐지율이나 향상시키거나 오탐율을 줄이기 위해 어느 특성 상관없이 적용해서 더 나은 특성 조합 데이터를 얼마든지 사용할 수 있다는 의미다.
정성적 평가로는 전문성이 부족하여도 구축된 환경을 사용한다면 누구라도 쉽게 결과를 찾아 볼 수 있다. 그리고 자동화 환경은 오픈소스이기 때문에 제작자의 용도에 맞게 언제든지 수정, 변경해서 사용할 수 있다는 장점도 있다.
정량적 평가로는 기존 대비 분석에 소요되는 시간을 단축시킬 수 있으며 인력비 절감까지 가능하여 경제적인 효과 창출까지 연계가 될 수 있다. 그리고 탐지율 또한 기존 기술 대비 나은 결과를 보여주었다.
향후 과제로는 악성코드 여부 판별에 더불어 악성코드일 경우 어떤 유형의 악성코드 인지 분류 해주는 기능이 있다면 분석가나 사용자의 입장에선 분석이 보다 수월하고 편리할 것이다. 그리고 탐지율을 향상시키기 위해서 SVM 알고리즘의 단점을 보완해 줄 수 있는 다른 머신러닝 알고리즘을 추가로 도입하거나 악성코드 분류별로 탐지를 하는 방안도 고려해볼 수 있을 것이다. 마지막으로 안드로이드뿐만 아니라 iOS에 대한 악성코드 자동화 분석 모델에 대한 연구도 필요하다. 현재까지는 YSO_MobSF라는 가상환경이 iOS 분석을 지원하고 있다.
하나 이상의 예시적인 구현에서, 여기서 제시된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 통해 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나, 또는 이들을 통해 전송될 수 있다. 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 일 장소에서 다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하기 위한 임의의 매체를 포함하는 통신 매체를 포함한다. 저장 매체는 범용 컴퓨터 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있는 임의의 가용한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 다른 자기 저장 장치들, 또는 명령 또는 데이터 구조의 형태로 요구되는 프로그램 코드 수단을 저장하는데 사용될 수 있고, 범용 컴퓨터, 특수목적의 컴퓨터, 범용 프로세서, 또는 특별한 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
또한, 임의의 연결 수단이 컴퓨터 판독가능한 매체로 간주될 수 있다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL), 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들을 통해 전송되는 경우, 이러한 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들이 이러한 매체의 정의 내에 포함될 수 있다. 여기서 사용되는 disk 및 disc은 컴팩트 disc(CD), 레이저 disc , 광 disc, DVD, 플로피 disk, 및 블루-레이 disc를 포함하며, 여기서 disk는 데이터를 자기적으로 재생하지만, disc은 레이저를 통해 광학적으로 데이터를 재생한다. 상기 조합들 역시 컴퓨터 판독가능한 매체의 범위 내에 포함될 수 있다.
당업자는 상술한 다양한 예시적인 엘리먼트, 컴포넌트, 논리블록, 모듈 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 하기 위해, 다양한 예시적인 소자들, 블록, 모듈 및 단계들이 그들의 기능적 관점에서 기술되었다. 이러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다. 당업자는 이러한 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 이러한 구현 결정이 본 발명의 영역을 벗어나는 것은 아니다.
본 개시물과 관련하여 기재되는 다양한 예시적인 논리 블록들 및 모듈들은 범용 프로세서, 디지털 신호 처리기(DSP), 주문형 반도체(ASIC), 필드 프로그램어블 게이트 어레이(FPGA) 또는 다른 프로그램어블 논리 디바이스, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들 또는 여기서 기재되는 기능들을 구현하도록 설계되는 임의의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서 일 수 있지만; 대안적 실시예에서, 이러한 프로세서는 기존 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서, 또는 이러한 구성들의 조합과 같이 계산 장치들의 조합으로서 구현될 수 있다.
하드웨어 구현에 대하여, 여기에서 개시되는 양상들과 관련하여 설명되는 프로세싱 유닛들의 다양한 예시적인 로직들, 로직 블록들 및 모듈들은, 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 처리기들(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그래밍가능한 로직 디바이스(PLD)들, 필드 프로그래밍가능한 게이트 어레이(FPGA)들, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 범용 목적의 프로세서들, 제어기들, 마이크로-컨트롤러들, 마이크로프로세서들, 여기에서 설명되는 기능들을 수행하도록 설계되는 다른 전자 유닛들, 또는 이들의 조합에서 구현될 수 있다. 범용-목적 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 임의의 기존의 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합(예컨대, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 관련된 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 적절한 구성)으로 구현될 수 있다. 추가적으로, 적어도 하나의 프로세서는 여기에서 설명되는 단계들 및/또는 동작들 중 하나 이상을 구현할 수 있는 하나 이상의 모듈들을 포함할 수 있다.
게다가, 여기에서 설명되는 다양한 양상들 또는 특징들은 표준 프로그래밍 및/또는 엔지니어링 기법들을 사용하는 방법, 장치, 또는 제조물로서 구현될 수 있다. 또한, 여기에서 개시되는 양상들과 관련하여 설명되는 방법 또는 알고리즘의 단계들 및/또는 동작들은 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들의 조합으로 직접 구현될 수 있다. 추가적으로, 몇몇의 양상들에서, 방법 또는 알고리즘의 단계들 또는 동작들은 기계-판독가능 매체, 또는 컴퓨터-판독가능 매체 상의 코드들 또는 명령들의 세트의 적어도 하나의 또는 임의의 조합으로서 존재할 수 있으며, 이는 컴퓨터 프로그램 물건으로 통합될 수 있다. 여기에서 사용되는 용어 제조물은 임의의 적절한 컴퓨터-판독가능 디바이스 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
1 : 웹 크롤러
2 : 분석 서버
3 : 데이터베이스

Claims (7)

  1. 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 분석대상 파일을 수집하는 웹 크롤러;
    상기 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 분석 서버; 및
    기존에 분석된 파일에 대한 정보를 저장하고 있으며, 상기 분석대상 파일의 바이너리 파일, 파일 메타정보 정보, 탐지정보, 분석정보를 포함한 분석결과 파일을 저장하는 데이터베이스;를 포함하는 AI 기반 안드로이드 악성코드 자동화 분석 시스템.
  2. 제1항에 있어서,
    상기 분석대상 파일은 APK 파일인 AI 기반 안드로이드 악성코드 자동화 분석 시스템.
  3. 제1항에 있어서,
    상기 인공지능 기반은 딥러닝 기반인 AI 기반 안드로이드 악성코드 자동화 분석 시스템.
  4. 제3항에 있어서,
    상기 분석대상 파일의 특징들을 정적 분류와 동적 분류에 적용하여 상기 분석대상 파일의 악성코드 여부를 출력시키되, 정적 분류 및 동적 분류는 딥러닝 기반 분류로서, 사전에 학습된 학습 데이터(Train set)을 가지고, 학습된 학습 데이터(Train set)와 비교하여 분석대상 파일의 악성여부를 판단하는 AI 기반 안드로이드 악성코드 자동화 분석 시스템.
  5. (a) 웹 크롤러가 요청된 검색 정보에 대응하여 인터넷 상에 존재하는 안드로이드 어플리케이션에 대한 정보를 반복적으로 검색하여 APK 파일을 포함하는 분석대상 파일을 수집하는 단계;
    (b) 분석 서버가 분석대상 파일을 파싱하여 인공지능 기반 학습을 수행하여 악성코드 여부를 탐지 및 분석하는 단계; 및
    (c) 상기 분석 서버가 분석대상 파일의 바이너리 파일과, 파일 메타정보 정보, 탐지정보, 분석정보를 포함하는 분석결과 파일을 데이터베이스에 저장하는 단계;를 포함하는 AI 기반 안드로이드 악성코드 자동화 분석 방법.
  6. 제5항에 있어서,
    상기 (b) 단계는,
    상기 분석대상 파일의 특징들을 정적 분류와 동적 분류에 적용하여 상기 분석대상 파일의 악성코드 여부를 출력시키되, 정적 분류 및 동적 분류는 딥러닝 기반 분류로서, 사전에 학습된 학습 데이터(Train set)을 가지고, 학습된 학습 데이터(Train set)와 비교하여 분석대상 파일의 악성여부를 판단하는 AI 기반 안드로이드 악성코드 자동화 분석 방법.
  7. 제6항에 있어서,
    상기 데이터베이스를 참조하여 상기 분석대상 파일이 리스트에 존재하지 않을 경우에는 분석대상 파일 및 그 파일정보를 업로드하는 단계;
    상기 파일정보를 참조하여 정적 작업큐 및 동적 작업큐에 각각 등록하는 단계;
    작업큐에서 등록된 작업을 순차적으로 호출하여 해당 작업의 분석대상 파일에 대한 정보를 수집하는 단계;
    수집된 정보를 바탕으로 정적 특징(Feature)과 동적 특징(Feature)을 추출하는 단계;
    추출된 특징(Feature)들을 상기 데이터베이스에 저장하는 단계;
    추출된 특징들을 분류기에 입력하고, 분류기의 출력에 따라 해당 분석대상 파일을 분류하고 악성코드 여부를 판별하는 단계; 및
    정적 분류와 동적 분류의 결과를 가중치를 부가하여 최종 결과를 도출하는 단계;를 포함하는 AI 기반 안드로이드 악성코드 자동화 분석 방법.
KR1020180119492A 2018-10-08 2018-10-08 Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법 KR20200039912A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119492A KR20200039912A (ko) 2018-10-08 2018-10-08 Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119492A KR20200039912A (ko) 2018-10-08 2018-10-08 Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20200039912A true KR20200039912A (ko) 2020-04-17

Family

ID=70460762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119492A KR20200039912A (ko) 2018-10-08 2018-10-08 Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20200039912A (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612479A (zh) * 2020-12-28 2021-04-06 厦门市美亚柏科信息股份有限公司 一种基于安卓设备的apk静态分析方法和设备
CN113886824A (zh) * 2021-09-29 2022-01-04 西安电子科技大学 安卓勒索软件检测防御方法、装置、设备及可读存储介质
CN114186229A (zh) * 2020-09-15 2022-03-15 中国电信股份有限公司 分类检测模型训练方法和装置、分类检测方法和装置
KR102495329B1 (ko) * 2022-08-10 2023-02-06 (주)케이엔비씨 높은 탐지율의 서비스백신 플랫폼 제공을 위해 lstm 방식을 이용한 악성코드 탐지 시스템
WO2023090864A1 (ko) * 2021-11-18 2023-05-25 주식회사 엔피코어 악성 이벤트로그 자동분석 장치 및 방법
KR20230073056A (ko) * 2021-11-18 2023-05-25 주식회사 엔피코어 악성 이벤트로그 자동분석 장치 및 방법
CN117009967A (zh) * 2023-07-26 2023-11-07 深圳安巽科技有限公司 一种恶意代码检测模型构建方法、系统及存储介质
KR102655883B1 (ko) * 2023-07-18 2024-04-09 주식회사 스틸리언 시그니처 기반의 악성 어플리케이션 탐지 방법 및 장치
CN117892301A (zh) * 2024-01-15 2024-04-16 湖北大学 少样本恶意软件的分类方法、装置、设备及介质
CN118296602A (zh) * 2024-04-17 2024-07-05 中国科学院信息工程研究所 一种逃避型恶意软件检测方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087007A (ko) 2016-01-19 2017-07-27 삼성전자주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087007A (ko) 2016-01-19 2017-07-27 삼성전자주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법

Non-Patent Citations (28)

* Cited by examiner, † Cited by third party
Title
[1] statcounet.com, smart phone OS share table, http://gs.statcounter.com/#mobile+tablet-os-ww-quarterly-201401-201604
[10] W. Glodek, R. Harang. " Rapid permission-based detection and analysis of mobile malware using random decision forest", Nov 2013.
[11] P.P.K. Chan, W.K. Song, " Static detection of android malware by using permission and api calls", July 2014.
[12] K.H. Kim, "A Hybrid Method for Android Malware Detection", Feb 2016
[13] H.S. Ham, M.J. Choi, "Analysis of android malware detection performance using machine learning classifiers", Oct 2013.
[14] S.W. Min, H.J. Cho, J.S. Shin, J.C. Ryou, " Android malware analysis and detection method using machine learning", Feb 2013.
[15] Idan Revivo, Ofer Caspi, "Automated Android Malware Analysis With Cuckoo Sandbox", Aug 2015, Black hat.
[16] https://github.com/ajinabraham/Mobile-Security-Framework-MobSF
[17] https://github.com/pjlantz/droidbox
[18] http://sanddroid.xjtu.edu.cn/
[19] Mika Kultanen, "Malware analysis system", May 2016
[2] scmagazineuk.com, http://www.scmagazineuk.com/updated-97-of-malicious-mobile-malware-targets-android/article/422783/
[20] J.A. Lee, "A malware deetection method in the android using system k-means clustering" Hoseo Uni, June 2015.
[21] 강현철 외 6명, "고객관계관리를 위한 데이터 마이닝 조사론", 자유아카데미.
[22] J.MacQueen "Some methods for classification and analysis of multivariate observations." In Proceedings of the Fifth Berkeley Symposium on Mathematical Statisticsand Probability.VolumeI, Statistics, L.M.LeCam and J.Neyman(Eds.).University of California Press, 1967
[23] Zhao Xiaoyan, Fang Juan, Wang Xiujuan. "Android malware detection based on permission". May 2014
[24] Alexander Statnikov, Constantin F. Aliferis, Duglas p. Hardin, Isabelle Guyon, "A Gentle Introduction to Support vector Machines in Biomedicine", World Scientific, 2011
[25] J.Y. Kwon, "Bankruptcy Prediction based on the Support Vector Machine and the Random Forest", Ewha Univ, Dec 2015.
[26] http://kooc.kaist.ac.kr/1609_machinelearning_1_3/joinLectures/7715
[27] H.S. Ham, "SVM-based Android Malware Detection", Kangwon Univ, Dec 2013.
[28] I. Ideses, A. Neuberger, "Adware detection and privacy control in mobile devices", Dec 2014
[3] Kaspersky report, https://securelist.com/analysis/kaspersky-security-bulletin/73839/mobile-malware-evolution-2015/
[4] 서승현, 전길수 , "스마트폰 보안 위협 및 대응 전략", TTA Jounal No.132, pages 44-48.
[5] T. J. Cho, H. K. Kim, J. H. Lee, M. G. Jung, J. H. Yi, "A Scheme for Indentifying Malicious Applications Based on API Characteristics", Nov 2015.
[6] 조정원, 박병욱, 남대현, 김형범, "안드로이드 모바일 악성코드와 모의 해킹 진단", 에이콘 2014.
[7] Balaji Baskaran, Anca Ralescu, " A Study of Android Malware Detection Techniques and Machine Learning", Apr 2016.
[8] H. Lee, S. Jang, J. Yoon, "Efficient Malware Detector for Android Devices", Aug 2014.
[9] Cheol. Jeon, J.H. Jang, B.J. Kim, J.M. Jung, Y.K. Cho "A Robust Permission-Based Malicious Application Filtering Scheme for Effective Android Application Reviews", Apr 2014.

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114186229A (zh) * 2020-09-15 2022-03-15 中国电信股份有限公司 分类检测模型训练方法和装置、分类检测方法和装置
CN112612479A (zh) * 2020-12-28 2021-04-06 厦门市美亚柏科信息股份有限公司 一种基于安卓设备的apk静态分析方法和设备
CN113886824A (zh) * 2021-09-29 2022-01-04 西安电子科技大学 安卓勒索软件检测防御方法、装置、设备及可读存储介质
CN113886824B (zh) * 2021-09-29 2024-06-04 西安电子科技大学 安卓勒索软件检测防御方法、装置、设备及可读存储介质
WO2023090864A1 (ko) * 2021-11-18 2023-05-25 주식회사 엔피코어 악성 이벤트로그 자동분석 장치 및 방법
KR20230073056A (ko) * 2021-11-18 2023-05-25 주식회사 엔피코어 악성 이벤트로그 자동분석 장치 및 방법
KR102495329B1 (ko) * 2022-08-10 2023-02-06 (주)케이엔비씨 높은 탐지율의 서비스백신 플랫폼 제공을 위해 lstm 방식을 이용한 악성코드 탐지 시스템
KR102655883B1 (ko) * 2023-07-18 2024-04-09 주식회사 스틸리언 시그니처 기반의 악성 어플리케이션 탐지 방법 및 장치
CN117009967A (zh) * 2023-07-26 2023-11-07 深圳安巽科技有限公司 一种恶意代码检测模型构建方法、系统及存储介质
CN117892301A (zh) * 2024-01-15 2024-04-16 湖北大学 少样本恶意软件的分类方法、装置、设备及介质
CN118296602A (zh) * 2024-04-17 2024-07-05 中国科学院信息工程研究所 一种逃避型恶意软件检测方法及系统

Similar Documents

Publication Publication Date Title
Surendran et al. A TAN based hybrid model for android malware detection
KR20200039912A (ko) Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
Sabhadiya et al. Android malware detection using deep learning
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
BR102015017215A2 (pt) método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório
Raghuraman et al. Static and dynamic malware analysis using machine learning
Aswini et al. Droid permission miner: Mining prominent permissions for Android malware analysis
Rana et al. Evaluation of tree based machine learning classifiers for android malware detection
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
WO2016054384A1 (en) Systems and methods for risk rating framework for mobile applications
Martín et al. Android malware characterization using metadata and machine learning techniques
CN105335655A (zh) 一种基于敏感行为识别的安卓应用安全性分析方法
Dehkordy et al. A new machine learning-based method for android malware detection on imbalanced dataset
CN109684837B (zh) 一种面向电力企业的移动应用恶意软件检测方法及系统
Leeds et al. A comparison of features for android malware detection
Pektaş et al. Android malware classification by applying online machine learning
Sachdeva et al. Android malware classification based on mobile security framework
Qiu et al. Predicting the impact of android malicious samples via machine learning
CN104504334A (zh) 用于评估分类规则选择性的系统及方法
Patel et al. Detection and mitigation of android malware through hybrid approach
Sun et al. Malware detection on Android smartphones using keywords vector and SVM
Guerra-Manzanares et al. Differences in android behavior between real device and emulator: a malware detection perspective
Surendran et al. Detection of malware applications from centrality measures of syscall graph
Yang et al. Android malware detection using hybrid analysis and machine learning technique

Legal Events

Date Code Title Description
E601 Decision to refuse application