실행코드 암호화 및 무결성 검증을 적용한 안드로이드 앱 보호 기법
A Technique for Protecting Android Applications using Executable Code Encryption and Integrity Verification
1
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
본 논문에서는 안드로이드 애플리케이션(앱)을 역공학 공격으로부터 방어하는 기법을 제안한다. 이 기법에서서버는 안드로이드 패키지 파일인 APK 내에 있는 원본 실행코드(DEX)를 암호화하고, 실행 시 이를 복호화 할수 있는 스텁(stub) 코드를 APK에 삽입하여 배포한다. 스텁 코드는 자신에 대한 공격을 탐지하기 위해 무결성검증 코드를 포함한다. 사용자가 해당 APK를 설치․실행할 때, 스텁 코드는 자체의 무결성을 검증한 후, 암호화된 원본 실행코드를 복호화하고, 이를 동적 로딩(dynamic loading)하여 실행한다. 앱의 원본 실행코드는 암호화되어 배포되므로 지적재산권을 효과적으로 보호할 수 있다. 또한, 스텁 코드에 대해 무결성을 검증하므로, 제안 기법의 우회 가능성을 차단한다. 우리는 15개의 안드로이드 앱에 제안 기법을 적용하여 그 유효성을 평가하였다. 실험결과, 13개의 앱이 정상적으로 동작함을 확인하였다.
Abstract
In this paper, we propose a method for protecting Android applications against reverse engineering attacks. In this method, the server encrypts the original executable code (DEX) included in an APK file, inserts into the APK file a stub code that decrypts the encrypted DEX later at run-time, and distributes the modified APK file. The stub code includes an integrity validation code to detect attacks on itself. When a user installs and executes the APK file, the stub code verifies the integrity of itself, decrypts the encrypted DEX, and loads it dynamically to execute. Since the original DEX is distributed as an encrypted one, we can effectively protect the intellectual property. Further, by verifying the integrity of the stub code, we can prevent malicious users from bypassing our method. We applied the method to 15 Android apps, and evaluated its effectiveness. We confirmed that 13 out of them operates normally.
참고문헌 (8)
- "앱 비즈니스의 확대... 앱 위변조방지에 초점"[URL]
- "ProGuard Introduction"[URL]
- "난독화·리소스 암호화보다 높은 방어기술로 바이너리 암호화 부각"[URL]
- "Saikoa DexGurad"[URL]
- "What kind of optimization does ProGuard support"[URL]
- "A look inside DexGuard" (2013)[URL]
- 김성렬, "공개키 기반 구조를 이용한 안드로이드 앱 복제방지 시스템", 보안공학연구논문지, 9(1), pp.121~134 (2012), 보안공학연구지원센터
- Estourgie, "Analysis of Android Authenticators", pp.2013
