swuforce

[디지털포렌식개론]8장 4-6절

범호야 2024. 11. 13. 18:54

4. NTFS[1]

1. NTFS 소개 

NTFS(New Technology File System)는 윈도우 NT부터 사용되기 시작한 파일 시스템으로 FAT 파일 시스템과는 근본적으로 다른 개념으로 개발되었으며 운영체제의 변화에 따라 많은 발전을 거듭했다.

운영체제와 NTFS 버전

1. USN 저널(Update Sequence Number Journal 또는 Change Journal)

USN 저널은 NTFS를 사용하는 볼륨에서 파일의 변경 내용을 기록하는 로그이다. 특정 작업을 하던 중 예상치 모한 시스템 오류가 발생하는 경우, USN 저널은 변경되는 모든 부분을 기록하고 있다가 시스템이 재부팅될 때 완료하지 못한 작업을 복원(Rollback)한다. 

2. ADS(Alternate Data Stream)

NTFS는 파일 이름, 소유자, 시간 정보 등을 속성이라는 스트릠을 통해 표현한다. 데이터 역시 하나의 데이터 스트림으로 표현된다. 일반적으로 파일 당 하나의 데이터 스트림을 가지는데, ADS는 파일 당 하나 이상의 데이터 스트림을 저장할 수 있도록 지원한다. 추가된 ADS는 'filename : streamname'과 같이 표기한다. 이렇게 추가된 ADS는 윈도우 탐색기를 통해 확인할 수 없을 뿐만 아니라 파일 크기 또한 원본 파일에 포함되지 않는다. 

이러한 특성으로 인해 ADS는 정보 은닉 용도로 사용될 수 있다. 따라서 디지털 포렌식 조사를 할 때, ADS가 있는 경우 신중하게 살펴봐야 한다. 

그리고 ADS는 NTFS에서만 지원하기 때문에 네트워크나 USB를 통해 다른 파일 시스템으로 복사하거나 e-mail 첨부와 같은 작업을 수행할 경우에는 복제되지 않는다. 

3. Sparse 파일

Sparse파일은 파일의 데이터가 '0'일 경우 실제 데이터를 기록하지 않고 크기 정보만 유지하는 파일을 의미한다. 이는 데이터베이스에서 많이 사용되었던 것으로 공간을 절약하는데 많은 도움을 준다. 

4. 파일 압축

NTFS는 LZ77 알고리즘을 변형한 압축 방식을 지원한다. 

5. EFS(Encrypting File System)

EFS는 NTFS 상의 파일 및 디렉터리를 암호화 하는 기능으로 CryptoAPI와 EFS File System Run-Time Library를 이용해 구현되어 있다. 빠른 암호화와 복호화를 위해 FEK(File Encryption Key)를 통한 대칭키 방식으로 암호화한다. 

암호화 기능은 포렌식 분석에 걸림돌로 작용하기 때문에 데이터를 획득할 때, EFS가 존재하는 경우 해독할 수 있는 수단을 확보해야 한다. 

6. VSS(Volume Shadow Copy Service)

VSS는 현재 윈도우 Vista에서 사용되고 있는 기능이다. 이 기능은 새롭게 덮여 쓰인 파일 및 디렉터리에 대해 백업본을 유지하는 기능이다. 이렇게 저장된 백업본은 시스템을 재부팅할 때 시스템 체크 과정에서 USN 저널과 함께 좀 더 안전한 복구를 할 수 있도록 도와준다. 

7. Quotas

다중 사용자를 지원하는 환경에서 각 사용자의 디스크 사용량을 제한할 수 있는 쿼터(Quota)기능을 지원한다. 

8. 유니코드 지원

다국어 지원을 위해 유니코드를 사용한다. 파일, 디렉터리, 볼륨 이름을 지정할 때에도 유니코드를 사용한다. 

9. 동적 배드 클러스터 재할당

배드 섹터가 발생한 클러스터는 사용할 수 없다. 동적 배드 클러스터 재할당 기법은 배드 섹터가 발생한 클러스터에 있는 정상 데이터를 자동으로 새롭게 할당한 클러스터에 복사하는 기법이다. 배드 섹터가 발생한 클러스터는 플래그를 통하여 더 이상 사용되지 않도록 한다. 

2. NTFS 구조

NTFS 구조

