안녕하세요! 오늘은 '안드로이드 백업 취약점' 에 대하여 실습을 통해 알아보겠습니다.
['안드로이드 백업 취약점' 이란?]
> 안드로이드 에선 백업 데이터를 사용자 PC에 저장할 수 있게 해주는 로컬백업을 지원하게 되었습니다. 이로인해 사용자는 전체 백업을 사용하여 설치된 어플의 apk 파일뿐만 아니라 관련 데이터,저장소의 파일 등을 USB를 통해 연결된 pc에 저장할 수 있게되었습니다. 하지만 android:allowBackup 속성 값이 'true'로 되어있을 경우 공격자 또한 백업데이터를 추출하는게 가능해지고 이 데이터를 분석하여 민감한 개인정보를 얻는것이 가능해집니다.
1. 취약점 탐색
> 인시큐어 뱅크를 디컴파일하여 AndroidManifest.xml 소스코드를 살펴보면 android:allowBackup="true" 설정값을 확인하실 수 있습니다. 백업이 가능한 것을 확인했으니 이 어플의 데이터를 백업해보겠습니다.
2. 공격과정
2.1 우선 adb를 사용하여 백업을 진행하겠습니다. 해당 명령어를 통해 insecurebankv2 앱의 데이터를 백업합니다. 명령어를 입력하면 백업 화면으로 이동하게 됩니다.
> nox_adb backup com.android.insecurebankv2 -f insecurebankv2.ab
2.2 비밀번호를 입력하여 백업을 진행할 수 있지만 지금은 실습상황이니 굳이 암호화는 하지않고 데이터 백업을 진행하겠습니다. 아래의 데이터 백업 버튼을 눌러주시면 됩니다!
2.3 백업이 완료되었다는 문구를 확인합니다. 이때 백업파일이 저장되는 위치는 adb 명령어를 실행시킨 경로에 설치가 됩니다.
2.4 무사히 설치가 된것을 확인하실 수 있습니다. 이제 이 백업파일을 압축 해제를 해야합니다. 근데 백업파일은 일반적인 압축 해제방법으로는 해제가 불가능하기때문에 ABE(Android Backup Extractor) 이라는 응용프로그램을 사용하여 압축을 해제하겠습니다. ABE 프로그램은 아래 링크에서 다운로드 받으실 수 있습니다.
https://sourceforge.net/projects/android-backup-processor/
2.5 이제 제가 위에 달아놓은 링크에서 받은 폴더중 android-backup-tookit-20221220\android-backup-tookit\android-backup processor\executable 경로로 가보시면 abp.jar 파일이 있을것 입니다. 찾아보니깐 abe 라는 이름을 이제 abp 라고 바꿧다고 공식 사이트에 나와있었습니다. executable 폴더로 오셧으면 insecurebankv2.ab 파일을 폴더에 붙여넣기 해주세요.
2.6 이후 해당 명령어를 진행하시면 tar 파일로 압축이 변환되었을 것입니다. 이제 tar 명령을 이용하면 파일 추출이 가능합니다!
> java -jar abp.jar unpack insecurebankv2.ab insecurebank.tar
2.7 이제 명령어창에서 아래의 명령어를 입력하시면 tar 파일 내용을 추출하여 apps 라는 폴더에 저장합니다.
> tar -xvf insecurebank.tar
2.8 이제 apps\com.android.insecurebankv2\sp 경로로 와보시면 mySharedPreferences.xml 이라는 어플 고유의 저장 데이터가 들어있는 파일이 있을것입니다. 이 파일을 열어보도록 하겠습니다.
2.9 암호화 되어 있는 비밀번호와 아이디값을 찾았습니다. 이 값은 충분히 소스코드 분석을 통해 디코딩 할 수 있다는 것을 이전 게시글을 통해 확인하였습니다.
3. 대응방안
1. android:allowBackup="false" 설정
> 제가 이 공격을 해봐야겠다 라고 보았던 포인트는 allowBackup 속성값이 true로 설정되어 있어서 였습니다. 이 속성을 false 로 바꿔주시면 백업에 의한 정보 추출을 방지하실 수 있습니다!
긴 글 읽어주셔서 감사합니다!
'모바일 앱해킹(Android) > Insecure Bank' 카테고리의 다른 글
[Insecure Bank] 안전하지 않은 HTTP 통신 & 파라미터 조작 (0) | 2024.12.14 |
---|---|
[Insecure Bank] 안전하지 않은 SD 카드 저장소 (0) | 2024.12.13 |
[Insecure Bank] 디버깅 취약점 & 런타임 조작 취약점 (0) | 2024.12.11 |
[Insecure Bank] 안드로이드 키보드 캐시 이슈 (0) | 2024.12.10 |
[Insecure Bank] 안전하지 않은 로깅 메커니즘 취약점 (0) | 2024.12.08 |