stringtranslate.com

Рандомизация макета адресного пространства

Рандомизация структуры адресного пространства ( ASLR ) — это метод компьютерной безопасности , используемый для предотвращения использования уязвимостей , связанных с повреждением памяти . [1] Чтобы злоумышленник не смог надежно перейти, например, к определенной эксплуатируемой функции в памяти, ASLR случайным образом распределяет позиции в адресном пространстве ключевых областей данных процесса , включая базу исполняемого файла и позиции стек , куча и библиотеки .

История

Проект Linux PaX впервые ввел термин «ASLR» и опубликовал первый проект и реализацию ASLR в июле 2001 года как патч для ядра Linux. Это рассматривается как полная реализация, включающая также патч для рандомизации стека ядра с октября 2002 года. [2]

Первой основной операционной системой, поддерживающей ASLR по умолчанию, была OpenBSD версии 3.4 в 2003 году, [3] [4], за которой в 2005 году последовала Linux.

Преимущества

Рандомизация адресного пространства препятствует некоторым типам атак на безопасность, усложняя злоумышленнику предсказание целевых адресов. Например, злоумышленники, пытающиеся выполнить атаку с возвратом в библиотеку, должны найти код, который будет выполнен, в то время как другие злоумышленники, пытающиеся выполнить шелл-код, внедренный в стек, должны сначала найти стек. В обоих случаях система скрывает от злоумышленников соответствующие адреса памяти. Эти значения необходимо угадать, а ошибочное предположение обычно невозможно исправить из-за сбоя приложения.

Эффективность

Рандомизация макета адресного пространства основана на низкой вероятности того, что злоумышленник угадает расположение случайно расположенных областей. Безопасность повышается за счет увеличения пространства поиска. Таким образом, рандомизация адресного пространства более эффективна, когда в случайных смещениях присутствует большая энтропия . Энтропия увеличивается либо за счет увеличения объема области виртуальной памяти , в которой происходит рандомизация, либо за счет уменьшения периода, в течение которого происходит рандомизация. Период обычно реализуется как можно меньшим, поэтому большинство систем должны увеличить рандомизацию пространства VMA.

Чтобы обойти рандомизацию, злоумышленники должны успешно угадать позиции всех областей, которые они хотят атаковать. Для таких областей данных, как стек и куча, куда можно загрузить собственный код или полезные данные, можно атаковать более одного состояния с помощью слайдов NOP для кода или повторяющихся копий данных. Это позволяет атаке добиться успеха, если область рандомизирована по одному из нескольких значений. Напротив, такие области кода, как база библиотеки и основной исполняемый файл, должны быть точно обнаружены. Часто эти области смешиваются, например, в стек вставляются кадры стека , а в него возвращается библиотека.

Могут быть объявлены следующие переменные:

Чтобы вычислить вероятность успеха злоумышленника, необходимо принять количество попыток α , выполненных без прерывания сигнатурной IPS, правоохранительными органами или другим фактором; в случае брутфорса демон не может быть перезапущен. Также необходимо рассчитать количество соответствующих битов и количество атакуемых в каждой попытке, оставив столько битов, которые атакующий должен уничтожить.

Следующие формулы представляют вероятность успеха для данного набора α -попыток на N битах энтропии.

Во многих системах их число может исчисляться тысячами или миллионами; в современных 64-битных системах эти числа обычно достигают как минимум миллионов, Гектор Марко-Гисберт и Исмаэль Риполл показали в 2014 году, как обойти ASLR в 64-битных системах менее чем за одну секунду при определенных обстоятельствах. [5] Для 32-битных систем на компьютерных скоростях 2004 года, которые имеют 16 бит для рандомизации адресов, Шачам и его коллеги утверждают, что «... 16 бит рандомизации адресов можно преодолеть с помощью грубой атаки за считанные минуты». [6] Утверждение авторов зависит от возможности атаковать одно и то же приложение несколько раз без каких-либо задержек. Правильные реализации ASLR, например, включенные в grsecurity, предоставляют несколько способов сделать такие атаки методом перебора невозможными. Один из методов предполагает предотвращение выполнения исполняемого файла в течение настраиваемого периода времени, если он произошел сбой определенное количество раз.

