목록포렌식 (54)
Piki's Play
-> 이전 절에서는 MFT엔트리와 속성 헤더를 처리하는 방법을 간단히 설명하였다. 이 절에서는 각각 다른 속성 내용 타입을 어떻게 처리하는지 설명해보자 ▶ $STANDARD_INFORMATION 속성 - 타입 식별자 16인 $STANDARD_INFORMATION 속성은 항상 거주속성이고, 파일이나 디렉토리의 기본 메타데이터를 포함한다. 모든 파일과 디렉토리에 존재하고 가장 낮은 타입 식별자를 갖기 때문에 일반적으로 첫번재 속성이다. - 4개의 시간값들은 1601년 1월 1일 UTC부터 100나노 단위로 저장이된다. 같은 시간 필드들이 $FILE_NAME 속성에도 있지만 윈도우가 파일 속성에서 보여주는 시간값은 $STANDARD_INFORMATION 정보이고, 업데이트 되는 정보도 마찬가지이다. ※ 아래의..
- 이 장은 NTFS 3번째 장으로서 데이터 구조체에 대해 설명한다. 앞에서는 NTFS의 기본 개념과 어떻게 분석해야 하는지 설명했다. - 먼저 기본 요소들의 데이터 구조체와 특정 속성들과 인덱스 타입들을 자세히 분석하고, 마지막으로 메타데이터 파일들을 다룬다. - NTFS에 대한 공식 명세는 없다. 13.1 기본 개념 - 이 절에서는 NTFS의 기본 데이터 구조체의 개념을 기술한다. 첫 번째 하위 절에서는 데이터 구조체의 신뢰성을 제공하는 구조체의 설계특징을 분석하고, 다음은 MFT엔트리와 속성 헤더의 데이터 구조체에 대해 설명한다. ▶ Fixup 값 - NTFS에는 신뢰성을 향상 시키기위해 사용하는 저장기술이 있다. NTFS는 한 섹터가 넘는 길이를 갖는 데이터 구조체와 fixup 결합한다. fixu..
12.5 응용프로그램 범주 - NTFS는 많은 응용프로그램 수준의 기능을 지원하는 유일한 파일시스템이다. 이 기능들은 파일시스템에서 꼭 필요하지는 않지만 응용프로그램이나 운영체제들이 효율적으로 운영되기 위해서 필요하다. 이 절에서는 디스크 할당, 로깅, 변경 저널링에 대해 기술하겠다. 그 데이터 구조체들은 13장에서 설명한다. 이 절에서는 기능의 응용프로그램 수준의 필수 데이터만을 언급하도록 하겠다. ▶ 디스크 할당 - NTFS는 디스크 공간 할당을 지원한다. 관리자는 각 사용자별로 사용할 수 있는 공간을 제한하는 할당을 설정할 수 있다. 할당 정보 일부는 파일시스템 데이터로 저장되고 다른 데이터는 레지스트리 같은 응용프로그램 수준의 파일들에 저장된다. NTFS 3.0 이전 버전에서는 MFT엔트리 9에 ..
12.4 파일이름 범주 - 파일이름 범주는 파일이름과 내용을 연결하는데 사용되는 데이터를 포함한다. 이제까지 NFTS의 저장밥법과 어떤 메타데이터가 저장되는지 알아보았다. 이 절에서는 파일 이름이 어떻게 연결되어 있는지 자세히 알아보자. NTFS는 인덱스를 사용해 디렉토리를 구성한다. 트리는 한개 이상의 노드를 포함하고 노드는 $INDEX_ROOT와 $INDEX_ALLOCATION 속성에 저장이 된다. $INDEX_ROOT 속성은 항상 트리의 루트이고 $INDEX_ALLOCATION은 다른 노드들을 저장하는데 사요오디는 인덱스 레코드들을 포함한다. $BITMAP 속성은 레코드들의 할당상태를 표현한다. 트리의 각 노드들은 인덱스 엔트리들의 목록을 포함한다. ▶ 디렉토리 인덱스 - NTFS 디렉토리는 헤더,..
12.3 메타데이터 범주 - 메타데이터 범주는 파일이나 디렉토리를 설명하는 데이터를 포함한다. 모든 메타데이터는 속성들 중 하나에 저장이 된다. 따라서 파일 속성의 세부 내용을 확인한다. 보통 파일은 $STANDARD_INFORMATION, $FILE_NAME, $DATA 속성을 갖는다. 디렉토리에서 사용하는 속성과 인덱스들은 '파일 이름 범주'에서 기술하도록 하겠다. ※ 다음 그림은 전형적인 표준 속성을 갖는 파일을 보여준다. ▶ $STANDARD_INFOMATION 속성 - $STANDARD_INFOMATION 속성은 모든 파일, 디렉토리에 존재하고 핵심적인 메타데이터를 포함한다. 이 속성에는 시간, 날짜스탬프 세트와 소유권, 보안, 할당정책이 있다. 이 속성은 필수는 아니지만 마이크로소프트가 제공하..
▶ 클러스터 - NTFS 파일은 속성의 집합이다. 속성 중 일부는 거주로 MFT엔트리에 저장하고 일부는 비거주이다. 둘다 클러스터에 내용을 저장한다. 한 클러스터는 연속된 섹터의 그룹이며 클러스터 당 섹터 수는 2의 거듭제곱(1,2,4,8,16...) 이다. - 각 클러스터는 0으로 시작하는 한개의 주소를 갖는다. 클러스터 0은 파일시스템의 첫 번째 섹터이고, 이것은 FAT로 계산하는 방법보다 훨씬 덜 복잡하다. NTFS에서 클러스터를 섹터주소로 변환하기 위해서는 한 클러스터에 섹터수로 클러스터 주소를 나눈다. SECTOR = CLUSTER * sector_per_cluster - NTFS에서 클러스터들은 어떠한 파일이나 속성에 할당 될 수 있다. 그러나 $Boot는 항상 첫 클러스터에만 할당이 된다. ..
-> 이 장에서는 5가지 분류모델을 이용한 NTFS 분석기술과 고려사항을 논의하도록 하겠다. 13장에서는 "NTFS 데이터 구조체"를 다룬다. NTFS는 모든것이 한개의 파일이기 때문에 무척 어렵다. 그래서 메타데이터 범주의 속성을 알아야 파일시스템 범주의 파일시스템 메타데이터를 볼 수 있다. 12.1 파일시스템 범주 - 파일시스템 범주는 파일시스템의 전반적인 설명데이터를 포함한다. 이 데이터는 특정 사용자의 파일이 아니다. NTFS에서는 이러한 데이터를 파일시스템 메타 데이터 파일에서 저장하고, 루트 디렉토리에 이 파일 이름들이 있다. 이러한 데이터들은 파일 시스템 어디든 위치할 수 있다. 다만 부트코드는 예외이다. - 이런 파일들의 흥미로운 한 가지 특징은 일반 파일들과 비슷하게 날짜와 시간 스탬프들..
11.5 다른 속성 개념들 - 이전 절에서 모든 NTFS 속성들에 적용할 수 있는 기본적인 개념들을 확인해 보았다. 모든 속성이 기본적이지는 않기 때문에 이번 절에서는 깊이있는 개념들을 살펴보자. 특별한 파일이 아주 많은 속성을 가질 때 어떤 일이 일어나는지 알아보고 그 다음에는 속성들의 내용을 압축하고 암호화하는 방법들을 알아보자. ▶ 기준 MFT엔트리 - 한 파일의 속성은 65,536개(16비트 식별자)가 있을 수 있고 속성 헤더를 모두 저장하기 위해 한 개 이상의 MFT엔트리가 필요할 수 있다. 추가적인 MFT엔트리들이 한 파일에 할당될 때, 그 원본은 기준 MFT엔트리가 된다. 비기준 엔트리는 그것들의 필드에 기준 주소를 가질것이다. - 기준 MFT엔드리에는 $ATTRIBUTE_LIST타입 속성이..