DOI QR코드

DOI QR Code

프로가드 난독화 도구 구조 및 기능 분석

Structural and Functional Analyses of ProGuard Obfuscation Tool

  • ;
  • 정진혁 (숭실대학교 대학원 컴퓨터학과) ;
  • 이정현 (숭실대학교 컴퓨터학부)
  • 투고 : 2013.04.25
  • 심사 : 2013.07.10
  • 발행 : 2013.08.30

초록

안드로이드 앱은 자바 언어의 특성과 셀프사인 정책에 따라 역컴파일을 통한 위변조된 앱의 생성이 쉬운 구조적 특성이 있다. 이러한 구조적 취약점을 금융 앱과 같이 보안에 민감한 앱에 적용되면 매우 치명적일 수 있다. 따라서 앱 위변조 방지 기술 중 하나로써 난독화(obfuscation)을 적극 도입하여 활용하고 있는데, 현재 안드로이드 마켓에 등록된 많은 앱들은 프로가드(ProGuard) 난독화 도구를 사용하고 있다. 프로가드는 자바 클래스 파일을 난독화하여 안드로이드 앱의 역공학을 어렵게 만든다. 하지만 프로가드 난독화 도구는 여러 가지 난독화 기법 중 앱 속의 식별자를 변환하는 식별자변환 기법만 적용되어 있기 때문에, 역공학 시 프로그램 로직을 쉽게 파악할 수 있게 된다. 따라서 본 논문에서는 프로가드 소스코드 분석을 통한 프로가드의 난독화 기법을 상세 분석하고, 이를 통해 현재 프로가드 난독화 기술의 한계점을 파악한 후, 향후 안드로이드 난독화 기술의 개선 방향을 제시한다.

Android applications can be easily decompiled owing to their structural characteristics, in which applications are developed using Java and are self-signed so that applications modified in this way can be repackaged. It will be crucial that this inherent vulnerability may be used to an increasing number of Android-based financial service applications, including banking applications. Thus, code obfuscation techniques are used as one of solutions to protect applications against their forgery. Currently, many of applications distributed on Android market are using ProGuard as an obfuscation tool. However, ProGuard takes care of only the renaming obfuscation, and using this method, the original opcodes remain unchanged. In this paper, we thoroughly analyze obfuscation mechanisms applied in ProGuard, investigate its limitations, and give some direction about its improvement.

키워드

참고문헌

  1. J. H. Jung, J. Y. Kim, H. C. Lee, and J. H. Yi, "Repackaging attack on android banking applications and its countermeasures," J. Wireless Personal Communications(WPC)., [Online], Available: http://link.springer.com/content/pdf/10.1007%2 Fs11277-013-1258-x.pdf, June. 2013.
  2. G. I. Ma, H. C. Lee, and J. H. Yi, "A secure short-range wireless connectivity scheme for mobile wallet services," J. KIISE : Inform. Networking, vol. 38, no. 5, pp. 394-404, Oct. 2011.
  3. C. Collberg, C. Thomborson, and D. Low, "A taxonomy of obfuscating transformations," Technical Report No. 148, Univ. Auckland, New Zealand, 1997.
  4. Eric Lafortune, ProGuard, Retrieved May., 2013, from http://proguard.sourceforge.net/.
  5. T. Lindholm, F. Yellin, G. Bracha, and A. Buckley, "The Java virtual machine specification: Java SE 7 Edition," Oracle America, Feb. 2013.
  6. PreEmptive Solutions, DashOPro, Retrieved May., 2013, from http://www.preemptive.com.
  7. Allatori, Java obfuscator, Retrieved May., 2013, from http://www.allatori.com.
  8. Saikoa, DexGuard, Retrieved May., 2013, from http://www.saikoa.com/.
  9. Wikipedia, Visitor Pattern, Retrieved May., 2013, from http://en.wikipedia.org/wiki/Visitor_pattern.
  10. Java Decompiler, Retrieved May., 2013, from http://java.decompiler.free.fr/.

피인용 문헌

  1. Enhanced Android App-Repackaging Attack on In-Vehicle Network vol.2019, pp.1530-8677, 2019, https://doi.org/10.1155/2019/5650245