Бен Лори (Ben Laurie [2]), известный своим вкладом в разработку OpenSSL и обеспечение поддержки SSL для http-сервера Apache, а также многим другим, представил [3] практическое руководство по использованию интегрированной во FreeBSD подсистемы Capsicum [4] для изоляции выполнения программ и библиотек. Использование Capsicum продемонстрировано на примере утилиты bzip2 и библиотеки libtiff [5], все действия разбиты на 13 этапов, для каждого из которых представлены для изучения соответствующие патчи.
Подсистема Capsicum опционально включена в состав FreeBSD 9 в качестве экспериментальной возможности и будет активирована по умолчанию начиная с FreeBSD 10. Capsicum представляет собой фреймворк для организации изолированного выполнения приложений и ограничения использования приложениями определённых функций. Capsicum расширяет POSIX API и предоставляет несколько новых системных примитивов, нацеленных на поддержку модели безопасности через управление возможностями объектов ("object-capability") для Unix-систем. Capsicum нацелен на дополнение традиционного централизованного мандатного контроля доступа средствами для защиты отдельных приложений и активируется на стороне самого приложения. Используя Capsicum приложение можно запустить в режиме повышенной изоляции (sandbox), при котором программа сможет выполнять только ранее специфицированные штатные действия.
Дополнительно можно отметить статью "Automatic binary hardening with Autoconf [6]" в которой показано как автоматизировать проверку наличия дополнительных механизмов повышения безопасности в скриптах Autoconf и активировать сборку с задействованием всех доступных методов повышения безопасности на этапе сборки. В частности, рассматриваются такие возможности современных компиляторов, как рандомизация выделения памяти, дополнительные проверки корректности выполнения строковых операций и операций с памятью (-D_FORTIFY_SOURCE=2), защита от удаления компилятором "излишних" проверок на целочисленные переполнения (-fno-strict-overflow), защита от переполнения стек-фрейма (-fstack-protector-all) и т.п. Отмечается [7], что использовать данные возможности в своих программах стоит с осторожностью, предварительно протестировав возможное негативное влияние на производительность (некоторые наблюдают замедление до 30%).
Ссылки:
[1] http://htfl.ru/cat-news-novosti
[2] /out.php?link=http://en.wikipedia.org/wiki/Ben_Laurie
[3] /out.php?link=http://www.links.org/?p=1242
[4] /out.php?link=http://www.cl.cam.ac.uk/research/security/capsicum/
[5] /out.php?link=https://github.com/benlaurie/libtiff
[6] /out.php?link=http://mainisusuallyafunction.blogspot.com/2012/05/automatic-binary-hardening-with.html
[7] /out.php?link=http://www.openwall.com/lists/oss-security/2012/05/15/1