Time Machine Forensics [1]

Mac OS X 는 'Time Machine'이라고 불리는 디스크 백업 유틸리티를 내장하고 있다.

스노우 레오파드를 처음 설치했다면, 타임머신은 기본적으로 비 활성화 되어있다. 타임머신은 USB, Firewire나 AFP(Apple File-transfer Protocol)을 지원하는 무선 네트워크를 가진 장치(타임캡슐)를 백업 디스크로 선택할 수 있도록 구성되어 있다.

포렌식 관점에서 타임머신의 구성을 확인하기 위해 하나의 USB 외장 디스크에 가상 머신을 생성하여 연결하였고, '백업 디스크로 지정'하여 총 6회 정도의 백업을 수행하였다. 백업 목적의 디스크는 처음에 디스크로 지정되면, 타임머신에서 사용할 수 있도록 디스크 이미지를 프로그램에 맞게 재 포맷을 수행한다.

이미징한 디스크는 Mac에서 쉽게 접근할 수 있도록 구성되어 있다. 처음 포맷을 수행할 때 타임 머신 관리자는 파일 시스템을 HFS Plus로 포맷한다. 내부에는 맥 운영체제로 인해 생성되는 파일 시스템 이벤트관련 디렉터리(.fseventsd)와 인덱스를 위한 디렉터리(.Spotlight-V100)이 존재하며, '.HFS+ Private Directory Data_'와 '___HFS+ Private Data' 디렉터리를 추가적으로 가지고 있다.
------------------------------------------------------------------------------------------------

forensic-iMac:Time Machine Backups n0fate$ ls -al
total 16
drwxrwxr-x  5 n0fate  staff   408 Dec  2 16:58 .
drwxrwxrwt@ 5 root    admin   170 Dec  2 16:57 ..
-rw-r--r--@ 1 n0fate  staff  6148 Dec  2 16:58 .DS_Store
drwx------  3 n0fate  staff   102 Oct 23 18:47 .Spotlight-V100
d-wx-wx-wt  3 n0fate  staff   102 Dec  2 16:57 .Trashes
-rw-r--r--@ 1 n0fate  staff     0 Dec  2 16:57 .com.apple.timemachine.donotpresent
drwx------  2 n0fate  staff   102 Dec  2 16:58 .fseventsd
drwxr-xr-x+ 3 n0fate  staff   136 Dec  2 12:38 Backups.backupdb
forensic-iMac:Time Machine Backups n0fate$ 

