Stephanie: непотопляемая OpenBSD

Xakep, номер #047, стр. 047-074-1

Делаем систему максимально защищенной!

Will Barrent (barrent@hotbox.ru)

Итак, ты выбрал OpenBSD в качестве начинки для своего сервера, как одну из самых безопасных операционок. Однако если ты собираешься раздавать на своей машине шеллы, неплохо бы принять кое-какие дополнительные меры предосторожности, дабы усложнить жизнь потенциальным взломщикам. В этом тебе и поможет пакет Stephanie, о котором пойдет речь в этой статье.

OpenBSD - свободно распространяемая операционная система, основанная на 4.4BSD. Главной целью проекта является максимальная безопасность. Проект был основан в 1994 году. Текущая версия OpenBSD 3.1. Домашняя страница проекта: http://www.openbsd.org

Сейчас существует множество патчей для различных unix-like систем, направленных на повышение их безопасности. В основном работа таких патчей сводится к запрету пользователям делать то, что делать им совсем необязательно (например, смотреть список чужих процессов), наложению ограничений на функциональность системы для "недоверенных пользователей" и т.д. Иногда это может помочь предотвратить взлом с использованием еще неизвестных дыр. Для OpenBSD единственным таким патчем является Stephanie.

Stephanie - набор патчей и утилит для OpenBSD, созданных специально для использования системы в "агрессивных" условиях, например, при предоставлении shell-аккаунтов. Пакет основан на TPE-патче (Trusted Path Execution) для OpenBSD 2.4, опубликованном в электронном хакерском журнале Phrack (http://www.phrack.org/phrack/54/P54-06). Домашняя страница проекта: http://www.innu.org/~brian/Stephanie.

Установка

Переходим от слов к делу. Думаю, что с основами администрирования OpenBSD ты уже знаком, ядро пересобирать умеешь, где какие конфиги лежат, тоже знаешь. Рассмотрим установку Stephanie на "чистый" релиз OpenBSD 3.1. Для начала скачиваем и распаковываем пакет:

# cd ~

# ftp http://www.innu.org/~brian/Stephanie/dist/Stephanie-3.1.tar.gz

# tar -zxf Stephanie-3.1.tar.gz

Копируем файлы, которые нам потребуются для сборки ядра и необходимых утилит, в соответствующие места:

# cd Stephanie-3.1

# cp ke/* /sys/ke/

# cp sys/* /sys/sys/

# cp sys/* /usr/include/sys/

# cp *.patch /usr/src/

Патчим исходники системы:

# cd /usr/src

# patch -p0 < Stephanie-3.1.patch

# patch -p0 < ld.patch

Теперь нужно обновить таблицу системных вызовов, так как она была изменена после приложения патча:

# cd /sys/ke

# make

Скопируем новые заголовочные файлы:

# cp /sys/syscall.h /usr/include/sys/

# cp /sys/syscallargs.h /usr/include/sys/

# cp /sys/sysctl.h /usr/include/sys/

Мы также пропатчили программку ld.so, которая отвечает за динамическую линковку библиотек при запуске приложений, чтобы добавить к ней дополнительные возможности по ограничению махинаций с переменными окружения, например - подмена libc через LD_PRELOAD. Поэтому пересоберем и ее:

# cd /usr/src/gnu/usr.bin/ld/rtld

# make depend && make && make install

Теперь соберем утилиты, которыми мы будем рулить новой системой:

# cd ~/Stephanie-3.1

# cd aclctl && make && make install

# cd ../k5ctl && make && make install

Содержание  Вперед на стр. 047-074-2

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114