IOS

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

데이터 획득

플래시 메모리 이미지 획득

플래시 메모리 이미지 획득 방법은 iOS 기기의 내부 데이터 파티션에 대해 이미징을 수행하여 데이터를 획득하는 방법이다. 이는 iOS 기기에 대해 관리자 권한을 획득하여야 수행할 수 있으며 이를 위해 탈옥(Jailbreak)이 필요하다. 관리자 권한을 획득하기 위해서는 DFU(Device Firmware Upgrade)[1] 모드에서 사용자가 제작한 커스텀 펌웨어로 부팅하는 방법을 사용하며 관리자 권한을 획득한 이후에는 iOS 운영체제 레벨에서 dd 명령어를 이용하여 섹터 단위로 데이터 파티션에 대한 이미지를 획득하게 된다. 아래 표는 iOS 사용 기기와 운영체제 버전에 따른 탈옥 가능 여부 및 가능 탈옥 프로그램을 기술한 내용이다.

버전 및 기종 별 완전 탈옥 가능 현황
기종/버전 iOS 3 iOS 4 iOS 5 iOS 6 iOS 7
iPhone 3G
Sn0wbreeze(3.1.3)
Redsn0w(3.0/3.0.1/3.1.2/3.1.3)
PwnageTool(3.0/3.1/3.1.2/3.1.3)
BlackRa1n(3.1/3.1.2)
Spirit(3.1.3)
Sn0wbreeze(4.3.3/4.2.1/4.1 /4.0.2/4.0.1/4.0)
Redsn0w(4.2.1/4.1/4.0.2/4.0.1/4.0)
PwnageTool(4.0/4.1/4.2.1)
JailbreakMe(4.0/4.0.1)
GreenPois0n(4.2.1)
X
X
X
iPhone 3GS
Sn0wbreeze(3.1.3)
Redsn0w(3.0/3.0.1/3.1.2/3.1.3)
PurpleRa1n(3.0)
PwnageTool(3.1/3.1.2/3.1.3)
BlackRa1n(3.1/3.1.2)
Spirit(3.1.3)
Sn0wbreeze(4.3.3/4.3.2/4.3.1/4.3/4.2.1/4.1/4.0.2/4.0.1/4.0)
Redsn0w(4.3.5/4.3.4/4.3.3/4.3.2/4.3.1/4.3/4.2.6/4.2.1/4.1/4.0.2/4.0.1/4.0)
PwnageTool(4.0/4.1/4.2.1/4.3.1/4.3.2/4.3.3)
JailbreakMe(4.0/4.0.1/4.3.1/4.3.2/4.3.3)
LimeRa1n(4.0.2/4.1)
GreenPois0n(4.1/4.2.1)
Sn0wbreeze(5.1.1/5.1/5.0.1/5.0)
Redsn0w(5.1.1/5.1/5.0.1/5.0)
PwnageTool(5.0.1)
Absinthe(5.1.1)
Sn0wbreeze(6.0.1/6.0)
Redsn0w(6.0.1/6.0/6.1.3(세미탈옥))
Evasi0n(6.0/6.0.1/6.1/6.1.2)
X
iPhone 4
Sn0wbreeze(3.1.3)
RedSn0w(3.1.3)
Sn0wbreeze(4.4.4/4.4.3/4.3.3/4.3.2/4.3.1/4.3/4.2.8/4.2.6/4.2.1/4.1/4.0.2/4.0.1/4.0)
Redsn0w(4.3.5/4.3.4/4.3.3/4.3.2/4.3.1/4.3/4.2.6/4.2.1/4.1/4.0.2/4.0.1/4.0)
JailbreakMe(4.0/4.0.1/4.2.8/4.3.1/4.3.2/4.3.3)
LimeRa1n(4.0.2/4.1)
GreenPois0n(4.1/4.2.1)
PwnageTool(4.1/4.2.1/4.3.1/4.3.2/4.3.3)
Sn0wbreeze(5.1.1/5.1/5.0.1/5.0)
Redsn0w(5.1.1/5.1/5.0.1/5.0)
PwnageTool(5.0.1)
Absinthe(5.1.1)
Sn0wbreeze(6.0.1/6.0)
Redsn0w(6.0.1/6.0/6.1.3(세미탈옥))
Evasi0n(6.0/6.0.1/6.1/6.1.2)
Evasi0n(7.0/7.0.1/7.0.2/7.0.3/7.0.4)
iPhone 4S
X
X
Redsn0w(5.1.1/5.0.1/5.0)
Absinthe(5.0/5.0.1/5.1.1)
CLI(5.0/5.0.1)
Evasi0n(6.0/6.0.1/6.1/6.1.1/6.1.2) Evasi0n(7.0/7.0.1/7.0.2/7.0.3/7.0.4)
iPhone 5
X
X
X
Evasi0n(6.0/6.0.1/6.1/6.1.2) Evasi0n(7.0/7.0.1/7.0.2/7.0.3/7.0.4)
iPhone 5S
X
X
X
X
Evasi0n(7.0/7.0.1/7.0.2/7.0.3/7.0.4)

