Forensic 1일차 Filesystem

2022. 1. 3. 14:24Forensic

안녕하세여 포린이의 디스크 포렌식 1일차 Filesystem입니다.

부족하지만 한단계 한단계 블로그 운영을 하면서 성장하는 모습을 올려볼려고 합니다.

부족한 부분이 있으면 댓글로 부탁드리겠습니다.

 

1일차인만큼 간단한 기본부터 시작해야된다고 생각했습니다.

그래서 MBR구조 기반의 디스크부터 알아보겠습니다.

 

제일 기본이 되는 FAT32와 NTFS, 2개의 파일시스템이 있습니다.

불과 몇년전만 해도 FAT32도 쓰였지만 파일의 각각의 용량이 커지면서 이제는 더이상 FAT32를 사용하지 않는 추세입니다. 또한 MBR구조도 많은 제약이 있기 때문에 더욱 확장성이 좋은 GPT를 사용하기도 합니다. 

 

1. 파일시스템 특징

 

1-1. FAT32 특징

1. Windows 95에서 FAT16의 용량 한계를 극복하기 위해 개발

2. 점점 늘어나는 평균 파일의 용량을 수용하기 위해 개발

3. FAT32에는 NTFS가 제공하는 보안 기능이 없으므로 컴퓨터에 FAT32파티션 또는 볼륨이 있는 경우 컴퓨터에 엑세스 가능한 모든 사용자가 파일을 읽을 수 있다.

4. FAT에는 크기 제한이 있다.

5. 32GB보다 큰 FAT32 파티션을 만들 수 없고 FAT32파티션에 4GB를 초과하는 파일을 저장할 수 없다.

 

1-2. NTFS 특징

1. 이전 FAT32를 대체하기 위해 개발(용량의 한계를 극복)

2. 디스크 공간의 효율적 이용을 위해 개발

3. 보안 향상을 위해 개발(파일, 폴더별 독립적 권한 부여, 로그기록 유지, 다른 운영체제로 부팅하여 보안기능 우회 불가)

4. 데이터 손실률 낮은 튼튼한 시스템을 위해 개발

5. 향상된 파일 이름을 지원하기 위해 개발(대소문자, Unicode, 254문자의 파일 이름 지원)

 

 

 

2. PC부팅 순서

1단계 POWER ON : 컴퓨터의 각 장치로 전원 공급이 이루어진다.

2단계 POST(Power on self test) : CPU는 BIOS정보에 의해 자신을 진단한다.

3단계 부팅 : BIOS가 MBR의 ntldr(NT로더)에게 수행권을 넘긴다.

 

이후 모든 것이 정상이면 부팅 제어권을 운영체제(OS)가 갖게 됩니다.

지금부터는 HDD안에 있는 부팅영역(MBR, Master Boot Record)를 확인하게 된다.

 

 

3. MBR(Master Boot Record)

MBR은 Master Boot Record의 약자로 하드 디스크의 가장 첫번째 섹터에 위치하게 됩니다.  보통의 하드디스크는 1섹터당 512Byte를 사용하는데 그중 446Byte는 부트코드(Boot code)영역이고, 64Byte는 파티션 테이블(Partition Table), 마지막 2Btye는 MBR영역의 훼손 여부를 알려주는 시그니처(Signature)를 나타냅니다. Hex Edit프로그램으로 본다면 리틀엔디안으로 값이 저장되어있어 2자리수씩 반대로 읽어야한다.

ex) 01 23 45 67 -> 0x67452301

 

 

이 중에서도 자세히 살펴볼 부분을 제일 큰 영역인 Boot Code가 아니라 Partition table과 Signature입니다.

 

3-1. Partition Table

Partition Table은 총 64Byte로 한 파티션당 16Byte씩 4개의 주 파티션을 구성 할 수 있습니다. 하지만 지금은 확장 파티션이라는 기능을 이용해 더 많은 파티션을 구성할 수 있게 됐습니다.

 

위 그림같이 한줄로 표현되지 않고 2개의 값이 14,15번에 들어가 있다. 항상 저 위치를 주의하면서 봐야한다.

직접 Hxd를 사용하여 값을 보자

 

총 16Btye씩 4개의 파티션 테이블을 확인할 수 있다. 위의 표는 우리가 유심히 봐야될 값들을 정리한 표이다.

Partition Type은 FAT32는 0x0B, 0x0C값을 사용하고 NTFS는 0x07을 사용한다.

 

3-2. Signature

Signature은 MBR영역의 마지막 부분에 있는 값이다. 이 부분은 0xAA55로 표기되고 코드가 손상되면 다른 값으로 채워진다. 모든 내용이 정상이여도 Signature값이 0xAA55가 아니면 문제가 생긴다.

 

 

1일차로 MBR의 첫번째 섹터를 공부했다. 지금은 GPT를 사용하기 시작하여 MBR의 입지도 좁아지는거 같다. 하지만 아직도 사용하고 있는 사람들도 있으니 꼭 공부 해야된다고 생각하였다.

ps.2일차 3일차까지 꾸준히하여 멋진 블로그가 되길.....