대한임베디드공학회논문지제 11 권제 6 호 2016 년 12 월 335 논문 어플리케이션의가상메모리보호를위한연구 (A Study for Protecting the Virtual Memory of Applications) 김동율, 문종섭 * (Dong

Similar documents
°í¼®ÁÖ Ãâ·Â

05( ) CPLV12-04.hwp

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

정진명 남재원 떠오르고 있다. 배달앱서비스는 소비자가 배달 앱서비스를 이용하여 배달음식점을 찾고 음식 을 주문하며, 대금을 결제까지 할 수 있는 서비 스를 말한다. 배달앱서비스는 간편한 음식 주문 과 바로결제 서비스를 바탕으로 전 연령층에서 빠르게 보급되고 있는 반면,

untitled

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

High Resolution Disparity Map Generation Using TOF Depth Camera In this paper, we propose a high-resolution disparity map generation method using a lo

DBPIA-NURIMEDIA

09권오설_ok.hwp

디지털포렌식학회 논문양식

10 이지훈KICS hwp

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

À±½Â¿í Ãâ·Â

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

인문사회과학기술융합학회

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA

인문사회과학기술융합학회

DBPIA-NURIMEDIA

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

<30312DC1A4BAB8C5EBBDC5C7E0C1A4B9D7C1A4C3A52DC1A4BFB5C3B62E687770>

< FC1A4BAB8B9FDC7D D325FC3D6C1BEBABB2E687770>

THE TITLE

<353020B9DAC3E1BDC42DC5ACB6F3BFECB5E520C4C4C7BBC6C3BFA1BCADC0C720BAB8BEC820B0EDB7C1BBE7C7D7BFA120B0FCC7D120BFACB1B82E687770>

±èÇö¿í Ãâ·Â

<31362DB1E8C7FDBFF82DC0FABFB9BBEA20B5B6B8B3BFB5C8ADC0C720B1B8C0FC20B8B6C4C9C6C32E687770>

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

03-서연옥.hwp

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: A Study on Organizi

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

보안공학연구회

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

정보기술응용학회 발표

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

06_ÀÌÀçÈÆ¿Ü0926

[Blank Page] i

PA for SWE2007

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

Journal of Educational Innovation Research 2017, Vol. 27, No. 2, pp DOI: : Researc

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

<35335FBCDBC7D1C1A42DB8E2B8AEBDBAC5CDC0C720C0FCB1E2C0FB20C6AFBCBA20BAD0BCAE2E687770>

Microsoft PowerPoint _사용자매뉴얼.ppt

Observational Determinism for Concurrent Program Security

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

우리들이 일반적으로 기호

<332EC0E5B3B2B0E62E687770>

, N-. N- DLNA(Digital Living Network Alliance).,. DLNA DLNA. DLNA,, UPnP, IPv4, HTTP DLNA. DLNA, DLNA [1]. DLNA DLNA DLNA., [2]. DLNA UPnP. DLNA DLNA.

e-spider_제품표준제안서_160516

[Brochure] KOR_TunA

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

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

슬라이드 1

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 6, Jun Rate). STAP(Space-Time Adaptive Processing)., -

09È«¼®¿µ 5~152s

ÀÌÀç¿ë Ãâ·Â

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

DBPIA-NURIMEDIA

서현수

<B8F1C2F72E687770>

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp


