Skip to main content

новые ошибки безопасности iOS

Примерно через месяц после того, как Apple выпустила iOS 16.3 и macOS 13.2, были подробно описаны дополнительные исправления безопасности, которые были включены в обновления. Теперь Trellix, команда, которая обнаружила две из этих ошибок для iOS и macOS, рассказала больше о том, как они обнаружили то, что они называют «большим новым классом ошибок». Хотя новые эксплойты были быстро исправлены Apple, Trellix заявляет, что «все еще изучает» «огромный спектр» потенциальных уязвимостей, которые могут подвергнуть риску сообщения, фотографии, данные о местоположении и многое другое на iPhone и Mac.

Ранее на этой неделе Apple обновила свою страницу безопасности, указав информацию о том, что в iOS 16.3 были исправлены три уязвимости, о которых ранее не сообщалось. Как оказалось, две из них классифицируются охранной фирмой Trellix как «новый класс ошибок», которые могут выполнять произвольный код вне «песочницы» в iOS.

Старший исследователь Остин Эммитт из Trellix подробно рассказал, как его команда обнаружила уязвимость нового типа, в подробном сообщении в блоге (через Macworld).

Интересно, что история восходит на несколько лет к 2021 году, когда FORCEDENTRY удаленная атака с нулевым щелчком, которая использовала эксплойт из двух частей, была использована для установки вредоносного ПО Pegasus. Когда всплыли подробности о том, как это работает, Эммитт и его команда сосредоточили свои исследования на том, как это удалось обойти песочницу iOS.

В части 1 описано начальное использование кода для синтаксического анализа PDF, а в части 2 описан выход из песочницы. Хотя первому эксплойту было уделено много внимания, нас гораздо больше интересовал второй, поскольку он описывал способ динамического выполнения произвольного кода в другом процессе, который полностью обходил подписание кода. В нем участвовал NSPredicate, невинно выглядящий класс, который позволяет разработчикам фильтровать списки произвольных объектов. На самом деле синтаксис NSPredicate — это полноценный язык сценариев. Все это время возможность динамически генерировать и запускать код на iOS была официальной функцией. Однако это было только начало, так как эта функция выявила совершенно новый класс ошибок, полностью нарушающий межпроцессную безопасность в macOS и iOS.

Как оказалось, ранее в 2021 году был проект, в котором использовалась механика NSPredicate, «See No Eval» от CodeColorist. С тех пор Apple выпустила исправления для исправления этих эксплойтов, но в ходе своего исследования Trellix обнаружила новые способы обхода исправлений Apple.

В этих средствах защиты использовался большой черный список, чтобы предотвратить использование определенных классов и методов, которые явно могли поставить под угрозу безопасность. Однако мы обнаружили, что эти новые меры можно обойти. Используя методы, которые не были ограничены, можно было очистить эти списки, активировав все те же методы, которые были доступны ранее. Apple присвоила этому обходу CVE-2023-23530. Что еще более важно, мы обнаружили, что почти каждую реализацию NSPredicateVisitor можно обойти.

Первая уязвимость, которую Trellix обнаружила в новом классе ошибок, была в coreduetd, «процессе, который собирает данные о поведении на устройстве». Вот как это работает:

Злоумышленник с выполнением кода в процессе с соответствующими правами, такими как Messages или Safari, может отправить вредоносный NSPredicate и выполнить код с привилегиями этого процесса. Этот процесс выполняется с правами root в macOS и дает злоумышленнику доступ к календарю, адресной книге и фотографиям пользователя. Очень похожая проблема с тем же влиянием также влияет на contextstore, процесс, связанный с CoreDuet. Этот результат аналогичен FORCEDENTRY, когда злоумышленник может использовать уязвимую службу XPC для выполнения кода из процесса с большим доступом к устройству.

Демоны appstored (и appstoreagent в macOS) также обладают уязвимыми службами XPC. Злоумышленник, контролирующий процесс, который может взаимодействовать с этими демонами, может использовать эти уязвимости, чтобы получить возможность устанавливать произвольные приложения, включая даже системные приложения.

Исследователи также обнаружили больше уязвимостей в том же классе ошибок, «к которым может получить доступ любое приложение без каких-либо прав». Один из них смог «считывать потенциально конфиденциальную информацию из системного журнала», а другой мог «достичь выполнения кода внутри SpringBoard, приложения с высокими привилегиями, которое может получить доступ к данным о местоположении, камере и микрофону, истории звонков, фотографиям и другим конфиденциальным данным. , а также стереть устройство».

Эммит говорит, что благодарен Apple за быстрое исправление недостатков, обнаруженных его командой. Но хотя любой, кто установил iOS 16.3 и macOS 13.2, защищен от двух обнаруженных конкретных недостатков, Эммитт поделился, что «две техники открыли огромный спектр потенциальных уязвимостей, которые мы все еще изучаем».

Чтобы узнать все технические подробности, ознакомьтесь с полным вскрытием от Остина Эммитта.