학회_공부해요/모바일포렌식

안드로이드 데이터 수집

yenas0 2024. 10. 1. 22:06
반응형

Physical Dump

  • 정의: 스마트폰 저장 장치(플래시 메모리) 전체의 비트 값을 복제하는 방법.
  • 수행 방법:
    • Chip-off
    • Debug port
    • AP protocol
    • Rooting
  • 특징:
    • 미할당 영역까지 수집 가능
    • 삭제된 데이터의 복구 가능성 존재

Logical Dump

  • 정의: 파일시스템 상에서 표시되는 파티션 내부의 파일 및 폴더를 획득하는 방법.
  • 수행 방법:
    • Backup
    • Content provider
  • 특징:
    • 복호화된 데이터를 획득할 수 있는 가능성 존재
 

 

Chip-off

  • 정의: 스마트폰 메인보드에서 플래시 메모리 칩을 분리하여 데이터를 수집하는 방법.

절차

  1. 스마트폰 분해: 스마트폰을 분해한 뒤 메인보드를 떼어냄.
  2. 플래시 메모리 위치 파악: 메인보드에서 플래시 메모리의 위치를 파악하고 분리.
  3. 데이터 추출: 분리된 플래시 메모리를 리더기에 연결하여 데이터를 추출.
  4. 납 제거 및 복구: 플래시 메모리를 추출할 때 보드와 연결된 납을 제거, 손상된 핀이 있다면 리볼링(Reballing) 작업을 통해 복구.
  5. 덤프 수행: 전용 리더기를 사용해 플래시 메모리 칩 내부 데이터를 덤프.

장점

  • 미할당 영역에 저장된 데이터 수집 가능, 삭제된 데이터 복구 가능성 존재.
  • 모든 임베디드 기기에 적용 가능한 방법.

단점

  • Chip-off 이후 기기 사용이 어려움(플래시 메모리 재결합이 어려움).
  • 데이터가 암호화되어 저장된 경우 수집된 데이터를 분석하기 어려움.

 

 

Debug Port (UART, JTAG)

  • 정의: 스마트폰이나 임베디드 기기의 제조사가 메인보드 개발 시 시리얼 통신이나 하드웨어 디버깅을 위한 포트를 장착. 이러한 디버깅 포트를 활용해 플래시 메모리에 저장된 데이터를 수집할 수 있음.

절차

  1. 디버깅 포트 탐색: 메인보드에서 장착된 디버깅 포트를 찾음.
  2. 디버깅 장비 연결: 디버깅 장비를 포트에 연결.
  3. 디버깅 모드 진입: 부팅 시 디버깅 모드로 진입.
  4. 데이터 수집: 플래시 메모리 칩 내부에 저장된 데이터를 물리적으로 수집.

장점

  • 원본에 대한 무결성 유지 (시스템 부팅 전에 데이터를 수집하기 때문).

단점

  • 최근 디버깅 포트를 제거해 출시하는 스마트폰이 등장.
  • 데이터 수집에 많은 시간이 소요될 수 있음.

 

 

AP Protocol

  • 정의: AP(Application Processor) 제조사가 제공하는 비공개 프로토콜을 활용해 데이터를 수집하는 방법. AP는 스마트폰 내에서 모든 명령을 처리하는 부품으로, 컴퓨터의 CPU와 같은 역할을 함.

특징

  • 제조사별로 Firmware 관리를 위한 비공개 프로토콜이 존재하며, 이를 활용해 플래시 메모리 데이터를 물리적으로 수집 가능.

장점

  • 원본 무결성 유지 가능 (부트 로더 로딩 단계에서 플래시 메모리 데이터 수집 가능).
  • Debug Port보다 빠른 전송 속도 제공 (USB 시리얼 통신 방식으로 JTAG보다 상대적으로 빠름).

단점

  • AP 프로토콜이 공개되어 있지 않으면 사용 불가.
  • AP 프로토콜이 공개된 경우에도 인증 절차가 필요할 수 있음.
  • 데이터가 암호화되어 저장된 경우, 수집된 데이터 분석이 어려움.

 

 

Rooting

  • 정의: 안드로이드 OS의 관리자(root) 권한을 획득하는 행위. 안드로이드는 리눅스와 동일한 권한 체계를 사용하며, 보안상의 이유로 관리자 권한을 위한 'SU' 바이너리가 기본적으로 존재하지 않음.

방법

  1. 'SU' 바이너리 삽입: 관리자 권한을 획득하기 위해 'SU' 바이너리를 삽입.
  2. 커널 이미지로 부팅: 관리자 권한을 갖는 커널 이미지로 부팅하여 루트 권한을 확보.

루팅의 효과

  • 일반 사용자 관점: 블랙 마켓 앱 사용, 폰트/테마 변경 등.
  • 디지털 포렌식 관점: 플래시 메모리 데이터 수집 가능.

루팅 방법

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 구성 요소

  1. 클라이언트: 사용자의 명령어를 기기로 전송.
  2. 서버: 클라이언트와 데몬(adbd) 간의 통신을 관리.
  3. 데몬(adbd): 기기에서 명령어를 실행하는 역할.

ADB Backup 동작 방식

  1. ADB 명령어 전송: 컴퓨터에서 adb backup 명령어를 스마트폰으로 전송.
  2. 명령어 해석 및 데이터 추출: 안드로이드 기기가 명령어를 해석하여 데이터를 추출.
  3. 데이터 압축: 추출한 데이터를 tar 파일 형식으로 묶어 deflate 알고리즘으로 압축.
  4. 암호화 및 전송: 스마트폰에서 입력한 암호를 사용하여 백업 파일을 암호화한 후 PC로 전송.

ADB Backup

  • 지원 버전: 안드로이드 4.0부터 지원.
  • 특징: 관리자 권한 없이도 사용자 데이터 수집이 가능함.

ADB 디버깅 활성화 절차

  1. 스마트폰 잠금 해제: 사용자 패스워드를 사용해 스마트폰을 잠금 해제.
  2. 개발자 옵션 활성화: 안드로이드 개발자 옵션에서 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 파일 내부의 활성 레코드만 수집 가능하며, 삭제된 데이터는 수집 불가.
반응형

'학회_공부해요 > 모바일포렌식' 카테고리의 다른 글

모바일 포렌식 입문  (7) 2024.10.08
모바일 포렌식 분석  (2) 2024.10.01
아이폰 데이터 수집  (0) 2024.10.01
모바일 포렌식 개요  (1) 2024.10.01