Android, [7] [ необходим неосновной источник ] и, возможно, другие системы, [ какие? ] реализовать рандомизацию порядка загрузки библиотек — форму ASLR, которая рандомизирует порядок загрузки библиотек. Это обеспечивает очень небольшую энтропию. Ниже приведено приблизительное количество бит энтропии, предоставленной для каждой необходимой библиотеки; это еще не учитывает различные размеры библиотек, поэтому фактическая полученная энтропия действительно несколько выше. Злоумышленникам обычно нужна только одна библиотека; математика более сложна с несколькими библиотеками и также показана ниже. Случай, когда злоумышленник использует только одну библиотеку, представляет собой упрощение более сложной формулы для .

Эти значения имеют тенденцию быть низкими даже для больших значений l , что наиболее важно, поскольку злоумышленники обычно могут использовать только стандартную библиотеку C , и поэтому часто можно предположить, что . Однако даже для небольшого количества библиотек здесь можно получить некоторый выигрыш в энтропии; Таким образом, потенциально интересно объединить рандомизацию порядка загрузки библиотеки со рандомизацией адресов VMA, чтобы получить несколько дополнительных бит энтропии. Эти дополнительные биты энтропии не будут применяться к другим сегментам mmap(), а только к библиотекам.

Уменьшение энтропии

Злоумышленники могут использовать несколько методов для уменьшения энтропии, присутствующей в рандомизированном адресном пространстве, начиная от простых утечек информации и заканчивая атакой на несколько битов энтропии за атаку (например, путем распыления кучи ). С этим мало что можно сделать.

Возможна утечка информации о структуре памяти с использованием уязвимостей форматной строки . Функции форматирования строк, такие как printf, для выполнения своей работы используют список переменных аргументов ; спецификаторы формата описывают, как выглядит список аргументов. Из-за того, как обычно передаются аргументы, каждый спецификатор формата перемещается ближе к вершине кадра стека. В конце концов, указатель возврата и указатель кадра стека могут быть извлечены, обнаруживая адрес уязвимой библиотеки и адрес известного кадра стека; это может исключить рандомизацию библиотеки и стека как препятствие для злоумышленника.

Также можно уменьшить энтропию в стеке или куче. Стек обычно должен быть выровнен по 16 байтам, поэтому это наименьший возможный интервал рандомизации; в то время как куча должна быть выровнена по страницам, обычно 4096 байт. При попытке атаки можно согласовать повторяющиеся атаки с этими интервалами; слайд NOP может использоваться с внедрением шелл-кода, а строка ' /bin/sh' может быть заменена на ' ////////bin/sh' для произвольного количества косых черт при попытке вернуться в систему . Количество удаленных битов соответствует ровно n атакуемым интервалам.

Такое уменьшение ограничено объемом данных в стеке или куче. Например, стек обычно ограничен8  МБ [8] и становится намного меньше; это позволяет максимум19 бит , хотя более консервативная оценка будет около 8–10 бит соответствуют 4–16  КБ [8] начинки стека. С другой стороны, куча ограничена поведением распределителя памяти; в случае с glibc выделения размером более 128 КБ создаются с использованием mmap , что ограничивает злоумышленников сокращением до 5 бит. Это также является ограничивающим фактором при брутфорсе; хотя количество атак можно сократить, размер атак увеличивается настолько, что в некоторых обстоятельствах поведение может стать очевидным для систем обнаружения вторжений .

Ограничения

Адреса, защищенные ASLR, могут просочиться по различным боковым каналам, что приведет к удалению утилиты предотвращения. В недавних атаках использовалась информация, утекшая из буфера прогнозирования целевых объектов ветки ЦП (BTB) или блоков управления памятью (MMU) в таблицах проходящих страниц. Неясно, можно ли смягчить этот класс атак ASLR. Если они не могут этого сделать, преимущества ASLR уменьшаются или исключаются.

Реализации

Несколько основных операционных систем общего назначения реализуют ASLR.

Андроид

