[인시큐어뱅크] 안드로이드 메모리 덤프 취약점
- 안드로이드
- 2020. 4. 19. 00:05
반응형
안드로이드 메모리 덤프 취약점 진단
인시큐어뱅크(InsecureBankv2) 앱을 실행시킨 후 ps 명령어로 pid를 찾아준다. pid처럼 보이는 숫자 4개가 연속되어있는데 첫번째 값이 인시큐어뱅크 앱의 pid 값이다. 그리고 덤프 저장을 위해 /data/data에 tmp 폴더를 생성해주었다.
# ps | grep insecure
# mkdir /data/data/tmp
< am dumpheap [PID] [파일이름.hprof] > 을 사용해 hprof 확장자로 덤프를 생성해준다.
# am dumpheap 18138 /data/data/tmp/insecure.hprof
# exit
> adb pull /data/data/tmp/insecure.hprof
그리고 strings64.exe를 사용해 내부의 문자열들을 추출해 insecure.txt로 저장했다. strings.exe는 여기서 다운받을 수 있다.
> strings64.exe ..\insecure.hprof > insecure.txt
내부 문자열을 확인해보면, 서버 ip/port 정보와 id/password 계정정보를 평문값으로 확인할 수 있다.
계좌이체 정보는 strings64.exe를 사용해 굳이 문자열만 뽑은 txt 파일에서는 확인이 안됐고 hprof 파일에서 확인할 수 있었다.
안드로이드 메모리 덤프 취약점 진단결과 및 대응방안
- 메모리 덤프 생성 후 내부 문자열을 확인하니 중요정보의 평문값을 찾을 수 있었다. 기본적으로 중요정보는 암호화를 하여 저장해야 한다.
- 사용자에게 입력값을 입력받아 저장하는 건 암복화의 문제가 아니라 어쩔 수 없이 메모리에 남게 된다. 암호화하기 전의 중요정보가 평문으로 메모리에 남는 것을 방지하려면 String 객체가 아닌 char형을 사용하고 메모리 초기화를 해주어야 한다 (참고: 안드로이드 String 메모리 보안이슈 해결하기)
'안드로이드' 카테고리의 다른 글
[안드로이드 스튜디오] 키스토어 생성 / 앱에 서명 / 서명된 apk 획득 (1) | 2020.06.21 |
---|---|
[인시큐어뱅크] 앱 위변조, 리패키징 (Repackaging) 취약점 (0) | 2020.04.20 |
[인시큐어뱅크] 안드로이드 SD 카드 저장 취약점 (0) | 2020.04.18 |
[인시큐어뱅크] 개발자 백도어 (Developer Backdoors) 취약점 (0) | 2020.04.18 |
[인시큐어뱅크] HTTP 통신 및 파라미터 조작 취약점 (0) | 2020.04.18 |