Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

Hello Security World

Digital Forensic [파일 시스템] 본문

정보보안/Forensic

Digital Forensic [파일 시스템]

프로앱등이 2020. 5. 3. 17:59

파일 시스템

파일시스템의 정의

1) 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또 는 조직하는 체제 (wiki)

2) 파일시스템은 저장장치 내에서 데이터를 읽고 쓰기 위해 미리 지정 된 약속

3) 파일 시스템은 통상 하드 디스크나 CD-ROM 같은 실제 자료 보관 장 치를 사용하여 파일의 물리적 소재를 관리하는 것을 가리키나 네트 워크 프로토콜(NFS, SMB, 9P 등)을 수행하는 클라이언트를 통하여 파일 서버 상의 자료로의 접근을 제공하는 방식과 가상의 형태로서 접근 수단만이 존재하는 방식(procfs 등)도 파일 시스템의 범위에 포 함

파일시스템의 분류

Disk 파일시스템

- 일반적으로 HDD에 파일을 저장하기 위해 고안된 구조

-예) FAT, NTFS, HFS, HFS+, HPFS, UFS, ext2/3/4, btrfs, ISO 9660, ODS-5, Veritas File System, ZFS, ReiserFS, Linux SWAP,UDF 

플래시 파일시스템

- 플래시 메모리에 저장하기 위해 고안된 구조

- 플래시 메모리 특성: Erasing Block, Random Access, Wear Leveling  YAFFS, JFFS 등

파일시스템의 분류 2

Tape 파일시스템

Database 파일시스템

Network 파일시스템

Shared Disk 파일시스템

특별한 목적의 파일시스템

Unix의 (/proc)와 같은 프로세스 정보 저장 파일시스템

일반적인 파일시스템 구성

일반적으로 boot sector, index, data 3가지 영역으로 구분

Boot Sector

- Drive의 시작 부분으로 Drive를 어떻게 읽어야 할지를 결정하는 영역

Index 또는 Metadata

- Drive 에 존재하는 파일이나 폴더들의 정보를 제공

- 일반적으로 파일의 Name, Type, Size, Status, MAC Time, user 등 정보 저장

Data

- 각 파일에 대한 실제 Data 저장

파일 데이터의 구성

Cluster Chain

- 파일의 크기가 커서 연속되거나 분산된 여러 개의 클러스터에 저장하고 이를 연결한 구조 및 형태

Fragmentation

- 하나의 파일이 연속된 클러스터에 저장되어 있지 않고 분산되어 저장되 어 있는 형태

Data Recovery

- 손상, 접근 불가, 은닉, 잔존되어 있는 Data를 분석할 수 있도록 복구 하는 기술

Data Recovery를 위해 요구되는 기술

- File System의 이해

- OS와 File System간의 메커니즘 이해

- 응용 프로그램과 관련된 파일 구성의 이해  응용 프로그램과 관련 파일간의 메커니즘 이해

- 다양한 복구 기법과 원리의 이해  관련 도구(Encase, FTK, …)들의 이해

Logical Data 저장 위치와 특성 (1/2)

Regular files

- 사용자 관점에서 Data가 정상적으로 저장되어 있는 파일

- Filesystem의 metadata(MAC Time, File Name 등), 파일 내의 metadata를 이용하여 추가 정보 획득 가능

Temporary files

- 임시 파일로서 경우에 따라 삭제되는 경우 발생

- 암호화된 관련 파일의 평문 저장 가능

Deleted files

- 사용자에 의해 삭제된 파일로서 overwritten되지 않으며 간단히 복구 가능

Retained Data Block

- 파일이 삭제되어 논리적으로 존재하지 않지만 일부 또는 전체 Data가 잔존하는 Block

- Slack space 또는 할당되지 않은 Disk 영역에 잔존하며 overwritten 될 수 있음

Logical Data 저장 위치와 특성 (2/2)

