원문정보
A Method to Protect Android Applications against Reverse Engineering
초록
영어
One of attacks against software intellectual property is malicious reverse engineering. An attacker can extract a module from a developer's application P and reuse it in his own application Q. Such threats have recently become more of a concern since Android applications are distributed in easily decompilable formats rather than native binary code. This unauthorized reverse analysis also enables to discover vulnerability rapidly, which in turn accelerates the development of damaging malware. To protect Android applications from reverse engineering, this paper presents defense against both decompilation attacks based on static analysis and debugging attacks based on dynamic analysis. Anti-decompilation technique makes it difficult for hackers to analyze DEX files by hiding a set of original target instructions with pseudo-instructions and prevents static reverse engineering attacks. Anti-debugging technique blocks debugging session creation and prevents dynamic analysis which reveals critical code at runtime. Experimental results show that our proposed scheme is very effective to protect Android applications against code theft, intellectual property piracy and functional alteration threats.
한국어
소프트웨어 지적재산권에 대한 공격 중의 하나가 악의적 역공학이다. 공격자는 개발자 앱인 P의 한 모듈을 추출하여, 공격자 자신의 앱 Q에 재사용할 수 있다. 안드로이드 앱이 순수 바이너리 코드 가 아닌 쉽게 디컴파일 될 수 있는 포맷으로 배포되므로, 이러한 위협은 최근 더 주목받고 있다. 이 러한 불법 역공학은 취약점을 빨리 발견하게 하여 악성 멀웨어 개발을 촉진시키기도 한다. 역공학 공 격으로부터 안드로이드 앱을 보호하기 위해, 본 논문에서는, 정적 분석 기반의 디컴파일 공격 및 동 적 분석 기반의 디버깅 공격을 방어하는 기법을 제안한다. 디컴파일 방지 기법은 의사 명령어들로 원 본 명령어를 은닉함으로써 DEX 파일 분석을 어렵게 하여 정적 역공학 공격을 방지한다. 디버깅 방지 기법은 디버깅 세션 생성을 차단하여 실행 시의 동적 역공학 공격을 방지한다. 실험을 통해, 제안 기 법이 코드 도용, 지적재산권 불법복제, 기능 변조 위협 등으로부터 안드로이드 앱을 보호하는데 매우 효과적임을 보인다.
목차
Abstract
1. 서론
2. 관련 연구
2.1 정적 역공학
2.2 동적 역공학
2.3 기존 안드로이드 애플리케이션 역공학 방지 기법
3. 제안 기법
3.1 정적 분석 대응
3.2 동적 분석 대응
3.3 정적과 동적 대응의 통합
4. 실험 및 평가
5. 결론
참고문헌 [Reference]