В рамках проекта Isolate
создана утилита, предназначенная для организации изолированного
выполнения приложений с минимальными привилегиями и ограниченным
доступом к X-серверу. Идея по созданию isolate возникла после того, как
автор проекта столкнулся с уязвимостью в медиа-плеере, позволяющей
выполнить код после открытия специально оформленного MP3-файла. Задача
isolate - обеспечить возможность защиты системы при выполнении
неблагонадежных программ или при обработке полученного из
недоверительных источников контента. В отличие от похожих по возможностям аналогов, например, завязанной на SELinux утилиты sandbox,
isolat является многоплатформенным приложением, одинаково хорошо
работающим как в Linux, так и во FreeBSD. Для обеспечения изоляции в
isolate использован метод динамического формирования chroot-окружения,
предложенный Daniel J. Bernstein в главе 5.2 документа "Размышления о безопасности через 10 лет после выхода qmail 1.0".
Перед запуском процесса, isolate анализирует список
задействованных для работы подконтрольной программы библиотек, программ
и файлов, после чего автоматически формируется chroot-окружение.
Пользователь имеет возможность вручную указать дополнительные
директории для помещения в создаваемый chroot, ограничить доступный
объем памяти, максимальное число открытых файлов и запущенных
процессов, что позволяет, например, быстро сформировать окружение для
запуска подозрительного shell скрипта. Процесс под управлением isolat
выполняется под идентификатором несуществующего в системе пользователя.
Источник
|