В период с 2019 по декабрь 2022 года в iMessage существовала чрезвычайно сложная уязвимость, которую исследователи безопасности из Kasperksy, обнаружившие ее, в конечном итоге назвали «Операцией Триангуляция». Теперь они поделились всем, что знают о «самой сложной цепочке атак», которую они «когда-либо видели».
Сегодня на Chaos Communication Congress исследователи безопасности «Лаборатории Касперского» Борис Ларин, Леонид Безвершенкои Георгий Кучерин выступил с докладом об операции «Триангуляция». Это был первый раз, когда эти трое «публично раскрыли подробности всех эксплойтов и уязвимостей, которые использовались» в продвинутой атаке iMessage.
Исследователи также поделились сегодня всей своей работой в блоге Kaspersky SecureList.
Эксплойт Pegasus 0-click iMessage был назван «одним из самых технически сложных эксплойтов». И операция «Триангуляция», похоже, находится на таком же устрашающем уровне: Ларин, Безвершенко и Кучерин заявили, что «это определенно самая изощренная цепочка атак, которую мы когда-либо видели».
Цепочка атак «0 дней» для эксплойта iMessage «0 кликов»
Эта уязвимость существовала до выхода iOS 16.2 в декабре 2022 года.
с помощью Борис Ларин, Леонид Безвершенкои Георгий Кучерин в Касперском
Вот полная сложная цепочка атак, включая четыре нулевых дня, использованных для получения root-прав на устройстве жертвы:
Злоумышленники отправляют вредоносное вложение iMessage, которое приложение обрабатывает, не показывая пользователю никаких признаков. Это вложение использует уязвимость удаленного выполнения кода CVE-2023-41990 в недокументированной инструкции шрифта ADJUST TrueType, предназначенной только для Apple. Эта инструкция существовала с начала девяностых годов, пока ее не удалил патч. Он использует программирование, ориентированное на возврат/переход, и несколько этапов, написанных на языке запросов NSExpression/NSPredicate, а также исправляет среду библиотеки JavaScriptCore для выполнения эксплойта повышения привилегий, написанного на JavaScript. Этот эксплойт JavaScript замаскирован, чтобы сделать его совершенно нечитаемым и минимизировать его размер. Тем не менее, он содержит около 11 000 строк кода, которые в основном посвящены анализу и манипулированию памятью JavaScriptCore и ядра. Он использует функцию отладки JavaScriptCore DollarVM ($vm), чтобы получить возможность манипулировать памятью JavaScriptCore из сценария и выполнять собственные функции API. Он был разработан для поддержки как старых, так и новых iPhone и включал обход кода аутентификации указателя (PAC) для использования последних моделей. Он использует уязвимость целочисленного переполнения CVE-2023-32434 в системных вызовах отображения памяти XNU (mach_make_memory_entry и vm_map) для получения доступа на чтение/запись ко всей физической памяти устройства на уровне пользователя. Он использует аппаратные регистры ввода-вывода, отображаемые в памяти (MMIO), для обхода уровня защиты страниц (PPL). Проблема была устранена как CVE-2023-38606. После использования всех уязвимостей эксплойт JavaScript может делать с устройством все, что захочет, включая запуск шпионского ПО, но злоумышленники решили: (а) запустить процесс IMAgent и внедрить полезную нагрузку, которая удаляет артефакты эксплуатации с устройства; (б) запустить процесс Safari в невидимом режиме и перенаправить его на веб-страницу со следующим этапом. На веб-странице есть скрипт, который проверяет жертву и, если проверки пройдены, получает следующий этап: эксплойт Safari. Эксплойт Safari использует CVE-2023-32435 для выполнения шелл-кода. Шелл-код выполняет еще один эксплойт ядра в виде объектного файла Mach. Он использует те же уязвимости: CVE-2023-32434 и CVE-2023-38606. Он также огромен по размеру и функциональности, но полностью отличается от эксплойта ядра, написанного на JavaScript. У них есть только некоторые части, связанные с эксплуатацией вышеупомянутых уязвимостей. Тем не менее, большая часть его кода также посвящена анализу и манипулированию памятью ядра. Он содержит различные утилиты после эксплуатации, которые по большей части не используются. Эксплойт получает root-права и переходит к выполнению других этапов загрузки шпионского ПО. Об этих этапах мы рассказывали в наших предыдущих постах.
Исследователи подчеркивают, что они почти полностью перепроектировали «каждый аспект этой цепочки атак» и в 2024 году опубликуют больше статей, в которых будет подробно рассмотрена каждая уязвимость и то, как она использовалась.
Но что интересно, Ларин, Безвершенко и Кучерин отмечают, что, когда дело доходит до CVE-2023-38606, остается загадка, с которой им нужна помощь.
В частности, неясно, откуда злоумышленники узнали о скрытой аппаратной функции:
Мы публикуем технические подробности, чтобы другие исследователи безопасности iOS могли подтвердить наши выводы и предложить возможные объяснения того, как злоумышленники узнали об этой аппаратной функции.
В заключение Ларин, Безвершенко и Кучерин говорят, что системы, «которые полагаются на «безопасность через неизвестность», никогда не смогут быть по-настоящему безопасными».
Если вы хотите внести свой вклад в проект, вы можете найти технические подробности в сообщении Касперского.