(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

강의지침서 작성 양식

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

6.24-9년 6월

04.박락인(최종)치안정책연구 29-3.hwp

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

04 최진규.hwp

<31325FB1E8B0E6BCBA2E687770>

4S 1차년도 평가 발표자료

모바일 안드로이드 아키텍처

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 25(3),

PowerPoint 프레젠테이션

#Ȳ¿ë¼®

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 28(3),

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

11¹Ú´ö±Ô

Journal of Educational Innovation Research 2016, Vol. 26, No. 3, pp DOI: Awareness, Supports

<32BDBAB8B6C6AEC6F9B1DDC0B6B0C5B7A13130B0E8B8EDBEC8B3BBBCAD2E687770>

<C1A4BAB8B9FDC7D031362D335F E687770>

2. 박주민.hwp

Secure Programming Lecture1 : Introduction

<30322DC8ABBBEFBFAD2E687770>

06_±è¼öö_0323

서론 34 2

02양은용

00내지1번2번

제 출 문 환경부장관 귀하 본 보고서를 습마트기기 활용 환경지킴이 및 교육 통합 서비스 개 발 과제의 최종보고서로 제출합니다. 주관연구기관 : 주관연구기관장 : 2015년 10월 주식회사 덕키즈 김 형 준 (주관)연구책임자 : 문종욱 (주관)참여연구원 : 김형준, 문병

DBPIA-NURIMEDIA

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

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - 김창수 v2.pptx

???? 1

Transcription:

대한임베디드공학회논문지제 11 권제 6 호 2016 년 12 월 335 논문 2016-11-38 어플리케이션의가상메모리보호를위한연구 (A Study for Protecting the Virtual Memory of Applications) 김동율, 문종섭 * (Dong-Ryul Kim, Jong-sub Moon) Abstract : As information technology advances rapidly, various smart devices are becoming an essential element in our lives. Smart devices are providing services to users through applications up on the operating system. Operating systems have a variety of rules, such as scheduling applications and controlling hardwares. Among those rules, it is significant to protect private information in the information-oriented society. Therefore, isolation task, that makes certain memory space separated for each application, should highly be guaranteed. However, modern operating system offers the function to access the memory space from other applications for the sake of debugging. If this ability is misused, private information can be leaked or modified. Even though the access authority to memory is strictly managed, there exist cases found exploited. In this paper, we analyze the problems of the function provided in the Android environment that is the most popular and opened operating system. Also, we discuss how to avoid such kind of problems and verify with experiments. Keywords : Virtual memory protection, /proc/pid/mem, Ptrace system call, Android memory protection, Linux memory protection Ⅰ. 서론 현대의삶은스마트장치와깊은유대 관계를 형성하고있다. 스마트폰으로전화, 문자등의기 본적인기능외에도틈틈이인터넷, 게임등의서비 스를즐기며, TV 의채널을변경하기위해손동작이 나음성을이용한다. 이러한서비스는스마트장치 가어플리케이션 ( 이하앱 ) 을통해서사용자에게제 공한다. 앱은운영체제에의해관리되는데, 운영체 제의여러역할중에서근래에더욱강조되는역할 이바로정보보호이다. 운영체제는앱이다루는중 요데이터를보호하기위해각앱에게독립된메모 리공간인가상메모리 [1] 를제공하는데, 많은운 영체제가디버깅등의편의를위해한앱이다른 앱의가상메모리에접근할수있는기능을제공한 다. 이러한기능은앱개발을위해선반드시필요한 기능이지만, 악의적인의도로악용될경우엔중요 *Corresponding Author (jsmoon@korea.ac.kr) Received: Sep. 9 2016, Revised: Oct. 11 2016, Accepted: Oct. 12 2016. D.R. Kim, J.S. Moon: Korea University c IEMEK J. Embed. Sys. Appl. 2016 Dec. 11(6) 335-341 ISSN : 1975-5066 http://dx.doi.org/10.14372/iemek.2016.11.6.335 정보의유출및조작등막대한피해를초래할수있다. 따라서운영체제는이런기능을제공할때의도했던용도로만사용되도록강력하게보호를하거나적어도앱에게자신의가상메모리를보호할수있는기회를제공해야한다. 하지만많은사람들이사용하는운영체제에서도가상메모리를보호하는역할에있어결점이존재하는경우가있다. 이에본논문에서는안드로이드오픈소스프로젝트 (Android Open Source Project, AOSP) 에의해소스코드가공개되어있고, 2014년 1월 21일을기준으로한국의스마트폰운영체제시장에서 93.4% 의점유율을차지한안드로이드 [2] 를대상으로다른앱의가상메모리에접근할수있는기능의문제점을분석한후에해결방안을제시한다. 이후에는제시한방안을적용하기전후로안드로이드에서앱의가상메모리를조작하는실험을수행함으로써본논문이제시한방안의타당성을검증한다. 본논문은 7장으로이루어져있다. 2장에서는안드로이드에서앱의메모리로부터민감한데이터를추출한기존연구와다른앱의가상메모리에있는데이터를조작하는앱에대해소개한다. 3장에서는다른앱의가상메모리에접근할수있는기

336 어플리케이션의가상메모리보호를위한연구 능을소개하며, 4장에서는해당기능의문제점을분석한다. 5장에서는문제점을해결할수있는방안을제시하며, 6장에서는실험을통해서본논문에서제안하는방안의타당성을검증한다. 마지막 7장에서는결론을맺음으로써논문을마무리한다. Ⅱ. 관련연구 최근의몇몇연구는대표적인모바일운영체제인안드로이드에서앱의메모리영역을덤프하면사용자의민감한데이터를추출할수있음을보이고있다. 이는만약공격자가악성앱을통해다른앱의가상메모리를추출한다면, 연구에서와마찬가지로사용자의민감한데이터를획득할수있음을의미한다. D. Apostolopoulos et al. 은오픈소스도구인 Dalvik Debug Monitor Server (DDMS) [3] 로안드로이드앱에서가상메모리를덤프한후에두가지실험을수행하였다 [4]. 첫번째실험은앱을통해전송한아이디와비밀번호를메모리덤프에서찾는것이다. 이실험은 13개의은행앱, 쇼핑앱, SNS 및채팅앱중에서 12개의앱이메모리상에서아이디를보호하지않고, 비밀번호관리앱을포함한 30개의앱중 29개의앱이사용자의비밀번호를보호하지않는다는것을증명한다. 이실험결과는만약공격자가악성앱으로실험대상앱의가상메모리에접근한다면사용자의아이디와비밀번호와같은중요개인정보를탈취할수있음을의미한다. 두번째실험은가상메모리에서개인정보가위치하는패턴을파악하는것인데, 사용자의개인정보주변에는 password, @Paw, username 등의문자열이위치하고있어메모리에서개인정보를찾는것이어렵지않음을증명한다. P. Stirparo et al. 또한안드로이드앱의가상메모리를덤프하면사용자의개인정보를탈취할수있음을보인다 [5]. 이들의연구에서특히주목할점은앱의가상메모리를덤프하기위해자체제작한트로잔앱을이용하는데, 이앱은표면상으로는정상앱과차이가없고시스템에미치는성능상의영향도미비하여사용자입장에서악성앱임을판단하기가쉽지않다는것이다. Z. Ding et al. 은중국의인기메신저인 Wechat [6] 을대상으로메모리를덤프하여, 사용자의중요메시지나이미삭제한메시지뿐만아니라 SD 카드에는암호화되어저장된메시지를평문상태로추출할수있음을보인다 [7]. 이상의기존 연구가제시하는사례를방지하기위해선앱의가상메모리를보호할수있는연구를반드시수행해야한다. 기존의연구외에도안드로이드에선앱의가상메모리를위협하는메모리조작앱이존재한다. 앱에서데이터는개발자가사용하는방법에따라서스택영역이나힙영역에저장된다. 개발자는데이터에접근하기위해변수를사용하는데, 변수를사용할때마다재할당하지않는이상데이터는스택이나힙영역에서동일한주소에위치한다. 메모리조작앱은특정데이터가위치한주소를찾아서조작할수있다. 대표적인예로는 Cheat Engine [8], GAMEGUARDIAN [9], SB Game Hacker [10] 가있다. 안드로이드사용자들이메모리조작앱을주로사용하는곳은게임앱이다. 게임앱의대부분은수익을거두기위해부분유료화정책을사용한다. 사용자가결제를하면게임상의금전을제공하거나아이템을제공하는방식인데, 악의적인사용자는메모리조작앱으로주요데이터를조작함으로써결제없이부당이익을취할수있다. 혹은자신의점수와같은데이터를조작하기위해사용하기도한다. 물론게임서버측에서중요데이터에대한검증을수행한다면어느정도예방을할수는있지만모든데이터를검증하기란쉽지않을뿐더러불가피하게오버헤드가발생한다. Ⅲ. 가상메모리접근기능 1. 가상메모리 가상메모리란앱에게주어진추상화된메모리공간을의미한다. 운영체제는앱에게독립된가상메모리를제공함으로써여러앱이동시에동작하는것처럼보이게하는멀티태스킹기능과실제주기억장치보다큰메모리영역을제공한다. 앞의두기능외에도운영체제가가상메모리기법을사용하는중요한이유는가상메모리기법을통해서각앱의메모리영역이다른앱에의해침해되지않도록보호하기위해서이다. 안드로이드는리눅스를근간으로하는모바일운영체제이며, 앱을리눅스의프로세스로운영한다. 따라서안드로이드에서다른앱의가상메모리에접근할수있는기능을분석하기위해선리눅스를분석해야한다. 리눅스는디버깅을위해다른앱의가상메모리에접근할수있도록두가지방법을지원한다.

대한임베디드공학회논문지제 11 권제 6 호 2016 년 12 월 337 2. 접근방법 1 ptrace 시스템콜리눅스에서다른앱의가상메모리에접근할수있는첫번째방법은 ptrace 시스템콜 ( 이하 ptrace) [11] 을이용하는것이다. ptrace는 process trace의약자로, 다른앱의실행이나시그널을제어할수있고메모리및레지스터에존재하는데이터를확인하거나수정할수있다. 이시스템콜은리눅스의대표적인디버거인 GDB와같은디버거가디버깅을목적으로주로사용한다. ptrace는인자로전달하는플래그에따라동작이달라진다. 다른앱의가상메모리에서데이터를읽기위해선 PTRACE_PEEKTEXT나 PTRACE_PEEKDATA 플래그를이용하며, 데이터를수정하기위해선 PTRACE_POKETEXT나 PTRACE_POKEDATA 플래그를이용한다. 3. 접근방법 2 /proc/pid/mem 가상파일다른앱의가상메모리에접근할수있는두번째방법은 /proc/pid/mem 가상파일을이용하는것이다. 리눅스는앱및시스템의정보를관리하기위해 proc 가상파일시스템을운영한다. 이파일시스템에는리눅스가앱을관리하기위해부여한프로세스 ID (PID) 별로디렉터리가존재하는데, 디렉터리에는앱의가상메모리를보여주는 mem 파일이존재한다. 다른앱의 mem 가상파일에접근하기위해선일반파일에접근하는것과동일하게 open, read, write 와같은함수를이용한다. 하지만앱은운영체제가부여한주소공간에서모든영역을사용하는것이아니기때문에사용하지않는영역에대해 read나 write 함수를사용하면오류가발생한다. 앱이실제로사용하는가상메모리영역은 /proc/pid/maps 가상파일에기록되어있다. Ⅳ. 문제점분석리눅스가제공하는 2가지접근방법중악성앱이첫번째방법을이용하여다른앱의가상메모리에접근하는경우는대처가가능하다. ptrace는앞서소개한플래그외에도 PTRACE_TRACEME 플래그를제공한다. 앱이이플래그를이용해서 ptrace를사용한다는것은부모앱에의해서추적이된다는것을의미한다. 이때부모앱이정상적으로자식앱을추적하기위해선 CAP_SYS_PTRACE capability [12] 를가지고있어야한다. 안드로이드의경우엔모든사용자앱의부모프로세스인 zygote 가안드로이드버전에따라 CAP_SYS_PTRACE capability를가질수도있고가지지않을수도있다. zygote가 CAP_SYS_PTRACE capability를가지고있는경우엔앱이시작과함께 ptrace를 PTRACE_TRACEME 플래그로호출하면악성앱이가상메모리에접근하는것을방지할수있다. 이방법이가능한이유는리눅스는한번에하나의앱이다른앱을추적할수있도록제한하기때문이다. 다만이경우엔시그널처리에대한권한이 zygote 프로세스로전달되는등의부작용이발생할수있다. zygote 앱이 CAP_SYS_PTRACE capability를가지지않은경우엔메모리를보호하려는앱이주기적으로 ptrace를호출하면서에러코드를확인해야한다. zygote가권한을가지고있지않은상태에서앱이 ptrace를호출하면 ptrace는에러를반환하면서권한이없다는것을의미하는 EACCESS 에러코드를함께반환한다. 하지만악성앱이정상앱의가상메모리에접근한상태에서정상앱이 ptrace를호출하면 EPERM 에러코드를반환한다. 이를통해서정상앱은강제종료등의대처를수행할수있다. 이에반해 mem 가상파일을이용한접근은정상앱이능동적으로대처할수있는방안이없다. mem 가상파일을이용하여프로세스의가상메모리를추출한사례는 memfetch [13] 에서제시되었다. memfetch는가상메모리를추출하기위해 mem 가상파일과 ptrace를조합하여사용하는데, 이런경우엔앞서소개한것처럼 ptrace 접근에대해대처를하면된다. 하지만 mem 가상파일에접근할때 ptrace를함께사용하는것은데이터를추출할때안정성을더해줄뿐이지 mem 가상파일을이용할때 ptrace 시스템콜이반드시필요한것은아니다. 만약정상앱이메모리상에서다른앱이추출하거나조작할만큼충분한시간동안중요데이터를유지한다면 mem 가상파일은정보보호의관점에서커다란위협이될수있다. Ⅴ. 제안사항 운영체제가악성앱으로부터정상앱의가상메모리를지킬수있는방법은크게 2가지이다. 첫번째는악성앱이정상앱의가상메모리에접근하지못하도록해당기능을제거하는것이다. 하지만운영체제에서동작하는앱을개발하기위해선디버깅기능이필수적이기때문에완전히제거하는것은

338 어플리케이션의가상메모리보호를위한연구 현실적으로쉽지가않다. 이에대한대안으로대부분의운영체제는해당기능에대한접근제어를수행함으로써기능이남용되는것을막는다. 앞서살펴본리눅스도다른앱의 /proc/pid/mem 가상파일에접근할때 kernel/fork.c 파일에있는 mm_access 함수로접근제어를수행한다. 다른앱이해당접근제어를통과할수있는경우는부모앱이자식앱의가상메모리에접근하거나, 최고권한인루트권한을획득한앱이다른앱의가상메모리에접근하는경우이다. 하지만운영체제가근본적으로이기능을제거하는것이아니라면접근제어를강화하는것만으로앱의가상메모리를완벽하게보호하는것은힘들다. 안드로이드도버전을업그레이드하면서루트권한을획득할수있는취약점들을지속적으로보완하였다. 그럼에도불구하고가상메모리를완벽하게보호하기가힘든이유는운영체제는사용자와상호작용하면서시스템을운영하기때문이다. 안드로이드는각버전별로사용자가루트권한을획득할수있는방법이존재한다. 이를바탕으로사용자는안드로이드를자신의입맛에맞게변형하기위해루트권한을요구하는앱이나메모리조작앱을설치한다. 메모리조작앱은게임앱과같이앱개발자의수익에관련된데이터를조작하기위해사용할수있으며, 편의를위해설치했던루트권한을요구하는앱은사용자몰래다른앱으로부터사용자의개인정보를탈취할수있다. 운영체제는이러한상황들에대해서도최소한의내성을갖추고있어야한다. 가장이상적으로가상메모리를보호할수있는방법은접근제어를강화하는현대운영체제의추세에본논문이제안하는두번째방법을결합하는것이다. 두번째방법은악성앱이정상앱의가상메모리에접근할때운영체제가정상앱에게이를통보함으로써앱에게허용여부를결정하게하는것이다. zygote가 CAP_SYS_PTRACE capability를가지지않은환경에서정상앱이 ptrace를 PTRACE_TRACEME로호출하는경우가이에해당한다고볼수있다. ptrace는리눅스가명시적으로정상앱에게통보를하는것은아니지만, 정상앱이에러코드를받아볼수있는방법을제공한다. 하지만악성앱이정상앱의 mem 가상파일에접근할때에는리눅스가정상앱에게 ptrace의에러코드와같은정보를일절제공하지않는다. 만약이러한상황에서리눅스가악성앱의접근을정상앱에게통보한다면, 정상앱은 ptrace의경우처럼강제 종료와같은대응을할수가있다. 본논문이안드로이드환경에서제안하는사항은악성앱이다른앱의 /proc/pid/mem 가상파일에접근할때, 안드로이드의근간이자앱의가상메모리를보호해야할의무를지니고있는리눅스커널이 /proc/pid/mem 가상파일을소유하는앱에게시그널을보냄으로써가상메모리에접근하는앱의존재여부를알리도록하는것이다. 이를통해자신의가상메모리를보호하고자하는앱은리눅스의통보를바탕으로대책을강구할수있다. Ⅵ. 실험 1. 실험환경 본장에서는악의적인사용자를가장하여앞서설명한문제점중하나를직접재현한다. 이후에는제시한방안을적용함으로써문제점을해결할수있음을보인다. 실험은레퍼런스폰인 Nexus 5를위주로진행한다. 레퍼런스폰은스마트폰제조업체가안드로이드운영체제를자사제품에맞게특화할때참고하는장치이다. 따라서레퍼런스폰의안드로이드및리눅스커널소스코드는완전히공개되어있기때문에실험에적합하다. 실험에사용할안드로이드의버전은 4.4.4 (Kitkat) 이며, 리눅스버전은 3.4버전이다. 안드로이드 4.4.4는 Nexus 5 에서처음으로소개된버전으로써 2016년 9월 7일을기준으로가장높은점유율을차지하고있다 [14]. 리눅스 3.4버전은 Nexus 5가지원하는가장최신버전인데, 근래에출시된스마트폰은리눅스 3.18버전을사용한다. 다른앱의가상메모리에접근하기위해 mem 가상파일을대상으로 open 함수를호출하면, 리눅스는 fs/proc/base.c에있는 mem_open 함수를호출한다. mem_open 함수는 kernel/fork.c에있는 mm_access 함수로접근제어를수행하는데, 리눅스 3.4버전과 3.18버전은접근제어에서만약간의차이를보일뿐이지수행하는기능면에서는별다른차이가없다. 따라서본논문의실험내용은상위버전의리눅스에서도동일하게적용할수있다. 실험에서사용할앱은두가지이다. 첫번째앱은 2.2절에서소개한메모리조작앱으로써안드로이드의리눅스커널을수정하기전후로정상앱의가상메모리를조작하는역할을수행한다. 메모리조작앱이다른앱의가상메모리에접근할때 mem 가상파일을이용하는것을확인하기위해

대한임베디드공학회논문지제 11 권제 6 호 2016 년 12 월 339 그림 1. 실험용앱의가상메모리를조작한결과 Fig. 1 The result of modifying the virtual memory of the experimental app mem_open 함수와 mem_read 함수를수정하여 printk 함수로 mem 가상파일을소유하는앱의프로세스 ID를로그로출력한다. mem_read 함수는 mem 가상파일에대해 read 함수를사용할때호출된다. printk가출력하는로그는 /proc/kmgs에서확인할수있다. 두번째앱은정상앱으로써실험을위해자체제작한앱이다. 이앱은버튼을누르면임의의숫자를생성해서화면에출력하며, 메모리조작여부를판단할수있도록초점이돌아올때현재메모리에저장된값으로화면을갱신한다. 2. 실험결과첫번째실험은 mem_open 함수와 mem_read 함수에서로그만출력하도록수정하고루트권한을획득한후에메모리조작앱으로실험용앱의가상메모리를조작한다. 그림 1의첫번째캡처화면은실험용앱으로 generate 버튼을터치하자 360523이라는임의의값을출력한다. 두번째및세번째캡처화면은메모리조작앱중의하나인 Cheat Engine을이용하는화면으로, 실험용앱이출력한 360523의메모리주소를파악하여이를 999999로수정하는화면이다. 마지막캡처화면은초점이실험용앱으로돌아왔을때실험용앱이화면을갱신하자메모리조작앱으로수정한 999999가출력되는그림이다. 실험에서사용한메모리조작앱이 /proc/pid/mem 가상파일을사용하는지확인하기위해 /proc/kmsg의커널로그를확인하면그림 2 와같다. 그림 2의로그에따르면프로세스 ID가 Tested Devices 그림 2. /proc/kmsg 로그확인결과 Fig. 2 /proc/kmsg log messages Android version Linux kernel version Memory manipulation Nexus 5 5.0 3.4.0 Yes Nexus 5 6.0 3.4.0 Yes Samsung Galaxy S4 표 1. 다양한환경에서의실험결과 Table 1. The result of experiments on other environments 4.4.4 3.4.0 Yes LG G Pro 4.4.4 3.4.0 Yes 5599 인앱에대해 mem_open 함수와 mem_read 함수가호출되는것을확인할수있다. 실험을진행 중인 Nexus 5 에 adb [15] 를이용하여쉘에접근 한후, 프로세스 ID 가 5599 인앱을확인하면그림 3 과같이실험용앱인 prng 앱임을확인할수있다. 정상앱의메모리를조작하는실험은다양한환 경에서적용이가능하다. 표 1 은추가실험을진행 한환경과그결과를나타낸다. 추가실험은 Nexus 5 에서안드로이드버전을업그레이드한후와국내 의유명브랜드인삼성과 LG 핸드폰에서동일한실 험환경을구성한후에진행하였다.

340 어플리케이션의가상메모리보호를위한연구 그림 3. PID 가 5599 인앱을확인한결과 Fig. 3 The result of checking PID 5599 그림 4. 두번째실험에서 PRNG 앱의가상메모리를조작한결과 Fig. 4 The result of modifying the virtual memory of PRNG on the second experiment 두번째실험은첫번째실험에서두가지를수정한후에진행한다. 첫번째수정사항은리눅스커널의 mem_open 함수에서접근제어를수행하는 mm_access 함수의다음줄에특정프로세스에게시그널을보내는 sys_kill 함수를추가하는것이다. sys_kill 함수를 mm_access 함수가아닌 mem_open 함수에추가하는이유는기존의커널에영향력을최소화하기위해서이다. 리눅스커널 3.18 버전을기준으로 mm_access 함수를호출하는다른커널함수는존재하지만 [16], mem_open 함수를호출하는다른함수는존재하지않다 [17]. sys_kill 함수를추가하는것은악성앱이다른앱의 mem 가상파일에대한접근제어를통과하더라도운영체제가악성앱의존재를다른앱에게알려주는역할을한다. 현재의리눅스커널에는디버깅기능에대한통보를위한시그널이따로없기때문에실험에서는 SIGUSR2 시그널을사용한다. 두번째수정사항은실험용앱이제안사항을적용한리눅스커널의시그널을처리할수있도록시그널핸들러를등록하는것이다. 안드로이드앱은자바로작성된앱이기때문에기본적으론시그널을처리할수없다. 따라서시그널핸들러를네이티브라이브러리로작성한후에이를 NDK [18] 과 JNI [19] 로 실험용앱에이식해야한다. 두번째실험도실험과정은첫번째실험과동일하다. 하지만첫번째실험과는달리메모리조작앱이실험용앱의가상메모리에접근할때리눅스커널이이를통보해주기때문에그림 4와같이실험용앱을강제종료시키는대응을할수가있다. Ⅶ. 결론 본논문에서는안드로이드운영체제를예로들어앱의가상메모리가운영체제로부터제대로보호받지않을수있다는것을살펴보고, 이에대한대응책을제시하였다. 물론앱의가상메모리를보호하는가장좋은방법은악성앱이다른앱의가상메모리를침해하기전에예방하는것이다. 하지만앞서논의했던것처럼운영체제엔디버깅기능이필요하기때문에안드로이드를비롯한운영체제들은디버깅에필요한권한을강화하는방향으로진화하고있다. 안드로이드의경우에도버전이업그레이드될때마다이전버전에존재했던루팅방법이불가능하도록패치를수행하고있다. 그러나앱의가상메모리를보호하기위해선루트권한을막는것에만의존해선안된다. 안드로이드도 5.0 버

대한임베디드공학회논문지제 11 권제 6 호 2016 년 12 월 341 전을출시할때루트권한을막기위해노력했었지만결국루팅방법이등장했으며, 6.0 버전도부트이미지를수정하는루팅방법이등장하였다. 따라서각운영체제는가상메모리에대한접근제어를강화하는것외에도본논문에서제안한바와같이앱의가상메모리를보호할수있는최소한의장치를마련하는노력을해야한다. References [1] A.S. Tanenabum, Modern operating systems 3rd, Pearson, pp. 186-187, 2014. [2] http://koreajoongangdaily.joins.com/news/article /Article.aspx?aid=2983882 [3] https://developer.android.com/studio/profile/ddm s.html [4] D. Apostolopoulos, G. Marinakis, C. Ntantogian, C. Xenakis, Discovering authentication credentials in volatile memory of android mobile devices, Proceedings of Conference on International Federation for Information Processing, pp. 178-185, 2013. [5] I.N. Fovino, M. Taddeo, I. Kounelis, In-memory credentials robbery on android phones, Proceedings of IEEE World Congress on Internet Security, pp. 88-93, 2013. [6] http://www.wechat.com/en/ [7] F. Zhou, Y. Yang, Z. Ding, G. Sun, Dump and analysis of android volatile memory on wechat, Proceedings of IEEE International Conference on Communications, pp. 7151-7156, 2015. [8] http://www.cheatengine.org/ [9] https://gameguardian.net/forum/ [10] http://sbgamehacker-apk.com/ [11] http://man7.org/linux/man-pages/man2/ptrace. 2.html [12] http://man7.org/linux/man-pages/man7/capabil ities.7.html [13] https://github.com/citypw/lcamtuf-memfetch [14] https://en.wikipedia.org/wiki/android_(operatin g_system) [15] https://developer.android.com/studio/command -line/adb.html [16] http://lxr.free-electrons.com/ident?v=3.18&i=m em_open [17] http://lxr.free-electrons.com/ident?v=3.18&i=m m_access [18] https://developer.android.com/ndk/index.html [19] https://developer.android.com/training/articles/ perf-jni.html Dong-Ryul Kim ( 김동율 ) He is received B.E. degree in computer en- gineering from Hongik University in 2015. He is currently enrolled in Graduate school of information security at Korea University. He interested in the field of Android O.S, Embedded device security, Vulnerability analysis. Email: pixxi242@naver.com Jong-Sub Moon ( 문종섭 ) Professor Moon re- ceived his Ph.D. degree in computer science from Illinois Institute of Technology, U.S.A in 1991 and his M.S. degree and B.S. degree from Seoul University, Korea in 1983. He is currently a professor at information engineering, Korea Uni- versity, Seoul, Korea. His research interests are system security, network security and pattern recognition, especially machine learning. Email: jsmoon@korea.ac.kr