Приложения для Apple macOS, которые скачивались из отличных от App Store источников и запускались хотя бы раз, можно подменять вредоносными двойниками, утверждают двое исследователей в области кибербезопасности, которые поставили под сомнение эффективность защитной технологии.

«Когда пользователь загружает и открывает приложение, плагин или пакет установщика, полученный не через App Store, Gatekeeper проверяет, получено ли это программное обеспечение от подтверждённого разработчика, заверено ли оно Apple как не содержащее известного вредоносного контента и не было ли оно изменено», — говорится в описании технологии на сайте Apple. На практике, однако, существует способ «незаметно заменить основной исполняемый файл любого загруженного из интернета приложения без необходимости получать повышенные привилегии», утверждают исследователи.
Злоумышленнику нужны средства выполнения кода на уровне пользователя — вредоносное приложение или загруженный скрипт, так что это не уязвимость, которую можно активировать удалённо без участия владельца компьютера. Проблема, однако, в том, что Gatekeeper недостаточно тщательно выполняет функции контроля доступа. Метод не работает с приложениями из Mac App Store, потому что они выполняются с правами root, и процесс с привилегиями пользователя переписать их не может. В зоне риска, однако, остаются приложения из сторонних источников, в том числе Brave, Slack, Signal или Visual Studio Code. Для реализации атаки нужно приложение из стороннего источника, которое запускалось хотя бы один раз.
Gatekeeper проводит начальную проверку приложения, призванную предотвратить последующие изменения пакета. Но существует возможность поместить загруженное из стороннего источника и однажды запускавшееся приложение в архив TAR, удалить оригинал и заменить его вредоносной версией — после этого macOS не потребует повторной авторизации, потому что пакет считается локально созданным и проверке не подлежит, гласит официальная позиция Apple. Реализовать это можно несколькими способами: через средства командной строки, через вредоносный запрос к агенту искусственного интеллекта, через атаку на цепочку поставок через npm, brew или любой другой магазин пакетов.
Технология Gatekeeper должна проверять приложения при изменении их подписи, но на практике этого не делает. Apple не пояснила, почему так происходит, и исследователи предположили, что значение доверия кешируется, и если проверка инициализируется, то «злой двойник» легитимного приложения благополучно её проходит.