[InsecureBankv2] Android Backup vulnerability

133210·2021년 8월 30일
0

InsecureBankv2

목록 보기
3/7
post-thumbnail

| Android Backup vulnerability

  • 사용자가 안드로이드 모바일 앱의 기능을 이용하면서 입력했던 인증 정보(아이디, 비밀번호 등), 앱의 구조, 중요 정보, 민감 정보 등이 백업 파일에 저장
  • 백업 기능은 개발자의 편의성을 위해 AndroidManifest.xml에 android:allowBackup 속성이 true로 설정 됨 (true: 백업 가능, false: 백업 불가능)
  • 배포 시 백업 속성을 false로 설정해야 함

| 디컴파일

  • adb 사용하여 apk 파일의 위치 확인
adb shell
root@shamu:/ # pm list package -f insecurebankv2

  • adb pull <apk 위치> <저장할 위치>로 apk 추출
adb pull /data/app/com.android.insecurebankv2-1/base.apk C:\Users\JEY\Documents\2021\SISS\Incognito\Insucurebank\

  • apktool 사용하여 디컴파일
apktool d base.apk

  • 디컴파일 파일 확인

  • AndroidManifest.xml 확인

  • android:allowBackup="true"로 설정된 부분 확인 가능

| 백업

  • 아래 명령어로 백업
adb backup -f insecurebank.ad com.android.insecurebankv2

  • 백업 파일 형식 확인 가능

| 백업 추출

  • abe.jar 사용

  • insecurebank.tar 파일 생성

  • 압축된 파일 해제 시 apps 디렉토리 하위 db, sp, manifest 확인 가능
    - db: 데이터베이스 테이블 정보
    - sp: Shared Preferences(앱의 기능 이용 시 저장된 파일) 정보
    - _manifest: 앱 복구 시 필요한 정보

  • sp 디렉토리의 mySharedPreferences.xml을 확인하면 로그인 시 입력한 아이디와 비밀번호가 Base64 인코딩되어 저장된 것 확인 가능

  • 간단하게 디코딩하여 사용자 정보를 얻는 것이 가능

| 대응 방안

  • AndroidManifest.xml에 구현되어 있는 android:allowBackup="true" 속성을 "false"로 변경

0개의 댓글