Тюрмы

Отладка процессов

FreeBSD предусматривает упрощенную возможность управления и отладки выполнения процесса. Эта возможность, доступ к которой осуществляется посредством системного вызова ptrace, позволяет родительскому процессу контролировать выполнение порожденного процесса, манипулируя состоянием выполнения режимов пользователя и ядра. В частности, с помощью ptrace родительский процесс может выполнить в отношении порожденного процесса следующие операции:

Ограничения тюрьмы

В существующем виде код тюрьмы предоставляет окружению тюрьмы точное подмножество системных ресурсов, основываясь на доступе к процессам, файлам, сетевым ресурсам и привилегированным службам. Представление окружения тюрьмы в виде полнофункциональной системы FreeBSD предоставляет максимальную поддержку приложениям и возможность предложить широкий диапазон служб в рамках окружения тюрьмы.

Реализация тюрьмы

Реализация системного вызова jail проста. Выделяется и заполняется предоставленными аргументами структура данных prison}. Структура prison связывается со структурой процесса вызывающего процесса. Значение счетчика ссылок структуры prison устанавливается в единицу, и для установки корневого каталога тюрьмы осуществляется системный вызов chroot. После своего создания структура prison не может быть изменена.

Ограничения процессов с привилегиями суперпользователя.

Процессы, работающие с привилегиями суперпользователя, обнаружат, что на привилегированные вызовы, которые они могут делать, накладывается множество ограничений. Большинство ограничений спроектировано для ограничения деятельности, которая повлияла бы на ресурсы вне тюрьмы. Эти ограничения включают следующие запреты на:

Семантика тюрьмы

Двумя важными целями реализации тюрьмы являются следующие.

Механизм управления доступом (часть 2)

Этот абстрактный риск становится более ясным при использовании реального практического примера: многие провайдеры веб-служб используют FreeBSD для размещения веб-сайтов заказчиков. Эти провайдеры должны защитить целостность и конфиденциальность своих собственных файлов и служб от своих заказчиков. Они должны также защищать файлы и службы одного заказчика от (случайного или умышленного) доступа другим заказчиком.

Механизм управления доступом BSD

Механизм управления доступом FreeBSD спроектирован для окружения с двумя видами пользователей: с административными привилегиями и без них. Часто желательно делегировать некоторые, но не все административные функции сторонам, не пользующимся доверием или пользующимся меньшим доверием, и в то же время установить обязательные для всей системы политики на взаимодействие и совместное использование процессов. Исторически попытки создания такого окружения были как трудными, так и дорогими.

RSS-материал