[백업을 이용한 분석]
대부분의 기기(컴퓨터를 포함한 디지털 기기)들은 백업 기능을 기본적으로 지원한다. 물론 iOS를 탑재하고 있는 Apple 社의 기기들도 백업을 지원한다. 하지만 다른 일반 디지털 기기들과는 다르게 특정 프로그램으로 백업이 이루어지는 그 프로그램은 바로 iTunes라는 프로그램이다. iOS가 탑재 된 모바일 장치를 사용하기 위해서는 꼭 iTunes라는 프로그램을 사용 해야 한다.
만약, 분석하려는 모바일 장치에 Root 권한을 획득하지 못하는 상황이라면 포렌식 수행은 어떻게 해야 하는 것일까? 꼭 기술적인 문제가 아닌 법률적 문제로 인해 Root 권한을 얻지 못하는 상황이라면, 암호화 된 데이터를 어떻게 얻어 낼 수 있을까? 이때 이용하는 방법이 백업파일 분석 방법이다. iOS의 백업기능에서 기본적으로 백업을 하는 대상은 다음과 같다.
- 연락처* 및 연락처 즐겨찾기(컴퓨터 또는 iCloud와 같은 클라우드 서비스로 연락처를 정기적으로 동기화하여 백업)
- 응용 프로그램 내 구입을 포함한 App Store 응용 프로그램 데이터(응용 프로그램 자체, 응용 프로그램의 tmp 및 캐시 폴더 제외)
- 응용 프로그램 설정, 환경설정 및 데이터(문서 포함)
- 웹 페이지 자동 완성
- CalDAV 및 등록된 캘린더 계정
- 캘린더 계정
- 캘린더 이벤트
- 통화 기록
- 카메라 롤(사진, 스크린샷, 저장된 이미지 및 촬영된 비디오. 2GB를 초과하는 비디오는 iOS 4.0 이상에서 백업됨)
참고: 카메라가 없는 장비에서는 저장된 사진이 카메라 롤을 의미한다. - Game Center 계정
- 홈 스크린 배열
- 응용 프로그램 내 구입
- 키체인(참고: 이메일 계정 암호, Wi-Fi 암호 및 웹 사이트와 일부 다른 응용 프로그램에 입력한 암호가 포함된다. iOS 4 이상에서 백업을 암호화할 경우 키체인 정보를 새로운 장비로 전송할 수 있다. 암호화되지 않은 백업의 경우에는 동일한 iOS 장비로만 키체인을 복원할 수 있다. 암호화되지 않은 백업을 사용하여 새로운 장비로 복원하는 경우 이 암호를 다시 입력해야 한다.)
- 외부 동기화 소스 목록(Mobile Me, Exchange ActiveSync)
- 사용자의 위치를 사용하도록 허용한 응용 프로그램 및 웹 사이트의 위치 서비스 환경설정
- Mail 계정(메일 메시지는 백업되지 않음)
- 관리되는 구성/프로파일. 백업을 다른 장비로 복원하면 구성 프로파일과 관련된 모든 설정(계정, 차단 또는 구성 프로파일을 통해 지정한 모든 설정)은 복원되지 않는다. 단, 구성 프로파일과 연관되지 않은 계정 및 설정은 정상적으로 복원된다.
- 맵 책갈피, 최근 검색 및 맵에 표시된 현재 위치
- Microsoft Exchange 계정 구성
- 네트워크 설정(저장된 Wi-Fi 핫스팟, VPN 설정, 네트워크 환경설정)
- Nike+iPod 저장된 운동 및 설정
- 메모
- 오프라인 웹 응용 프로그램 캐시/데이터베이스
- 연결된 Bluetooth 장비(백업을 수행한 동일한 전화기로 복원된 경우에만 사용할 수 있음)
- Safari 책갈피, 쿠키, 방문 기록, 오프라인 데이터 및 현재 열려 있는 페이지
- 저장된 제안 수정(제안된 수정을 거부할 때 자동으로 저장됨)
- 메시지(iMessage 및 네트워크 사업자 SMS 또는 MMS 사진이나 동영상)
- 확인할 수 없는 인증서가 있는 신뢰할 수 있는 호스트
- 음성 메모
- 음성 사서함 토큰(음성 사서함 암호가 아니며, 연결 시 확인에 사용되고 SIM 카드의 전화 번호가 동일한 전화기로만 복원됨)
- 배경화면
- 웹 클립
- YouTube 책갈피 및 재생 기록
백업 대상 데이터는 기본적으로 iOS에서 mobile 디렉토리에 저장되어 있는 데이터들이다. 백업 데이터들만 봐도 포렌식 관점에서 활용할만한 데이터가 많다는 것을 알 수 있을 것이다. 백업은 [그림 1]과 같이 iTunes에서 모바일 장치를 클릭한 후 백업기능을 선택하면 된다.
[그림 1 - 백업 기능]
iTunes는 자신이 설치 된 OS 별로 백업 파일을 저장하는 위치가 다른데 각 OS 별로 백업 파일이 저장되는 위치는 다음과 같다.
- Mac OS X : ~/Library/Application Support/MobileSync/Backup/<해시 값>
- Windows X : \Documents and Settings\(사용자 이름)\Application Data\Apple Computer\MobileSync\Backup\<해시 값>
- Windows Vista/7 : \Users\(사용자 이름)\AppData\Roaming\Apple Computer\MobileSync\Backup\<해시 값>
저장되는 이름이 디렉토리부터 해시 값으로 저장되는데 그 안에 저장되는 파일들 또한 해시 값으로 저장이 되어 한눈에 어떤 파일을 어떻게 분석해야 할지 파악하기가 어렵다. 또 모두 동일한 파일 포맷이 아닌 어떤 파일은 text, 또 어떤 파일은 plist, sqlite 등의 포맷을 가지고 있어 먼저 파일 포맷을 확인한 후 그에 맞는 분석을 수행해야 한다.
Mac OS X의 경우 file 명령어로 전체 파일의 포맷을 간단히 확인 할 수 있고 Windows의 경우 HexViewer로 시그니처를 확인하여 파일 포맷을 확인 할 수 있다.
[그림 2 - Mac OS X에서의 파일 포맷 확인]
[그림 3 - Windows에서의 파일 포맷 확인]
- [plist 파일 분석]
[그림 3]에서 확인한 파일 포맷의 시그니처는 bplist로 Binary Property List(plist)를 뜻하는 것을 알 수 있다. 해당 파일 포맷은 바이너리화 되어 있기 때문에 XML 포맷이나 텍스트 포맷으로 변환을 해주어야 분석이 가능하다. 물론 Mac OS X에 존재하는 bplist 파일 포맷의 파일도 마찬가지이다. Mac OS X는 이러한 변환을 커맨드라인 도구로 지원하고 있는데 이 도구는 plutil이라는 도구이다. 해당 도구의 -convert 옵션을 사용하면 XML이나 텍스트 포맷으로 변환이 가능하다. 간단히 이 도구의 사용법만 소개하고 다른 도구 설명으로 넘어가도록 하겠다.
- plutil -convert <변환할 포맷> <변환할 plist>
ex) plutil -convert xml1 test.plist
plutil 말고 GUI 형태로 동작하는 도구로는 Windows에는 Property List Viewer라는 도구가 있고, Mac OS X에서는 Property List Editor가 있다. Windows의 Property List Viewer를 예를 들어보도록 하겠다. 해당 도구는 바이너리 형태의 plist를 자동으로 xml 형태로 변환하여 출력하여 준다.
[그림 4 - [그림 3]의 plist를 Viewer로 출력한 화면]
[그림 3]에서 봤을 때는 일부 문자만 식별가능 했을 뿐 자세한 내용은 바이너리 코드로 인해 식별이 불가능하였다. 하지만 해당 도구가 자동으로 xml 형태로 변환하여 출력 해 쉽게 분석이 가능한 것을 볼 수 있다. 백업 파일중에서는 plist 파일 말고도 sqlite 파일도 다수 존재하는데 해당 파일도 plsit와 동일하게 전용 Viewer로 열어 일반 DB를 분석하는 것처럼 테이블과 칼럼을 분석하면 된다.
사용자 데이터를 Root 권한 없이 획득 할 때, 사용자 데이터만 분석하려 하는 경우에는 백업 파일을 분석하는 방법이 가장 효율적인 방법일 것이다. 하지만 실제 포렌식 수행 과정에서 삭제 된 파일에 중요 데이터가 없다고는 단정 지을 수 없는 것이 사실이다. 그렇기 때문에 결국 데이터 파티션의 이미징은 필수라고 볼 수 있다. 하지만 만약 포렌식 수행의 목적이 SMS 메시지에서 의뢰인이 말한 어떤 메시지를 찾는 것이라면 SMS sqlite 파일에서 삭제 된 레코드나 저장 된 레코드를 분석하는 것이 목적이므로 데이터 파티션 이미징은 하지 않아도 될 것이다. 이렇듯 각 상황의 목적에 맞게 분석방법을 선택해 분석하는 것이 가장 이상적인 포렌식 분석 수행이 될 것이다.
'[+] Forensic' 카테고리의 다른 글
iOS Forensic - (4) (0) | 2012.08.16 |
---|---|
iOS Forensic - (3) (0) | 2012.08.15 |
iOS Forensic - (1) (0) | 2012.08.13 |
Skype Forensic (0) | 2012.08.07 |