WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

Реализации

OpenBSD

Разработчики OpenBSD реализовали ASLR одними из первых. ASLR включена по умолчанию.

Linux

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

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

Microsoft Windows

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

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

ASLR не используется для приложений, собранных без специальных флагов, и при работе в режиме совместимости с более ранними версиями Windows.

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

Mac OS X

Некоторая случайность при загрузке библиотек добавлена в ОС Mac OS X v10.5 Leopard (2007 год)[3]. В OS X 10.8 Mountain Lion (2012) ASLR является частью ядра системы[4].

iOS

В ОС iOS технология ASLR используется, начиная с версии 4.3[5]. Для ядра используется с iOS 6[6].

Недостатки

Для использования ASLR исполняемые файлы требуется собирать со специальными флагами. В результате в коде не будут использоваться постоянные адреса, но при этом:

  • увеличится размер кода исполняемых файлов;
  • увеличится время загрузки в память каждого исполняемого файла;
  • возникнет дополнительная несовместимость с ПО и библиотеками, разработанным под версии ОС без ASLR.

Кроме того, защиту можно обойти через истощение памяти[7] или методы Heap Spray[8].

Примечания

  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
  3. Memory randomization (ASLR) coming to Mac OS X Leopard | ZDNet
  4. OS X Mountain Lion Core Technologies Overview (June 2012). Проверено 25 июля 2012.
  5. Pwn2Own day 2: iPhone, BlackBerry beaten; Chrome, Firefox no-shows. — «iOS 4.3 introduces Address Space Layout Randomization (ASLR)».
  6. http://people.oregonstate.edu/~jangye/assets/papers/2016/jang:drk-bh.pdf
  7. Простой обход защиты ASLR в Windows 7/8
  8. https://www.owasp.org/images/0/01/OWASL_IL_2010_Jan_-_Moshe_Ben_Abu_-_Advanced_Heapspray.pdf

Литература

  • Фленов М. Е. Программирование на C++ глазами хакера. 2 изд.. — БХВ-Петербург, 2011. — С. 53. ISBN 978-5-9775-0303-7.
  • Саша Голдштейн, Дима Зурбалев, Идо Флатов. Оптимизация приложений на платформе .NET с использованием языка C#. — ДМК Пресс, 2014. — С. 524. ISBN 978-5-457-83128-5.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии