tgoop.com/codeby_sec/9453
Last Update:
Исследователь из команды Google Project Zero детально описал новый метод удаленной утечки адресов памяти в операционных системах macOS и iOS. Этот подход позволяет обойти ключевую технологию безопасности — рандомизацию макета адресного пространства (ASLR), — не используя традиционные уязвимости повреждения памяти или атаки по боковым каналам, основанные на времени.
Исследование было инициировано в 2024 году в рамках внутренней дискуссии в Project Zero о поиске новых способов удаленного обхода ASLR на устройствах Apple. Хотя в ходе работы не была выявлена конкретная уязвимая система или приложение в реальном мире, исследователь создал работающий прототип (proof-of-concept) на основе искусственного тестового случая с использованием фреймворка сериализации NSKeyedArchiver в macOS.
Полученные выводы были ответственно раскрыты компании Apple, которая изучила проблему и устранила ее в своих обновлениях безопасности, выпущенных 31 марта 2025 года.
В основе техники лежит предсказуемое поведение процессов сериализации и внутренняя работа объектов NSDictionary (которые, по сути, являются хэш-таблицами) в среде Apple.
Цель атаки
— утечка адреса памяти системного синглтона (уникального объекта)
NSNull
. Адрес этого объекта используется в качестве его хэш-значения. Утечка этого хэш-значения эквивалентна утечке самого адреса объекта, что подрывает защиту
ASLR
для общей области памяти (кэша), в которой он находится.
Комбинируя эти результаты, можно вычислить точное местоположение синглтона
NSNull
в памяти, что эффективно обходит защиту
ASLR
для этой области.
Данное исследование демонстрирует, что использование сырых указателей на объекты (их адресов в памяти) в качестве основы для хэш-значений в структурах данных может привести к прямой утечке конфиденциальной информации, если результат сериализации становится доступен злоумышленнику.
В отличие от классических атак по боковым каналам, которые измеряют разницу во времени выполнения операций, этот метод опирается исключительно на детерминированный (предсказуемый) результат процесса сериализации.
Исследователь отмечает, что наиболее надежным способом защиты является отказ от использования адресов объектов в качестве хэш-ключей или дополнительное хэширование этих адресов с помощью случайной функции, чтобы предотвратить их прямое раскрытие.

