2014년 2월 14일 금요일

아이폰 백업에 대하여( 운영체제별 백업경로 구조, SMS, Call History 통화내역 등등... )

아이폰을 컴퓨터에 연결하고 아이튠즈(iTunes)를 실행시키면 ‘요약’ 탭에서 백업에 대한 항목을 찾을 수 있다. 아이폰의 데이터를 백업할 수 있는 방법은 ‘아이클라우드(iCloud)에 백업’과 ‘이 컴퓨터에 백업(로컬 백업 암호화)’ 등 두 가지다. 

우선 ‘아이클라우드에 백업’은 원격지(remote)에 있는 애플 서버에 사용자의 백업 파일을 전송하는 것이다. 하지만 아이클라우드는 기본 5기가만 지원하기 때문에 전제 파일을 백업하는데 무리가 있다. 기본 설정으로 ‘아이클라우드에 백업’이 설정되어 있으며, 사용자 편의에 따라 ‘이 컴퓨터에 백업’으로 변경이 가능하다.

‘이 컴퓨터에 백업’은 아이폰이 연결된 컴퓨터에 폴더를 생성하여 백업 파일을 만든다는 의미다. ‘이 컴퓨터에 백업’을 선택하면 패스워드를 설정할 수 있다. ‘로컬 백업 암호화’ 기능을 ‘끔(OFF)’으로 선택할 경우, 패스워드를 설정하지 않고도 백업 파일을 생성할 수 있다.


[그림 2] 아이튠즈를 이용한 아이폰 백업 파일 생성


백업 파일 폴더 구조
 
아이튠즈를 이용한 백업이 완료되면 [표 1]의 백업 경로에 백업 파일이 생성된다.
 

 운영체제 백업 경로
 Windows XPC:\Documents and Settings\[user name]\Application Data\Apple Computer\MobileSync\Backup\
 MAC OS X~/Library/Application Support/MobileSync/Backup/
 Windows 7C:\Users\[user name]\AppData\Roaming\AppleComputer\MobileSync\Backup\
[표 1] 운영체제 별 아이폰 백업 파일 생성 경로

해당 폴더로 이동하면 [그림 3]과 같이 식별 가능한 파일명과 SHA1으로 해시(hash)된 파일명들이 존재한다는 것을 알 수 있다. 식별이 가능한 파일들과 그렇지 않은 파일들의 기능을 알아보자.


[그림 3] 백업 파일이 생성된 폴더

• Manifest.mbdb: 백업 폴더 안에 저장되어 있는 파일명을 기록
• Info.plist: Build Version, Device Name, GuID, ICCID, Last Backup Date 등을 기록
• Manifest.plist: Applications, Date, Encrypt 유무, System Domain Version 등을 기록
• Status.plist: BackupState, UUID, Version 등을 기록
• App Files: 파일명을 SHA1으로 해시하여 저장


백업 파일 해석 도구
 
아이폰 백업 파일 경로로 이동하여 파일을 확인해도 어느 파일이 어떤 기능을 하는지 파악하기는 쉽지 않다. 다행히 백업 파일을 식별 가능하게 해주는 도구들이 있다. 이러한 도구는 아래 URL에서 다운로드 할 수 있다.



백업 파일 식별 도구 • iPhone Backup Extractor : http://www.iphonebackupextractor.com/
• iBackupBot : http://www.icopybot.com/itunes-backup-manager.htm

이러한 도구들은 Manifest.mbdb, Info.plist, Manifest.plist, Status.plist, App files를 파싱하여 보여준다. 파싱이 완료되면 [그림 4]와 같이 백업 파일들의 폴더 구조를 볼 수 있어 손쉽게 파일에 접근 및 확인이 가능하다.


[그림 4] 백업 파일의 폴더 구조


Manifest.mbdb 파일의 구조와 정보

Manifest.mbdb 파일은 백업파일들에 대한 도메인과 파일 경로(PATH)를 저장하고 있다. 도메인은 11개의 시스템 도메인(System Domain)과 1개의 애플리케이션 도메인(Application Domain)이 있다.


• System Domain
RootDomain, MediaDomain, SystemPreferencesDomain, TonesDomain, CameraRollDomain, BooksDomain, MobileDeviceDomain, HomeDomain, KeychainDomain, WirelessDomain, ManagedPreferencesDomain
• Application Domain
애플리케이션 도메인은 AppDomain-App_Name과 같은 형태로 표현된다(ex : AppDomain-com.apple.iBooks).

Manifest.mbdb의 파일 구조는 [표 2]와 같다.



 Offset 데이터 설명
 4byteMbdb0x05Signature
 StringAppDomain-net.daum.mapsDomain Name
 String Library/Preferences/net.daum.maps.plistFile Path
 4byte 0x000001F5User ID
 4byte 0x000001F5Group ID
 4byte 0x500E6FBALast Modified Time
 4byte 0x500E6FBALast Accessed Time
 4byte 0x500E6FBACreated Time
 8byte 0x000000000001D25파일의 길이(0x0은 심볼릭 링크나 디렉터리를 의미함)
[표 2] Manifest.mbdb 파일 구조
 

[그림 5] Manifest.mbdb 파일

Last Modified Time, Last Accessed Time, Created Time은 Unix Numeric Time으로 Big Endian 형식을 띄고 있다. 해당 시간을 [그림 6]의 DCode를 이용해 확인해보면 ‘2012-07-24 09:49:46’이라는 것을 알 수 있다. 또한 UTC+9으로 계산하면 ‘2012-07-24 18:49:46’이 된다는 것을 알 수 있다. 이처럼 Manifest.mbdb 파일을 확인하면 앱이 아이폰에 언제 설치되었고, 언제 수정되었는지에 대한 내역을 모두 확인할 수 있다.


