Разграничение доступа пользователей к ресурсам

Прежде чем перейти к рассмотрению вопросов разграничения доступа пользователей к ресурсам операционной системы, необходимо упомянуть о необходимости обеспечить невозможность ее подмены путем загрузки альтернативной ОС (например, с CD или ленты). Если подобная возможность существует, система заведомо является уязвимой.

Избежать этой опасности можно, прежде всего, средствами физической защиты помещения, где установлен компьютер. Кроме того, серверы компании Sun Microsystems снабжаются ключами, а на SPARCcenter 2000 имеется возможность установки электронного ключа, что повышает защищенность.

Для предотвращения несанкционированной загрузки в EEPROM-интерпретаторе предусмотрена переменная security-mode . Установка значения command для этой переменной приводит к запросу пароля при любой перезагрузке ОС. Правда, использование этого способа защиты опасно тем, что в случае утери пароля, машина не может быть загружена без замены микросхемы EEPROM.

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

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

Стандартная команда ls -l выдает список файлов с правами доступа к ним, например

-rwxr-xr-- filename

Здесь символы "rwx" означают наличие прав на чтение, запись и исполнение соответственно, а символ "-" — отсутствие такого права. В данном случае владелец может читать, писать и выполнять файл, члены группы — читать и выполнять, прочие пользователи — только читать.

Для директорий флаг "x" означает право на поиск (извлечение) файлов.

Для некоторых команд права доступа нужно задавать в виде трехзначного восьмеричного числа, когда каждый флаг обозначается одним двоичным разрядом. Можно привести ряд типичных значений прав доступа к файлам:

500. разрешено чтение и выполнение только владельцу (-r-x------);

444. всем разрешено только чтение (-r--r--r--);

744. все, кроме владельца, могут только читать (-rwxr--r--).

Первоначальные права доступа при создании файлов задаются с помощью команды umask . Ее аргумент, трехзначное восьмеричное число, показывает, какие права будут маскироваться ("вычитаться"). Так, команда umask 027 приведет к тому, что создаваемые файлы будут иметь права доступа rwx для владельца, rx для группы, а прочие пользователи останутся без каких-либо прав по отношению к файлу. Правильная установка значения umask — важный элемент реализации политики безопасности в области разграничения доступа.

Пользователь может изменять права доступа к своим файлам при помощи команды chmod .

Описанная схема позволяет строить достаточно надежные средства разграничения доступа к программам и данным, но ей недостает гибкости. Наличие всего трех видов субъектов доступа (владелец, группа, все остальные) затрудняет задание прав "с точностью до пользователя", особенно в случае больших конфигураций.

С целью устранения отмеченного недостатка, начиная с версии Solaris 2.5 стало возможным использовать списки управления доступом (Access Control List, ACL). В таком случае права доступа для отдельных пользователей либо групп могут устанавливаться индивидуально с помощью команды setfacl . Наличие списка обнаруживается при помощи команды ls -l по символу + после стандартных для UNIX прав доступа. Например, для файла file1, принадлежащего пользователю user1 из группы group1, указанные действия будут выглядеть следующим образом:

ls -l file1

-rw-r--r-- + user1 group1 .... file1

Полную информацию по ACL дает команда getfacl. В рассматриваемом случае она выдаст следующую информацию:

getfacl file1

#file: file1

#owner: user1

#group: group1

user::rw-

user:user1:rw-

user:user2:---

group::r--

other:r--

В данном примере отдельно для пользователя user2 запрещен любой доступ к файлу file1.

Механизм ACL работает как в локальных (UFS), так и в сетевых (NFS) файловых системах. Параметры списка доступа сохраняются также всеми встроенными средствами резервного копирования.

Среди всех пользователей особое положение занимает пользователь root, обладающий максимальными привилегиями. Обычные правила разграничения доступа к нему не применяются, то есть ему доступна вся информация на компьютере.

Имеется три легальных способа получения привилегий root: вход в систему под этим именем, использование команды su и выполнение программ, переустанавливающих идентификатор пользователя.

Очевидно, пароль пользователя root должен выбираться и скрываться системными администраторами с особой тщательностью (это важно и для прямого входа в систему, и для команды su ). В качестве дополнительной меры безопасности ОС Solaris 2.x позволяет запретить вход под именем root с потенциально ненадежных терминалов. При анализе регистрационной информации системным администраторам следует обращать особое внимание на все попытки входа под именем root и использования команды su .

По отношению к программам, переустанавливающим идентификатор пользователя, необходим контроль целостности и в плане прав доступа к программному файлу, и в плане его содержимого. Число таких программ желательно минимизировать и применять их только тогда, когда это действительно необходимо (как, например, для программы login ). В качестве инструмента контроля можно рекомендовать утилиту ASET.

Наличие нескольких путей получения повышенных привилегий является потенциально уязвимым местом в защите операционной системы. Особенно опасно, когда переустановка идентификатора пользователя производится не бинарным файлом, а программой командного интерпретатора ( shell script ), что объясняется легкостью ее модификации. Указанное обстоятельство заставляет администратора системы контролировать штатные пользовательские командные интерпретаторы, ограничивая возможности пользователя записями в файле /etc/shells .

Поскольку большинство пользователей использует ограниченный набор приложений, в ряде случаев можно зафиксировать круг доступных программ, что особенно актуально при проведении нормативной политики безопасности предприятия. Для этого в Solaris 2.x предусмотрен "restricted shell" (ограничивающий системный интерпретатор). Пользователь ограничивается своей директорией (в другую перейти нельзя) и может использовать программы только из тех директорий, которые записаны в переменной окружения PATH , причем изменение значения этой переменной не допускается. Кроме того, пользователь не может задавать полные имена программных файлов и переназначать поток ввода-вывода. В случае применения этого интерпретатора уменьшается вероятность непреднамеренного нарушения информационной безопасности системы. Существуют, впрочем, более продвинутые программные продукты, выполняющие ту же задачу, которые будут рассмотрены при описании путей усиления безопасности ОС Solaris.

В ряде случаев пользователь вообще не нуждается в непосредственном взаимодействии с операционной системой, работая постоянно с каким-либо приложением (например, клиентом базы данных). В этом случае целесообразно использовать возможности разграничения доступа, предоставляемые СУБД. Чтобы реализовать ситуацию прямого входа в приложение app, необходимо создать следующий файл запуска командного интерпретатора (файл /etc/skeleton/.profile ):

#/bin/sh

trap 0 2 3 4 5 6

PATH=/home/bin;export PATH

APHOME=/home; export APHOME

exec /home/bin/app

exit

Команда trap позволяет не допустить прерывания стартового файла пользователем, который в рассматриваемом случае сможет работать исключительно с описанным приложением.


Системные средства аутентификации пользователей Содержание ASET — средство проверки корректности конфигурации системы
Copyright ╘ 1993-2000, Jet Infosystems