VBR(Volume Boot Record)영역이 가장 앞에 위치하고 있어서 MFT 영역과 데이터 영역이 있다. VBR영역은 부트 섹터와 추가적인 부트 코드가 저장되는 부분이다. MFT 영역은 파일과 디렉터리를 관리하기 위한 MFT Entry의 집합체이다. FAT 파일시스템에서는 FAT 영역의 크기가 데이터 영역의 클러스터 수에 따라 정해지기 때문에 파일 시스템을 생성할 때에 고정된 FAT 공간을 할당할 수 있다. 하지만 MFT 영역에 들어가는 MFT Entry는 생성될 파일의 수를 미리 예측하기 어렵기 때문에 NTFS 영역에 들어가는 MFT 영역은 고정된 크기를 가질 수 없다. MFT 영역은 그 자체를 하나의 파일로 고려하기 때문에 데이터 영역과 구별되지 않고 데이터 영역과 혼재되어 있다. 

DATA 영역은 파일의 실제 내용이 저장되는 공간이다. 모든 관련 정보는 MTF Entry의 속성을 통해 관리되므로 특별한 구조 없이 내용만 저장한다. 

3. VBR(Volume Boot Record)

클러스터 크기에 따른 VBR 크기

VBR은 NTFS로 포맷된 드라이브의 가장 앞부분에 위치하며, 부트 섹터와 추가적인 쿠트 코드가 저장되어 있다. VBR의 크기는 고정된 값을 가지지 않고 클러스터의 크기 또는 포맷 소프트웨어에 따라 다소 차이를 보인다. 

VBR의 첫 섹터에는 부트 코드를 포함한 부트 섹터가 위치한다. 따라서 클러스터의 크기가 512 바이트인 경우에는 VBR 크기가 1섹터이므로 VBR 자체가 부트 섹터가 된다. VBR 크기가 1섹터를 넘는 경우 나머지 섹터들은 추가적인 부트 코드의 저장 용도로 사용되거나 NTLDR을 빠르게 로드하기 위해 NTLDR의 위치를 저장하기 위한 용도로 사용된다. 

NTFS 부트 섹터 구조

부트 섹터는 FAT의 부트 섹터와 유사한 구조로 BPB를 포함한다. 위의 부트 섹터 구조는 크게 5가지 부분으로 나눈 것이다. 0-2 바이트에는 부트 코드로 점프하기 위해 점프 명령어가 위치힌디.

3 - 10 바이트에는 OEM ID가 위치하는데 윈도우 시스템에서는 이를 NTFS라고 기록한다. 

11- 83 바이트에는 볼륨의 여러 가지 설정 값을 담고 있는 BPB가 위치한다.

84 - 509 바이트에는 BPB와 NTLDR을 로드하기 위한 부트 코드가 온다. 

510 - 511 바이트에는 부트 섹터 끝을 나타내는 시그니처[0x55AA]가 위치한다. 

4. MFT(Master File Table)

1. MFT Entry

NTFS는 모든 데이터를 파일 형태로 관리한다. 각 파일들의 위치, 시간 정보, 크기 등의 속성 정보는 MFT Entry 라고 불리는 특별한 구조를 가지고 있다. 

예약된 MFT Entry

모든 MFT Entry는 1024 바이트의 고정된 크기이다. 먼저 42 바이트 크기의 고정된 헤더가 나오고 이후에 Fixup 배열과 속성들이 온다. MFT Entry는 Entry의 마지막을 표시하기 위해 End Marker(0xFFFFFFFF)을 사용한다. 속성들의 정보가 많아져 하나 이상의 MFT Entry를 사용할 경우 마지막 MFT Entry의 끝에 End Marker가 표시된다. 

MFT Entry 구조

이 중 특이한 사항은 Fixup 배열을 사용한다는 점이다. Fixup 배열은 저장하고자 하는 데이터가 하나 이상의 섹터를 사용할 경우 각 섹터의 마지막 2바이트를 따로 저장하여 두는 것이다. 

Fixup을 사용하는 데이터 - MFT Entries, INDEX Records, RCRD Records, RSTR Records

2. 속성

MFT Entry 속성

위의 그림은 MFT Entry 내의 속성 구조를 보여준다. Fixup 배열에 이어 여러 개의 속성이 뒤 따라오는 것을 알 수 있다. 파일의 시간 정보, 이름 등은 각각 하나의 속성으로 표현되는데 파일의 종류에 따라 하나 이상의 다양한 속성들이 저장된다. 

속성 리스트

위의 표를 살펴보면 각 속성 앞부분에는 공통적으로 속성 헤더(Attribute Header)가 오는 것을 알 수 있다. 속성 헤더 항목은 해당 속성이 Resident 속성인지 Non-resident 속성인지에 따라 데이터 구조가 조금 다르다. 

