2016년 11월 22일 화요일

아이폰 백업 파일의 흔적을 찾아라


[Tech Report] 아이폰 백업 파일의 흔적을 찾아라



  • AhnLab


  • 2012-11-06


1부_아이폰 백업 파일의 흔적을 찾아라(이번 호)
2부_앱을 읽으면 사용자의 라이프스타일이 보인다(12월 호)

 

최근 전 세계 스마트폰 이용자 수가 10억 명을 돌파한 것으로 알려졌다. 10억 명의 스마트폰 사용자들은 다양한 앱을 이용하고 수많은 정보를 스마트폰에 기록한다. 그리고 배터리 충전이나 사진 등의 데이터를 저장하기 위해 스마트폰을 컴퓨터에 연결한다. 이 과정에서 스마트폰에 기록된 데이터는 컴퓨터에 백업 파일로 남게 된다. 그러다 보니 최근 포렌식 중에 스마트폰의 백업 파일이 자주 등장하고 있다. 스마트폰의 백업 파일은 사건 용의자의 인간 관계는 물론, 행위 분석이나 이동 경로 파악 등에 이용된다. 이 글에서는 스마트폰 백업 파일이 어떤 경로에 존재하고, 어떠한 정보를 갖고 있으며, 특히 포렌식 측면에서 가치 있는 데이터는 무엇인지 알아본다. 수많은 스마트폰 기종을 모두 다룰 수 없는 관계로, 아이폰 백업 파일 포렌식에 대해 월간 안 2012년 11월호부터 2회에 걸쳐 살펴볼 예정이다.


드라마 ‘유령’을 집필한 김은희 작가는 경찰청 사이버수사대에서 ‘휴대전화와 컴퓨터를 보면 그 사람의 머릿속을 들여다보는 것과 같다’는 말을 듣고 사이버범죄를 드라마 소재로 선택하게 됐다고 한다. 그렇다면 휴대전화 기능과 컴퓨터의 기능이 합쳐진 스마트폰을 들여다보면 과연 무엇이 보일까?

 

사용자들은 스마트폰을 다양한 용도로 활용한다. 스마트폰 주소록에 지인들의 정보를 담기도 하고, 캘린더나 일기장을 통해 하루 일과를 정리하기도 한다. 야외 활동을 많이 하는 사용자라면 지도 등 GPS 기반의 다양한 앱을 이용할 수도 있다. 이렇게 다양하게 이용되는 스마트폰은 배터리 충전이나 데이터 저장을 위해 컴퓨터에 연결되기 마련이다. 이 과정에서 스마트폰의 데이터는 컴퓨터로 전송되고, 또 저장된다. 백업 파일 생성 및 저장부터 아이폰 백업 파일 포렌식 과정을 단계별로 짚어가면서 백업 파일에 얼마나 중요한 정보가 저장되어 있는지 파헤쳐보자. 

  



[그림 1] 모바일 등을 기반으로 한 용의자 행위 추적 프로그램 GeoTime

(출처 : http://www.itproportal.com/2011/05/11/uk-police-buy-social-network-tracking-software/)

 

 

아이폰 백업 파일 생



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



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



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

 



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

 

 

백업 파일 폴더 구조



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

 

 운영체제  백업 경로
 Windows XP C:\Documents and Settings\[user name]\Application Data\Apple Computer\MobileSync\Backup\
 MAC OS X ~/Library/Application Support/MobileSync/Backup/
 Windows 7 C:\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  데이터  설명
 4byte Mbdb0x05 Signature
 String AppDomain-net.daum.maps Domain Name
 String  Library/Preferences/net.daum.maps.plist File Path
 4byte  0x000001F5 User ID
 4byte  0x000001F5 Group ID
 4byte  0x500E6FBA Last Modified Time
 4byte  0x500E6FBA Last Accessed Time
 4byte  0x500E6FBA Created 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]은 주요 백업 파일의 기능과 도메인-경로를 정리한 내용이다.

 

 이름  도메인 - 경로  기능
 Contacts HomeDomain - Library/AddressBook/AddressBook.sqlitedb

SHA1 : cd6702cea29fe89cf280a76794405adb17f9a0ee
연락처 및 생성 시간
 Calendar HomeDomain - Library/Calendar/Calendar.sqlitedb

SHA1 : 2041457d5fe04d39d0ab481178355df6781e6858
이벤트 및 생성 시간, 이벤트 발생 시작 시간 및 종료 시간
 SMS HomeDomain - Library/SMS/sms.db

SHA1 : 3d0d7e5fb2ce288813306e4d4636395e047a3d28
SMS 메시지 내용 및 보낸 시간
 Call History WirelessDomain - Library/CallHistory/call_history.db

SHA1 : 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca
통화 시도 시간
 Voice Mail HomeDomain - Library/Voicemail/voicemail.db

SHA1 : 992df473bbb9e132f4b3b6e4d33f72171e97bc7a 
보이스 메일 및 보낸 시간
 Note HomeDomain - Library/Notes/notes.sqlite

SHA1 : ca3bc056d4da0bbf88b5fb3be254f3b7147e639c
노트 내역 및 생성 시간
 Safari HomeDomain - 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부에서는 스마트폰 사용자들이 주로 이용하는 앱 유형에 따른 포렌식 분석 방법 등을 살펴본다.@










  • AhnLab 로고



  • A-FIRST 소재현 연구원




이 정보에 대한 저작권은 AhnLab에 있으며 무단 사용 및 도용을 금합니다.

단, 개인이 비상업적인 목적으로 일부 내용을 사용하는 것은 허용하고 있으나, 이 경우 반드시 출처가 AhnLab임을 밝혀야 합니다.

기업이 이 정보를 사용할 때에는 반드시 AhnLab 의 허가를 받아야 하며, 허가 없이 정보를 이용할 경우 저작권 침해로 간주되어 법적인 제재를 받을 수 있습니다. 자세한 내용은 컨텐츠 이용약관을 참고하시기 바랍니다.

정보 이용 문의 : contents@ahnlab.com


홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...