Piki's Play
파일 시스템 분석 - 파일이름 범주 본문
8.5 파일이름 범주
-> 파일명을 포함하여 사용자가 메타데이터 주소 대신 이름으로 파일을 검색할 수 있도록 한다.
전체 경로에서 파일하나를 찾아야할 필요가 있기 때문에 파일명 분석에서 중요한 것은 루트 디렉토리의 위치를 파악하는 것이다. 예를들어 윈도우 'C:\'는 C: 드라이브에서 루트 디렉토리이다.
-> 루트디렉토리 위치정의는 파일시스템마다 다르다.
▶ 전반적인 정보
-> 여기서는 파일 이름 범주의 전반적인 개념에 대해 알아보자 또한 이름에 기초한 파일 복구 방법을 설명한다.
▷ 파일이름 기반 파일복구
- 파일명 기반 복구는 메타데이터 기반 복구로 파일명을 복구하기 위해서, 삭제된 파일명과 메타데이터 주소를 사용한다. (분석하기 어려운 대상은 메타데이터 계층에서 실행)
-> 두개의 파일명이 있고 3개의 메타데이터 엔트리가 있는 예
-> (A)에서 file1.dat은 메타데이터 엔트리 100을 가리킨다. 이후 파일이 지워지면 파일명과 메타데이터 구조체는 비할당 되지만 파일명 데이터 구조는 영구적으로 삭제되지 않는다. 같은 방식으로 file2가 할당된다.
이제 모두가 비할당된 (C)를 보자, 그러면 같은 메타데이터 엔트리를 가리키는 두개의 비할당 파일명을 찾을 수 있다. 메타데이터 엔트리 100을 가리키던 것의 내용이 file1.dat인지 file2.dat인지 알 수 없다.
-> 위 그림과 같은 상황의 시스템을 조사한다면 다음의 문제와 부딪히게 된다.
1. 두 메타데이터 엔트리에서 데이터 유닛 1000을 가리킨다. 어떤것이 마지막 것인지, 또는 메타데이터 엔트리가 재할당된 후 동시에 데이터 유닛을 가리키는 다른 것이 있는지 확실하지 않다.
2. 두 파일명이 메타데이터 엔트리 100을 가리킨다. 어떤 것이 마지막인지 또는 이름이 재할당된 이후에 그 엔트리를 가리키는 다른 이름이 있는지 확실하지 않다. 이같은 경우 file5.dat이 마지막에 할당되었지만 지금은 더 이상 존재하지 않는다.
3. 메타데이터 엔트리 200은 자신을 가리키는 파일명이 없어서 그것에 할당된 파일명이 무엇인지 알 수가 없다.
- 디렉토리의 파일들 목록을 확인하고 파일들과 관련한 시간정보를 분석한다고 하자 -> 메타데이터 분석
그러면 엔트리100에는 file5.dat에 관련한 시간정보가 있다. (file1.dat, file2.dat 시간정보는 못봄)
엔트리 200에는 file3에 대한 정보가 들어있는데 이는 없는 파일이다. 그래서 파일목록에서 찾을 수 없다.
-> 파일명 관점에서 지워진 파일 조사시 메타데이터와 데이터유닛에 새로 할당이 되있을 수 있다는 것을 명심하고 아예 존재하지 않는 파일명을 찾을 때는 비할당 메타데이터 구조체를 조사해보자.
▶ 분석기술
-> 여기서는 파일 이름 범주에서 수행할 수 있는 분석기술들을 알아보자.
▷ 파일명 목록 작성
- 파일이름 범주의 목적은 파일명을 할당하는것이다. 그래서 분석기술중 하나는 파일과 디렉토리 이름을 목록화 하는것이다. -> 이름, 경로, 확장자 기반으로 증거를 검색할 때 사용
이렇게 파일을 확인한 후 더 많은 정보를 얻기위해 파일의 메타데이터 주소를 사용한다. 같은 타입에 파일들을 그룹화하기 위해 '확장자 기반'으로 파일들을 정렬가능하다.
- 파일이 삭제가 되도 파일명이 삭제되지 않아서 목록에 그대로 있을 수도 있고, 이때 메타데이터 주소는 지워져서 더 많은 정보를 얻지 못할 수도 있다.
- 이 기술의 기본적인 이론은 가장 먼저 '루트 디렉토리 위치'를 파악하는 것이다. 루트디렉토리의 레이아웃은 메타데이터 엔트리에 저장이 되어있다. -> 그래서 먼저 메타데이터에서 루트 디렉토리의 레이아웃을 알아내고 해당 데이터 유닛을 찾아내야 한다.
- 루트 디렉토리의 레이아웃을 알아내고 거기에 해당하는 파일 목록과 파일의 내용을 '논리적 파일보기' 기술을 이용해서 볼 수 있다. 또 다른 디렉토리의 내용을 목록화하기 위해서 그 디렉토리의 내용을 하나씩 불러와서 처리한다.
- 대부분은 메타데이터 범주와 파일 이름 범주의 데이터를 통합한다. 그래서 파일명과 관련있는 날짜, 시간 정보 등을 한번에 확인할 수 있다.
-> 데이터 유닛 401을 처리하고 두 이름을 찾는 과정을 분석하자. 파일이름 데이터 유닛에서 두 엔트리 badstuff와 favorites를 찾을 수 있고 그중 favorites는 메타데이터 엔트리3번에 데이터가 저장되어있다. 그 엔트리에서 다시 세부내용을 확인하고 파일 내용이 들어있는 데이터 유닛의 위치도 알아낼 수 있다.
- TSK fls 도구는 할당되고 지워진 파일명들을 목록화 한다.
▷ 파일명 검색
- 어던 파일명을 검색할지 알고있으면 파일명 목록화는 쉽다. 모르면, 알고 있는 일부분을 이용해서 검색이 가능하다.
- 위 사진에서 .txt를 검색하면 도구는 두개를 찾아줄 것이다. (파일을 숨기기 위해 확장자를 바꿨을 수도 있다.)
- 이름을 검색하는 것은 파일명을 목록화 하는 것과 유사하다.
- 또 다른 검색은 메타데이터 엔트리에 할당된 파일명을 검색하는 것이다.
=> TSK ffind 도구가 하는 직업
▷ 데이터 구조체 할당순서
- 일반적으로 메타데이터 엔트리는 '첫 번째 적용'이나 '다음 적용' 방법을 이용하고 파일명 구조체 할당 수선도 두 이름에 관련된 생성시간을 찾는데 활용된다.
▷ 일관성 검사
- 모든 이름들이 할당된 메타데이터 구조체를 가리키는지 보자. 한 파일에 여러 파일명이 있는 경우도 있다. 이때는 한 메타데이터 구조체에 여러 파일명이 가리키고 있을 수도 있다.
▶ 영구 삭제 기술
- 영구삭제 도구는 구조체로부터 이름과 메타데이터 주소를 지운다.
1. 새로운 파일이름을 삭제되는 구조체에 덮어씌운다.
-> 어떤 응용체제는 '다음 적용' 정책으로 이름을 배치하기 때문에 쉽지 않다.
2. 이름목록을 인지해서 기존의 파일명으로 덮어씌우는 것.
-> 효과적이나 더 복잡, 수사관들은 분석하기 더 어려워진다.
8.6 응용프로그램 범주
- 일부 파일 시스템들은 응용프로그램 범주에 속한 데이터를 포함한다. 이런 데이터는 필수가 아니고 효율성을 위해 특별한 데이터로 존재한다. 이 절에서는 '저널링'같은 일반적인 응용프로그램 범주 사항을 다룬다.
- 일부 파일시스템은 특정 기능을 위해 영역을 준비해 둔다. 예를들어 파일시스템의 한 영역이 주소록으로 등록이 되어있다면 ACME 소프트웨어는 운영체제가 더 빨라지도록 이름과 주소들을 파일로 저장하지 않고 바로 볼륨의 특정공간에 저장한다. -> 이것은 성능을 향상시키지만 파일시스템의 필수요소는 아니다.
▶ 파일 시스템 저널
- 컴퓨터가 정지하거나 충돌이 나는 것은 흔한 일이다. 운영체제가 디스크에 데이터를 쓰거나 대기중일대 충돌이 발생하면 파일 시스템은 불안정한 상태가 된다. 데이터유닛이 할당되고 메타데이터도 할당되는 순간에 둘 사이의 포인터 생성이 안될수도 있고 메타데이터와 파일명 사이의 연결이 안될수도 있다.
- 이러한 상황을 위해 운영체제는 파일시스템을 점검하고 잃어버린 포인터와 손상된 흔적을 찾는 프로그램을 실행한다. 점검이 잘 되도록 하기위해서 파일시스템은 저널을 구성한다. 파일 시스템에 메타데이터가 변경되기 전에 저널에는 변경될 것을 설명하는 엔트리가 생성된다. 변경 후에는 변경되었다는 것을 설명하는 또 다른 엔트리가 생성된다. 시스템이 손상되면 이 저널을 읽고 완성되지 않은 엔트리 위치를 확인한다.
- 이는 파일시스템 동작에 반드시 필요하지 않기 때문에 응용프로그램 범주에 속하고 일관성 검사속도를 빠르게 해준다.
-> 많은 포렌식 도구들은 파일시스템 저널의 내용을 처리하지 않는다. TSK jls와 jcat은 일부 저널의 내용을 보여준다.
8.7 응용프로그램 수준 검색기술
- 이번절에는 응용프로그램 계층과 분석을 위해 할당된 파일을 구성하고 삭제된 파일을 복구하는데 사용되는 몇가지 기술을 설명한다. 이 기술들은 파일 시스템에 독립적인 기술이다.
- 많은 파일들이 파일 타입에 시그니처 값을 포함하는 구조를 가진다는 사실에 의존한다. 시그니처 값은 잘 알려지지 않은 파일 타입을 결정하는데 사용될 수 있다. file 명령어는 많은 유닉스 시스템에 내장되어있고 시그니처 데이터베이스를 가지고 있다.
▶ 응용프로그램 기반 파일복구 (데이터 흔적)
- 데이터 흔적(Data Carving)은 데이터 한 묶음을 알려진 파일 유형의 시작과 끝에 맞는 시그니처를 검색하는 과정이다.
따라서 이 결과는 시그니처 중 하나를 포함하는 파일들의 집합이다. 이것은 보통 비할당 공간상에서 수행되고, 수사관이 메타데이터 구조체와 그것들에 연결이 없는 파일들을 복구한다.
예) JPEG 그림을 찾기위해 비할당 공간을 추출하고, JPEG헤더를 찾는 Carving 도구를 실행해서 헤더와 footer의 데이터를 추출한다.
- foremost 라는 분석도구는 미가공 파일 시스템이나 디스크 이미지를 각 파일타입의 시그니처 항목이 담긴 설정 파일을 기반으로 분석한다.
'알려진 헤더값', ;파일 최대크기', '헤더값의 대소문자 여부', '파일타입의 확장자', '추가적인 파일 마지막 값'
ex) JPEG의 시그니처 예
jpg Y 200000 \xff\xd8 \xff\xd9
-> 확장자는 jpg이고 헤더와 footer는 대소문자구별이 필요하다. 또한 파일 최대크기는 200,000바이트이고 헤더는 0xffd8 footer는 0xffd9이다. 크기까지 읽고 footer를 발견못할 시 carving은 종료된다.
-> 이와 비슷한 도구로는 Dan farmer가 제작한 Laxarus가 있다. 이를 이용해서 미가공 이미지의 각 섹터를 조사하고 file명령을 실행한다.
- 연속적인 섹터의 그룹들은 같은 타입을 생성하는 것이 좋다.
▶ 파일 타입 정렬
- 파일 타입은 파일 시스템에 파일을 구성하는 데 사용될 수 있다. 그 조사가 데이터의 특정 타입을 갖는다면 수사관은 그것들에 내용 기반으로 파일을 정렬할 수 있다. 한 예제 기술은 파일타입이 각 파일과 그룹에서 file 명령어를 싱행하는 것이다.
-> 이것은 모든 그림들과 실행 파일을 한번에 그룹화 할 수 있다.
- TSK sorter 도구는 파일 시그니처를 기반으로 사용할 수 있다.
8.8 특정 파일 시스템들
-> 이 책의 나머지 장들에서는 FAT, NTFS, Ext2/Ext3, UFS 파일 시스템의 저장 방법을 조사하고, 다섯가지 범주로 분류하여 설명할 것이다. 이것들이 전부는 아니지만 일단 이러한 것들은 먼저 설명한다.
▶ 요약
- 디지털 조사의 거의 모든 증거는 파일 시스템 분석으로 찾을 수 있다. 다음은 찾으려는 데이터 타입에 따라 어떤 분석기술을 사용해야 하는지 요약한 내용이다.
p.s 불토!
'포렌식 > 파일시스템 (파일시스템 포렌식분석)' 카테고리의 다른 글
FAT 개념과 분석 - 내용범주 (0) | 2020.02.18 |
---|---|
Chapter 9. FAT 개념과 분석 (0) | 2020.02.17 |
파일 시스템 분석 - 메타데이터 범주 (0) | 2020.02.13 |
(Part 3) Chapter 8. 파일시스템 분석 - 기초, 파일시스템, 내용 (0) | 2020.02.12 |
다중 디스크 봄륨 - 디스크 스패닝 (0) | 2020.02.10 |