Тео де Раадт (Theo de Raadt) представил (https://marc.info/?l=openbsd-tech&m=149732026405941) новую технику рандомизации адресного пространства KARL (Kernel Address Randomized
Link), нацеленную на усиления защиты от атак, связанных с манипуляцией структурами и кодом ядра. KARL вводит в обиход новую модель отражения страниц памяти (mapping), при которой все относительные указатели между функциями и данными ядра никогда не повторяются между перезагрузками системы.В отличие от классической техники рандомизации памяти, которая затрагивает только операции распределения памяти, новая техника позволяет изменить первичную раскладку виртуального адресного пространства ядра. Метод достаточно прост в реализации и не требует переработки подсистем ядра - при каждой перезагрузке системы предлагается выполнять операцию перекомпоновки ядра, формируя исполняемый файл ядра на основе подключения объектных модулей и runtime-компонентов в случайном порядке. Таким образом при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна.
Компоновка осуществляется из rc-скриптов и замедляет загрузки примерно на секунду. При каждом запуске генерируется ядро для следующего запуска. Единственным повторяющимся известным адресом в подобных ядрах является точка активации кода начального запуска (bootstrap), поэтому для защиты от манипуляции с ним после завершения инициализации ядра выполнение bootstrap-кода блокируется через установку TRAP или выполнение unmap, в зависимости от используемой архитектуры.URL: http://undeadly.org/cgi?action=article&sid=20170613041706
Новость: http://www.opennet.me/opennews/art.shtml?num=46687
никогда не повторяются, Карл!!! :-O
Они забывают о том, что серверы перезагружают только когда нужно обновить ядро, т.е. и без всех этих манипуляций ядро каждый раз разное грузится.
ты забываешь что при одной загрузке у всех абсолютно разные компоновки получаются... зачем перегружать постоянно? мыслишь прямолинейно?
Но на 2 серверах с одной версией OpenBSD одинаковое ядро же.
Из темы новости заинтересовался о неизвестной мне технике рандомизации ядра, а оказалась рандомизация адресного пространства ядра.
Кликбейт дeтектeд!!1!
Ещё нужно рандомизировать номера системных вызовов, а бинарники перегенерировать при загрузке системы. И код бинарников шифровать, расшифровывая в ядре при загрузке исполняемых объектов в память.
Лютый бред, неуместные техники рандомизации
>Таким образом, при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестнаа не будет потом такого, что в зависимости от фазы луны ядро будет лучше или хуже помещаться в кеши процессора и после некоторых перезагрузок жутко тормозить или летать как ужаленое?
собственно товарищи из gr sec это именно и делают - в результате чуть что пересобирается все ядро.
>>Таким образом, при каждой перезагрузке формируется уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна
> а не будет потом такого, что в зависимости от фазы луны ядро
> будет лучше или хуже помещаться в кеши процессора и после некоторых
> перезагрузок жутко тормозить или летать как ужаленое?Во-первых, вы, случайно, не путаете кеши данных и инструкций?
Во-вторых, компилятор/компоновщик в любом случае будет учитывать выравнивание кеш-линий... А больше, в общем-то, беспокоиться не о чем.
OpenBSD даже перегружают на проде больше раза в жизни?
Контейнеры?
>никогда не повторяются, Карл!!! :-Oглюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся ничего простого и надёжного. разительный контраст с реальным миром, где всё предельно просто :(
Ты давно ничего руками не делал. Везде всё одинаково: туева куча мелочей и любая ошибка приводит к неработоспособности всего изделия.
Реальный мир намного сложнее и непредсказуемее, его ведь не инженеры проектировали.
> его ведь не инженеры проектировали.К счастью, что не инженеры.
Его вообще никто не проектировал, вот в чём фигня.
> Его вообще никто не проектировал, вот в чём фигня.Архитектор вам прямо так и сказал? ;)
>Реальный мир намного сложнее и непредсказуемееНепредсказуемее?! В реальном мире всё предопределено на 100%, никаких багов, КАРЛ!
Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию Всего. :)
Не осилили, видимо, из-за её простоты?
> Не осилили, видимо, из-за её простоты?Если это на фразу "Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию Всего", то это всё потому что глупые человеки всё переусложняют.
Например лежит на земле три палочки, только у человека в мозгах это:
-треугольник
-сумма углов треугольника равна 180 градусов
и тд итп
а что подумает апологет геометрии Лобачевского и писать стыдно.А реально эти палочки получились из-за какого-то простого базового закона из которого уже выросла Вселенная, планеты, вода, деревья итд
А то что сумма углов равна 180 градусов это НЕ закон природы и теория относительности тоже.
man Фундаментальные физические постоянные
> Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию
> Всего. :)На самом деле после Большого Песца и Экстерминатуса наша реальность являет планету-близнеца Марса с парой заглубленных, автоматизированных бункеров.
Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид изнутри" на заморозку мира и проход сборщика мусора.
>> Квантовая физика не в счёт, человеки ещё просто не осилили правильную теорию
>> Всего. :)
> На самом деле после Большого Песца и Экстерминатуса наша реальность являет планету-близнеца
> Марса с парой заглубленных, автоматизированных бункеров.
> Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид
> изнутри" на заморозку мира и проход сборщика мусора.Отсыпешь, а?
>> Остальное эмулируется софтом на яве и все непредсказуемые эффекты - это "вид
>> изнутри" на заморозку мира и проход сборщика мусора.
> Отсыпешь, а?Для вас живое воображение всегда является плодом приема "веществ"? o_O
Яснопонятно.
>>никогда не повторяются, Карл!!! :-O
> глюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся
> ничего простого и надёжного. разительный контраст с реальным миром, где всё
> предельно просто :(зайди в травматологию или посмотри фото с ДТП и у тебя будет много восклицаний " да как так получилось-то". Плохой из тебя тестировщик выйдет.
>>никогда не повторяются, Карл!!! :-O
> глюки тоже каждый раз разные. компьютерный мир катится в АД. не остаётся
> ничего простого и надёжного. разительный контраст с реальным миром, где всё
> предельно просто :(Вы вообще много глюков ожидаете от перемены мест объектных файлов при вызове компоновщика? Не, они, конечно, возможны, но как-то не слишком вероятны.
> не остаётся ничего простого и надёжного. разительный контраст с реальным миром, где всё
> предельно просто :(Когда ламобыдлoкoдeр говорит о "реальном мире" - это всегда смешно.
Как много усилий борьбы со следствием и как мало с причиной.
Да хоть двести способов придумайте, один черт.
Предложите для борьбы с причиной, или хоть назовите её.
> Предложите для борьбы с причиной, или хоть назовите её.Ща он скажет, что причина — C, и надо срочно переписать все ОСи на rust. Или на чём-нибудь ещё, в зависимости от религиозных убеждений.
С причинами в openbsd тоже борются весьма активно. Но поскольку нет в мире совершенства, и такие вещи весьма полезны.
причиной являются люди, они совершают ошибки, когда пишут программы.
борьба с людьми является уголовно наказуемой в большинстве стран, что серьёзно ограничивает область применения этой вашей `борьбы с причиной`
Плюсую. Когда рутанут, то никакая рандомизация нафиг не нужна. А способов рутануть 100500.
Ты правда такой тyпой? Эта штука нужна для того, чтобы сделать невозможной нехилую часть способов "рутануть" систему.
А как быть если не перегружать? Взломают мой калькулятор?
Да. Потому что ты тормоз и ничего не понял.
Да, надо бы добавить периодическую перезагрузку с рандомизацией адресов каждого модуля и функции ядра без перезагрузки ядра.
Тео параноик.
За это его и любят 8)
Кому-то не помешал бы системдэ "для ускорения перезагрузки"
live patch reload, перегружать ядро не нужно.
Этот твой лив патч перемешает ядро в памяти по случайным адресам?
> Кому-то не помешал бы системдэ "для ускорения перезагрузки"И чтобы любой систему подвесить мог, отправив пустое сообщение на сокет?
Или получить рута?http://www.openwall.com/lists/oss-security/2017/01/24/4?
> This is a heads up for a trivial systemd local root exploit,
> that was silently fixed in the upstream git as:Когда же вы, Свидетели Рыжего, уже успокоитесь, а?
> Когда же вы, Свидетели Рыжего, уже успокоитесь, а?Ты просто ретроград, пишущий шестисотмегабайтные скрипты на баше! Марш в дворники! Мы новое поколение ленуск-специалистов! Мы перезагружаем ленуск 5 раз в день, на одну перезагрузку уходит 20 минут, мы живём активной и полноценной жизнью, а после перезагружаем ленуск!
Runit лучше
> рандомизации адресного пространства
> никогда не повторяютсяНе повторяющиеся числа менее случайны, чем числа без ограничения на повторение.
TRAP, KARL!