안녕하세요 EnIaC 입니다.


요즘 빡시게 포렌식 강의를 빼다 보니까 벌써 7강까지 왔네요 ㅋㅋ.... 지금 배워볼 내용은 FSINFO 즉, File System INFOrmation 에 대해 이야기 해 보도록 하겠습니다.



1. FSINFO (File System INFOrmation)

사실 FAT32 Layout 을 보면 FSINFO 라는 내용이 어디 있나 싶을 것 입니다. FSINFO 영역을 또다르게 Reserved Area 라고 부르기도 합니다. 이래서 포렌식쪽 용어들이 좀 많이 헷갈리는게 있죠. MBR 에서는 Size in sector 이면서 FAT32 BR 에서는 Total Sector 32 로 표기하기도 하죠. 참 용어라는게 같은 뜻이 다수개가 되어버리니 공부하는 입장에서는 좀 난처하긴 하지만 어쩔땐 오히려 저게 나을때가 있습니다.(ㅋㅋ) 여튼.. FSINFO 영역을 한번 보도록 하겠습니다.



[그림 1. Reserved Area]


Reserved Area 즉, FSINFO 는 위 [그림 1] 과 같은 구조를 띄고 있습니다. 중간에 물결 표시가 있는데 이는 중간 코드들이 의미 없는 0x00 값으로 채워져 있기 때문입니다. 그 부분을 잘라내고 가장 아래 부분을 나타낸 표 입니다.


1. Lead Signature : FSInfo 구조체가 기록된 섹터임을 알려준다. 0x41615252로 고정.

2. Reserved 1 : 예약 영역으로 해당 섹터의 대부분을 차지하고 있으며(479Byte) 전부 0x00 이라는 의미 없는 값으로 채워져 있다.

3. Struct Signature : 실제 FSInfo 구조체의 시작을 알려주는 항목으로 0x61417272 로 고정.

4. Free Cluster Count : 볼륨 상에 존재하는 빈 클러스터의 수

5. Next Free Cluster : 가장 마지막에 할당된 클러스터의 값이 저장되며 이 바로 뒤에 오는 클러스터는 비어있는 클러스터라고 할 수 있다.

6. Reserved 2 : 이 역시 예약된 영역이며 0x00 으로 채워진다.

7. Trail Signature : FS Info 구조체 섹터의 끝을 알려주며 0xAA550000로 고정되어 있다.


 범위 설명
 10진수 16진수
 0 – 3 0x0000 – 0x0003 Signature (0x41615252)
 4 – 483 0x0004 – 0x01E3 Not used
 484 – 487 0x01E4 – 0x01E7 Signature (0x61417272)
 488 – 491 0x01E8 – 0x01EB Number of free clusters
 492 – 495 0x01EC – 0x01EF Next free cluster
 496 – 509 0x01F0 – 0x01FD Not used
 510 – 511 0x01FE – 0x01FF Signature (0x55AA)


이제 위 내용을 토대로 실제 Reserved Area 를 분석 해 보면.... [그림 2] 참고.



[그림 2. Reserved Area Dump]


Boot Record 쪽에서는 FSinfo 구조의 위치가 1 Sector 로 나와있는데 이는 섹터 번호의 기준이 0번을 기준으로 하므로 총 2 Sector 뒤로 이동해야 합니다. 위에서 우리가 이미 공부했던 고정값 들을 모두 발견할 수 있습니다.



[Reserved Area 분석 값]

- Struct Signature : 0x61417272

- Free Cluster Count : 0x00146DB7, 1338807 개 클러스터가 비어있다.

- Next Free Cluster : 0x00000003, Cluster 3 번이 가장 마지막에 채워진 클러스터이다.

- Trail Signature : 0xAA550000



2. Additional reserved area

앞서 부트 섹터는 0, 6번 섹터를 사용하고, FSINFO는 1, 7번 섹터를 사용한다는 사실을 알 수 있습니다. 이외에도 2번 섹터는 부트 섹터의 부트 코드 영역이 부족할 경우 추가적으로 사용할 수 있는 섹터입니다. 그리고 이 내용은 8번에 백업해 둡니다. 이렇게 기본적으로 FAT32는 0, 1, 2, 6, 7, 8번의 섹터를 사용하게 됩니다.


결과적으로 총 32섹터 중 6개 섹터만 사용하고 나머지 섹터는 만약을 대비해 예약되어 있습니다. 따라서 이러한 섹터는 일반적으로 어플리케이션에서 접근하지 않기 때문에 간혹 예약된 나머지 영역에 데이터를 숨겨두는 경우도 있습니다. 이러한 경우는 파일시스템 뿐만 아니라 램과 같은 휘발성 메모리에서도 악성 프로그램을이 자주 사용하는 기법입니다.


디지털포렌식 수사관의 입장으로 보았을때는 이런 의미없는 0x00 공간조차 심도있게 보아야하는 이유가 바로 여기에 있지 않을까 싶습니다. 단순히 의미없는 공간이라고 바로 지나칠 것이 아니라 그래도 한번쯤은 보고 지나가는 그런 습관을 들이셨으면 하는 바램입니다.


다음 시간에는 FAT Area 에 대해 이야기 해보도록 하겠습니다. 본격적으로 클러스터 개념이 들어가며 데이터 저장과 삭제에 직접적으로 관여하는 부분입니다.


감사합니다.


WRITTEN BY
EnIaC
WhiteHackerGroup 『LockDown』 EnIaC 입니다.

,