Ⅰ. 스마트폰에대한보안위협현황 1. 국내스마트폰이용현황 2009 년 11월 28일아이폰의국내정식출시를시작으로스마트폰의보급과그이용이빠르게늘어나기시작하여 2012 년 8월에이르러서는국내스마트폰이용자가 3,000 만명을넘어서게되었다. 방송통신위원회의무선통신서비스현황자료 (

Similar documents
Secure Programming Lecture1 : Introduction

Android Master Key Vulnerability

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

Secure Programming Lecture1 : Introduction

Operation-name: 악성행위의종류를말하며, Sending SMS Calling Sending sensitive information Converting data 로분류합니다. Operation-target: 악성행위의목표물을말하며, Premium-rate SM

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

SBR-100S User Manual

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - 김창수 v2.pptx

[ 목차 ] 1. 개요 2 2. 악성앱배포방식 2 3. 채굴악성앱유형분석 정상앱을리패키징하여채굴기능포함후재배포 앱개발시의도적으로채굴기능포함 9 4. 스마트폰악성앱감염예방방법및대처 참고문헌 12 [ 붙임 ] 13

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

*2008년1월호진짜

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

DDoS 공격, 게임계정유출해커, 비트코인등가상화폐노린다 - 13 년 10 월부터 DDoS, 원격제어, 게임계정유출하더니최근암호화폐채굴 - 개요지난 13 년 10 월,Microsoft 社의인터넷익스플로러취약점 (CVE ) 을통해유포되는악성코드가 DDoS

ScanDal/Privacy 안드로이드앱의 개인정보누출을잡아내는 정적분석기 서울대학교프로그래밍연구실김진영윤용호이광근

정보

한국정보보호진흥원

Inside Android Applications

PowerPoint 프레젠테이션

NX1000_Ver1.1

Install stm32cubemx and st-link utility

유포지탐지동향

PowerPoint Presentation

Microsoft Word - src.doc

개인정보보호의 이해 및 안전한 관리 - 개인PC 및 스마트폰 개인정보보호-

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

THE TITLE

Microsoft PowerPoint - chap01-C언어개요.pptx

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

PowerPoint Template

안드로이드 앱의 개인정보 유출 여부 분석

슬라이드 1

서현수

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

` 동향보고서 1. 악성코드은닉동향요약 3 2. 홈페이지은닉형악성코드통계 악성코드유포지현황 6 - 유포지탐지현황 6 - 대량경유지가탐지된유포지 TOP 악성코드취약점및취약한 S/W 악용현황 8 - 악성코드유형별비율 9 - 위협 IP 및도메인현황 10

슬라이드 1

#WI DNS DDoS 공격악성코드분석

Contents I. 취약점점검소개 II. III. IV. 점검프로세스분석 취약점점검방법 기타

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

[Blank Page] i

<32BDBAB8B6C6AEC6F9B1DDC0B6B0C5B7A13130B0E8B8EDBEC8B3BBBCAD2E687770>

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 악성코드은닉

< D28C3B7BACE29BDBAB8B6C6AEC6F9C0CCBFEB5FBDC7C5C25FBFE4BEE02E687770>

슬라이드 1

Windows 10 General Announcement v1.0-KO

Facebook API

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

월간악성코드은닉사이트탐지 동향보고서 4 월 침해사고대응단인터넷침해대응본부

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

슬라이드 1

ASEC REPORT VOL.79 July, 2016 ASEC(AhnLab Security Emergency response Center) 은악성코드및보안위협으로부터고객을안전하게지키기위하여보안전문가로구성된 글로벌보안조직입니다. 이리포트는주식회사안랩의 ASEC 에서작성하

1부

DBPIA-NURIMEDIA

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

untitled

디지털 공학

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

PowerPoint Template

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

PowerPoint 프레젠테이션

SIGIL 완벽입문

ASEC Report VOL.53 May, 2014 ASEC(AhnLab Security Emergency response Center) 은악성코드및보안위협으로부터고객을안전하게지키기위하여보안전문가로구성된 글로벌보안조직입니다. 이리포트는주식회사안랩의 ASEC 에서작성하며

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

JDK이클립스

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

PowerPoint Presentation

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 악성코드유포지현황 3 - 유포지탐지현황 3 - 대량경유지가탐지된유포지 TOP 악성코드취약점및취약한 S/W 악용현황 5 - 악성코드유형별비율 6 - 위협 IP/ 도메인현황 7 2

PowerPoint Template

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft Word - 문필주.doc

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

월간악성코드은닉사이트탐지 동향보고서 9 월 침해대응단사이버침해대응본부

PowerPoint Template

Office 365 사용자 가이드

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

슬라이드 1

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

wtu05_ÃÖÁ¾

슬라이드 1

H3250_Wi-Fi_E.book

PowerPoint 프레젠테이션

슬라이드 1

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

슬라이드 1

ESET Mobile Security for Android

B2B 매뉴얼

PowerPoint 프레젠테이션

Transcription:

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 월호