Статьи ·

Защита памяти iPhone 17: тег в железе против шпионского ПО

Apple встроила в iPhone 17 и iPhone Air проверку тегов памяти на уровне чипа. Шпионскому ПО теперь приходится обходить защиту, которая срабатывает раньше, чем эксплойт успевает что-то сделать.

Схема Apple о блокировке цепочек эксплойтов
Схема Apple: как MIE блокирует цепочки эксплойтов. Фото: Apple.

Главная угроза для iPhone, по версии Apple, это коммерческое шпионское ПО: оно создается под конкретных людей и стоит миллионы долларов. Такие цепочки атак, отмечает компания, раз за разом упираются в одно и то же слабое место: ошибки работы с памятью.

Ответом стала технология Memory Integrity Enforcement, сокращенно MIE. Она появилась в iPhone 17 и iPhone Air вместе с чипами A19 и A19 Pro и работает постоянно, без переключателя в настройках.

Как тег ловит чужое обращение к памяти

Каждому участку памяти присваивается секретный тег, а указатель, который к нему обращается, должен нести точно такой же. Если код выходит за границы буфера или обращается к уже освобожденной памяти, теги не совпадают, и железо блокирует доступ.

Здесь важна одна деталь: проверка идет в строгом синхронном режиме. Несовпадение останавливает процесс сразу, не оставляя атакующему окно, в которое можно успеть выполнить вредоносный код. Именно поэтому Apple отказалась от асинхронного режима, где ошибка замечается уже после доступа.

В основе MIE лежит не исходная спецификация Arm, а ее усиленная версия, вышедшая в 2022 году, Enhanced Memory Tagging Extension, сокращенно EMTE. Apple дорабатывала ее вместе с Arm: в частности, доступ к памяти без тега из области с тегом теперь тоже требует знания тега этой области. Поверх EMTE работают защищенные аллокаторы, которые раскладывают память по типам, и политики конфиденциальности тегов, закрывающие утечки через побочные каналы.

Цепочки, которые не удалось пересобрать

Apple заявляет, что MIE защищает ядро системы и более 70 пользовательских процессов.

Для проверки инженеры компании взяли шесть реальных цепочек эксплойтов, которые раньше применялись на практике, и попытались пересобрать их под защитой MIE. Ни одну цепочку восстановить не удалось: защита отсекала столько шагов, что заменой отдельных ошибок дело уже не спасалось.

Вывод Apple звучит осторожно: абсолютной защиты не существует, а отдельные ошибки, например переполнение внутри одного участка памяти, могут пережить проверку. Но такие случаи, по оценке компании, редки, и из них почти не складывается сквозной эксплойт. Смысл MIE в другом: разработка шпионского ПО становится заметно дороже и сложнее, потому что привычные приемы работы с памятью ломаются на уровне железа.