Механизм разграничения доступа windows

Механизм разграничения доступа windows

(Раздел 5, вопрос 5) 50. Разграничение доступа в операционных системах.

Идентификация и аутентификация

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

Обычно аутентификация базируется на одном или более из трех пунктов:

то, чем пользователь владеет (ключ или магнитная карта);

то, что пользователь знает (пароль);

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

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

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

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

Желательно добиться того, чтобы процесс осуществлял авторизованный доступ только к тем ресурсам, которые ему нужны для выполнения его задачи. Это требование минимума привилегий, полезно с точки зрения ограничения количества повреждений, которые процесс может нанести системе. Hапример, когда процесс P вызывает процедуру А, ей должен быть разрешен доступ только к переменным и формальным параметрам, переданным ей, она не должна иметь возможность влиять на другие переменные процесса. Аналогично компилятор не должен оказывать влияния на произвольные файлы, а только на их хорошо определенное подмножество (исходные файлы, листинги и др.), имеющее отношение к компиляции. С другой стороны, компилятор может иметь личные файлы, используемые для оптимизационных целей, к которым процесс Р не имеет доступа.

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

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

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

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

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

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

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

Домены безопасности

Чтобы рассмотреть схему дискреционного доступа более детально, введем концепцию домена безопасности (protection domain). Каждый домен определяет набор объектов и типов операций, которые могут производиться над каждым объектом. Возможность выполнять операции над объектом есть права доступа, каждое из которых есть упорядоченная пара . Домен, таким образом, есть набор прав доступа. Hапример, если домен D имеет права доступа , это означает, что процесс, выполняемый в домене D, может читать или писать в файл F, но не может выполнять других операций над этим объектом.

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

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

Каждый процесс может быть доменом. В этом случае набор доступных объектов определяется идентификацией процесса.

Читайте также:  Bootrec scanos не находит windows server 2012 r2

Каждая процедура может быть доменом. В этом случае набор доступных объектов соответствует локальным переменным, определенным внутри процедуры. Заметим, что когда процедура выполнена, происходит смена домена.

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

В ОС Unix домен связан с пользователем. Каждый пользователь обычно работает со своим набором объектов.

Матрица доступа

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

Список прав доступа. Access control list

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

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

Концепции ACL в разных операционных системах различаются, несмотря на существующий «стандарт» POSIX. (Проекты безопасности POSIX, .1e и .2c, были отозваны, когда стало ясно что они затрагивают слишком обширную область и работа не может быть завершена, но хорошо проработанные части, определяющие ACL, были широко реализованы и известны как «POSIX ACLs».)

Мандаты возможностей. Capability list

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

Примерами систем, использующих перечни возможностей, являются Hydra, Cambridge CAP System [ Denning, 1996 ].

Другие способы контроля доступа

Иногда применяется комбинированный способ . Например, в том же Unix на этапе открытия файла происходит анализ ACL (операция open). В случае благоприятного исхода файл заносится в список открытых процессом файлов, и при последующих операциях чтения и записи проверки прав доступа не происходит. Список открытых файлов можно рассматривать как перечень возможностей.

Существует также схема lock-key , которая является компромиссом между списками прав доступа и перечнями возможностей. В этой схеме каждый объект имеет список уникальных битовых шаблонов (patterns), называемых locks. Аналогично каждый домен имеет список уникальных битовых шаблонов, называемых ключами (keys). Процесс, выполняющийся в домене, может получить доступ к объекту, только если домен имеет ключ, который соответствует одному из шаблонов объекта.

Как и в случае мандатов, список ключей для домена должен управляться ОС. Пользователям не разрешается проверять или модифицировать списки ключей (или шаблонов) непосредственно. Более подробно данная схема изложена в [ Silberschatz, 2002 ].

Смена домена

В большинстве ОС для определения домена применяются идентификаторы пользователей. Обычно переключение между доменами происходит, когда меняется пользователь. Но почти все системы нуждаются в дополнительных механизмах смены домена, которые используются, когда некая привилегированная возможность необходима большому количеству пользователей. Hапример, может понадобиться разрешить пользователям иметь доступ к сети, не заставляя их писать собственные сетевые программы. В таких случаях для процессов ОС Unix предусмотрена установка бита set-uid . В результате установки этого бита в сетевой программе она получает привилегии ее создателя (а не пользователя), заставляя домен меняться на время ее выполнения. Таким образом, рядовой пользователь может получить нужные привилегии для доступа к сети.

Читайте также:  Windows загружается только режиме vga

