ASLR

Поделись знанием:
Перейти к: навигация, поиск

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

Технология 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 является частью ядра системы.


К:Википедия:Статьи без источников (тип: не указан)

iOS

начиная с версии 4.3[3]

Недостатки

  • За счёт необходимости в отвязке кода от постоянного адреса увеличивается размер кода исполнимых файлов, время загрузки каждого исполнимого файла и время компиляции исполнимых файлов.
  • Создаёт дополнительную несовместимость с ПО, разработанным под версии ОС без ASLR.
  • Защита может быть обойдена через истощение памяти.[4]

Напишите отзыв о статье "ASLR"

Примечания

  1. [msdn.microsoft.com/en-us/library/bb430720.aspx 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. [arstechnica.com/security/2011/03/pwn2own-day-2-iphone-blackberry-beaten-chrome-firefox-no-shows Pwn2Own day 2: iPhone, BlackBerry beaten; Chrome, Firefox no-shows]. — «iOS 4.3 introduces Address Space Layout Randomization (ASLR)»
  4. [xakep.ru/2013/01/28/60015/ Простой обход защиты ASLR в Windows 7/8]

Литература

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

Ссылки

  • [www.htbridge.com/publications/defeating_data_execution_prevention_and_aslr_in_windows_xp_sp3.html ASLR Bypass in Windows — Brian Mariani]
  • [pax.grsecurity.net/docs/aslr.txt PaX documentation on ASLR]
  • [grsecurity.net/PaX-presentation_files/frame.htm Comparison of PaX to Exec Shield and W^X]
  • [blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx ASLR for Windows Vista beta 2]
  • [www.wehnus.com ASLR for Windows 2000/XP/2003 (WehnTrust)]
  • [support.microsoft.com/kb/2458544/ru Набор средств EMET- реализация ASLR для Windows XP/2003]
  • [www.phrack.org/issues.html?issue=59&id=9#article Bypassing PaX ASLR protection]
  • [portal.acm.org/citation.cfm?id=1030124&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618 On the effectiveness of address space layout randomization]
  • [www.eweek.com/article2/0,1895,1969505,00.asp Microsoft Finds (Random) Way to Secure Vista]
  • [www.eweek.com/article2/0,1895,2071746,00.asp Windows Vista Randomization Gets OEM Thumbs Up]


Отрывок, характеризующий ASLR

– Bonjour, messieurs! [Здравствуйте, господа!] – громко, отчетливо выговорил Долохов.
Офицеры зашевелились в тени костра, и один, высокий офицер с длинной шеей, обойдя огонь, подошел к Долохову.
– C'est vous, Clement? – сказал он. – D'ou, diable… [Это вы, Клеман? Откуда, черт…] – но он не докончил, узнав свою ошибку, и, слегка нахмурившись, как с незнакомым, поздоровался с Долоховым, спрашивая его, чем он может служить. Долохов рассказал, что он с товарищем догонял свой полк, и спросил, обращаясь ко всем вообще, не знали ли офицеры чего нибудь о шестом полку. Никто ничего не знал; и Пете показалось, что офицеры враждебно и подозрительно стали осматривать его и Долохова. Несколько секунд все молчали.
– Si vous comptez sur la soupe du soir, vous venez trop tard, [Если вы рассчитываете на ужин, то вы опоздали.] – сказал с сдержанным смехом голос из за костра.
Долохов отвечал, что они сыты и что им надо в ночь же ехать дальше.
Он отдал лошадей солдату, мешавшему в котелке, и на корточках присел у костра рядом с офицером с длинной шеей. Офицер этот, не спуская глаз, смотрел на Долохова и переспросил его еще раз: какого он был полка? Долохов не отвечал, как будто не слыхал вопроса, и, закуривая коротенькую французскую трубку, которую он достал из кармана, спрашивал офицеров о том, в какой степени безопасна дорога от казаков впереди их.
– Les brigands sont partout, [Эти разбойники везде.] – отвечал офицер из за костра.
Долохов сказал, что казаки страшны только для таких отсталых, как он с товарищем, но что на большие отряды казаки, вероятно, не смеют нападать, прибавил он вопросительно. Никто ничего не ответил.
«Ну, теперь он уедет», – всякую минуту думал Петя, стоя перед костром и слушая его разговор.
Но Долохов начал опять прекратившийся разговор и прямо стал расспрашивать, сколько у них людей в батальоне, сколько батальонов, сколько пленных. Спрашивая про пленных русских, которые были при их отряде, Долохов сказал:
– La vilaine affaire de trainer ces cadavres apres soi. Vaudrait mieux fusiller cette canaille, [Скверное дело таскать за собой эти трупы. Лучше бы расстрелять эту сволочь.] – и громко засмеялся таким странным смехом, что Пете показалось, французы сейчас узнают обман, и он невольно отступил на шаг от костра. Никто не ответил на слова и смех Долохова, и французский офицер, которого не видно было (он лежал, укутавшись шинелью), приподнялся и прошептал что то товарищу. Долохов встал и кликнул солдата с лошадьми.
«Подадут или нет лошадей?» – думал Петя, невольно приближаясь к Долохову.
Лошадей подали.
– Bonjour, messieurs, [Здесь: прощайте, господа.] – сказал Долохов.
Петя хотел сказать bonsoir [добрый вечер] и не мог договорить слова. Офицеры что то шепотом говорили между собою. Долохов долго садился на лошадь, которая не стояла; потом шагом поехал из ворот. Петя ехал подле него, желая и не смея оглянуться, чтоб увидать, бегут или не бегут за ними французы.
Выехав на дорогу, Долохов поехал не назад в поле, а вдоль по деревне. В одном месте он остановился, прислушиваясь.
– Слышишь? – сказал он.
Петя узнал звуки русских голосов, увидал у костров темные фигуры русских пленных. Спустившись вниз к мосту, Петя с Долоховым проехали часового, который, ни слова не сказав, мрачно ходил по мосту, и выехали в лощину, где дожидались казаки.
– Ну, теперь прощай. Скажи Денисову, что на заре, по первому выстрелу, – сказал Долохов и хотел ехать, но Петя схватился за него рукою.
– Нет! – вскрикнул он, – вы такой герой. Ах, как хорошо! Как отлично! Как я вас люблю.
– Хорошо, хорошо, – сказал Долохов, но Петя не отпускал его, и в темноте Долохов рассмотрел, что Петя нагибался к нему. Он хотел поцеловаться. Долохов поцеловал его, засмеялся и, повернув лошадь, скрылся в темноте.

Х
Вернувшись к караулке, Петя застал Денисова в сенях. Денисов в волнении, беспокойстве и досаде на себя, что отпустил Петю, ожидал его.
– Слава богу! – крикнул он. – Ну, слава богу! – повторял он, слушая восторженный рассказ Пети. – И чег'т тебя возьми, из за тебя не спал! – проговорил Денисов. – Ну, слава богу, тепег'ь ложись спать. Еще вздг'емнем до утг'а.