FFS (Full FileSystem) Imaging
디지털 포렌식에서 FFS 획득은 파일 시스템 권한에서 접근 가능한 모든 파일을 수집하는 방법이다. iOS는 기본적으로 사용자에게 사용자 권한만을 부여하기 때문에 FFS 획득이 불가능하다. 즉, iOS 포렌식에서 시스템 파일 및 프로그램 내부 권한이 존재하는 파일을 획득을 위해서는 권한을 상승하는 작업인 Jailbreak을 우선 수행해야 한다. 본 글은 iOS Jailbreak 이후 Windwos OS 환경에서 SSH를 사용해 FFS으로 데이터를 획득하는 방법에 대하여 상세하게 기술한 글이다.
FFS (Full FileSystem) Imaging Process
본 글은 이전 글(WinRa1n 기반 Jailbreak)에 이어 SSH를 사용해 FFS 방식으로 데이터를 획득하는 방법에 대하여 기술한다. WinRa1n을 사용해 Jailbreak을 진행할 경우, palera1n, Sileo, Zebra 총 세 가지 도구가 자동으로 설치된다. 각 프로그램의 설명은 다음과 같다.
- palera1n : checkm8 부트롬 취약점을 기반으로 iOS 15–17을 사용하는 A8–A11 iPhone 및 iPad에서 Rootless 구조로 탈옥 환경을 구성하도록 설계된 반영구 탈옥 프레임워크
- Sileo : 탈옥된 iOS 환경에서 Procursus 저장소를 기반으로 트윅과 시스템 패키지를 설치 및 관리하도록 설계된 APT 기반 GUI 패키지 관리자
- Zebra : 탈옥된 iOS 환경에서 APT 패키지 시스템을 이용해 트윅과 도구를 설치·관리할 수 있도록 제공되는 경량 중심의 대체 GUI 패키지 관리자

FFS 과정에서 SSH 통신으로 데이터를 전송하기 위해, Sileo 혹은 Zebra를 통해 Open-SSH를 검색하여 설치한다. 필자는 Sileo를 통해 Open-SSH를 설치하였다.

iOS 디바이스에서 SSH 설치 이후 Windows OS 환경의 PowerShell에서 iOS 디바이스 장치로 SSH 접속해 Root 권한 접속이 가능한지 확인한다. 이때, iOS 디바이스 장치의 IP는 "설정 > Wi-Fi'에서 연결된 네트워크 옆 'i' 아이콘"을 누르면 확인할 수 있다. 탈옥된 iOS 디바이스에 기본으로 설정되는 mobile 계정의 비밀번호는 alpine이기 때문에, 비밀번호는 alpine을 입력한다.

정상적으로 root 접속이 가능함을 확인하고, Windows OS 환경의 PowerShell에서 FFS 이미지 획득을 위한 명령어를 수행한다. 아래 명령어는 각각 FFS 이미지 획득 명령어 및 특정 App 컨테이너 이하만을 수집할 수 있는 명령어이다.
cmd /c "ssh -o IdentitiesOnly=yes root@172.30.1.15 ""cd / && tar cf - ."" > ios_ffs.tar 2> ios_ffs.err.log"
cmd /c "ssh -o IdentitiesOnly=yes root@172.30.1.15 ""tar -C /private/var/mobile/Containers/Data/Application -cf - 0FF48F59-95BF-4830-9FFF-B7C016F6D31"" > ios_ffs.tar 2> ios_ffs.err.log"
FFS 이미지 수집 중 SSH 통신 과정에서 시간이 꽤 소요된다. 실사용 용량이 15GB인 경우를 기준, 약 3시간이 소요되었다. 작업관리자를 확인하면 SSH 통신이 정상적으로 동작하고 있음을 확인할 수 있고, tar 파일의 용량이 증가하고 있음을 확인할 수 있다.
