안녕하세요. 도깬리 포렌식스 입니다.
오늘은 NTFS의 Index에 대해 알아 보겠습니다. 모두 화이팅 하세요!!!
인덱스
인덱스는 정렬된 순서대로 저장된 속성(예:$FILE_NAME)의 모음 입니다.
인덱스 데이터 구조를 사용하는 가장 대표적인 것은 바로 ‘디렉토리’ 입니다.
인덱스를 사용하면 원하는 자료를 빠르게 검색할 수 있습니다.
B-Trees
NTFS는 Binary_Tree구조를 약간 변형시켜 B-Tree라는 이름을 사용합니다.
아래의 예에서, 전수조사를 하는 경우 모두 5번을 비교하여야 하지만, 트리 구조를 이용하면 3번의 비교만으로 원하는 값을 찾을 수 있게 됩니다.
이것은 검색 속도를 빠르게 합니다.
NFTS에서의 B-Tree 구조에서는 각 노드당 2개 이상의 자식을 둡니다.
NTFS에서는 각 노드를 ‘Index Node’라고 부릅니다.
Index Node는 마지막에 끝을 나타내는 노드(End of Node)를 갖습니다.
NTFS에서 Index Node가 포함할 수 있는 자식노드의 수는 n + 1개 입니다.
하위 디렉토리는 다시 각자의 독립적인 B-Tree를 만듭니다.
NTFS의 인덱스 노드
Index Node Header와 Index Entry로 나뉜니다.
각 노드의 마지막 Entry에는 End of Node가 옵니다.
인덱스 노드는 반드시 $INDEX_ROOT 또는 $INDEX_ALLOCATION에 속해 있어야 합니다.
NTFS의 인덱스 속성
$INDEX_ROOT 속성
항상 ‘거주형’이고, 한 개의 노드를 갖습니다.
$INDEX_ALLOCATION 속성
‘비거주형’이고, 많은 노드를 포함할 수 있습니다.
4KB의 고정된 크기(인덱스 레코드)의 노드를 외부 클러스터에 저장합니다.
$BITMAP 속성
외부 클러스터에 저장되는 인덱스 레코드의 할당 상태를 보여 줍니다.
감사합니다. 오늘도 즐거운 하루 되세요.
"좋아요"와 "구독하기"는 힘이 됩니다.
참고문서 : File System Forensic Analysis (Brian Carrier)
'File System Forensics' 카테고리의 다른 글
[File System] NTFS (08) - $MFTMirr와 $Boot (0) | 2023.07.07 |
---|---|
[File System] NTFS (07) - $MFT (0) | 2023.07.05 |
[File System] NTFS (05) - Sparse 속성과 압축 속성 (0) | 2023.06.30 |
[File System] NTFS (04) - 기본 속성 (0) | 2023.06.27 |
[File System] NTFS (03) - MFT 엔트리의 속성 (0) | 2023.06.25 |