안드로이드 환경에서 자바 리플렉션과 동적 로딩을 이용한 코드 은닉법

Vol. 25, No. 1, pp. 17-30, 2월. 2015
10.13089/JKIISC.2015.25.1.17, Full Text:
Keywords: Java reflection, Malware, Malicious Code, DES, Data encryption standard, Bytecode, copyright protection, Obfuscation, Intent, Intent filter, Class encryption, Dynamic keys, AndroidManifest
Abstract

본 논문은 기존에 널리 사용되는 바이트코드(bytecode) 중심의 안드로이드 어플리케이션 코드 난독화 방법과 달리 임의의 안드로이드 어플리케이션의 DEX 파일 자체를 추출하여 암호화하고, 암호화한 파일을 임의의 폴더에 저장한 후 코드를 수행하기 위한 로더 앱을 만드는 방법을 제시한다. 이벤트 처리 정보를 은닉하기 위하여, 로더 앱 내부의 암호화된 DEX 파일은 원본 코드와 Manifest 정보 일부를 포함한다. 로더 앱의 Manifest는 원본 앱의 Manifest 정보 중에서 암호화된 클래스에 포함되지 않은 정보만을 기재하였다. 제안기법을 사용시, 첫째로 공격자는 백신을 우회하기 위해 난독화된 코드를 포함한 악성코드 제작이 가능하고, 둘째로 프로그램 제작자의 입장에서는 제안기법을 이용하여 저작권 보호를 위해 핵심 알고리즘을 은폐하는 어플리케이션 제작이 가능하다. 안드로이드 버전 4.4.2(Kitkat)에서 프로토타입을 구현하고 바이러스 토탈을 이용하여 악성코드 난독화 능력을 점검해서 제안 기법의 실효성을 보였다.

Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from December 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
J. Kim, N. Go, Y. Park, "A Code Concealment Method using Java Reflection and Dynamic Loading in Android," Journal of The Korea Institute of Information Security and Cryptology, vol. 25, no. 1, pp. 17-30, 2015. DOI: 10.13089/JKIISC.2015.25.1.17.

[ACM Style]
Jiyun Kim, Namhyeon Go, and Yongsu Park. 2015. A Code Concealment Method using Java Reflection and Dynamic Loading in Android. Journal of The Korea Institute of Information Security and Cryptology, 25, 1, (2015), 17-30. DOI: 10.13089/JKIISC.2015.25.1.17.