Hidden blocks

- Vender에 의해 별도로 할당된 블록(복구용)으로서 HPA(Host Protected Area) 등이 있음

- OneNAND와 같은 Flashmemory에서 OTP(One Time Programmable)와 같은 영역

Bad blocks

- 저장장치의 이상으로 일부 blocks이 bad로 설정된 block

- 실제 정상적인 block이나 임의로 bad로 설정된 경우도 존재

Backup data

- 동일한 저장장치 또는 별도의 분리된 장치에 저장된 data

Unused space

- 저장된 정상 데이터의 size가 변경되지 않아 일정한 Slack space를 보 장 받을 수 있는 공간

- 임의로 File 또는 Filesystem Spec.의 유연성을 이용하여 space를 확보 하고 Data 저장

Data Recovery 분류 (1/4)

Physical Recovery

- 손상된 PCB 등 부품 교체

- MFM(Magnetic Force Microscopy ) 장비를 이용한 Scanning

Logical Recovery

- Partition Recovery

- Undelete

- Signature Search

- Data Carving

- Finding hidden data

- Password recovery, Decryption

- Steganalysis

- Unpacking, decoding

- Reverse Engineering

- Etc…

Data Recovery 분류 (2/4)

Partition Recovery

- MBR의 Partition Table에 잔존하는 정보를 이용한 Partition 복구

- Partition Table 없이 File System Signature를 이용한 복구

Undeletion

- 삭제된 파일은 실제 파일 Data가 삭제되지 않고 파일 Index의 일부 정 보만 삭제

- 이러한 남겨진 Index 정보를 이용하여 복구

Signature Search

- Application이 자신과 관련된 File을 Load할 때 정합성을 검사하기 위해 서 일정한 값(표식)을 File의 처음 또는 끝 부분에 표시하고 있음  이러한 표식 값을 검사하여 파일을 복구

Data Carving

- File System 정보 없이 순수 Low Image에서 파일을 검색하고 복구하는 기법

Data Recovery 분류 (3/4)

Finding hidden data

- Disk에서 사용하지 않는 영역, 의도적으로 사용되지 않는 영역으로의 조 작 등으로 발생한 영역에 File 또는 Data를 은닉했을 때 이를 복구

Password recovery, Decryption

- 파일이 존재하지만 암호화되어 있어 일반적으로 복구할 수 없는 경우

- 암호화에 사용된 Key를 찾기 위해서 BFA, Dictionary Attack 등을 수행 하거나 암호화 알고리즘 또는 암호 프로그램의 취약성을 이용하여 복구

Steganalysis

- Steganography와 같이 파일의 사용되지 않는 영역(not used, reserved), 사용되지 않는 bit 영역, 임의로 사용되지 않는 영역을 삽입 하는 방법으로 숨겨진 Data를 복구하는 기법

- 정상적인 File이나 약속된 값이 저장된 File 분석

Data Recovery 분류 (4/4)

Unpacking, decoding

- Packing: 파일에 저장된 Data가 중복되고 반복되는 데이터가 많아 불필 요하게 Size가 큰 파일을 효율적으로 압축하는 기술  Packing은 관련 프로그램 없이 일부러 내용을 어렵도록 하여 Data를 직 접 분석하는데 시간이 오래 걸림

- Packing 알고리즘을 이용하여 Unpacking하여 복구하는 기법  Encoding: 영문자 [SPACE]는 HTTP 상에서 전송될 때 %20 으로 표시하 여 전송하며 이러한 변환을 Encoding이라고 함

- Decoding: %20과 같이 일반적인 문자로 해석하기 위하여 [SPACE]로 변 환하는데 이러한 과정을 Decoding이라고 함

Reverse Engineering

- Binary로 되어 있는 응용프로그램을 분석하기 위해서 Assembly 언어 또는 C언어와 같이 분석자가 해석할 수 있는 코드로 변환하는 기