메모리 : 주기억장치, 물리적 메모리 램을 가리킴, 휘발성이기 대문에 프로그램이 종료되면 데이터들도 삭제됨
- 취약점 진단
- 안드로이드의 메모리 할당 방법은 기본적으로 안드로이드에서는 자바 가상 머신을 사용하지 않고 달빅 가상 머신을 사용하여 앱을 구현함
- 동작에 필요한 만큼의 메모리를 할당하고 더 사용해야 하나면 프로세스당 허용된 메모리 한계 안에서 필요한 만큼의 메모리를 할당
- 허용된 메모리의 한계 이상을 사용하면 OOM(Out Of Memory) 에러 발생
- Dalvik heap allocated 영역을 분석해야함 : 맵이 실행되는 동안 참조하고 정보를 저장하는 메모리 영역
- 실행 중인 앱의 메모리 영역에서 어떤 방법으로 데이터를 추출하고 어떤 데이터들이 노출되는지 확인하기
1) 메모리 포렌식 : 메모리 안에 있는 민감 정보 얻기
2) 시스템 연산은 CPU에 의해 이루어지고 이를 실행하기 위해서는 메모리에 데이터와 코드가 적재되어야 함, 물리적인 메모리에는 하드 디스크와 다른 소프트웨어 ㅡㄴㅇㄴㅁ 파일이 실행되는 과정이나 실행되었던 정보가 존재
3) 메모리 포랜식을 통해 획득 가능한 정보
|
분류 |
설명 |
|
프로세스, 스레드 정보 |
실행 중이거나 이미 종료되었지만 메모리에 남아있는 정보 추출 |
|
모듈, 라이브러리 정보 |
실행 중이거나 이미 종료된 프로세스 관련 모듈 라이브러릴 정보 추출 |
|
실행된 파일과 소켓 정보 |
실행 중이거나 이미 종료된 파일에 대한 정보와 네트워크 연결을 위해 사용되엇거나 사용 중인 소켓 정보 추출 |
|
다양한 데이터 구조 정보 |
메모리에만 존재하는 OS, SW 및 파일과 관련된 다양한 데이터의 구조 정보 추출 |
- ADB를 이용한 진단
실습 전 앱을 통해 여러 작업을 해야 함, 그래야 메모리에 기록이 남기 때문에 했던 작업은 잘 기억해뒀다가 실습 후 비교해보기
*계좌이체
- 기본 설정 작업이 끝나면 메모리 덤프 파일을 얻기 위해 가상 디바이스에 쉘을 연결

- PID 확인, 매번 랜덤이기 때문에 잘 확인하기

- dumpheap 옵션으로 앱의 힙 메모리 추출하기
- adb shell am dumpheap [PID] [저장할 위치]
- 하지만 권한이 없어서 실패 : 안드로이드 운영체제는 기본적으로 / 하위 폴더에 읽기 권한만을 부여하기 때문에 권한이 없으면 파일, 폴더를 생성할 수 없음

- 이런 식으로 리드온리만 됨

- /sdcard는 사용자가 추가로 SD 카드를 구매하여 확장할 수 있는 공간으로 외부 공간이라고도 함
- 기본적으로 루트가 아니더라도 쓰기 권한이 존재
- 테스트 할 파일을 하나 생성

- 일단 파일이 정상적으로 생성 되었는지 확인 필요

- 이름이 바뀌었을 수 있으니 복사해서 사용하는 것 추천

- 로컬 드라이드로 가져옴
- 디바이스로부터 다운로드 한 hprof 파일은 안드로이드에서 사용되는 달빅 머신 포맷으로 생성되기 때문에 이클립스에서 지원하는 MAT와 같은 프로그램으로 분하기 위해서는 변환이 필요

- hprof-conv.exe [달빅 머신 hprof] [새로 생성될 hprof 이름]

- ERROR: falled reading Input
- 뭔가 이상함,,,

- 확인해보니 처음부터 다운로드 받은 파일도 0바이트로 쓰레기를 받았음 이러니 저게 안되지 처음으로 되돌아가서 다시해야해
- 저걸 분석하려고 HxD에서 켜보면

- 이렇게 나옴

- 다시 처음으로 돌아가서 insecurebankv2 의 pid 정보 가져오기
- ps | grep inse 로 해도 안 나왔던 이유는 내가 루트 계정이라 루트에서 실행중인 파일만 보였기 때문에 전체 보기로 해서 봄

- 거부가 되긴 하지만 그래도 됨


- 파일 크기도 되고 정상적으로 가져온듯

- 정상적으로 포맷을 바꿈

- 하 이제 됐다
- 읽어보겠습니다.

- jack 검색 결과 평문으로 비밀번호 전달됨을 확인 가능
- 아 이 멍청이 덤프 뜨기 전에 계좌번호 이체 하는 걸 까먹었다. 한다고 하고 껐다키고 안했더니 더 이상 확인 할 수 있는 게 없다. 암튼 이런 식으로 하면 된다.
- 취약점 대응 방안
- 메모리 내에 모든 정보를 암호화하여 저장하기는 문제가 있음
- 사용자들은 모바일 기기 내 암호를 자동 저장하는 것을 선호하고 자동 저장된 비밀번호는 어딘가에 저장되어 있어 공격자가 공격을 시도하면 2차 피해가 일어날 가능성이 매우 큼
- 금융권에서는 '스마트폰 보안 안전 대책 이행 실태 점검 체크리스트' 항목 중에서 '스마트 폰 앱고 ㅏ음융 회사 전자 금융 서버 간의 종단 간 암호화 적용 여부' 점검에서 확장하여 ' 확장 E2E'를 권고
- 키보드로 입력하는 순간부터 암호화하여 최종적으로 체크하는 서버까지 암호가 되어 있는 형태, 공격자들이 중간자 공격을 하더라도 메모리 값은 암호화된 상태를 유지하는 것
'정보보안 > 안드로이드해킹' 카테고리의 다른 글
| 안드로이드 모의해킹) 안드로이드 키보드 캐시 이슈 (0) | 2020.09.08 |
|---|---|
| 안드로이드 모의해킹) 안전하지 않은 로깅 메커니즘 (0) | 2020.09.08 |
| 안드로이드 모의해킹) 취약한 암호화 실행 (0) | 2020.07.29 |
| 안드로이드 모의해킹) 안전하지 않은 웹 뷰 실행 (0) | 2020.07.28 |
| 안드로이드 모의해킹) 안전하지 않은 콘텐츠 프로바이더 접근 (0) | 2020.07.28 |
댓글