개요
디지털 포렌식 전문가 2급 실기 시험 대비를 위한 파티션 복구 방법에 관해 작성하고자 한다.
실습에서 사용되는 HxD 파일은 아래의 링크에서 다운로드 가능하다.
손상된 파티션 유형
먼저 EnCase 분석을 위해 증거용 USB를 "E01" 타입의 이미지 사본을 생성했다면, FTK Imager로 파티션이 손상되었는지 확인이 필요하다. 손상된 파티션 유형에는 아래와 같은 두 가지가 있으며, [그림 1]을 참고하자
- Unrecognized file system : 특정 디스크 또는 이미지 파일에서 파일 시스템을 인식하지 못하는 경우
- Recovered : 파티션이 손상되거나 삭제된 경우
또한, 이러한 손상된 파티션은 파일 시스템 유형 별로 복구 절차가 다른데 이 중 FAT32 파일 시스템에서 Unrecognized file system 파티션이 손상 됐을 경우 복구 방법을 먼저 살펴보겠다.
파티션 복구 방법
EnCase 분석을 위해 생성한 "E01" 타입의 사본 이미지를 FTK Imager로 불러와 손상된 파티션인지 확인한다.
[그림 2]를 보면 FTK Imager로 불러온 이미지 파일의 파티션이 "Unrecogrized file system" 라고 표기된 것을 볼 수 있으며, 이는 이미지 파일에서 해당 파티션을 인식하고 있지 못하는 경우이다. 따라서, HxD 프로그램을 통해 파티션을 인식할 수 있도록 수정 작업이 필요한데 이를 위해서는 E01이 아닌 dd(RAW) 타입의 이미지 파일이 필요하며, 만약 시험에서 이와 같은 파티션 인식 문제가 생기면 바로 dd(RAW) 타입의 이미지를 다시 생성해야 한다.
dd 타입의 이미지를 생성했다면, HxD 프로그램을 실행한 후 [도구 - 디스크 이미지 열기]를 통해 생성한 이미지를 불러온다.
디스크 0번 섹터에는 MBR(Master Boot Recoder) 또는 BR(Boot Recoder)가 존재하며, 0번 섹터가 MBR인지 BR인지에 따라 접근 방법이 달라진다. 여기서는 MBR로 판단하고 분석을 진행하겠다. (실제로 MBR이다.)
MBR의 구조는 446 Byte의 Boot Code 영역, 16Byte 총 4개의 파티션 영역과 2Byte의 시그니처 영역으로 나누어진다.
그리고 이 중 파티션 복구를 위해 분석할 영역은 Partition Table Entry 영역이다.
Partition Table Entry 구조는 다음과 같다.
- Boot Flag : 1Byte, 해당 파티션의 부팅 가능 여부(0x80 : 부팅 가능한 파티션, 0x00 : 부팅 불가능 파티션)
- CHS Start : 3Byte, CHS 방식의 시작 주소
- Part Type : 1Byte, 해당 파티션의 종류를 의미(0x0B : FAT32 , 0x0C : FAT32, 0x7C : NTFS )
- Ending CHS Addr : 3Byte, CHS 방식의 종료 주소
- Starting LBA Addr : 4Byte, LBA 방식의 시작 주소
- Size in Sector : 4Byte, LBA 의 총 개수
이 중에서 우리가 중요하게 봐야할 것은 Part Type, Starting LBA Addr로 Part Type을 통해서 파일 시스템 유형을 파악하고 Starting LBA Addr을 통해 파티션의 섹터를 확인할 수 있기 때문이다. 추가로 NTFS에서는 Size in Sector까지 봐야하는데 이는 NTFS 파티션 복구 포스팅에서 살펴보겠다.
위에서 살펴본 MBR 구조를 통해 이미지를 분석해보면 첫 번째 파티션의 Part Type이 "0C"인 것을 통해 FAT32 파일 시스템인 것을 알 수 있으며, 파티션의 시작 센터가 "80 00 00 00"으로 이를 빅 엔디안으로 바꾸면 "0x80"이고 10진수로 변형하면 파티션의 시작 섹터가 128번 섹터인 것을 알 수 있다.
[그림 7]에서 확인한 첫 번째 파티션의 시작 섹터인 128번으로 오면 [그림 8]과 같이 해당 섹어틔 데이터가 모두 비워져있는 것을 볼 수 있으며, 이와 같은 이유로 FTK Imager에서 이미지 정보를 불러오지 못하는 것이다.
이제 이 비워져있는 섹터에 원래의 데이터 정보를 삽입해줘서 이미지를 복구해야 하는데 NTFS, FAT32 등의 모든 파일 시스템들은 특정 섹터에 이미지의 부트 레코더 백업 데이터 정보를 저장해둔다. 그리고 FAT 32는 시작 섹터에서 6번 째 이후 섹터에 백업 정보가 저장되어 있다.
① 134번 섹터로 이동하면 ② "MSDOS5.0" 아스키 값을 통해 FAT32 이미지의 부트 레코 백업 데이터가 저장되어 있는 것을 확인할 수 있다. ③ 복구를 위해 해당 섹터의 헥스 값을 전체 복사한다.
첫 번재 파티션의 시작 섹터인 128번 섹터로 돌아와 섹터의 시작 부분에서 마우스 오른쪽을 클릭하고 "붙여넣기 쓰기"를 클릭해준다. 이때, 주의할 점은 붙여넣기 쓰기가 아닌 삽입을 하게 될 경우 데이터를 128번 섹터가 아닌 새로운 섹터를 생성하여 데이터를 쓰기 때문에 반드시 "붙여넣기 쓰기"를 해줘야 한다.
① 상단의 [파일] 탭을 클릭 후 ② "다른 이름으로 저장" 버튼을 클릭하여 복구한 이미지를 저장해준다.
복구한 이미지를 FTK Imager를 통해 불러오면 [그림 12]와 같이 이미지가 정상 복구된 것을 확인할 수 있다.
'자격증 > 디지털 포렌식 전문가' 카테고리의 다른 글
EnCase를 이용한 이미지 사본 생성 방법 (0) | 2023.06.10 |
---|---|
FTK Imager를 이용한 이미지 사본 생성 방법 (0) | 2023.06.10 |
EnCase 동글키를 이용한 라이센스 등록 방법 (3) | 2023.06.10 |
디지털 포렌식 전문가 2급 실기 준비 - 시험 전 확인사항 및 디스크 쓰기 방지 (0) | 2023.06.09 |
[제 20회] 디지털 포렌식 전문가 2급 필기 합격 후기 (1) | 2023.05.27 |