Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Список управления доступом ACL

АЭРОКОСМИЧЕСКИЙ КОЛЛЕДЖ

 

 

Практическая работа № 6

 

Преподаватель Пятков Антон Геннадьевич

Дисциплина Основы информационной безопасности

Красноярск


Практическая работа № 6

«Подсистема разграничения доступа в ОС Windows NT»

 

Цель: получить навыки работы с подсистемой разграничения доступа ОС семейства Windows NT. Рассмотреть реализацию дискреционной модели доступа в ОС Windows NT.

 

Теоретическая часть

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

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

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

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

В ОС Windows NT существует понятие «защищенный объект» (securable object). Это объект, доступ к которому контролируется и ограничивается операционной системой. К таким объектам относятся:

ü файлы и каталоги файловой системы NTFS;

ü каналы (pipes);

ü процессы и потоки (Process and threads);

ü файлы, спроецированные в память (mapped files);

ü маркеры доступа (access tokens);

ü объекты управления окнами (Window–management objects);

ü разделы реестра (registry keys);

ü службы Win32 (services);

ü принтеры (Printers);

ü разделенные сетевые ресурсы (Network shares);

ü объекты синхронизации процессов (Interprocess synchronization objects: events, mutexes, semaphores, waitable timers);

ü задачи (Job objects).

В модели ограничения доступа Win32 существует два базовых понятия:

Access tokens – маркеры доступа (МД), содержащие информацию о пользователе.

Security descriptors (SID) – описатели защиты, содержащие информацию о правах тех или иных учетных записей на доступ к объекту.

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

При создании защищенного объекта ОС присваивает ему описатель защиты (security descriptor, SD) – той защиты, которая имеется у пользователя, создающего объект, или же той, что задана по умолчанию. Приложения Win32 могут использовать функции API как для получения, так и для изменения информации о доступе к объектам.

Security descriptor содержит информацию о владельце объекта, а также может включать следующие списки контроля доступа Access Contol List (ACL):

ü Discretionary access–control list (DACL) – разграничительные списки контроля доступа, в которых содержатся пользователи и группы с соответствующими правами на доступ к объекту;

ü System access–control list (SACL) – системные списки контроля доступа, которые определяют, как осуществляется аудит попыток доступа к объекту.

ü Список контроля доступа содержит список записей контроля доступа (access–control entries, ACEs). Каждая запись содержит набор битовых флагов и идентификатор SID попечителя (trustee) – пользователя или группы, к которой эти права применены.

Security Descriptor

Эти объекты содержат информацию о безопасности, соотнесенную с тем или иным защищенным объектом. Физически этот объект представляет собой структуру SECURITY_DESCRIPTOR, описанную в файле Windows.h:

typedef struct _SECURITY_DESCRIPTOR

{

BYTE Revision;

BYTE Sbz1;

SECURITY_DESCRIPTOR_CONTROL Control;

PSID Owner;

PSID Group;

PACL Sacl;

PACL Dacl;

} SECURITY_DESCRIPTOR;

Структура SECURITY_DESCRIPTOR используется для доступа к информации о безопасности объектов. Но изменять поля непосредственно в данной структуре невозможно. Для этого необходимо использовать специальные функции (например, SetSecurityDescriptorOwner(…)). Кроме того, Win32 API предоставляет интерфейс для создания и инициализации описателя SD для новых объектов.

Access token

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

Идентификатор защиты SID

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

Существует несколько стандартных SID, применяемых для учетных записей:

ü NULL – S–1–0–0 – SID группы, в которую не входят пользователи. Используется лишь тогда, когда SID неизвестен;

ü World – S–1–1–0 – группа, включающая в себя всех пользователей;

ü Local – S–1–2–0 – пользователи, имеющие непосредственный, физический доступ к системе;

ü Creator Owner ID – S–1–3–0 – SID, которым заменяется SID пользователя, создавшего объект. Этот SID используется для унаследованных записей ACE;

ü Creator Group ID – S–1–3–1 – значение, заменяющее SID основной группы, к которой принадлежит пользователь, создавший объект. Этот SID, как и предыдущий, используется для унаследованных записей ACE.

Список управления доступом ACL

ACL представлен структурой, описанной в Windows.h:

typedef struct _ACL

{

BYTE AclRevision;

BYTE Sbz1;

WORD AclSize;

WORD AceCount;

WORD Sbz2;

} ACL;

Система ограничения доступа Windows NT/2000 использует несколько типов записей ACE, содержащей, кроме того, и названия соответствующих этим типам структур данных. Для того чтобы унифицировать процедуру анализа структур ACE, разработчики включили во все структуры _ACE одинаковую последовательность полей, которая отображается в структуре ACE_HEADER:

