안드로이드 어플리케이션은 주로 자바 언어로 작성되어 바이트 코드로 이루어져 있다. 바이트 코드는 특성상 역공학 공격에 취약한 단점이 있어 많은 안드로이드 어플리케이션들의 저작권 ...

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
https://www.riss.kr/link?id=T14198554
용인 : 단국대학교 대학원, 2016
학위논문(석사) -- 단국대학교 대학원 , 컴퓨터학과 소프트웨어학 전공 , 2016. 8
2016
한국어
005.268 판사항(22)
경기도
An Android Application Protection Scheme against Dynamic Reverse Engineering Attacks
vi, 43장 : 삽화,표 ; 30cm.
단국대학교 학위논문은 저작권에 의해 보호받습니다
지도교수 : 조성제
참고문헌 : 40-41장
0
상세조회0
다운로드안드로이드 어플리케이션은 주로 자바 언어로 작성되어 바이트 코드로 이루어져 있다. 바이트 코드는 특성상 역공학 공격에 취약한 단점이 있어 많은 안드로이드 어플리케이션들의 저작권 ...
안드로이드 어플리케이션은 주로 자바 언어로 작성되어 바이트 코드로 이루어져 있다. 바이트 코드는 특성상 역공학 공격에 취약한 단점이 있어 많은 안드로이드 어플리케이션들의 저작권 침해 및 악성코드 삽입 등의 문제가 발생하고 있다. 안드로이드 어플리케이션을 역공학 공격으로부터 방어하기 위해 난독화 기법, 패킹, 암호화, 난독화 등의 정적 역공학 방지 기법들이 연구되고 있다. 하지만 이러한 정적 역공학 방지 기법들은 메모리 덤프, 실시간 디버깅 등과 같은 동적 역공학에 무력화된다. 또한, 동적 역공학 방지 기법으로는 주로 에뮬레이터 환경 탐지 연구들이 진행되고 있다. 하지만 최근 실기기 기반의 동적 역공학 기법들이 공개되어 에뮬레이터 기반 연구만으로는 한계점을 지닌다.
따라서 본 논문에서는, 안드로이드 어플리케이션에 대해 실기기 기반의 동적 역공학 방지 기법을 제안한다. 제안 기법을 안드로이드 어플리케이션에 적용하기 위해서 스텁 DEX 파일을 생성한다. 생성한 스텁 DEX파일의 기능은 동적 역공학 방지를 위해 어플리케이션이 실행되고 있는 환경이 루팅된 디바이스인지 검사를 진행하고, 어플리케이션에 대해 디버깅이 진행되고 있는지 검사를 진행한다. 검사 결과 루팅된 환경 혹은 디버깅 진행시 어플리케이션을 강제 종료하게 된다. 그리고 탐지 기법에 대한 우회 공격을 방어하기 위해 호출 스택 기반의 우회 공격 탐지를 진행한다. 본 제안 기법은 소스코드가 없는 어플리케이션에 적용이 가능한 장점을 갖고 있다.
구글 플레이 스토어에 등록된 어플리케이션 중 루팅 및 디버깅 탐지를 하지 않는 앱을 대상으로 제안 기법을 구현하였다. 실험 결과, 제안 기법이 호출 스택 트레이스 기반으로 최신 우회 공격까지 고려하면서, 루팅된 환경과 디버깅 시도를 효과적으로 탐지하는 것을 확인하였다. 제안 기법의 추가 시간 오버헤드는 평균 1953.2ms였다.
다국어 초록 (Multilingual Abstract)
Reverse engineering of Android applications is easy because the applications are written in the high level but simple byte code language. Due to malicious reverse engineering attacks, many Android applications are tampered and repackaged into maliciou...
Reverse engineering of Android applications is easy because the applications are written in the high level but simple byte code language. Due to malicious reverse engineering attacks, many Android applications are tampered and repackaged into malicious applications. To protect Android applications from reverse engineering, many researches have been conducted to develop anti-reverse engineering techniques such as obfuscation, packing (packed executable), encryption, and anti-debugging. Obfuscation, packing and encryption are the defense techniques against static reverse engineering, which cannot prevent dynamic reverse engineering like memory dumping and runtime debugging.
On the other hand, the existing defense techniques against dynamic reverse engineering have usually tried to protect applications by determining whether they are being executed on an emulation-based analysis environment and stopping their execution on the emulator. However, these techniques based on detecting the emulators become ineffective because attackers recently make dynamic reverse engineering directly on real mobile devices.
This thesis proposes a new protection scheme for Android applications against dynamic reverse engineering which is used for real mobile devices. The proposed scheme aims to check if a device on which the application is running is rooted and detect whether the application is being debugged. If the mobile device is rooted or the application is being executed in debug mode, the scheme stops the execution of the application. The proposed scheme can effectively protect Android applications against dynamic reverse engineering by investigating the generated call stack traces. The strength of the proposed scheme is that it can be applied to Android applications whose source code is not available.
The proposed scheme can be implemented on the Android applications which do not detect a rooted device as well as whether a debugger is being used. Experimental results show that the scheme works very well using call stack traces under the situation that the latest existing detection techniques can be bypassed. The total time overhead incurred by the scheme is about 1.95 seconds on average.
목차 (Table of Contents)