Осенью 2023 года компания Apple выпустила внеплановое обновление безопасности для устройств iPhone и iPad. Причиной стали уязвимости, которые активно использовались в реальных кибератаках. По информации, предоставленной специалистами из исследовательского центра Citizen Lab, речь шла о новой атаке, связанной с деятельностью израильской фирмы NSO Group.
Хакерам удалось получить доступ к устройству без какого-либо взаимодействия со стороны владельца. Пользователю даже не требовалось открывать сообщение, т. к. достаточно было просто получить его в iMessage. Так вредоносный код проникал в систему. Жертвой стал представитель американской правозащитной организации. Удивительно, что схема сработала даже на версии iOS 16.6, считавшейся на тот момент самой актуальной.
Основным элементом в этой атаке оказался файл формата PKPass, традиционно применяемый для хранения билетов или пропусков. Внутри содержалось изображение, которое с виду представляло собой обычный .png-файл. На деле это был WebP — формат, позволивший обмануть защитные механизмы системы.
Подобная уловка уже использовалась ранее. В 2021 году специалисты связывали с компанией NSO и её шпионским ПО похожий приём, когда вредоносный код скрывался в псевдоизображении.
Ошибки в обработке формата WebP открывали возможность записи данных за пределами разрешённой области памяти. Проблема возникала при использовании таблиц Хаффмана — структур, отвечающих за сжатие изображений. Несмотря на то, что сама по себе уязвимость не предоставляла полного контроля, злоумышленники нашли способ подстроить память устройства под свои цели.
Для этого в файл PKPass добавили ещё одно изображение — background.png, которое на самом деле представляло собой документ в формате TIFF. Внутри него находился поддельный объект CFArray, размещённый таким образом, чтобы занять критически важную часть памяти. Далее в дело вступал объёмный блок данных размером в один мегабайт, выполненный в формате bplist. Именно он окончательно подготавливал память к захвату.
Внутри блока прятался объект CFReadStream, созданный специально для запуска зловредного кода. Механизм срабатывал в тот момент, когда система удаляла объект из памяти: в это время активировалась функция, запускавшая эксплойт.
Как подчеркнули эксперты Citizen Lab, хакерам даже не пришлось обходить защиту Pointer Authentication (PAC), предназначенную для предотвращения подмены указателей. Достаточно было использовать слабое место — незащищённый указатель на структуру, который можно было легко заменить на существующую функцию.
Чтобы преодолеть защиту ASLR, скрывающую реальные адреса в памяти, злоумышленники заранее получили нужные значения. По мнению специалистов, это стало возможным через другую брешь в системе — предположительно в компоненте HomeKit. Она использовалась на подготовительном этапе перед основной атакой.
Финальная стадия подразумевала запуск конструкции под названием NSExpression — разновидности кода, характерной для систем Apple. Сам код был зашифрован и оставался бездействующим до получения второго сообщения от атакующего. Оно содержало ключ, необходимый для расшифровки. После этого активировалась основная часть эксплойта, предположительно направленная на выход за пределы песочницы BlastDoor, чтобы получить полный контроль над устройством.
Ещё по теме:
- Хакеры читают переписки пользователей без технического взлома
- Маск объединил стартап xAI и Twitter, сделав ставку на искусственный интеллект для возрождения социальных сетей
- Ayaneo представила крошечный ПК в стиле Macintosh Classic с откидным дисплеем