보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 전 철 1), 장준혁 2), 김봉재 3), 정진만 4), 조유근 5) A Robust Permission-Based Malicious Application Filtering Scheme for Effective Android Application Reviews Cheol Jeon 1), Joonhyouk Jang 2), Bongjae Kim 3), Jinman Jung 4), Yookun Cho 5) 요 약 안드로이드 플랫폼의 인기가 높아짐에 따라 안드로이드 마켓에 등록되는 애플리케이션의 수 또한 빠르게 증가하고 있다. 따라서 나날이 새롭게 등록되는 수많은 애플리케이션 중 악성 애플리케이션을 여과해내는 작업은 시간과 비용이 많이 드는 일이다. 이 문제를 다루기 위해 여러 퍼미션 기반 필터링 기법들이 제안되었고 이러한 기법들은 애플리케이션 검수시간을 상당히 단축시켰다. 그러나 이러한 필 터링기법은 협력 공격(collusion attack)을 통해 충분히 우회가 가능하다. 따라서 본 논문에서는 협력 공격까지 탐지할 수 있는 견고한 퍼미션 기반 필터링 기법을 제안한다. ClamAV[14]를 이용한 실험을 통해 기존에 제안된 기법보다 더 많은 악성 애플리케이션을 탐지 할 수 있음을 확인하였고 애플리케 이션 검수 시간도 기존 퍼미션 기반 필터링 기법과 비슷한 수준으로 줄일 수 있음을 확인하였다. 핵심어 : 모바일, 안드로이드, 보안, 퍼미션 기반 필터링 Abstract As the popularity of Android platform grows, the number of applications registered to market place also increases rapidly. Therefore, the work that classifies malicious applications from the set of newly registered applications every day is time-consuming and expensive. In order to address this problem, several permission-based filtering schemes have been proposed. As a result, the permission-based filtering schemes contribute significantly to reducing the time to review the applications. However, these filtering schemes can be defeated by collusion attacks. Therefore, we propose a robust permission-based filtering schemes that can detect collusion attacks. Through experiments using ClamAV, we verified that our proposed scheme can detect more malicious applications than the existing permission-based filtering schemes. Moreover, our scheme can reduce review time to the similar level of that of the existing permission-based filtering schemes. Keywords : Mobile, Android, Security, Permission-Based Filtering 접수일(2013년02월24일), 심사의뢰일(2013년02월25일), 심사완료일(1차:2013년03월04일, 2차:2013년03월18일) 게재일(2013년04월30일) 1 151-744 서울특별시 관악구 관악로 1, 서울대학교 컴퓨터공학부. email: cjeon@os.snu.ac.kr 2 151-744 서울특별시 관악구 관악로 1, 서울대학교 컴퓨터공학부. email: jhjang@os.snu.ac.kr 3 151-744 서울특별시 관악구 관악로 1, 서울대학교 컴퓨터공학부. email: bjkim@os.snu.ac.kr 4 151-744 서울특별시 관악구 관악로 1, 서울대학교 컴퓨터공학부. email: jmjung@os.snu.ac.kr 5 (교신저자) 151-744 서울특별시 관악구 관악로 1, 서울대학교 컴퓨터공학부. email: ykcho@os.snu.ac.kr * 본 연구는 문화체육관광부 및 한국저작권위원회의 2012년도 저작권 기술개발사업의 연구결과로 수행되었음 187
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 1. 서론 현재 안드로이드는 제조사와 사용자들에게 가장 인기 있는 스마트폰 플랫폼이 되었다. 시장 조 사기관 IDC에 따르면 안드로이드의 시장 점유율은 75%이다[1]. 이렇게 안드로이드의 인기가 증가 함에 따라 안드로이드의 보안 매커니즘의 취약점들이 부각되기 시작했고 이를 악용하여 폰 내부에 저장된 사용자 정보에 접근하여 개인정보를 유출하는 악성 애플리케이션의 수도 증가하였다. 통계 자료에 따르면 안드로이드의 악성코드의 수는 2011년과 2012년 사이에 400% 증가한 것을 알 수 있다[2]. 안드로이드 보안 매커니즘은 샌드박스(sandbox), 애플리케이션 서명, 그리고 퍼미션으로 나눌 수 있다. 샌드박스는 안드로이드 시스템에서 각 애플리케이션에 유일한 사용자 아이디(UID)와 그 룹 아이디(GID)를 할당함으로써 구현된다. 따라서 기본적으로 안드로이드의 모든 애플리케이션은 서로의 자원에 접근할 수 없으며 각각 독립된 프로세스에서 고립되어 실행된다. 애플리케이션 서 명은 저작권자를 애플리케이션에 명시하기 위해 사용된다. 안드로이드 시스템은 모든 애플리케이 션이 개발자의 인증서에 의해서 서명되어지도록 요구하며 서명되지 않은 애플리케이션의 설치는 허용하지 않는다. 퍼미션 시스템은 안드로이드의 샌드박스 매커니즘에 의해 제한된 능력을 갖는 애플리케이션이 시스템이나 다른 애플리케이션이 제공하는 기능이나 자원을 사용할 수 있도록 허 가한다. 퍼미션 시스템은 일반적으로 설치시간(install-time) 퍼미션 시스템과 사용시간(time-of-use) 퍼미 션 시스템으로 나누어진다[3]. 설치시간 퍼미션 시스템은 애플리케이션이 설치될 때 애플리케이션 이 요구하는 모든 퍼미션을 사용자에 보여준다. 이 퍼미션 시스템 안에서 사용자는 오직 모든 퍼 미션을 허가하여 설치를 허용하거나 모두 거절하여 설치를 거부할 수만 있다. 이러한 특성은 all-or-nothing decision[4]이라고 불린다. 따라서 실행 중에 할당된 퍼미션을 동적으로 회수(revoke) 하는 것이 불가능하며 오직 애플리케이션의 삭제를 통해 회수 할 수 있다. 반면에 사용시간 퍼미 션 시스템에서 애플리케이션들은 실행 중에 필요한 퍼미션을 요청한다. 따라서 사용자는 동적으로 퍼미션을 허용하거나 거부 할 수 있다. 현존하는 여러 스마트폰 플랫폼들이 적용한 퍼미션 시스템 을 살펴보면 ios는 사용시간 퍼미션을 사용하고 있으며 안드로이드는 설치시간 퍼미션 시스템을 사용한다. 따라서 안드로이드는 설치시간 퍼미션 시스템이 가지는 특징을 그대로 따른다. 설치시간(install-time) 퍼미션 시스템의 대표적인 단점은 coarse-grain 퍼미션 문제와 all-or-nothing decision 문제가 있다. 하나의 퍼미션은 특정 시스템 API들의 집합을 나타낸다. 다루 는 집합의 크기에 따라서 그 집합의 크기가 작을 경우 fine-grain 퍼미션이라 하고 반대로 클 경우 coarse-grain 퍼미션이라고 한다. fine-grain 퍼미션은 다루는 API 집합의 크기가 작아 그것을 사용 하는 개발자의 부담이 크지만 필요 이상의 기능을 애플리케이션에 허가할 가능성이 적다는 장점을 갖는다. 반면에 coarse-grain 퍼미션의 경우에는 개발자의 부담은 적지만 필요 이상의 기능을 애플 188
보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 리케이션에 부여할 가능성이 높다. 특히 사용자의 개인정보 접근을 다루는 퍼미션이 coarse-grain 하다면 해당 퍼미션을 사용하는 애플리케이션은 필요 이상의 권한을 가지게 되며 사용자는 해당 퍼미션을 사용하는 애플리케이션의 정확한 의도를 파악하기 어렵게 된다. 예를 들어 안드로이드 애플리케이션은 READ_PHONE_STATE 퍼미션만 할당 받으면 기본적인 장치정보 뿐만 아니라 민 감한(sensitive) 사용자 정보인 폰 번호, 유심(USIM)정보 등과 같은 중요한 폰 정보에 접근할 수 있 다. 따라서 애플리케이션이 이러한 coarse-grain 퍼미션을 요청할 경우 사용자는 그 사용 목적을 정확히 판단하기 어렵다. 또한 설치시간 퍼미션 시스템의 all-or-nothing decision 특성으로 인하여 사용자는 요청된 퍼미션의 일부만을 선택적으로 허용할 수 없고 오직 요구된 퍼미션을 모두 허가 하여 설치가 되도록 하거나 설치를 거부할 수밖에 없다. 안드로이드 퍼미션 시스템에 대한 전문적 인 이해와 지식이 없는 대부분의 사용자들은 원하는 기능을 사용하기 위해 설치를 허가하는 경우 가 많다. 설치시간(install-time) 퍼미션 시스템의 장점은 사용자 동의(user consent), 종심방어 (defense-in-depth), review triaging이 있다[3]. 첫째로, 애플리케이션에서 요구하는 모든 퍼미션은 사용자 동의가 있어야지만 사용이 가능하다. 만약 악의적인 행위가 의심이 될 경우 사용자는 요구 된 퍼미션의 사용을 거부할 수 있다. 둘째로, 설치된 애플리케이션의 취약점의 영향은 해당 애플리 케이션에 허가된 퍼미션으로 한정된다. 마지막으로 애플리케이션을 검수하는 시간을 줄이는데 도 움을 준다. 애플리케이션 검수자(reviewer)는 위험한(dangerous) 퍼미션을 사용하는 애플리케이션 만을 집중적으로 분석하면 되기 때문이다. Review triaging의 장점을 이용하여 애플리케이션 검수시간을 줄이기 위한 여러 연구들이 진행 되었다[5][6]. DroidRanger[6]는 마켓에 등록되는 애플리케이션에서 정상 애플리케이션과 악성 애플 리케이션을 빠르게 분류하기 위해 퍼미션 기반 분석을 수행한다. Kirin[5]은 하나의 위험 퍼미션만 으로는 악성 애플리케이션 인지 판단하기 어렵기 때문에 설치 시에 퍼미션 조합을 분석하여 악의 적인 행위를 할 가능성에 대하여 좀 더 풍부한 정보를 사용자에게 제공해준다. 실례로, FakePlayer[7]는 할증 요금 번호(premium rate number)로 사용자 동의 없이 문자 메시지 보내 결 과적으로 해커의 계좌로 돈이 전달되도록 만든다. 이러한 종류의 악성 애플리케이션들은 문자 메 시지를 보내고 수신된 문자 메시지를 감시하여 결제정보를 알리는 메시지를 삭제해야 하기 때문에 공통적으로 SEND_SMS와 RECEIVE_SMS 퍼미션을 요구한다. 따라서 악성 애플리케이션들이 주로 사용하는 퍼미션의 조합을 찾아내는 것은 정상 애플리케이션과 악성 애플리케이션을 분류하는데 도움을 주어 coarse-grain 퍼미션에 따른 판단 문제를 해결하는데 도움을 줄 수 있다. 하지만 이러 한 퍼미션 기반의 애플리케이션 분류기법은 하나의 목적을 달성하기 위해 기능을 분리하여 협력적 으로 동작하는 애플리케이션을 탐지할 수 없다. 따라서 악성 애플리케이션 개발자가 협력적으로 동작하는 애플리케이션을 개발한다면 퍼미션 기반 필터링 기법을 우회할 수 있다. 본 논문에서는 기존 퍼미션 기반 필터링 기법을 강화하여 협력적으로 동작하는 악성 애플리케 이션까지 탐지할 수 있는 향상된 퍼미션 기반 필터링 기법을 제안한다. 189
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 2. 관련연구 2.1 퍼미션 시스템 퍼미션 시스템은 바라보는 관점에 따라서 크게 2가지 형태로 분류되어진다. 하나는 퍼미션이 허 가되는 시점에 따라서 설치시간(install-time) 시스템과 사용시간(time-of-use)으로 나누는 것이고 또 다른 하나는 해당 퍼미션이 관리하는 기능의 수준에 따라서 시스템 수준(system-level) 퍼미션과 애플리케이션 수준 퍼미션으로 나누는 것이다. Felt[3]는 설치시간 퍼미션 시스템과 사용시간 퍼미션 시스템에 대해서 설명을 하고 설치시간 퍼 미션 시스템을 적용한 안드로이드와 크롬(Chrome) 브라우저에 대한 실험을 통해 퍼미션 시스템의 효과를 증명하였다. Stowaway[8]는 애플리케이션을 분석하여 애플리케이션이 요구한 권한이 다루 고 있는 API와 실제 사용 중인 API를 비교하였다. 그 결과 940개의 애플리케이션 중 1/3이상의 애플리케이션이 필요이상의 권한을 요구한다는 사실을 파악하였다. Burns[12]는 애플리케이션 수준 퍼미션의 사용을 분석하였고 퍼미션을 정의하는 것 대신에 인텐 트 필터(intent filter)를 사용하는 것과 같은 개발자들의 실수를 지적하였다. 2.2 퍼미션 기반 필터링 Kirin[5]에서는 그림 1과 같이 애플리케이션이 설치될 때 해당 애플리케이션이 요구하는 퍼미션 의 조합을 검사하여 그 위험을 사용자에게 알리는 시스템을 제안하였다. [그림 1] Kirin 구조 [Fig. 1] The structure of Kirin DroidRanger[6]는 그림 2와 같이 정상 애플리케이션과 악성 애플리케이션을 빠르고 정확하게 분 류할 수 있는 기법을 제안하였다. DroidRanger에서는 1차 필터링 기법으로 퍼미션 기반 필터링을 수행한다. 190
보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 [그림 2] DroidRanger 동작과정 [Fig. 2] The review process of DroidRanger 2.3 데이터 흐름 분석 퍼미션에 대한 잘못된 이해와 사용은 전화번호, GPS 위치정보와 같은 민감한(sensitive) 정보가 다른 애플리케이션 컴포넌트로 흘러갈 수 있는 가능성을 만들기 때문에 데이터 흐름을 추적하는 연구도 진행되었다. ScanDroid[9]는 최초의 안드로이드 애플리케이션 분석 툴이다. 애플리케이션의 매니페스트 (manifest)파일을 분석하여 애플리케이션 간의 데이터 흐름을 정적으로 분석하였다. 데이터 흐름 분석은 컨텐트 프로바이더(content provider)를 중심으로 이루어졌고 인텐트, 엑티비티(activity), 그리고 서비스와 같은 컴포넌트를 통해 데이터의 이동이 일어날 수 있다는 문제를 제기하였다. ComDroid[10]는 ScanDroid에서 다루지 않았던 인텐트를 중심으로 한 데이터 흐름을 분석하였다. 3. 악성 애플리케이션의 퍼미션 사용 분석 안드로이드에서 정의된 퍼미션들은 normal, dangerous, signature, signature or system 이렇게 4 가지 범주로 분류될 수 있다. 대부분의 퍼미션들은 normal, dangerous 범주 안에 속한다. normal 퍼미션의 경우는 설치 시 사용자에게 묻지 않고 자동적으로 할당된다. 반면에 dangerous 퍼미션일 경우에는 설치 시에 사용자에게 허가를 요청하게 된다. 그 이유는 해당 퍼미션을 얻을 경우 사용 자 정보에 접근을 하거나 시스템 무결성을 해칠 수 있기 때문이다. 따라서 대부분의 안드로이드 악성 어플리케이션은 주소록, GPS, IMEI(International Mobile Equipment Identity)등과 같은 민감 한(sensitive) 정보에 접근하기 위해 dangerous 퍼미션들을 요구하는 경향이 있다. 따라서 악성 애 플리케이션들이 요구하는 퍼미션의 종류와 빈도를 분석하여 선호하는 퍼미션을 찾는 일은 의미 있 는 일이다. 그리고 dangerous 퍼미션을 많이 사용 할수록 악성 애플리케이션일 가능성이 높아지기 때문이다. 추가적으로 악성 애플리케이션에서 자주 사용하는 퍼미션의 조합을 분석한다면 애플리 191
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 케이션의 동작에 대한 더 많은 힌트를 얻을 수 있다. 이렇게 분석된 위험 퍼미션과 퍼미션 조합 정보는 애플리케이션이 설치될 때 좀 더 상세한 정보를 사용자에게 알려줄 수 있을 뿐만 아니라 마켓에서의 애플리케이션 검수 시간을 줄이는데 도움을 줄 수 있다. [그림 3] 퍼미션 사용빈도 [Fig. 3] The usage frequency of permissions Android Malware Genome Project[11]로부터 배포받은 1260개의 악성 애플리케이션 샘플을 대 상으로 퍼미션의 사용빈도와 조합을 분석하였다. 실험을 통해 총 116개의 퍼미션이 사용됨을 확인 하였다. 그림 3은 악성 애플리케이션에서 자주 사용되는 퍼미션 30개를 사용빈도가 높은 순으로 나열한 것이다. 그림 3의 분석결과에 따르면 악성 애플리케이션에서 많이 사용되는 퍼미션은 INTERNET이다. INTERNET 퍼미션을 획득한 애플리케이션은 외부와의 통신을 아무런 제약 없이 수행할 수 있다. 실험을 통해 대부분의 악성 애플리케이션은 외부와 통신을 필요로 한다는 사실을 알 수 있다. 그리고 기존에 존재하는 악성 프로그램의 사례를 보았을 때 외부의 명령을 받아서 동 작하거나 폰 내부에서 수집한 정보를 외부로 유출하는 두 가지 형태의 악성 행위를 추측할 수 있 다. 그 다음으로 많이 사용되는 퍼미션인 READ_PHONE_STATE는 장치정보, 폰 번호와 같은 민 감한 정보를 접근할 수 있도록 허용한다. 이를 통해 대부분의 악성 애플리케이션은 폰 정보를 수 집한다는 것을 알 수 있다. 앞서 살펴본 INTERNET과 READ_PHONE_STATE 퍼미션을 요구하는 애플리케이션은 충분히 폰의 민감한 정보를 수집하고 외부로 유출할 수 있는 가능성이 있다. 따라 서 악성 애플리케이션들의 퍼미션 조합을 분석하여 수집한 정보는 애플리케이션의 악성행위를 예 측 하는데 도움을 줄 수 있으며 추가적으로 애플리케이션이 설치될 때 애플리케이션의 행위에 대 한 좀 더 상세한 정보를 사용자에게 제공하여 설치를 허용할지 아니면 취소할지에 대한 판단에 도 192
보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 움을 줄 수 있다. 표 1은 실험결과 악성 애플리케이션에서 많이 사용되는 퍼미션 조합 6개를 나타낸다. 표 1의 실 험 결과를 보았을 때 안드로이드 악성 애플리케이션은 주로 외부와의 통신 매체로 인터넷과 문자 메시지를 사용하며 폰 상태 정보와 위치 정보를 주로 수집함을 알 수 있다. [표 1] 악성 애플리케이션 퍼미션 조합 [Table 1] The permission combinations of malicious applications 퍼미션 조합 개수 INTERNET + READ_PHONE_STATE 1175 SEND_SMS + READ_PHONE_STATE 525 INTERNET + ACCESS_FINE_LOCATION + ACCESS_COARSE_LOCATION SEND_SMS + ACCESS_FINE_LOCATION + ACCESS_COARSE_LOCATION INTERNET + SEND_SMS + READ_PHONE_STATE INTERNET + SEND_SMS + ACCESS_FINE_LOCATION + ACCESS_COARSE_LOCATION 550 173 307 120 4. 기존 퍼미션 조합 기반 필터링 우회 시나리오 표 1을 통해서 보여지 듯이 대부분의 악성 애플리케이션들은 통신 매체를 관리하는 싱크(sink) 퍼미션과 민감한 정보에 접근할 수 있는 소스(source) 퍼미션으로 구성되어 있음을 알 수 있다. 따 라서 애플리케이션이 싱크 퍼미션과 소스 퍼미션의 조합으로 이루어져 있다면 악의적인 행위를 할 가능성이 높기 때문에 따로 분류하여 집중적으로 검수 할 필요가 있다. 하지만 이러한 퍼미션 조 합을 이용한 필터링은 협력적으로 동작하는 악성 애플리케이션을 탐지할 수 없다. 예를 들어, 폰 번호를 노출하려는 악성 애플리케이션을 작성할 때 INTERNET 퍼미션을 가지고 외부로 노출하는 기능을 담당하는 애플리케이션과 READ_PHONE_STATE 퍼미션을 가지고 폰 정보에 접근하는 애 플리케이션을 각각 개발하여 2개의 애플리케이션이 콘텐트 프로바이더(content provider)나 파일등 의 매개로 하여 폰 정보를 노출하도록 한다면 기존 퍼미션 기반 필터링을 우회할 수 있다. 이러한 공격 방식은 응용 수준 권한 상승(application-level privilege escalation) 공격 중 하나이며 협력 공 격(collusion attack)이라고 불린다[13]. 협력 공격은 민감한 정보에 접근할 수 있는 기능을 가진 소스(source) 애플리케이션과 외부와 통신 할 수 있는 기능을 가진 싱크(sink) 애플리케이션이 서로 긴밀하게 통신하면서 동작하게 함으 로써 이루어진다. 안드로이드 상에서 협력 공격은 두 가지 형태로 나타날 수 있다. 첫 번째 형태는 소스 애플리케이션이 직접 싱크 애플리케이션에 접근하여 정보를 전달하는 경우이다. 그림 4를 살 193
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 펴보면 소스 애플리케이션은 전화번호, IMEI(International Mobile Equipment Identity), GPS와 같 은 민감한 정보를 싱크 애플리케이션의 콘텐트 프로바이더에 저장을 하고 싱크 애플리케이션은 주 기적으로 이를 확인하여 외부로 유출한다. 두 번째 형태는 소스와 싱크 애플리케이션이 기존에 설 치된 애플리케이션의 취약한 인터페이스나 시스템 인터페이스를 매개로하여 간접적으로 통신하는 경우이다. 그림 5에서 보여지 듯이 두 번째 형태의 공격은 최소 3개의 애플리케이션이 컴포넌트 통신을 하여 정보를 노출한다. 첫 번째 공격형태와 차이점은 소스 애플리케이션은 안드로이드 패 키지 매니저(PackageManager)를 통해 사용가능한 콘텐트 프로바이더 리스트를 받아 보안이 취약 한 콘텐트 프로바이더 찾거나 안드로이드 시스템에서 제공하는 전화번호부(contact), 브라우저 히스 토리와 같은 시스템 컨텐트 프로바이더를 중간 매개체로 이용하여 정보를 저장한다는 점이다. 따 라서 필터링을 할 때 애플리케이션 간의 관계까지 고려하여 협력 공격(collusion attack)의 가능성 을 확인해야 한다. [그림 4] 협력공격 시나리오 1 [Fig. 4] Collusion attack scenario 1 194 [그림 5] 협력공격 시나리오 2 [Fig. 5] Collusion attack scenario 2
보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 5. 강화된 퍼미션 기반 필터링 기법 4장에서 살펴본 협력 애플리케이션을 이용한 권한상승 공격은 기존에 제안된 퍼미션 기반 필터 링 기법을 충분히 우회할 수 있음을 확인하였다. 따라서 본 논문에서 제안하는 필터링 기법은 기 존 필터링 기법에 더하여 권한 상승 공격을 할 가능성이 있는 협력 애플리케이션까지 탐지한다. 즉, 애플리케이션에서 요구하는 퍼미션들의 조합 뿐만 아니라 콘텐트 프로바이더를 중심으로한 애 플리케이션 간의 관계까지 검사한다. 제안된 기법에서는 분석된 관계정보를 저장하고 검색하기 위 해 애플리케이션-관계 그래프(Application-Relation Graph)를 생성한다. 애플리케이션 관계 그래프 는 빠른 접근과 갱신을 위해 메모리상에 캐쉬된 상태로 유지되며 주기적으로 데이터베이스에 저장 된다. 그리고 퍼미션을 사용하여 콘텐트 프로바이더를 보호하지 않은 애플리케이션은 중간 매개체 로 이용될 가능성이 높기 때문에 엄격하게 통제된다. 따라서 개발자는 반드시 퍼미션을 사용하여 콘텐트 프로바이더를 보호해야만 필터링 과정을 통과할 수 있다. 6. 실험결과 및 분석 AMD E-450 듀얼코어 CPU 1.65 GHz, 메모리 4GB의 시스템에 운영제체 ubuntu 12.04 64bit를 설치하여 실험을 진행 하였다. 실험은 악성 애플리케이션 500개와 정상 애플리케이션 500개를 대 상으로 진행하였다. 먼저 제안한 필터링 기법의 성능을 측정하였다. 성능을 비교하기 위해 아래의 3가지 경우로 나누어 실험을 진행하였다. ClamAV만을 사용 ClamAV + 기존 퍼미션기반 필터링 ClamAV + 제안된 퍼미션기반 필터링 그림 6에서 ClamAV[14]만을 가지고 1000개의 샘플에 대해서 검사를 수행하였을 때 388.304ms 시간이 소요되었다. 반면에 기존 퍼미션 기반 필터링(PBF)을 추가적으로 사용하였을 경우에는 342.787ms의 시간이 소요되었다. 그리고 본 논문에서 제안한 기법을 적용하였을 때 348.224ms가 소요되었다. 필터링 시간만을 가지고서 비교하였을 때는 제안 기법이 5.437ms가 더 소요되었다. 그 이유는 더 많은 악성 애플리케이션을 필터링 하였기 때문에 시간이 더 걸린 것이다. 다음으로 탐지율을 측정하였다. 성능 실험과 동일한 3가지 경우로 나누어 실험을 진행하였다. 그림 7은 그 실험 결과를 나타낸다. ClamAV만을 사용하였을 때는 탐지율이 68.6%이지만 기존 미 션 기반 필터링 기법을 사용하였을 때는 95.4%, 그리고 제안된 퍼미션 기반 필터링 기법을 사용하 였을 때는 98.4%의 악성 애플리케이션을 탐지 할 수 있었다. 제안기법이 탐지율이 가장 높은 이유 195
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 는 기존 기법에서는 탐지할 수 없었던 협력 공격(collusion attack)의 위험성까지 찾아낼 수 있었기 때문이다. 탐지하지 못한 나머지 2%는 알려지지 않은 악성 애플리케이션이거나 협력 공격(collusion attack)을 할 때 콘텐트 프로바이더 이외에도 파일, 액티비티(activity)등의 다른 인터페이스를 이용 한다. 이 부분을 다루기 위해서는 static analysis를 통한 추가적인 분석을 수행할 필요가 있다. [그림 6] 성능측정 [Fig. 6] Performance measurement [그림 7] 탐지율 [Fig. 7] Detection rate 7. 결론 본 논문에서는 기존 퍼미션 기반 필터링 기법을 강화하여 협력 공격(collusion attack)까지 탐지 할 수 있는 퍼미션 기반 필터링 기법을 제안하였다. ClamAV를 이용한 실험 결과는 기존 퍼미션 기반 필터링 기법보다 본 논문에서 제안한 기법이 기존 기법과 비슷한 속도로 더 많은 악성 애플 리케이션을 분류할 수 있음을 확인하였다. 이 제안기법은 애플리케이션 마켓에서 새로 등록되어지 196
보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 2호 2013년 4월 는 애플리케이션 중에서 빠르고 정확하게 악성 애플리케이션을 분류할 필요가 있을 때 사용되어질 수 있으며 또한 안드로이드용 안티바이러스 소프트웨어 성능 향상을 위해 사용되어질 수도 있다. 그러나 false positive의 비율도 높을 수 있기 때문에 이를 줄이기 위한 추가 연구를 진행할 예정이 다. 참고문헌 [Reference] [1] IDC: Android Market Share Reached 75% Worldwide In Q3 2012. http://techcrunch.com/2012/11/02/idc-android-market-share-reached-75-worldwide-in-q3-2012/, (2012). [2] Malicious Mobile Threats Report 2010/2011. http://www.juniper.net/us/en/local/pdf/whitepapers/2000415-en.pdf, (2012). [3] A. P. Felt, K. Greenwood, and D. Wagner. The effectiveness of application permissions. in Proceedings of the USENIX Conference on Web Application Development, (2011). [4] M. Nauman, S. Khan, and X. Zhang. Apex: extending android permission model and enforcement with user-defined runtime constraints. in Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security, (2010). [5] W. Enck, M. Ongtang, and P. McDaniel. On lightweight mobile phone application certification. in Proceedings of the 16th ACM conference on Computer and communications security, (2009). [6] Y. Zhou, Z. Wang, W. Zhou, and X. Jiang. Hey, you, get off of my market: Detecting malicious apps in official and alternative Android markets. in Proceedings of the 19th Annual Network and Distributed System Security Symposium (NDSS), (2012). [7] First Google Android SMS Trojan Found, Researchers Report. http://www.eweek.com/c/a/security/first-google-android-sms-trojan-found-researchers-report-116059/, (2012). [8] A. P. Felt, E. Chin, S. Hanna, D. Song, and D. Wagner. Android permissions demystified. in Proceedings of the 18th ACM conference on Computer and communications security, (2011). [9] A. P. Fuchs, A. Chaudhuri, and J. S. Foster. SCanDroid: Automated security certification of Android applications. University of Maryland, (2009). [10] E. Chin, A. P. Felt, K. Greenwood, and D. Wagner. Analyzing inter-application communication in Android. in Proceedings of the 9th international conference on Mobile systems, applications, and services, (2011). [11] Android Malware Genome Project. http://www.malgenomeproject.org/. [12] J. Burns. Mobile application security on Android. Blackhat, (2009). [13] S. Bugiel, L. Davi, A. Dmitrienko, T. Fischer, and A. R. Sadeghi. XManDroid: A new Android evolution to mitigate privilege escalation attacks. Technical Report TR-2011-04, Technische Universität Darmstadt, (2011). [14] Clam AntiVirus. http://www.juniper.net/us/en/local/pdf/whitepapers/2000415-en.pdf, (2012). 197
효율적인 안드로이드 애플리케이션 검수를 위한 견고한 퍼미션 기반 악성 애플리케이션 여과 기법 저자 소개 전 철 (Cheol Jeon) 2011년 2월 : 명지대학교 컴퓨터공학과 학사 2011년 9월 ~ 현재 : 서울대학교 컴퓨터공학부 석사과정 관심분야 : 운영체제, 컴퓨터 보안, 임베디드 시스템 장준혁 (JoonHyouk Jang) 2009년 2월 : 서울대학교 컴퓨터공학부 학사 2010년 3월 ~ 현재 : 서울대학교 컴퓨터공학부 박사과정 관심분야 : 운영체제, 컴퓨터 보안, 임베디드 시스템 김봉재 (Bongjae Kim) 2008년 2월 : 광운대학교 컴퓨터공학부 학사 2008년 3월 ~ 현재 : 서울대학교 컴퓨터공학부 박사과정(수료) 관심분야 : 시스템 및 운영체제, 센서 운영 체제, 임베디드 시스템, 파일시스템 정진만 (Jinman Jung) 2008년 2월 : 서울대학교 컴퓨터공학부 학사 2008년 3월 ~ 현재 : 서울대학교 컴퓨터공학부 박사과정(수료) 관심분야 : 운영체제, 무선 네트워크, 임베디드 시스템, 시스템 보안 조유근 (Yookun Cho) 1971년 2월 : 서울대학교 학사 1978년 2월 : 미국 미네소타 대학교 컴퓨터 과학과 박사 1985년 : 미국 미네소타 대학교 방문교수 2001년 : 한국 정보과학회 회장 1979년 ~ 현재 : 서울대학교 컴퓨터공학부 교수 관심분야 : 운영체제, 알고리즘, 시스템 보안, 결함 허용 컴퓨팅 198