Logical 획득

Logical 획득을 위해서는 공통적으로 USBMuxd라는 과정이 반복되어야 한다. USBMuxd 과정과 통신 개요, 신뢰성 검증 등을 위의 문서 링크를 참조하여 살펴본다.

데이터 추출

iOS 버전 및 기기별 차이점(iOS 6와 iOS7)

1. DB 테이블 구성도 변경

(가) Library/CallHistory/call_history.db
call_history.db의 테이블 구성도를 보면 data 테이블이 제외되었다.


좌 : iOS 6의 call_history.db
우 : iOS 7의 call_history.db

IOS6 call history db.png IOS7 call history db.png


2. DB 스키마 변경

(가) Library/AddressBook/AddressBook.sqlitedb
AddressBook.sqlitedb 안의 ABPerson 테이블의 스키마 구조를 보면 guid와 PhonemeData가 추가되었다.


좌 : iOS 6의 ABPerson
우 : iOS 7에서의 ABPerson

IOS6 ABPerson.png IOS7 ABPerson.png


(나) Library/Calendar/Calendar.sqlitedb
Calendar.sqlitedb 안의 Calendar 테이블의 스키마 구조를 보면 color_is_display, notes, bulk_request, subcal_account_id, push_key가 제외되었다.


상 : iOS 6의 Calendar
하 : iOS 7의 Calendar

IOS6 Calendar.png


IOS7 Calendar.png


(다) Library/com.apple.itunesstored/itunesstored2.sqlitedb
itunesstored2.sqlitedb 안의 ZMICROPAYMENTCLIEN 테이블의 스키마 구조를 보면 ZLASTQUEUECHECKDATE가 추가되었다.


좌 : iOS 6의 ZLASTQUEUECHECKDATE
우 : iOS 7의 ZLASTQUEUECHECKDATE

IOS6 ZLASTQUEUECHECKDATE.png IOS7 ZLASTQUEUECHECKDATE.png


(라) Library/Safari/Bookmarks.db
Bookmarks.db 안의 bookmarks 테이블의 스키마 구조를 보면 syncable과 web_filter_status가 추가되었다.


좌 : iOS 6의 bookmarks
우 : iOS 7의 bookmarks

IOS6 bookmarks.png IOS7 bookmarks.png


(마) Library/Notes/notes.sqlite
notes.sqlite 안의 ZNOTE 테이블의 스키마 구조를 보면 ZEXTERNALSEQUENCENUMBER가 추가되었다.


좌 : iOS 6의 ZNOTE
우 : iOS 7의 ZNOTE

IOS6 ZNOTE.png IOS7 ZNOTE.png


(바) Library/SMS/sms.db
sms.db 안의 attachment 테이블의 스키마 구조를 보면 user_info, transfer_name, total_bytes가 추가되었다.


좌 : iOS 6의 attachment
우 : iOS 7의 attachment

IOS6 attachment.png IOS7 attachment.png


3. 저장 파일 변경

