Специалист итальянской компании Segment Филиппо Кавалларин (Filippo Cavallarin) обнаружил новый способ обхода Gatekeeper в macOS 10.14.5 (Mojave) и ниже. По словам исследователя, основная проблема заключается в том, что Gatekeeper воспринимает внешние накопители и сети как безопасную зону, не применяя к ним флаг com.apple.quarantine, что в сочетании с другими легитимными функциями macOS может привести к запуску недоверенных приложений.
Дело в том, что macOS поддерживает символические ссылки (symbolic link) во время автоматического монтирования (например, с использованием autofs), что позволяет атакующему выполнить произвольный код, «не потревожив» Gatekeeper.
Символические ссылки позволяют создать файл, который содержит в себе путь до искомого объекта файловой системы, сохраненного в другой папке или на другом диске (включая сетевые ресурсы). Хуже того, будучи помещены в архив, они не проходят верификацию, то есть пользователя можно обманом вынудить кликнуть на них, запросив некой контент из удаленного источника.
Показанный экспертом proof-of-concept весьма прост: он модифицировал файлы приложения «Калькулятор» и его иконку, включив в них bash-скрипт для запуска другого исполняемого файла (в данном случае iTunes). Видео ниже демонстрирует, что такой метод может использоваться для получения reverse shell на компьютере жертвы.
«Чтобы лучше понять, как работает эксплоит, давайте рассмотрим следующий сценарий:
злоумышленник создает файл ZIP, содержащий символическую ссылку на конечную точку автомонтирования, которую он контролирует (ex Documents -> /net/evil.com/Documents), и отправляет это жертве. Жертва скачивает вредоносный архив, извлекает его и переходит по символической ссылке. Теперь жертва находится зоне, подконтрольной злоумышленнику, но которой доверяет Gatekeeper, поэтому любой контролируемый атакующим исполняемый файл может быть запущен без предупреждения», — пишет исследователь.
Издание Bleeping Computer не только подтверждает работоспособность эксплоита эксперта, но и сообщает, что Кавалларин сообщил Apple о найденной проблеме еще в феврале 2019 года, выждал положенные 90 дней, но так и не дождался выхода патча. По словам специалиста, инженеры Apple обещали устранить баг в мае 2019 года, однако исправления до сих пор нет, а исследователю перестали отвечать на письма. Кавалларин подчеркивает, что патч для похожей проблемы CVE-2019-8589, опубликованный недавно, не исправляет найденный им способ обхода Gatekeeper и относится к другой проблеме.