Назад Вперед Оглавление

3. Безопасность

This part of the document by Hans Lermen, <lermen@fgan.de> on Apr 6, 1997.

Это советы на тот случай, когда dosemu запускается на машине, которая, хотя бы эпизодически, подключается к интернет или другим машинам, либо другим способом позволяет работать "чужим" пользователям.

  • НИКОГДА не позволяйте посторонним пользователям выполнять DOSEMU из-под root-а!!! (Начиная с dosemu-0.66.1.4 это больше не требуется, работа от имени обычного пользователя сохраняет полную функциональность).
  • Не конфигурируйте dosemu с опцией --enable-runasroot. Обчно dosemu отключает привелигированный режим после запуска, и включает его только при необходимости. С опцией --enable-runasroot программа будет постоянно выполняться в режиме суперпользователя и отключать его только при обращении к некоторым чувствительным к режиму безопасности ресурсам, что не очень-то хорошо.
  • Никогда не запускайте программы, использующие DPMI, если dosemu запускается как root-suid, ... а именно это обычно и имеет место, иначе только администратор мог бы запускать dosemu.

    (для отключения в /etc/dosemu.conf установите 'dpmi off')

    Существует возможность подменить чувствительные участки кода дос-эмулятора, что дает шанс злонамеренной дос-программе, знающей устройство dosemu (а это легко, т.к. доступны исходники), получить права супервизора над другими (не-dosemu) процессами. Из-за того, что многие игры не могут работать без этого, мы разрешили создание LDT-дескриптора, покрывающего все пользовательское пространство.

    В /etc/dosemu.conf имеется опция 'secure', которая позволяет отключить создание таких дескрипторов, но в настоящее время это защищает только код эмулятора и стэк, и некий злоумышленник может использовать незащищенную "кучу" в соответсвии со своим чувством юмора.

    В любом случае 'secure on' лучше, чем ничего.

  • Никогда не позволяйте запускать команду 'system.com' (часть dosemu). Она вызывает функцию system() системной библиотеки libc. Хотя привилегированный режим выключен, вызванный процесс наследует (uid=root, euid=user), и так как unix-программа может использовать setreuid(), чтобы получить обратно права суперпользователя, то ... остальное можете вообразить сами. Использование команды 'system' отключается опцией 'secure on' в /etc/dosemu.conf.

    Команда 'unix.com' (также из состава dosemu) не имеет этой дыры в защите: перед выполнением внешней команды порождается отдельный процесс, который полностью сбрасывает все привилегии... - никакой опасности (и поэтому она больше не будет отключаться по 'secure on').


Назад Вперед Оглавление
Перевод: Валерий Груздев (grue@vpti.vladimir.ru)

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости