The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Для OpenBSD представлена новая техника рандомизации адресного пространства ядра

13.06.2017 09:31

Тео де Раадт (Theo de Raadt) представил новую технику рандомизации адресного пространства ядра KARL (Kernel Address Randomized Link), нацеленную на усиления защиты от атак, связанных с манипуляцией структурами и кодом ядра. KARL вводит в обиход новую модель отражения страниц памяти (mapping), при которой все относительные указатели между функциями и данными ядра никогда не повторяются между перезагрузками системы.

В отличие от классической техники рандомизации памяти, которая затрагивает только операции распределения памяти, новая техника позволяет изменить первичную раскладку виртуального адресного пространства ядра. Метод достаточно прост в реализации и не требует переработки подсистем ядра - при каждой перезагрузке системы предлагается выполнять операцию перекомпоновки ядра, формируя исполняемый файл ядра на основе подключения объектных модулей и runtime-компонентов в случайном порядке. Таким образом, при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна.

Компоновка осуществляется из rc-скриптов и замедляет загрузку примерно на секунду. При каждой загрузке генерируется ядро для следующей загрузки. Единственным повторяющимся известным адресом в подобных ядрах является точка активации кода начального запуска (bootstrap), поэтому для защиты от манипуляции с ним после завершения инициализации ядра выполнение bootstrap-кода блокируется через установку TRAP или выполнение unmap, в зависимости от используемой архитектуры.

  1. Главная ссылка к новости (http://undeadly.org/cgi?action...)
  2. OpenNews: OpenBSD развивает Pledge, новый механизм изоляции приложений
  3. OpenNews: Выпуск OpenBSD 6.1
  4. OpenNews: Разработчики OpenBSD подготовили для libc механизм защиты anti-ROP
  5. OpenNews: В OpenBSD включена по умолчанию система виртуализации VMM
  6. OpenNews: Проект OpenBSD перешёл на обязательное использование механизма защиты W^X
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/46687-openbsd
Ключевые слова: openbsd
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, слакварявод (ok), 09:52, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +27 +/
    никогда не повторяются, Карл!!! :-O
     
  • 1.2, Аноним (-), 10:00, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Они забывают о том, что серверы перезагружают только когда нужно обновить ядро, т.е. и без всех этих манипуляций ядро каждый раз разное грузится.
     
     
  • 2.4, Sen (?), 10:33, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ты забываешь что при одной загрузке у всех абсолютно разные компоновки получаются... зачем перегружать постоянно? мыслишь прямолинейно?
     
  • 2.7, marios (ok), 11:03, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Но на 2 серверах с одной версией OpenBSD одинаковое ядро же.
     

  • 1.3, Аноним (-), 10:00, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Из темы новости заинтересовался о неизвестной мне технике рандомизации ядра, а оказалась рандомизация адресного пространства ядра.
    Кликбейт дeтектeд!!1!
     
     
  • 2.17, irinat (ok), 13:46, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ещё нужно рандомизировать номера системных вызовов, а бинарники перегенерировать при загрузке системы. И код бинарников шифровать, расшифровывая в ядре при загрузке исполняемых объектов в память.
     
     
  • 3.36, Аноним (-), 03:25, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Лютый бред, неуместные техники рандомизации
     

  • 1.5, Нанобот (ok), 10:33, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Таким образом, при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна

    а не будет потом такого, что в зависимости от фазы луны ядро будет лучше или хуже помещаться в кеши процессора и после некоторых перезагрузок жутко тормозить или летать как ужаленое?

     
     
  • 2.6, Аноним (-), 10:39, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    собственно товарищи из gr sec это именно и делают - в результате чуть что пересобирается все ядро.
     
  • 2.31, Аноним (-), 20:45, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Таким образом, при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна
    > а не будет потом такого, что в зависимости от фазы луны ядро
    > будет лучше или хуже помещаться в кеши процессора и после некоторых
    > перезагрузок жутко тормозить или летать как ужаленое?

    Во-первых, вы, случайно, не путаете кеши данных и инструкций?

    Во-вторых, компилятор/компоновщик в любом случае будет учитывать выравнивание кеш-линий... А больше, в общем-то, беспокоиться не о чем.

     

  • 1.8, Аноним (-), 11:12, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    OpenBSD даже перегружают на проде больше раза в жизни?
     
  • 1.9, Аноним (-), 11:16, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Контейнеры?
     
  • 1.10, лютый жабист__ (?), 11:45, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >никогда не повторяются, Карл!!! :-O

    глюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся ничего простого и надёжного. разительный контраст с реальным миром, где всё предельно просто :(

     
     
  • 2.19, Аноним (-), 13:53, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ты давно ничего руками не делал. Везде всё одинаково: туева куча мелочей и любая ошибка приводит к неработоспособности всего изделия.
     
  • 2.25, Аноним (-), 15:57, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Реальный мир намного сложнее и непредсказуемее, его ведь не инженеры проектировали.
     
     
  • 3.28, F (?), 17:10, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > его ведь не инженеры проектировали.

    К счастью, что не инженеры.

     
     
  • 4.34, Аноним (-), 23:13, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Его вообще никто не проектировал, вот в чём фигня.
     
     
  • 5.44, Аноним (-), 18:35, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Его вообще никто не проектировал, вот в чём фигня.

    Архитектор вам прямо так и сказал? ;)

     
  • 3.37, лютый жабист__ (?), 05:41, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Реальный мир намного сложнее и непредсказуемее

    Непредсказуемее?! В реальном мире всё предопределено на 100%, никаких багов, КАРЛ!
    Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию Всего. :)

     
     
  • 4.41, Аноним (-), 13:50, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не осилили, видимо, из-за её простоты?
     
     
  • 5.48, лютый жабист__ (?), 11:22, 15/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Не осилили, видимо, из-за её простоты?

    Если это на фразу "Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию Всего", то это всё потому что глупые человеки всё переусложняют.

    Например лежит на земле три палочки, только у человека в мозгах это:

    -треугольник
    -сумма углов треугольника равна 180 градусов
    и тд итп
    а что подумает апологет геометрии Лобачевского и писать стыдно.

    А реально эти палочки получились из-за какого-то простого базового закона из которого уже выросла Вселенная, планеты, вода, деревья итд

    А то что сумма углов равна 180 градусов это НЕ закон природы и теория относительности тоже.

    man Фундаментальные физические постоянные

     
  • 4.43, Аноним (-), 14:56, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию
    > Всего. :)

    На самом деле после Большого Песца и Экстерминатуса наша реальность являет планету-близнеца Марса с парой заглубленных, автоматизированных бункеров.
    Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид изнутри" на заморозку мира и проход сборщика мусора.


     
     
  • 5.46, arrnorets (ok), 00:11, 15/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию
    >> Всего. :)
    > На самом деле после Большого Песца и Экстерминатуса наша реальность являет планету-близнеца
    > Марса с парой заглубленных, автоматизированных бункеров.
    > Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид
    > изнутри" на заморозку мира и проход сборщика мусора.

    Отсыпешь, а?

     
     
  • 6.50, Аноним (-), 18:50, 15/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид
    >> изнутри" на заморозку мира и проход сборщика мусора.
    > Отсыпешь, а?

    Для вас живое воображение всегда является плодом приема "веществ"? o_O
    Яснопонятно.

     
  • 2.30, DmA (??), 17:29, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>никогда не повторяются, Карл!!! :-O
    > глюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся
    > ничего простого и надёжного. разительный контраст с реальным миром, где всё
    > предельно просто :(

    зайди в травматологию или посмотри фото с ДТП и у тебя будет много восклицаний " да как так получилось-то". Плохой из тебя тестировщик выйдет.

     
  • 2.32, Аноним (-), 20:49, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>никогда не повторяются, Карл!!! :-O
    > глюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся
    > ничего простого и надёжного. разительный контраст с реальным миром, где всё
    > предельно просто :(

    Вы вообще много глюков ожидаете от перемены мест объектных файлов при вызове компоновщика? Не, они, конечно, возможны, но как-то не слишком вероятны.

     
  • 2.33, Led (ok), 22:33, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > не остаётся ничего простого и надёжного. разительный контраст с реальным миром, где всё
    > предельно просто :(

    Когда ламобыдлoкoдeр говорит о "реальном мире" - это всегда смешно.

     

  • 1.11, Нониус (?), 11:52, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как много усилий борьбы со следствием и как мало с причиной.
    Да хоть двести способов придумайте, один черт.
     
     
  • 2.22, nuclight (??), 15:29, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предложите для борьбы с причиной, или хоть назовите её.
     
     
  • 3.27, Аноним (-), 15:59, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Предложите для борьбы с причиной, или хоть назовите её.

    Ща он скажет, что причина — C, и надо срочно переписать все ОСи на rust. Или на чём-нибудь ещё, в зависимости от религиозных убеждений.

     
  • 2.26, Аноним (-), 15:58, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    С причинами в openbsd тоже борются весьма активно. Но поскольку нет в мире совершенства, и такие вещи весьма полезны.
     
  • 2.29, Нанобот (ok), 17:20, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    причиной являются люди, они совершают ошибки, когда пишут программы.
    борьба с людьми является уголовно наказуемой в большинстве стран, что серьёзно ограничивает область применения этой вашей 'борьбы с причиной'
     
  • 2.40, Аноним (-), 08:44, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Плюсую. Когда рутанут, то никакая рандомизация нафиг не нужна. А способов рутануть 100500.
     
     
  • 3.42, Аноним (-), 13:52, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты правда такой тyпой? Эта штука нужна для того, чтобы сделать невозможной нехилую часть способов "рутануть" систему.
     

  • 1.12, Аноним (-), 12:02, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как быть если не перегружать? Взломают мой калькулятор?
     
     
  • 2.15, Аноним (-), 12:24, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да. Потому что ты тормоз и ничего не понял.
     
  • 2.47, Аноним (-), 02:08, 15/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, надо бы добавить периодическую перезагрузку с рандомизацией адресов каждого модуля и функции ядра без перезагрузки ядра.
     

  • 1.14, Аноним (-), 12:16, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Тео параноик.
     
     
  • 2.18, Аноним (-), 13:50, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    За это его и любят 8)
     

  • 1.16, Аноним (-), 12:28, 13/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Кому-то не помешал бы системдэ "для ускорения перезагрузки"
     
     
  • 2.20, Аноним (-), 14:57, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    live patch reload, перегружать ядро не нужно.
     
     
  • 3.38, Аноним (-), 07:27, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Этот твой лив патч перемешает ядро в памяти по случайным адресам?
     
  • 2.21, Аноним (-), 15:07, 13/06/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Кому-то не помешал бы системдэ "для ускорения перезагрузки"

    И чтобы любой систему подвесить мог, отправив пустое сообщение на сокет?
    Или получить рута?

    http://www.openwall.com/lists/oss-security/2017/01/24/4?
    > This is a heads up for a trivial systemd local root exploit,
    > that [b]was silently fixed[/b] in the upstream git as:

    Когда же вы, Свидетели Рыжего, уже успокоитесь, а?


     
     
  • 3.39, Аноним (-), 07:32, 14/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Когда же вы, Свидетели Рыжего, уже успокоитесь, а?

    Ты просто ретроград, пишущий шестисотмегабайтные скрипты на баше! Марш в дворники! Мы новое поколение ленуск-специалистов! Мы перезагружаем ленуск 5 раз в день, на одну перезагрузку уходит 20 минут, мы живём активной и полноценной жизнью, а после перезагружаем ленуск!

     
  • 2.49, Аноним (-), 16:08, 15/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Runit лучше
     

  • 1.45, Аноним (-), 23:58, 14/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > рандомизации адресного пространства
    > никогда не повторяются

    Не повторяющиеся числа менее случайны, чем числа без ограничения на повторение.

     
  • 1.51, anomymous (?), 22:01, 19/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    TRAP, KARL!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру