Что такое ASLR и от чего она защищает?

Рандомизация адресного пространства усложняет предсказание адресов, но не исправляет ошибки памяти: разбираем назначение и ограничения ASLR.

Короткий ответ

Что ответить на собеседовании

ASLR — Address Space Layout Randomization: размещение областей программы в памяти меняется так, чтобы важные адреса было труднее предсказать. Это усложняет эксплуатацию некоторых ошибок памяти, но не устраняет их. Эффективность зависит от платформы, охвата рандомизации, энтропии и отсутствия утечек адресов; ASLR применяют вместе с другими мерами.

Подробный разбор

Ответ с пояснениями

ASLR добавляет непредсказуемость в расположение областей адресного пространства: например, исполняемых модулей, стека или областей динамических выделений. Конкретный набор и момент выбора адресов зависят от ОС, формата программы и настроек. Нельзя обещать, что каждый объект получает новый случайный адрес при каждом обращении.

Зачем это нужно: некоторые способы эксплуатации ошибок памяти опираются на заранее известные адреса данных или исполняемого кода. Рандомизация затрудняет такие предположения. При этом причина ошибки — например, выход за границы буфера — никуда не исчезает.

ASLR не следует путать с запретом исполнения страниц данных или контролем допустимых переходов управления. Эти механизмы решают разные задачи и усиливают друг друга. В Windows отдельные варианты рандомизации модулей и выделений памяти описаны в справке Microsoft по Exploit protection.

Ограничения важны не меньше определения. Утечка адресов может ослабить защиту, а небольшой диапазон возможных размещений — облегчить угадывание. На результат также влияет, все ли необходимые модули поддерживают нужный режим и применяет ли его система.

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку