[하루한줄] CVE-2021-1810: Gatekeeper bypass

URL

Analysis of CVE-2021-1810 Gatekeeper bypass

Target

macOS < Big Sur 11.3

Explain

macOS의 file quarantine 기능, Gatekeeper를 우회할 수 있는 취약점입니다. Gatekeeper는 macOS 시스템에 새롭게 설치되는, 혹은 처음 실행되는 파일에 대한 Code signature 검사와 Notarization을 수행합니다. 즉, 해당 파일의 출처와 변조 여부를 검사하고 정적 분석을 통해 악성 행위를 탐지합니다.

macOS의 이런 file quarantine 기능은 file system의 확장 attribute에 의존합니다. file의 확장 attribute란 모든 macOS 에플리케이션이 파일에 설정할 수 있는 작은 메타데이터를 뜻하며, 그중 com.apple.quarantine은 해당 파일이 Gatekeeper의 검사가 필요하다는 뜻입니다. 다시 말하면, com.apple.quarantine attribute가 설정되지 않은 파일은 Gatekeeper의 검사를 받지 않습니다.

Safari를 포함한 대부분의 웹 브라우저들은 다운로드 되는 모든 파일에 com.apple.quarantine attribute를 설정합니다. zip파일의 경우 압축을 풀게 되면 zip파일 내부의 모든 파일 또한 com.apple.quarantine attribute를 상속받게 됩니다. 그러나 여러 디렉토리를 중첩시켜 깊은 directory hiearchy를 갖는 zip파일의 path name이 너무 길면 zip 내부의 파일 일부가 com.apple.quarantine을 상속받지 않습니다.

  1. path name이 너무 길면 Safari가 압축을 풀지 못해 내부 파일들의 attribute를 설정하지 못합니다.
  2. path name이 너무 길면 macOS finder의 Archive utiliy가 압축을 풀 때 일부 파일에 attribute를 상속시키지 못합니다.


본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.