BLOG

AFF4(Advanced Forensic Format) 훑어보기 본문

Digital Forensic

AFF4(Advanced Forensic Format) 훑어보기

Radbit 2024. 5. 19. 22:53

#  AFF4의 탄생 이유

E01 파일 형식의 과도한 CPU 사용, 불완전한 메타데이터 저장, 선형 비트스트림 접근 복사 방법, 특유의 압축 방법 등으로 인해 좀 더 효율적인 이미지를 만들기 위한 파일 포맷의 필요성 때문 

 

# AFF4의 장점

- 오픈소스 포맷

- 비선형 Multi-Pass 이미징 지원

- Snappy 와 LZ4등 빠른 압축 방법 지원

- Block Hashes

- 연속된 0을 저장하지 않고 메타데이터로 관리해 불필요한 공간 낭비 최소화

- 법의학적으로 재현 가능한 부분 비선형 이미지

- E01과 달리 공급업체가 중립적임

 

# AFF4 용어

- AFF Object : AFF4 포맷의 기본 구성 요소. 전역 고유 이름(URN)을 보유하고있음. Object는 전부 이름으로 주소 지정이 가능함

- An Evidence Volume : AFF 세그먼트에 대한 저장소를 제공하는 AFF object 개체 유형

- Segment : 볼륨에 쓰여지는 단일 유닛. AFF4 Segment에는 Segment 이름, Segment Timestamp(GMT단위) 및 Segment 내용 포함. 이 Segment는 소량의 데이터를 저장하는데 알맞음.

 

# AFF4에 대해

AFF4 (Advanced Forensic Format)은 디지털 증거 저장을 위해 개발된 오픈소스 파일 형식이다.

2009년에 제작된 파일 형식이며, Michael Cohen, Simson Garfinkel, Bradley Schatz 저자의 논문인 "Extending the advanced forensic format to accommodate multiple data sources, logical, evidence, arbitrary information, and forensic workflow" 에서 연구 되었음.

데이터를 압축된 블록 스트림에 저장하는 것을 Main으로 하고 그 위에 가상화 계층(Virtual Block Stream 또는 Map)을 추가함. 이 경우 Sparse Data 또는 0으로 존재하는 드라이브 영역을 나타내는데 도움이 됨.

이 접근법은 포렌식 이미지 개념을 선형 블록 스트림에서 비선형 블록 스트림으로 바꾸었음.

사진 1

사진 1에서 나타나는 초록색 화살표는 드라이브의  첫 부분부터 중간 혹은 끝부분에서 블록을 읽을 수 있음을 나타냄

드라이브를 한번 읽은 후에는 압축, 해시 및 압축 블록 스트림에 저장됨. 그 뒤 해당 블록에 대한 레퍼런스가 

Virtual Block Stream Map에 저장되어 실제 소스 드라이브 어디에 속하는지 알 수 있음. (사진 2와 같음)

사진 2

 

# AFF4 압축 방법

Compression이란 소스 정보를 나타내는 Symbol 수를 줄이기 위한 알고리즘 Compression을 진행하는 것으로

데이터를 저장하고 전송하는 시간과 공간을 절약할 수 있음.

AFF4는 E01의 Deflate 보다 더 효율적인 Snappy와 LZ4라는 두가지 알고리즘이 적용되어 구현되었음.

- LZ4 : 매우 높은 압축 속도로 유명한 압축 알고리즘. Deflate보다 압축률은 낮으나, 속도가 최대 10배 이상 빠름

이미지 파일의 압축률보다 속도가 중요할 때 추천됨

(https://lz4.org/) / (https://github.com/lz4/lz4)

- Snappy : 구글에서 자체 개발한 압축 라이브러리. 최고의 압축률 보다 적정 수준의 압축률을 제공

초당 250MB 정도를 압축함. LZ4보다는 느린 편

(https://github.com/google/snappy)

압축 알고리즘 비교 표

 

 

# AFF4 해시 방법

위에서 언급한 것처럼 각 블록에서 데이터를 읽을 때 데이터 압축과 해시를 진행함.

이것을 블록 해시라고 칭함. 이러한 블록해시는 BlockHashes Hash에서 계산됨.

Sparse와 심볼릭 데이터는 해시 되지 않음. 마지막에는 Block Map 해시에서 계산됨

해시 방법

Block Map Hash는 Merkle Tree model을 기반으로 하는 모든 개별 블록 해시에 대한 단일 SHA-512 해시 값을 나타냄

Merkle Tree 모델

# AFF4와 다른 이미지 파일 포맷과 비교

이미지 파일 포맷 비교

 

원본 글 : https://www.linkedin.com/pulse/uncovering-aff4-file-format-essentials-imaging-atola-technology-dt86e/?midToken=AQGgz9wXjJAW-A&midSig=0wyvKp7u5JaXg1&trk=eml-email_series_follow_newsletter_01-newsletter_hero_banner-0-open_on_linkedin_cta&trkEmail=eml-email_series_follow_newsletter_01-newsletter_hero_banner-0-open_on_linkedin_cta-null-p0zyg~lvwfi952~x9-null-null&eid=p0zyg-lvwfi952-x9&otpToken=MTYwNzFlZTMxNTJlYzljNGJlMmYwMmViNDMxZWVmYmM4N2NlZDg0NDkwYWQ4NTZkNzVjMTAwNjg0OTU5NThmNGYxZGZiZjkwNDlmMmZmYzY3MjhlMWYzODlkYjZlMGMwY2U4ZWEyNjk2ZGVmNDNmNzNlZTQsMSwx