Вони вже знатимуть OpenBSD, операційна система сімейства BSD. Якщо ви цього не знаєте, це схожа на Unix система з відкритим кодом, і вона, очевидно, не базується на ядрі Linux. Це нащадок, який походить від NetBSD, але залишаючи мобільність на другому місці, щоб зосередитись на безпеці як сильній стороні. Ну, з виходом OpenBSD 6.2 з’явиться ядро з дуже цікавою функцією.
Виявляється, OpenBSD 6.2 створюватиме унікальне ядро кожного разу, коли користувач системи перезавантажується або оновлює систему. Ця функція його називають KARL (Рандомізоване посилання на адресу ядра) і працює шляхом повторного зв’язування внутрішніх файлів ядра у випадковому порядку, щоб воно кожного разу генерувало унікальну двійкову крапку. Це нове, оскільки в поточних версіях OpenBSD використовується заздалегідь визначене розташування, що призводить до того, що внутрішні файли кожного разу та для всіх користувачів зв’язуються та завантажуються в один і той же двійковий файл.
Розвиток Тео де Раадт він буде працювати, створюючи це конкретне зображення під час інсталяції, під час оновлення або під час завантаження. Якщо користувач завантажується, оновлює або перезавантажує машину, новостворене ядро буде замінено новим двійковим файлом. І все це для чого? Ну, таким чином робиться випадкове розташування для адрес пам'яті, де виконується код програми та ядра, замість того, щоб мати ієрархію або сегменти пам'яті, вже визначені для кожної речі, що ускладнює використання експлойтів, що вказують на область пам'яті, і покращує безпеки.
Існує ще одна подібна техніка, яка називається KASLR (рандомізація макета простору ядра), який відрізняється від KARL тим, що замість того, щоб створювати інший двійковий файл кожного разу, KASLR завантажує один і той же двійковий файл у випадкових місцях, що зараз використовують операційні системи, такі як Windows та Linux. Обидва з однією метою.