관리 메뉴

Information Security

애플리케이션 패칭 본문

모바일/InsecureBank 분석

애플리케이션 패칭

HackingPractice 2019. 7. 14. 10:21

정의
- 악성코드들은 정상적으로 서비스되고 있는 앱을 조작하여 사용자들을 유인한다.

발생 위치
- Insecurebankv2\smail\com\andoid\insecurebankv2\PostLogin.smali

영향
- 사용자의 개인정보, 공인 인증서, 휴대폰 번호 탈취될 수 있다.

진단
디컴파일을 하면 Insecurebankv2\smail\com\andoid\insecurebankv2에 smail코드가 생성된다.

그림 1-1 smail 코드

PostLogin.smali 파일에서 “Device not Rooted!!”를 다른 문자열로 수정했다.

그림 1-2 PostLogin.smali 코드

smail코드를 수정 후 리패키징하는 과정이다.

그림 1-3 리패키징

리패키징이 끝나면 adb 명령어를 이용해 다시 Insecurebankv2.apk를 설치한다.

그림 1-4 InsecureBankv2 설치

그림 1-5를 보면 Device not Rooted!!에서 Fighting!!으로 앱이 변조된 것을 확인할 수 있다.

그림 1-5 앱 변조 화면

대응방안
- 앱 변조를 방지하기 위해 많은 보안 솔루션을 도입하고 있다.

Gradle Scripts > build.gradle 파일에서 build Types이 존재한다. minifyEnabled는 기본적으로 false로 설정되어 있으며, true로 수정 후 다시 릴리즈 빌드를 한다.

그림 1-6 minifyEnabled

생성된 apk 파일로 다시 디컴파일 과정을 한다. Jar 파일을 JD-GUI로 확인해보면 소스 코드가 a,b와 같은 것으로 변경된 것을 확인 할 수 있다.

그림 1-7 디컴파일 확인

프로가드는 오픈소스이기 때문에 상용솔루션에서의 일부 기능에 제한이 있다. 상용 난독화 도구보다는 부족하지만 오픈소스이기 때문에 무료로 사용할 수 있다.

그림 1-8 루팅 일부분 난독화