Проект HardenedBSD, основанный в 2014 году Оливером Пинтером и Шоном Веббом, представляет собой форк FreeBSD с повышенными требованиями к безопасности.
Проект реализует множество технологий смягчения последствий эксплоитов и обеспечения безопасности поверх FreeBSD. Проект начался с реализации механизма рандомизации разметки адресного пространства (ASLR), впоследствии добавлены другие технологии защиты.
Изменения в исходном коде:
-
добавлена новая настройка sysctl (hardening.pax.kmod_load_disable), при установке которой отключается загрузка всех модулей ядра с этого момента. Скрипт kld rc обновлен: теперь в файле rc.conf можно указать hbsd_late_kld_prohibit, который будет устанавливать узел sysctl после загрузки модулей, указанных в kld_list. Эта работа спонсирована компанией BlackhawkNest, Inc.
-
Достигнут значительный прогресс в поддержке CFI в рамках Cross-DSO. Версия HardenedBSD 14-CURRENT с включенной функцией Cross-DSO CFI теперь может собирать сама себя.
Продолжается работа над следующими проблемами:
- При обычной установке HardenedBSD 14-CURRENT на этапе сборки инструментария компилятора не работает команда
make buildworld WITHOUT_SYSTEM_COMPILER=yes WITHOUT_SYSTEM_LINKER=yes
- Приложение
ctfmerge
дает сбои при сборке ядра. Планируется отключить ctfmerge (тем самым отключив DTrace) в ветке функций Cross-DSO CFI и вернуться к исправлению всех ошибок в ctfmerge.
Изменения в портах:
- ответвление проекта Poudriere из FreeBSD для поддержки потребностей сборки пакетов в HardenedBSD. По умолчанию Poudriere создает монтирование tmpfs размером 1 ГБ для данных. HardenedBSD (немного) переросла это, поэтому размер был увеличен до 2 ГБ, чтобы учесть будущий рост;
- отключение CFI для x11-servers/xorg-server;
- исправление x11-wm/enlightenment;
- исправление mail/bogofilter;
- исправление sysutils/pefs-kmod;
- исправление net-mgmt/netdisco-mibs;
- исправление x11-toolkits/gtkd;
- исправление x11-wm/piewm;
- удаление lib32 в emulators/libc6-shim;
- пересмотр версии hardenedbsd/liblattutil.
>>> Подробности