[DFIR] Autopsy로 E01 분석하기: 해시·삭제 파일·타임라인

교육용 E01 이미지로 해시 적중, 확장자 불일치, 삭제 파일과 타임라인을 분석하고 확인한 근거를 보고서로 정리합니다.

개요

FTK Imager와 HxD로 파일을 추출하고 비교한 뒤 Autopsy에서 여러 분석 결과를 함께 확인해봤습니다.

실습 환경은 Windows 11과 Autopsy 4.23.1이며 본문의 파일과 사건은 교육용 가상 자료입니다.
학습용 가상 자료이지만 공개 전 확인 차원에서 캡처의 식별 정보를 마스킹했습니다.
메뉴 이름과 분석 결과는 실제 실습 화면을 기준으로 설명합니다.

분석 전 해시와 시간대 확인

분석 전에 원본 E01과 함께 제공된 해시셋의 SHA-256을 배포 체크섬과 비교했습니다.
E01은 작업 폴더에 복사해서 원본과 작업 사본의 해시가 같은지 확인한 뒤 사본을 분석 대상으로 사용했습니다.

준비할 때 확인한 항목은 다음과 같습니다.

시간 비교에는 같은 기준이 필요합니다.
이 글의 분석 시각은 화면에 표시된 KST를 기준으로 적었습니다.

해시셋 등록과 사건 생성

해시셋은 비교할 파일의 해시 목록입니다.
이번 실습에서는 관심 대상 파일을 찾기 위해 해시셋을 Notable로 등록했습니다.
Hash Lookup 공식 문서는 파일의 MD5를 계산해 해시셋과 대조하는 동작을 설명합니다.

  1. Tools → Options → Hash Sets → Import Hash Set을 엽니다.
  2. Open에서 준비한 해시셋을 선택합니다.
  3. Destination은 Local, Type은 Notable로 지정합니다.
  4. 등록 후 왼쪽 해시셋을 선택하고 색인 상태를 확인합니다. 색인이 필요하면 Index를 누릅니다.

Notable 해시셋 가져오기

해시셋을 등록한 뒤 Case → New Case에서 사건을 만들었습니다.
Case Name과 Base Directory를 지정하고 Single-User를 선택했습니다.
Optional Information에는 사건번호와 조사자 정보를 기록했습니다.

사건 생성이 끝나면 Add Data Source에서 다음 순서로 작업 사본을 추가합니다.

  1. Host를 생성하고 Disk Image or VM File을 선택합니다.
  2. Browse에서 작업 폴더의 E01 사본을 고릅니다.
  3. Time zone은 Asia/Seoul, Sector size는 Auto Detect로 설정합니다.
  4. Next로 Configure Ingest 화면에 들어갑니다.

작업 사본과 Asia/Seoul 시간대 선택

이때 추가하는 대상은 E01 이미지입니다.
이미지 안에 들어 있는 ZIP이나 문서는 데이터 소스가 추가된 뒤 파일 목록에서 확인합니다.

Ingest 모듈 설정

Ingest는 선택한 모듈이 입력 자료를 분석하는 과정입니다.
이번에는 해시 비교, 파일 형식 식별, 이미지 메타데이터, 문자열 검색에 필요한 6개 모듈을 사용했습니다.

모듈확인할 내용
Hash Lookup등록한 해시셋과 일치하는 파일
File Type Identification파일 내용으로 식별한 형식
Extension Mismatch Detector확장자와 식별된 형식의 불일치
Picture Analyzer사진 내부의 EXIF 정보
Keyword Search추출한 텍스트의 키워드 검색
Data Source Integrity데이터 소스에 연결된 해시의 검증

Hash Lookup에서는 사용할 Notable 해시셋을 체크합니다.
해시셋을 등록하는 작업과 이번 분석에 사용할 해시셋을 선택하는 작업을 모두 확인했습니다.

Hash Lookup에서 사용할 해시셋 선택

Keyword Search에서는 Add text to Solr Index를 체크했습니다.
이 설정으로 색인한 텍스트를 이후 키워드 검색에 사용했습니다.

Keyword Search와 Solr 색인 설정

분석 범위는 All Files, Directories, and Unallocated Space로 두었습니다.
Next → Finish로 데이터 소스를 추가한 뒤 백그라운드 분석이 끝날 때까지 기다렸습니다.

분석 완료와 무결성 검증

분석이 완료됐는지 확인하려면 Case → Data Source Summary → Ingest History를 엽니다.
이번 실행은 Completed로 표시됐습니다.
목록에는 선택한 6개 모듈과 시작·종료 시각이 남았습니다.

Ingest History의 Completed와 실행 모듈

무결성 검증 결과는 Ingest Inbox에서 따로 확인했습니다.
이번 화면에서는 상단 Close Case 옆 더보기 → 봉투 버튼으로 열었습니다.
Integrity of ... verified 메시지를 열면 저장된 해시와 계산된 해시를 비교할 수 있습니다.

저장된 MD5와 계산된 MD5의 일치

