В OpenBSD появилась крутая фича KARL
В тестовой ветке OpenBSD запилена фича под названием KARL — Kernel Address Randomized Link. По мнению специалистов по разработке операционных систем, KARL не имеет аналогов и даже в Linux его нет.
KARL — рэндомизация адресов компонентов ядра
Идея проста и вместе с тем эффективна: каждый раз, когда пользователь перезагружает систему, компоненты ядра собираются в свой BLOB случайным образом. На пересборку уходит дополнительная секунда времени загрузки, зато каждая функция ядра имеет уникальный адрес в памяти. А это значит, что в случае нахождения дыры в ядре невозможно будет сделать эксплоит, который одинаково хорошо сработает сразу на всех компьютерах с данной версией OpenBSD. Другим словами, никаких больше червей и эпидемий! Хотя под OpenBSD их и без KARL не было много.
Аналогов, как говорилось выше, нет, но есть похожие технологии, которые не дотягивают до Карла по степени защиты.
ASLR
ASLR — Address Space Layout Randomization. Это когда рэндимизируется адресное пространство прикладных программ. Довольно хорошо защищает от эксплуатаций уязвимостей в прикладном софте.
KASLR
KASLR — Kernel Address Space Layout Randomization. То же самое, что и ASLR, но для ядра Linux. Начальный адрес загрузки ядра каждый раз разный, что усложняет написание эксплоитов, которые могли бы работать на большом количестве компьютеров.
Комментарии
reflexius
11 июля, 2017 - 04:34
Где-то читал, что начиная с ядра Linux версии 4.12 режим KASLR будет включен по умолчанию. На 32-разрядных машинах, где режим рандомизации конфликтует с режимом гибернации, по умолчанию будет включен KASLR. То есть тем, кому нужен режим гибернации на 32битных машинах, придется отключать KASLR самим.
Будем надеяться KARL станет следующим шагом и для Linux. Рандомизация адресов функций — это просто убойно.
Комментировать