Project/iOS

[iOS Digital Forensics: Artifact Analysis Tool Development] 03 Imaging#2

우저미 2025. 3. 20. 16:14

( ᵕ·̮ᵕ ) ⁾⁾

Physical Imaging

지난 지난에 총 7가지 방법을 진행했는데, 2GB로 나눠서 전송한 6번 방법만 성공함

근데 다시 파일을 확인해보니, dd 명령어로 이미징 후 저장한 위치에 16KB 정도 파일이 저장되어 있길래 한 번 다시 시도해보기로 함  

 

0. 준비 환경

탈옥한 iPhone 6 (ios 12.5.7) 기기를 (c to 8) 케이블을 통해 PC와 연결 후 3uTools SSH Tunnel을 통해 실행 

PC의 IP 주소는 ###.###.##.204 : PuTTY를 통해 관리자 권한으로 실행 (administrator)

저장 위치는 D:\iOS\ffs_dd 

 

1. PC) Nmap의 ncat 사용

administrator@JEOMI D:\iOS\ffs_dd>

"C:\Program Files (x86)\Nmap\ncat.exe" -lvp 9000 > iphone_image.dd

PC에서 iPhone에 SSH가 열려 있는지 확인 : ssh root@127.0.0.1 

 

2. iPhone) 기기에서 데이터 전송 

iPhone:~ root#

apt update && apt install netcat

dd if=/dev/disk0 bs=4M | nc 192.168.45.204 9000

dd 파일의 크기가 증가함 → iPhone에서 전송한 데이터가 PC에 정상적으로 수신됨 

 

3) 이미징 파일 확인 

 

자문

이미징하는 과정 중, 궁금한 점이 생겨 교수님께 자문을 구했다.

이미징하기 직전에 기기를 살펴보니 Apple ID에 로그인 되어 있었고, iCloud와 갤러리가 연동되어 약 1만장의 사진이 존재했다. 

이후 로그아웃과 iCloud 연동 해제를 진행했는데 이 자료들이 다시 노출될 가능성이 있는지 궁금했다.

 

1. iCloud와 연동되었던 사진의 복구 여부 

사진 자체가 아니라 iCloud 연동 로그(CloudPhotos.sqlite, Accounts3.sqlite, cloudphotod 로그 등)를 분석하면 iCloud에 사진이 있었던 흔적을 찾을 수 있음

그러나 iCloud 로그아웃 후에는 흔적이 삭제될 가능성이 큼

 

2. 영구 삭제한 사진들의 복구 여부 

iOS는 NAND 플래시 기반 저장 장치를 사용 → 삭제된 파일은 컨트롤러가 자체적으로 초기화하기 때문에 복구 거의 불가능

풀 파일 시스템 덤프는 라이브 파일만 획득할 수 있음 

Photos.sqlite, CloudSync.sqlite 등에서 삭제된 사진의 메타데이터 정도는 남아 있을 가능성이 있음

 

3. 물리적 이미징 이후의 문제

물리적 이미징 후에도 파일이 암호화된 상태로 덤프될 가능성이 있음 

논리적 이미징에서는 manifest.db를 통해 파일 ID와 원래 파일명을 매핑하지만, 물리적 이미징에서는 파일이 암호화되어 해석이 어려움

iOS의 APFS 암호화 방식으로 SEP에서 일부 데이터를 보호하기 때문에 특정 파일에 접근이 불가능할 수 있음  

 

*TRIM : SSD 및 NAND 플래시 기반 저장 장치에서 삭제된 데이터를 효율적으로 관리하기 위한 플래시 메모리 최적화 기능 

*SEP(Secure Enclave Processor) : Apple 기기에서 민감한 데이터를 보호하는 독립적인 보안 프로세서 

 

분석

 

0. Manifest.db 

Backup 파일 > Manifeset.db > file 테이블

Logical Imaging에서 해싱 로직은 fileID = SHA1 (domain + "-" + relativePath) 와 같음

 

 

1. iBackupBot 툴 사용 (Logical Imaging)

1) 메시지 (SMS, iMessage)

System Files/HomeDomain/Library/SMS/sms.db

2) 통화기록

System Files/HomeDomain/Library/CallHistoryDB/CallHistory.storedata

3) 메모 앱 데이터

System Files/HomeDomain/Library/Notes/notes.sqlite

4) 연락처

System Files/HomeDomain/Library/AddressBook/AddressBook.sqlitedb 

5) Safari 방문 기록 

(북마크 기록) System Files/HomeDomain/Library/Safari/Bookmarks.db 

6) iCloud 로그인 정보 

System Files/HomeDomain/Library/Accounts/Accounts3.sqlite 

7) 사진 및 미디어 파일

(갤러리 사진 및 동영상) System Files/CameraRollDomain/Media/DCIM/100APPLE 

(사진의 메타데이터) System Files/CameraRollDomain/Media/PhotoData/Photos.sqlite 

8) User Information Manager

(Contacts) 연락처 목록 

(Messages) SMS, iMessage 대화 기록 

 

(Calendar) 캘린더 일정 

(Safari Bookmarks) 웹 북마크 

(Safari History) 웹 방문 기록 

9) Multimedia File Manager

(Camera Roll) iOS의 기본 카메라 앱에서 직접 찍은 사진/동영상이 저장되는 위치 

크기 0인 파일이 많은 이유는 iOS 저장 방식과 백업 구조 때문

- iCloud 사진 최적화 설정이 활성화된 경우 : 원본 사진은 iCloud에 저장되고, 로컬에는 참조파일(0KB)이 저장될 수 있음

- 삭제된 사진의 흔적이 남은 경우 

- APFS Snapshot 기능으로 인해 일부 기록이 남은 가능성 

(Other Multimedia files) iOS 내 다른 앱(다운로드/편집된 파일 포함)의 미디어 파일, 썸네일, 클라우드 캐시 등이 포함 

Data가 사진을 찍은 날짜가 아닌 이유

- iOS 백업의 타임스탬프 문제 : EXIF 촬영 날짜가 아닌 파일 시스템의 수정 날짜나 백업 날짜를 표시할 수 있음

- 사진이 편집 되었거나 다른 앱을 통해 저장된 경우

- iCloud에서 재다운로드된 경우 

 

 

2.  Physical Imaging 에서 유용한 정보

1) 논리적 이미징에서 접근 불가능한 시스템 내부 데이터

(UDID, iCloud 활성화 흔적) /private/var/root/Library/Lockdown/

(셀룰러 네트워크 사용 기록) /private/var/wireless/Library/Databases/CellularUsage.db

(시스템 및 앱 로그) /private/var/logs/

(임시 데이터 저장소) /private/var/tmp 

2) Keychain 데이터

keychain-2.db

keychain_dumper

iOS Keychain Extractor

3) 파일 삭제 후 흔적 

Photos.sqlite, CloudSync.sqlite

fs_snapshot_list 

4) iCoud 및 Apple ID 연동 흔적

/private/var/mobile/Library/Accounts/Accounts3.sqlite

/private/var/mobile/Library/Preferences/com.apple.accounts.plist

5) 암호화된 파일 접근

/var/keybags/ 폴더에 암호화된 Keybag 데이터