표제지
목차
약어표 10
논문요약 11
제1장 서론 12
제1절 연구 배경 및 목적 12
제2장 안드로이드 운영체제 14
제1절 안드로이드 배경지식 14
1. 안드로이드의 개요 14
2. 안드로이드의 구조 15
3. 안드로이드 관련 도구 18
4. APK의 구조 19
5. DEX의 구조 22
제3장 안드로이드 루팅/앱 무결성 검증 모듈의 취약점 24
제1절 안드로이드 루팅/앱 무결성 검증 모듈의 취약점 점검 24
1. 안드로이드 취약점 분석도구 및 취약점 분석 기법 24
2. 안드로이드 루팅/앱 무결성 검증 모듈 분석 및 우회방법 26
제2절 안드로이드 루팅/앱 무결성 검증 모듈 우회로 인한 피해 시나리오 32
1. 안드로이드 루팅/앱 무결성 검증 모듈 우회를 이용한 악성코드 이식 32
2. 안드로이드 루팅/앱 무결성 검증 모듈 우회를 이용한 부정 행위 34
제4장 안드로이드 루팅/앱 무결성 검증 모듈의 취약점 개선방안과 검증 36
제1절 안드로이드 루팅/앱 무결성 검증 모듈의 우회 개선 방안 36
1. DEX 파일 난독화 36
2. Decompile 방지 기법 적용 38
3. 코드 debugging 방지 기법 적용 39
4. 암호화된 DEX 파일을 복호화 하여 동적 로딩 41
5. ZIP파일의 압축해제 방해기술 적용 43
제2절 안드로이드 루팅/앱 무결성 검증 모듈 보호를 위한 제안 기법 적용과 검증 44
1. 안드로이드 루팅/앱 무결성 검증 모듈 보호를 위한 제안 기법 적용 45
2. 제안 기법이 적용된 앱의 보안성 검증 및 장단점 46
제6장 결론 51
참고문헌 52
ABSTRACT 53
[표 2-1] 안드로이드 버전별 프로젝트이름 15
[표 2-2] 안드로이드 프로그램의 구성 17
[표 2-3] DDMS 제공 툴 19
[표 2-4] DEX 파일 헤더 구조 22
[표 4-1] Debugging 방지를 위한 특수 문자 대치표 41
[표 4-2] ZIP파일 ZIPDIRENTRY 구조 43
[표 4-3] 안드로이드 분석 방지 상용 툴 49
[그림 2-1] 안드로이드 구성도 16
[그림 2-2] 안드로이드 activity life cycle 18
[그림 2-3] APK 파일과 ZIP 파일 헤더 비교 20
[그림 2-4] APK 파일 구조 21
[그림 3-1] DEX변환 순서도 25
[그림 3-2] 안드로이드 앱분석 절차 26
[그림 3-3] 디컴파일된 코드에서 루팅체크를 하는 함수 28
[그림 3-4] Smlie로 변환된 코드에서 루팅을 확인하는 함수 29
[그림 3-5] 안드로이드 RePAD기법을 이용한 무결성 확인 절차 30
[그림 3-6] 디컴파일된 코드에서 무결성 확인을 하는 함수 31
[그림 3-7] Smali 로 변환된 코드에서 무결성을 확인하는 함수 32
[그림 3-8] 위변조 악성코드 감염 및 흐름도 33
[그림 4-1] DEX 식별자 변환 난독화전 변수명 37
[그림 4-2] DEX 식별자 변환 난독화후 변수명 37
[그림 4-3] DEX 스트링 난독화전 문자열 38
[그림 4-4] DEX 스트링 난독화후 문자열 38
[그림 4-5] 사용하지 않는 OP code를 포함한 메소드 39
[그림 4-6] 특수문자가 포함된 smali code 40
[그림 4-7] 암호화된 DEX 파일 동적로딩 42
[그림 4-8] ZIP 암호 확인 체크 플래그 44
[그림 4-9] 앱 보호 구조도 45
[그림 4-10] Decompile 방지 기법으로 발생한 에러 화면 47
[그림 4-11] Debugging 방지 기법으로 발생한 에러 화면 48
[그림 4-12] DEX 난독화 기법이 적용된 앱 무결성 검증 모듈 49