3 안드로이드모바일악성앱분석방법에대한연구 FOCUS 배한철 최근활발한스마트폰의보급으로모바일앱의사용역시크게늘어가고있다. 모바일앱의사용이일상화되어가는동시에특히국내에서높은점유율을보이고있는안드로이드에대한악성코드역시빠르게늘어나고있다. 본고에서는그러한안드로이드모바일앱에대한악성코드를분석방법을연구하고이러한분석방법의활용방안을확인해보고자한다. Ⅰ. 스마트폰에대한보안위협현황 1. 국내스마트폰이용현황 2. 모바일보안위협현황 Ⅱ. 모바일앱의분석 1. 안드로이드플랫폼환경의주요용어소개 2. 정적분석방법 3. 동적분석방법 Ⅲ. 모바일앱분석도구소개 1. 정적분석도구 2. 동적분석도구 Ⅳ. 결론 한국인터넷진흥원응용기술팀선임연구원 (hcbae@kisa.or.kr0 Internet & Security Focus 2013 6 월호 59
Ⅰ. 스마트폰에대한보안위협현황 1. 국내스마트폰이용현황 2009 년 11월 28일아이폰의국내정식출시를시작으로스마트폰의보급과그이용이빠르게늘어나기시작하여 2012 년 8월에이르러서는국내스마트폰이용자가 3,000 만명을넘어서게되었다. 방송통신위원회의무선통신서비스현황자료 ( 방송통신위원회, 유무선통신가입자현황 (2012 년전체 ); 방송통신위원회, 유무선통신가입자현황 (2013 년 1월말기준 ) 에따르면, 2012 년 1월부터 12월까지이동통신가입자수는 5,261 만명에서 5,362 만명으로약백만명이늘어나는데그쳤지만, 같은기간스마트폰가입자수는 2,376 만명에서 3,272 만명으로약 9백만명이늘어났다. [ 그림 1] 2013 년 1 월무선통신서비스현황, 출처 : 방송통신위원회, 2013.3 그뿐만아니라 [ 그림 1] 에서보는바와같이 2013 년 1 월기준국내이동전화가입자수는 5,300 만여명으로스마트폰이용자는그절반이상인 3,300 만에이르고있다. 60 Internet & Security Focus 2013 6 월호
이처럼급격히확대된스마트폰의보급과더불어국내모바일시장에서는안드로이드플랫폼의성장세가특히높게나타나고있다. 글로벌시장조사업체스탯카운터 (StatCounter) 의조사를따르면, 2013 년 3월기준국내모바일플랫폼점유율은안드로이드가 90% 를차지하고있다. 대부분의국내스마트폰이용자가안드로이드폰을사용하고있는것이다. FOCUS [ 그림 2] 국내모바일플랫폼점유율, 출처 : 스탯카운터, 2013.3 높은스마트폰의보급을통해모바일앱의사용빈도역시높아졌다. 한국인터넷진흥원의 2012년하반기스마트폰이용실태조사자료 ( 한국인터넷진흥원, 2012년하반기스마트폰이용실태조사 ) 에의하면스마트폰에설치된모바일앱의수는평균 46.1 개로조사되었다. 스마트폰기능별이용비중도무선인터넷및모바일앱이 48.8% 로가장높게나타났다. 그리고스마트폰이용자중하루 1번이상모바일앱을다운로드받는비중이 21.3% 에이르고주평균 13.1 개정도다운로드받는것으로조사되었다. [ 그림 3] 2012 년상반기스마트폰이용실태조사, 출처 : 한국인터넷진흥원, 2013.1 Internet & Security Focus 2013 6 월호 61
2. 모바일보안위협현황스마트폰보급이확대되고그사용이일상화되는가운데, 국내모바일플랫폼정유율 90% 를차지하는안드로이드플랫폼을대상으로하는악성코드가크게증가하고있다. 보안업체 F-SECURE 의보고서 (F-Secure, Mobile Threat Report Q4 2012) 를보면, 2010 년에는발견된악성코드유형이 9가지에불과했지만 2011 년에는 120 가지, 2012 년에는 238 가지새로운유형의악성코드가발견되었다. [ 그림 4] 분기별신규악성코드유형발견수, 출처 : F-SECURE, 2013.3 또한, 안드로이드플랫폼을대상으로하는 APK 형태의악성파일도계속해서증가하여, 그수가 2011 년 1분기에는 107 개에서 2012 년 2분기에는 5,033 개, 2012 년 4분기에는 60,326 개로급증하였다. 이처럼안드로이드플랫폼을대상으로하는악성코드가큰증가세로지속해서발견되고있어서큰피해가예상된다. [ 그림 5] 분기별 APK 형태의보안위협발견수, 출처 : F-SECURE, 2013.3 62 Internet & Security Focus 2013 6 월호
현재대부분의안드로이드악성코드는블랙마켓을통해유포되고있다. 중국최대의블랙마켓 GFAN 에서만약 78,000 개의모바일앱이유포되고있고주요인기앱의누적다운로드수는백만을가볍게넘기고있다. 2012 년 8월보안업체 TrustGo에의하면, GFAN 을통해유포된안드로이드악성코드 SMSZombie 의경우, 중국에서만약 50만대가량의단말기가감염된것으로추산하고있다. 이러한사례로볼때, 블랙마켓이안드로이드악성코드의주요유포지라는것은의심할여지가없다. 블랙마켓을통해유포되는악성앱에는직접적으로악성코드를포함한모바일앱도있지만, 그자체는악성코드를포함하고있지않지만, 악성행위를하는파일을추가로다운로드하여설치하는모바일앱도있다. 특히인기모바일앱에악성코드를추가하여재배포하는형태로사용자를속이는예도있어주의가필요하다. FOCUS 실제 2010 년 11월경에보고된 Geinimi 라는진단명의모바일악성코드는합법적인게임프로그램으로위장해사용자가정상프로그램으로알고다운로드및설치하도록유도하였다. Monkey Jump 2, Sex Positions, President vs. Aliens, City Defense, Baseball Superstars 2010 등이변조에사용된정상모바일앱이다. 변조된악성코드는정상모바일앱과는달리일정간격으로단말기의정보를외부로유출하고, 원격지의명령을통한전화발신과 SMS 발송및삭제도실행할수있다. 또한, 원격서버로부터명령을받아유해사이트에접속을시도하는등의악성행위도가능하다. [ 그림 6] 모바일악성코드를통한다양한보안위협 Internet & Security Focus 2013 6 월호 63
안드로이드악성앱을방지하려는방안으로, 안드로이드플랫폼을만든구글은 2012 년 2월멀웨어방지프로그램 바운서 를안드로이드정식마켓 ( 구글플레이 ) 에적용하였다. 하지만이역시현재이를우회하는방법이알려졌다. 그방법은두단계로구성되는데, 첫단계로공격자가새로운악성코드에감염된앱설치파일을구글의마켓에업로드하고, 바운서가그앱을설치및실행하는동안악성코드가탑재된앱에서바운서의가상스마트폰환경에대한정보를탈취하여공격자에게전송한다. 두번째단계로, 공격자는탈취한앱의검사환경정보를이용하여악성코드가해당환경에서 동작하지않도록수정등록하여검사를회피한다. 공격자 바운서 ( 악성코드검사시스템 ) 1 공격자가개발한악성앱업로드 구글플레이마켓 2' 바운서 ' 테스트환경정보콜백 3 테스트환경에맞추어악성코드수정 4 수정된악성코드삽입한앱업로드 5 테스트를우회하여마켓에등록됨 [ 그림 7] Summercom 에소개된바운서우회방법, 출처 : 한국인터넷진흥원 이처럼바운서우회기술을통해서악성앱이업로드될가능성도있기때문에구글의정식 마켓을통한악성코드유포도간과할수없는상황이다. 최근보안업체트렌드마이크로 (Trend Micro) 가 200 만개의안드로이드앱을조사한결과로그중약 29만개의모바일앱이멀웨어였다고발표하였다. 문제는 29만개의멀웨어중약 7만개는안드로이드의정식마켓인구글플레이스토어에서다운로드받은앱이라는점이다. 이는구글의정식마켓에서다운로드받은모바일앱들은악성코드로부터안전하다고장담할수없다는게증명된셈이다. 구글에서도이러한악성앱으로부터사용자의단말기를보호하기위해서 2012 년 11월안드로이드 4.2 버전과함께 어플리케이션검증서비스 적용을발표하였다. 하지만노스캐롤라이나주립대학의컴퓨터학과부교수인 Xuxian Jiang 교수에따르면이서비스역시아직멀웨어탐지율이 15% 에그치는것으로조사되었다. 64 Internet & Security Focus 2013 6 월호
현재블랙마켓을통해많은사용자가악성코드에노출되어있고심지어구글의정식마켓조차안심하고다운로드할수없는상황이다. 그래서특정모바일앱이악성행위를실행하는여부를검증하는것은매우중요한일이다. 지금부터모바일앱을검증하기위한분석방법에대해서알아보자. FOCUS Ⅱ. 모바일앱의분석 1. 안드로이드플랫폼환경의주요용어소개 모바일앱에대한분석방법을알아보기에앞서, 안드로이드앱분석의위한주요용어에대해 먼저알아보자. 1) APK (Android Package) APK 는안드로이드플랫폼에서어플리케이션설치를위해배포되는패키지파일을의미하는것으로응용프로그램의정보및권한이명시된 AndroidManifest.xml 파일, 모든클래스바이너리파일정보가압축된 classes.dex 달빅가상머신실행파일, 패키지이미지등의리소스파일들이하나의파일로압축된 ZIP 파일포맷형태로구성된다. APK 파일의구성요소는다음과같다. - AndroidManifest.xml : 어플리케이션에대한설명및실행권한등의정보를가진 xml 형식의파일 - classes.dex : 달빅가상머신에서동작하는바이너리실행파일 - /res : 컴파일되지않은리소스파일 ( 아이콘, 이미지, 음악등 ) 들이포함된폴더 - META-INF : 배포시인증서로서명한내용, APK 파일내폴더, 파일에대한 SHA-1 해쉬값 - resources.arsc : 컴파일된리소스파일 2) DEX (Dalvik Executable) DEX 는달빅가상머신에맞게클래스파일을바이트코드로변환한파일을의미하는것으로 APK 파일에포함된앱의핵심실행파일포맷형태를가진 classes.dex 파일이이에해당한다. 자바코드를컴파일하여클래스파일을만든후다시 DEX 도구로압축한것이다. Internet & Security Focus 2013 6 월호 65
2. 정적분석방법 정적분석방법은프로그램을실행하지않은채소스코드분석만으로해당모바일앱에 대한악성행위를검증하는것을말한다. 안드로이드모바일앱에대한정적분석방법은단말기로부터사용자에의해설치된모바일 앱의 APK 파일을추출하고이를검증하는방법이다. 1) 모바일앱에대한요구권한분석 AndroidManifest.xml 파일을분석하여특정한권한을요구하는지확인한다. 예를들어 SEND_SMS, READ_SMS, RECEIVE_SMS 등의권한이 AndroidManifest.xml 에포함되어있다면해당모바일앱은사용자의 SMS 전송및수신내역을모니터링하거나조작할수있고, 또한, 사용자몰래 SMS 를보낼수도있다. AndroidManifest.xml 파일에사용되는권한과그권한에대한정보는구글의안드로이드개발자페이지에서확인할수있다. - 안드로이드개발자페이지의 Manifest 권한정보 http://developer.android.com/intl/ko/reference/android/manifest.permission.html 2) 악성코드은닉여부확인이미지파일이나 xml 파일로가장한악성코드가있는지검사한다. 모바일앱을통해이미지로가장한악성코드를실행하여사용자의단말기를원격제어하는등의악성행위를실행할수있다. 3) 소스코드분석을통한악성행위검증소스레벨의분석을통해다수의 API 조합으로구성된특정한패턴이사용되는지를확인하여악성행위를검증한다. 예를들어, ContactsContract.Data 클래스나 TelephonyManager 클래스를통해획득한사용자의주소록정보혹은단말기정보를 HttpGet 등네트워크관련클래스를통해외부로전송한다면이는악성행위로판단할수있다. 66 Internet & Security Focus 2013 6 월호
[ 그림 8] 정적분석방법 3. 동적분석방법 동적분석방법은정적분석방법과는달리, 실제로프로그램을실행시켜테스트케이스에 대한결과를토대로악성행위수행여부를판단한다. 안드로이드모바일앱에대한동적분석방법은특정모바일앱을단말기에설치하고실제로구동하여단말기동작에대한로그를추출하고이를통해악성행위여부를분석하는방법이다. 동적분석을통해모바일앱이사용자정보에접근하고조작하는지를실시간으로감시한다. 그리고감시하고있는데이터가네트워크혹은다른방법으로전송될경우, 관련된모바일앱이나도착지정보를로그화한다. 또한, 사용자의사와무관하게다른악성코드를다운로드받거나과금서비스를사용하는지감시한다. [ 그림 9] 동적분석방법 Internet & Security Focus 2013 6 월호 67
Ⅲ. 모바일앱분석도구소개 1. 정적분석도구 정적분석을수행하기위한대표적인정적분석도구로 APKTOOL 과 DEX2JAR 를들수있다. 분석도구를이용하여정적분석을하기에앞서, 먼저이를위해단말기로부터분석대상인모바일앱의 APK 파일을추출해야한다. 사용자에의해설치된안드로이드앱은 ADB 도구를이용하여 APK 파일을추출할수있다. 하지만제조사에의해설치된앱은해당앱에대한접근권한이없기때문에 APK 파일획득을위해서는루팅이필요하다. ADB(Android Debug Bridge) 는안드로이드 SDK 를통해제공되는툴로, 이를이용하여 에뮬레이터혹은실제로 USB 를통해연결된단말기에명령어 (Command) 형식의명령을줄수 있다. [ 그림 10] 단말기연결확인후 shell 구동 다음의과정을통해사용자의단말기에서 APK 파일을추출할수있다. 1. adb shell : 연결된단말기의 shell 구동 2. pm list packages f : 설치된어플리케이션의패키지명확인 3. adb pull /data/app/xxx.xxx.apk file.apk : 사용자에의해설치된모바일앱을패키지명 (xxx.xxx.apk) 을통해 file.apk 로파일추출 68 Internet & Security Focus 2013 6 월호
[ 그림 11] APK 파일추출과정 위의과정을통해추출된 APK 파일은 APKTOOL 이나 DEX2JAR 를이용하여디컴파일할수 있다. 1) APKTOOL APKTOOL 은안드로이드앱파일인 APK 파일을디컴파일할수있는리버스엔지니어링툴이다. APK 파일로부터원본에가까운형태로디코딩할수있다. 그리고 APK 를디코딩하여추출한리소스에수정을가한후다시빌드하여 APK 파일로패키징하는것이가능하다. [ 그림 12] APKTOOL 을이용한디컴파일과리빌딩 다음의링크를통해서툴에대한자세한정보와툴을다운로드받을수있는링크를제공받을 수있다. Internet & Security Focus 2013 6 월호 69
- http://code.google.com/p/android-apktool/ APKTOOL 을설치하는방법은 Downloads 페이지에서 apktool1.3.4tar.hz2 와 apktoolinstall-windows-r04-brut1.tar.bz2 를다운받은후, 하나의폴더에압축해제하면된다. 참고로 JRE 1.6 이사전에설치되어있어야한다. [ 그림 13] APKTOOL 에대한정보와다운로드페이지 APKTOOL 의실행명령어는다음과같다. - apktool d[ecode] [OPTS] <file.apk> [<dir>] : 특정한 APK 파일 (file.apk) 를지정한경로 (dir) 로디컴파일함 - apktool b[uild] [OPTS] [<app_path>] [<out_file>] : 지정한경로 (app_path) 의파일들로부터 APK 파일 (out_file) 을빌드함 : 빌드결과로 Unsigned APK 파일이생성됨 [ 그림 14] 디컴파일실행 70 Internet & Security Focus 2013 6 월호
[ 그림 15] 빌드실행 APKTOOL 로 APK 파일을디컴파일한결과물은다음과같다 - AndroidManifest.xml - 이미지, Layout 용 xml 파일, Value 용 xml 파일등리소스 - smali code 형태로디코드된소스파일 [ 그림 16] 디컴파일한결과물 [ 그림 17] 원본자바코드와디컴파일한 smali 코드비교 Internet & Security Focus 2013 6 월호 71
이처럼 APKTOOL 을통해획득한 AndroidManifest.xml 과 smali 코드를이용해악성코드를 확인할수있다. 실제악성코드샘플을 APKTOOL 을이용하여정적분석한예로, IRC 봇및 SMS 과금유발 악성코드인 foncy.apk 를분석한사례를살펴보자. foncy.apk 를 APKTOOL 로디컴파일한결과물은아래와같다. [ 그림 18] foncy.apk 의내부 여기에서 AndroidManifest.xml 파일을보면 [ 그림 19] 와같은권한을요구한다. [ 그림 19] foncy.apk 의 AndroidMenifest.xml 파일 이를통해해당악성코드가단말기상태확인, SD 카드저장, 인터넷연결, 진동설정, WiFi 및 3G 등네트워크상태확인등의권한을요구하는것을확인할수있다. foncy.apk 가실행되면 assets 폴더에저장된악성코드들을추가로실행된다. 디컴파일한 결과물중 assets 폴더내용을확인하면아래와같은파일들이포함된것을알수있다. 72 Internet & Security Focus 2013 6 월호
[ 그림 20] assets 폴더내용 assets 폴더에저장된파일을확인해본결과, boder01.png, footer01.png, header01.png 등세개의파일은이미지로가장한악성코드였다. 다시 foncy.apk 로부터추출한 smali 코드를분석하면 [ 그림 2-14] 과같은코드가존재하는것을확인할수있다. [ 그림 21] smali 코드내용 [ 그림 21] 의 smali 코드에서보듯이, foncy.apk 는 getassets() 메소드를이용하여 assets 폴더에 있는악성코드를실행하는것을확인할수있다. 2) DEX2JAR 정적분석을위한두번째툴로 DEX2JAR 을알아보자. DEX2JAR 은 APK 파일에서추출한 classes.dex 파일을 JAR 파일로변환시킬수있는리버스엔지니어링툴이다. 해당툴을이용해 classes.dex 파일로부터추출한 JAR를이용하여자바코드를획득할수있다. [ 그림 22] DEX2JAR 를이용한 JAR 파일추출과정 Internet & Security Focus 2013 6 월호 73
다음의링크를통해서 DEX2JAR 에대한자세한정보와툴을다운로드받을수있는링크를 제공받을수있다. - http://code.google.com/p/dex2jar DEX2JAR 의설치방법은 Donwloads 페이지에서 dex2jar-0.0.9.9.zip 을다운받아서 압축해제하면된다. APKTOOL 과마찬가지로, JRE 가사전에설치되어있어야한다. [ 그림 23] DEX2JAR 에대한정보및다운로드페이지 DEX2JAR 를이용하기위해서는먼저 APK 파일로부터 classes.dex 파일을추출해야한다. APK 파일의확장자를 ZIP 으로변경후 UNZIP 한결과물에서 classes.dex 파일을획득할수잇다. DEX2JAR 의실행명령어는다음과같다. - d2j-dex2jar [options] <file0> [file1... filen] : classes.dex 파일 (file0) 을디컴파일하여 JAR 파일을생성함 [ 그림 24] DEX2JAR 실행화면 74 Internet & Security Focus 2013 6 월호
[ 그림 25] DEX2JAR 실행결과물 [ 그림 25] 와같이 DEX2JAR 를통하여 JAR 파일이추출된것을확인할수있다. 추출된 JAR 파일로부터자바소스코드의확인은자바디컴파일러툴인 Jad, jd-gui 등을이용한다. [ 그림 26] jd-gui 를통해확인한자바소스코드 [ 그림 27] 원본자바코드와추출한자바코드비교 Internet & Security Focus 2013 6 월호 75
[ 그림 27] 에서보는바와같이추출한자바코드가원본과유사하게나타나기때문에 소스레벨의분석이가능하다. 앞서분석예제로살펴본악성코드 foncy.apk 에대해, DEX2JAR 를이용하여추출한 자바파일에서 [ 그림 28] 와같은악성행위소스코드를확인할수있다. [ 그림 28] 자바소스코드예제 1 [ 그림 28] 의자바코드는 header01.png ( 자동루팅용악성코드 ) 를실행시킨후, 루팅이 완료되면 footer01.png (TRC 봇 ) 를실행시킨다. [ 그림 29] 자바소스코드예제 2 또한, [ 그림 29] 의자바코드는악성코드가설치된단말기의유심에기록된국가코드를 추출한다. [ 그림 30] 자바소스코드예제 3 [ 그림 30] 의자바코드에서는특정한정보를표시된 URL 주소로전송하고있다. 실제해당악성코드는 [ 그림 2-22] 의예제코드와 [ 그림 2-23] 의예제코드를활용하여 사용자몰래과금을유발하는 SMS 프리미엄서비스를발송하고답변메시지를차단하고있었다. 76 Internet & Security Focus 2013 6 월호
2. 동적분석도구 동적분석을하기위한대표적인도구로 Monkey, Tcpdump 에대해알아보자. FOCUS 1) Monkey 먼저안드로이드앱에대한동적분석도구로 Monkey 에대해알아보자. Monkey 는 Android SDK 에서제공하는툴로분석할모바일앱을실제단말기에서구동시킨후클릭, 터치또는제스처등의사용자이벤트를무작위로발생시켜일어나는로그를수집하고분석하는데사용된다. 특정모바일앱에대한 Mokey 의실행명령어는다음과같다. - adb shell monkey p <your.package.name> -v <event-count> : 지정한모바일앱 (your,package.name) 을구동시켜임의의사용자이벤트를지정한횟수 (event-count) 만큼발생시킴. 이벤트발생에대한주요옵션은다음과같다. --throttle <milliseconds> : 이벤트발생간격지정. 지정하지않을경우, 가능한한빠르게이벤트를발생시킴. --pct-thouch <percent> : 터치이벤트발생비율조정. 터치이벤트는화면의한장소를눌렀다가떼는것을의미함. --pct-motion <percent> : 모션이벤트발생비율조정. 모션이벤트는화면의한장소를누른후, 무작위로다른장소로이동후떼는것을의미함. --pct-nav <percent> : 기본이동이벤트발생비율조정. 기본이동이벤트는상하좌우방향키입력을의미함. --pct-majornav <percent> : 주요이동이벤트발생비율조정. 주요이동이벤트는 Select 키, Back 키, Menu 키입력을의미함. --pct-syskeys <percent> : 시스템키이벤트발생비율조정, 시스템키이벤트는시스템에예약된 Home 키, Back 키, 볼륨키, 전화걸기및끊기키입력을의미함. Monkey 툴에대한자세한정보는아래의경로에서확인가능하다. - http://developer.android.com/intl/ko/tools/help/monkey.html Internet & Security Focus 2013 6 월호 77
[ 그림 31] Monkey 툴에대한정보 2) Tcpdump 안드로이드앱에대한동적분석을위한도구로 Tcpdump 에대해알아보자. Tcpdump 는유닉스혹은리눅스환경에서네트워크인터페이스를거치는패킷들의내용을캡처할때주로사용하는도구다. 안드로이드플랫폼도일종의리눅스이기때문에 Tcpdump 를이용하여네트워크를통한통신데이터를모니터링할수있다. Tcpdump 를단말기에설치하기에앞서네트워크를모니터링하는기능은안드로이드시스템의 root 권한을필요로하기때문에단말기루팅을통해 root 권한을먼저획득해야만한다. Tcpdump 를설치하기위한파일은 www.tcpdump.org 에서다운로드받을수있다. Downloads 링크를통해최신버전의 tcpdump 패키지 (tcpdump-4.4.0.tar.gz) 와 libpcap 패키지 (libpcap-1.4.0.tar.gz) 를다운로드받는다. 다운받은패키지의컴파일및빌드를위한환경으로는 Ubuntu 10.04 LTS 를추천한다. 다운로드받은패키지를설치하기위한과정은다음과같다. 1. libpcap 패키지를 ARM CPU 옵션을통한 Build $ tar zxvf libpcap-x.x.x.tar.gz $ cd libpcap-x.x.x/ $ CC=arm-angstrom-linux-gnueabi-gcc ac_cv_linux_vers=2./configure --host=arm-linux --with-pcap=linux $ make 78 Internet & Security Focus 2013 6 월호
2. tcpdump 패키지를 ARM CPU 옵션을통한 Build $ tar zxvf tcpdump-x.x.x.tar.gz $ cd tcpdump-x.x.x/ $ CC=arm-angstrom-linux-gnueabi-gcc ac_cv_linux_vers=2./configure host=arm-linux --with-pcap=linux $ make FOCUS - 다음의에러가발생할경우 : undefined reference to isoc99_sscanf faulty.c 파일에 #define _GNU_SOURCE 를추가한다. 3. adb 명령어를이용하여실행파일설치및권한설정 adb push./tcpdump-arm /data/local/ adb shell chmod 777 /data/local/tcpdump-arm 4. tcpdump 명령을통해네트워크패킷모니터링 예시 1) 전체네트워크패킷모니터링 adb shell /data/local/tcpdump-arm l n s w /data/local/capture.pcap 예시 1) HTTP 통신 (port 80) 패킷모니터링 adb shell /data/local/tcpdump-arm -X -n -s 0 port 80 [ 그림 32] tcpdump 를통한네트워크모니터링예시 Internet & Security Focus 2013 6 월호 79
다음의링크를통해서툴에대한자세한정보와툴을다운로드받을수있는링크를제공받을 수있다. - http://www.tcpdump.org Ⅳ. 결론 지금까지알아본정적분석과동적분석방법은일반사용자가사용하기에는다소어려움이있다. 때문에이러한방법들은모바일앱을검증하고악성코드를탐지하는전문가또는시스템에활용될것이다. 한국인터넷진흥원에서는이두가지분석방법을적용한 모바일악성행위검증시스템 을 12년에구축하여현재시범운영을통해구글의정식마켓과블랙마켓을통해배포되는안드로이드앱을대상으로악성행위를검증하고있다. 정적분석과동적분석방법을비교하여장단점을알아보고 모바일앱악성행위검증시스템 의활용결과를소개하고글을마무리하고자한다. 1. 정적분석과동적분석의비교 정적분석방법은실제로모바일앱을구동하지않고소스만을통해서분석하기때문에성능 면에서동적분석에비해유리하다. 동적분석은실제로모바일앱을단말기에설치해서모든 80 Internet & Security Focus 2013 6 월호
코드영역을구동해야하기때문에정적분석에비해좀더많은시간자원과하드웨어자원을필요로한다. 그에반해정적분석은허위탐지의위험이있다. 특정 API 또는 API 들의패턴을악성행위로설정하고이를통해악성여부를판단한다. 그런데악성행위로설정한패턴이실제로는악성행위가아닌서비스를위한행위인경우도발생할수있는것이다. 이러한허위탐지를줄이기위해악성행위설정 API 및패턴을줄이면, 오히려악성행위에대한미탐지율이올라가는문제가생긴다. 게다가리버스엔지니어링에대비하여코드난독화가된다면분석자체가어려워질수도있다. 반면동적분석방법은실제모바일앱의구동을통해분석하기때문에정적분석에비해정확한값을가지고악성행위실행여부를판단할수있다. 실제구동을통해악성행위여부를판단하기때문에허위탐지율이정적분석에비해낮은편이다. 하지만프로그램의모든영역을실행할수있는테스트케이스를만들어야한다는문제가있다. 예를들어특정한상황에서만실행되는악성코드가있다면, 그상황이테스트케이스에서실행되지않으면적절한검증에실패할수도있는것이다. 결국프로그램의얼마나많은부분을실행시키느냐가동적분석의성능을좌우하게된다. FOCUS < 표 1> 정적분석과동적분석의장단점 장점 단점 정적분석 낮은유지비용프로그램전역에대한분석가능 허위탐지와미탐지의한계코드난독화적용시분석이어려움 동적분석 실제실행결과를통한악성행위에대한정확한탐지 시간및하드웨어자원등에대한높은유지비용코드커버리지에대한테스트케이스의한계 이처럼정적분석은그하나만으로는부족한면이있고동적분석또한한계점을갖고있다. 그렇기때문에보다정확한악성행위검증을위해서는두가지분석방법을적절히함께 사용해야할것이다. Internet & Security Focus 2013 6 월호 81
2. 모바일앱악성행위검증시스템운영결과를통한분석방법비교한국인터넷진흥원에서는정적분석과동적분석의한계를극복하고절차의번거로움을줄인자동화시스템을 12년개발하여현재시범운영중에있다. 모바일앱악성행위검증시스템 이라고불리는이시스템은구글마켓 ( 무료 ) 과블랙마켓의앱을자동으로수집하고정적분석, 동적분석과함께상용백신을통한검사를자동으로수행하고한다. 악성행위를검증하기위해객체 (76 개 ), 수단 (14 개 ), 행위 (17 개 ) 의조합으로악성행위의패턴유형을정의하였고각유형의위험도에따라점수가책정되어있다. 그래서분석결과에악성행위로판단되는패턴유형이많이발견되었을경우높은점수를받게되며이를악성앱이라고판단하고있다. [ 그림 34] 악성행위패턴유형일부분 정적분석은역공학을이용해해당앱의소스에서악성행위로판단할수있는코드의호출패턴을찾아낸다. 앱분석은크기에따라수초에서수분이소요되며보통 30초이내에정적분석이완료된다. 보통수집과동시에정적분석이진행되며지연시간없이바로분석된다. 동적분석은실제단말기와에뮬레이터에직접앱을설치하여동작을해보고각동작에서실행되는코드를탐지하여악성행위를찾아낸다. 시스템에여섯대의단말기와여덟개의에뮬레이터가설치되어있다. 동적분석은앱을단말기와에뮬레이터에설치하고가능한모든행위를실행하기때문에정적분석과다르게상대적으로시간이많이소요된다. 또악성앱으로인하여단말기가악성코드에감염되어장애가발생하는빈도가높아주기적으로단말기초기화및장애를처리해야한다. 본시스템은단말기와에뮬레이터의수가정해져있기때문에하루에처리할수있는앱분석개수도한계가있어하루에 200 개에서 300 개정도앱을분석할수있다. 이와같은 모바일앱악성행위검증시스템 의운영결과를통해서정적분석과동적분석의특징을다시확인할수있었다. 같은모바일앱에대해정적분석에서악성앱으로분류된앱의수는동적분석에서악성앱으로 82 Internet & Security Focus 2013 6 월호
분류된앱의수에비해절반으로나타났다. 이를통해, 동적분석이정적분석에비해보다정확한탐지를하고있는것을확인할수있었다. 또한, 대부분의앱이 30초이내에정적분석을완료하였지만동적분석은하루에 200 개에서 300 개정도의앱만을분석가능할정도로많은시간을필요로하였다. 이런부분에서두분석방법에서필요한유지비용의차이역시확인할수있었다. 마지막으로 모바일앱악성행위검증시스템 의정적분석과동적분석결과가상용모바일백신검출결과가거의비슷하게나오는것을통해시스템상에구현된정적분석과동적분석이모바일앱에대해악성행위를적절히탐지하고있음확인할수있었다. FOCUS 3. 일반사용자가주의할점 일반적인사용자가모바일악성코드에감염되는것을예방하기위해서는먼저출처가불분명한모바일앱을설치해서는안된다. 대부분의악성앱이블랙마켓을통해유포되기때문에출처를알수없는앱을이용하는것은그만큼악성코드에감염될가능성을높게한다. 정상적인마켓에서모바일앱을다운로드받더라도과도한권한을요구하는모바일앱은의심해볼필요가있다. 개인정보, 위치서비스혹은과금서비스등그기능이필요하지않음에도권한을요구한다면의심해볼필요가있다. 또한, 모바일환경에도백신을사용하는것이좋다. 백신이나 KISA 의폰키퍼등을통해자신의스마트폰에설치된앱이악성앱인지확인할수있다. 폰키퍼 : KISA 가개발보굽한무료보안앱으로스마트폰의비밀번호설정및백신설치여부, 설치프로그램의악성코드감염여부등을점검할수있음 다운로드 : KISA, 구글플레이및국내이통사앱장터 (Tstore, Ollhe, U+ 마켓 ) 등에서 폰키퍼, 스마트폰보안 을키워드로검색하면다운로드가능 루팅등을통해플랫폼설정을변경하는것도피하는것이좋다. 루팅이나탈옥등은사용자에게필요이상의권한을가지게하여악성행위에보다쉽게노출될수있기때문에신중한관리가필요하다. 마지막으로운영체제및백신을항상최신버전으로업데이트를하는것도필요하다. 해커들의다양한공격기법에대응하고스마트폰을안전하게사용하기위해서최신버전으로업데이트를하는것이좋다. Internet & Security Focus 2013 6 월호 83
결국, 스마트폰사용이일상화된요즘범람하고있는악성코드를피하기위해서는사용자 스스로의관심과주의가무엇보다중요하다고할수있다. 참고문헌 방송통신위원회, 유무선통신서비스가입자현황 (2012 년전체 ), 2013.3 방송통신위원회, 유무선통신서비스가입자현형 (2013 년 1월말기준 ), 2013.3 한국인터넷진흥원, 2012 년하반기스마트폰이용실태조사, 2013.1 한국인터넷진흥원, 주간인터넷동향 [6 월 2주 ] 구글안드로이드마켓악성코드검사시스템우회방법등장, 2012.6 F-Secure, Mobile Threat Report Q4 2012, 2013.3 Geek, Geinimi Android Trojan apperars in China ready to steal your data, 2010.12, <http://www.geek.com/chips/geinimi-android-trojan-appears-in-china-ready-to-steal-yourdata-1302840/> StatCounter, Top 8 Mobile Operating Systems in South Korea from Apr 2012 to Mar 2013, 2013.5, <http://gs.statcounter.com/?#mobile_os-kr-monthly-201204-201303> Trend Micro, Android Malware, believe the hype, 2013.3, <http://countermeasures.trendmicro. eu/android-malware-believe-the-hype/> TrustGo, New Virus SMSZombie.A Discovered by TrustGo Security Labs, 2012.8, <http://blog. trustgo.com/smszombie/> Xuxian Jiang, An Evaluation of the Application Verification Sevice in Android 4.2, 2012.12, <http://www.cs.ncsu.edu/faculty/jiang/appverify/> 84 Internet & Security Focus 2013 6 월호