В операционных системах Microsoft Windows и операционных системах клона Unix обычно применяется дискреционное управление доступом к объектам. Объекты разграничения доступа в Windows имеют дескриптор безопасности, содержащий информацию о владельце объекта (его идентификаторе безопасности SID, Security Identifier) и дискреционном списке управления доступом к объекту (Discretionary Access Control List, DACL), правом редактирования которого обладают владелец объекта и администратор. Владелец файла может лишить администратора права изменения разрешений на доступ к объекту. Администратор обладает специальной привилегией смены владельца на другого пользователя, обладающего такой же специальной привилегией (например, на самого себя).

Разграничение доступа к файлам и папкам возможно с помощью Проводника Windows (вкладки Безопасность функций Свойства контекстного меню выделенного объекта), принтеру – с помощью функции Принтеры и факсы Панели управления (вкладки Безопасность функции Свойства выделенного принтера), реестру Windows – с помощью Редактора реестра regedit.exe (функции Разрешения контекстного меню выделенного раздела).

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

— обзор папок (выполнение файлов);

— содержание папки (чтение данных из файла);

— чтение дополнительных атрибутов;

— создание файлов (запись данных в файл);

— создание папок (дозапись данных в файл);

— запись дополнительных атрибутов;

— удаление подпапок и файлов (только для папок).

Стандартные права доступа к объектам операционной системы Windows не зависят от типа объекта. Определены следующие стандартные права доступа;

— смена разрешений (для реестра это право названо Запись DAC);

— синхронизация (для реестра это право названо Уведомление).

Индекс файла в Linux содержит информацию о владельце файла (его идентификаторе, User Identifier, UID), его первичной группе (идентификаторе группы, Group Identifier, GID) и векторе доступа к файлу. В отличие от Windows вектор доступа в Linux состоит всегда из трех элементов, определяющих права доступа к объекту трех категорий субъектов (владельца, членов его группы и всех остальных). Суперпользователь в Linux имеет полные, никем не ограничиваемые права доступа к любому объекту.

В Linux существуют только три права доступа – чтение, запись и выполнение. Для каталогов право чтения означает разрешение на просмотр содержания каталога, право записи – разрешение создания, добавления и удаления файлов в каталоге, право выполнения – разрешение на поиск файла в каталоге по его имени.

lecture#4

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

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

Как видно из рисунка, матрица доступа определяет права доступа для каждого пользователя по отношению к каждому ресурсу.

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

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

все ресурсы АС должны быть классифицированы по уровням секретности.

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

Разграничение доступа в ОС Windows

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

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

Читайте также:  Проигрыватель windows media mkv кодек

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

Мандатная модель разграничения доступа предполагает назначение объекту грифа секретности, а субъекту – уровня допуска. Доступ субъектов к объектам в мандатной модели определяется на основании правил «не читать выше» и «не записывать ниже». Это означает, что пользователь не может прочитать информацию из объекта, гриф секретности которого выше, чем его уровень допуска. Также пользователь не может перенести информацию из объекта с большим грифом секретности в объект с меньшим грифом секретности. Использование мандатной модели предотвращает утечку конфиденциальной информации, но снижает производительность компьютерной системы.

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

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

Необходимыми условиями реализации мандатной модели в системах с дискреционным контролем доступа являются:

отслеживание (мониторинг) доступа к объектам системы;

реакция на попытку получения несанкционированного доступа;

защищенное хранение информации о грифе секретности объектов и уровне допуска субъектов системы;

наличие механизмов слежения за работой с буфером обмена.

Проведенное исследование системы безопасности ОС семейства Windows показало, что наиболее подходящим механизмом мониторинга событий обращений к объектам файловой системы является перехват системных вызовов. Технология перехвата системных вызовов SCH (System Call Hooking) позволяет в реальном времени перехватывать обращения к системным объектам. Эта технология предполагает написание низкоуровневого драйвера режима ядра, осуществляющего мониторинг функций, через которые происходит взаимодействие с объектами системы. Недостатком этого подхода является высокая сложность реализации. Одной из причин этого является закрытость операционной системы и не документированность архитектуры файловой системы NTFS, а также системных функций работы с ней. Безусловным плюсом является возможность прямого блокирования доступа к объекту.

Предполагается реализация следующих вариантов реакций на попытки получения несанкционированного доступа:

блокирование доступа к объекту;

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

запись в журнал аудита;

закрытие приложения, осуществившего несанкционированный доступ;

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

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

Информации о грифах секретности предлагаются хранить в системных списках аудита объектов системы. При этом предполагается создание в системе групп безопасности соответствующих каждому использующемуся уровню конфиденциальности. Для хранения информации об уровнях допуска субъектов используются групп безопасности ОС Windows (локальных или уровня домена).

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

Предложенный метод позволяет реализовать мандатный принцип разграничения доступа к ресурсам в ОС семейства Microsoft Windows. Разработанное программное средство позволяет отслеживать обращение пользователей (и инициируемых ими процессов) к объектам системы и предотвращать несанкционированный доступ к информации на основе правил мандатной модели управления доступом.

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

Оцените статью