5. 파일의 할당, 삭제로 인한 변화 요소

1. 파일 할당

\dir\file1.dat 파일 할당시 NTFS 파일 변화

2. 파일 삭제

\dir\file1.dat 파일 삭제 시 NTFS 파일 변화

5. 디지털 포렌식 관점에서의 파일 시스템 분석

1. 파일 시스템 상의 삭제 파일 복구

FAT 파일 시스템과 NTFS 모두 파일을 삭제할 경우, 파일 시스템의 효율을 위해 파일 내용을 초기화하지 않고 관련 플래그만 변경시킨다. 이러한 특성으로 파일이 삭제되었으나 Directory Entry 또는 MFT entry가 덮여 쓰이지 않았다면 비교적 완벽하게 파일 내용을 복구할 수 있다. 

파일 내용의 복구뿐만 아니라 삭제된 파일의 메타정보를 이용해 시간순으로 정렬할 수 있다. 이러한 파일은 사용자가 의도적으로 파기한 파일일 수 있기 때문에 조사에 많은 도움을 준다. 

FAT 파일 시스템 : 데이터 영역의 루트 디렉터리로부터 모든 하위 디렉터리를 탐색하면서 오프셋0x00의 값이 0xE5를 갖는 Directory Entry를 찾는다. 찾은 Directory Entry에 대응되는 파일이 삭제된 파일이다. 

NTFS : MFT Entry 0번의 $MFT의 $BITMAP 속성에서 0x00 값을 가지는 MFT Entry를 찾는다. 찾은 MFT Entry에 대응되는 파일이 삭제된 파일이다. 

2. 미할당 클러스터 분석(Unallocated Clusters Analysis)

미할당 클러스터는 단순히 파일 시스템에서 사용되지 않는 클러스터가 아닌 메타정보를 통해 접근할 수 없는 클러스터를 의미한다. 파일이 삭제되었을 경우 FAT 파일 시스템은 해당 파일의 Directory Entry가 새로운 파일 정보로 덮여 쓰이기 전까지는 Directory Entry를 통해 파일의 내용에 접근할 수 있다. NTFS 또는 해당 파일의 MFT Entry가 새로운 파일로 덮여 쓰이기 전까지는 MFT Entry 정보를 통해 파일 내용에 접근할 수 있다. 

미할당 클러스터는 Directory Entry나 MFT Entry 정보도 남아 있지 않은 영역을 의미한다. 이 영역에는 포맷하기 이전의 데이터 또는 할당되었다가 삭제된 후 메타 정보가 사라진 데이터가 남아 있다. 미할당 클러스터들은 운영체제의 할당 알고리즘에 영향을 받기는 하지만 매우 오래 전의 데이터까지 남아 있는 경우가 종종 있으므로 포렌식 관점에서 상당히 의미있는 부분이다. 

FAT 파일 시스템 : FAT 영역에서 0x00 값을 갖는 Directory Entry를 검색하여 각 Entry 대응되는 클러스터를 찾는다.

NTFS : MFT Entry 6번의 $Bitmap 파일로부터 할당되지 않은 클러스터를 찾는다. 

3. 슬랙 공간 분석(Slack Spaces Analysis)

슬랙 영역은 운영체제를 통해서는 확인되지 않는 영역이다. 하지만 저수준(Raw-Level)에서는 접근할 수 있기 때문에 의도적으로 데이터를 숨길 수 있다.

슬랙 공간을 판별하는 방법은 

  • 파일 슬랙 : 파일에 할당된 클러스터와 실제 크기의 차이를 계산하여 파일 슬랙이 존재하는지 판별한다. 
  • 파일 시스템 슬랙 : 파일 시스템의 클러스터 크기를 확인하여 파일 시스템 슬랙이 생길 수 있는지 판별한다. 
  • 볼륨 슬랙 : 불륨의 전체 크기와 MBR의 파티션 테이블에 할당된 파티션 크기의 합 사이의 차이를 계산하여 볼륨 슬랙이 존재하는지 판별한다. 

이 있다. 

 

4. 시간 정보 분석(Timestamp Analysis)

대용량의 저장 매체를 분석할 경우에는 많은 시간이 소비되므로 효율적인 사건 분석을 위해서는 사건이 발생한 시점을 중심으로 데이터를 분석하는것이 효율적이다. 따라서 저장 매체에 저장된 파일들의 시간 정보 분석이 중요하다.

