본문 바로가기

[+] Forensic

File System - Partition (5)

이번 글에서는 조금 생소한 GPT 파티션에 대해 알아 볼 것이다.

GPT 파티션은 대부분 고성능 서버 컴퓨터에서 쓰여 일반적인 데스크탑 컴퓨터에서는 볼 수 없는 시스템이다.

IA64 시스템들은 IA32 시스템처럼 BIOS가 있지 않아 EFI(Extensible Firmware Interface) 시스템들을 사용한다.

EFI는 128개 파티션과 64비트 LBA 주소를 지원하는 GPT 파티션 시스템을 사용한다.

GPT 파티션을 사용하는 디스크의 기본 구조는 아래 이미지와 같다.

[그림 1 - GPT 디스크 기본 구조]

 - 보호용 MBR : 하나의 엔트리만을 가진 파티션 테이블을 포함한 도스 파티션이 위치해 있으며 해당 엔트리는
                     EFI GPT 디스크를 위한 것이다. 해당 파티션은 과거 컴퓨터들의 디스크를 재구성하기 위해
                     존재한다.

 - GPT 헤더 : GPT 헤더는 위 이미지에서 보듯이 두번째 섹터에 위치하며 GPT 디스크가 생성될 때 고정된
                  파티션 테이블 위치와 크기를 정의하는 항목등이 포함되어 있다.

   * 참고 : 윈도우의 경우 GPT 헤더 다음에 위치하는 파티션 테이블에 포함되는 엔트리의 개수를 128개로
              제한한다.

 - 파티션 테이블 : 파티션 테이블에는 여러개의 엔트리가 있는데 해당 엔트리들은 파티션 영역의 파티션들의
                       타입 등을 정의하는 항목들을 포함한다.

 - 파티션 영역 : GPT 디스크 중에서 가장 큰 공간이며, 파티션 할당에 필요한 섹터들을 포함하고 있다. 이 영역은
                    GPT 헤더에 의해 정의 된다.

   * 참고 : 파티션과 파티션 영역을 혼동하여서는 안된다.

 - 백업 영역 : 해당 영역은 파티션에 문제가 발생 하였을 경우를 대비하여 GPT 헤더와 파티션 테이블을 복사한
                  복사본이 존재한다.


아래는 위에서 설명한 GPT 헤더의 각 항목들이다.

[그림 2 - GPT 헤더 구조]

위 항목들을 이용하여 디스크 전체의 레이아웃을 정의한다.

다음은 GPT 헤더에서 정의한 파티션 테이블의 각 엔트리들이 포함하는 항목들이다.

[그림 3 - 파티션 테이블 엔트리 항목]

GUID 는 128bit로 파티션 내용을 구분하는데 사용된다. 인텔과 MS에서 정의한 GUID 값이 있는데 다음과 같다.

 [그림 4 - 인텔에서 정의한 GUID]

 [그림 5 - MS에서 정의한 GUID]

MS에서 정의한 파티션 중 예약 파티션은 임시파일을 보관하기 위한 파티션이고 주 파티션은 우리가 알고 있는 하나의

파일시스템을 사용하는 파티션이다.

해당 파티션을 지원하는 분석 도구는 아직까지 많지 않다. 하지만 앞으로 64bit 시스템이 주를 이뤄 사용하는 날이

얼마 남지않아(현재 일수도 있다.) 해당 시스템에 대한 분석 도구의 지원이 절실할 때이다. 

해당 시스템을 가지는 디스크를 분석 할 때에는 다른 파티션들과 같이 비할당 영역의 데이터를 찾아 필히 분석해

봐야 한다.  

 

 

'[+] Forensic' 카테고리의 다른 글

File System - Partition (7)  (0) 2012.01.25
File System - Partition (6)  (0) 2012.01.24
File System - Partition (4)  (0) 2012.01.20
File System - Partition (3)  (0) 2012.01.19