File System Forensics 48

[File System] NTFS (12) - 파일시스템 레이아웃과 할당 알고리즘

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 파일시스템 레이아웃과 할당 알고리즘에 대해 알아 보겠습니다. 파일시스템 레이아웃 윈도우는 처음에는 MFT를 작게 만들었다가, 더 많은 엔트리가 추가되면서 점차 확장시켜 나갑니다. 따라서 단편화될 가능성이 높습니다. 단편화 현상을 막기 위해 볼륨의 약 12.5% 정도를 MFT가 쓸 수 있도록 미리 예약되어 있습니다. 윈도우 XP의 경우 파일시스템의 1/3 지점에 $LogFile, $AttrDef, $MFT, $Secure 파일이 저장되고, 다른 메타데이터 파일은 1/2 지점에 저장되었습니다. $Boot 파일은 파일시스템의 첫번째 클러스터에 위치합니다. 파일시스템에서 메타데이터 파일 사이의 모든 공간은 사용자 파일과 디렉토리가 할당되는 공간입니다. 할당 알고리즘 ..

[File System] NTFS (11) - $BadClus 파일

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS에서 $BadClus 파일에 대해 알아 봅니다. 모두 화이팅 하세요!!! $BadClus 파일 MFT Entry 8번 입니다. 볼륨에 배드 클러스터가 생길 때마다 NTFS는 해당 클러스터를 $BadClus 파일의 Cluster Run에 추가하고, 해당 클러스터는 접근을 하지 않게 됩니다. 불량 클러스터 관리 방법(비교개념) FAT FAT Entry의 상태값(예 : 0x?FFFFFF7)으로 표시합니다. NTFS $BadClus 파일의 클러스터 런에 해당 클러스터를 추가합니다. 2개의 $DATA 속성이 존재합니다. $Data라는 이름의 $DATA속성 크기가 0인 거주형 속성입니다. $Bad라는 이름의 $DATA속성 비거주형 속성으로 일정한 크기를 갖고 있지..

[File System] NTFS (10) - 클러스터와 $Bitmap

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS에서 '클러스터'와 '$Bitmap'에 대해 알아보겠습니다. 모두 화이팅하세요!!! 클러스터 ‘거주형’ 속성은 MFT 엔트리에 내용을 저장합니다. ‘비거주형’ 속성은 클러스터에 내용을 저장합니다. NTFS 파일시스템의 첫 번째 섹터는 클러스터 0번 입니다. 섹터주소 변환 방법 : FAT보다 훨씬 간단합니다. SECTOR = CLUSTER * sectors_per_cluster $Boot는 항상 첫 번째 클러스터에만 할당합니다. $Bitmap 파일 MFT 엔트리 6번입니다. $DATA 속성에서 파일시스템 내 각 클러스터의 할당여부를 1개의 비트로 표현합니다 즉, 할당되어 있다면 해당 Bit가 1로 설정, 반대의 경우 0으로 설정됩니다. 비교 개념 $MFT..

[File System] NTFS (09) - $Volume과 $AttrDef

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS의 $Volume 파일과 $AttrDef 파일에 대해 알아 보겠습니다. 모두 화이팅 하세요!!! $Volume 파일 MFT 엔트리 3번 입니다. 볼륨 레이블과 NFTS의 버전 정보를 갖습니다. $VOLUME_NAME 볼륨의 이름을 유니코드로 저장하고 있습니다. $VOLUME_INFORMATION NTFS 버전과 오류 상태를 저장하고 있습니다. $DATA 속성에는 아무런 데이터가 없습니다. (크기가 0) $AttrDef 파일 MFT 엔트리 4번 입니다. 볼륨에서 사용되는 모든 속성에 대한 정보(각각의 속성에 대한 Type ID, 이름 등)가 기록되어 있습니다. $AttrDef Entry에서 Flag(Offset 140 ~ 143)에는 해당 속성의 저장 형..

[File System] NTFS (08) - $MFTMirr와 $Boot

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS에서 $MFTMirr과 $Boot에 대해 알아보겠습니다. 모두 화이팅 하세요!!! $MFTMirr 파일 MFT Entry는 중요한 데이터이기 때문에 복사본(파일시스템의 중간 지점)을 둡니다. MFT Entry 1번 입니다. 비거주 속성입니다. $DATA 속성에 4개의 MFT Entry (0번 ~ 3번 Entry, $MFT, $MFTMirr, $LogFile, $Volume)에 대한 복사본을 갖고 있습니다. MFT Entry의 내용만 백업하여 두기 때문에 MFT Entry의 내용만 복구 가능합니다. $Boot 파일 MFT 엔트리 7번 입니다. 비거주 속성입니다. $DATA 속성은 부트섹터의 고정된 위치(0번 섹터)를 가리킵니다. MS는 일반적으로 $Boo..

