https://youtu.be/DWX2QmSLFpI?si=SrpViTAJOWdzVkeO
안드로이드 데이터 수집 Ⅱ
Logical dump
- 파일 시스템 상에서 표시되는 파티션 내부의 파일 및 폴더를 획득하는 방법
- 복호화된 데이터 획득할 수 있는 가능성 존재
◆ ADB(Android Debug Bridge)
- 안드로이드 기기와 통신할 수 있는 명령 도구
- ADB 명령어는 앱의 설치 및 디버깅과 같은 기기 작업에 사용된다.
- ADB 구성 요소
- 클라이언트: 사용자가 입력한 명령어를 스마트폰 기기로 전송하는 역할
- 서버: 클라이언트와 데몬 간의 통신을 관리
- 데몬(adbd): 기기에서 명령어를 실행
- ADB Backup
- 동작 방식
- 컴퓨터에서 ADB Backup 명령어를 스마트폰으로 전송
- 스마트폰은 명령어 해석 후 원하는 데이터 추출
- tar 파일 형식으로 추출한 데이터를 묶어줌
- deflate 알고리즘으로 압축
- 백업 시 스마트폰에 입력한 암호를 키로 사용해 백업 파일 암호화하고 PC로 전송
- 안드로이드 4.0부터 지원
- 관리자 권한 없이 데이터 수집 가능
- 이 기능 이용 위해서는 ADB 디버깅 활성화 필요
- 수집 대상 스마트폰 잠금 해제 가능해야 함 (사용자 패스워드 정보 필요)
- 안드로이드 개발자 옵션 활성화 (설정-휴대전화 정보-빌드 번호 7번 터치)
- 개발자 옵션에서 ADB 디버깅 활성화 (ADB 활용해 스마트폰-컴퓨터 간 명령어 송수신 허가)
- ADB Backup 명령어
- # adb backup [-f <file>] [-apk | -noapk] [-shared | -noshared] [-all] [-system | nosystem] [<packages...>]
- -f <file>: 백업 파일의 이름 지정하는 옵션. 지정하지 않으면 기본적으로 현재 디렉터리에 'backup.adb'로 저징
- -apk | -noapk: apk 백업 여부를 지정하는 옵션. 기본값은 -noapk.
- -shared | -noshared: 장착된 외부 저장장치(공유 스토리지/SD 카드)도 백업할지 선택하는 옵션. 기본값은 -noshared.
- -all: 설치된 모든 앱 백업
- -system | -nosystem: 시스템 앱 포함 옵션. 기본값은 -system.
- <packages..>: 백업할 앱을 직접 지정할 수 있는 옵션.
- 동작 방식
- 장점
- 루팅 또는 취약점 등을 이용하지 않고 수행할 수 있음 → 사용자 데이터 무결성 훼손 최소화
- 복호화된 데이터 획득 가능
- 단점
- 애플리케이션 데이터 외 다른 데이터는 수집 불가(기기정보, 시스템 로그 등)
- 기기를 실행한 상태(활성화 상태)에서 수행하기 때문에 사용자 데이터 파티션의 무결성 훼손
- ADB Backup을 지원하지 않는 애플리케이션은 수집 불가
- Android Backup Extractor(ABE)
- Android Backup File의 암호화 및 압축을 해제해주는 도구
- Andorid Backup 파일 구조
- /apps 폴더 내에 패키지별로 폴더가 존재(폴더 이름은 패키지명)
- 패키지별 폴더 아래의 구조
- /apps/[pk_name]/_manifest: APK 파일에 대한 정보를 담고 있는 파일
- /apps/[pk_name]/f/: files 폴더를 가리킴. 앱에서 파일 저장할 때 사용
- /apps/[pk_name]/db/: databases 폴더를 가리킴. 앱이 데이터를 저장하는 데이터베이스가 저장되어 있음.
- /apps/[pk_name]/sp/: shared_prefs 폴더를 가리킴. 앱에서 사용하는 설정 정보가 저장되어 있음.
- /apps/[pk_name]/c/: cache 폴더를 가리킴. 앱이 임시파일을 저장할 때 사용. 존재하지 않을 수도 있음
- /apps/[pk_name]/r/: 기타 파일들이 저장되어 있음
◆ Samsung Smart Switch
- 삼성전자에서 개발한 스마트폰 백업 및 복원 애플리케이션
- 삼성에서 출시한 안드로이드 폰이라면 모두 지원.
- 백업된 데이터는 안드로이드 기반 타 스마트폰뿐만 아니라 아이폰에도 복원 가능
- 백업 기능 활용해 데이터 수집 가능
- 수집 방법
- 삼성 스마트 스위치 실행
- 환경설정>백업 파일>백업 결과를 저장할 폴더 선택
- 이때 백업 데이터 안전한 보호를 위해서는 백업 데이터 암호화를 선택→그러나 이 옵션 선택 시 별도의 복호화 작업이 필요.
- 설정 완료 후 백업 버튼 클릭
- 백업할 데이터 선택
- 백업 버튼 클릭
- 백업에 대한 정보 + 수집 대상 기기에 대한 정보도 함께 저장됨
◆ Content Provider
- 안드로이드에서 애플리케이션간 데이터 공유하기 위한 인터페이스.
- 서로 다른 앱 간의 데이터 공유를 위한 유일한 방법
- 안드로이드 샌드박스(Sandbox) 매커니즘을 사용
- 안드로이드 보안 정책으로 앱마다 샌드박스를 할당
- 앱들은 서로의 샌드박스 영역 침범 불가(다른 앱의 데이터에 접근 불가)
- 모든 애플리케이션에 지원되는 기능은 아니기 때문에 Content Provider가 지원하는 앱 데이터만 수집 가능
- 모든 앱은 해당 데이터에 접근할 수 있는 고유의 URI (Uniform Resource Identifier) 정의
- URI를 모르는 경우 다른 앱 데이터에 접근 불가
- URI를 아는 경우 다른 앱 데이터(SQLite DB)에 접근 가능
- 기본적 데이베이스 명령어 활용 가능, 기본적 연산 처리 가능(create, select, update, delete)
- 주요 수집 대상
- URI가 알려진 통화 기록, 연락처, 인터넷 북마크, 일정, 문자(SMS/MMS) 등 기본 애플리케이션
- 데이터 수집 앱 설치 & 실행 필요
- Content Provider를 사용해 다른 애플리케이션의 데이터 수집
- 장점
- 앱 설치 및 실행만으로 데이터 수집 가능
- 단점
- 데이터 수집 앱을 설치해야 하기 때문에 사용자 데이터 파티션의 무결성을 훼손
- 수집 가능한 앱 데이터 종류가 제한적
- 대부분의 사용자 앱이 Content Provider를 제공하지 않거나 비공개
- 국내 제조사(삼성, LG)의 경우 기본앱의 URI를 수정해 사용
- DB 파일 자체를 수집하는 게 아니라 DB 파일 내부의 활성 레코드만 수집하기 때문에 삭제된 데이터 복구 불가능
'SWUFORCE > 모바일 포렌식' 카테고리의 다른 글
[모바일 포렌식] 모바일 포렌식 입문 (9) | 2024.10.08 |
---|---|
[고려대 정보보호대학원] 모바일 포렌식 분석 (1) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 수집: 아이폰 (0) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 수집: 안드로이드Ⅰ (2) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 개요 (4) | 2024.09.30 |