Android 4.0 Ice Cream Sandwich обеспечивает рандомизацию расположения адресного пространства (ASLR), чтобы помочь защитить систему и сторонние приложения от эксплойтов, связанных с проблемами управления памятью. Поддержка исполняемых файлов, не зависящих от позиции, была добавлена ​​в Android 4.1. [9] В Android 5.0 прекращена поддержка отличных от PIE и требуется, чтобы все динамически связанные двоичные файлы были независимыми от позиции. [10] [11] Рандомизация порядка загрузки библиотеки была принята в проект Android с открытым исходным кодом 26 октября 2015 года, [7] [ необходим неосновной источник ] и включена в версию Android 7.0.

Стрекоза БСД

DragonFly BSD имеет реализацию ASLR, основанную на модели OpenBSD, добавленной в 2010 году. [12] По умолчанию она отключена, и ее можно включить, установив для sysctl vm.randomize_mmap значение 1.

FreeBSD

Поддержка ASLR появилась во FreeBSD 13.0. [13] [14] Он включен по умолчанию, начиная с версии 13.2. [15]

iOS (iPhone, iPod touch, iPad)

Apple представила ASLR в iOS 4.3 (выпущенной в марте 2011 г.). [16]

KASLR был представлен в iOS 6. [17] Рандомизированная база ядра — это 0x01000000 + ((1+0xRR) * 0x00200000)случайный 0xRRбайт из SHA1 (случайные данные), сгенерированный iBoot (загрузчиком iOS 2-го этапа). [18]

Линукс

Ядро Linux по умолчанию включает слабую форму ASLR, начиная с версии ядра 2.6.12, выпущенной в июне 2005 года. [19] Наборы исправлений PaX и Exec Shield для ядра Linux обеспечивают более полную реализацию. Патч Exec Shield для Linux обеспечивает 19 бит энтропии стека за период 16 байт и 8 бит базовой рандомизации mmap за период 1 страницы размером 4096 байт. Это помещает базу стека в область шириной 8 МБ, содержащую 524 288 возможных позиций, а базу mmap в область шириной 1 МБ, содержащую 256 возможных позиций.

Позиционно-независимый исполняемый файл (PIE) реализует случайный базовый адрес для основного двоичного файла и существует с 18 апреля 2004 года. Он обеспечивает ту же случайность адреса для основного исполняемого файла, что и для общих библиотек. Функцию PIE нельзя использовать вместе с функцией предварительной ссылки для одного и того же исполняемого файла. Инструмент предварительной компоновки реализует рандомизацию во время предварительной компоновки, а не во время выполнения, поскольку по своей конструкции prelink предназначен для обработки перемещения библиотек до того, как это сделает динамический компоновщик, что позволяет перемещению происходить один раз для многих запусков программы. В результате реальная рандомизация адресного пространства противоречит цели предварительного связывания.

Рандомизацию можно отключить для конкретного процесса, изменив его область выполнения, используя personality(2). [20]

Ядро Linux 5.18, выпущенное в мае 2022 года, снизило эффективность как 32-битных, так и 64-битных реализаций из-за выравнивания памяти, в результате чего в некоторых дистрибутивах libc было исправлено для 32-битных приложений, а 9-битный ASLR libc для 64-битных приложений был потерян. . [21]

8 января 2024 года Джастин Миллер опубликовал уязвимость: [22]

Итак, подведем итог: основные файловые системы вызывают thp_get_unmapped_area, этот патч делает его настолько регулярным, что проходящие сопоставления с поддержкой файлов thp_get_unmapped_areaмогут поддерживаться огромными страницами, а некоторые библиотеки libc (недавно) превысили 2 МБ. Все это совпало так, что в некоторых дистрибутивах libc исправлено для 32-битных приложений, а 9-битный ASLR libc для 64-битных приложений был потерян (опять же, влияние будет различаться в зависимости от дистрибутива). Я подчеркиваю libc только потому, что он используется очень многими приложениями и имеет все необходимые ROP-гаджеты, но просто чтобы внести ясность: это не только libc, потенциально затронута любая библиотека> = 2 МБ, и даже анонимные сопоставления> = 2 МБ. в моей системе Ubuntu 22.04 выравниваются по 2 МБ, хотя я до сих пор не понимаю, о чем идет речь…

