원문 보기: https://dawoum.duckdns.org/wiki/File_carving
파일 카빙(File carving)은 파일시스템 메타데이터의 부재 중에 조각으로부터 컴퓨터 파일을 다시 조립하는 프로세스입니다.
Introduction and basic principles
모든 파일 시스템에는 실제 파일 시스템을 설명하는 일부 메타데이터가 들어 있습니다. 최소한에서, 여기에는 폴더와 파일의 계층 구조와 각 파일에 대한 이름이 포함됩니다. 파일 시스템은 역시 각 파일이 저장된 저장 장치의 물리적 위치를 기록할 것입니다. 아래에서 설명한 대로, 파일은 서로 다른 물리적 주소에 조각으로 흩어질 수 있습니다.
파일 카빙은 이 메타데이터 없이 파일을 복구하려고 시도하는 프로세스입니다. 이것은 원시 데이터를 분석하고 그것이 무엇인지 (텍스트, 실행 파일, png, mp3, 등) 식별함으로써 수행됩니다. 이것은 여러 가지 방법으로 수행될 수 있지만, 가장 간단한 것은 특정 파일 유형의 시작 및/또는 끝을 표시하는 파일 서명 또는 "매직 넘버"를 찾는 것입니다. 예를 들어, 모든 각 자바 클래스 파일은 처음 4바이트로 16진수 값 CA FE BA BE를 가집니다. 일부 파일에는 바닥글도 포함되어 있어, 파일의 끝을 식별하기가 매우 간단합니다.
FAT 가족 및 유닉스의 Fast File System과 같은 대부분의 파일 시스템은 같고 고정된 크기의 클러스터라는 개념으로 작동합니다. 예를 들어, FAT32 파일 시스템은 각각 4 KiB의 클러스터로 분리될 수 있습니다. 4 KiB보다 작은 임의의 파일은 하나의 클러스터에 들어가고, 각 클러스터에 파일이 두 개 이상 있는 경우는 없습니다. 4 KiB 이상을 차지하는 파일은 여러 클러스터에 할당됩니다. 때로는 이들 클러스터가 모두 연속적이고, 반면에 다른 경우에 그것들은 두 개 또는 잠재적으로 훨씬 더 많은 소위 조각(fragments)에 분산되어 있으며, 각 조각에는 파일 데이터의 한 부분을 저장하는 여러 개의 연속 클러스터가 포함됩니다. 분명하게, 큰 파일은 조각화될 가능성이 더 큽니다.
Simson Garfinkel은 FAT, NTFS, 및 UFS 파일 시스템을 포함하는 350개 이상의 디스크에서 수집된 조각화 통계를 보고했습니다. 그는 전형적인 디스크에서 조각화가 낮지만, 이메일, JPEG, 및 Word 문서와 같은 법의학적으로 중요한 파일의 조각화율은 상대적으로 높다는 것을 보여주었습니다. JPEG 파일의 조각화율은 16%, Word 문서의 조각화율은 17%, AVI의 조각화율은 22%, 및 PST 파일 (Microsoft Outlook)의 조각화율은 58% (두 개 이상의 조각으로 조각난 파일의 비율)인 것으로 나타났습니다. Pal, Shanmugasundaram, 및 Memon은 조각화된 이미지를 다시 조립하기 위한 탐욕적 휴리스틱 및 알파-베타 가지치기(alpha-beta pruning)를 기반으로 하는 효율적인 알고리즘을 제시했습니다. Pal, Sencar, 및 Memon은 조각화 지점을 감지하기 위한 효과적인 메커니즘으로 순차적 가설 검정을 도입했습니다. Richard와 Roussev는 2005년부터 존재하고 처음에는 Foremost를 기반으로 하는 오픈-소스 파일 카빙 도구인 Scalpel을 발표했습니다.
파일 카빙은 매우 복잡한 작업으로, 시도해야 할 순열이 엄청나게 많습니다. 이 작업을 다루기 쉽게 만들기 위해, 카빙 소프트웨어는 전형적으로 모델과 휴리스틱을 광범위하게 사용합니다. 이것은 실행 시간 측면에서뿐만 아니라 결과의 정확성 측면에서도 필요합니다. 최첨단 파일 카빙 알고리즘은 조각화 지점을 결정하기 위해 순차적 가설 테스팅(sequential hypothesis testing)과 같은 통계적 기법을 사용합니다.
Motivation
대부분의 경우에서, 파일이 삭제될 때, 파일 시스템 메타데이터에서 엔터리가 제거되지만 실제 데이터는 여전히 디스크에 있습니다. 파일 카빙은 메타데이터가 제거되거나 그렇지 않으면 손상된 하드 디스크에서 데이터를 복구하기 위해 사용될 수 있습니다. 이 프로세스는 드라이브가 포맷되거나 다시 파티셔닝 후에도 성공할 수 있습니다.
파일 카빙은 자유 소프트웨어 또는 상업용 소프트웨어를 사용하여 수행될 수 있고 종종 컴퓨터 포렌식 검사와 함께 수행되거나 데이터 복구 회사에 의해 다른 복구 노력 (예를 들어 하드웨어 수리)과 함께 수행됩니다. 데이터 복구의 주요 목표는 파일 컨텐츠를 복구하는 것이지만, 컴퓨터 포렌식 검사관은 파일 소유자, 파일 저장 위치, 및 마지막 수정 날짜와 같은 메타데이터에도 마찬가지로 관심을 가집니다. 따라서, 포렌식 검사관은 파일 카빙을 사용하여 파일이 한때 하드 드라이브에 저장되었다는 것을 증명할 수 있지만, 그 또는 그녀는 파일을 누가 거기에 두었는지 증명하기 위해 다른 증거를 찾아야 할 수도 있습니다.
Carving schemes
Bifragment gap carving
Garfinkel은 두 조각으로 분할된 파일을 다시 조립하기 위해 빠른 대상 검증을 도입했습니다. 이 기술은 Bifragment Gap Carving (BGC)라고 참조됩니다. 시작 조각의 집합과 마무리 조각의 집합이 식별됩니다. 조각이 함께 유효한 대상을 형성하면 조각이 다시 조립됩니다.
SmartCarving
Pal은 이중-조각 파일에 국한되지 않는 카빙 체계를 개발했습니다. 이 기술은, SmartCarving이라고 알려져 있으며, 알려진 파일시스템의 조각화 동작과 관련된 휴리스틱을 활용합니다. 그 알고리즘은 전처리, 정렬, 및 재조립의 세 단계로 구성됩니다. 전처리 단계에서, 필요하다면 블록은 압축 해제되거나/되고 암호 해독됩니다. 정렬 단계에서, 블록은 파일 유형에 따라 정렬됩니다. 재조립 단계에서, 블록은 순서대로 배치되어 삭제된 파일을 재생성합니다. SmartCarving 알고리즘은 Digital Assembly에서 Adroit Photo Forensics와 Adroit Photo Recovery 응용 프로그램의 기반입니다.
Carving memory dumps
컴퓨터의 휘발성 메모리 (즉, RAM)의 스냅샷은 카빙될 수 있습니다. 메모리-덤프 카빙은 디지털 포렌식에서 일상적으로 사용되어, 조사자가 일시적인 증거에 접근할 수 있도록 합니다. 일시적인 증거에는 최근에 접근한 이미지와 웹 페이지, 문서, 채팅, 및 소셜 네트워크를 통해 커밋된 커뮤니케이션이 포함됩니다. 예를 들어, LiME은 Volatility와 연결하여 사용하여 그러한 작업을 수행할 수 있습니다. 만약 암호화된 볼륨 (TrueCrypt, BitLocker, PGP Disk)이 사용되면, 암호화된 컨테이너로의 바이너리 키가 추출되고 그러한 볼륨을 즉시 마운트하는 데 사용될 수 있습니다. 휘발성 메모리의 컨텐츠가 조각됩니다. 독점적인 카빙 알고리즘이 Belkasoft에 의해 개발하여 조각된 메모리 집합 (BelkaCarving)를 카빙할 수 있습니다.