Gatekeeper призван ограждать Mac OS X от сомнительных программ и зловредов, просочившихся в закрытую экосистему Apple. Этот защитный механизм также стал популярной точкой приложения усилий для исследователей и продвинутых хакеров, которые стремятся получить контроль над устройствами Apple.

Выступая на конференции Virus Bulletin, стартовавшей вчера в Праге, глава исследовательского подразделения Synack Патрик Уордль (Patrick Wardle) продемонстрировал обход Gatekeeper, над исполнением которого ему пришлось немного потрудиться. В комментарии Threatpost исследователь отметил, что уже поделился своей находкой с Apple и компания готовит фикс, предоставляющий временную защиту до выхода полноценного патча. Дело в том, что предложенный Уордлем способ обхода использует недочет в разработке, устранение которого потребует некоторых изменений в архитектуре ОС.

Прежде чем разрешить исполнение приложения на Apple-устройстве, Gatekeeper выполняет ряд проверок. Так, например, он блокирует код, не подписанный сертификатом разработчика Apple, а также коды, загруженные из сторонних магазинов. Однако этот сторож, по словам Уордля, не проверяет способность приложения запускать или загружать другие программы или динамические библиотеки из той же или относительной директории.

Приложение, прошедшее первую статическую проверку Gatekeeper, далее им не обрабатывается и воспринимается как доверенное. Уордль усмотрел в этом лазейку: злоумышленник может обманом заставить пользователя загрузить из стороннего источника подписанную и зараженную программу. Кроме того, можно провести MitM-атаку, что позволит, к примеру, загрузить в директорию вредоносную библиотеку по HTTP-каналу и обрести плацдарм на атакуемой машине.

Готовясь к PoC-атаке, Уордль нашел бинарный код, подписанный сертификатом от Apple, и оформил его dmg-файлом (образ диска в Mac OS X), который можно, например, предложить пользователю для загрузки, снабдив стандартной иконкой приложения. При активации этот код отыщет в том же .dmg вредоносный «экзешник» и запустит его на исполнение.

обход Gatekeeper

«Ничего сверхсложного, но это эффективный и полноценный обход Gatekeeper, — заявил исследователь. — Он позволяет хакеру прибегнуть к более привычным трюкам: загрузке троянцев, лжеантивирусов или публикации зараженных приложений на Pirate Bay. Меня больше тревожит возможность получения доступа к сети, если противник достаточно искушен. Продвинутый хакер может воспользоваться небезопасной загрузкой против правительственных структур с широкими правами доступа, ему не составит труда выложить легитимный бинарник Apple в связке со зловредом или провести атаку «человек посередине», и Gatekeeper никого не спасет».

Уордль, ранее открывший возможность перехвата Apple dylib, опробовал свой новый способ атаки на Yosemite и полагает, что он актуален для всех версий OS X, в том числе для новейшей El Capitan. Исследователь уже проверил это предположение на бета-версии El Capitan и тоже сумел обойти Gatekeeper.

«Уверен, Gatekeeper — инструмент полезный, — комментирует далее Уордль. — Apple позиционирует его как одну из ключевых технологий в ее ИБ-арсенале, благодаря которой «маки» известны как более безопасные в сравнении с прочими устройствами. Однако на самом деле Gatekeeper является защитой лишь с точки зрения неискушенного пользователя, он способен пресечь только примитивные атаки; для продвинутых хакеров Gatekeeper, полагаю, не составит серьезной преграды. То, о чем идет речь, — не баг, а функциональный недостаток Gatekeeper. Полагаю, исправление потребует значительных изменений в коде, патч с вводом дополнительной проверки, как, скажем, в случае с переполнением буфера, здесь вряд ли поможет».

Пока Apple работает над исправлением ситуации, пользователям рекомендуется проявлять осмотрительность, загружать приложения лишь из доверенных источников и только по HTTPS. У исследователя нет данных об аналогичных атаках itw, однако он еще раз подчеркнул, что Gatekeeper в его нынешнем виде не способен остановить инициаторов атак на правительственные сети.

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

«Если приложение или библиотека скачиваются из Интернета, проверка покажет, соответствует ли загрузка настройкам пользователя, диктующим наличие подписи и конкретный источник, App Store, — поясняет Уордль. — Это вполне выполнимо и в принципе может остановить атаку. Когда исполняемый код, пользующийся доверием Apple, запускает другой, не имеющий подписи и неодобренный, динамический хук это сразу обнаружит. У Apple уже есть готовый фреймворк с перехватом во время исполнения и разными проверками. Думаю, его можно расширить, введя еще и такой контроль».

Категории: Вредоносные программы, Главное, Уязвимости