понедельник, 15 марта 2010 г.

Обзор механизмов обеспечения безопасности ОС Solaris 10.

Введение

ОС Solaris является представителем большого семейства ОС Unix. Стоит отметить, что Solaris на данный момент является единственной коммерческой Unix системой, разработчики которой решили пойти пути открытия исходного кода операционной системы. Более того одна из наиболее современных ОС на данный момент доступна совершенно бесплатно для использования в любых целях. Много хороших слов можно сказать и про лицензию CDDL и про политику компании Sun Microsystems в отношении образовательных учреждений, однако сегодня мы начнем разговор о конкретных вещах – защите ОС Solaris.

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

Наряду с реализацией базовых функций по обеспечению безопасности, Solaris предлагает внушительный перечень инновационных механизмов защиты, которые мы вкратце рассмотрим на этой лекции:
  • Process Rights Management;
  • Role Based Access Control;
  • Solaris Containers;
  • Solaris Trusted Extensions;
  • и ряд других;

Process Rights Management

В рамках классической модели администрирования Unix-систем особая роль отдается суперпользователю root, права которого в системе никак не ограничены. При этом возникает ряд негативных моментов, таких как:
  • сложность разделения административных полномочий в системе;
  • неограниченность доступа к ресурсам системы администратора.

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

Одним из решений данной проблемы, предлагаемых в ОС Solaris является предоставление процессам привилегий, необходимых им для выполнения определенных задач. Понятие «привилегии» является вполне конкретным и представляет собой дискретное право на выполнение какого-либо действия в системе. Использование привилегий устраняет необходимость использования setuid-программ.

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

Таким образом понятие «привилегии» является ключевым компонентом управления правами процессов (Process Rights Management).

Более подробно использование привилегий будут рассмотрены в лекции 4 «Role Based Access Control».
Role Based Access Control

Так же, как привилегии являются основой для управления правами, RBAC является основой для управления правами пользователей. Права суперпользователя разделяются по т.н. профилям прав. Профили прав назначаются ролям, которые по своей сути являются учетными записями специального типа. Администратором системы предоставляются права пользователям входить в определенные роли, что позволяет разделить права по администрированию разных компонентов системы между разными пользователями.

Вместе с системой поставляются предопределенные наборы прав, которые охватывают большой спектр административных полномочий суперпользователя. В частности присутствуют такие профили прав как, Primary Administrator (эквивалент пользователя root), Cron Management (доступ к администрированию Cron), Printer Management (управление системой печати) и многие другие. Таким образом достаточно создать роль, приписать ей определенные профили прав из уже имеющихся и предоставить возможность определенным пользователям входить в эту роль. Так же профили прав с таким же успехом могут быть назначены и обычным пользователям.

Solaris не содержит ни одной предопределенной роли после установки. Тем не менее есть три роли, которые можно легко сконфигурировать на базе имеющихся в системе профилей прав. Эти роли базируются на одноименных профилях прав:
  • Primary Administrator – эквивалент суперпользователя;
  • System Administrator – роль, с правами меньшими, чем Primary Administrator. Может управлять файловыми системами, системой электронной почты, программным обеспечением. Но имеет ряд ограничений по безопасности. Например, с ее помощью нельзя устанавливать пароли пользователей системы;
  • Operator – роль администратора обладающая самыми маленькими административными правами, такими как управление резервным копированием и системой печати.

Таким образом механизм RBAC реализует возможность разделения административных полномочий.
Solaris Containers

В технологию Solaris Container входят две технологии:
  • Управление ресурсами (Resource Management);
  • Зоны (Zones).

Первая реализует механизм контроля использования приложениями системных ресурсов и позволяет:
  • Распределять вычислительные ресурсы между приложениями, такие как, процессорное время, оперативная память и др.;
  • Контролировать использование выделенных ресурсов и выделять необходимые дополнительные ресурсы при необходимости;
  • Вести учет информации, которую можно использовать для анализа, биллинга и планирования выделения вычислительных мощностей;

Вторая позволяет создавать независимые друг от друга (но не от глобальной зоны) виртуальные копии операционной системы, что повышает надежность и безопасность системы.

Далее вкратце рассмотрим основы этих двух механизмов. Более подробно они будут рассмотрены в лекции Solaris Containers.
Resource Management

Для реализации управления ресурсами предусмотрены следующие механизмы решающие определенный круг задач:
  • Механизмы ограничения (Constraint Mechanisms) – предоставляют администратору или разработчику устанавливать лимиты потребления ресурсов приложениями (в данном случае требуется пояснить, что ресурсы выделятся не конкретным приложениям, а т.н. «workloads» - набору связанных задач. Например: все приложения конкретного пользователя, все приложения проекта и т.п.);
  • Механизмы планирования (Scheduling Mechanisms) – механизм принятия решений о выделении ресурсов приложениям;
  • Механизмы разделения (Partitioning Mechanisms) – данный механизм позволяет привязывать перечень доступных ресурсов к набору связанных задач («workload»). Он позволяет гарантировать предоставление процессам требуемых системных ресурсов.

Объектами выделения ресурсов (объекты, которым выделяются ресурсы) в Solaris являются проекты (projects), задачи (tasks) и процессы (processes), взаимосвязи которых показаны на рисунке.


