Позвольте мне подключить AppArmor , простой механизм обязательного контроля доступа, который может упростить создание таких песочниц. Вот мой профиль, чтобы ограничить мой xpdf
просмотрщик PDF:
#include <tunables/global>
/usr/bin/xpdf {
#include <abstractions/base>
#include <abstractions/bash>
#include <abstractions/X>
#include <abstractions/fonts>
/dev/tty rw,
owner /dev/pts/* rw,
/etc/papersize r,
/etc/xpdf/* r,
/bin/bash ix,
/usr/bin/xpdf r,
/usr/bin/xpdf.bin rmix,
/usr/share/xpdf/** r,
/usr/share/icons/** r,
owner /**.pdf r,
owner /tmp/* rw,
}
Вы можете изучить основы ограничения приложений по своему выбору за полдня или около того, а профили, написанные для вашего сервера, через полдня. (Этот профиль xpdf
занял у меня около четырех минут, но я знаю, что делаю. Мы развернули AppArmor на общедоступных серверах ведущего интернет-магазина в течение дня, с аналогичными результатами в других развертываниях. ) * +1010 *
AppArmor также предоставляет простой интерфейс для настройки пределов времени выполнения , например, сколько памяти процессу может быть выделено:
rlimit as <= 100M, # limit address space to 100 megabytes
AppArmor будет проще всего использовать в дистрибутивах Ubuntu, openSUSE, SLES, PLD, Mandriva, Pardis или Annvix, так как инструменты поставляются предварительно установленными. Но основная функциональность AppArmor имеется в ядре Linux версии 2.6.36 и новее, и можно установить AppArmor на любой дистрибутив Linux .
Другие подобные инструменты включают SElinux , TOMOYO или SMACK . Я думаю, что SMACK будет самым простым в развертывании, но любой из них может помешать вредоносному коду нанести вред вашей системе.