Рандомизация расположения адресного пространства ядра

Рандомизация макета адресного пространства ядра (KASLR) позволяет рандомизировать адресное пространство для образа ядра Linux путем рандомизации места размещения кода ядра во время загрузки. [23] KASLR был объединен с основной веткой ядра Linux в версии ядра 3.14, выпущенной 30 марта 2014 года. [24] При компиляции его можно отключить во время загрузки, указав nokaslr в качестве одного из параметров загрузки ядра. [25]

В процессорах x86 существует несколько атак по побочным каналам , которые могут привести к утечке адресов ядра. [26] [27] В конце 2017 года для защиты от этих атак была разработана изоляция таблиц страниц ядра (KPTI, также известная как KAISER). [28] [29] Однако этот метод не может защитить от атак по побочным каналам, использующих коллизии в структурах прогнозирования ветвей . [30]

С 2021 года более детальная рандомизация макета адресного пространства ядра (или гранулярная функция KASLR, FGKASLR) является запланированным расширением KASLR для рандомизации до функционального уровня. [31]

Майкрософт Виндоус

В Windows Vista от Microsoft (выпущенной в январе 2007 г.) и более поздних версиях ASLR включена только для исполняемых файлов и динамически подключаемых библиотек , которые специально связаны с поддержкой ASLR. [32] В целях совместимости по умолчанию для других приложений эта функция не включена. Обычно несовместимо только старое программное обеспечение, и ASLR можно полностью включить, отредактировав запись реестра HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages[ 33] или установив Microsoft Enhanced Mitigation Experience Toolkit .

Расположение кучи , стека , блока среды процесса и блока среды потока также рандомизировано. В техническом документе по безопасности от Symantec отмечается, что ASLR в 32-битной Windows Vista может быть не столь надежным, как ожидалось, и Microsoft признала слабость его реализации. [34]

Системы предотвращения вторжений на базе хоста, такие как WehnTrust [35] и Ozone [36], также предлагают ASLR для операционных систем Windows XP и Windows Server 2003 . WehnTrust имеет открытый исходный код. [37] Полная информация о реализации Озона недоступна. [38]

В феврале 2012 года [39] было отмечено , что эффективность ASLR в 32-битных системах Windows до Windows 8 может снижаться в ситуациях с нехваткой памяти. В том же исследовании аналогичный эффект был достигнут и на Linux. Тестовый код вызвал панику ядра в системе Mac OS X 10.7.3 , поэтому оставалось неясным поведение ASLR в этом сценарии.

NetBSD

Поддержка ASLR в пользовательском пространстве появилась в NetBSD 5.0 ​​(выпущенной в апреле 2009 г.) [40] и была включена по умолчанию в NetBSD-current в апреле 2016 г. [41]

Поддержка Kernel ASLR на amd64 была добавлена ​​в NetBSD-current в октябре 2017 года, что сделало NetBSD первой системой BSD, поддерживающей KASLR. [42]

OpenBSD

В 2003 году OpenBSD стала первой основной операционной системой, поддерживающей надежную форму ASLR и активирующей ее по умолчанию. [3] OpenBSD завершила поддержку ASLR в 2008 году, когда добавила поддержку двоичных файлов PIE . [43] Функция malloc(3) OpenBSD 4.4 была разработана для повышения безопасности за счет использования преимуществ ASLR и функций пробельных страниц, реализованных как часть mmap системного вызова OpenBSD , а также для обнаружения ошибок использования после освобождения. [44] Выпущенная в 2013 году, OpenBSD 5.3 стала первой основной операционной системой, которая по умолчанию включала независимые от позиции исполняемые файлы на нескольких аппаратных платформах , а OpenBSD 5.7 по умолчанию активировала независимые от позиции статические двоичные файлы (Static-PIE). [43]

macOS

В Mac OS X Leopard 10.5 (выпущенной в октябре 2007 г.) Apple представила рандомизацию для системных библиотек. [45]

