본문 바로가기
정보보안/Forensic

[Forensic] 윈도우 파일 메타데이터(MFT, MAC 시간)

by Murl0c 2021. 6. 7.
반응형

1. 파일 메타데이터

파일은 두 종류의 메타데이터를 포함하는데, 이것은 애플리케이션이 파일을 인지하고 실행할 때 사용된다. 내부 메타데이터는 파일 안에 포함돼 있으며, 바이너리 스트링이나 텍스트 스트링으로 구성돼 있다. 보통 메타데이터를 구성하고 있는 세가지는 MFT 속성, 파일 헤더, 매직 넘버이다.

 

MFT 속성

현재 윈도우에서 사용되는 NTFS 파일 시스템은 메타데이터 파일에 파일 관련 정보를 갖고 있다. 메타데이터 파일은 디스크가 NTFS로 포맷될 때 생성된다. 그 후 모든 파일은 하나 이상의 MFT 레코드로 드라이브에 복사된다. MFT 레코드는 운영체제 부팅 정보에 관한 속성을 포함한다. 다음 표는 NTFS에서 사용되는 MFT 속성에 할당된 16진수를 보여준다.

속성 이름 16진수 값
사용하지 않음 (Unused) 0x00
표준 정보 0 x10
파일명 0x30
오븍젝트 ID 0x40
보안 기술자 0x50
볼륨(Volume)명 0x60
볼륨 정보 0x70
데이터 0x80
최상위 인덱스 0x90
인덱스 할당 0xA0
비트맵 0xB0
Reparse Point 0xC0
EA정보 0xD0
EA 0xE0
속성 집합 0xF0
Logged Utility Stream 0x100
사용자 정의 기본 속성 0xffffffff

 

이처럼 다양한 속성을 알아야 하는 이유는 일부 유틸리티가 파일 데이터를 찾을 때 이 속성을 키로 사용하기 때문이다. 중요한 점은 파일의 속성으로 콘텐츠가 결정된다는 점이다. 파일 콘텐츠는 데이터 속성으로 0x80 16진수를 수반한다.

 

그리고 MFT 레코드는 더 이상 존재하지 않지만 이전에 있었던 파일을 찾을 때 검사하는 곳이다. 파일은 하드디스크에 더 이상 존재하지 않을지라도 $MFT 메타파일 문자 검색이 가능하다.

 

파일 헤더

파일을 읽을 때 헤더는 데이터의 첫 번째 줄을 읽어 이름을 얻는다. 애플리케이션은 처음으로 파일을 요청할 때 파일 헤더와 EOF 마커를 읽는다. 또한 헤더는 슬랙 공간 또는 저장 매체의 할당되지 않은 공간에서 파일을 얻을 수 잇는 시작 지점을 알려준다.

*ASCII 텍스트 파일(notepad)은 내부 메타데이터를 갖고 있지 않다.

 

매직 넘버

매직 넘버는 헤더를 구조화하기 위한 다른 방법에 불과하다. 매직 넘버를 갖고 있는 파일은 타입을 증명하기 위해 파일 처음 부분의 몇 바이트에 16진수 코드로 구성된 파일 시그니처를 붙인다. 매지 넘버는 리눅스와 유닉스 시스템에서 파생됐다. 많은 프로그램은 파일 타입을 증명하기 위한 첫 번째 단계로 매직 넘버를 사용한다. 그러나 파일 헤더를 보면 아스키 텍스트 파일, HTML과 소스코드가 저장된 특정 파일들은 매직 넘버를 포함하고 있지 않다.

 

2. 메타데이터의 이해

운영체제는 다양한 저장소에 파일을 저장한다. NTFS 파일 시스템은 일련의 메타데이터 파일을 이용한다. 각 파일은 파일을 정의하는 파일 안에 정보를 정의한다. 또한 많은 애플리케이션은 메타데이터를 포함한 파일을 분리해 유지한다.

 

- 시스템 메타데이터 : 파일 시스템 또는 문서 관리 시스템에 생성된 정보

- 중요한 메타데이터 : 문서 변경(사항)을 정의한 정보

- 내장형 메타데이터 : 파일을 생성하거나 편집한 애플리케이션에 내장된 정보

 

중요한 메타데이터는 다른 부분들 중 어느 한쪽에 포함될 수 있다. 수사관에게 중요한 다른 메타데이터의 형식은 외장형 메타데이터다. 많은 문서와 이미지 관리 소프트웨어 솔루션은 데이터베이스를 이용해 방대한 양의 정보를 유지한다. 인덱싱과 파일 변경, 그리고 트랙킹과 감사 정보는 애플리케이션이 갖고 있는 분리된 파일로 저장된다.

 

시스템 메타데이터