(가) 지도 데이터
“Library/Maps” 경로에 저장되는 기본 지도 애플리케이션 관련 데이터에 FailedSearches.mapsdata와 지도 검색 결과를 저장하는 SearchResults.dat 파일이 추가되었다.


상 : iOS 6의 지도 데이터
하 : iOS 7의 지도 데이터

IOS6 mapdata.png

IOS7 mapdata.png


(나) Safari 데이터
Safari 관련 데이터에 최근 검색어를 저장하는 RecentSearches.plist와 SyncedTabsMetadata.plist 파일이 추가되었다.


상 : iOS 6의 Safari 데이터
하 : iOS 7의 Safari 데이터

IOS6 Safaridata.png


IOS7 Safaridata.png


4. 저장 경로 변경

(가) Library/Safari
iOS 7부터 “var/mobile/Applications/com.apple.mobilesafari/Library/Safari” 경로가 새로 생성되었고 Library/Safari 경로에 저장되었던 Safari 관련 데이터 중 Bookmarks.db를 제외한 History.plist와 SuspendState.plist는 “/var/mobile/Applications/com.apple.mobilesafari/Library/Safari” 경로에 저장되었다.


상 : iOS 6의 Library/Safari
하 : iOS 7의 Library/Safari와 com.apple.mobilesafari/Library/Safari

IOS6 library.png


IOS7 library.png

저장 데이터 형식 별 분석 방법

iOS 기기는 시스템 정보 및 애플리케이션 사용 정보를 저장하기 위해 SQLite Database 파일 포맷과 Plist 파일 포맷을 사용한다. 이러한 데이터는 주된 사용 정보를 저장하고 있으므로 파일의 포맷을 파악하고 저장된 내용을 분석할 수 있어야한다.


1. SQLite DB 파일

