본문 바로가기

[+] Forensic

File System (4)

이번 글에서는 파일시스템의 메타 데이터 참조 모델에 대해서 알아 볼 것이다.

메타 데이터 참조 모델은 다른 데이터를 설명하는 데이터를 포함하고 있다. 해당 참조 모델의 데이터 중 예를 들자면 마지막

접근 시간 데이터와 클러스터 주소가 있다.

많은 메타 데이터 구조체는 고정 또는 동적 테이블에 저장 되고 각 엔트리는 주소를 갖는다. 파일이 지워지면 해당 메타 데이터

엔트리는 할당 상태에서 비 할당 상태로 전환되고 운영체제는 일부 엔트리 값을 영구적으로 삭제 한다.

특정 파일의 세부 사항을 확인 하려고 한다거나, 특정 요구 사항에 적합한 파일을 찾기 위해서는 해당 참조 모델을 분석해야 한다.

분석을 위한 메타 데이터의 개념들을 지금부터 알아 보도록 하겠다.

[논리적 파일 주소]
파일에 할당 된 클러스터는 논리적 파일 주소를 갖게 된다. 클러스터의 논리적 파일 주소는 클러스터가 할당 된 파일 시작 주소의 상대적이다.

[그림 1 - 논리적 주소들의 관계]

 

[슬랙 공간]
슬랙 공간은 파일 크기가 클러스터에 맞지 않아 발생하는 빈 공간을 말한다. 파일에 할당 된 클러스터가 파일보다 크더라도 클러스터 전체가 할당되며 파일이 사용하고 남은 클러스터 공간이 슬랙 공간이 되는 것이다.
일부 슬랙 공간은 한번 할당 되고 다시 할당 되지 않아 이전에 할당되어 쓰여진 데이터들이 남아 있을 수 있다.
슬랙 공간 중 RAM 슬랙 공간이라고 부르는데 공간이 있는데 이 공간은 운영체제가 파일 내용을 무엇으로 채우는지 결정하도록 한다. 대부분 0으로 채운다. RAM 슬랙 공간 말고 또 다른 공간이 있는데 이 공간은 클러스터의 비사용 섹터가 있는 공간이다. 앞서 말했던 한번 할당되고 다시 할당되지 않은 슬랙 공간이 이 슬랙 공간을 말하는 것이다.
모든 파일시스템은 슬랙 공간이 존재 할 수 밖에 없다. 섹터 단위로 할당을 하기 때문에 슬랙 공간이 발생 한다. 파일시스템에서는 슬랙 공간이 할당된 데이터로 간주되기 때문에 만약 분석 시 파일시스템에서 슬랙 공간을 분석하기 위해 비 할당 데이터를 추출한다면 도구로부터 슬랙 공간을 추출받지 못한다.

[그림 2 - 슬랙 공간]


[메타데이터 참조 모델 기반 파일 복구]
메타 데이터 참조 모델을 이용하여 지워진 파일을 복구 할 수도 있다. 파일 복구 기술에는 메타데이터와 응용 프로그램을 분석하는 두 가지 방법이 있다. 메타 데이터를 이용한 파일 복구는 지워진 파일의 메타데이터가 존재해야만 가능하며 만약 메타 데이터가 존재하지 않다면 응용 프로그램을 이용한 복구 기술에 의존해야 한다.
복구 기술의 원리는 간단하다. 메타 데이터를 확인하면 클러스터 주소가 있는데 그 주소를 확인하여 도구로 내용을 읽으면 된다. 하지만 반드시 메타 데이터가 존재한다고 하여 클러스터 주소가 메타 데이터에 포함되어 있는 것은 아니다. 운영체제에 의해 메타 데이터에 포함되어 있는 클러스터 주소가 삭제 될 수도 있기 때문이다.
메타 데이터를 이용한 파일 복구를 수행 할 때에는 유의해야 할 점이 있다.
찾은 메타 데이터가 포함하고 있는 클러스터의 주소를 확인하여 해당 클러스터 주소의 내용을 읽어 들일 경우 해당 클러스터가 다른 메타 데이터와 동기화가 되어 있는지 확인해야 한다. 만약 다른 메타 데이터와 동기화 되어 있다면 해당 클러스터의 내용은 찾고자 하는 파일의 내용이 아닐 수도 있기 때문이다.  

[그림 3 - 메타 데이터를 이용한 파일 복구 시 주의 사항]


[압축 및 스파스 파일]
일부 파일시스템들은 데이터를 압축된 형식으로 저장한다. 압축 형식은 3가지가 있다. 하나는 파일 형식 중 헤더를 제외한 나머지 데이터를 압축 하는 것이고, 또 하나는 외부 프로그램에 의해서 압축하는 형식이다. 마지막으로 파일시스템이 데이터를 압축하는 형식이 있다. 파일시스템이 압축을 수행하는 경우 응용프로그램이나 사용자 측에서는 압축이 되어 있는지 알지 못한다.
스파스 방식이라고 파일시스템에서 사용하는 방식이 있는데 이 방식은 데이터에서 0으로 채워진 영역을 파일시스템에 저장할 때 제외하고 저장하는 방식이다. 대부분 조사 도구에서는 압축 알고리즘을 지원하기 때문에 압축된 파일들을 조사해 볼 필요가 있다.  

 [그림 4 - 스파스 방식] 

 * 참고 : 스파스 방식으로 생성된 파일을 스파스 파일이라고 부른다. 