FAT 파일 시스템 : 파일들의 Directory Entry 정보를 확인하면 아래 표의 시간 정보를 확인할 수 있다. 

Directory Entry  의 시간 속성

NTFS : 파일들의 MFT Entry에서 $STANDARD_INFORMATION, $FILE_NAME 속성을 확인하면 시간 정보를 확인할 수 있다.

$STANDARD_INFORMATION, $FILE_NAME 의 시간 속성

5. 부트 코드 분석

부트 코드는 MBR과 파일 시스템의 부트 섹터에 존재한다. MBR 부트 코드의 경우 파티션 테이블을 읽어 부팅 가능한 파티션의 부트 섹터를 호출하는 역할을 수행하고, 부트 섹터의 부트 코드는 파일 시스템이 BPB를 활용하여 부트 로더를 호출하는 역할을 수행한다. 만일 부트 코드의 흐름을 변경하여 앞서 언급한 슬랙 영역에 특정 코드를 삽입한 후 특정 코드 수행 후 다시 부트 코드를 수행하도록 변경할 수 있다. 

  • MBR : 부트 코드를 해석하여 부팅 가능한 파티션의 시작위치로 점프하는지 확인한다.
  • 부트 섹터 : 부트 코드를 해석하여 정상적으로 부트 로더를 로더하는지 확인한다. 

6. 미사용 영역 분석

파일 시스템에는 미래를 위해 예약해 둔 영역이나 불필요하게 생성된 영역이 존재한다. 이러한 영역들은 범죄자에 의해 의도적으로 실행 코드나 중요한 내용을 저장하는 용도로 사용될 수 있다. 

1. FAT 파일 시스템

  • MBR과 예약 영역 사이의 미사용 영역
  • 예약 영역에서 사용하지 않는 섹터(0,1,2,6,7,8 번 섹터 제외)
  • FSINFO 구조체 섹터에서 사용되지 않는 영역 

2. NTFS

MBR과 예약 영역 사이의 미사용 영역

VBR에서 부트 섹터를 제외한 나머지 섹터

미래를 위해 예약해 둔 MFT Entry 12-15번 영역

7. 은닉 파일 분석

용의자가 의도적으로 데이터를 은닉하기 위한 목적으로 사용한 가능성이 있는 숨긴 파일들을 분류해 분석하는 방법이 필요하다.

FAT 파일 시스템 : 파일의 Directory Entry 항목 중 오프셋 11의 Attribute가 0x02 값을 가진다.

NTFS : 파일의 MFT Entry 에서 $STANDARD_INFORMATON 속성의 오프셋 32-53의 Flags가 0x002이다.

8. 암호 파일 분석

NTFS는 EFS에 의해 파일 시스템 수준에서 암호화 기능을 제공한다. 용의자에 의해 중요한 파일들이 암호화될 가능성이 있다. 

파일의 MFT Entry에서 $STANDARD_INFORMATION 속성의 오프셋 32~35의 Flags 가 0x4000이다.

9. ADS 파일 분석

NTFS는 하나의 파일이 두 개 이상의 데이터 속석을 가질 수 있는 ADS를 지원한다. ADS 파일들은 운영체제를 통해 확인할 할 수 없는 만큼 데이터를 은닉하기 위한 목적으로 악용될 수 있다. 

NTFS에서 ADS 파일을 확인하는 방법은 

전에 MFT Entry를 대상으로 $DATA 속성을 두 개 이상 가지는 MFT Entry를 조사한다. 

10. 로그 정보 분석

NTFS는 파일 시스템의 변경 사항을 기록하기 위한 목적으로 MFT Entry 2번인 $LogFile 과 MFT Entry 11번인 $ Extend 파일에 포함된 $Extend\$UsnJrnl 파일을 사용한다. 이 파일들의 크기는 제한적이기 때문에 포맷 후 모든 변경 사항을 기록하지는 못하지만 최근 작업을 기준으로 저장되기 때문에 로그 관련 파일을 분석하면 최근에 발생한 파일 시스템의 변화 상태를 추적할 수 있다. 

11. $Boot 파일 분석

NTFS의 MFT Entry 7번인 $Boot 파일의 $DATA 속성에는 부트 섹터의 위치 정보와 부트 코드가 저장되어 있다. 부팅 용도로 사용되지 않는 NTFS에도 해당 속성은 존재하지만 활용되지 않기 때문에 의도적으로 해당 파일의 $DATA 속성에 데이터를 은닉할 수 있다. 또한 $Boot 파일은 크기 제한이 없기 때문에 큰 데이터도 은닉할 수 있다.