애플 iOS 기기는 캘린더, 문자, 메모 등 기본 애플리케이션 정보를 저장할 때 주로 데이터베이스 포맷을 사용하고 있다. 여기에 사용하는 데이터베이스는 오픈 소스의 공개 데이터베이스 패키지인 SQLite 데이터베이스 소프트웨어로, 모바일 기기와 오픈소스 애플리케이션에 사용되는 대표적인 관계형 데이터베이스이다. SQLite 데이터베이스의 파일 확장자는 주로 .sqlitedb지만 .db나 그 밖의 확장자가 사용되기도 한다.
SQLite 데이터베이스를 열어서 분석하기 위해서는 SQLite Browser (http://sourceforge.net/projects/sqlitebrowser/) 나 RazorSQL (http://razorsql.com), SQLiteExpert (http://www.sqliteexpert.com/) 와 같은 SQLite 뷰어 프로그램이 필요하다. 파이어폭스에는 무료 SQLite Manager 플러그인이 포함되어 있다. 아래 그림은 대표적인 SQLite 뷰어 프로그램인 SQLiteExpert로 SQLite 데이터베이스를 열람한 모습이다.

SQLite Expert

SQLite 데이터베이스를 실행하고 나면 다양한 내장 SQLite 명령어를 사용해서 정보를 확인하거나 수정할 수 있다. 아래 표는 SQLite에서 사용 가능한 SQL 명령어 종류를 나타낸다.


SQLite 명령어 종류
종류 명령문 설명
새로운 구조·정의 작성
CREATE TABLE 새로운 테이블 작성
CREATE VIEW 새로운 뷰 작성
CREATE TRIGGER 새로운 트리거 작성
CREATE INDEX 새로운 인덱스 작성
기존의 구조·정의 삭제
DROP TABLE 기존 테이블 삭제
DROP VIEW 기존의 뷰 삭제
DROP TRIGGER 기존의 트리거 삭제
DROP INDEX 기존의 인덱스 삭제
테이블·정보 조작
INSERT 테이블에 새로운 행 삽입
UPDATE 테이블의 행 또는 항목의 값 갱신
DELETE 테이블에서 행 삭제
SELECT 테이블 또는 뷰에서 행 선택
트랜젝션 조작
BEGIN 트랜젝션 시작
END 트랜젝션 종료
COMMIT 트랜젝션 인증
ROLLBACK 트랜젝션 내의 쿼리 중지
그 외의 조작
COPY 파일 또는 테이블간의 데이터 복사
ATTACH DATABASE 현재 데이터베이스 접속에 기존의 데이터베이스 추가
DETACH DATABASE 추가 데이터베이스 연결을 끊음

가장 보편적인 명령어는 데이터베이스에서 데이터를 검색하는 Select 명령어이다. SQLite Select문 선택(Selection), 프로젝션(projection), 조인(Joining)의 세 가지 기능을 가지고 있다. SQLite의 선택 기능을 사용하면 테이블에서 질의 결과로 반환될 행(row)을 선택할 수 있으며 다양한 조건을 사용하여 표시될 행을 제한할 수 있다. 또한 프로젝션 기능을 사용하면 테이블에서 질의 결과로 반환될 열(column)을 사용자가 필요한 만큼 선택할 수 있으며, 조인 기능을 사용하면 서로 다른 테이블 간에 링크를 생성하여 각 테이블에 저장된 데이터를 함께 가져올 수 있다. 아래 그림은 SELECT문을 사용하여 SQLite 데이터베이스를 분석하는 예제이다.

SELECT문 사용 예제


2. Plist 파일

Plist 파일 포맷은 Apple 기반의 시스템에서 사용되는 속성 정보 저장 포맷으로 Propery List를 의미하는 파일이다. Plist 파일은 텍스트 형태의 파일과 바이너리 형태의 파일이 있다. 텍스트 형태의 Plist 파일은 텍스트 편집기로 열람 및 수정이 가능하다. 바이너리 형태의 Plist 파일은 별도의 해석 도구가 필요하다. 바이너리 Plist 파일은 12개의 오브젝트로 구성되어 있으며 오브젝트의 구성을 조합하여 하나의 파일 형태를 구성한다.

Bookmarks.plist 파일을 열람한 화면

바이너리 Plist 파일의 오브젝트는 1바이트로 표현되며 상위의 4비트를 구분자로 사용하고 하위 4비트를 길이 정보로 사용한다. 오브젝트의 유형과 포맷은 아래 표와 같다.

바이너리 Plist의 오브젝트 목록
Object Format Size & Ref 설명
null 0000 0000
bool false 0000 1000 false
true 0000 1001 true
fill 0000 1111 fill byte
int 0001 nnnn value Big Endian
real 0010 nnnn value Big Endian
date 0011 0011 value Big Endian
data 0100 nnnn [int] value nnnn은 Byte의 크기
string Ascii 0101 nnnn [int] value Ascii String
Unicode 0110 nnnn [int] value Unicode String
uid 1000 nnnn value nnnn + 1
array 1010 nnnn [int] objref nnnn count
set 1100 nnnn [int] objref nnnn count
dict 1101 nnnn [int] keyref
[int] objref
nnn count

예를 들어 “URL”이라는 Ascii 문자열은 3바이트의 길이를 가진다. 이는 “53 55(U) 52(R) 4C(L)”과 같이 오브젝트 구분자를 붙이게 된다. 0x10은 길이 값이 1바이트라는 것을 나타내고 2바이트인 경우 0x11, 4바이트는 0x12로 나타내게 된다. 각 오브젝트를 아래 그과 같이 구성하는 것은 Dict와 Array 오브젝트가 수행한다. Dict는 Dictionary의 줄임말로 자료 항목을 하나의 집합으로 구성해주는 역할을 한다. Array는 지정된 오브젝트를 나열하는 역할을 한다. Dict와 Array 오브젝트가 각 오브젝트를 구성하기 위해 오브젝트의 번호를 이용하며 이용되는 오브젝트 번호는 파일에 기록되어있는 순서대로 부여된다.

바이너리 Plist의 오브젝트가 기록된 모습

위 그림은 plist 포맷의 오브젝트의 구성을 나타내며, 빨간 네모박스 부분이 오브젝트 구분자이로 가장 처음 기록된 “5F 10 15"를 0번부터 부여하고 파란 네모박스 부분의 "D6"을 15번으로 부여한다. 이 오브젝트 번호는 순차적으로 부여되지만 별도로 저장되지는 않는다. 그리고 이 오브젝트 번호를 이용해 Dictionary를 구성하고 Array를 갖게 된다. 파란 박스의 "D6" 이 Dict의 구분자이며 Dictionary로 구성할 오브젝트가 6쌍이 있음을 나타낸다. 위 그림에서와 같이 "D6" 이후 6바이트인 “03 04 05 06 07 08”이 Key가 되며, 다음 6바이트인 “09 0A 0B 0C 0E 10"이 Value가 된다. Plist 파일은 Key와 Value의 한 쌍으로 값을 표현하며 Key가 되는 오브젝트와 Value가 되는 오브젝트를 Dict가 매핑 해준다.

시스템 정보

기기 정보

1. /var/mobile/Library/ConfigurationProfiles/PayloadManifest.plist

PayloadManifest.plist 파일에서는 기기가 속해 있는 통신사업자 이름이 기록되어있다.

PayloadManifest.plist

2. /var/preferences/SystemConfiguration/com.apple.network.identification.plist

com.apple.network.identification.plist 파일에서는 기기 명과 호스트 명이 기록되어있다.

com.apple.network.identification.plist

3. /var/wireless/Library/Preferences/com.apple.commcenter.plist

com.apple.commcenter.plist 파일에서는 기기 번호와 기기에 번호가 등록된 날짜 및 시간이 기록되어있다.

com.apple.commcenter.plist

4. Info.plist

iTunes를 사용하여 데이터를 백업하게 되면 백업 폴더 내에 Info.plist 파일이 생성된다. 이 파일에는 기기 이름, GUID, 전화번호, 제품 종류, 제품 버전 등이 저장된다.

Info.plist

사용자 행위 정보

주소록 정보

사용자는 자신이 사용하는 연락처 정보를 스마트폰에 저장하여 사용한다. 연락처 정보에는 이름, 전화번호, 이메일 주소, 직장 등이 저장된다. 이외에 부가적인 직책, 부서, 메신저 아이디 등의 정보도 입력하여 저장할 수 있다.
연락처 정보는 기본 전화번호부의 경로인 “Library/AddressBook/AddressBook.sqlitedb” 와 카카오톡 “Library/PrivateDocuments/Talk.sqlite”, 바이버 “Documents/Contacts.data”, 마이피플 “Documents/Air21-0.1.2.sqlite” 등에 저장된다.

통화기록 정보

사용자가 스마트폰으로 일반 전화나 영상 통화를 하면 그에 대한 기록이 남는다. 통화기록에는 상대방 전화번호, 발신/수신 여부, 발신/수신 시각, 통화 시간 등이 저장된다.
통화기록 정보는 기본 통화기록 경로인 “Library/CallHistory/call_history.db” 와 Skype “Library/Application Support/Skype/[계정]/main.db” 등에 저장된다.

메시지 정보

사용자는 스마트폰으로 여러 사람들과 메시지를 주고받는다. 이 경우 상대방 전화번호, 발신/수신 여부, 발신/수신 시각, 메시지 내용 등이 저장된다.
메시지 정보는 기본 메시지 기록 경로인 “Library/SMS/sms.db” 와 카카오톡 “Library/PrivateDocuments/Talk.sqlite” 등에 저장된다.

일정 정보

사용자는 스마트폰에 중요한 일정이나 생일과 같은 기념일을 기록한다. 이 경우 일정 내용, 일정 등록 시간, 일정 수정 시간, 일정 장소 등이 저장된다.
일정 정보는 기본 캘린더 경로인 “Library/Calendar/Calendar.sqlitedb”, 2Do “Documents/2do.db“ 등에 저장된다.

메모 정보

사용자는 필요한 정보를 스마트폰의 메모장에 기록한다. 이 경우 메모한 시간, 메모 제목, 메모 내용 등이 저장된다.
일정 정보는 기본 메모 경로인 “Library/Notes/notes.sqlite” 에 저장된다. 메모 데이터는 SQLite 형식으로 저장되어 있다. 아래 그림은 추출된 메모 데이터의 테이블 구성도이다.

메모 데이터의 테이블 구성도

일정 데이터의 분석을 위하여 ZNOTE 테이블을 사용한다. ZNOTE 테이블에는 메모를 작성한 날짜, 수정한 날짜, 내용 등이 저장된다.

ZNOTE Table

웹 브라우저 정보

1. 북마크 정보

사용자는 스마트폰의 웹 브라우저로 인터넷 서핑을 할 때 관심 있는 사이트를 즐겨찾기에 추가한다. 이 때 즐겨찾기에 등록한 사이트 주소, 사이트 이름 등이 저장된다. iOS의 기본 웹 브라우저는 Safari 이며 “Library/Safari/Bookmarks.db” 경로에 Safari에서 북마크한 사이트 정보가 저장된다. 북마크 데이터는 SQLite 형식으로 저장되어 있다. [그림 7-59]는 추출된 북마크 데이터의 테이블 구성도이다.

북마크 데이터의 테이블 구성도

북마크 데이터의 분석을 위하여 bookmarks 테이블을 사용한다. bookmarks 테이블에는 북마크한 사이트 이름, url 등이 저장된다.

bookmarks Table


2. 히스토리 정보

사용자는 스마트폰의 웹 브라우저로 인터넷 서핑을 할 때 여러 사이트를 방문한다. 이 때 방문한 사이트 이름, 사이트 주소, 방문 시간 등이 히스토리 정보로 저장된다. iOS의 기본 웹 브라우저는 Safari 이며 “Library/Safari/History.plist” 경로에 Safari에서 남긴 히스토리 정보가 저장된다. Safari 히스토리 데이터는 방문한 사이트 이름, url, 방문 횟수 등이 plist 형식으로 저장되어 있다. [그림 7-61]은 추출된 Safari 히스토리 데이터이다.

Safari 히스토리 데이터

지도 정보

사용자는 잘 모르는 장소에 가야할 때나 주변의 교통정보, 식당 정보가 궁금할 때 스마트폰의 지도 애플리케이션으로 검색해서 정보를 얻는다. 또한 검색한 내용을 북마크해서 다음에 쉽게 찾아볼 수 있다.
지도 정보는 네이버맵 “Documents/NMap/cache/History.db”, “Documents/NMap/data/NMap.db” 과 다음맵 “Documents/map/data/history.db”, “Documents/map/data/[계정]/favorite.db” 에 저장된다.

WIFI 정보

사용자는 무료로 Wi-fi가 제공되는 장소에 가면 유료인 3G나 4G대신 Wi-fi에 접속한다. Wi-fi에 접속하기 위해서는 보통 ID와 패스워드가 필요하다. 따라서 사용자가 Wi-fi에 접속하면 접속한 시간과 접속한 와이파이명, ID와 패스워드, 와이파이 종류 (WPA) 등이 저장된다.
Wi-fi 정보는 “SystemConfiguration/com.apple.wifi.plist” 경로에 plist 형식으로 저장되어 있다. 아래 그림은 추출된 Wi-fi 데이터이다.

Wi-fi 데이터

애플리케이션 정보

iOS 사용자는 AppStore를 통해 필요한 애플리케이션을 다운받아 설치한다.
애플리케이션 정보는 “Library/com.apple.itunesstored/itunesstored2.sqlitedb” 경로와 Info.plist 파일에 저장된다.

SNS 사용 정보

사용자는 스마트폰의 SNS를 통해 온라인상에서 자신의 지인 뿐 만 아니라 불특정 타인과 관계를 맺고 게시물을 올려 좋아하는 사진이나 글귀를 공유하며 자신의 근황을 전달한다. 또한 한 사람을 특정하여 메시지를 주고받기도 한다. SNS 사용 정보에는 마지막으로 로그인한 계정, 발신/수신한 메시지 내용, 게시한 내용 등이 저장된다.
SNS 사용 정보는 트위터 “Library/Preferences/com.atebits.Tweetie2.plist” 와 페이스북 “Library/Preferences/com.facebook.Facebook.plist” 경로에 저장된다.


1. 트위터

트위터 정보는 계정, 마지막으로 업데이트한 날짜 등이 plist 형태로 저장된다. 아래 그림은 추출된 트위터 데이터이다.

트위터 데이터


2. 페이스북

페이스북 정보는 마지막으로 로그인한 계정, 마지막으로 업데이트한 날짜, 기기 정보 등이 plist 형태로 저장된다. 아래 그림은 추출된 페이스북 데이터이다.

페이스북 데이터

문서 뷰어 사용 정보

사용자는 스마트폰의 웹 브라우저에서 문서 파일을 다운로드 하거나 직접 스마트폰에 문서 파일을 넣어서 문서 뷰어 애플리케이션을 통해 해당 문서 파일을 열람한다. 문서 뷰어 사용 정보에는 열어본 문서 제목, 문서 경로, 웹 다운로드 URL 등의 정보가 저장된다.
문서 뷰어 사용 정보는 어도비리더 “Library/Preferences/com.adobe.Adobe-Reader.plist”, 굿리더 “Library/Preferences/com.goodiware.GoodReaderIPad.plist”, “Library/SaveState.sqlitedb” 경로에 저장된다.

클라우드 사용 정보

사용자는 클라우드에 파일을 업로드 하여 필요할 때 다시 다운받거나 다른 사용자와 공유를 하기도 한다. 클라우드 사용 정보에는 업로드, 다운로드한 파일 이름과 자동동기화 했을 경우 자동동기화 계정 정보가 저장된다.
클라우드 사용 정보는 드랍박스 “Library/Preferences/com.getdropbox.Dropbox.plist” 또는 유클라우드 “Library/Preferences/kr.co.show.ucloud.plist”, “Library/Preferences/kr.co.show.ucloudipad.plist” 경로에 저장된다.


1. 드랍박스

드랍박스 정보는 plist 형식으로 저장되어 있다. 아래 그림은 추출된 드랍박스 데이터이다. 드랍박스 데이터에는 사용자 계정이 저장된다.

드랍박스 데이터


2. 유클라우드

유클라우드는 PC의 개인 데이터를 자동으로 보관(동기화)해주고, 아이폰 또는 아이패드에서 저장된 데이터를 직접 이용할 수 있는 클라우드 애플리케이션이다.
유클라우드 정보는 plist 형식으로 저장되어 있다. 아래 그림은 추출된 유클라우드 데이터이다. 유클라우드 데이터에는 등록된 사용자의 메일주소, 계정, 비밀번호, 이름 등이 저장된다.

유클라우드 데이터

백업 정보

사용자는 iOS 기기에 저장된 데이터를 실수로 삭제하거나 기기를 변경할 때를 대비하여 백업을 한다. iTunes를 이용하여 백업할 경우 Info.plist에 마지막 백업 날짜가 저장된다. Info.plist 파일은 iTunes를 사용하여 데이터를 백업하게 되면 백업 폴더 내에 생성된다. 아래 그림은 추출된 Info.plist 데이터 중 마지막 백업 날짜이다.

마지막 백업 날짜

포렌식 분석 도구

IOS 포렌식 분석 도구로 Micro Systemation XRY, UFED Touch Ultimate, GMD, Backup Browser, iTools 등의 도구가 있다. 세부 내용은 위의 문서 링크를 참조한다.

IOS 기기 구성

아이폰 4S

아이폰 4S 내부 구조
아이폰 4S 부품 별 제조사
제조사 부품
Samsung A5 Chip
Samsung / Toshiba Nand Flash
Samsung DRAM
Broadcom WLAN, Bluetooth, GPS
LG Camera
Corning / TPK Holdings / Wintek Touch Screen
LG Display

아이패드 4

아이패드 4
아이폰 4S 부품 별 제조사
제조사 부품
Apple A6X Chip
Hynix Nand Flash
Elpida DRAM
Broadcom WLAN, Bluetooth, GPS
Corning / TPK Holdings / Wintek Touch Screen
LG Display

용어 정리

  1. DFU: 모든 자료를 지우며 공장 초기화 상태로 만드는 것