It has been known that insecure software update causes serious security problems. Even though soft-ware updates in various systems such as medical devices, automobiles, and femtocells have been studied in deeply, little is understood update mechanisms in Android applications. In this thesis, I manually analyze self-update mechanisms in Android applications with most popular 225 real-world Android applications collected from Google Play. With careful analysis, two vulnerabilities have been found in self-updating mechanisms, i) distribution methods of updated files ii) usage of shared storage. By manually analyze 225 Android applica-tions, 37% of applications distribute updated files in insecure manner, and 33% of applications utilize shared storage for saving updated files.
By exploiting self-update vulnerabilities, I have demonstrated that malware can be installed on vic-tim’s mobile devices. Moreover, I also show that injecting malicious code into updated files is also possible. As the adversaries can install malware on victim’s mobile devices, many attacks are possible including steal-ing user’s private data such as contact, SMS, and friend lists. Furthermore, by installing a malicious applica-tion, the mobile devices can be rooted and as a consequence, the adversaries can have root privilege.
최근 스마트폰의 사용량이 급격하게 증가하고 있으며, 다양한 안드로이드 어플리케이션도 개발되고 있다. 따라서 안드로이드 어플리케이션에 대한 보안이 중요시되고 있다. 안드로이드 어플리케이션은 한번 개발되고 난 이후에도, 새로운 기능이 추가되거나 숨어있던 버그를 수정하기 위해 지속적으로 업데이트가 발생하게 된다. 하지만 이러한 업데이트가 안전하게 이루어지지 않으면 보안성 측면에서 다양한 문제가 발생할 수 있다. 기존 연구에서는 의류 장비, 네트워크 장비, 자동차 등 다양한 시스템에 대한 소프트웨어 업데이트 기능에 대한 분석이 진행되었다. 그 결과 이러한 업데이트 기능들이 보안성 측면에서 취약하다는 사실이 발표되었다.
본 논문에서는 기존에 연구되지 않은 안드로이드 어플리케이션의 업데이트 기능에 대해 조사하고 어떤 보안 상의 취약점이 발생할 수 있는지 분석하였다. 분석 대상 어플리케이션의 범위는 인기도가 높은 225개의 안드로이드 어플리케이션으로 하였으며 분석 대상에 대해 정적 분석을 수행하였다. 그 결과 전체 어플리케이션의37%는 업데이트 파일을 수신하는 동안 보안상의 취약점이 발견되었으며, 전체 어플리케이션 중33%는 업데이트 파일을 공용 스토리지에 저장하는 경우에 보안상의 문제가 발생할 수 있다는 결과가 나왔다.
이러한 취약점을 이용하면 사용자의 핸드폰에 악성 어플리케이션을 설치하거나 악성 코드를 삽입하는 공격에 노출되어 개인정보 유출 및 DoS 공격과 같은 피해를 사용자가 당할 수 있다.