В Mac OS X Lion 10.7 (выпущенной в июле 2011 г.) Apple расширила свою реализацию, чтобы охватить все приложения, заявив, что «рандомизация макета адресного пространства (ASLR) была улучшена для всех приложений. Теперь она доступна для 32-битных приложений (как и куча). защита памяти), что делает 64-битные и 32-битные приложения более устойчивыми к атакам». [46]

Начиная с OS X Mountain Lion 10.8 (выпущенной в июле 2012 г.) и более поздних версиях, вся система, включая ядро, а также кексты и зоны, перемещается случайным образом во время загрузки системы. [47]

Солярис

ASLR был представлен в Solaris, начиная с Solaris 11.1 (выпущен в октябре 2012 г.). ASLR в Solaris 11.1 можно настроить для всей системы, для каждой зоны или для каждого двоичного файла. [48]

Эксплуатация

Было продемонстрировано, что атака по побочному каналу с использованием целевого буфера ветвления позволяет обойти защиту ASLR. [30] В 2017 году была продемонстрирована атака под названием «ASLR⊕Cache», которая могла победить ASLR в веб-браузере с использованием JavaScript. [49]

Смотрите также

Рекомендации

  1. ^ Марко-Гисберт, Гектор; Риполь Риполл, Исмаэль (22 июля 2019 г.). «Рандомизация макета адресного пространства следующего поколения». Прикладные науки . 9 (14): 2928. дои : 10.3390/app9142928 . hdl : 10251/144813 . ISSN  2076-3417.
  2. ^ Брэд Спенглер (октябрь 2003 г.). «PaX: гарантированное завершение выполнения произвольного кода» (PDF) . grsecurity.net . Слайды с 22 по 35. Архивировано (PDF) из оригинала 25 октября 2020 г. Проверено 20 августа 2015 г.
  3. ^ аб Тео Де Раадт (2005). «Методы предотвращения использования эксплойтов (обновлены для включения случайного malloc и mmap) на OpenCON 2005». Архивировано из оригинала 16 июля 2012 г. Проверено 26 августа 2009 г.
  4. ^ «Инновации OpenBSD». Проект OpenBSD. Архивировано из оригинала 9 сентября 2016 г. Проверено 12 сентября 2016 г.
  5. ^ Марко-Гисберт, Гектор; Риполл, Исмаэль (20 ноября 2014 г.). «Об эффективности Full-ASLR в 64-битной Linux» (PDF) . Архивировано из оригинала (PDF) 8 мая 2015 г. Проверено 29 марта 2016 г.
  6. ^ Шахам, Х.; Пейдж, М.; Пфафф, Б.; Гох, Э.Дж.; Модадугу, Н.; Боне, Д. (2004). Об эффективности рандомизации адресного пространства . 11-я конференция ACM по компьютерной и коммуникационной безопасности. стр. 298–307.
  7. ^ ab «Реализовать рандомизацию порядка загрузки библиотеки». Архивировано из оригинала 11 августа 2023 г. Проверено 26 июня 2017 г.
  8. ^ ab Транзисторная память, такая как RAM, ROM, флэш-память и размеры кэша, а также размеры файлов указываются с использованием двоичных значений для K (1024 1 ), M (1024 2 ), G (1024 3 ) и т. д.
  9. ^ «Безопасность Android». Android-разработчики. Архивировано из оригинала 12 октября 2011 г. Проверено 7 июля 2012 г.
  10. ^ "ОСС-безопасность" . Архивировано из оригинала 5 октября 2015 г. Проверено 4 октября 2015 г.
  11. ^ «Вернуть «Повторно включить поддержку исполняемых файлов, отличных от PIE»». Архивировано из оригинала 11 августа 2023 г. Проверено 26 июня 2017 г.
  12. ^ mmap — добавить рандомизацию смещения mmap. Архивировано 1 февраля 2014 г. на Wayback Machine , DragonFly Gitweb, 25 ноября 2010 г.
  13. ^ «Реализовать рандомизацию макета адресного пространства (ASLR)» . Архивировано из оригинала 07 мая 2019 г. Проверено 10 февраля 2019 г.
  14. ^ "ASLR - FreeBSD Wiki" . Архивировано из оригинала 17 мая 2021 г. Проверено 17 мая 2021 г.
  15. ^ «Примечания к выпуску FreeBSD 13.2-RELEASE» . Архивировано из оригинала 11 апреля 2023 г. Проверено 11 апреля 2023 г.
  16. ^ Pwn2Own, день 2: iPhone и BlackBerry побеждены; Непоказ Chrome и Firefox. Архивировано 2 мая 2012 г. в Wayback Machine , Ars Technica , 11 марта 2011 г.
  17. ^ Стефан Эссер (07 марта 2013 г.). «Эксплуатация iOS 6 280 дней спустя». Слайд 19: «В iOS 6 появилась KASLR». Архивировано из оригинала 07 мая 2019 г. Проверено 25 апреля 2018 г.
  18. ^ Тарьей Мандт. «Атака на ядро ​​iOS: взгляд на evasi0n» (PDF) . Архивировано (PDF) из оригинала 13 декабря 2020 г. Проверено 23 июля 2023 г.
  19. ^ Данг, Алан; Миллер, Чарли (25 марта 2009 г.). «Бит NX и ASLR». Аппаратное обеспечение Тома . Архивировано из оригинала 11 августа 2023 г. Проверено 20 марта 2010 г.
  20. ^ «личность - установите домен выполнения процесса». Архивировано из оригинала 21 апреля 2019 г. Проверено 21 апреля 2019 г.
  21. ^ «ASLRn't: Как выравнивание памяти сломало библиотеку ASLR» . Проверено 13 января 2024 г.
  22. ^ Миллер, Джастин (8 января 2024 г.). «ASLRn't: Как выравнивание памяти сломало библиотеку ASLR». блог zolutal . Проверено 13 января 2024 г.
  23. ^ Джейк Эдж (9 октября 2013 г.). «Рандомизация макета адресного пространства ядра». LWN.net . Архивировано из оригинала 4 апреля 2014 г. Проверено 2 апреля 2014 г.
  24. ^ «Ядро Linux 3.14, Раздел 1.7. Рандомизация адресного пространства ядра» . kernelnewbies.org . 30 марта 2014 г. Архивировано из оригинала 15 января 2021 г. Проверено 2 апреля 2014 г.
  25. ^ «kernel/git/torvalds/linux.git: x86, kaslr: местоположение возврата из decompress_kernel (дерево исходного кода ядра Linux)» . ядро.орг . 13 октября 2013 г. Архивировано из оригинала 11 августа 2023 г. Проверено 2 апреля 2014 г.
  26. ^ KASLR мертв: Да здравствует KASLR (PDF) . Инженерное безопасное программное обеспечение и системы 2017. 24 июня 2017 г.
  27. ^ Чан, Ёнджин; Ли, Санго; Ким, Тэсу (2016). «Нарушение рандомизации макета адресного пространства ядра с помощью Intel TSX» (PDF) . Материалы конференции ACM SIGSAC 2016 г. по компьютерной и коммуникационной безопасности . ККС '16. Нью-Йорк: Ассоциация вычислительной техники. стр. 380–392. дои : 10.1145/2976749.2978321 . ISBN 9781450341394. S2CID  6293725. Архивировано (PDF) из оригинала 21 сентября 2020 г. Проверено 29 декабря 2017 г.
  28. ^ Корбет, Джонатан (20 декабря 2017 г.). «Текущее состояние изоляции таблицы страниц ядра». Еженедельные новости Linux . Архивировано из оригинала 4 января 2018 г. Проверено 4 января 2018 г.
  29. ^ Корбет, Джонатан (15 ноября 2017 г.). «KAISER: скрытие ядра из пользовательского пространства». Еженедельные новости Linux . Архивировано из оригинала 08.12.2020 . Проверено 29 декабря 2017 г.
  30. ^ аб Евтюшкин, Дмитрий; Пономарев Дмитрий; Абу-Газале, Наэль (2016). Перейти через ASLR: атака на предсказатели ветвей для обхода ASLR (PDF) . 2016 49-й ежегодный Международный симпозиум IEEE/ACM по микроархитектуре (MICRO). стр. 1–13. дои : 10.1109/MICRO.2016.7783743. ISBN 978-1-5090-3508-3. S2CID  3801142.
  31. ^ «Linux 5.16 уже заранее подготовлен к поддержке FGKASLR — Phoronix» . www.phoronix.com . Архивировано из оригинала 10 ноября 2021 г. Проверено 10 ноября 2021 г.
  32. ^ «Защита безопасности программного обеспечения Windows ISV» . Msdn.microsoft.com. 06.12.2010. Архивировано из оригинала 18 апреля 2012 г. Проверено 10 апреля 2012 г.
  33. ^ Внутреннее устройство Windows: включая Windows Server 2008 и Windows Vista, пятое издание (PRO-разработчик) ISBN 978-0-7356-2530-3 
  34. ^ Олли Уайтхаус (февраль 2007 г.). «Анализ рандомизации макета адресного пространства в Windows Vista» (PDF) . Архивировано из оригинала (PDF) 15 июля 2019 г. Проверено 18 января 2009 г.
  35. ^ "ВенТраст". Codeplex.com. Архивировано из оригинала 25 декабря 2009 г. Проверено 10 апреля 2012 г.
  36. ^ "Озон архитекторов безопасности" . Архитекторы безопасности. Архивировано из оригинала 4 марта 2016 г. Проверено 10 апреля 2012 г.
  37. ^ "Исходный код WehnTrust" . Архивировано из оригинала 28 ноября 2013 г. Проверено 15 ноября 2013 г.
  38. ^ «Рандомизация адресного пространства для систем Windows» (PDF) . Архивировано (PDF) из оригинала 5 августа 2010 г. Проверено 10 апреля 2012 г.
  39. ^ Олли (2 марта 2012 г.). «Исследование, разработка, оценка, консультации и обучение | Recx: частичный метод борьбы с ASLR - несколько O/S». Recxltd.blogspot.co.uk. Архивировано из оригинала 23 марта 2013 г. Проверено 10 апреля 2012 г.
  40. ^ «Анонс NetBSD 5.0» . Архивировано из оригинала 21 апреля 2016 г. Проверено 25 апреля 2016 г.
  41. ^ Христос Зулас (2016). «Двоичные файлы PIE и ASLR включены в сборке по умолчанию для amd64». Архивировано из оригинала 22 апреля 2016 г. Проверено 25 апреля 2016 г.
  42. ^ «Ядро ASLR на amd64» . 2017. Архивировано из оригинала 16 октября 2017 г. Проверено 16 октября 2017 г.
  43. ^ аб Курт Миллер (2008). «Реализация независимого от позиции исполняемого файла (PIE) OpenBSD». Архивировано из оригинала 12 июня 2011 г. Проверено 22 июля 2011 г.
  44. ^ "libc/stdlib/malloc.c". Перекрестная ссылка BSD, OpenBSD src/lib/ . Архивировано из оригинала 26 декабря 2014 г. Проверено 12 сентября 2016 г.
  45. ^ «Mac OS X – Безопасность – защищает от вирусов и вредоносных программ» . Яблоко. Архивировано из оригинала 25 мая 2011 г. Проверено 10 апреля 2012 г.
  46. ^ «Безопасность». Apple Inc. Архивировано из оригинала 6 июня 2011 г. Проверено 6 июня 2011 г.
  47. ^ «Обзор основных технологий OS X Mountain Lion» (PDF) . Июнь 2012 г. Архивировано (PDF) из оригинала 10 июля 2012 г. Проверено 25 июля 2012 г.
  48. ^ Контроль доступа к машинным ресурсам. Архивировано 20 июня 2013 г. в Wayback Machine , Информационная библиотека Oracle, 26 октября 2012 г.
  49. ^ AnC. Архивировано 16 марта 2017 г. в Wayback Machine VUSec, 2017 г.

Внешние ссылки