Уязвимость позволяет обходить функцию защиты целостности системы (SIP) и выполнять произвольный код.
Специалисты Microsoft раскрыли подробности об уязвимости в macOS, о которой они в соответствующем порядке уведомили Apple и которую "яблочная" компания уже исправила.
Исследователи Microsoft назвали эту уязвимость Shrootless. С ее помощью злоумышленники могут обходить функцию защиты целостности системы (Integrity Protection, SIP) и выполнять произвольный код. В ходе исследования специалисты также обнаружили новый метод атаки, позволяющий повысить привилегии.
Проблема связана с тем, как программный пакет подписан Apple, и каким образом в нем установлены пост-инсталляционные скрипты. Как обнаружили исследователи, злоумышленники могут использовать этот механизм в вредоносных целях путем создания кастомного пакета, способного перехватывать процесс установки. После обхода SIP атакующий может устанавливать руткиты и недетектируемое вредоносное ПО и даже перезаписывать системные файлы.
Причиной проблемы является недочет в проектировании. В некоторых случаях программные пакеты требуют доступа к директориям, защищенным с помощью SIP (ярким примером являются обновления системы). Apple назначает таким пакетам права com.apple.rootless.install и com.apple.rootless.install.inheritable, что позволяет обходить проверки SIP.
В ходе анализа процессов macOS для обхода SIP специалисты натолкнулись на демон system_installd с мощными правами com.apple.rootless.install.inheritable. С этими правами любой дочерний процесс system_installd может обходить все установленные SIP ограничения файловой системы.
Исследователи решили изучить все дочерние процессы system_installd и с удивлением обнаружили несколько случаев, позволяющих хакерам злоупотреблять этим функционалом для обхода SIP.
К примеру, при установке подписанного Apple пакета (файла .pkg) этот пакет инициирует процесс system_installd, ответственный за его установку. Если в пакете содержатся какие-либо пост-установочные скрипты, system_installd запускает их путем инициирования оболочки по умолчанию (в macOS это zsh). Примечательно, что после запуска zsh ищет файл /etc/zshenv и в случае его обнаружения автоматически запускает команды из него, даже в неинтерактивном режиме. Следовательно, для того чтобы выполнять произвольные операции на устройстве, злоумышленники могут создать вредоносный файл /etc/zshenv, а затем дождаться, пока system_installd вызовет zsh.
Как упоминалось ранее, в ходе этого процесса Microsoft также обнаружила, что можно использовать как общую схему атаки не только Shrootless, но и zshenv. Злоупотребление этой оболочкой может привести к повышению привилегий.
Уязвимость, получившая идентификатор CVE-2021-30892 , была исправлена Apple 26 октября 2021 года с выходом обновлений для macOS Monterey, Catalina и Big Sur.
Сбалансированная диета для серого вещества