모든 파일 시스템은 그들이 제어하는 볼륨에 저장된 파일과 디렉터리의 많은 정보를 유지한다. 사실 파일 시스템은 운영체제가 제어하는 다양한 매체의 파일을 관리하기 위해 사용되는 메타데이터다. 파일 할당 요소를 드라이브와 매핑하는 것과 같은 물리적인 측면이 있다.

 

디지털 수사 과정에서 OS 메타데이터가 유용한 부분은 삭제된 문서의 존재를 입증하고 문서의 타임라인을 검색할 때다. OS 메타데이터는 파일의 종류와 그 외의 파일 콘텐츠를 확인하는 데 도움이 되지 않는다. 여기에서 알 수 있는 가장 중요한 정보는 수정/접근/생성(MAC) 데이터다. NTFS 형태의 디스크는 수정된 항목(EM)의 추가 적인 속성을 제공한다. EM은 NTFS 메타파일의 MFT 개체가 수정된 마지막 시간을 기록한다. MAC 정보는 이벤트의 타임라인을 생성하는 가치가 있기 때문에 데이터를 분석하고 해석하는 데 주의가 필요하다.

 

파일 시스템에 저장된 모든 파일은 생성된 시간과 날짜, 마지막으로 접근한 시간과 마지막으로 수정된 시간이 찍혀있다. 컴퓨터에서 발견된 다른 정보와 함께 사용하면 사용자가 마지막으로 수정한 파일이 무엇인지, 그리고 누가 만들었는지를 확인하는 것이 가능하다.

 

생성 시간(Create Time)

파일의 생성 속성은 파일이 파일 시스템에 처음 저장되는 시간에 생성된다. 반드시 파일이 본래 저장된 날짜가 아니라는 것을 기억해야 한다. 보통 날짜를 만드는 데 두 가지가 영향을 미친다. 사용자가 하나의 파일을 다른 곳으로 복사한다면 두 개의 파일은 동등하지만 각자 다른 생성 날짜를 가진다. 파일 원본은 디스크에 처음 저장되는 날짜를 보여줄 것익고 새로운 복사본은 목표 드라이브에 처음 저장된 날짜와 시간을 보여주는 생성 속성을 가진다.

생성 속성의 타임스탬프가 수정되는 다른 방법은 파일 시스템 유틸리티를 통해 사용자가 의도적으로 속성을 수정하는 것이다. 이것이 가능한 일부 상용/셰여 애플리케이션이 있다. 그러므로 생성 속성 자체만으로 모든 것을 증명하지는 못한다. 오직 다른 사실을 뒷받침하기 위한 보층 증거만 될 수 있다.

 

접근 시간(Access Time)

이 속성은 파일에서 가장 변덕스러운 속성이다. 사용자가 파일을 열고, 복사하고, 또는 백업하는 모든 시간에 대해 파일 시스템은 이 속성을 수정한다. 실행 파일이 실행될 때마다 접근 시간은 수정된다. 소프트웨어를 스캔하는 백신의 실행 조차도 접근 타임스탬프를 변경하는 것으로 알려져 있다. 단지 탐색기에서 파일에 오른쪽 버튼을 클릭하고 속성을 선택하는 것도 접근 시간 스탬프를 변경한다. 수사관은 파일 내에서 어떠한 행위가 일어났는지 정확하게 알아낼 방법이 없다. 하지만 적절한 유틸리티를 사용하면 문서가 접근된 10시간 이전을 알아내는 것이 가능하다.

 

수정 시간(Modification Time)

수정 시간은 파일 내에 포함된 시간/날짜 속성 중 가장 가치가 있다. 이 정보는 파일의 콘텐츠가 마지막으로 언제 교체되었는지 말해준다. 파일의 해시 값을 변경시키는 것이 가능한 파일의 콘텐츠를 변경하면 이 값을 다시 맞추는 것이 가능하다. 파일을 이동하거나 복사하는 행동도 수정 시간에 영향을 미치지 않는다. 그러나 이 행동은 파일을 포함하는 폴더 속성의 영향을 미친다.

 

예를 들어 사용자가 C:\Documents에서 C:\User\Documents로 NOVEL.DOC를 복사하면 NOVEL.DOC의 속성은 다음과 같이 변한다.

 

원본 파일 : C:\Documents\NOVEL.DOC의 생성 시간과 수정 시간은 동일하고 접근 시간은 변경된다.

원본 파일 디렉토리 : C:\Documents의 생성 시간과 수정 시간은 동일하고 접근 시간은 변경된다.

복사 파일 : C:\USER\Documnets\NOVEL.DOC의 생성 시간과 수정 시간은 변경되고 접근 시간은 변경되지 않는다.

복사 파일 디렉토리 : C:\USER\Documents\Novel.doc의 접근 시간과 수정 시간은 변경되고 생성 시간은 변경되지 않는다.

 

반응형