typedef struct _ACE_HEADER

{

BYTE AceType;

BYTE AceFlags;

WORD AceSize;

} ACE_HEADER;

Первое поле AceType определяет тип структуры. Очевидно, что указатель на любую структуру _ACE можно преобразовать в указатель на ACE_HEAER, получить тип ACE, после чего этот указатель преобразовать в указатель на соответствующую полученному типу структуру данных. Такой прием широко используется в различных API продуктов Microsoft.

Для просмотра и установки параметров доступа к объектам NTFS используется утилита icacls.exe, входящая в Windows NT, или графический интерфейс Windows NT. Для работы с утилитой используется консоль Windows. Синтаксис:

icacls.exe filename [/T][/E][/C][/G user:perm][/R user [...]][/P user:perm [...]] [/D user [...]]

Filename – без других параметров выводит на экран список пользователей и их прав на доступ к объекту Filename.

/T – изменяет список записей управления доАшдступом к объекту, а если это папка, то ко всем вложенным папкам.

/E – заменяет список записей управления доступом.

/C – позволяет продолжить работу в случае ошибки отказа в доступе.

/G user:perm – устанавливает для пользователя, определяемого параметром user, права на доступ к объекту, определяемые параметром perm:

N – нет; R – чтение; W – запись; C – изменение; F – полный контроль.

/R user – удаляет для указанного пользователя права на доступ к объекту.

/P user:perm – изменяет для указанного в параметре user пользователя права на доступ к объекту, которые описываются параметром perm и могут быть следующими:

N – нет; R – чтение; W – запись; C – изменение; F – полный контроль.

/D user – запрещает применять пользователю доступ к указанному объекту.

 

Таким образом, Access Control List или ACL – список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом.

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

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

Традиционные ACL системы назначают права индивидуальным пользователям, и со временем и ростом числа пользователей в системе списки доступа могут стать громоздкими. Вариантом решения этой проблемы является назначения прав группам пользователей, а не персонально. Другим вариантом решения этой проблемы является «Управление доступом на основе ролей», где функциональные подмножества прав к ряду объектов объединяются в «роли», и эти роли назначаются пользователям. Однако, в первом варианте группы пользователей также часто называются ролями. Графический доступ к ACL можно получить через вкладку «Безопасность» (рисунок 1).

Рисунок 1 – ACL файла

 


 

Практическая часть

В отчёте представить (с описанием и снимками экрана, достаточными для понимания факта проделанной работы) следующее:

1. Создайте пользователей в соответствии с таблицей 1. Первый пользователь имеет роль администратора. Второй – пользователь.

2. Создайте ресурсы под соответствующими папкам учетными записями в соответствии с таблицей 1, заполните ресурсы данными;

3. Реализуйте в системе Windows NT указанную (таблица 1) матрицу доступа. Продемонстрируйте результат реализации матрицы доступа под каждым пользователем. Прокомментируйте результат.

Таблица 1. Матрица доступа

Пользователь\ Ресурс С:\Хозяин\Список рабов.txt С:\Хозяин\Отчёт в налоговую.docx С:\Раб\Фото хозяина.jpg С:\Раб\Список дел для раба.txt С:\Раб\Сделанные дела.txt С:\Раб\Мотиватор.exe
Хозяин Полный доступ Изменение Запись Полный доступ Чтение Запрет записи и изменения Полный доступ
Раб Полный запрет Чтение Чтение Запрет изменения Чтение Запрет записи и изменения Полный доступ Чтение и выполнение

 

В файл «Список сделанных дел напишите свою фамилию, номер зачетки и «сделал это задание», скриншот также добавьте в отчет.

 

4. Под учётной записью «Хозяина» измените ресурс «С:\Раб\Сделанные дела.txt». Прокомментируйте результат.

 

Вопросы (кратко ответить):

1. Какая формальная модель доступа присутствует в Windows NT?

2. Что такое подсистема разграничения доступом и зачем она нужна?

3. Какие права доступа существуют?

4. Чем привилегии отличаются от прав доступа? Что больше?

5. Каков принцип работы подсистемы разграничения доступа?

6. Кто такой владелец файла?

7. Как изменять права доступа в Windows?

8. Что такое ACL и где его найти?

9. Как можно получить права доступа, когда доступ запрещён?

10. Что такое права доступа? Кто их распределяет?

11. Как запретить доступ к своей папке другим пользователям?

12. Что такое учётная запись? Какие они бывают?

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...