Известно, что многие компании по информационной безопасности и крупные технологические фирмы имеют собственные команды, которые обнаруживают недостатки и уязвимости в программном обеспечении и в частном порядке сообщают об этом производителю программного обеспечения. Некоторые, такие как Project Zero компании Google, даже устанавливают для поставщиков крайний срок для выпуска исправления, перед тем как раскрыть подробности об уязвимости публично. Сегодня Microsoft поделилась подробной информацией об уязвимости macOS, которую она обнаружила и сообщила о ней Apple. IT-гигант из Купертино очень оперативно отреагировал и патч уже доступен.
Скриншот POC Microsoft для Shrootless, работающего на macOS
Microsoft назвала эту уязвимость macOS "Shrootless". Она позволяет злоумышленнику обойти технологию System Integrity Protection (SIP) ОС и выполнить произвольное выполнение кода. На этапе выявления уязвимости Microsoft также обнаружила новую технику атаки, которая может быть использована для повышения привилегий.
Хотя в блоге компании приводится множество технических подробностей, с которыми вы можете ознакомиться здесь, суть проблемы заключается в процессе установки пакетов программного обеспечения, подписанных Apple и содержащих скрипты установки. Компания Microsoft обнаружила, что взломщик может использовать этот механизм для атаки, создав специальный пакет, который может перехватить процесс установки. После его обхода злоумышленник сможет свободно устанавливать руткиты и необнаруживаемые вредоносные программы, и даже перезаписывать системные файлы без блокировки SIP.
Dсе это стало возможным из-за ошибок кода. В некоторых случаях программным пакетам требуется доступ к защищенным SIP каталогам, ярким примером чего являются обновления системы. Некоторые права, назначенные Apple таким пакетам, как com.apple.rootless.install и com.apple.rootless.install.inheritabl, позволяют обходить проверки SIP. Microsoft описала слабое место в этом механизме следующим образом:
При оценке процессов macOS, позволяющих обходить защиту SIP, мы наткнулись на demon system_installd, с самыми высокими правами com.apple.rootless.install.inheritable. В этом случае любой дочерний процесс system_installd сможет полностью обойти ограничения файловой системы SIP.
Поскольку в Microsoft Defender for Endpoint есть компонент проверки после взлома, мы решили проверить все дочерние процессы system_installd. К нашему удивлению, мы увидели несколько случаев, которые могут позволить злоумышленникам использовать его функциональностью и обойти SIP.
Например, при установке пакета, подписанного Apple (файл .pkg), этот пакет вызывает system_installd, который затем выполняет его установку. Если пакет содержит какие-либо скрипты после установки, system_installd запускает их, вызывая стандартную оболочку, которой в macOS является zsh. Интересно, что при запуске zsh ищет файл /etc/zshenv и, если он найден, автоматически выполняет команды из этого файла, даже в неактивном режиме. Поэтому для выполнения произвольных операций на устройстве злоумышленники могли бы использовать абсолютно надежный метод: создать вредоносный файл /etc/zshenv, а затем дождаться, пока system_installd вызовет zsh.
Как уже упоминалось, в ходе этого исследования Microsoft также обнаружила, что zshenv может быть использован в качестве общего шаблона атаки, а не только Shrootless. Использовав эту оболочку, злоумышленник может повысить привилегии.
Microsoft поделилась своими выводами с Apple в частном порядке в рамках стандартной процедуры Coordinated Vulnerability Disclosure (CVD). Apple признала наличие проблемы, подготовила исправление и выпустила патч в открытый доступ 26 октября 2021 года. Apple также признала вклад Microsoft в решение проблемы в примечаниях к патчам безопасности для macOS Monterey, Catalina и Big Sur. Уязвимость обозначена как CVE-2021-30892, а более подробно о ней можно узнать здесь.