[그림 6] 디지털 시간 디코더 DCode

파일명은 [그림 7] 및 [그림 8]과 같이 Domain-PATH를 SAH1으로 해시한 값으로 저장된다.


[그림 7] Domain-PATH를 SAH1으로 해시한 값


[그림 8] 해시한 값으로 저장된 파일명


백업 파일을 남기는 중요 흔적
 
[표 3]은 주요 백업 파일의 기능과 도메인-경로를 정리한 내용이다.


 이름 도메인 - 경로 기능
 ContactsHomeDomain - Library/AddressBook/AddressBook.sqlitedb
SHA1 : cd6702cea29fe89cf280a76794405adb17f9a0ee
연락처 및 생성 시간
 CalendarHomeDomain - Library/Calendar/Calendar.sqlitedb
SHA1 : 2041457d5fe04d39d0ab481178355df6781e6858
이벤트 및 생성 시간, 이벤트 발생 시작 시간 및 종료 시간
 SMSHomeDomain - Library/SMS/sms.db
SHA1 : 3d0d7e5fb2ce288813306e4d4636395e047a3d28
SMS 메시지 내용 및 보낸 시간
 Call HistoryWirelessDomain - Library/CallHistory/call_history.db
SHA1 : 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca
통화 시도 시간
 Voice MailHomeDomain - Library/Voicemail/voicemail.db
SHA1 : 992df473bbb9e132f4b3b6e4d33f72171e97bc7a 
보이스 메일 및 보낸 시간
 NoteHomeDomain - Library/Notes/notes.sqlite
SHA1 : ca3bc056d4da0bbf88b5fb3be254f3b7147e639c
노트 내역 및 생성 시간
 SafariHomeDomain - Library/Safari/History.plist
SHA1 : 1d6740792a2b845f4c1e6220c43906d7f0afe8ab
마지막 방문 시간
[표 3] 주요 백업 파일의 기능 및 도메인-경로

1. Contacts

Contacts 파일은 HomeDomain에 위치해 있으며, 경로는 ‘Library/AddressBook/ AddressBook.sqlitedb’이다. 해당 파일은 주소록으로 사용되며, 사용자가 입력한 대화 상대의 주소, 이름, 전화번호, 이메일 등을 기록한다. 또한 생성 시간을 기록있어, 대화 상대의 정보가 언제 입력되었는지 알 수 있다.


[그림 9] Contacts 파일 내 정보

2. Calendar

Calendar 파일은 HomeDomain에 위치해 있으며, 경로는 ‘Library/Calendar/Calendar. Sqlitedb’이다. Calendar 파일은 사용자가 기록해 놓은 일정을 포함하고 있다. 일정 안에는 일정이 시작되는 시점과 종료되는 시점이 기록되어 있으며, 일정에 대한 메모도 포함되어 있기 때문에 포렌식 측면에서 상당히 의미 있는 데이터라 할 수 있다.

 
[그림 10] Calendar 파일 내 정보

3. SMS(Short Message Service)

SMS 파일은 HomeDomain에 위치해 있으며 경로는 ‘Library/SMS/sms.db'이다. SMS 파일은 사용자와 대화 상대의 SMS 기록을 전부 기록하고 있다. 파일 안에는 SMS를 발송한 시간(Mac Absolute Time), 상대방이 SMS를 발송한 시간, 사용자가 상대방이 보낸 SMS를 확인한 시간 등이 기록되어 있다. 또한 SMS의 첨부 파일이 무엇인지, 언제 첨부되었는지에 대한 기록까지 담고 있다. SMS파일은 다양한 시간 정보를 담고 있기 때문에 타임라인(Timeline) 분석 시 매우 유용한 정보를 얻을 수 있다.


[그림 11] SMS 파일 내 정보

4. Call History

Call History 파일은 WirelessDomain에 위치해 있으며 경로는 ‘Library/CallHistory/call_ history.db’이다. Call History 파일은 사용자와 대화 상대의 전화 이력(history)을 기록한 파일이다. 언제 전화가 걸려왔는지, 통화는 얼마나 오래 지속되었는지, 취소되거나 받지 못 한 통화 등의 정보를 저장하고 있다.


[그림 12] Call History 파일 내 정보
 
5. Notes

Notes 파일은 HomeDomain에 위치해 있으며, 경로는 ‘Library/Notes/notes.sqlite’이다. Notes 파일에는 사용자가 기록한 내용이 저장되어 있다. 저장된 내용 외에도 데이터를 기록한 시간이 저장되어 있어 타임라인 분석에 유용하다.


[그림 13] Notes 파일 내 정보

6. Safari

Safari 파일은 HomeDomain에 위치해 있으며, 경로는 ‘Library/Safari/History.plist’이다. Safari History 파일은 사용자가 웹에서 검색한 내용이나 웹 페이지 방문 기록 등이 저장되어 있다. 이 중 검색한 시간(Mac Absolute Time)과 방문 시간 정보도 포함되어 있어 마찬가지로 타임라인 분석에 용이하다.


[그림 14] Safari 파일 내 정보

지금까지 아이폰 백업 파일 생성 과정부터 주요 백업 파일과 각 파일이 저장하고 있는 정보에 대해 살펴봤다. 2부에서는 스마트폰 사용자들이 주로 이용하는 앱 유형에 따른 포렌식 분석 방법 등을 살펴본다.@

출처 : http://blog.naver.com/youseok0?Redirect=Log&logNo=10153805349

댓글 없음:

댓글 쓰기