Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #70, ОКТЯБРЬ 2004 г.

Блеск и нищета Systrace

Антон Карпов & Андрей Матвеев

Хакер, номер #070, стр. 070-074-6


# make USE_SYSTRACE=yes install clean

Таким образом, при выполнении команды make цели configure, build и fake будут защищены Systrace'ом, и устанавливаемая программа не сможет совершить никаких подозрительных и уж тем более деструктивных действий. Хотя не секрет, что сборка программ из портов не приветствуется политикой OpenBSD. Вместо этого рекомендуется использовать прекомпилированные пакеты.

Ядреный систрейс

Systrace работает через устройство /dev/systrace, что требует поддержки ядром специального псевдоустройства:

pseudo-device Systrace 1

Разумеется, /sys/conf/GENERIC имеет такую опцию по умолчанию. Вообще, OpenBSD-team не рекомендует пересобирать ядро: в GENERIC можно найти все, что нужно, не подвергая систему опасности ее запороть. Так что от тебя даже не примут багрепорт, если ты нашел ошибку в Systrace не на GENERIC-ядре ;).

Минусы Systrace

Если при использовании Systrace все становится таким вкусным и секурным, то возникает резонный вопрос: "Почему до сих пор в Net и OpenBSD не затрейсили все демоны и базовые бинарики?". К сожалению, ответов здесь будет несколько:

- существенно снижена скорость работы программ (за счет дополнительных вызовов семейства exec, постоянного контроля за сисколлами, протоколирования запросов и т.д.);

- разработчикам невероятно сложно создать полис, способный удовлетворить все потребности пользователей;

- пока не существует ни одного полиса, корректно работающего с NIS и некоторыми видами аутентификации;

- потенциальная опасность возникновения гонок привилегий (race conditions), например, из-за того, что Систрейс перехватывает и замещает имена файлов;

- далеко не идеальная разработка.

INFO

Разумеется, Systrace - не первая тулза, работающая с политикой ограничения системных вызовов. Самый популярный аналог разработан для FreeBSD и называется Cerb (cerber.sf.net). Главный его недостаток - статические политики, требующие перекомпиляции при изменении. Systrace же каждый раз перечитывает конфиг, что, к сожалению, сказывается на производительности.

CD

На нашем диске ты найдешь маленький бонус - четыре Systrace-враппера (простейший, два варианта stsh и swrapper, специально созданный для запуска suid'ных бинариков), а также набор полисов Hairy Eyeball.

Назад на стр. 070-074-5  Содержание