안드로이드 어플 진단 4

2014. 10. 1. 16:55Security ★ Development/안드로이드 모바일 보안

반응형

* 틀린 내용이 있을 시 지적 부탁드립니다.


1. 어플리케이션의 메모리를 덤프해보겠습니다.  

이클립스로 어플리케이션 에뮬레이터를 실행시키고(로그인까지 해줍니다.) DDMS에서 메모리 덤프 파일을 생성합니다.


그럼 hprof파일이 나오는데 이는 달빅 가상머신의 덤프 파일이기 때문에 자바 형태로 변환해주어야 합니다. 안드로이드가 설치된 폴더의 sdk/tools 폴더에서 hprof-conv.exe를 이용합니다.

hprof-conv.exe com.securitycompass.androidlabs.basicencryptionsolution.hprof fixed.hprof

그럼 fixed.hprof라는 결과물이 생성됩니다.


이제 메모리 분석기를 다운 받습니다.  

http://www.eclipse.org/mat/ 


실행 시키고 File - Open Heap Dump를 실행해 fixed.hprof를 불러옵니다.  창이 하나 뜨면 Leak Suspercts Report를 클릭하고 Finish를 눌러줍니다.


이후 Open Dominator Tree for entire heap, Group by package를 클릭하여 보기 쉽게 바꿔줍니다.  

com - securitycompass - basicencryptionsolution을 타고 들어가서 BankingApplication을 우클릭, List objects - with outgoing references를 클릭합니다.  그럼 BankingApplication 클래스에서 로그인을 할 때 쓰였던 변수인 cleartextServerPass, cleartextServerUser가 해제되지 않고 값을 가진채로 남아있어서 값을 확인 할 수 있습니다.


2. 안드로이드 디바이스가 남기는 로그 정보에 대해 보겠습니다.  

콘솔 창을 키고 adb logcat을 입력합니다.

뱅킹 어플리케이션에서 Transfer를 눌러 작동해봅니다.  송신자와 수신자, 금액이 모두 찍히는 것을 볼 수 있습니다.  


이 외에도 개발을 완료한 후에는 세션 키나 계정 정보와 같은 값들이 노출되지 않도록 해야합니다.