[암호화 파일]
암호화는 응용 프로그램이 할 수도 있고 운영체제가 할 수도 있으며, 파일시스템이 할 수도 있다. 운영체제가 암호화 하는 경우 파일 이름, 접근 시간 등과 같은 데이터가 아닌 항목들은 암호화 하지 않고 저장한다. 파일시스템의 경우 운영체제가 포함되어 있는 볼륨을 제외한 전체를 암호화 한다.
이와 같은 암호화 파일들은 암호화 키 또는 패스워드등을 알지 못하면 복호화를 하지 못하는데 일부 도구에서는 키를 추측하거나 무차별 대입등으로 키를 알아내는 알고리즘을 포함하고 있다. 하지만 이와 같은 방법들은 성공률이 낮은 방법들이다. 사용된 알고리즘을 모른다면 암호화를 푸는데에는 많은 시간이 걸린다. 암호화 파일을 복호화 하지 못한다면 압축되기 전 임시 파일이나 복사본을 찾아봐야 한다. 


이제부터는 메타 데이터 참조 모델의 분석 방법을 알아 보겠다.

[메타 데이터 검색]
메타 데이터에서 검색 기술을 사용하면 파일 이름과 파일 이름이 가리키고 있는 좀 더 자세한 정보들을 얻을 수 있다.
대부분의 도구들은 디렉토리 파일명을 확인 할 때나 메타 데이터 값을 기반으로 출력값 정렬을 조사관이 원할 때 자동으로 해당 기술을 수행한다. 


[논리적 파일 보기]
메타 데이터 검색으로 찾아야 할 파일의 이름과 정보를 알아냈다면 해당 파일의 내용을 확인해야 한다. 이 기술은 메타데이터 참조 모델과 내용 참조 모델에서 수행된다. 이 기술을 수행하기 위해서는 메타 데이터 정보와 클러스터를 목록화 해야 한다. 이 이 과정에서 슬랙 공간을 주의 해야 한다. 

 [그림 5 - 그룹화 과정]


[논리적 파일 찾기]
해당 기술은 파일 내용에 기초하여 파일을 찾는 기술이다. 어떠한 특정 값을 갖는 파일들을 모두 찾고자 할 때에 이 기술을 사용하는 것이 논리적 파일 보기 기술을 사용하는 것보다 적합 할 것이다.
해당 기술을 사용 할 때에도 메타 데이터 정보와 클러스터를 목록화 하는 과정이 필요하다. 이 과정을 통해 목록화 된 클러스터들을 하나의 묶음으로 검색을 시도해야 하기 때문이다. 이런 과정을 거쳐 기술을 적용하게 되면 여러 섹터에 걸쳐 나누어져 있던 특정 값을 찾을 수 있게 된다. 아래는 "MaJ3stY" 라는 문자열을 검색 하였을 경우의 예이다.

 [그림 6 - 문자열 검색 과정]

 * 참고 : 이 기술은 꼭 문자열이 아닌 암호화 해시를 사용하여 파일을 검색 할 수도 있다. 


[데이터 구조체 할당 순서]
두 메타 데이터 엔트리의 시간 차이를 알아야 한다면 운영체제의 할당 정책을 이용하는 방법이 있다. 일반적으로 메타 데이터 엔트리들은 "첫 번째 적용 정책" 또는 "다음 적용 정책" 을 사용한다. 이것을 분석하는 기술은 응용 프로그램마다 상이하다.


[무결성 검사]
메타 데이터의 무결성 검사는 숨겨진 데이터나 파일시스템 이미지의 정확한 정보를 변경하는 행위들을 탐지 할 수 있게 지표가 되어준다. 무결성 검사에는 클러스터 주소와 크기, 각 메타 데이터 엔트리 할당 상태 등의 정보가 사용된다.
무결성 감사 방법은 다음과 같은 것들이 있다.

 - 각 할당된 엔트리를 조사하고 그 엔트리에  할당 된 클러스터들이 또 할당되었는지 검증하는 방법
   (메타 데이터 엔트리는 여러개의 클러스터를 가리킬 수 있지만 클러스터의 경우 하나의 엔트리만을 가져야 함)
 - 특별한 파일 타입들의 엔트리 경우 그것들에 할당된 데이터 유닛들이 있는지 검증하는 방법
 - 파일 이름 참조 모델을 이용하여 각 엔트리들이 가리키고 있는 클러스터에 파일 이름 참조 모델에 있는
    파일 이름을 가지고 있는지 검증하는 방법


[영구 삭제 기술]
파일을 지울 때 메타 데이터를 삭제하면 그 파일은 복구 하기가 힘들다. 영구 삭제 기술에는 몇가지가 있는데 다음과 같다.

 - 메타 데이터가 가리키고 있는 클러스터를 0이나 난수 데이터, 관련 없는 유효한 값으로 덮어 씌우는 기술
 - 남은 엔트리들을 이동하여 사용하지 않은 엔트리들을 그 자리에 가져다 놓는 기술


조사관은 2개의 유효한 엔트리들 사이에 0으로 되어 있거나 유효하지 않은 엔트리를 찾음으로 영구 삭제 여부를 판별 할 수 있다. 





 

'[+] Forensic' 카테고리의 다른 글

File System - FAT (1)  (0) 2012.01.30
File System (5)  (0) 2012.01.28
File System (3)  (0) 2012.01.26
File System (2)  (0) 2012.01.26