안드로이드악성앱탐지 TUTORIAL 1 소개 안드로이드앱에서추출한여러가지특성을기반으로악성앱을탐지하는샘플모델을소개합니다. * 튜토리얼에서소개되는모델은참고문헌중하나인 Andro-profiler 의작동원리를기반으로하고있습니다. 탐지알고리즘에대한상세한내용은사이트에첨부한논문에서확인하실수있습니다. ** 이번 Data Analysis Challenge 에제공될안드로이드앱은튜토리얼에서사용한데이터셋과수량및파일이다를수있습니다. 2 악성행위프로파일링 먼저안드로이드앱의행위를프로파일링합니다. 안드로이드앱을동적분석할수있도록도와주는 sandbox 툴인 Droidbox 를이용하여, 앱의악성행위와관련된시스템로그를추출합니다. 추출한시스템로그는다음과같이 object 와 operation 에서정의한형태로프로파일링합니다. 2.1 OBJECT 악성행위의큰분류를의미합니다. 안드로이드악성앱샘플들을직접분석하여, 크게 Telephony Phone Network 로분류하였습니다. 2.2 OPERATION 악성행위의상세한동작정보를의미합니다. Operation 은다음과같이 operation-name, operation-target, operation-attribute 의조합으로정의됩니다. Operation ::= {Operation-name : {Operation-target : Operation-attribute}}
Operation-name: 악성행위의종류를말하며, Sending SMS Calling Sending sensitive information Converting data 로분류합니다. Operation-target: 악성행위의목표물을말하며, Premium-rate SMS/number deviceid IMEI IMSI MCC MNC 등이있습니다. Operation-attribute: 목표물에서얻어낸의미있는정보를말합니다. 예를들어, country code 의 attribute 으로는 Korea 가있습니다. 2.3 예시 아래 Table 2 는 network object 와관련된 operation 값의예시를보여줍니다. 이정보를프로파일링하면 {Network : {Sending sensitive information : {{IMEI : 357242043237517}, {MCC : 310}, {MNC : 260}, {Location : GPS Coordinates }, } } } 와같이표현할수있습니다.
3 행위프로파일을이용한안드로이드앱분류 3.1 악성앱탐지 본논문에서사용한안드로이드앱데이터셋에서는악성행위의종류 (operation-name) 가총 4 가지 sending of premium-rate SMS, calling of premium-rate number, sending of sensitive information, converting data for transmission 였습니다. 행위프로파일링을통해 4 가지중어떠한악성행위와도관련된동작이없다면정상앱 (benign) 으로분류합니다. 4 가지중하나라도해당하는행위가발생하였다면악성앱 (malware) 로분류합니다. 3.2 악성앱분류 1 본논문에서는악성여부를탐지한이후, 추가적으로악성으로분류된앱에대해유사도분석을통해패밀리를분류하였습니다. 먼저, behavior factor 를악성행위종류에따라 4 가지로나눕니다. Sending premium-rate SMS (SS) Calling premium-rate number (CS) Sending sensitive information (SIS) Converting data (CDS) 각 behavior factor 의유사도 (BFS, similarity of behavior factor) 점수를 Table 3 과같은기준으로부여합니다. 유사도점수를부여할때에는각패밀리의악성행위를대표적으로나타낼수있는행위프로파일을기준으로설정하여비교합니다. 각 BFS 점수에는가중치를적용하여그합계로특정패밀리와의유사도점수를산출합니다. 1 2018 년도데이터챌린지 AI 기반안드로이드악성앱탐지트랙에서는악성앱패밀리분류는 필수사항이아니므로참고하시기바랍니다.
본논문에서는여러번의실험을거쳐가장성능이잘나오는가중치를확인하여적용했습니다. SS 에는 0.33, CS 에는 0.33, SIS 에는 0.21, CDS 에는 0.13 의가중치를주었습니다. 각패밀리를대표하는행위프로파일은두가지방법으로업데이트할수있습니다. Method 1: 새로운악성앱이특정패밀리로분류되었을때, 해당패밀리의대표프로파일과추가된앱의프로파일의교집합 (intersection) 을새로운대표프로파일로업데이트합니다. Method 2: 새로운악성앱이특정패밀리로분류되었을때, 해당패밀리의대표프로파일과추가된앱의프로파일의합집합 (union) 을새로운대표프로파일로업데이트합니다. 4 실험 4.1 사용한데이터셋 8,840 개의정상앱과 643 개의악성앱으로구성된데이터셋을사용하여실험을 진행하였습니다. 정상앱과악성앱의패밀리분포는 Table 5 와같습니다.
4.2 실험환경 제시한안드로이드악성앱분류모델을구현하여실험한환경은다음과같습니다. Intel(R) Xeon(R) X5660 processor 4 GB RAM 32-bit Ubuntu 12.04 LTS operating system 4.3 실험결과 구현한모델로악성앱을탐지하고, 패밀리를분류한결과는 Table 9 와같습니다. 악성앱의탐지정확도는 method 1, method 2 모두 98% 로측정되었습니다. 챕터 3.2 에서 설명한것과같이 method 1 은교집합방식으로패밀리대표프로파일을업데이트한경우이고,
method 2 는합집합방식으로패밀리대표프로파일을업데이트한경우입니다. 또한, Burguera I, et al. 이 2011 년제안한 Crowdroid 시스템과도비교하였으며, 성능이더욱좋은것을확인할수있었습니다. 실험한환경에서의탐지및분류속도는 55 초 /MB 로측정되었습니다. 안드로이드에뮬레이터의부팅시간은제외한속도입니다. 작동시간의대부분은행위프로파일을작성하는데쓰였으며, 악성앱을탐지 / 분류하는데에는 0.2 초 /MB 정도만소요되었습니다. 5 탐지율평가기준 Actual Class Category Malware Benign Malware True Positive False Positive Estimated Class Benign False Negative True Negative True Positive 는실제 Malware(True) 를 Malware(True) 로정확하게예측한상황을의미하며, False Positive 는실제 Bengin(False) 을 Malware(True) 로예측한상황을의미합니다. False Negative 는실제 Malware(True) 를 Bengin(False) 로예측한상황을의미하며, True Negative 는실제 Benign(False) 를 Benign(False) 로예측한상황을의미합니다. 탐지결과가위표와같을때, 전체결과중정상앱과악성앱을정확히탐지한비율을측정합니다. Accuracy = True Positive + True Negative True Positive + False Positive + False Negative + True Negative
6 REFERENCE 본튜토리얼에서소개되는모델은참고문헌중하나인 Andro-profiler 의작동원리를기반으로하고있습니다. 논문파일은데이터챌린지사이트에서다운로드받을수있습니다. Jae-wook Jang, Jaesung Yun, Aziz Mohaisen, Jiyoung Woo, and Huy Kang Kim, "Detecting and classifying method based on similarity matching of Android malware behavior with profile," SpringerPlus 5:273, 2016. 본데이터분석챌린지에서제공하는데이터셋을기반으로논문을작성할경우, 해당논문을반드시인용해야합니다.