Journal of the Korea Academia-Industrial cooperation Society Vol. 15, No. 11 pp. 6849-6855, 2014 http://dx.doi.org/10.5762/kais.2014.15.11.6849 ISSN 1975-4701 / eissn 2288-4688 안드로이드어플리케이션위변조방지를위한방안연구 이광형 1*, 김재용 2 1 서일대학교인터넷정보과, 2 숭실대학교컴퓨터학과 Study on Mechanism of Preventing Application Piracy on the Android Platform. Kwang-Hyoung Lee 1*, Jae-Yong Kim 2 1 Dept. of Internet Information, Seoil University 2 Dept. of Computer Science, Soongsil University 요약최근다양한형태의서비스를제공하기위해스마트폰의활용도가증가함에따라안드로이드앱의활용에대한안전성과신뢰성등보안문제가이슈화되고있다. 안드로이드앱은 apk 파일형태로활용되며, 몇몇의중요파일에의해실행이된다. 하지만이러한 apk 파일에악의적인소스코드가삽입되어통제권상실이나권한탈취등부정사용에대한대상이될수있다. 본논문은안드로이드환경에서앱의소스코드부정사용에관한위협을정의하고, 분석결과를기반으로안드로이드앱소스코드부정사용을방지하기위한방안을제안한다. 본논문에서는불법으로위변조된안드로이드앱을탐지하고일반사용자의안드로이드디바이스에설치되는것을방지하기위한제 3기관을이용하여안드로이드앱의무결성을제공하는시스템을제안한다. 제안하는기법은일반사용자와안드로이드앱을제공하는서비스서버로만구성되어있는기존의안드로이드앱제공서비스시스템과다르게안드로이드앱의무결성검증과사용자등록을위한신뢰할수있는제 3기관을추가하여안전한안드로이드앱을제공한다. Abstract Recently, with the increasing use of smart phones, security issues, such as safety and reliability of the use of the Android application has become a topic to provide services in various forms. An Android application is performed using several important files in the form of an apk file. On the other hand, they may be subject to unauthorized use, such as the loss of rights and privileges due to the insertion of malicious source code of these apk files. This paper examines the Android environment to study ways to define the threats related to the unauthorized use of the application source code, and based on the results of the analysis, to prevent unauthorized use of the application source code. In this paper, a system is provided using a third body to prevent and detect applications that have been counterfeited or forged illegally and installed on Android devices. The application provides services to existing systems that are configured with only the service server that provides users and applications general, This paper proposes the use of a trusted third party for user registration and to verify the integrity of the application, add an institution, and provide a safe application. Key Words : Android, App Encryption, Code Fraud Prevention, Device Authentication 1. 서론 수가늘어감에따라급속한시장성장을하고있다. 스마 트폰안에는많은개인정보들이포함되어있어비정상 제한된기능을제공하던기존스마트폰과달리일반 적인접근을통해개인정보유출과금전적피해에대한 데스크톱과같이멀티미디어, 인터넷, 게임등다양한기 경각심이높아지고있다. 일례로아이폰, 안드로이드폰 능을제공하고있는최근스마트폰은나날이사용자의 의위치정보가무단으로수집되어광고등에이용되었고, 본논문은 2013년도서일대학교학술연구비에의해연구되었음. * Corresponding Author : Kwang-Hyoung Lee(Seoil Univ.) Tel: +82-2-490-7226 email: dreamace@seoil.ac.kr Received October 7, 2014 Revised November 5, 2014 Accepted November 6, 2014 6849
한국산학기술학회논문지제 15 권제 11 호, 2014 80만명에달하는피해자가발생한바있다. 스마트폰은사용자로하여금앱을통해다양한서비스를제공해준다. 또한안드로이드플랫폼의스마트폰을위한구글안드로이드마켓은꾸준히발전하여 40만개이상의앱이등록되어있고, 다운로드회수도 200억회를넘고있다 [1,2]. 하지만이에따라관련보안사고역시큰폭으로증가하고있으며, 피해또한커져가고있다 [3]. 스마트폰은데스크톱에적용되던다양한악성코드의목표가되고있지만, 데스크톱에사용되는보안기술은제한된처리능력과, 저전력, 부족한메모리공간등과같은모바일환경의특성을고려하지않아바로적용하는것이쉽지않다. 또한많은모바일단말기에사용되고있는개방형플랫폼안드로이드는플랫폼소스가공개되어있어보안취약점이노출될가능성이크며그에따른 2차피해가발생할확률이굉장히크다 [4]. 2011년이후에는 DroidDream, DroidKungFu, Ginermaster 등의악성코드들이정상안드로이드앱을역공학후에악성코드가포함된형태로재패키지되어유포되었다 [5-9]. 본논문은안드로이드환경에서앱의소스코드부정사용에대한기술을정의하고, 그특징에맞춰해결방안을제시하여안드로이드앱소스코드부정사용방시시스템을설계한다. 또한기존의연구결과를바탕으로구현결과및향후연구방향을제시한다. 일반사용자와안드로이드앱을제공하는서비스서버로만구성되어있는기존의안드로이드앱제공서비스시스템과다르게안드로이드앱의무결성검증과사용자등록을위한신뢰할수있는제 3기관을추가하여안전한안드로이드앱을제공하는시스템을제안한다. 5장결론에서는본논문의안드로이드앱위변조점검에대한취약성분석을최종정리하고, 향후연구방향으로안드로이드앱전체항목의취약성검증프로세스의구현을제시하고자한다. 2. 관련연구 2.1 정적역공학안드로이드앱에대한정적역공학은프로그램의실행없이앱의소스코드를분석하는기법으로역어셈블 (disassemble), 역컴파일 (de-compile) 등이있다 [6-9]. 다음 Fig. 1은안드로이드앱에대한정적역공학의일반적인과정을나타낸다. 먼저일반사용자들이설치, 실 행하기위해다운받는안드로이드앱의 apk 파일에서바이트코드에해당하는 Classes, dex 파일을역어셈블러를사용하여추출한다. 다시바이트코드를 smail 형태의어셈블리파일로변환하고, 어셈블리코드형태의 dex 파일을직접분석과수정을가능하게하기위한자바소스로복원하는과정을거친다. [Fig. 1] Process of Reverse engineering to apk file jar 파일로압축되어있는자바클래스파일들은특정툴을사용하여손쉽게수정이가능하다. 그렇기때문에악의적공격자들이다양한형태의프로그램조작과, 악성코드의삽입이가능하게된다. 이후, 변조된애플리케이션을대상으로새로서명하고 apk 파일로재패키징하여불법애플리케이션을배포한다. 2.2 동적역공학동적역공학은안드로이드앱을수행시키면서분석하는방법으로정적역공학에비해, 실제안드로이드앱의실행상의특징을반영할수있다. 디버깅과동적인스트루먼테이션 (dynamic instrumentation) 을이용하여동적역공학을수행할수있다. 구글에서는 ADB, CDMS(Calvik Debug Monitor Service) Device, Android Virtual Device, JDWP Debugger 등의동적디버깅방법을제공한다. 각동적역공학에사용되는디버깅방식에따라차이는존재하지만, 동적역공학을통하여내부변수값확인, 실행코드확인등이가능하고, 안드로이드앱의핵심모듈이노출될수있다 [6]. JDWP 를사용하는 JDB는스마트폰디바이스와 PC 사이에세션을생성한후, 디버깅 6850
안드로이드어플리케이션위변조방지를위한방안연구 을수행한다. 구글의 ADB(Android Debug Bridge) 에서 JDWP 를지원하기때문에마찬가지로세션을생성하고동적디버깅을수행한다. 2.3 예방난독화기술난독화는프로그램바이너리나소스코드가역공학에의한분석을어렵게하여방지하는기술로서, 변환프로그램의일종이다 [10]. 예방난독화는이미알려진역난독화방법을알고그방법을봉쇄하는것을말한다. 기존프로그램변환보다는추가적인기능을삽입하는것에초점을두고있다 [11-16]. 대상배제 (Targeted) 는특정역컴파일러나디버거등역공학도구를대상으로해당도구가가진버그나취약점을이용해정상동작하지않도록하는기능을추가하는것이다. 예를들어, 어떤역컴파일러가메서드의리턴뒤에명령어가있을경우에러가발생한다고가정할때, 난독화도구는이와같은명령어를인위적으로삽입하여대상컴파일러사용시오류가발생하도록유도한다. 무결성검증은난독화대상프로그램의위 변조여부를검사하는루틴을삽입하는기법이다. 공격자가역컴파일후위 변조한프로그램을사용시해당루틴이실행되어위 변조를탐지한다 [10]. 2.4 사용자식별및디바이스인증루팅안드로이드스마트폰에서앱이동작할경우 GDB(arm-eabi-gdb), Tcpdump-arm 등이 Root권한으로분석프로그램을실행시켜앱의동작상태와메모리정보등을분석하여악성앱을작성하거나수정하여사용할수있다. 따라서안드로이드환경의루팅스마트폰에서실행되는금융관련안드로이드앱들은여러가지보안문제를미연에방지하고자그실행이차단된다. 스마트폰백신에서나모바일뱅킹앱에서 Rooting 탐지모듈을적용하여루팅된스마트폰을식별하고프로그램을종료하는루틴적용을권고한다. 다음은루팅탐지하는모듈의소스코드일부이다. 금융업무를위한안드로이드앱을사용하는기관에서는루팅탐지를위한모듈을사용하여루팅되지않은스마트폰에서의뱅킹안드로이드앱의로그인만허용하도록설계되어있으나, 모바일뱅킹위 변조안드로이드앱을루팅된스마트폰에서실행하면시스템이루팅된스마트폰을정상으로인식하여로그인이가능하다. 모바일뱅킹위 변조안드로이드앱은스마트폰용모바일뱅 킹안드로이드앱이나온수년전부터등장해확산되고있음에도아직뚜렷한대안이없는상태이다. 루팅스마트폰을사용한뱅킹시스템의접속은원천적으로불가능한이유로, 루팅스마트폰사용자들은위 변조안드로이드앱을스스로의필요에의해사용기도한다. 이때공격자가위 변조안드로이드앱에다른의도의명령어를심어놓았다면사용자의개인정보나금융정보가유출되어대형금융사고가발생할수있다. 따라서금융권안드로이드앱에한해프로그램소스를쉽게위 변조할수없도록별도의인증절차를마련하거나루팅스마트폰사용자들의정식안드로이드앱사용을허가하는방안에대한논의도이루어지고있으며, 사용자의별도인증과정이필요한실정이다. 3. 제안기법 3.1 제안시스템구성도본논문에서제안하는시스템은안드로이드환경에서안드로이드앱소스코드부정사용을방지하기위한신뢰할수있는제 3기관을이용한시스템이다. 일반사용자와안드로이드앱을제공하는서비스서버로만구성되어있는기존의안드로이드앱제공서비스시스템과다르게안드로이드앱의무결성검증과사용자등록을위한신뢰할수있는제 3기관을추가하여안전한안드로이드앱을제공한다. 다음의 Fig. 2는제안하는시스템의전체구성도이다. [Fig. 2] Diagram of the proposed system CA : 사용자의정보를저장하고 SS로부터인증요청을처리 SS : 실질적인서비스를제공하며, 사용자와직접적인통신을수행 User : 사용자또는모바일단말기 6851
한국산학기술학회논문지제 15 권제 11 호, 2014 제안시스템에필요한구성요소는 CA(Certificate Authorization), SS(Service Server), User와같으며, 각콘텐츠의역할을다음과같다. 제안하는시스템의구조는사용자의요청으로사용자정보를저장하고해당정보를 CA에인증받음으로서, 올바른사용자를인증하고안드로이드앱에대한인가된서비스를제공해준다. 이때인증받은사용자의디바이스가아니면안드로이드앱이올바로실행이되지않으며, 인가받은안전한안드로이드앱을사용하게함으로써, 안드로이드앱의소스가부정사용되는사례를미연에방지할수있다. 다음 Fig. 3은제안하는시스템구성도의상세프로토콜이다. 해당프로토콜은등록과정과사용자인증및파일다운로드과정으로나뉜다. 각인증과정마다사용되는인증방식은다르며, CA는사용자단말의 IMEI 값과 ICCID값을통신사로부터제공받았다고가정한다. 사용자는 SS에서비스를요청하기위해사용자가보유하고있는값을활용하여접근요청을시도하며, SS는사용자의정보인증과사용자정보업데이트를위해 CA 에데이터를전송한다. 사용자는 SS에접근요청을초기에시도할때다음 (1) 과같은메시지를전송한다. (1) CA는 NWID 값과 NWP 값이사용자의초기접근이올바른지를확인하기위한정보이다. NWID 값과 NWP값이올바른값인지확인되면, CA는사용자의올바른인증을하기위해사용자정보를요청한다. AUTNUN=0 : 사용자에대한인증시도가이루어지지않은초기접근을나타낸다. 초기접근요청메시지를전송한후 CA는사용자의정보를확인하기위한인증정보를요청한다. 사용자는인증정보를 CA에게전송하며전송요청메시지의정보는다음 (2) 와같다. (2) [Fig. 3] Details of the proposed system protocol 3.2 사용자등록제안하는시스템의사용자등록과정은사용자의단말정보를활용하여생성하는인증값과 CA로부터수신받은랜덤값을조합하여세션키값을생성하게된다. 생성된세션키값은사용자인증과정및파일다운로드과정에서사용된다. 사용자 _Name 은사용자가지정한장비의이름이며, 사용자 _Number 은사용자디바이스의전화번호이다. 해당값을수신한 CA는휴대폰개통시에등록된사용자의전화번호와이름에맞는 ICCID 값과 IMEI 값을추출하여 User_Name 값과조합한값과랜덤값을생성한다. 해당값을생성하는과정은수식 (3) 과같다. (3) CA는랜덤값생성후패딩값과같이사용자의전화번호를조합하여알고리즘연산후사용자인증및파일다운로드를할때사용될세션키를생성하게되며해당연산과정은수식 (4) 와같다. (4) [Fig. 4] User Registration Process CA는사용자가세션키를생성하기위한입력값중랜덤값과 CA의인증토큰값을전송해준다. 전송하는데이터값은 (5) 와같다. 6852
안드로이드어플리케이션위변조방지를위한방안연구 (5) 사용자단말기가보유하고있는정보와 CA로부터수신한정보를조합하여사용자의인증토큰값과세션키를생성하기위한랜덤값을생성해낸다. 해당값을생성하는과정은수식 (6) 과같다. (6) 사용자단말기는랜덤값생성후패딩값과같이사용자의전화번호를조합하여알고리즘연산후사용자인증및파일다운로드할때사용될세션키를생성하게되며해당연산과정은수식 (7) 과같다. (7) 사용자는사용자단말이생성한인증토큰값과 CA로부터전송받은인증토큰값을비교하여 CA의올바른인증을수행한다. CA가올바로인증되었으면사용자가생성한인증토큰을전송하여사용자등록과정을종료한다. 의하여기밀성키와무결성키를생성하게되며, 생성과정은수식 (8), (9) 와같다. (8) (9) CA는수식 (9) 의연산을통해산출된값과해시코드를조합하여무결성알고리즘에삽입하여해쉬값을추출해내며, 과정은수식 (10) 과같다. (10) CA는알고리즘 ID값을기밀성키로암호화하고해쉬코드값을알고리즘연산후사용자단말기에전송하며, 연산및전송하는데이터는 (11) 과같다. (11) 3.2 사용자인증및파일다운로드사용자단말기와 CA간인증이완료된후파일다운로드가가능하며, 사용자단말기와 CA간올바른인증및파일다운로드과정은다음그림과같다. CA로부터데이터를수신한사용자단말기는기밀성키를구하기위한연산을시작하며, 연산과정은수식 (12) 와같다. (12) 수식 (12) 과정에서얻은기밀성키값을사용하여 CA 로부터수신한데이터를복호화하여무결성키와무결성에사용될해시코드를구한다. 연산과정은수식 (13) 과같다. (13) [Fig. 5] User Registration Process CA에인증이완료된사용자단말기는각각에게주어진정보와사용자등록과정에서생성한세션키를활용하여사용자를안전하게인증하는과정을거친다. CA는기밀성과무결성을보장하기위해사용될알고리즘을정 사용자단말은수식 (13) 의연산과정을통해얻은해쉬코드와무결성알고리즘 ID를통해무결성키와해쉬값을추출해내는알고리즘과정을거친다. 해당연산과정은수식 (14), (15) 와같다. 6853
한국산학기술학회논문지제 15 권제 11 호, 2014 (14) (15) 연산이완료후사용자단말기는최종결과로산출된해쉬값을 CA로전송한다. CA는사용자단말기로부터수신한해쉬값이 CA가생성한 CA값과동일하면무결성체크가완료된다. Strength of access control은 Communication between Device 와같이단말기에대한고유정보가없으면악의적인방식을통한접근을차단하므로기존시스템보다접근제어에대한강도가강하고, Potential of infringement reverse engineering에대한제어가강하여침해가능성이낮게측정됨을알수있다. Application management 와 Secure Communication between Device 에관련된항목은프로토콜구조상기존시스템보다제안시스템이더강화된보안적특성을제공한다. 4. 분석및성능평가 5. 결론 본논문은안드로이드환경에서안드로이드앱소스코드부정사용을방지하기위한시스템을제안및설계하였다. 안드로이드앱소스코드부정사용에대한여부와탐지율은탐지차단의양에따른정확도에따라평가되기때문에본논문에대한평가는안드로이드를구현하여임의의파일다운로드에따른다른기기공유여부와소스코드부정사용을위한파일역공학여부에대한기준으로성능분석을진행하였다. 본논문에서제안하는소스코드부정사용방지시스템을구현한환경은다음의 Table 1과같다. [Table 1] Implementation No Parameter Description 1 Hardware : CPU : PentiumIV Inter(R) Core(TM) Quad 2.66 GHz Server 2 Software : Microsoft Visual Studio C# 2010 CA & SS 3 OS : Windows 7 Enterprise K 64bit Server OS 4 Galaxy 3 ; Version 4.1.2 User Device 5 Evaluation List Block unauthorized access frequency 다음 Table 2는기존시스템과제안시스템과의성능을비교하여나타낸것이며, 제안시스템은기존시스템에비해 4가지항목에대해개선된것을알수있다. [Table 2] Comparative analysis of the proposed system with existing systems Parameter Original Proposed Application management X O Secure Communication between Device X O Strength of access control Low High Potential of infringement reverse engineering High Low 안드로이드환경에서의악성코드와취약성을이용한보안위협사례는현재까지도꾸준히증가하고있다. 안드로이드앱의위 변조는그자체로인한저작권법위반등의피해를유발할뿐만아니라, 스마트폰에저장된개인사용자정보의유출과오남용등의 2차피해를유발하기때문에그심각성이더크다. 본논문에서는안드로이드환경에서안드로이드앱의소스코드부정사용에관한위협을정의하고, 분석결과를기반으로안드로이드앱소스코드부정사용을방지하기위한시스템을제안하였다. 제안하는시스템은사용자의요청을통하여사용자의정보를저장하고 CA에서인증과정을거침으로서, 올바른사용자와악의적인사용자의소스코드부정사용여부를구분한다. 제안시스템은소스코드부정사용을위한역공학의사용여부에대한기존탐지방법에비해, 접근제어에대한강도가강하며, 침해가능성을보다낮추었다. 안드로이드앱위 변조방지를해결하며적용되는기술의향상은안드로이드및기타모바일환경에서의보안기술의파급효과와보안안정성의증가부분에서효과적인영향을미칠것이다. 단, 본논문이제안하는기법의안정성을향상시키기위해서는, 안드로이드환경에서안드로이드앱이사용되는유저디바이스와별도의 CA, SS등의부가적인시스템의구성과, 사용자등록및인증절차의복잡함의개선에대한연구가필요하다. 향후보완점이해결된향상된시스템을통하여위변조방지를통한 S/W 저작권및지적재산권에대한보장뿐아니라, 금융시장을중심으로한다른산업에도긍정적인영향을미칠것으로기대한다. 또한위변조를인해발생되는 2차피해를방지하여안드로이드분야의보안사고및침해사례감소효과를 6854
안드로이드어플리케이션위변조방지를위한방안연구 기대한다. References [1] Loyce Consulting.: 2011 Market Survey of Smart Content. KOCCA Research Report 11-66, Korea Creative Content Agency (2011) [2] Jegal Byeongjik.: Smartphone Market and Mobile OS Trends. Semiconductor Insight (2011) [3] Android Under Attack: Malware Levels for Google's OS Rise Threefold in Q2 2012, http://www.kaspersky.com/about/news/press/2012/ Android_Under_Attack_Malware_Levels_for_Googles_OS_ Rise_Threefold_in_Q2_2012 [4] Chan-Hee Lee, Yeong-Ung Park, Ji-Hyeog Lim, Hong-Geun Kim, Choong-Hyun Lee, Seong-Je Cho and Jaesoo Yang, Jounal of KIISE : Computing Practices and Letters, Vol 18, No.10, pp.692-700, (2012) [5] T. Bradley, "DroidDream Becomes Android Market Nightmare," PCWorld, Mar.2011, http://www.pcworld.com/article/221247/droiddream_ becomes_android_market_nightmare.html [6] Steve Gold, "Android insecurity," Network Security, vol.2011, Issue.10, pp.5-7, (Oct. 2011). [7] GingerMaster, http://www.cs.ncsu.edu/faculty/jiang/gingermaster/ [8] Juniper Networks, "Mobile Signature," http://www.juniper.net/us/en/security/mobile-threat-cente r/#android [9] DroidDream, http://blog.mylookout.com/blog/2011/03/01/security-alert -malware-found-in-official-androidmarket-droiddream/ [10] C. Collberg, C. Thomborson, and D. Low, A taxonomy of obfuscating transformations, Technical Report No. 148, Univ. Auckland, New Zealand, (1997). [11] ByeongYong Lee1, YongSoo Choi2, : The Status and Analysis of Obfuscation Techniques and Perspective Development. Journal of Security Engineering, Republic of Korea, vol.5, No. 3, pp.692-700, (2008). [12] S. Choi, M. Kim, J. Han, B. An, "Android Based Mobile Student Identity Card", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 13, No. 2, Apr. 2013. [13] E.-J. Jo, C.-H. Lin, "Smart Emotion Lighting Control System Based on Android Platform", The Journal of The Institute of Internet, Broadcasting and Communication (IIBC), Vol. 14, No. 3, pp.147-153, Jun. 2014. [14] J.-M. You, I.-K. Park, "Android Storage Access Control for Personal Information Security", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 13, No. 6, Dec. 2013. [15] S.-C. Lim, "A Study of Android Launcher based on Application Virtualization", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 13, No. 2, Apr. 2013. [16] J.-g. Lim, C.-s. Choi, T.-e. Park, H.-s. Ki, B. An, "Android Based Mobile Combination Login Application", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 13, No. 3, Jun. 2013. 이광형 (Kwang-Hyoung Lee) [ 종신회원 ] 1998 년 2 월 : 광주대학교컴퓨터공학과졸업 ( 공학사 ) 2002 년 2 월 : 숭실대학교컴퓨터공학과 ( 공학석사 ) 2005 년 2 원 : 숭실대학교컴퓨터공학과 ( 공학박사 ) 2005 년 3 월 현재 : 서일대학인터넷정보과부교수 < 관심분야 > 멀티미디어데이터검색, 영상처리, 멀티미디어보안, DRM, USN, 학습콘텐츠 김재용 (Jae-Yong Kim) [ 정회원 ] 2010년 2월 : 숭실대학교일반대학 원컴퓨터공학 ( 공학석사 ) 2010년 3월 현재 : 숭실대학교 일반대학원 컴퓨터공학과 ( 박사수 료 ) < 관심분야 > 정보통신, 통신보안, 암호이론, 네크워크보안 6855