외로운 Nova의 작업실
insecurebankv2 - 메모리내 민감한 정보 저장 본문
insecurebankv2 - 메모리내 민감한 정보 저장
Nova_ 2023. 5. 19. 20:51- 취약점 소개
앱을 실행하고 다양한 작업을 하게되면 힙 영역에 정보들이 남습니다. 이 힙 메모리 영역을 덤프해서 분석하면 유의미한 정보를 얻을 수 있습니다. 즉, 다른 앱이 금융권앱의 힙 메모리 영역을 덤프해서 공격자 서버로 보낸다면 아이디나 패스워드같은 정보를 얻을 수 있습니다.
- 취약점 진단
먼저 앱을 켜서 계좌로 송금하는 작업을 해보겠습니다. 이를 해야 힙에 정보가 남습니다.
이후 메모리 덤프를 위해 PID를 알아야합니다. 아래 명령어로 PID를 알아냅니다.
adb -e shell
ps | grep inse
PID가 6494인 것을 알았습니다. 이제 메모리 덤프를 해보겠습니다.
adb shell am dumpheap 6494 /sdcard/Download/insecurebankv2_mem
6494의 힙 메모리가 /sdcard/Download/insecurebankv2_mem으로 저장됩니다. 이를 pull해줍니다.
adb pull /sdcard/Download/insecurebankv2_mem C:\Android
제 컴퓨터 C:\Android에 저장됩니다. 하지만 이 메모리 파일은 달빅 머신 특유의 포맷으로 생성되기 때문에 안드로이드 sdk에 있는 hprof-conv.exe 프로그램으로 포맷을 변경해줘야 볼 수 있습니다. 저는 아래 경로에 있었습니다.
C:\Users\사용자이름\AppData\Local\Android\Sdk\platform-tools
위 경로에서 아래 명령어를 입력해줍니다.
hprof-conv.exe C:\Android\insecurebankv2_mem C:\Android\NEW_insecurebankv2_mem
그리고 HxD 프로그램으로 분석해보면 아래와 같이 정보들을 얻을 수 있습니다.
useranme은 jack이며 password는 Jack%40123%24임을 알 수 있습니다. %40은 아스키코드 x40인 @이고 %24는 $임을 알 수 있습니다. 또한 계좌번호도 적혀있고 돈의 양도 적혀져 있는 것을 확인할 수 있습니다.
- 취약점 대응 방안
금융권에서는 "스마트폰 보안 안전 대책 이행 실태 점검 체크리스트" 항목중에서 "스마트폰 앱과 금융회사 전자 금융 서버 간의 종단간 암호화 적용 여부"에서 좀 더 확장하여 확장 E2E를 권고하고 있습니다. 이는 키보드로 입력하는 순간부터 암호화되어 최종적으로 체크하는 서버까지 암호화 되어 있는 형태입니다. 공격자들이 중간에 메모리값을 가로채더라도 암호화된 상태를 유지하도록 확장 E2E 방법을 사용해야합니다.
'Mobile App Penetesting > Android App Vulnerability' 카테고리의 다른 글
insecurebankv2 - 안드로이드 키보드 캐시 이슈 (0) | 2023.05.21 |
---|---|
insecurebankv2 - 안전하지 않은 로깅 메커니즘 (0) | 2023.05.20 |
insecurebankv2 - 애플리케이션 패칭 (0) | 2023.05.18 |
insecurebankv2 - 취약한 암호화 실행 (0) | 2023.05.15 |
insecurebankv2 - 안전하지 않은 콘텐츠 프로바이더 접근 (0) | 2023.05.13 |