Архитектура подсистемы защиты ОС

Основные функции подсистемы защиты ОС

Подсистема защиты ОС выполняет следующие основные функции.

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

2. Разграничение доступа. Каждый пользователь системы имеет доступ только к тем объектам ОС, к которым ему предоставлен доступ в соответствии с текущей политикой безопасности.

3. Аудит. ОС регистрирует в специальном журнале события, потенциально опасные для поддержания безопасности системы.

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

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

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

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

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

Идентификация, аутентификация и авторизация субъектов доступа

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

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

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

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

Авторизация субъекта доступа происходит после успешной идентификации и аутентификации. При авторизации субъекта ОС выполняет действия, необходимые для того, чтобы субъект мог начать работу в системе. Например, авторизация пользователя в операционной системе UNIX включает в себя порождение процесса, являющегося операционной оболочкой, с которой в дальнейшем будет работать пользователь. В ОС Windows NT авторизация пользователя включает в себя создание маркера доступа пользователя, создание рабочего стола и запуск на нем от имени авторизуемого пользователя процесса Userinit, инициализирующего индивидуальную программную среду пользователя. Авторизация субъекта не относится напрямую к подсистеме зашиты ОС. В процессе авторизации решаются технические задачи, связанные с организацией начала работы в системе уже идентифицированного и аутентифицированного субъекта доступа.

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

Разграничение доступа к объектам ОС

Основными понятиями процесса разграничения доступа к объектам ОС являются объект доступа, метод доступа к объекту и субъект доступа.

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

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

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

Таким образом, объект доступа — это то, к чему осуществляется доступ, субъект доступа — это тот, кто осуществляет доступ, и метод доступа — это то, как осуществляется доступ.

Для объекта доступа может быть определен владелец — субъект, которому принадлежит данный объект и который несет ответственность за конфиденциальность содержащейся в объекте информации, а также за целостность и доступность объекта.

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

Правом доступа к объекту называют право на выполнение доступа к объекту по некоторому методу или группе методов. Например, если пользователь имеет возможность читать файл, говорят, что он имеет право на чтение этого файла. Говорят, что субъект имеет некоторую привилегию, если он имеет право на доступ по некоторому методу или группе методов ко всем объектам ОС, поддерживающим данный метод доступа.

Разграничением доступа субъектов к объектам является совокупность правил, определяющая для каждой тройки субъект—объект—метод, разрешен ли доступ данного субъекта к данному объекту по данному методу. При избирательном разграничении доступа возможность доступа определена однозначно для каждой тройки субъект—объект—метод, при полномочном разграничении доступа ситуация несколько сложнее.

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

Правила разграничения доступа, действующие в ОС, устанавливаются администраторами системы при определении текущей политики безопасности. За соблюдением этих правил субъектами доступа следит монитор ссылок — часть подсистемы защиты ОС.

Правила разграничения доступа должны удовлетворять следующим требованиям:

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

2. Не должны допускать разрушающие воздействия субъектов доступа на ОС, выражающиеся в несанкционированном изменении, удалении или другом воздействии на объекты, жизненно важные для нормальной работы ОС.

3. Любой объект доступа должен иметь владельца. Недопустимо присутствие ничейных объектов — объектов, не имеющих владельца.

4. Не допускать присутствия недоступных объектов — объектов, к которым не может обратиться ни один субъект доступа ни по одному методу доступа.

5. Не допускать утечки конфиденциальной информации.

Существуют две основные модели разграничения доступа:
• избирательное (дискреционное) разграничение доступа;
• полномочное (мандатное) разграничение доступа.

При избирательном разграничении доступа определенные операции над конкретным ресурсом запрещаются или разрешаются субъектам или группам субъектов. Большинство ОС реализуют именно избирательное разграничение доступа (discretionary access control).

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

Избирательное разграничение доступа

Система правил избирательного разграничения доступа формулируется следующим образом.

1. Для любого объекта ОС существует владелец.
2. Владелец объекта может произвольно ограничивать доступ других субъектов к данному объекту.
3. Для каждой тройки субъект—объект—метод возможность доступа определена однозначно.
4. Существует хотя бы один привилегированный пользователь (администратор), имеющий возможность обратиться к любому объекту по любому методу доступа.

Привилегированный пользователь не может игнорировать разграничение доступа к объектам. Например, в Windows NT администратор для обращения к чужому объекту (принадлежащему другому субъекту) должен сначала объявить себя владельцем этого объекта, использовав привилегию администратора объявлять себя владельцем любого объекта, затем дать себе необходимые права и только после этого может обратиться к объекту. Последнее требование введено для реализации механизма удаления потенциально недоступных объектов.

