본 연구는 안드로이드정적분석을 기반으로 추출된 AndroidManifest 권한 특징을 통해 악성코드를 탐지하고자 한다. 특징들은 AndroidManifest의 권한을 기반으로 분석에 대한 자원과 시간을 줄였다. 악성코드 탐지 모델은 1500개의 정상어플리케이션과 500개의 악성코드들을 학습한 SVM(support vector machine), NB(Naive Bayes), GBC(Gradient Boosting Classifier), Logistic Regression 모델로 구성하여 98%의 탐지율을 기록했다. 또한, 악성앱 패밀리 식별은 알고리즘 SVM과 GPC (Gaussian Process Classifier), GBC를 이용하여 multi-classifiers모델을 구현하였다. 학습된 패밀리 식별 머신러닝 모델은 악성코드패밀리를 92% 분류했다.
본 연구는 안드로이드 정적분석을 기반으로 추출된 AndroidManifest 권한 특징을 통해 악성코드를 탐지하고자 한다. 특징들은 AndroidManifest의 권한을 기반으로 분석에 대한 자원과 시간을 줄였다. 악성코드 탐지 모델은 1500개의 정상어플리케이션과 500개의 악성코드들을 학습한 SVM(support vector machine), NB(Naive Bayes), GBC(Gradient Boosting Classifier), Logistic Regression 모델로 구성하여 98%의 탐지율을 기록했다. 또한, 악성앱 패밀리 식별은 알고리즘 SVM과 GPC (Gaussian Process Classifier), GBC를 이용하여 multi-classifiers모델을 구현하였다. 학습된 패밀리 식별 머신러닝 모델은 악성코드패밀리를 92% 분류했다.
This study focuses on detection of malicious code through AndroidManifest permissoion feature extracted based on Android static analysis. Features are built on the permissions of AndroidManifest, which can save resources and time for analysis. Malicious app detection model consisted of SVM (support ...
This study focuses on detection of malicious code through AndroidManifest permissoion feature extracted based on Android static analysis. Features are built on the permissions of AndroidManifest, which can save resources and time for analysis. Malicious app detection model consisted of SVM (support vector machine), NB (Naive Bayes), Gradient Boosting Classifier (GBC) and Logistic Regression model which learned 1,500 normal apps and 500 malicious apps and 98% detection rate. In addition, malicious app family identification is implemented by multi-classifiers model using algorithm SVM, GPC (Gaussian Process Classifier) and GBC (Gradient Boosting Classifier). The learned family identification machine learning model identified 92% of malicious app families.
This study focuses on detection of malicious code through AndroidManifest permissoion feature extracted based on Android static analysis. Features are built on the permissions of AndroidManifest, which can save resources and time for analysis. Malicious app detection model consisted of SVM (support vector machine), NB (Naive Bayes), Gradient Boosting Classifier (GBC) and Logistic Regression model which learned 1,500 normal apps and 500 malicious apps and 98% detection rate. In addition, malicious app family identification is implemented by multi-classifiers model using algorithm SVM, GPC (Gaussian Process Classifier) and GBC (Gradient Boosting Classifier). The learned family identification machine learning model identified 92% of malicious app families.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 연구는 이러한 급증하고 있는 안드로이드 악성 코드를 빠른 시간 안에 정적분석을 기반 머신러닝 모델을 구축하여 악성코드를 탐지하고 리패키징을 통한 악성코드 패밀리 식별을 목표로 한다.
가설 설정
4. 새로운 APK파일이 주어지면 1,2 과정과 동일하게 특징을 추출하여 테스팅 세트에 저장된다. 생성된 모델들은 저장된 특징을 바탕으로 악성코드 탐지 및 악성코드 패밀리 구분을 실시한다.
제안 방법
3. 각각의 모델들은 저장된 트레이닝 세트를 통해서 학습을 실시하며, 총 8가지의 모델들이 악성코드 탐지와 악성코드 패밀리 탐지로 나뉘어 생성된다.
1 장에서 언급한 130여개의 권한과 관련된 API를 정리했으며 Table 3은 권한별 민감한 API매칭의 일부분을 보여준다. 관련된 API들은 Dex 파일 파싱을 통해 클래스 및 메소드의 문자열 값을 추출하였으며 매칭 결과에 따라 사용된 권한과 사용되지 않은 권한을 구분하여 특징으로 사용하였다.
본 연구는 정적분석 권한 기반으로 머신러닝을 이용하여 악성코드를 분류하였다. 악성코드 탐지 및 패밀리 식별 결과 98%, 92%로 높은 수치를 얻었다.
본 연구에서 구현된 API는 총 3가지로 구현되었으며, preparing_data 함수는 어플리케이션의 데이터를 추출하여 몽고 DB에 Json 형태로 저장하는 함수이다. measure_accuracy는 저장된 특징들을 통해 머신러닝에 학습시키고 테스팅하는 함수이다.
본 연구에서 제안하는 모델은 악성코드 탐지부분과 악성코드 패밀리 분류 부분으로 구성되며 악성코드 탐지 부분은 SVM, NB, GBC, Logistic Regression로 구성 되었다. 마찬가지로 패밀리 식별은 SVM, GBC, GPC 1vs1, GPC 1vsRest multi- classifiers 모델로 구축되었다.
정적분석을 위해 약 2000개의 어플리케이션을 apk parse를 이용하여 특징들을 추출하였다. apk parse는 오픈소스 툴로서 APK파일에 대한 MD5 값, 파일 사이즈, SDK 버전 정보, 라이브러리 정보, 안드로이드 권한 및 컴포넌트 정보 등을 제공해 준다.
대상 데이터
apk parse는 오픈소스 툴로서 APK파일에 대한 MD5 값, 파일 사이즈, SDK 버전 정보, 라이브러리 정보, 안드로이드 권한 및 컴포넌트 정보 등을 제공해 준다. Table 2와 같이 악성코드에서 많이 사용되고 있는 130여개의 권한을 특징으로 선택하였으며 APK파일에서 추출된 권한목록을 입력데이터로 활용하여 악성코드 탐지 및 악성코드 패밀리식별에 사용하였다.
정상어플리케이션 1500개 악성코드 500개의 트레이닝 세트를 통해 머신러닝 모델을 구축하였다. 마찬가지로 테스팅 세트 1500개의 정상어플리케이션과 500개의 악성코드로 구성되었다. 추출된 특징들을 트레이닝한 시간은 평균 10.
본 실험에 사용된 서버의 성능은 Table 6과 같으며, 실험에 사용된 데이터는 정보보호 R&D 데이터 챌린지의 어플리케이션을 활용했다.
본 실험에 사용된 서버의 성능은 Table 6과 같으며, 실험에 사용된 데이터는 정보보호 R&D 데이터 챌린지의 어플리케이션을 활용했다. 정상어플리케이션 1500개 악성코드 500개의 트레이닝 세트를 통해 머신러닝 모델을 구축하였다. 마찬가지로 테스팅 세트 1500개의 정상어플리케이션과 500개의 악성코드로 구성되었다.
성능/효과
2. 확인된 권한들은 머신러닝에 사용되기 위해서 사용 및 사용되지 않은 권한으로 구분하여 저장되어지며, 매칭된 API도 몽고DB에 트레이닝 세트로 저장되어 진다.
또한, 구축된 모델을 통해 2000개를 테스팅 하는데 평균 66초라는 결과를 얻었다. 기존 연구에서 사용된 정적분석의 특징들에 더 나아가 실제 악성코드를 분석 하여 사용되는 API와 권한들을 최적화하여 특징들을 적용하였으며, 이를 통해 정적분석에 대한 시간을 줄이면서 악성코드 탐지 및 패밀리 식별에서 높은 결과를 얻을 수 있었다.
악성코드 탐지 및 패밀리 식별 결과 98%, 92%로 높은 수치를 얻었다. 또한, 구축된 모델을 통해 2000개를 테스팅 하는데 평균 66초라는 결과를 얻었다. 기존 연구에서 사용된 정적분석의 특징들에 더 나아가 실제 악성코드를 분석 하여 사용되는 API와 권한들을 최적화하여 특징들을 적용하였으며, 이를 통해 정적분석에 대한 시간을 줄이면서 악성코드 탐지 및 패밀리 식별에서 높은 결과를 얻을 수 있었다.
본 연구에서 airpush 악성코드와 정상어플리케이션을 비교 분석한 결과 READ_EXTERNAL_STORAGE 및 INTERNET 권한을 통해 악성행위를 실시하여 정상 어플리케이션과 다른 뚜렷한 특징이 없었다. API경우에도 Evironment.
본 연구는 정적분석 권한 기반으로 머신러닝을 이용하여 악성코드를 분류하였다. 악성코드 탐지 및 패밀리 식별 결과 98%, 92%로 높은 수치를 얻었다. 또한, 구축된 모델을 통해 2000개를 테스팅 하는데 평균 66초라는 결과를 얻었다.
이러한 정적분석을 통해 Andro-AutoPsy Anti -malware 시스템은 인증서, 악성행위 관련 API, 권한, 인텐트 등의 정적분석 특징을 사용하여 99.45%라는 탐지 결과를 도출하였다. 하지만 악성 코드 패밀리 분류에서는 다소 저조한 결과를 얻었다[4].
마찬가지로 테스팅 세트 1500개의 정상어플리케이션과 500개의 악성코드로 구성되었다. 추출된 특징들을 트레이닝한 시간은 평균 10.952초이며, 악성코드를 탐지한 시간은 55.529초로 총 66.481초의 시간이 걸렸다. Table 7과 같이 실험된 테스팅 세트를 통해 True Negative 1491, True Positive 474로 98.
후속연구
본 연구는 급증하는 악성코드에 대한 자동탐지 및 조기대응에 대한 하나의 방법이 될 수 있다. 추후연구로 클래스와 메소드에 대한 인자값 및 시퀀스 분석과 악성코드 난독화를 대응하기 위한 so파일 분석 및 동적 분석을 적용할 예정이다.
질의응답
핵심어
질문
논문에서 추출한 답변
AndroidManifest.xml은 어떤 툴을 이용하여 정보 추출이 가능한가?
AndroidManifest.xml은 apk parse, aapt, apktool툴을 이용하여 정보를 추출이 가능하다[6][7]. 이러한 권한에 값을 설정한 후 리스크를 계산하여 악성코드를 탐지할 수 있다[8].
APK를 구성하는 폴더 중 res는 무엇인가?
• res는 컴파일 되지 않은 이미지 및 xml 리소스 파일들이 존재하는 폴더이다.
classes.dex는 어떤 파일인가?
• classes.dex는 안드로이드 Dalvik 가상머신이 인식할 수 있도록 class 파일을 모두 취합하여 바이트 코드로 변환한 파일이다.
참고문헌 (13)
"Mobile trends in 2015," KT Economic Management Institute, Jan. 2015
IDC, "http://www.idc.com/promo/smartphone-market-share/vendor", Mar, 2017
"Threat Report", McAfee Labs, Dec. 2017
Jang, Jae-wook, et al. "Andro-autopsy: Anti-malware system based on similarity matching of malware and malware creator-centric information," Digital Investigation, vol.14, pp.17-35. 2015
Suarez-Tangil, Guillermo, et al. "DroidSieve: Fast and accurate classification of obfuscated android malware," Proceedings of the Seventh ACM on Conference on Data and Application Security and Privacy. pp. 309-320, Mar. 2017.
Android-apktool: A tool for reengineering Android apk files. "https://ibotpeaches.github.io/Apktool/," 2018
Sarma, Bhaskar Pratim, et al. "Android permissions: a perspective combining risks and benefits," Proceedings of the 17th ACM symposium on Access Control Models and Technologies. pp. 13-22, Jun 2012.
Dalvik Executable format, https://source.android.com/devices/tech/dalvik/dex-format, 2018
Yang, Zhemin, and Min Yang. "Leakminer: Detect information leakage on android with static taint analysis," Software Engineering (WCSE), 2012 Third World Congress on, pp. 101-104, Nov, 2012.
Pedregosa, Fabian, et al. "Scikitlearn: Machine learning in Python," Journal of machine learning research, pp.2825-2830. 12. Oct, 2011
Peiravian, Naser, and Xingquan Zhu. "Machine learning for android malware detection using permission and api calls," Tools with Artificial Intelligence (ICTAI), 2013 IEEE 25th International Conference on, pp.300-305, Nov. 2013.
Ham, Hyo-Sik, and Mi-Jung Choi. "Analysis of android malware detection performance using machine learning classifiers," ICT Convergence (ICTC), 2013 International Conference on, pp.490-495, Oct, 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.