12. $BadClus 파일 분석

NTFS 의 MFT Entry 8번인 $BADClus 파일의 용도는 베드 섹터가 발생한 클러스터를 관리하기 위한 목적으로 사용된다. 배드 섹터가 발생한 클러스터이기 때문에 파일 시스템의 할당 알고리즘에 적용받지 않는다. 문제는 정상적인 클러스터의 경우에도 $BadClus에 등록할 수 있다는 점이다. 따라서 정상적인 클러스터를 $BadClus에 등록한 후 해당 영역에 데이터를 은닉할 수 있다. 또한 $BadClus 파일은 크기 제한이 없기 때문에 큰 데이터도 은닉할 수 있다. 

 

6. 파일 복구

파일 복구는 하드웨어를 사용한 복구와 소프트웨어를 사용한 복구로 나눌 수 있다. 소프트웨어를 사용한 복구는 운영체제를 통해 파일을 복구하는 기법으로 다시 파일 시스템 상의 파일 복구와 파일 카빙으로 나눌 수 있다. 

1. 파일 시스템 상의 파일 복구

파일 시스템에 파일이 저장될 때 파일의 이름, 시간 정보, 크기 등의 메타정보가 함께 기록되는데 보통 파일을 삭제할 경우 메타정보와 실제 파일 내용을 초기화하지않고 단순히 메타정보의 특정 플래그만 변경시킨다. 파일 시스템 상의 파일 복구는 이와 같이 삭제된 것으로 표시된 메타정보를 찾아서 해당 파일을 복구하는 기법이다. 

1. FAT 파일 시스템에서 파일 복구

FAT 파일 시스템은 파일의 메타정보를 유지하기 위해 FAT 영역과 Directory Entry를 사용한다. 파일이 삭제될 경우 FAT 영역에서는 파일에 할당되었던 클러스터에 대응되는 FAT Entry가 0x00으로 초기화된다. 그리고 해당 파일의 Directory Entry의 오프셋 0x00의 값이 삭제를 나타내는 0xE5 값으로 변경된다. 이 경우 파일에 할당되었던 클러스터에는 파일의 내용이 그대로 남아 있게 된다. 따라서 해당 클러스터가 새로운 파일로 덮여 써지지 않았다면 삭제 표시된 Directory Entry 에 파일 크기와 시작 클러스터 정보를 이용하여 비교적 쉽게 파일을 복구할 수 있다. 단, Directory Entry에는 시작 클러스터에 대한 정보만 기록되어있기 때문에 파일이 여러 클러스터에 조각나 기록된 경우에는 FAT 영역에서 클러스터 체인을 확인할 수 없어 완벽하게 복구하기 어렵다. 

 

FAT 파일 시스템에서 삭제된 \dir1\file1.dat 파일 복구

2. NTFS에서 삭제된 파일 복구

NTFS에서는 파일의 메타정보를 유지하기 위해 MFT Entry, MFT Entry의 할당상태를 표시하기 위한 $MFT 파일의 $BITMAP 속성, 클러스터의 할당 상태를 표시하기 위한 $Bitmap 파일의 $DATA 속성을 사용한다. 파일이 삭제될 경우 $MFT 파일의 $BITMAP 속성에서 해당 파일을 사용했던 MFT Entry 비트가 0으로 설정되고 $Bitmap 파일의 $DATA 속성에서 해당 파일에 할당되었던 클러스터 비트가 0으로 설정된다. 결국 파일의 MFT Entry와 실제 파일에 할당되었던 클러스터의 내용은 변경되지 않는다. 다라서 해당 파일의 MFT Entry 와 할당되었던 클러스터의 내용이 새로운 파일의 정보로 덮여 써지지 않았다면 비교적 쉽게 파일을 복구할 수 있다. NTFS에서는 FAT 파일 시스템과 다르게 파일의 내용이 Resident 속성일 경우 MFT Entry 상에 저장되므로 완벽하게 복구 가능하다. 또한, Non-resident 속성의 경우에도 Cluster Runs 정보를 통해 완벽하게 복구할 수 있다. 

NTFS에서 삭제된 \dir1\file1.dat 파일 복구

2. 파일 카빙

