isolate - утилита для изолированного выполнения подозрительных приложений

05.01.2010 22:45

В рамках проекта Isolate создана утилита, предназначенная для организации изолированного выполнения приложений с минимальными привилегиями и ограниченным доступом к X-серверу. Идея по созданию isolate возникла после того, как автор проекта столкнулся с уязвимостью в медиа-плеере, позволяющей выполнить код после открытия специально оформленного MP3-файла. Задача isolate - обеспечить возможность защиты системы при выполнении неблагонадежных программ или при обработке полученного из недоверительных источников контента.

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

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