원문 캡처 · righteousit.com
원문 캡처 · righteousit.com

포렌식 도구가 다루기 어려운 리눅스 디스크 이미지를 자동으로 마운트하는 스크립트 mtt.sh가 공개됐다. RAID와 LVM, 여러 파일 시스템이 얽힌 이미지를 조사하는 팀은 이 도구로 마운트와 해제를 자동화하고, 필요하면 파일 시스템별 E01 이미지로 내보낼 수 있다.

mtt.sh는 VMDK, E01, raw 형식을 지원한다. E01 이미지에서는 같은 디렉터리에 있는 첫 번째 .E01 파일을 지정하면 나머지 조각을 ewfmount가 찾는다. 사용자는 마운트 지점과 이미지 파일을 지정해 실행하며, -D를 추가하면 처리 과정을 볼 수 있다. 마운트 지점에는 실제 사용한 명령을 기록한 MOUNTING 파일도 생성된다.

설치는 다음과 같이 한다. VMDK, E01 처리와 특정 우회 기능을 쓰려면 qemu-utils, ewf-tools, xmount가 필요하다. 해당 형식을 다루지 않는 경우에는 이 의존성 없이도 실행할 수 있다.

sh
apt install qemu-utils ewf-tools xmount

git clone https://github.com/halpomeranz/dfis.git
cp dfis/mtt.sh /usr/local/bin/mtt.sh

-E 옵션을 붙이면 마운트한 파일 시스템별로 E01 이미지를 생성한다. 청크 최대 크기는 -S로 지정하며 기본값은 4294967296바이트(4GiB)다. 결과는 대상 디렉터리의 exported 하위 디렉터리에 저장되므로, 그 파일 시스템에 내보낼 데이터만큼 공간이 있어야 한다. 각 이미지의 획득 기록과 해시값은 함께 생성되는 텍스트 파일에 담긴다.

LVM 볼륨 이름이나 UUID가 중복된 이미지를 나란히 마운트해야 할 때는 -V로 볼륨 그룹 이름을 바꾸거나 -A로 이름과 UUID를 바꿀 수 있다. 이 옵션은 원본 이미지에 직접 쓰지 않고 xmount 캐시 파일에 변경 사항을 기록한다. 다만 원래 이름과 UUID를 가진 이미지가 이미 마운트된 뒤라면 두 번째 이미지에는 -V나 -A를 써도 마운트가 실패할 수 있으므로 처음부터 해당 옵션을 적용해야 한다.

-A는 파일 시스템 UUID 변경을 위해 파일 시스템을 읽기·쓰기 모드로 마운트해 저널을 복구한 뒤 UUID를 바꾸고 읽기 전용으로 다시 마운트한다. 따라서 확인하는 파일 시스템은 원래의 미완료 저널 상태와 조금 다를 수 있다. -W는 이름이나 UUID를 바꾸지 않고 캐시 파일을 이용해 읽기·쓰기 모드로 마운트한다. 이 옵션도 저널을 복구하므로 재부팅과 저널 복구를 거친 뒤의 상태를 보게 된다.

마운트 해제에는 -U와 마운트 디렉터리를 지정한다. 이 과정에서 LVM 볼륨 그룹, RAID 배열, 루프 장치와 E01 마운트를 해제한다. 이미지 마운트와 관련해 LVM 이름과 UUID가 중복되는 문제를 다룬 글은 별도 문서에서 확인할 수 있다.