본문 바로가기

[+] Forensic

File System - Ext4 (2) 이번 글에서는 Ext4의 전체적인 레이아웃과 슈퍼블록에 대해서 알아 볼 것이다. Ext4도 결국 파일시스템 전체 레이아웃은 Ext4 파일시스템 이전버전들과 동일하다. 하지만 블록 그룹의 레이아웃이 약간 다르다. [그림 1 - Ext4 블록 그룹 레이아웃] - Group 0 padding : 32(x86)bit 시스템 부트 섹터 등을 위한 영역이며, 크기는 1024byte이다. - Reserved GDT block : 파일시스템의 확장을 위해 예약되어 있는 영역이다. * 참고 : 보통 슈퍼블록, 데이터 블록 비트맵, inode 비트맵은 블록 1개 크기이다. 이제 슈퍼블록을 알아보자. [슈퍼블록] Ext4에서도 슈퍼블록의 역할을 대부분 비슷하다. 슈퍼블록에는 sprase_super라는 플래그 기능이 있는데 .. 더보기
File System - Ext4 (1) 이번 글 부터는 Ext4 파일시스템에 대하여 알아 볼 것이다. Ext4 파일시스템은 Ext3 파일시스템의 개선버전으로 현재 대부분 리눅스에서 사용중이며 포렌식 분석 도구들도 해당 파일시스템 분석을 지원하고 있다. 많은 부분이 앞서 설명하였던 Ext 파일시스템과 동일하여 따로 파일시스템의 참조모델별로 분류하여 설명하지 않고 달라진 부분과 특징 등에 대해서 다루어 볼 것이다. 일단 Ext4 파일시스템에 특징 부터 알아보자. [Ext4 특징] - 대용량 파일시스템 : Volume 크기는 1EiB, 파일 용량은 16TB까지 지원한다. - Extents : 이전 Ext 파일시스템은 Block mapping을 지원하였는데 Ext4 파일시스템 부터는 Extents 방식을 지원하여 블록 단편화 현상을 줄여준다. - 호.. 더보기
File System - UFS (9) 이번 글에서는 UFS의 마지막 데이터 구조체인 디렉토리 엔트리에 대해서 알아 보도록 하겠다. [디렉토리 엔트리] 디렉토리 엔트리는 파일과 디렉토리에 이름을 저장하고 해당 블록에 위치하고 있다. 디렉토리 엔트리는 inode 주소도 포함하는데 이러한 디렉토리 엔트리의 오프셋 구조는 아래와 같다. [그림 1 - 디렉토리 엔트리 오프셋 구조] - 파일 타입 : 파일이나 디렉토리의 타입을 결정 짓는 필드로 해당 필드의 들어가는 값들은 아래와 같다. [그림 2 - 파일타입 플래그 목록] 이렇게 해서 UFS의 모든 참조 모델과 데이터 구조체를 알아보았다. UFS와 Ext 파일시스템은 비슷하지만 UFS에서 조금 더 큰 필드들과 많은 비 필수 데이터가 있는 것을 알 수 있었다. 어떻게 보면 필요 없는 정보들이겠지만 이러.. 더보기
File System - UFS (8) 이번 글에서는 inode와 확장 속성에 대해서 알아보도록 하겠다. inode의 데이터 구조체는 UFS1과 UFS2가 다르기 때문에 따로 나누어 알아보도록 하겠다. [UFS1 inode] inode는 앞 글에서도 여러번 언급하였듯이 각 파일과 디렉토리의 메타데이터를 저장한다. 실린더 그룹 별 inode 수는 슈퍼블록에서 정의되며 각 실린더 그룹에는 inode 테이블이 존재한다. inode 테이블의 위치 또한 슈퍼블록에서 정의하여 준다. UFS1 에서의 inode 테이블의 시작 위치는 기준주소에 따라 모두 다른 상대적 오프셋을 가지지만 UFS2의 inode 테이블은 모두 동일한 오프셋을 가진다. 아래는 UFS1 inode 테이블의 오프셋 구조이다. [그림 1 - UFS1 inode 오프셋] * 참고 : 모드.. 더보기
File System - UFS (7) 계속해서 UFS의 데이터 구조체들을 알아보자. [실린더 그룹 요약 영역] 실린더 그룹 요약 영역은 실린더 그룹에 대한 통계적인 정보를 저장하는 엔트리로 구성되어 있으며, 각 엔트리는 실린더 그룹에 해당한다. UFS1과 UFS2의 실린더 그룹 요약 영역 구조는 동일하며 해당 영역의 주소와 크기는 슈퍼 블록에 정의되어 있다. [그림 1 - 실린더 그룹 요약 영역 오프셋] 아래에서는 그룹 기술자에 대해서 알아 볼 것인데, UFS1과 UFS2의 그룹 기술자 구조가 달라 따로 나누어 알아보도록 하겠다. [UFS1 그룹 기술자] 그룹 기술자는 실린더 그룹에 설정 정보를 담고 있는 구조체이다. 그룹 기술자는 각 실린더 그룹에 위치하며 주소는 기준주소로부터 상대적인 주소로 슈퍼블록에서 정의된다. * 참고 : 각 실린더.. 더보기