[하루한줄] CVE-2021-30892: Apple macOS의 SIP mitigation bypass

URL

Microsoft finds new macOS vulnerability, Shrootless, that could bypass System Integrity Protection

Target

  • macOS

Explain

Microsoft 365 Defender Research Team이 macOS에 적용된 SIP(System Integrity Protection) 보호 기법을 우회하는 Shrootless 취약점의 세부 정보를 공개했습니다.

SIP가 적용된 시스템은 시스템 파일 및 디렉터리를 수정할 수 없으며, 심지어 root 권한을 얻더라도 이러한 권한이 제한되어 루트리스(rootless)라고도 불립니다.

그러나 시스템 업데이트 등에는 SIP로 보호되는 디렉터리에 액세스해야하기 때문에 애플은 예외적으로 SIP의 제한을 받지 않는 다음 특정 권한을 도입했습니다.

com.apple.rootless.install : SIP 파일시스템 검사를 우회하는 권한
com.apple.rootless.install.heritable : 자식 프로세스에 com.apple.rootless.install 상속

취약점은 com.apple.rootless.install.heritable 권한이 있는 system_installd 데몬에 존재합니다.

Apple 서명 패키지(.pkg)를 설치할 때 system_installd 데몬을 호출합니다. 패키지에 설치 후 실행할 스크립트가 포함된 경우 system_installd는 스크립트를 수행하기 위해 macOS의 기본 쉘 zsh을 실행합니다. zsh은 실행시 /etc/zshenv 설정파일을 불러오는데, /etc/zshenv에는 zsh 시작시 자동으로 실행할 명령어를 설정할 수 있습니다.

따라서 해커가 임의의 명령어를 포함하는 악성 /etc/zshenv 파일을 배치한 뒤 패키지를 설치하면 com.apple.rootless.install.heritable 권한의 system_installd가 생성한 zsh 프로세스 또한 com.apple.rootless.install 권한을 얻고, 악성 /etc/zshenv에 포함된 임의의 명령어를 SIP를 우회해 수행할 수 있습니다. 결과적으로 시스템 파일 및 디렉터리를 수정할 수 있고 루트킷을 설치하는 등의 악성 행위가 가능합니다.