화면에는 Result: verified와 MD5 hash verified가 표시됐습니다.
Calculated hash와 Stored hash도 같았습니다.
이 동작은 Data Source Integrity 공식 문서의 검증 절차와 일치합니다.

여기서 비교한 해시와 분석 전에 계산한 SHA-256은 대상이 다릅니다.

구분이번에 비교한 대상
E01 파일의 SHA-256보관된 E01 파일 자체의 내용
Data Source Integrity의 MD5E01에 저장된 검증값과 이미지 데이터에서 계산한 값

분석 중 No known hash set 경고도 확인했습니다.
Known 분류 해시셋을 등록하지 않은 상태였습니다.
Notable 해시셋의 적중 결과는 별도로 확인됐습니다.
경고 문구와 실제 분석 결과를 함께 읽어야 하는 부분이었습니다.

해시 적중 파일과 확장자 불일치

Analysis Results → Hashset Hits → 등록한 해시셋에서 적중 파일을 확인했습니다.
이번 결과는 문서 2개와 이미지 1개였습니다.

해시셋에 적중한 파일 3개

해시 적중은 기준 목록과 파일의 해시가 일치한다는 결과입니다.
누가 파일을 옮겼는지, 외부 반출이 완료됐는지는 별도 근거가 필요합니다.
개인 폴더의 이미지는 경로와 적중 정보만 기록하고 이미지 내용은 열지 않았습니다.

다음으로 Analysis Results → Extension Mismatch Detected에서 report.txt를 확인했습니다.
파일을 선택하고 아래 File Metadata 탭을 열었습니다.

항목확인 결과
경로/업무/report.txt
확장자txt
MIME Typeimage/jpeg
크기120202바이트

txt 확장자와 image/jpeg 형식의 불일치

파일명은 텍스트 파일처럼 보였지만 Autopsy는 내용을 JPEG로 식별했습니다.
앞선 HxD 실습에서도 같은 SHA-256의 파일에서 FF D8 FF E0와 JFIF를 확인했습니다.
확장자 불일치는 파일 내용을 확인할 단서입니다.
고의로 위장했다는 의도까지 확정하지는 않습니다.

EXIF와 파일시스템 시각 구분

EXIF는 사진 파일 내부에 저장되는 메타데이터입니다.
촬영 시각, 카메라 모델, GPS 등의 정보가 들어갈 수 있습니다.
Autopsy의 Picture Analyzer는 이 정보를 추출합니다.

Analysis Results → EXIF Metadata를 열고 가로 스크롤로 열을 이동했습니다.
이번 화면에서는 다음 항목을 확인했습니다.

EXIF 시각과 장치 정보, 비공개 처리한 GPS 값

report.txt의 EXIF 시각은 2026-03-14 18:31:02 KST로 표시됐습니다.
장치는 Canon EOS R6였습니다.
파일시스템의 Created는 18:46:10 KST였으므로 두 값을 같은 생성 시각으로 취급하지 않았습니다.

EXIF 시각과 파일시스템 시각은 기록되는 위치와 의미가 다릅니다.
EXIF 자체도 수정될 수 있으므로 촬영자나 실제 촬영 장소를 이 표만으로 확정하지 않았습니다.

삭제 파일과 키워드 검색

File Views → Deleted Files → File System에서 삭제 파일 목록을 확인했습니다.
표시된 9개 중 하나는 유출목록.txt였습니다.
나머지는 0바이트의 OrphanFile-16부터 OrphanFile-23까지였습니다.
목록 개수를 곧바로 복구된 문서 수로 세지는 않았습니다.

유출목록.txt를 선택한 뒤 Text → Extracted Text에서 내용을 읽었습니다.
File Metadata에서는 경로와 할당 상태, 크기, 시간을 확인했습니다.

항목확인 결과
경로이미지 루트의 /유출목록.txt
File Name AllocationUnallocated
Metadata AllocationUnallocated
크기492바이트
Created2026-03-14 18:49:20 KST
Modified / Accessed / Changed2026-03-14 18:50:02 KST

삭제 파일의 할당 상태와 시간 정보

삭제 상태의 파일에서 읽을 수 있는 내용이 남아 있음을 확인했습니다.
정확한 삭제 시각은 확인하지 못했습니다.
특히 Modified나 Changed를 삭제 시각으로 적지 않았습니다.

이어서 오른쪽 위 Keyword Search에서 실습 자료의 도면 식별자를 검색했습니다.
Substring Match → Search 결과에는 다음 4개가 나왔습니다.

  1. 유출목록.txt
  2. $MFT
  3. 설계검토보고서_2026Q1.docx
  4. 설계검토보고서_2026Q1_v2.docx

키워드 검색으로 확인한 파일과 MFT

$MFT는 파일시스템 메타데이터이므로 업무 문서와 구분했습니다.
보고서 v2는 키워드 검색에 적중했지만 현재 해시셋 적중 목록에는 없었습니다.
해시 비교와 문자열 검색이 서로 다른 조건으로 파일을 찾는다는 것을 확인한 결과였습니다.

Timeline에서 경보 전후 시각 비교

