초록
최근 안드로이드 스마트폰에서 리패키징을 이용한 악성코드가 급증하고 있다. 리패키징은 이미 배포되고 있는 앱의 내부를 수정한 후 다시 패키징하는 기법이지만, 악성코드 제작자가 기존 앱에 악성코드를 삽입하여 배포할 때 흔히 사용되고 있다. 하지만, 앱을 제공하는 안드로이드 마켓이 다양하고, 각 마켓에서 제공하는 앱이 매우 많기 때문에 모든 앱을 수집해서 분석하는 것은 불가능하다. 이를 해결하기 위해 본 논문은 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. 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.