파일 카빙 기법은 저장 매체의 미할당 영역으로부터 파일을 복구하는 기법으 로 저장 매체의 공간 할당에 따라 연속적인 카빙(continuous carving)기법과 비 연속적인 카빙(fragment recovery carving)기법으로 나눌 수 있다. 연속적인 카 빙 기법은 파일 내용이 저장 매체의 연속된 공간에 저장된 경우 수행하는 카빙 기법이고 비연속적인 카빙 기법은 파일의 내용이 저장 매체의 여러 부분에 조각 나 저장된 경우에 수행하는 카빙 기법이다. 비연속적인 카빙 기법은 단편화된 파 일조각을 하나의 파일로 구성하는데 많은 시간을 소요하기 때문에 현재까지 알 려진 카빙도구에서는 연속적인 카빙 기법만 적용하고 있다. 

1. 시그니처 기반 카빙

파일 카빙은 파일의 메타정보를 이용하지 않기 때문에 파일의 고유한 특성을 이용해 복구해야 한다. 시그니처 기반 카빙 기법은 파일 포맷별로 존재하는 고유 한 시그니처를 이용하는 방법이다. 시그니처는 파일의 시작 부분에 위치하는 헤 더(Header) 시그니처와 파일의 마지막에 존재하는 푸터(Footer) 시그니처가 있 다. 따라서 헤더와 푸터 시그니처가 모두 존재하는 파일의 경우 두 시그니처 사 이의 데이터가 파일 내용이 될 것이다. 

헤더, 푸터 시그니처를 모두 갖는 파일 포맷

2. 램 슬랙 카빙

램 슬랙은 파일의 내용을 디스크에 기록할 때 파일 크기가 512바이트의 배수가 되지 않아 0x00으로 채워지는 영역을 의미한다. 따라서 파일의 푸터 시그니처 이후에 램 슬랙이 존재하게 된다. 결과적으로 앞서 언급한 시그니처 기반 카빙 기법에서 푸터 시그니처와 함께 램 슬랙을 확인하면많은 오탐을 줄일 수 있다.

3. 파일 구조체 카빙

파일의 미리보기를 지원하는 파일의 경우 파일 포맷 내부에 실제 내용 이외에 썸네일(Thumbnail)을 포함한다. 이 경우 썸네일도 해당 파일의 포맷과 동일한 구조로 되어 있기 때문에 전체 파일 포맷에 시그니처가 둘 이상이 존재하게 된 다. 파일 구조체 카빙 기법은 푸터 시그니처가 존재하지 않거나 파일 포맷 내부 에 여러 개의 시그니처가 존재하는 경우에 효과적인 방법으로 파일의 구조를 분 석하여 카빙하는 기법이다. 파일 구조체 카빙 기법은 다시 파일 크기 획득 방법과 파일 구조 검증 방법으로 나눌 수 있다. 

1. 파일 크기 획득 방법

대부분의 파일은 해당 데이터 표현을 위해 파일의 앞부분에 파일 구조체가 위 치한다. 파일 구조체 내부에는 파일 시스템의 파일메타정보와 유사하게 해당 파 일의 크기, 형식 등의 정보가 포함된 메타정보가 저장된다. 파일 크기 획득 방법 은 파일 구조체 내부에서 파일 크기 정보를 획득하여 카빙하는 방법이다. 파일의 시작 위치와 파일 크기에 대한 정보를 알고 있다면 비교적 쉽게 해당 파일을 카 빙할 수 있다.

파일 크기 획득 방법을 적용할 수 있는 파일 포맷

2. 파일 구조 검증 방법

문서파일과 같이 빈번한 수정이 이루어지는 경우에는 데이터 표현을 위해 고 유한 계층구조를 사용하는데 파일구조 검증은 이러한 계층 구조를 검증하여 카 빙하는 방법이다. Microsoft 복합문서나 압축 파일 등은 계층 구조로 각 계층마 다 고유한 시그니처가 있다. 따라서 파일의 시작 위치를 찾은 후 계층 구조를 검 증하여 올바른 구조이면 정상적인 파일이라고 판단할 수 있다. 하지만 모든 구조 를 검증하기 위해서는 많은 시간이 필요하고 이러한 시간은 전체적인 파일 카빙 속도에 나쁜 영향을 미치게 된다. 따라서 구조 검증은 카빙된 파일 내용을 소프 트웨어로 확인가능하고 속도에 큰 영향을 미치지 않는 범위에서 적용해야 한다.

파일 구조 검증 방법을 적용할 수 있는 파일 포맷

 

 

 

[출처] 디지털포렌식개론 - 이상진