본문 바로가기

Kitri_NCS3기 보안과정/디지털포렌식

Ext File System -2- (Super Block)

 

 

 Super Block

Group Descriptor 

Block Bitmap 

Inode Bitmap 

 Inode Table

 Directory/Data Block

 


Super Block


00

01

02 

03 

04 

05 

06 

07 

08 

09 

10 

11 

12 

13 

14 

15 

s_inodes_count

s_block_count

s_r_blocks_count_lo 

s_free_blocks_count_lo 

 s_free_inodes_count

s_first_data_block

s_log_block_size

s_log_cluster_size

s_blocks_per_group 

 s_cluster_per_group

s_inodes_per_group 

s_mtime 

s_wtime 

s_mnt_count 

 s_max_mnt_count

 s_magic

 s_state

 s_errors

s_minor_rev_level 

 s_lastcheck

 s_checkinterval

s_creator_os 

 s_rev_level

 s_def_resuid

s_def_resgid 

s_first_ino 

s_inode_size 

s_block_group_nr 

 s_feature_compat

 s_feature_incompat

 s_feature_ro_compat

u_uuid[16] 

 u_uuid[16] 

 s_volume_name[16]

 s_volume_name[16]

 s_last_mounted[64]

 s_last_mounted[64]

 s_last_mounted[64]

 s_last_mounted[64]

 s_last_mounted[64]

 s_algorithm_usage_bitmap

 s_p_b

s_p_d_b 

 s_reserved_gdt_blocks

 s_journal_uuid[16]

s_journal_inum 

 s_journal_dev

 s_last_orphan

 

 

Name

Offset

길이(byte) 

설명 

 s_inodes_count

 0x00

 파일 시스템에 있는 inode 갯

 s_blocks_count_lo

0x04 

 파일 시스템에 있는 블록 갯수

 s_r_block_count_lo 

0x08 

 파일 시스템 공간 전부를 사용하지 못하게 예약해놓은 블록 개수 (by super user )

s_free_blocks_count_lo 

0x0C

 할당되지 않은 블록 갯수

s_free_inodes_count 

0x10 

 할당되지 않은 inode 갯수

s_first_data_block 

0x14 

 블록그룹이 0이 시작되는 블록

s_log_block_size 

0x18 

 블록 크기(2^(10+s_log_block_size))

s_log_cluster_size 

0x1C 

 단편 크기 (2 ^ s_log_cluster_size) 

s_blocks_per_group 

0x20 

 각 블록 그룹의 블록 갯수

s_clusters_per_group 

0x24 

 각 블록 그룹의 단편 갯수

s_inodes_per_group

0x28 

4 

 각  블록 그룹의 inode 갯수

s_mtime 

0x2C 

 마지막으로 파일시스템을 마운트 한 시간 

s_wtime 

0x30 

 마지막으로 파일시스템을 수정한 시간

s_mnt_count

0x34 

 파일시스템을 마운트 한 횟수

s_max_mnt_count 

0x36

 마운트 가능한 파일시스템 최대 갯수

s_magic

0x38 

 시그니처

s_state 

0x3A 

파일 시스템 상태

s_errors 

0x3C 

오류 처리방법

s_minor_rev_level 

0x3E 

부 버전

s_lastcheck 

0x40 

마지막 일관성 검사 한 시간

s_checkinterval 

0x44 

일관성 검사 사이의 간격

s_creator_os 

0x48 

파일 시스템 생성 OS

s_rev_level 

0x4C 

주 버전

s_def_resuid 

0x50 

예약 블록을 사용할 수 있는 UID

s_def_resgid 

0x52 

예약 블록을 사용할 수 있는 GID

s_first_ino 

0x54 

파일 시스템에서 예약되지 않은 첫번째 inode

s_inode_size 

0x58 

inode 크기

s_block_group_nr 

0x5A 

현재 슈퍼 블록에 있는 블록 그룹

 s_feature_compat

0x5C

호환성 기능 플래그

s_feature_incompat 

0x60 

호환하지 않은 기능 플래그

s_feature_ro_compat 

0x64 

읽기 전용 속성 플래그

s_uuid 

0x68 

16 

파일시스템 ID

s_volume_name 

0x78 

16 

볼륨 이름

s_last_mounted 

0x88 

64 

마지막 마운트 지점 경로

 s_algorithm_usage_bitmap

0xC8 

비트맵에서 사용된 알고리즘

s_prealloc_blocks 

0xCC 

파일들을 위해 미리 할당 된 블록의 개수

s_prealloc_dir_blocks 

0xCD 

디렉토리를 위해 미리 할당된 블록의 개수

s_reserved_gdt_blocks 

0xCE 

사용 x

s_journal_uuid 

0xD0 

16 

저널 id

s_journal_inum 

0xE0 

저널 inode

s_journal_dev 

0xE4 

저널 장치

s_last_orphan 

0xE8 

 고아 inode 목록의 헤드


 

슈퍼블록은 파일시스템의 주요 설정 정보들이 기록되어있는 영역.

블록의 크기에 관계 없이 항상 그룹의 첫번째에 위치함.

블록의 크기가 2KB 이건 4KB이건 1KB 만큼만 사용함.

부트섹터를 제외하고 1024byte 에 위치한다. 

슈퍼 블록은 설정값만 포함하고 부트코드는 포함하고 있지 않다.

 

각 그룹마다 super block의 내용은 동일하며 만약 다르다면 파일 시스템이 손상된 것이다.

파일시스템이 Mount 될 때 커널은 그룹 0에 있는 super block을 읽는다.

모든 그룹에 super block가 있지만 0번 그룹에 있는 super block만 사용되며 나머지는 백업으로 저장되어 손상될시 사용된다.

 

주요 저장 내용
 - 매직 넘버 : super block의 id "0xEF53"

 - 블록크기(1KB, 2KB, 4KB)

 - 총 블록의 개수

 - 블록 그룹별 블록 갯수

 - 예약 블록 수

 - inode 전체 갯수

 - 블록 그룹 별 inode 개수

 - 볼륨 이름

 - 마지막 수정 시간

 - 마지막 마운트 시간

 - 마지막 마운트 경로

 - 무결성 식별 실행 여부 값


inode와 블록들의 전체 개수에 대한 데이터를 기록하기도 하는데 이것의 이유는 inode와 블록들을 할당 할 때 참고하기 위해서이다.

super 블록에는 위에서 설명한 호환기능 말고도 sparse 슈퍼 블록기능이 있다.

sparse 슈퍼 블록 


슈퍼블록과 그룹기술자 테이블의 복사본을 일부 블록그룹에 포함되도록함.

파일의 시작위치를 판별하는데 어려움


* 슈퍼블록 백업본 시그니쳐  : "0xEF53"


 

'Kitri_NCS3기 보안과정 > 디지털포렌식' 카테고리의 다른 글

SQLite Database  (0) 2017.08.01
Ext File System -1-  (0) 2017.07.04
170626 윈도우 포렌식 - 레지스트리  (0) 2017.06.26
170621 NTFS - MFT Entry 속성의 종류별 분석  (0) 2017.06.21
170620 NTFS의 구조  (0) 2017.06.20