Design and Implementation of a Tool for Breaking static analysis of Android API Based on Java Reflection

자바 리플렉션 기반의 안드로이드 API 정적 분석무력화 도구의 설계 및 구현

  • Park, Heewan (Dept. of Information Communication & Broadcasting Engineering, Halla University) ;
  • Lee, Joo-Hyuk (Dept. of Information Communication & Broadcasting Engineering, Halla University)
  • 박희완 (한라대학교 정보통신방송공학부) ;
  • 이주혁 (한라대학교 정보통신방송공학부)
  • Published : 2014.01.17

Abstract

리플렉션은 자바 언어의 기능 중 하나로, 자바 프로그램을 실행해서 해당 프로그램을 조사하거나 내부의 동작 구조를 조작할 수 있다. 리플렉션을 사용하게 되면 자바 소스의 난독화 뿐만 아니라 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석 결과의 정확도를 떨어뜨리게 된다. 만약 이 특성을 악용해 악성 앱 제작자가 특정 API 메소드 호출을 은닉하는 목적으로 사용한다면 정적 분석에 의존하는 기존 분석 도구들이 API 메소드 호출을 탐지하기 어렵기 때문에 큰 위협이 될 수 있다. 본 연구에서는 안드로이드 환경에서 표본 어플리케이션에 직접 설계한 도구를 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 메소드 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

Keywords