можно обнаружить только по изменениям в системной информации.
Как будет описано ниже, надежная система UNIX повышает учитывае-
мость за счет сопоставления каждому бюджету реального пользова-
теля, контроля над каждым действием и сопоставления каждого
действия конкретному пользователю в системе.
В типичной системе UNIX у каждого процесса есть реальный и
эффективный идентификаторы пользователя, равно как и реальный и
эффективный идентификаторы группы. Процесс с эффективным иденти-
фикатором пользователя root может устанавливать эти идентифика-
торы для любых пользователей. Концепция идентификации пользова-
теля расширена включением дополнительного идентификатора, назы-
ваемого регистрационным идентификатором пользователя (LUID). Это
нечто вроде нестираемой метки, проставляемой на каждом процессе,
связанном с пользователем. LUID идентифицирует пользователя, от-
ветственного за сессию процесса. LUID процесса, будучи однажды
проставлен, не может быть изменен никем. Дочерние процессы нас-
ледуют родительский LUID.
Дискреционное управление доступом
Средства дискреционного управления доступом позволяют опре-
делить, имеет ли некоторый пользователь доступ к информации, ко-
торую он хочет получить. Эта информация находится внутри некото-
рого объекта (файла, устройства и т.д.), которым пользователь-
ский процесс пытается воспользоваться. В большинстве систем UNIX
защита объекта осуществляется через взаимосвязь между пользова-
телем и группой процесса, с одной стороны, и битами режимов объ-
екта (владелец, группа, прочие), с другой стороны. Атрибуты за-
щиты для этих объектов находятся на усмотрении владельца объек-
та. Поэтому эти атрибуты владелец может сделать ограничивающими
(контролируемый доступ) или разрешающими (открытый доступ). В
надежной системе UNIX стандартные правила дискреционного управ-
ления доступом расширены так, что они обеспечивают более полную
защиту системной информации (системных баз данных), разделяемой
информации (временных каталогов) и входных файлов программы SUID
(установка идентификатора пользователя при выполнении) - напри-
мер, сообщения почты.
Помимо этого, в дискреционную стратегию доступа для UNIX
добавлен механизм, который может воспрепятствовать получению
программой SUID доступа к файлам запустившего ее пользователя.
Пользователь может создать промен (promain - protected domain,
т.е. защищенный домен). Промен является иерархией каталогов
(поддеревом). Когда пользователь запускает программу SUID, она
может произвести доступ к своим личным файлам только в том слу-
чае, если эти файлы находятся в упомянутом поддереве. Вне проме-
.
- 5-5 -
на программа SUID имеет доступ только к тем файлам, к которым
имеют доступ и активизатор программы, и ее владелец. Это сужает
рамки разрушения, которое может быть вызвано программой SUID в
данном каталоге. Такой механизм подробно описывается в странице
Руководства для promain(M) в "Справочнике пользователя" (User's
Reference).
Авторизации
Авторизация - это право на доступ к некоторому объекту или
на выполнение какого-либо системного действия. В большинстве
систем UNIX все решения по поводу доступа принимаются на основе
простых дискреционных критериев, или исходя из того, является ли
root владельцем процесса, осуществляющего доступ. Корневой бюд-
жет имеет полномочия на выполнение таких системных действий, ка-
кие не может выполнять никакой другой процесс. Операционная Сис-
тема определяет два типа авторизаций: авторизации ядра и
авторизации подсистемы. Авторизации ядра связаны с процессами.
(Процесс - это программа, выполняющаяся в системе в данный мо-
мент.) Они разрешают процессу выполнять определенные действия,
если процесс наделен требуемыми привилегиями. Авторизации под-
системы связаны с пользователями. Они позволяют пользователю вы-
полнять специальные действия с помощью команд подсистемы (надеж-
ные утилиты и программы). Подсистема - это связный набор файлов,
устройств и команд, служащих для выполнения некоторой функции.
Например, подсистема lp состоит из файлов блока подкачки печати,
печатающих устройств и команд, помогающих сопровождать подсисте-
му, таких как lpadmin(ADM).
Авторизации ядра хранятся в авторизационном наборе, который
сопоставляется каждому процессу. Авторизационный набор - это
список привилегий, который разрешает некоторый тип действий при
наличии определенной привилегии и запрещает в ее отсутствие. Ав-
торизации будут рассмотрены позже.
Установление идентичности и аутентичности (I&A)
Когда пользователь регистрируется в малонадежной системе
UNIX, выполняется ограниченная процедура установления идентич-
ности и аутентичности. Система ищет имя пользователя в базе дан-
ных паролей (/etc/passwd). Если имя пользователя отыскивается,
система устанавливает аутентичность пользователя, сравнивая вве-
денный пароль с шифрованной версией пароля, содержащейся в стро-
ке базы данных паролей пользователя. Предусмотрены некоторые
правила относительно характеристик пароля и возможности его из-
менения, но, как показала практика, этих правил недостаточно для
предохранения от проникновения через защиту.
Надежная система расширяет стандартные механизмы I&A. В ней
предусмотрено больше правил, касающихся типов используемых паро-
лей. Имеются процедуры генерации и изменения паролей. Изменены
местоположение и механизм защиты некоторых частей базы данных
паролей. И, наконец, администратор теперь обладает большими воз-
можностями контроля над действиями пользователей. Для обеспече-
ния этого аспекта системы создана специальная роль - Администра-
тор аутентификации (авторизация подсистемы auth). Обязанности
этого администратора подробно описываются в последующих разделах.
.
- 5-6 -
Контроль (audit)
В большинстве систем UNIX ведется ограниченная регистрация
системных действий с помощью соответствующей учетной подсистемы.
Учетная подсистема пишет одну учетную запись при завершении каж-
дого пользовательского процесса. Надежная операционная система
обеспечивает продолжительный ряд записей о действиях - журнал
(trail). В этот журнал заносится запись о каждом доступе, осу-
ществляемом между субъектом и объектом, и о каждом изменении
субъекта, объекта и системных характеристик. Подсистема контроля
управляется специальной ролью, называемой Администратором конт-
роля (авторизация подсистемы audit). Администратор контроля ре-
шает, сколько информации следует записать и насколько надежно
она записывается, а также сопровождает информацию, когда она
собрана. Подсистема контроля предоставляет Администратору конт-
роля обширную историю системных действий. Это помогает админист-
ратору идентифицировать, что произошло в системе, когда и с чьим
участием.
Защищенные подсистемы
В системах UNIX существуют механизмы setuid - установка
идентификатора пользователя (SUID) - и setgid - установка иден-
тификатора группы (SGID). С их помощью можно составлять програм-
мы, обеспечивающие личную информацию. Доступ к этой информации и
ее изменение разрешены только операциям, включенным в данные
программы. Операционная Система определяет несколько защищенных
подсистем. Каждая из таких подсистем состоит из совокупности
личной информации (файлы и/или базы данных), любых связанных с
ними устройств, а также утилит и команд, используемых для сопро-
вождения этой информации. Защищенные подсистемы пользуются меха-
низмами SUID/SGID для защиты своих личных файлов, баз данных и
устройств от неограниченного доступа. Операционная Система рас-
ширяет понятие защищенной подсистемы в нескольких аспектах:
* в ней определена большая грануляция пользователей и
групп, обеспечивающих определенные наборы системных ресурсов
(личная информация);
* она ведет специальную базу данных для пользователей, ко-
торым разрешено выполнять программы, сопровождающие личную ин-
формацию;
* в ней не требуется, чтобы пользователи регистрировались в
качестве администратора подсистемы; вместо этого используется
база данных для проверки авторизации подсистемы. Этого достаточ-
но для удовлетворения всех требований относительно полной учиты-
ваемости любых действий, выполняемых программами подсистемы.
.
- 5-7 -
РАБОТА НАДЕЖНОЙ СИСТЕМЫ
В данном разделе обсуждается концептуальная структура соп-
ровождения надежной системы. Первое основное решение, которое вы
должны принять, - кто будет ее сопровождать. Вы можете иметь од-
ного всемогущего супер-пользователя, зарегистрированного как
root, или можно распределить административные обязанности между
другими пользователями, выделяя им ровно столько возможностей,
сколько необходимо для административного управления каким-либо
одним аспектом работы системы.
Назначение административных ролей с помощью авторизаций
В надежной системе UNIX административные задачи распадаются
на несколько логических ролей. Каждая роль ответственна за соп-
ровождение одного аспекта системы. Идея о специфических адми-
нистративных ролях (и соответствующих им задачах и обязанностях)
является кардинальной в вашем представлении о надежной операци-
онной системе. Любая логическая роль может быть назначена одному
и тому же пользователю или различным членам некоторой админист-
ративной группы. С каждой расширенной ролью связана специальная
авторизация. Эта связь, наряду со сложной системой трассировки,
позволяет администратору вести полную регистрацию административ-
ных действий. Это помогает предотвращать одни проблемы и облег-
чать идентификацию и устранение других проблем.
Для выполнения задач, связанных с административной ролью,
администратор должен иметь соответствующую авторизацию. В приво-
димой ниже таблице перечисляются административные роли, связан-
ные с ними авторизации, а также разделы системы, сопровождаемые
каждой ролью.
.
- 5-8 -
Таблица 5.1
Защищенные подсистемы и административные роли
---------------------------------------------------------------------------
Роль | Авторизация | Раздел системы
| подсистемы |
---------------------------------------------------------------------------
Администратор | auth | Системный учет
аутентификации | |
Администратор принтера | lp | Подсистема устройства
| | построчной печати
Администратор терминала*| terminal | Разрешения для терми-
| | нального устройства
Администратор cron * | cron | Подсистема at и cron
Администратор памяти * | mem | Доступ к памяти системы
Администратор контроля | audit | Базы данных контроля и
| | контрольный журнал
Оператор | backup | Резервные копии файловой
| | системы
Администратор системы | su | Доступ su к бюджету
| | супер-пользователя
| sysadmin | Использование программы
| | integrity(ADM)
---------------------------------------------------------------------------
* В действительности эти роли не совсем административные,
как поясняется ниже.
Вы обязательно должны понять, какие обязанности включает в
себя каждая роль, и как ваши действия повлияют на секретность
системы. При формировании конфигурации и работе системы вы долж-
ны исходить из чувствительности информации, хранящейся на вашей