Windows Artifact[1] - $MFT(1)






이번 포스팅에서는 윈도우 시스템에 가장 기본으로 남는 Artifact인 $MFT에 대해서 한번 알아 보도록 하겠습니다. $MFT에 대한 내용은 알고 넘어가야 하는 내용들이 많으므로 여러번에 나눠 포스팅을 하도록 하겠습니다.

----------------------------------------------------------------------------------------------------------------------------------------


1. $MFT

윈도우 사용자라면 기본적으로 사용이 되는 NTFS 파일 시스템을 사용함에있어 파일에 대한 메타데이터(파일 정보, 위치 등) 을 담고 있는 파일이 $MFT입니다. 포렌식을 수행함에 있어 $MFT를 분석하면 파일에 대한 많은 정보를 수집할 수 있습니다. 그렇기 때문에 본 포스팅에서는 $MFT에 대한 기본 구조를 한번 알아보도록 하겠습니다.


  1) $MFT 영역

MFT 영역은 MFT 엔트리들의 집합으로서 MFT Record 또는 File Record라고 불리기도 합니다. NTFS 내에 존재하는 모든 파일 또는 디렉터리는 파일 당 하나 이상의 MFT 엔트리가 할당됩니다 MFT엔트리는 1024 바이트의 크기로 각 파일 및 디렉터리의 위치, 시간정보, 파일이름, 크기 등의 속성 정보를 담고 있습니다


[그림 1] MFT 영역 구조



  2) $MFT 엔트리 구조

MFT 엔트리는 [그림 2와] 같이 맨 앞부분에 Entry Header가 존재하며 ,이어서 Fixup Array 그리고 해당하는 파일의 특성에 따라 여러 개의 속성(Attributes)들이 따라오며 속성의 끝을 나타내는 EndMarker로 이루어져 있는 총 1024바이트의 구조를 지닙니다. 속성은 MFT Entry의 공간이 부족하다면 다른 MFT Entry를 이용해서 계속 저장 됩니다. 어떤 파일의 정보를 담는 MFT Entry가 총 3개라면 각각의 MFT Entry 마지막 속성 뒤에는 전부 동일하게 Entry Marker가 존재하게 됩니다.


[그림 2] MFT 엔트리 구조 




[표 1] MFT 엔트리 구조 분석



    (1) MFT Entry Header

MFT 엔트리 헤더는 모든 MFT 엔트리의 앞 부분에 위치하는 48 바이트 크기의 MFT 엔트리 메타 정보입니다


[그림 3] MFT Entry Header




[표 2] MFT Entry Header 분석




    (2) Fixup Array

Fixup ArrayNTFS에서 신뢰성을 높이기 위한 방안으로 NTFS를 구성하는 데이터가 하나 이상의 섹터를 사용할 경우 섹터의 마지막 2바이트 값을 별도로 저장 후 Fixup 시그니쳐 2바이트로 대처됩니다. 만약, 섹터의 내용이 비정상적으로 변경될 경우, 해당 데이터를 해석하기 전 Fixup Array값이 변경되었는지 여부를 확인하여 오류를 사전에 찾아낼 수 있습니다.


[그림 4] Fixup Array



[표 3] Fixup Array 분석



    (3) Attribute(속성)

NTFS는 기본적으로 17개의 속성을 가지고 있습니다다음은 17개의 속성들을 나열한 것입니다.

[표 4] Attribute(속성) 분석


위의 속성들은 각 파일의 특성에 따라 MFT 엔트리 헤더, Fixup 배열 이후에 연속적으로 존재합니다. 일반적인 파일의 경우에는 위의 많은 속성 중 파일의 시간 및 소유자 정보가 담긴 $10 그리고 파일이름 및 시간정보가 저장된 $30 마지막으로 파일의 내용이 저장된 $80 속성만 존재하는데, 이는 즉 이 3가지 속성이 파일분석에 가장 중요한 속성들이며 이 3가지 속성만 분석하여도 대부분의 파일을 분석할 수 있다는 사실을 알 수 있습니다.



  3) $MFT 분석

위에서 언급한 파일 분석에서 필요한 3가지 속성($10, $30, $80)의 상세 내용 분석을 통해 각 속성이 파일 분석 시 어떤 정보를 제공하는지 $MFT 파일을 이용하여 확인해 보도록 하겠습니다. 여기서 $MFTMFT 영역에 대한 MFT 엔트리로서. NTFSMFT 영역 자체도 하나의 파일로 보고 있기 때문에 $MFTMFT 영역 파일에 대한 MFT 엔트리입니다. $MFT에는 MFT 영역의 크기, 위치, 시간 정보 등이 저장 됩니다.

  

[그림 5] MFT 엔트리 분석





지금까지 $MFT의 구조에 대해 살펴 보았습니다. 다음 포스팅에서는 $MFT를 구성하는 속성 중 메타데이터의 기본이 되는 $STANDARD_INFORMATION($10)에 대해 살펴 보겠습니다.








'Digital Forensic > Windows-Forensic' 카테고리의 다른 글

Windows Artifact[1] - $MFT(3)  (0) 2018.03.12
Windows Artifact[1] - $MFT(2)  (0) 2018.03.08
Window Web browser-Analysis[3]  (0) 2018.01.04
Window Web browser-Analysis[2]  (0) 2018.01.01
Window Web browser-Analysis[1]  (0) 2017.12.28

이 글을 공유하기

댓글