OS X El Capitan 이후 디스크 이미징

본래 macOS(편의상 모든 운영체제는 이 이름으로 표기)의 디스크 이미징 방법은 리눅스의 그것과 동일하게 디스크 장치를 입력으로한 덤프 방법을 사용하였다. 그런데, 이 방법이 OS X Elcapitan 이후부터 문제가 발생하였다.

최초 발단은 모 기업에 다니시는 유정호 형님에게 전화와서 blackbag 도구로 macOS 디스크 이미징을 하려고하는데 안되더라라는 내용이였다. 그리고 최근에도 모 분석가분께서 macOS Catalina에서 모 macOS 포렌식 도구로 이미징이 안된다는 연락을 받았다. 결국 이 문제는 OS X El Capitan에서 추가된 SIP(System Integrity Protection)으로 인해 발생한 문제였다.

SIP이란?

SIP는 “Secure Integrity Protection”의 약어로 시스템의 주요 코드의 무결성을 유지하기 위해 추가된 기능이다. 이 기능은 크게 다음과 같은 일을 수행한다.

“/System” 디렉터리 내의 하위 디렉터리 중에는 운영체제 기본  Kernel Extension이 위치하고 있으며, “/dev/rdisk*” 장치도 이 익스텐션을 통해 생성되므로 SIP에 의해 보호를 받게 된다. 이로 인해 dd로 읽기 접근 시 오류가 발생한다. SIP의 활성화 여부는 터미널에서 다음 명령어를 입력하여 확인할 수 있다.

Computer:~ n0fate$ csrutil status
System Integrity Protection status: enabled.
Computer:~ n0fate$

현재 SW 디스크 덤프에 대해 이 문제를 해결하려면 SIP를 비활성화하는 방법 밖에 없다. SIP의 비활성화는 맥의 리커버리 모드(Recovery Mode)로 진입하여 할 수 있다.

macOS의 리커버리 모드 진입은 시스템 부팅 시점에 command+R을 누르고 있으면 진입이 가능하다.

이렇게 진입한 복구 모드에서 “Utility” -> “Terminal”을 눌러 실행한 후 다음과 같이 입력한다.

# csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

시스템을 재부팅하면 “/dev/rdisk*“에 접근이 가능해지므로 디스크 덤프를 수행할 수 있다.

분석 시 고려사항

Reference

System_Integrity_Protection_Guide