При создании объекта его владельцем назначается субъект, создавший данный объект. В дальнейшем субъект, обладающий необходимыми правами, может назначить объекту нового владельца. При этом субъект, изменяющий владельца объекта, может назначить новым владельцем объекта только себя. Такое ограничение вводится для того, чтобы владелец объекта не мог отдать «владение» объектом другому субъекту и тем самым снять с себя ответственность за некорректные действия с объектом.

Для определения прав доступа субъектов к объектам при избирательном разграничении доступа используются такие понятия, как матрица доступа и домен безопасности.

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

Домен безопасности (protection domain) определяет набор объектов и типов операций, которые могут производиться над каждым объектом ОС.

Возможность выполнять операции над объектом есть право доступа, каждое из которых есть упорядоченная пара <object-name, rights-set>. Таким образом, домен есть набор прав доступа. Например, если домен D имеет право доступа <file F, (read, write)>, это означает, что процесс, выполняемый в домене D, может читать или писать в файл F, но не может выполнять других операций над этим объектом (рис. 8.1).

Объект / Домен F1 F2 F3 Printer
D1 read execute
D2 read
D3 print
D4 read write read write

Рис. 8.1. Специфицирование прав доступа к ресурсам

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

Модель безопасности, специфицированная выше (см. рис. 8.1), имеет вид матрицы и называется матрицей доступа. Столбцы этой матрицы представляют собой объекты, строки — субъекты. В каждой ячейке матрицы хранится совокупность прав доступа, предоставленных данному субъекту на данный объект.

Поскольку реальная матрица доступа очень велика (типичный объем для современной ОС составляет несколько десятков мегабайтов), матрицу доступа никогда не хранят в системе в явном виде. В общем случае эта матрица будет разреженной, т. е. большинство ее клеток будут пустыми. Матрицу доступа можно разложить по столбцам, в результате чего получаются списки прав доступа ACL (access control list). В результате разложения матрицы по строкам получаются мандаты возможностей (capability list, или capability tickets).

Список прав доступа ACL. Каждая колонка в матрице может быть реализована как список доступа для одного объекта. Очевидно, что пустые клетки могут не учитываться. В результате для каждого объекта имеем список упорядоченных пар <domain, rights-set>, который определяет все домены с непустыми наборами прав для данного объекта.

Элементами списка прав доступа ACL могут быть процессы, пользователи или группы пользователей. При реализации широко применяется предоставление доступа по умолчанию для пользователей, права которых не указаны. Например, в ОС Unix все субъекты-пользователи разделены на три группы (владелец, группа и остальные), и для членов каждой группы контролируются операции чтения, записи и исполнения (rwx). В итоге имеем ACL — 9-битный код, который является атрибутом разнообразных объектов Unix.

Мандаты возможностей. Как отмечалось выше, если матрицу доступа хранить по строкам, т. е. если каждый субъект хранит список объектов и для каждого объекта — список допустимых операций, то такой способ хранения называется «мандаты возможностей» или «перечни возможностей» (capability list). Каждый пользователь обладает несколькими мандатами и может иметь право передавать их другим. Мандаты могут быть рассеяны по системе и вследствие этого представлять большую угрозу для безопасности, чем списки контроля доступа. Их хранение должно быть тщательно продумано.

Избирательное разграничение доступа — наиболее распространенный способ разграничения доступа. Это обусловлено сравнительной простотой его реализации и необременительностью правил такого разграничения доступа для пользователей. Главное достоинство избирательного разграничения доступа — гибкость; основные недостатки — рассредоточенность управления и сложность централизованного контроля.

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

Расширением модели избирательного разграничения доступа является изолированная (или замкнутая) программная среда.

При использовании изолированной программной среды права субъекта на доступ к объекту определяются не только правами и привилегиями субъекта, но и процессом, с помощью которого субъект обращается к объекту. Можно, например, разрешить обращаться к файлам с расширением .doc только программам Word, Word Viewer и WPview.

Изолированная программная среда существенно повышает защищенность операционной системы от разрушающих программных воздействий, включая программные закладки и компьютерные вирусы. Кроме того, при использовании данной модели повышается защищенность целостности данных, хранящихся в системе.

Полномочное разграничение доступа с контролем информационных потоков

Полномочное, или мандатное, разграничение доступа (mandatory access control) обычно применяется в совокупности с избирательным разграничением доступа. Рассмотрим именно такой случай. Правила разграничения доступа в данной модели формулируются следующим образом.

1. Для любого объекта ОС существует владелец.

2. Владелец объекта может произвольно ограничивать доступ других субъектов к данному объекту.

