Address Space Layout Randomization

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Address space layout randomization (ASLR) — технология, применяемая в операционных системах, при использовании которой случайным образом изменяется расположение в адресном пространстве процесса важных структур, а именно: образа исполняемого файла, подгружаемых библиотек, кучи и стека.

Технология ASLR значительно усложняет успешную эксплуатацию нескольких типов уязвимостей. Например, даже если при помощи переполнения буфера или другим методом атакующий получит возможность передать управление по произвольному адресу, ему нужно будет угадать, где же именно расположен стек или куча или другие места в памяти в которые он может поместить шелл-код. Сходные проблемы возникнут и при атаке типа Возврат в библиотеку (return-to-libc), так как атакующий не знает адреса, по которому загружена библиотека. В данных примерах от нападающего скрыты конкретные адреса. Если ему не удастся угадать правильный адрес, приложение скорее всего аварийно завершится, тем самым лишив атакующего возможности повторной атаки и привлекая внимание системного администратора.

Реализации[править | править исходный текст]

OpenBSD[править | править исходный текст]

Одна из ранних реализаций ASLR. Включено по умолчанию

Linux[править | править исходный текст]

С 2005 года (ядро 2.6.12) Линукс имеет простой вариант ASLR. Различные патчи безопасности (PaX, ExecShield, и др) реализуют более сложные и полные варианты ASLR. В дистрибутивах, содержащих в названии «Hardened», а также в современных версиях Ubuntu, сильные варианты включены по умолчанию.

Для случайного расположения в памяти образа исполняемого файла он должен быть скомпилирован в режиме Position-independent executable (вариант Позиционно-независимого кода для исполняемых файлов).

Microsoft Windows[править | править исходный текст]

Поддерживается начиная с Windows Vista (2007) [1] для исполнимых файлов и библиотек, собранных сo специальными флагами.

Также поддерживается в более поздних версиях Windows, таких как Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows 8.1.

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

При помощи набора средств Microsoft EMET[2] (Enhanced Mitigation Experience Toolkit) включается для любых выбранных приложений на Windows XP и Windows Server 2003.

Mac OS X[править | править исходный текст]

Некоторая случайность при загрузке библиотек добавлена в Mac OS X v10.5 (2007). В OS X Mountain Lion является частью ядра системы.


Ссылки[править | править исходный текст]

Источники информации[править | править исходный текст]

  1. Windows ISV Software Security Defenses. Msdn.microsoft.com. Проверено 10 апреля 2012.
  2. Windows Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition (PRO-Developer) ISBN 978-0-7356-2530-3