Курсовая работа контроль и управление доступом в операционных системах по дисциплине Защита информации
Скачать 132.98 Kb.
|
Санкт-Петербургский политехнический университет Петра Великого Институт компьютерных наук и технологий Высшая школа программной инженерии КУРСОВАЯ РАБОТА Контроль и управление доступом в операционных системах по дисциплине «Защита информации» Выполнил студент гр. 3530202/60201 <> С.А. Черноусова Руководитель Доцент <> Б.М. Медведев «___» __________ 2019 г. Санкт-Петербург 2019 ОглавлениеВведение 3 Цели и задачи 5 NTFS 6 Практическая часть 8 Заключение 13 Список использованной литературы 14 Введение Контроль и управление доступом является одним из методов защиты системы, который позволяет регулировать, кто или что имеет доступ к чтению, изменению ресурса в вычислительной среде. Эта концепция является фундаментальной в терминах безопасности какой-либо среды. Существует два вида контроля доступа: физический и логический. Физический тип представляет собой ограничение доступа к кампусам, зданиям и другим физическим IT-ресурсам. Логический контроль ограничивает подключение к компьютерным системам, файлам и их данным. Известно, что в различных ОС реализованы разные файловые системы, и, соответственно, подходы к управлению доступом к файлам, данным. Например, в ОС Linux типичная файловая система выглядит следующим образом: По структуре она отлична от NTFS в Windows (так как FS в Linux имеет лишь один корневой каталог, все остальные каталоги вложены в него.) Как известно, в NTFS для управления доступом к файлам существует ACL – список управления доступом, определяющий, какой пользователь имеет доступ к конкретному объекту, какие операции разрешены/запрещены этому пользователю. В то же время, в типичной файловой системе Linux роль ACL выполняют специальные расширенные атрибуты. В настоящей курсовой работе будет рассматриваться логический контроль доступа в ОС Windows 10 на примере NTFS, так как в наших условиях только он является в полной мере возможным. Операционная система содержит огромное количество различных файлов, папок или ресурсов, которые должны быть должным образом защищены. Этого можно достичь путем разграничения доступа к объектам для различных категорий пользователей. Как известно, у каждого объекта в операционной системе есть свое имя, с помощью которого к нему можно обращаться, и операции, которые могут быть выполнены пользователем в отношении конкретного объекта. Информацию об этом можно рассмотреть в “Современных операционных системах” Танненбаума. В этом курсовом проекте планируется рассмотреть основные средства контроля и управления доступом пользователей к ресурсам операционной системы, а также приобрести навыки по распределению прав среди категорий пользователей. Цели и задачи Цель работы: Освоение способов контроля и управления доступом пользователей к файлам, папкам операционной системы, получение практических навыков в распределении прав пользователей на примере файловой системы NTFS в операционной системе Windows. Задачи: Рассмотреть структуру NTFS в Windows 10. На практике изучить влияние ACE на доступ конкретного пользователя к различным объектам. Рассмотреть, как происходит суммирование/изменение прав доступа пользователя, если он принадлежит различным группам пользователей с противоречащими правами. NTFS NTFS (new technology file system) является стандартной файловой системой в семействе операционных систем Windows. Основными средствами безопасности в NTFS являются атрибуты файлов, авторизация при помощи ACL, а также шифрование. В данной курсовой работе будет рассматриваться разграничение прав пользователя с помощью ACL. ACL – список контроля управления доступом, который состоит из записей управления доступом (ACE – access control entries). Каждый ACE в ACL определяет конкретного пользователя и задает права доступа, которые разрешены или запрещены для этого пользователя. Дескриптор безопасности (32-х битовое целое число содержащее битовую маску групп пользователей обладающих определенным правом доступа. Если n-ый бит в дескрипторе установлен, следовательно группа пользователей с id=n обладает указанным правом.) для данного защищаемого объекта может содержать два типа ACL: DACL, SACL. Дискреционный список управления, т.е. DACL, определяет пользователей, которым разрешен или запрещен доступ к объекту. Когда какой-либо процесс пытается получить доступ к данному объекту, система проверяет ACE в DACL объекта, чтобы определить, нужно ли предоставить доступ. Если система замечает, что у данного объекта DACL не определен, то она предоставляет полный доступ каждому пользователю к этому объекту. Если же DACL объекта не имеет ACE, система отклоняет все попытки доступа к нему. Все ACE проверяются последовательно до тех пора, пока не будет найден один или несколько ACE, которые разрешают все запрошенные права доступа к объекту, или пока системой не будет отказано во всех запрошенных правах. Системный список контроля доступом, он же SACL, позволяет администраторам регистрировать каждую попытку доступа к защищаемому объекту. Каждый ACE должен определить типы попыток доступа указанного пользователя, которые в последствие позволяют системе создавать новую запись в журнале событий безопасности (стандартный способ записи и хранения информации о важных событиях в системе). ACE в SACL может также генерировать записи аудита (элемент системы безопасности, позволяющий регистрировать в журнале событий события, связанные с действиями пользователей), когда попытка доступа неудачна, успешна, или и то, и другое. Как известно, для того, чтобы предоставить пользователю права доступа к какому-либо объекту в NTFS, необходимо работать с DACL, поэтому в настоящей работе рассматривается именно он. Практическая часть Как происходит доступ к объекту, защищенному ACL? При входе пользователя в систему подсистема безопасности собирает данные о его учетной записи и формирует маркер доступа (access token). Маркер содержит идентификатор (SID) пользователя и идентификаторы всех групп (как локальных, так и доменных), в которые пользователь входит. И когда пользователь запрашивает доступ к объекту, информация из маркера доступа сравнивается с ACL объекта и на основании полученной информации пользователь получает (или не получает) требуемый доступ. Для того, чтобы продемонстрировать теорию с помощью практики, создадим папку Example на диске С:, затем посмотрим ее свойства: Примерно так выглядит ACL (немного сокращенный вид): сверху представлены группы пользователей и отдельные пользователи, а снизу их разрешения. Более того, видно, что в самой таблице отображаются имена пользователей, а не их SID’ы. Это сделано для удобства пользователя. Однако важно понимать, что система работает именно с идентификаторами, поэтому невозможно восстановить права какого-либо удаленного пользователя путем создания нового пользователя с таким же именем, так как этот новый пользователь получит SID, отличный от SID’a удаленного пользователя. Базовые разрешения файловой системы следующие: Изменение - включает в себя все вышеперечисленные разрешения. Имея это разрешение можно создавать, редактировать и удалять любые объекты файловой системы; Чтение и выполнение - позволяет открывать файлы на чтение, а также запускать исполняемые файлы; Список содержимого папки - позволяет зайти в папку и просмотреть ее содержимое; Чтение - дает право на открытие файла\папки на чтение, без возможности изменения; Запись - разрешает создавать файлы\папки и редактировать файлы, без возможности удаления; Полный доступ - включает в себя разрешение Изменение. Кроме того, позволяет изменять текущие разрешения объекта. Кроме того, помимо базовых разрешений файловой системы имеются так называемые дополнительные разрешения, которые необходимы для более точной настройки, поскольку базовые не дают достаточной гибкости для управления доступом. Их также, как и базовые разрешения, можно редактировать. Можно заметить, что разрешений здесь больше, что способствует более детальной настройке прав доступа. Посмотрим, как происходит суммирование прав пользователя. Алгоритм выполнения действий: Для папки Example текущий пользователь выбран владельцем. Зафиксированы такие права, как Чтений разрешений и Смена разрешений. Далее были разрешены дополнительные права для группы Пользователи, которой принадлежит текущий пользователь, вследствие чего изменились и права текущего пользователя – они стали более обширными. Теперь посмотрим, что имеет более высокий приоритет – разрешающие права или запрещающие? Алгоритм выполнения действий: Группе пользователей, к которой относится текущий пользователь, была запрещена запись. У текущего пользователя Запись все также разрешена. Продемонстрировано, что у запрещающих прав приоритет выше, чем у разрешающих. Разберем, как вычисляется множество действующих разрешений для пользователя в случае противоречивости заданных ACE для текущего пользователя и группы пользователей, которой он принадлежит. Несложно заметить, что для этого происходит следующее: Составляется множество запретов для первой группы пользователей, к которой принадлежит текущий пользователь (из запрещающих ACE) Составляется множество запретов для второй группы пользователей, к которой принадлежит текущий пользователь (из запрещающих ACE) В итоге результирующее множество прав для текущего пользователя вычисляется путем вычитания множества запретов из множества разрешений, что еще раз демонстрирует приоритетность запрещающих прав. Нельзя не отметить такое понятие как Владелец. Владельцем конкретного объекта является пользователь, его создавший, при этом у владельца имеется полный доступ к этому объекту. Лишить Владельца доступа к созданному им объекту довольно сложно. Например, уберем всех пользователей из списка доступа объекта, оставив только систему. Если затем Владелец попробует открыть этот объект, система не будет возражать и вновь предоставит полный доступ Владельцу к этому объекту. Однако, Владельца объекта можно поменять. Регулировать права безопасности на конкретный файл можно также с помощью Visual Studio и программы, написанной на языке С++. Подключение библиотеки System::Security позволяет в полной мере управлять доступом к желаемому объекту, изменять его параметры безопасности. Например, с помощью метода SetNamedSecurityInfo можно указать необходимую информацию о безопасности в дескрипторе указанного объекта. Заключение В заключение можно сказать, что существует несколько подходов к контролю и управлению доступом в операционных системах. Их механизм во многом схож, но в то же время есть существенные различия, которые позволяют определить, что удобнее конкретно для вас. В процессе работы была освоена теоретическая база, которая позволила выполнить простейшие практические действия для выявления интересующего результата. Например, было проверено влияние ACE пользователя на его доступ к конкретному объекту. Также были изучены возможности Visual Studio, позволяющие создавать утилиты, изменяющие параметры безопасности объектов. Сделаны следующие выводы: Работа с разрешениями в файловой системе должна осуществляться при максимально полном ознакомлении с самой файловой системой и правилами работы с различными видами разрешений, чтобы предотвратить изменения прав на объекты, которые впоследствии трудно вернуть в прежнее состояние. По возможности лучше всего выдавать различные разрешения не конкретным пользователям, а группам пользователей. Это оптимальнее, так как позволяет единожды настроить все необходимые права на объект. Более того, перед раздачей пользователям разрешений лучше заранее точно определиться с тем, какие действия пользователь/группа пользователей будут производить с объектами, и исходя из этого назначать минимально необходимые для работы разрешения. Список использованной литературы Э. Танненбаум, Г. Бох – Современные операционные системы. СПб.: Издательский дом Питер, 2002 П. Д. Зегжда, М. О. Калинин, Е. Ю. Резединова Основы информационной безопасности. Лабораторный практикум. СПб.: Изд-во Политехн. ун-та, 2014 В. Столлингс – Операционные системы. Москва.: Вильямс, 2001 |