https://youtu.be/J_jc7ncB3RQ?si=eGF2zwa5adrJ1UUh
안드로이드 데이터 수집Ⅰ
안드로이드 운영체제를 사용하는 스마트폰에서 데이터 수집하는 방법에 대하여.
- 모바일 데이터 수집 방법
- Physical dump
- 스마트폰에 장착된 플래시 메모리의 전체 데이터를 복제하는 방법
- 저장장치 내 미할당 영역도 수집할 수 있어서 삭제된 데이터 복구 가능성 존재
- 최신 안드로이드 기기에는 Full disk encryption이나 File based encryption 적용되어 있기 떄문에 physical dump 방식으로는 암호화된 데이터가 획득되어 분석할 수 없음. → Physical dump는 데이터가 암호화 저장되지 않는 버전의 안드로이드 기기에서 사용하는 방식.
- 종류
- Chip-off
- Debug port
- UART
- JTAG
- AP protocol
- Rooting
- Logical dump
- 파일시스템을 해석하여 파티션 내부의 파일 및 폴더를 획득하는 방법
- 복호화된 데이터 획득할 수 있는 가능성이 존재 → 최신 기기의 경우 Logical dump를 통해 데이터를 수집
- 종류
- Backup
- Content provider
- Physical dump
Physical dump
◆ Chip-off
- 스마트폰(또는 임베디드 기기) 메인보드에서 플래시 메모리 칩을 물리적으로 분리해 데이터를 수집하는 방법
- 방법
- 스마트폰을 분해한 뒤 메인보드를 분리
- 메인보드에서 플래시 메모리 위치 파악하고 플래시 메모리 칩 분리
- 분리된 플래시 메모리를 리더기에 연결해 데이터 추출
- 리볼링(Rebolling)
- 플래시 메모리에 손상된 핀이 있다면 이를 복원하는 작업(플래시 메모리를 메인보드에서 분리하는 과정에서 핀 손상 가능성이 존재)
- 추출한 플래시 메모리에서 온전한 데이터 추출을 위함
- 칩 리더기를 이용하여 플래시 메모리 칩의 내부 데이터 덤프
- 장점
- 미할당 영역에 저장된 데이터를 수집 가능 (파일 수정 내역이나 삭제한 파일에 대한 데이터가 미할당 영역에 남아있을 수 있음)
- 모든 임베디드 기기(플래시 메모리 칩이 장착된)에 적용 가능한 방법
- 단점
- Chip-off 이후 기기 사용이 어려움 (메인보드에서 분리한 플래시 메모리의 재결합 어렵기 때문)
- 데이터가 암호화되어 저장될 경우 수집한 데이터를 분석할 수 없음
◆ Debug Port
- Serial 통신이나 하드웨어 디버깅을 위한 포트를 통해 플래시 메모리 데이터 접근
- 방법
- 스마트폰의 메인보드에서 장착된 디버깅 포트 찾아서 디버깅 장비 연결
- 전력을 공급하여 부팅 과정에서 정상 부팅 모드 X, 디버깅 모드로 진입
- 플래시 메모리 칩 내부에 저장된 데이터를 물리적으로 수집
- UART
- 디버깅 포트의 종류
- 총 4개의 핀을 가짐.
- TX: 데이터 송신핀
- RX: 데이터 수신 핀
- GND: 그라운드
- VCG: 전압
- JTAG
- 디버깅 포트의 종류
- JTAG 연결 시 하드웨어 디버깅 가능하기 때문에 물리적 데이터 수집뿐만 아니라 원하는 모든 작업 수행 가능
- 총 5가지 핀을 가짐
- TDI: Test Data In
- TDO: Test Data Out
- TMS: Test Mode Select
- TCK: Test Clock
- TRST: Test Reset(Optional)
- Ex) Trace32
- 디버그 포트와 연결하기 위한 장치
- 임베디드 시스템 개발 시에도 디버깅 목적으로 많이 활용
- JTAG 포트에 trace32 연결하면 전용 프로그램 동작시켜 플래시 메모리에 저장된 데이터 수집 가능
- 장점
- 온전하게 시스템 부팅하는 게 아니라 디버그 모드로 부팅하기 때문에 시스템 부팅되기 전(부팅 커널 로딩 전)의 데이터를 수집 → 원본에 대한 무결성 유지
- 단점
- 최근 JTAG 포트를 제거하여 출시하는 스마트폰 등장 (실제로 삼성 갤럭시 S3 이후부터는 JTAG 포트 제거된 채 출시) → 최신 스마트폰은 디버깅 포트 활용한 데이터 수집 불가
- 데이터 수집에 많은 시간 소요
◆ AP Protocol
- AP(Application Processor) 제조사에서 제공하는 프로토콜을 활용한 방법
AP란? - 스마트폰 내 모든 명령을 처리하는 핵심 부품. 중앙처리장치(CPU)에 해당
- 각 AP 제조사 별로 펌웨어(Firmware) 관리를 위한 비공개 프로토콜 존재
- 해당 프로토콜 사용하면 플래시 메모리에 존재하는 데이터 물리적 수집 가능
- 부트 로더 로딩 과정에서 플래시 메모리 영역에 대한 Read/Write 명령어 전송
- 제조사 별 특정 모드에서만 프로토콜을 이용한 통신 가능
- 장점
- 정상적 부팅이 아니라 부트 로더 로딩 단계에서 제조사가 만들어둔 별도 프로토콜 사용해 메모리 데이터 수집함. → 플래시 메모리에 저장된 원본 데이터에 대한 무결성 유지 가능
- USB 통한 시리얼 통신이기 때문에 Debug Port보다 빠른 전송 속도
- 단점
- AP 프로토콜이 공개되어 있지 않으면 사용 불가
- AP 프로토콜 공개되어 있어도 인증 위한 별도의 절차 존재할 수 있음
- 데이터 암호화되어 저장할 경우 수집한 데이터 분석할 수 없음
◆ Rooting
- 안드로이드 OS의 관리자(root) 권한을 획득하는 행위
- Android 권한 체계
- 리눅스(Linux)와 동일한 권한 체계 사용
- 그러나 보안상의 이유로 관리자 권한 획득을 위한 'SU' 바이너리가 존재하지 않음
- 권한 획득 방법
- 관리자 권한 획득을 위해 'SU' 바이너리 삽입하는 방법
- 관리자 권한을 갖는 커널 이미지를 생성하거나 수집하여 스마트폰에 삽입 후 부팅
- 효과
- 사용자 관점: 블랙 마켓 앱 사용, 폰트/테마 변경
- 디니털 포렌식 관점: 플래시 메모리 데이터 수집
- 앱 설치를 이용한 루팅
- 루팅 기능을 가진 앱을 설치하여 루트 권한을 획득하는 방법
- 대부분 취약점을 이용하여 루트 권한을 획득
- 앱을 설치하므로 사용적 영역(/userdata 영역)의 무결성 훼손
- 장점
- ADB 프로토콜 사용하여 데이터 전송 속도 빠름
- 플래시 메모리 전체 또는 사용자 데이터 파티션 등을 선택적 수집 가능 → 추후 시간 단축
- 단점
- 루팅 앱에서 지원하는 기기만 루팅 가능
- 데이터 수집 이후 별도의 언루팅(Unrooting) 작업 필요
- 플래싱
- 기존 펌웨어를 다른 펌웨어(루팅되어 있는 커스텀 펌웨어)로 덮어씌우는 방법
- 주로 리커버리 영역에 수정된 펌웨어를 덮어씀
- 루트 권한을 가진 커널 이미지(Rooted Kernel Image) 제작
- 원본 펌웨어에서 리커버리 커널 이미지 추출
- 리커버리 커널에서 관리자 권한 획득 설정 적용
- 데이터 수집 작업 위한 도구를 포함
- 제작된 커널 이미지를 리커버리 파티션에 플래싱
- 스마트폰을 다운로드 모드로 진입시키고 Odin과 같은 플래싱 전용 도구를 이용해 플래싱 수행 후 리커버리 모드로 부팅
- 파티션 이미징, 파일 복사, 물리 메모리 획득 등이 가능해짐
- 장점
- 플래시 메모리 전체 또는 사용자 데이터 파티션 등을 선택적으로 수집 가능
- 사용자 데이터 파티션 무결성 유지
- 단점
- 플래싱 대상 파티션의 무결성 훼손
- 데이터 수집 이후 별도의 언루팅(Unrooting) 작업 필요, 원본 펌웨어 없는 경우 원상 복구 불가
안드로이드 암호화(참고)
- 안드로이드 암호화 적용되어 있다면 physical dump로 데이터 수집해도 의미가 없음
- 기본적으로 안드로이드 운영체제는 기기의 모든 사용자 데이터를 암호화하길 권장
- 전체 디스크 암호화(Full Disk Encryption, FDE)
- 사용자가 생성한 모든 데이터를 암호화하여 저장 매체에 기록
- 잠금 시 디스크 암호화, 잠금 해제 시 디스크 암호화 해제
- 잠금 시 긴급통화만 가능
- 안드로이드 운영체제 Kitkat(Ver 4.4) 도입 / 안드로이드 운영체제 Mashmallow(Ver 6.0) 필수
- 파일 기반 암호화(File Base Encryption, FBE)
- 파일마다 고유한 키를 통해 독립적으로 암호화하여 저장 매체에 기록
- 잠금 시, 잠금 해제 시 사용할 수 있는 어플리케이션을 따로 관리
- 안드로이드 운영체제 Nougat(Ver 7.0) 도입 / 안드로이드 운영체제 Queen Cake(Ver 10.0) 필수
- 안드로이드 운영체제 암호화로 인해 물리적으로 수집한 데이터 분석에 한계 존재
- 데이터 암호화 해제된 상태에서 데이터 수집해야 함 → Logical dump 필요
'SWUFORCE > 모바일 포렌식' 카테고리의 다른 글
[모바일 포렌식] 모바일 포렌식 입문 (9) | 2024.10.08 |
---|---|
[고려대 정보보호대학원] 모바일 포렌식 분석 (1) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 수집: 아이폰 (0) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 수집: 안드로이드Ⅱ (0) | 2024.10.01 |
[고려대 정보보호대학원] 모바일 포렌식 개요 (4) | 2024.09.30 |