3. Для каждой четверки субъект—объект—метод—процесс возможность доступа определена однозначно в каждый момент времени. При изменении состояния процесса со временем возможность предоставления доступа также может измениться. Вместе с тем, в каждый момент времени возможность доступа определена однозначно. Поскольку права процесса на доступ к объекту меняются с течением времени, они должны проверяться не только при открытии объекта, но и перед выполнением над объектом таких операций, как чтение и запись.

4. Существует хотя бы один привилегированный пользователь (администратор), имеющий возможность удалить любой объект.

5. В множестве объектов выделяется множество объектов полномочного разграничения доступа. Каждый объект полномочного разграничения доступа имеет гриф секретности. Чем выше числовое значение грифа секретности, тем секретнее объект. Нулевое значение грифа секретности означает, что объект несекретен. Если объект не является объектом полномочного разграничения доступа или если объект несекретен, администратор может обратиться к нему по любому методу, как и в предыдущей модели разграничения доступа.

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

7. Доступ субъекта к объекту должен быть запрещен независимо от состояния матрицы доступа, если:
• объект является объектом полномочного разграничения доступа;
• гриф секретности объекта строго выше уровня допуска субъекта, обращающегося к нему;
• субъект открывает объект в режиме, допускающем чтение информации.
Это правило называют правилом NRU (Not Read Up — не читать выше).

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

9. Доступ субъекта к объекту должен быть запрещен независимо от состояния матрицы доступа, если:
• объект является объектом полномочного разграничения доступа;
• гриф секретности объекта строго ниже уровня конфиденциальности процесса, обращающегося к нему;
• субъект собирается записывать в объект информацию,
Это правило предотвращает утечку секретной информации; его называют правилом NWD (Not Write Down — не записывать ниже).

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

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

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

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

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

Каждая из рассмотренных моделей разграничения доступа имеет свои достоинства и недостатки.

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

Аудит

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

Необходимость включения в защищенную ОС функций аудита обусловлена следующими обстоятельствами:

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

• подсистема защиты ОС может не отличить случайные ошибки пользователей от злонамеренных действий. Администратор, просматривая журнал аудита, сможет установить, что произошло при вводе пользователем неправильного пароля — ошибка легального пользователя или атака злоумышленника. Если пользователь пытался угадать пароль 20—30 раз, то это явная попытка подбора пароля;

• администраторы ОС должны иметь возможность получать информацию не только о текущем состоянии системы, но и о том, как ОС функционировала в недавнем прошлом. Такую возможность обеспечивает журнал аудита;

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

К числу событий, которые могут представлять опасность для ОС, обычно относят следующие:

• вход или выход из системы;

• операции с файлами (открыть, закрыть, переименовать, удалить);

• обращение к удаленной системе;

• смену привилегий или иных атрибутов безопасности (режима доступа, уровня благонадежности пользователя и т. п.).

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

Требования к аудиту. Подсистема аудита ОС должна удовлетворять следующим требованиям.

1. Добавлять записи в журнал аудита может только ОС. Если предоставить это право какому-то физическому пользователю, этот пользователь получит возможность компрометировать других пользователей, добавляя в журнал аудита соответствующие записи.

2. Редактировать или удалять отдельные записи в журнале аудита не может ни один субъект доступа, в том числе и сама ОС.

3. Просматривать журнал аудита могут только пользователи, обладающие соответствующей привилегией.

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

5. При переполнении журнала аудита ОС аварийно завершает работу («зависает»). После перезагрузки работать с системой могут только аудиторы. ОС переходит к обычному режиму работы только после очистки журнала аудита.

Для ограничения доступа к журналу аудита должны применяться специальные средства защиты.

Политика аудита — это совокупность правил, определяющих, какие события должны регистрироваться в журнале аудита. Для обеспечения надежной защиты ОС в журнале аудита должны обязательно регистрироваться следующие события:
• попытки входа/выхода пользователей из системы;
• попытки изменения списка пользователей;
• попытки изменения политики безопасности, в том числе и политики аудита.

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

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


Эта статья была опубликована Пятница, 11 сентября, 2009 at 14:17 в рубрике Обеспечение безопасности операционных систем. Вы можете следить за ответами через RSS 2.0 feed.

Один ответ to “Архитектура подсистемы защиты ОС”

  1. Громыко Игорь

    Ваше изложение существенно мне помогло. Я его применил даже для обучения студентов. Если не секрет, — нет ли у Вас такого материала (лекции + пр.занятия)по следующим тематикам:
    1. Реализация подсистем безопсности.
    2. Критерии защищенности операционных систем.
    3. Защита информации в сетях и компонентах сетей.
    Готов при чтении лекций и выполнении Пр.З. объявлять Вас как автора материала и давать ссылку на Ваш сайт и пр., т.е. Ваше авторство поставить во главу материала.
    С уважением.
    Громыко Игорь.

    #3497

Написать ответ