Вершиной дерева является проект. Каждый пользователь привязывается к определенному проекту или проекту по умолчанию, если такая привязка не выполнена администратором отдельно. При подключении к проекту создается новая задача. Процессы создаются в рамках этой задачи. Задачи создаются при выполнении следующих команд, действий и функций:
  • login;
  • cron;
  • newtask;
  • setproject;
  • su;

Zones

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

В ОС Solaris представлены 2 типа зон – глобальная и неглобальная. Глобальная зона одна и из нее можно выполнять все действия по установке, настройке, загрузке и остановке неглобальных зон (количеством до 8129). Использование неглобальных зон для различных задач позволяет повысить безопасность системы за счет полной изоляции пользователей и процессов разных зон, при которой компроментация приложения или действия пользователей одной зоны никак не влияют на другие зоны;

Аудит системы.

Solaris Auditing

Аудит представляет собой сбор информации об использовании ресурсов системы. Собираемая информация содержит в себе в том числе и данные о событиях безопасности (security related), происходящих в системе. Эти данные можно использовать для расследования инцидентов, анализа угроз безопасности и других мероприятий.

В процессе аудита системы генерируются записи аудита, сохраняющиеся в файле на локальной ФС, NFS разделе, либо отправляемые по протоколу syslog на другой хост. Записи аудита генерируются в результате определенных событий. Записи аудита могут генерироваться:
  • Приложениями;
  • В результате определенного события;
  • В результате системного вызова.

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

Basic Audit and Reporting Tool

BART представляет собой универсальный инструмент контроля целостности системы. Суть работы BART заключается в генерации слепка объектов файловой системы и последующей проверке этих объектов на соответствие сохраненному эталону. Контроль целостности реализуется за счет использования контрольных сумм MD5.

BART можно гибко настраивать. В частности можно указать определенный перечень объектов для проверки и параметры, используемые для сравнения эталона и проверяемого объекта (например конкретные атрибуты файла, а не все его атрибуты).
Trusted Extensions

Trusted Extensions представляет собой технологию защиты информации по уровням доступа, что позволяет реализовывать политику защиты информации вне зависимости от ее владельца. Уходя корнями в Trusted Solaris 8, сегодня эта технология реализована в стандартном ядре ОС Solaris 10.



Данный подход позволяет Solaris осуществлять поддержку обоих моделей:
  • DAC (Discretionary Access Control), основанной на привязке предоставления доступа к владельцу;
  • MAC (Mandatory Access Control), основанной на уровне доступа субъекта;

Основным понятием данной технологии является понятие метки («Label»), на основе которого субъектам системы предоставляется доступ к объектам системы. Ввиду своей простоты технология MAC, основанная на метках, является быстрее технологии DAC, основанной на дискретных правах доступа.

При отключенном уровне Trusted Extensions (что реализуется установкой в ядре булевой переменной, которая показывает режим проверки доступа) ядро не реализует политику MAC. После включения Trusted Extensions ядро системы при попытке доступа проводит проверку, основанную на сравнении меток субъектов системы, запрашивающих доступ, и меток объектов системы, к которым этот доступ запрашивается.

Реализация многоуровневого контроля доступа Trusted Extensions в Solaris соответствует Common Criteria Labeled Security Protection Profile (LSPP) и Role-Based Access Protection Profile (RBAC). Гарантируя высокую надежность, Trusted Extensions, в тоже время, обеспечивают совместимость и эффективность.

Совместимость достигается за счет использования существующих стандартов. При реализации Trusted Extensions не использовались какие-либо новые протоколы или новые атрибуты объектов файловой системы, что позволяет не использовать приложения без предварительной модификации. MAC реализуется за счет виртуализации среды исполнения средствами вышеупомянутой технологии Solaris Containers. Фактически для каждого уровня допуска (метки) создается собственная зона, в которой и запускаются приложения с соответствующим уровнем доступа.

Эффективность обеспечивается за счет перемещения проверок доступа на уровень абстракции выше уровня файлов и директорий - метки доступа ассоциируются не с объектами файловой системы, коими являются файлы, а с зонами и сетевыми интерфейсами. В рамках зоны можно использовать разные файловые системы и сетевые ресурсы.

Операционные системы, поддерживающие технологию MAC могут взаимодействовать через сеть с поддержкой разграничения уровня доступа. В рамках данной технологии каждый узел сети может работать на разных уровнях доступа (при существующей поддержке операционной системой данной технологии). Разделение трафика по уровням доступа выполняется за счет использования опции CIPSO (Commercial IP Security Option), характеризующей уровень доступа, в каждом отправляемом IP пакете. Таким образом имеется возможность строить сети, защищенные по уровням доступа.

В рамках одного хоста зоны, могут использовать как один сетевой интерфейс, так и разные сетевые интерфейсы. Если используется один интерфейс, то трафик этих зон мультиплексируется на основе опции CIPSO и уровне доступа каждой конкретной зоны (т.е. если CIPSO соответствует уровню доступа зоны, этот трафик передается в эту зону).

Заключение

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

* Записаться на онлайн-курс "Безопасность сетей на базе Solaris 10" можно на сайте http://opencourses.ru
 

Комментариев нет:

Отправить комментарий