안드로이드 어플 진단 3

2014. 9. 30. 14:18Security ★ Development/안드로이드 모바일 보안

반응형

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


1. 소스코드 내의 정보 노출에대해 보겠습니다.  뱅킹 어플리케이션의 암호화 적용 버전인 BasicEncryptionSolution을 다운로드합니다.  

apktool을 이용해 apk파일을 디버그 모드로 바꿉니다.


생성된 out 폴더에서 CryptoTool.smali파일을 보면 적용된 암호화 알고리즘과 키를 확인할 수 있습니다. 

이를 통해 암호화가 적용된 대상을 복호화할 수 있게됩니다.

이런 소스코드에 의한 정보 노출은 난독화를 이용해 간단하게 예방할 수 있으니 귀찮더라도 적용해주도록합니다.  단순하지만 쉽게 적용할 수 있는 방법으로 이클립스에서 프로젝트의 project.properties 파일 맨 밑에 'proguard.config=proguard.cfg'  를 적어주기만 하면 됩니다.  proguard는 오픈소스 난독화 도구로 단어들을 의미없는 이름으로 바꿔주지만 매개변수 값까지 난독화하지는 않기 때문에 공격자가 시간을 들이면 분석할 수 있습니다.  더 안전한 난독화를 위해선 androidenv같은 상용 난독화 도구를 이용하는 것이 좋습니다.


2. 데이터 전송시의 노출 측면에서 어플리케이션의 안전성을 보겠습니다.  안드로이드 진단 도구와 모의 침투 등 테스트에 필요한 도구들을 제공해주는 가상 이미지인 AppUse를 이용하겠습니다.  또한 AppUse는 가상 모바일 어플리케이션과 서버를 자체적으로 제공해줍니다.

https://appsec-labs.com/AppUse 다운로드

다운로드받고 vmware를 사용해 실행합니다.

바탕화면의 AppUse Dashboard를 실행한 후 Android Device - Launch Emulator를 실행합니다.

잠금화면은 1234로 해제하고 중앙 아래 동그라미 버튼을 눌러서 나오는 어플들 중에 ExploitMe를 실행합니다.

그후 우측 아래 설정 버튼을 클릭 - Preferences를 클릭해서 Bank Service Address는 10.0.2.2, HTTP Port는 7070으로 설정합니다.

그리고 대시보드에서 Vulnerable apps -> ExploitMe - HTTP Server를 눌러 서버와 Tools -> Launch Wireshark를 눌러 와이어샤크를실행합니다.

와이어샤크는 127.0.0.1을 캡쳐하도록 합니다.

다시 어플로 돌아와서 우측하단 버튼을 누르고 reset버튼을 클릭합니다.

Username과 Password에 각각 jdoe와 password를 입력해 로그인 합니다.

와이어샤크를 보면 해당 아이디와 비밀번호가 평문으로 전송된 것을 볼 수 있습니다.