최근 안드로이드 스마트폰에서 리패키징을 이용한 악성코드가 급증하고 있다. 리패키징은 이미 배포되고 있는 앱의 내부를 수정한 후 다시 패키징하는 기법이지만, 악성코드 제작자가 기존 앱에 악성코드를 삽입하여 배포할 때 흔히 사용되고 있다. 하지만, 앱을 제공하는 안드로이드 마켓이 다양하고, 각 마켓에서 제공하는 앱이 매우 많기 때문에 모든 앱을 수집해서 분석하는 것은 불가능하다. 이를 해결하기 위해 본 논문은 RePAD 기법을 제안한다. 이 기법은 사용자의 스마트폰에 탑재된 클라이언트 앱과 원격 서버로 구성되는 시스템이다. 클라이언트는 적은 부하로 사용자가 설치한 앱의 출처와 정보를 추출하여 원격 서버로 전송하고, 서버는 전송된 정보를 바탕으로 앱의 리패키징 여부를 탐지한다. 따라서 리패키징 앱 판별을 위해 앱의 정보를 수집하는 시간과 비용을 줄일 수 있다. 실험을 위해 클라이언트 앱과 원격서버를 갤럭시탭과 윈도우즈 기반의 PC에 각각 구현하였다. 여러 마켓에서 수집된 앱 중 7 쌍의 앱이 리패키징된 것으로 판정하였고, 갤럭시탭에서 평균 1.9%의 CPU 부하와 최대 3.5M의 메모리 사용량을 보였다.
최근 안드로이드 스마트폰에서 리패키징을 이용한 악성코드가 급증하고 있다. 리패키징은 이미 배포되고 있는 앱의 내부를 수정한 후 다시 패키징하는 기법이지만, 악성코드 제작자가 기존 앱에 악성코드를 삽입하여 배포할 때 흔히 사용되고 있다. 하지만, 앱을 제공하는 안드로이드 마켓이 다양하고, 각 마켓에서 제공하는 앱이 매우 많기 때문에 모든 앱을 수집해서 분석하는 것은 불가능하다. 이를 해결하기 위해 본 논문은 RePAD 기법을 제안한다. 이 기법은 사용자의 스마트폰에 탑재된 클라이언트 앱과 원격 서버로 구성되는 시스템이다. 클라이언트는 적은 부하로 사용자가 설치한 앱의 출처와 정보를 추출하여 원격 서버로 전송하고, 서버는 전송된 정보를 바탕으로 앱의 리패키징 여부를 탐지한다. 따라서 리패키징 앱 판별을 위해 앱의 정보를 수집하는 시간과 비용을 줄일 수 있다. 실험을 위해 클라이언트 앱과 원격서버를 갤럭시탭과 윈도우즈 기반의 PC에 각각 구현하였다. 여러 마켓에서 수집된 앱 중 7 쌍의 앱이 리패키징된 것으로 판정하였고, 갤럭시탭에서 평균 1.9%의 CPU 부하와 최대 3.5M의 메모리 사용량을 보였다.
In recently years, repackaged malwares are becoming increased rapidly in Android smartphones. The repackaging is a technique to disassemble an app in a market, modify its source code, and then re-assemble the code, so that it is commonly used to make malwares by inserting malicious code in an app. H...
In recently years, repackaged malwares are becoming increased rapidly in Android smartphones. The repackaging is a technique to disassemble an app in a market, modify its source code, and then re-assemble the code, so that it is commonly used to make malwares by inserting malicious code in an app. However, it is impossible to collect all the apps in many android markets including too many apps. To solve the problem, we propose RePAD (RePackaged App Detector) scheme that is composed of a client and a remote server. In the smartphone-side, the client extracts the information of an app with low CPU overhead when a user installs the app. The remote server analyzes the information to decide whether the app is repackaged or not. Thus, the scheme reduces the time and cost to decide whether apps are repackaged. For the experiments, the client and server are implemented as an app on Galaxy TAB and PC respectively. We indicated that seven pairs of apps among ones collected in official and unofficial market are repackaged. Furthermore, RePAD only increases the average of CPU overhead of 1.9% and the maximum memory usage of 3.5 MB in Galaxy TAB.
In recently years, repackaged malwares are becoming increased rapidly in Android smartphones. The repackaging is a technique to disassemble an app in a market, modify its source code, and then re-assemble the code, so that it is commonly used to make malwares by inserting malicious code in an app. However, it is impossible to collect all the apps in many android markets including too many apps. To solve the problem, we propose RePAD (RePackaged App Detector) scheme that is composed of a client and a remote server. In the smartphone-side, the client extracts the information of an app with low CPU overhead when a user installs the app. The remote server analyzes the information to decide whether the app is repackaged or not. Thus, the scheme reduces the time and cost to decide whether apps are repackaged. For the experiments, the client and server are implemented as an app on Galaxy TAB and PC respectively. We indicated that seven pairs of apps among ones collected in official and unofficial market are repackaged. Furthermore, RePAD only increases the average of CPU overhead of 1.9% and the maximum memory usage of 3.5 MB in Galaxy TAB.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
다중 마켓 환경에서 모든 앱에 대해 리패키징 여부를 판단하는 것은 불가능하지만, 그 판단 여부는 악성 앱의 피해를 줄이기 위해 필요하다. 본 논문은 사용자가 설치한 앱의 정보를 이용하여 리패키징 앱을 탐지하는 기법인 RePAD를 제안한다. 이 기법은 스마트폰의 안티바이러스 앱에 탑재될 수 있는 클라이언트와 원격 서버로 구성된다.
본 논문은 안드로이드의 다중 마켓 환경에서 효과적으로 리패키징 된 앱을 수집하기 위한 방법인 RePAD를 제안했다. RePAD는 적은 부하로 스마트폰에 설치되는 앱의 출처와 정보를 추출하여 저장하고, 저장된 정보를 바탕으로 리패키징을 판별한다.
본 논문은 여러 사용자가 설치한 앱의 정보를 사용하여, 다양한 마켓에 분포된 리패키징 앱을 탐색하는 RePAD(RePackaged App Detector) 기법을 제안한다. 이 기법은 스마트폰에서 동작하는 클라이언트와 원격 서버로 구성된다.
제안 방법
리패키징 판별의 검증을 위해 RePAD를 이용하여 공식 마켓(170개)과 비공식 마켓인 SlideME(45개), go APK(45개)에서 총 260개의 앱을 수집하였다. 또한 클라이언트의 성능 측정은 안드로이드의 쉘에서 기본적으로 제공하는 유틸리티인 top을 이용하여 측정하였다. top은 실시간으로 CPU 점유율을 비롯한 프로세스의 정보를 확인할 수 있는 유틸리티이다.
실험 검증을 위해 클라이언트와 서버를 구축하였다. 서버는 윈도우즈 7 운영체제 기반의 PC에서 데이터를 저장하기 위해 MySQL DB를 사용하였다.
RePAD의 장점은 다음과 같다. 첫째, 스마트폰의 CPU와 메모리를 적게 사용하면서 앱의 출처를 파악한다. 기존 안드로이드 API로는 앱의 출처를 파악할 수 없기 때문에 RePAD는 터치 이벤트를 모니터링하여 앱의 출처를 파악한다.
클라이언트의 성능 측정은 RePAD 클라이언트가 활성화 때의 CPU 부하와 메모리 사용량을 측정하였다. 갤럭시탭에서 클라이언트는 평균 1.
대상 데이터
리패키징 판별에 대한 실험을 위해 수집 된 260개의 앱 중 앱 이름과 패키지 이름이 같은 13쌍의 앱을 확인하였으며, 이 중 7쌍(14개)이 리패키징으로 판별하였다. <표 1>은 리패키징으로 판별된 앱들의 정보를 나타낸다.
리패키징 판별의 검증을 위해 RePAD를 이용하여 공식 마켓(170개)과 비공식 마켓인 SlideME(45개), go APK(45개)에서 총 260개의 앱을 수집하였다. 또한 클라이언트의 성능 측정은 안드로이드의 쉘에서 기본적으로 제공하는 유틸리티인 top을 이용하여 측정하였다.
30 GHz CPU, 4GB 메모리를 갖춘 시스템이다. 서버에 탑재되는 웹서버와 DB를 위해 Apache와 MySQL을 각각 사용하였다.
이론/모형
CPU 부하를 최소화화기 위해 폴링(polling) 방식이 아닌 터치 이벤트 모니터링 기법을 사용한다. 안드로이드 스마트폰은 터치를 이용하여 앱을 실행하기 때문에 터치 이벤트는 앱의 실행과 밀접한 관계가 있다.
리패키징 판별 시스템인 DroidMOSS[7]는 보통 리패키징을 통해 적은 양의 코드가 변경되는 것을 이용하여 판별한다. 이 기법은 Fuzzy-Hashing 알고리즘을 사용하여 원본 앱과 대상 앱의 실행파일의 해시 값을 추출하고, 이들 해시 값의 거리를 측정하여 리패키징을 판별한다. 하지만, 이 기법은 많은 마켓에 분포된 매우 많은 앱을 수집해야지만 그 탐지 능력을 발휘할 수 있다.
그 다음으로 설치된 앱의 정보 추출을 위해서는 앱의 설치가 완료됨을 파악할 필요가 있다. 이를 위해 RePAD는 Broad cast Receiver를 이용한다. 이것을 이용하면 앱의 설치가 완료된 후에 시스템 내부에서 발생하는 Broadcast 메시지를 받을 수 있고, 이 메시지를 통해 설치된 앱의 정보를 추출할 수 있다.
성능/효과
2 버전이 설치된 갤럭시탭에 구현하였다. 그 실험 결과, RePAD는 갤럭시탭에서 평균 3.5 MB의 메모리를 사용하였고, CPU 부하를 최대 1.9%를 증가시켰다.
기존 안드로이드 API로는 앱의 출처를 파악할 수 없기 때문에 RePAD는 터치 이벤트를 모니터링하여 앱의 출처를 파악한다. 둘째, RePAD는 다양한 마켓에 존재하는 리패키징 앱을 수집할 때 요구되는 인력과 시간을 절약할 수 있다.
이는 안티바이러스 업체에게 앱 정보를 수집하는데 드는 비용을 절감할 수 있도록 한다. 둘째, 사용자가 설치하는 앱에 대해서만 판별하기 때문에 효율적이다. 많은 마켓에서 모든 앱 정보의 수집은 현실적으로 불가능하다.
RePAD는 적은 부하로 스마트폰에 설치되는 앱의 출처와 정보를 추출하여 저장하고, 저장된 정보를 바탕으로 리패키징을 판별한다. 실험을 통해 스마트폰에서 RePAD의 동작 시 평균 1.9% CPU 부하와 최대 3.5MB의 메모리 사용을 보여 부하가 적다는 것을 입증하였고, 정확한 리패키징 판별을 보여주었다. 따라서 RePAD는 현재 안드로이드 환경에 무리 없이 적용될 수 있을 것으로 예상한다.
질의응답
핵심어
질문
논문에서 추출한 답변
2011년 안드로이드 악성 앱의 증가율은 어떠한가?
최근 안드로이드 악성 앱이 급격하게 증가하고 있다. 2011년 한 해 동안 안드로이드 악성 앱은 3,300% 이상의 증가율을 보였다[1]. 이런 악성 앱의 급증은 리패키징(repackaging) 때문이며, 2010년 8월부터 2011 년 10월까지 발견된 안드로이드 악성 앱 샘플 중 약 8 6%가 리패키징 기반의 악성 앱으로 확인되었다[2].
리패키징이란 무엇인가?
리패키징이란 이미 배포되고 있는 실행파일을 디컴 파일하여 내부 코드를 수정한 후, 다시 패키징하는 제작 기법이다. 대부분의 리패키징 악성 앱은 패키지 이름과 앱 이름을 기존 앱과 동일하게 만들어 배포하기 때문에 사용자는 리패키징 앱을 구별할 수 없다.
안티 바이러스 업체가 리패키징 앱을 선별해 악성 코드 유무를 판별하는 것이 불가능한 이유는 무엇인가?
안티 바이러스 업체에서 리패키징 앱을 선별하여 악성 코드 유무를 판별하고자 해도 모든 마켓에 분포된 모든 앱을 수집하여 분석하는 것은 불가능하다. 이는 공식 또는 비공식 마켓이 매우 다양하고, 각 마켓을 통해 배포 되는 앱의 수가 수십만 개 이상이기 때문이다.
참고문헌 (7)
ZdNet, "Report : Android Malware Up 3,325% in 2011", http://www.zdnet.com/blog/hardware/ report -android-malware-up-3325-in-2011/18449.
Y. Zhou and X. Jiang, "Dissecting Android Malware: Characterization and Evolution", In Proc. of the 33rd IEEE Symposium on Security and Pri vacy, May 2012.
E. Chin, A. Felt, K. Greenwood, and D. Wagner, "Analyzing Inter-Application Commun- ication in Android", 9th Annual International Conference on Mobile Systems, Applications, and Services, June 2011.
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 Proc. of the 19th Network and Distributed System Security Symposium, February 2012.
M. Murphy, "Beginning Android 2", Apress, 2010.
W. Enck, M. Ongtang, and P. McDaniel, "Under standing Android Security", IEEE Security and Privacy Magazine, Vol. 7, No. 1, pp. 10-17, January 2009.
W. Zhou, Y. Zhou, X. Jiang, and P. Ning, "Detecting Repackaged Smartphone Application Third-Party Android Marketplaces", In Proc. of the 2nd ACM Conference on Data and Application Security and Privacy, February 2012.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.