------------------------------------------------------------------------------------------------
우리가 원하는 실질적인 데이터는 'Backups.backupdb' 디렉터리에 존재할 것이니 해당 디렉터리에 직접 접근하면, 타임 머신을 연결한 시스템 이름의 디렉터리를 확인할 수 있다.
------------------------------------------------------------------------------------------------
forensic-iMac:Backups.backupdb n0fate$ ls -al
total 7
drwxr-xr-x+ 3 n0fate  staff  136 Dec  2 12:38 .
drwxrwxr-x  5 n0fate  staff  408 Dec  2 16:58 ..
drwxr-xr-x@ 9 n0fate  staff  340 Dec  1 01:02 n0fate's MacBook Pro
forensic-iMac:Backups.backupdb n0fate$ 
------------------------------------------------------------------------------------------------
디렉터리에 접근하면 백업한 시점을 디렉터리 이름으로 설정하여 독립적인 백업 디렉터리를 생성하고,  가장 최근에 백업한 디렉터리를 'Lastest'로 심볼릭 링크를 걸어 접근할 수 있도록 되어 있다.
------------------------------------------------------------------------------------------------
forensic-iMac:n0fate's MacBook Pro n0fate$ ls -al
total 8
drwxr-xr-x@ 9 n0fate  staff  340 Dec  1 01:02 .
drwxr-xr-x+ 3 n0fate  staff  136 Dec  2 12:38 ..
drwxr-xr-x@ 3 n0fate  staff  204 Oct 23 20:02 2010-10-23-200209
drwxr-xr-x@ 3 n0fate  staff  204 Nov  6 22:44 2010-11-06-224436
drwxr-xr-x@ 3 n0fate  staff  204 Nov  7 13:52 2010-11-07-135232
drwxr-xr-x@ 3 n0fate  staff  204 Nov  7 14:41 2010-11-07-144113
drwxr-xr-x@ 3 n0fate  staff  204 Nov  7 14:58 2010-11-07-145853
drwxr-xr-x@ 3 n0fate  staff  204 Nov 22 00:19 2010-11-22-001900
drwxr-xr-x@ 3 n0fate  staff  204 Dec  1 01:01 2010-12-01-010147
lrwxr-xr-x  1 n0fate  staff   17 Dec  1 01:01 Latest -> 2010-12-01-010147
forensic-iMac:n0fate's MacBook Pro n0fate$ 
------------------------------------------------------------------------------------------------
그리고 내부로 접근하면 해당 시점에 Snow Leopard가 설치된 디스크를 이름으로 한 디렉터리가 나타나고 한 스텝 더 진행하면 타임 머신을 설정한 시스템의 루트 디렉터리와 동일한 정보를 지닌 파일이 나타난다.
------------------------------------------------------------------------------------------------
forensic-iMac:2010-12-01-010147 n0fate$ ls
SnowLeopardHDD
forensic-iMac:2010-12-01-010147 n0fate$ cd SnowLeopardHDD/
forensic-iMac:SnowLeopardHDD n0fate$ ls
Applications
Developer
...
usr
var
사용 설명서와 정보
forensic-iMac:SnowLeopardHDD n0fate$ 
------------------------------------------------------------------------------------------------
중요한 사실은 파일의 내용이 수정되지 않더라도 다음 타임 머신 백업 때 해당 파일을 다시 복사해서 보관하는 구조로 되어있다는 점이다. 이러한 사실은 타임 머신 백업 디스크에 한번이라도 백업을 수행했다거나, 한 시점의 디렉터리 구조가 살아 있다고 한다면, 주 시스템의 무결성을 해치지 않고서 논리적 관점에서 해당 디스크 정보를 획득한 것과 같은 효과를 얻을 수 있음을 의미한다.
타임머신은 한 번만 설정해두면, 자동으로 디스크의 변경 사항을 정해진 시간에 따라 백업을 수행하도록 되어있다. 이러한 특징을 이용하면, 현재 상태의 디스크에서 확인할 수 없는 삭제 파일에 대한 메타데이터 정보 및 파일의 내용을 타임 머신 디스크를 통해 확인할 수 있기 때문에, 삭제된 파일에 접근한다는 측면에서 포렌식 적으로 유용한 정보가 될 수 있다.
또 다른 관점에서, 만약 해당 시스템의 무결성을 고려하지 않고 논리적으로 데이터를 수집하고 싶다면, 별도의 스크립트를 사용할 필요 없이 외장 디스크만을 연결하여 디스크의 전체 내용을 논리적으로 수집하는 것도 생각해볼 수 있다. 이러한 수집을 콘솔에서 수행하기 위해서는 다음 명령어를 입력하면 된다.
------------------------------------------------------------------------------------------------
"/System/Library/CoreServices/backupd.bundle/Contents/Resour
ces/backupd-helper &"
---------
---------------------------------------------------------------------------------------
현재까지 확인한 부분은 이정도이다. 단 위에서 줄로 그은 몇몇 디렉터리가 윈도우의 Mac Drive 어플리케이션에서만 보이는 관계로 저 부분이 본래 존재하는지에 대한 것을 추가적으로 확인할 필요가 있다. 이러한 부분에 대해서는 좀더 삽질해보고 포스팅하도록 하겠다. :)
n0fate's Forensic Space :)