반응형
Physical Dump
- 정의: 스마트폰 저장 장치(플래시 메모리) 전체의 비트 값을 복제하는 방법.
- 수행 방법:
- Chip-off
- Debug port
- AP protocol
- Rooting
- 특징:
- 미할당 영역까지 수집 가능
- 삭제된 데이터의 복구 가능성 존재
Logical Dump
- 정의: 파일시스템 상에서 표시되는 파티션 내부의 파일 및 폴더를 획득하는 방법.
- 수행 방법:
- Backup
- Content provider
- 특징:
- 복호화된 데이터를 획득할 수 있는 가능성 존재
Chip-off
- 정의: 스마트폰 메인보드에서 플래시 메모리 칩을 분리하여 데이터를 수집하는 방법.
절차
- 스마트폰 분해: 스마트폰을 분해한 뒤 메인보드를 떼어냄.
- 플래시 메모리 위치 파악: 메인보드에서 플래시 메모리의 위치를 파악하고 분리.
- 데이터 추출: 분리된 플래시 메모리를 리더기에 연결하여 데이터를 추출.
- 납 제거 및 복구: 플래시 메모리를 추출할 때 보드와 연결된 납을 제거, 손상된 핀이 있다면 리볼링(Reballing) 작업을 통해 복구.
- 덤프 수행: 전용 리더기를 사용해 플래시 메모리 칩 내부 데이터를 덤프.
장점
- 미할당 영역에 저장된 데이터 수집 가능, 삭제된 데이터 복구 가능성 존재.
- 모든 임베디드 기기에 적용 가능한 방법.
단점
- Chip-off 이후 기기 사용이 어려움(플래시 메모리 재결합이 어려움).
- 데이터가 암호화되어 저장된 경우 수집된 데이터를 분석하기 어려움.
Debug Port (UART, JTAG)
- 정의: 스마트폰이나 임베디드 기기의 제조사가 메인보드 개발 시 시리얼 통신이나 하드웨어 디버깅을 위한 포트를 장착. 이러한 디버깅 포트를 활용해 플래시 메모리에 저장된 데이터를 수집할 수 있음.
절차
- 디버깅 포트 탐색: 메인보드에서 장착된 디버깅 포트를 찾음.
- 디버깅 장비 연결: 디버깅 장비를 포트에 연결.
- 디버깅 모드 진입: 부팅 시 디버깅 모드로 진입.
- 데이터 수집: 플래시 메모리 칩 내부에 저장된 데이터를 물리적으로 수집.
장점
- 원본에 대한 무결성 유지 (시스템 부팅 전에 데이터를 수집하기 때문).
단점
- 최근 디버깅 포트를 제거해 출시하는 스마트폰이 등장.
- 데이터 수집에 많은 시간이 소요될 수 있음.
AP Protocol
- 정의: AP(Application Processor) 제조사가 제공하는 비공개 프로토콜을 활용해 데이터를 수집하는 방법. AP는 스마트폰 내에서 모든 명령을 처리하는 부품으로, 컴퓨터의 CPU와 같은 역할을 함.
특징
- 제조사별로 Firmware 관리를 위한 비공개 프로토콜이 존재하며, 이를 활용해 플래시 메모리 데이터를 물리적으로 수집 가능.
장점
- 원본 무결성 유지 가능 (부트 로더 로딩 단계에서 플래시 메모리 데이터 수집 가능).
- Debug Port보다 빠른 전송 속도 제공 (USB 시리얼 통신 방식으로 JTAG보다 상대적으로 빠름).
단점
- AP 프로토콜이 공개되어 있지 않으면 사용 불가.
- AP 프로토콜이 공개된 경우에도 인증 절차가 필요할 수 있음.
- 데이터가 암호화되어 저장된 경우, 수집된 데이터 분석이 어려움.
Rooting
- 정의: 안드로이드 OS의 관리자(root) 권한을 획득하는 행위. 안드로이드는 리눅스와 동일한 권한 체계를 사용하며, 보안상의 이유로 관리자 권한을 위한 'SU' 바이너리가 기본적으로 존재하지 않음.
방법
- 'SU' 바이너리 삽입: 관리자 권한을 획득하기 위해 'SU' 바이너리를 삽입.
- 커널 이미지로 부팅: 관리자 권한을 갖는 커널 이미지로 부팅하여 루트 권한을 확보.
루팅의 효과
- 일반 사용자 관점: 블랙 마켓 앱 사용, 폰트/테마 변경 등.
- 디지털 포렌식 관점: 플래시 메모리 데이터 수집 가능.
루팅 방법
1. 앱 설치를 이용한 루팅
- 설명: 루팅 기능이 있는 앱을 설치하여 루트 권한을 획득. 취약점을 이용하여 루트 권한을 얻으며, 앱 설치로 인해 사용자 영역의 무결성이 훼손될 수 있음.
장점
- ADB 프로토콜을 사용해 빠른 데이터 전송 속도.
- 플래시 메모리 전체 또는 사용자 데이터 파티션을 선택적으로 수집할 수 있어, 추후 분석 대상이 줄어 시간 절약 가능.
단점
- 루팅 앱에서 지원하는 기기만 루팅 가능.
- 데이터 수집 후 별도의 언루팅 작업 필요.
2. 플래싱을 이용한 루팅
- 설명: 루팅된 커스텀 펌웨어를 덮어씌우거나, 루트 권한을 가진 커널 이미지를 제작하여 관리자 권한을 획득. 원본 펌웨어에서 리커버리 커널 이미지를 분리해 최소한의 무결성 훼손으로 루팅.
장점
- 플래시 메모리 전체 또는 사용자 데이터 파티션을 선택적으로 수집 가능.
- 사용자 데이터 파티션의 무결성 유지 (플래싱된 리커버리 파티션만 무결성 훼손).
단점
- 플래싱된 파티션의 무결성 훼손.
- 데이터 수집 후 별도의 언루팅 작업 필요.
안드로이드 암호화와 데이터 수집의 한계
피지컬 방식의 한계
- 암호화된 데이터 복구의 어려움: 피지컬 방식으로 데이터를 수집하면 플래시 메모리에 저장된 데이터는 암호화된 상태로 추출되기 때문에, 암호화된 데이터를 복구하고 분석하는 것이 어려움.
안드로이드 암호화 방식
1. 전체 디스크 암호화 (Full Disk Encryption, FDE)
- 정의: 사용자가 생성한 모든 데이터를 암호화하여 저장 매체에 기록.
- 작동 방식:
- 잠금 시: 모든 데이터가 암호화됨.
- 잠금 해제 시: 모든 데이터가 암호화 해제됨. (긴급통화만 잠금 시 가능)
- 도입 시기:
- Kitkat (Ver 4.4)에서 도입.
- Marshmallow (Ver 6.0)에서 필수 적용.
2. 파일 기반 암호화 (File Based Encryption, FBE)
- 정의: 파일마다 고유한 키로 독립적으로 암호화하여 저장.
- 작동 방식:
- 잠금 시: 특정 어플리케이션은 접근 불가.
- 잠금 해제 시: 관리된 어플리케이션만 접근 가능.
- 도입 시기:
- Nougat (Ver 7.0)에서 도입.
- Queen Cake (Ver 10.0)에서 필수 적용.
암호화로 인한 데이터 분석의 한계
- 피지컬 방식의 한계: 암호화된 데이터를 물리적으로 수집하면 분석이 어려움.
- 잠금 해제 상태에서의 수집 필요성: 암호화가 해제된 상태에서 데이터를 수집해야 하며, 이를 위해서는 Logical Dump 방식이 필요함.
Logical Dump
- 정의: 파일시스템을 해석하여 내부에 존재하는 파일이나 폴더를 획득하는 방법.
수집 방법
- Backup: 스마트폰의 데이터를 백업하여 복사본을 생성하고 이를 통해 파일과 폴더를 획득.
- Content Provider: 안드로이드에서 제공하는 API를 이용해 애플리케이션 간의 데이터를 공유하고, 이를 통해 파일에 접근 가능.
특징
- 복호화된 데이터를 획득할 수 있는 가능성이 존재, 특히 잠금 해제 상태에서 접근하면 암호화가 해제된 데이터 수집 가능.
ADB (Android Debug Bridge)
- 정의: 안드로이드 기기와 통신할 수 있는 다목적 명령줄 도구로, 앱의 설치, 디버깅 등 다양한 기기 작업에 사용됨.
ADB 구성 요소
- 클라이언트: 사용자의 명령어를 기기로 전송.
- 서버: 클라이언트와 데몬(adbd) 간의 통신을 관리.
- 데몬(adbd): 기기에서 명령어를 실행하는 역할.
ADB Backup 동작 방식
- ADB 명령어 전송: 컴퓨터에서 adb backup 명령어를 스마트폰으로 전송.
- 명령어 해석 및 데이터 추출: 안드로이드 기기가 명령어를 해석하여 데이터를 추출.
- 데이터 압축: 추출한 데이터를 tar 파일 형식으로 묶어 deflate 알고리즘으로 압축.
- 암호화 및 전송: 스마트폰에서 입력한 암호를 사용하여 백업 파일을 암호화한 후 PC로 전송.
ADB Backup
- 지원 버전: 안드로이드 4.0부터 지원.
- 특징: 관리자 권한 없이도 사용자 데이터 수집이 가능함.
ADB 디버깅 활성화 절차
- 스마트폰 잠금 해제: 사용자 패스워드를 사용해 스마트폰을 잠금 해제.
- 개발자 옵션 활성화: 안드로이드 개발자 옵션에서 ADB 디버깅 활성화.
장점
- 루팅 또는 취약점 활용 없이 수행 가능하여 사용자 데이터의 무결성 훼손 최소화.
- 복호화된 데이터 획득 가능: 암호화된 데이터를 잠금 해제 상태에서 수집 가능.
단점
- 애플리케이션 데이터 외 다른 데이터는 수집 불가 (기기 정보, 시스템 로그 등).
- 사용자 데이터 파티션 무결성 훼손: 기기가 실행 중인 상태에서 수행되기 때문.
- ADB Backup 미지원 애플리케이션: ADB Backup을 지원하지 않는 앱은 데이터 수집 불가 (예: 카카오톡은 4.4.2버전 이후로 수집 불가).
Content Provider를 활용한 Logical Dump
- 정의: 안드로이드에서 애플리케이션 간 데이터를 공유하기 위한 인터페이스로, 서로 다른 앱 간 데이터 공유를 가능하게 하는 유일한 방법.
안드로이드 샌드박스(Sandbox) 매커니즘
- 안드로이드 보안 정책에 따라 각 앱은 고유한 샌드박스를 가짐.
- 샌드박스 침범 불가: 앱들은 서로의 샌드박스 영역에 접근할 수 없음.
- Content Provider: Content Provider가 지원되는 앱의 데이터에만 접근 가능.
Content Provider 동작 방식
- 모든 앱은 데이터를 접근할 수 있는 고유의 URI를 정의함.
- URI를 모를 경우: 다른 앱의 데이터에 접근할 수 없음.
- URI를 알 경우: 해당 앱의 데이터에 접근 가능.
주요 수집 대상
- 통화 기록, 연락처, 인터넷 북마크, 일정, 문자 등.
장점
- 앱 설치 및 실행만으로 데이터 수집이 가능함.
단점
- 사용자 데이터 파티션의 무결성 훼손: 데이터 수집을 위해 앱을 설치해야 하므로 무결성이 손상됨.
- 수집 가능한 데이터 종류 제한: 대부분의 사용자 앱은 Content Provider를 제공하지 않거나 비공개, 특히 국내 제조사의 경우 기본 앱의 URI를 수정해 사용함.
- 삭제된 데이터 복구 불가능: DB 파일 내부의 활성 레코드만 수집 가능하며, 삭제된 데이터는 수집 불가.
반응형
'학회_공부해요 > 모바일포렌식' 카테고리의 다른 글
안드로이드의 이해 (0) | 2024.11.05 |
---|---|
모바일 포렌식 입문 (7) | 2024.10.08 |
모바일 포렌식 분석 (2) | 2024.10.01 |
아이폰 데이터 수집 (0) | 2024.10.01 |
모바일 포렌식 개요 (1) | 2024.10.01 |