В компании близки к пониманию всех аспектов атаки, но одна уязвимость вызывает множество вопросов.
В начале лета эксперты Лаборатории Касперского обнаружили масштабную кибероперацию, направленную на заражение iPhone российских пользователей. Эта операция получила название «Операция Триангуляция». Российские официальные структуры обвинили в её организации американские спецслужбы.
Apple заявила о своем непричастности к шпионским атакам и выпустила патчи для устранения уязвимостей, которые использовались для взлома.
Многие российские организации решили отказаться от использования iPhone. Тем временем, Лаборатория Касперского продолжала исследование данной операции.
27 декабря 2023 года на конгрессе Chaos Communication Congress (37C3) в Гамбурге эксперты компании представили
результаты исследования «Операция Триангуляция», раскрывающего сложную цепочку атак на устройства Apple.
Цепочка атаки «Операция Триангуляция»
Атака, осуществляемая через приложение iMessage, не требует активных действий от пользователя. Основная ее особенность заключается в использовании четырех уязвимостей «нулевого дня» в iOS до версии 16.2.
- Злоумышленники отправляли через iMessage вредоносное вложение, которое обрабатывается приложением без ведома пользователя.
- Для удаленного выполнения кода вложение эксплуатирует уязвимость CVE-2023-41990 в недокументированной инструкции ADJUST, предназначенной для шрифтов TrueType, которая присутствовала только на устройствах Apple. Эта инструкция существовала с начала 90-х годов и была удалена в вышедшем исправлении.
- В атаке была использована техника возвратно- и переходно-ориентированного программирования. Проникновение происходило в несколько этапов с использованием языка запросов NSExpression/NSPredicate, при этом в среду библиотеки JavaScriptCore вносились изменения, позволявшие выполнить эксплойт на JavaScript для повышения привилегий.
- Эксплойт обфусцирован с целью сделать его полностью нечитаемым и минимизировать его размер. Тем не менее, в нем около 11 000 строк кода, которые в основном посвящены манипуляциям с памятью JavaScriptCore и памятью ядра.
- Эксплойт использует DollarVM ($vm), отладочный функционал JavaScriptCore, чтобы манипулировать памятью JavaScriptCore из скрипта и исполнять нативные функции API.
- Эксплойт был разработан для запуска как на старых, так и новых iPhone и предусматривал обход Pointer Authentication Code (PAC) для работы на более новых моделях.
- В нем использовалась уязвимость CVE-2023-32434 , связанная с целочисленным переполнением в системных вызовах для работы с памятью ядра XNU (mach_make_memory_entry и vm_map). Она позволяла получить доступ на чтение-запись ко всей физической памяти устройства на уровне пользователя.
- Для обхода Page Protection Layer (PPL) используются аппаратные регистры ввода-вывода через память (MMIO). Эта проблема была устранена в исправлении CVE-2023-38606 .
- В результате эксплуатации всех уязвимостей JavaScript-эксплойт получает полный контроль над устройством и может запускать шпионские программы, но злоумышленники пошли иным путем: а) запустили процесс IMAgent и внедрили в него полезную нагрузку, стирающую с устройства следы атаки; b) запустили процесс Safari в фоновом режиме и перенаправили его на веб-страницу для перехода к следующему этапу.
- Веб-страница содержит скрипт, верифицирующий жертву, и, если проверка пройдена, происходит переход к следующему этапу — загрузке эксплойта для Safari.
- Эксплойт для Safari использует уязвимость CVE-2023-32435 , связанную с выполнением шелл-кода.
- Шелл-код запускает еще один эксплойт ядра в виде объектного файла Mach. Он использует те же уязвимости CVE-2023-32434 и CVE-2023-38606 , также впечатляет своими размерами и функциональностью, но совершенно не похож на эксплойт для ядра, написанный на JavaScript. Совпадают лишь некоторые части, связанные с эксплуатацией вышеупомянутых уязвимостей. Тем не менее, большая часть его кода также предназначена для чтения памяти ядра и манипуляций с ней. В нем присутствуют различные утилиты для работы с уже скомпрометированными устройствами, которые в основном не используются.
- Эксплойт получает привилегии root и запускает другие этапы, отвечающие за загрузку шпионского ПО.
Эксперты Лаборатории Касперского практически завершили обратный инжиниринг всех аспектов этой цепочки атак и в новом году выпустят серию статей с подробным описанием каждой уязвимости и ее эксплуатации. Однако они признали, что некоторые аспекты одной конкретной уязвимости им не удалось до конца понять. Речь идет об уязвимости CVE-2023-38606 . Новые модели iPhone имеют дополнительную аппаратную защиту чувствительных областей памяти ядра. Она не позволяет злоумышленникам получить полный контроль над устройством, даже если у них есть доступ на чтение-запись в память ядра, как в случае этой атаки с использованием уязвимости CVE-2023-32434 . В компании выяснили, что для обхода этой аппаратной защиты злоумышленники используют другую аппаратную функцию SoC компании Apple.
С ее помощью злоумышленники могут записать необходимые данные по нужному физическому адресу в обход аппаратной защиты памяти, для этого необходимо записать данные, адрес назначения и хэш данных в недокументированные, не используемые прошивкой аппаратные регистры чипа.
Эксперты предполагают, что эта недокументированная аппаратная функция, скорее всего, предназначалась для отладки или тестирования инженерами Apple или на заводе-изготовителе, либо была включена по ошибке. Поскольку эта функция не активна в прошивке, специалисты понятия не имеют, как злоумышленники догадались, как ее использовать.
В технической части отчета исследователи подробнее рассказали о уязвимости CVE-2023-38606.