FAQ FreeBSD
Страница 39. Настройки безопасности


 

7.31. Что означает термин sandbox (песочница)?

"Sandbox" - это термин, используемый при обеспечении безопасности. Он имеет два
значения:
  * Процесс, помещённый внутрь некоторых виртуальных стен, которые
    предназначены для того, чтобы предотвратить взлом всей системы в результате
    взлома этого конкретного процесса.
    Говорится, что процесс может играть в границах этих стен. Что бы этот
    процесс ни делал, он эти стены разрушить не может, поэтому вам не нужен его
    особый аудит, чтобы с уверенностью сказать, насколько его работа безопасна
    для системы.
    Стеной может служить, например, идентификатор пользователя. Вот
    определение, даваемое на страницах справочника по named и часто
    используемое при обсуждении безопасности систем.
    Рассмотрим, например, службу ntalk (смотрите /etc/inetd.conf). Раньше эта
    служба запускалась с идентификатором пользователя root, а сейчас - tty.
    Пользователь tty - это та песочница, которая осложняет взлом системы через
    ntalk посредством использования этого идентификатора пользователя.
  * Процесс, помещённый внутрь симулируемой машины. Это даёт больший уровень
    безопасности. В общем это означает, что некто, взломавший процесс, может
    думать. что может сломать и систему в целом, однако фактически может
    сломать только симулятор этой машины и не может модифицировать никаких
    реальных данных.
    Самым распространённым способом достигнуть такого результата является
    построение имитирующего окружения в каталоге и затем запуск процессов и
    этом каталоге через chroot (т.е. задав этот каталог в качестве / для этого
    процесса, а не реальный / всей системы).
    Другим часто используемым методом является монтирование низлежащей файловой
    системы в режиме "только для чтения" и затем создание уровня файловой
    системы поверх неё, что даёт процессу видимость доступа по записи на ту
    файловую систему. Процесс будет полагать, что может записывать в те файлы,
    но это будет единственный процесс, который увидит результат - другие
    процессы не будут этого делать, ни в коем случае.
    Попытка сделать такой тип песочницы настолько прозрачна, что пользователь
    (или взломщик) даже не поймёт, что он в ней находится.
В UNIX реализованы два типа "песочниц". Один на уровне процесса, и один на уров
не идентификаторов пользователей.
Каждый процесс в UNIX полностью защищён от других процессов. Никакой процесс не
может модифицировать адресное пространство другого процесса. Это отличается от
Windows, где процесс может легко записать что-либо в адресное пространство
другого процесса, что приводит к аварийным ситуациям.
В UNIX каждым процессом владеет некоторый идентификатор пользователя. Если этот
пользователь не root, от ограждает процесс от других, владельцами которых яв
ляются другие пользователи. Этот идентификатор используется также для защиты
данных на диске.

7.32. Как разрешить обычным пользователям монтировать дискеты, компакт-диски идругие сменные носители?

Обычным пользователям можно позволить монтировать устройства. Вот как это
делается:
 1. Как пользователь root, установите системную переменную vfs.usermount в
    значение 1.
        # sysctl -w vfs.usermount=1
 2. Работая пользователем root, назначьте соответствующие права на устройства с
    поблочным доступом, которые соответствуют сменным носителям.
    Например, чтобы позволить пользователям монтировать дискеты в первом дисков
    оде, воспользуйтесь командой
        # chmod 666 /dev/fd0
    Чтобы разрешить пользователям из группы operator монтировать компакт-диски,
    сделайте так:
        # chgrp operator /dev/cd0c
        # chmod 640 /dev/cd0c
 3. Наконец, добавьте строчку vfs.usermount=1 в файл /etc/sysctl.conf, чтобы
    она срабатывала во время загрузки системы.
Теперь все пользователи могут монтировать дискету /dev/fd0 в собственные
каталоги:
    %  mkdir ~/my-mount-point
    %  mount -t msdos /dev/fd0 ~/my-mount-point

Пользователи из группы operator теперь могут монтировать компакт-диск /dev/cd0c
в собственные каталоги:
    %  mkdir ~/my-mount-point
    %  mount -t msdos /dev/cd0c ~/my-mount-point

Размонтировка устройства осуществляется просто:
    % umount ~/my-mount-point

Использование vfs.usermount, однако, имеет некоторые негативные стороны, св
язанные с вопросами безопасности. Более правильным способом работы с носителями
в формате MSDOS является использование пакета mtools из коллекции портов.

 
« Предыдущая статья