Timeline에서는 파일별 시간 정보를 한 목록에서 비교했습니다.
상단 Timeline → Local Time Zone → List를 선택하고 2026-03-14 18시 구간을 확인했습니다.
Counts는 시간대별 분포를 보고 List는 개별 이벤트의 순서를 읽을 때 사용했습니다.
표시 방식은 Timeline 공식 문서에서도 구분해 설명합니다.

파일 생성과 수정 이벤트를 모아 본 Timeline List

실습 활동지에는 18:47:12 KST에 DLP 경보가 발생했다는 조건이 있었습니다.
DLP는 민감정보 반출을 탐지·통제하는 기능입니다.
이번 경보 시각은 외부에서 주어진 시나리오 정보입니다.
이미지에서 DLP 로그를 발견한 결과는 아닙니다.

시각(2026-03-14 KST)확인한 기록출처
18:46:08설계검토보고서 생성파일시스템
18:46:09설계검토보고서 v2 생성파일시스템
18:46:10report.txt 생성파일시스템
18:47:05backup_0314.zip 생성파일시스템
18:47:06backup_0314.zip 수정파일시스템
18:47:12DLP 경보활동지 시나리오
18:49:20유출목록.txt 생성파일시스템
18:50:02유출목록.txt 수정파일시스템

ZIP의 수정 시각은 경보보다 6초 앞섰습니다.
시간이 가깝다는 점은 확인했지만 이 ZIP이 경보를 일으켰는지나 전송이 완료됐는지는 확정하지 않았습니다.
ZIP은 E01 내부 파일 목록에서 선택해 확인했습니다.

생성·수정 시각의 순서도 함께 비교했습니다.
설계검토보고서_2026Q1.docx는 Created가 03-14 18:46:08, Modified가 03-13 11:05:12였습니다.
이런 순서는 복사할 때 수정 시각이 유지되는 경우와 부합하지만 두 값만으로 복사 행위나 시각 조작을 증명하지는 못합니다.

태그와 HTML 보고서

확인한 파일에는 판단 근거를 코멘트로 남겼습니다.
파일을 우클릭한 뒤 Add File Tag → Tag and Comment에서 태그와 설명을 지정했습니다.
최종 Notable Item은 다음 3개로 정리했습니다.

파일코멘트에 남긴 근거
유출목록.txt삭제 상태와 키워드 적중. 정확한 삭제 시각 미확인
설계검토보고서_2026Q1.docx해시셋과 키워드 검색에 적중
설계검토보고서_2026Q1_v2.docx키워드 검색에 적중. 현재 해시셋 적중 목록에는 없음

실수로 $MFT와 개인 이미지에도 붙였던 Notable Item 태그는 제거했습니다.
개인 이미지의 열람제외 태그는 유지했습니다.
태그를 정리한 뒤 Tags → Notable Item → File Tags에서 3개만 남았는지 확인했습니다.

보고서는 다음 순서로 생성했습니다.

  1. 상단 Generate Report → HTML Report를 선택합니다.
  2. Specific Tagged Results를 선택합니다.
  3. Notable Item만 체크하고 Finish를 누릅니다.
  4. 생성된 report.html을 열어 Tagged Files의 파일·경로·코멘트를 확인합니다.

Notable Item만 포함하도록 지정한 보고서 범위

최종 보고서에 포함된 파일 3개

Tagged Files에는 의도한 3개 파일이 들어갔습니다.
이번 보고서에는 Hashset Hits와 Keyword Hits가 0으로 표시됐지만 파일 태그를 중심으로 선택한 출력 범위의 결과였습니다.
전체 분석에서 검색 결과가 사라졌다고 해석하지 않았습니다.

Reporting 공식 문서에서도 선택한 태그에 따라 보고서에 들어갈 파일과 결과를 제한할 수 있다고 설명합니다.
보고서를 옮길 때는 report.html과 함께 생성된 보고서 폴더를 보관합니다.

분석 후 확인

보고서 생성 후 원본과 작업 사본 E01의 SHA-256을 다시 계산했습니다.
두 파일 모두 분석 전 값과 일치했습니다.
결과를 일지에 기록했습니다.
아래 캡처는 열 너비 때문에 해시 뒷부분이 생략돼 있습니다.
전체 값의 대조 결과는 실습 당시 기록을 함께 근거로 삼았습니다.

원본과 작업 사본의 사후 SHA-256 비교

이번 실습에서는 해시 적중 파일, 확장자가 다른 JPEG, 삭제 상태에서 읽을 수 있는 텍스트를 확인했습니다.
Timeline으로 파일 시각과 시나리오의 경보 시각도 비교했습니다.
마지막에는 각 파일을 선택한 근거와 확인하지 못한 부분을 코멘트에 남겨 보고서로 묶었습니다.

삭제 시각과 반출 완료 여부, 행위자는 이번 결과만으로 확정하지 않았습니다.
Autopsy의 결과를 기록할 때는 화면에 표시된 값과 그 값으로 설명할 수 있는 범위를 함께 적는 것이 중요했습니다.

참고 자료