[File System] NTFS (07) - $MFT

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS에서 $MFT에 대해 알아 보겠습니다. 모두 화이팅 하세요!!! $MFT 파일 모든 파일과 디렉토리에 관한 엔트리를 갖고 있습니다. 일반 파일을 찾기 위해서는 $MFT를 해석해야 합니다. MFT의 시작 주소는 부트섹터에 기록됩니다. 엔트리 0번 MFT의 전체 레이아웃을 보여줍니다.. 즉, $MFT 자신에 대한 정보를 보여 주는 셈입니다. $DATA 속성에 자신이 사용하는 클러스터에 대한 정보를 갖고 있습니다. $BITMAP 속성에 MFT 엔트리의 할당 상태를 기록합니다. $MFT 파일은 작게 시작하여, 파일 및 디렉토리가 늘어나면서 점점 더 커집니다. MFT Zone MFT는 매우 중요한 데이터이기 때문에 클러스터 여기저기에 산재(조각)해 있으면 안됩니..

[File System] NTFS (06) - 인덱스

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS의 Index에 대해 알아 보겠습니다. 모두 화이팅 하세요!!! 인덱스 인덱스는 정렬된 순서대로 저장된 속성(예:$FILE_NAME)의 모음 입니다. 인덱스 데이터 구조를 사용하는 가장 대표적인 것은 바로 ‘디렉토리’ 입니다. 인덱스를 사용하면 원하는 자료를 빠르게 검색할 수 있습니다. B-Trees NTFS는 Binary_Tree구조를 약간 변형시켜 B-Tree라는 이름을 사용합니다. 아래의 예에서, 전수조사를 하는 경우 모두 5번을 비교하여야 하지만, 트리 구조를 이용하면 3번의 비교만으로 원하는 값을 찾을 수 있게 됩니다. 이것은 검색 속도를 빠르게 합니다. NFTS에서의 B-Tree 구조에서는 각 노드당 2개 이상의 자식을 둡니다. NTFS에서는..

[File System] NTFS (05) - Sparse 속성과 압축 속성

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS의 Sparse 속성과 압축 속성에 대해 알아 보겠습니다. 모두 화이팅하세요 !!! Sparse 속성 비거주형 $DATA 속성에만 적용됩니다. 외부 클러스터에 데이터를 저장할려고 할 때, 어떤 클러스터에 저장할 데이터가 모두 ‘0’인 경우, 해당 클러스터가 ‘0’으로 채워져 있다는 사실만을 기록하고, 실제로는 저장장치에 클러스터를 할당하지 않습니다. 즉 Cluster runs에 ‘크기’만 있고, ‘시작 위치’는 없습니다. 압축 속성 비거주형 $DATA 속성에만 적용됩니다. 파일시스템 수준에서 일어나는 압축입니다. 즉, 사용자나 응용프로그램은 해당 파일이 압축되었는지 알 수 없으며, 파일에 읽기/쓰기 작업이 이루어지는 경우, NTFS는 스스로 압축을 해제..

[File System] NTFS (04) - 기본 속성

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS의 기본 속성 정보에 대해 알아 보겠습니다. 모두 화이팅 하세요!!! 기본 속성 유형들 각 속성의 유형은 ‘번호’로 구별됩니다. $AttrDef 파일시스템 메타데이터 파일에 각 속성의 유형에 대한 명세가 있습니다. 각 속성은 ‘번호’ 이외에도 ‘이름’을 갖고 있습니다. $로 시작하고, 모두 대문자로 구성됩니다. 속성유형과 식별자 전부가 모든 파일에 존재하는 것은 아닙니다. 번호 이름 설명 16 $STANDARD_INFORMATION 접근/수정/생성시간, 소유자, 보안 아이디 등 32 $ATTRIBUTE_LIST 다른 속성의 위치 정보를 저장하고 있는 목록 48 $FILE_NAME 파일이름(유니코드), 접근/수정/생성시간 64 $VOLUME_VERSION..

[File System] NTFS (03) - MFT 엔트리의 속성

안녕하세요. 도깬리 포렌식스 입니다. 오늘은 NTFS에서 MFT 엔트리의 속성에 대하여 알아 보겠습니다. 모두 화이팅 하세요!!! MFT 엔트리 속성 개념 MFT 엔트리에는 내부 구조체(속성, Attributes)가 존재합니다. 속성에는 여러 가지 유형이 있고, 각각 자신만의 내부 구조체를 갖고 있습니다. 예) 파일이름을 위한 속성, 날짜와 시간에 대한 속성, 내용에 대한 속성 FAT과의 비교 - FAT : 파일의 내용을 읽고 쓰기 위한 것 입니다. - NTFS : 속성을 읽고 쓰기 위한 것 입니다. MFT Entry와의 비교 - MFT Entry : 비어 있는 같은 모양의 큰 상자 - Attributes : 물건이 들어 있는 작은 상자 (물건을 효율적으로 저장할 수 있는 모양을 갖추고 있습니다. 모자는..