Abstract
As the Android smart phones become more popular, applications that handle users' personal data such as IDs or passwords and those that handle data directly related to companies' income such as in-game items are also increasing. Despite the need for such information to be protected, it can be modified by malicious users or leaked by attackers on the Android. The reason that this happens is because debugging functions of the Linux, base of the Android, are abused. If an application uses debugging functions, it can access the virtual memory of other applications. To prevent such abuse, access controls should be reinforced. However, these functions have been incorporated into Android O.S from its Linux base in unmodified form. In this paper, based on an analysis of both existing memory access functions and the Android environment, we proposes a function that verifies thread group ID and then protects against illegal use to reinforce access control. We conducted experiments to verify that the proposed method effectively reinforces access control. To do that, we made a simple application and modified data of the experimental application by using well-established memory editing applications. Under the existing Android environment, the memory editor applications could modify our application's data, but, after incorporating our changes on the same Android Operating System, it could not.
안드로이드 폰이 점점 대중화됨에 따라 많은 어플리케이션이 제작자의 이윤과 직결되는 데이터나 스마트 폰 사용자의 민감한 데이터를 다룬다. 이러한 중요 데이터는 당연히 보호받아야 하지만 안드로이드에서는 악의적인 사용자에 의해 조작되거나 공격자에 의해 유출될 수 있다. 이런 일이 발생하는 이유는 안드로이드의 근간인 리눅스의 디버깅 기능이 악용되기 때문이다. 리눅스의 디버깅 기능을 이용하면 다른 어플리케이션의 가상 메모리에 접근하는 것이 가능하다. 이 기능이 악용되는 것을 방지하기 위해선 해당 기능을 제공하는 주체인 리눅스의 커널에서 기존의 접근 제어를 더욱 강화해야 한다. 하지만 현재 이 기능은 안드로이드 환경의 특성을 반영하지 않은 채 기존의 리눅스와 동일한 접근 제어를 사용하고 있다. 이에 본 논문에서는 리눅스가 제공하는 다른 어플리케이션의 가상 메모리에 접근할 수 있는 기능을 분석하고, 분석 결과와 안드로이드 환경을 고려하여 스레드 그룹 ID를 검증하는 새로운 계층을 추가하는 방안을 제시한다. 이 방안을 적용함으로써 접근 제어를 더욱 강화할 수 있다. 실제로 본 논문이 제안한 방법이 접근 제어를 강화할 수 있는 지 확인하기 위해, 다른 어플리케이션의 메모리를 수정할 수 있는 메모리 조작 어플리케이션으로 자체 제작한 어플리케이션의 데이터 수정을 시도한다. 접근 제어를 강화하기 전에는 메모리 조작 어플리케이션이 자체 제작한 어플리케이션의 메모리에 있는 데이터를 수정할 수 있었지만, 접근 제어를 강화한 후에는 데이터 수정에 실패하는 것을 확인할 수 있다.