В недавних обновлениях iOS и iPadOS 16.3 и macOS 13.2, помимо всего прочего, были закрыты уязвимости, зарегистрированные как CVE-2023-23530 и CVE-2023-23531. Рассказываем, что это за уязвимости, почему важно обратить на них внимание, при чем тут шпионское ПО Pegasus, а также почему стоит всерьез воспринимать эти и последующие обновления безопасности iOS, iPad и macOS.
NSPredicate, FORCEDENTRY, Pegasus и все-все-все
Чтобы объяснить, почему эти обновления важны, придется начать издалека. Программной основой приложений на операционных системах Apple является фреймворк Foundation (собственно, уже само его название намекает на это). Процитируем его официальное описание со страницы для разработчиков:
Чуть больше двух лет назад, в январе 2021 года, эксперт по безопасности iOS, известный под ником CodeColorist, опубликовал исследование, в котором показал, как особенности реализации классов NSPredicate и NSExpression, являющихся частью того самого фреймворка Foundation, позволяют использовать их для исполнения произвольного кода. Эти классы как раз и отвечают в данном фреймворке за сортировку и фильтрацию данных. В контексте нашего рассказа важно, что, по сути, эти инструменты позволяют выполнять на устройстве скрипты, которые обрабатываются без проверки цифровой подписи кода.
Собственно, основной находкой CodeColorist и стал тот факт, что с помощью таких скриптов можно обходить используемые Apple механизмы безопасности, включая изоляцию приложений. В результате это дает возможность написать вредоносное приложение, которое сможет воровать данные у других приложений — например, переписку пользователя или произвольные фотографии из галереи.
В марте 2022 года была опубликована работа о практической реализации
такого приложения — эксплойта «нулевого клика» FORCEDENTRY, с помощью которого распространялся печально известный зловред Pegasus. Уязвимости, связанные с NSPredicate и NSExpression, позволяли этому зловреду совершать «побег из песочницы» —получать доступ к данным и функциям за теми строго очерченными границами, в пределах которых в iOS работают все приложения.
После публикации теоретической работы CodeColorist и практического исследования эксплойта FORCEDENTRY Apple приняли некоторые меры предосторожности и добавили ряд ограничений. Однако новое исследование показывает, что их все еще несложно обойти.
Чем опасны уязвимости CVE-2023-23530 и CVE-2023-23531
Новыми путями обхода этих ограничений стали уязвимости CVE-2023-23530 и CVE-2023-23531. Первая из них, CVE-2023-23530, связана с тем, как именно в Apple решили проблему. Для этого разработчики составили длинные списки запрещенных в рамках NSPredicate классов и методов, которые представляют очевидную угрозу безопасности. Загвоздка в том, что, используя не запрещенные списками методы, можно эти списки очистить — и после этого пользоваться полным набором методов и классов.
Вторая уязвимость, CVE-2023-23531, связана с реализацией взаимодействия между процессами в системах iOS и macOS, а также c тем, как принимающий данные процесс фильтрует входящую информацию. Если совсем упростить, то процесс, отправляющий данные, может приписать к ним «написанному верить», а после этого скормить принимающему процессу вредоносный скрипт, использующий NSPredicate, который в ряде случаев будет выполнен без проверки.
По словам исследователей, эти две методики обхода проверок безопасности делают возможной эксплуатацию целого ряда конкретных уязвимостей. В свою очередь, эти уязвимости могут быть использованы атакующим для того, чтобы получать доступ к данным пользователя и опасным функциям операционной системы и даже устанавливать приложения (в том числе системные). То есть CVE-2023-23530 и CVE-2023-23531 позволяют создавать новые аналоги эксплойта FORCEDENTRY.
В качестве демонстрации возможностей CVE-2023-23530 и CVE-2023-23531 исследователи сняли видео, в котором показали, как вредоносное приложение может получить возможность выполнять код внутри системного приложения SpringBoard (отвечает за главный экран в IOS) на iPad. А это приложение, в свою очередь, обладает высокими привилегиями и имеет массу доступов — к данным геолокации, камере и микрофону, истории звонков, фотографиям и так далее, а также способно полностью очистить устройство.
Что это значит для безопасности iOS и macOS
Надо подчеркнуть, что, с одной стороны, опасность уязвимостей CVE-2023-23530 и CVE-2023-23531 пока сугубо теоретическая, случаев их эксплуатации «в живой природе» еще не зафиксировано. А поскольку эти дыры уже закрыты апдейтами Apple, те, кто вовремя устанавливает обновления, по идее, защищены.
С другой стороны, мы не знаем, насколько эффективно в Apple закрыли дыры на этот раз. Возможно, и на эти заплатки найдутся новые обходные пути. Во всяком случае, сами исследователи в комментарии Wired достаточно уверенно высказывают предположение, что новые уязвимости этого класса продолжат находить.
Также стоит не забывать, что одной лишь возможности исполнять с помощью NSPredicate скрипты в iOS для успешного взлома недостаточно. Атакующему еще нужно каким-то образом пробраться на устройство жертвы, чтобы в принципе получить возможность что-то с ним сделать. Например, в случае FORCEDENTRY для этого использовались другие уязвимости: через сообщение iMessage на атакуемое устройство подсовывался зараженный PDF, замаскированный под невинный GIF-файл.
Велика вероятность использования подобных уязвимостей в APT-атаках, поэтому будет нелишним напомнить о том, какие специализированные контрмеры можно предпринять. Об этом у нас есть отдельный пост, в котором директор глобального центра исследований (GReAT) Костин Райю подробно объясняет, как можно защититься от вредоносного ПО класса Pegasus и почему эти меры могут быть эффективны. Здесь же приведем краткую версию его советов:
- Почаще перезагружайте свои айфоны и айпады — как правило, атакующим сложно закрепиться в iOS навсегда, так что зловред живет на устройстве только до перезагрузки.
- Отключите iMessage и FaceTime, если это возможно — эти сервисы являются слишком уж удобной точкой входа для атаки на iOS-устройство.
- Используйте альтернативный браузер — скажем, Firefox Focus вместо Safari.
- Не кликайте по ссылкам из сообщений.
- Установите надежную защиту на все ваши устройства.
- И, конечно же, вовремя обновляйте операционные системы — видимо, в ближайшем будущем обновлениям iOS, iPadOS и macOS придется уделять повышенное внимание.