Как происходит проверка прав доступа пользователя к ресурсам в ос windows

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

Написание, компиляция и прогон программы получения стандартного списка контроля доступа к объектам из маркера доступа процесса

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

Проверка прав доступа

После формализации атрибутов защиты субъектов и объектов можно перечислить основные этапы проверки прав доступа
[
Руссинович
]
,
[
Рихтер
]
,
[
Рихтер, Кларк
]
, см.
рис.
13.3.

Пример проверки прав доступа к защищенному объекту

Рис.
13.3.
Пример проверки прав доступа к защищенному объекту

Этапов проверки довольно много. Наиболее важные этапы из них:

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

Очевидно, что для процедуры проверки важен порядок расположения ACE в DACL. Поэтому Microsoft предлагает так называемый предпочтительный порядок размещения ACE. Например, для ускорения рекомендуется размещать запрещающие элементы перед разрешающими.

Заключение

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

Приложение. Формальные модели защищенности в ОС Windows

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

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

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

Имеется совокупность объектов {Oi}, субъектов {Si} и пользователей {Ui}. Вводится операция доступа {Si} -> {Oj}, под которой подразумевается использование i-м субъектом информации из j-го объекта. Основные варианты доступа: чтение, запись и активация процесса, записанного в объекте. В результате последней операции появляется новый субъект {Si} -> {Oj} -> {Sk}.

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

Пример графа доступа

Рис.
13.4.
Пример графа доступа

Множество графов доступа можно рассматривать как фазовое пространство, а функционирование конкретной системы — как траекторию в фазовом пространстве. Защита информации может состоять в том, чтобы избегать «неблагоприятных» траекторий. Практически такое управление возможно только ограничением на доступ в каждый момент времени, или, как утверждается в известной «оранжевой» книге
[
DoD
]
, все вопросы безопасности информации определяются описанием доступов субъектов к объектам.

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

Дискреционная модель контроля и управления доступом

Модели управления доступом регламентируют доступ субъектов к объектам. Наиболее распространена так называемая дискреционная (произвольная) модель, в которой обычные пользователи могут принимать участие в определении функций политики и присвоении атрибутов безопасности. Среди дискреционных моделей классической считается модель Харрисона-Руззо-Ульмана (см.
[
Таненбаум
]
) — в ней система защиты представлена в виде набора множеств, элементами которых являются составные части системы защиты: субъекты, объекты, уровни доступа, операции и т.п.

С концептуальной точки зрения текущее состояние прав доступа при дискреционном управлении описывается матрицей (см.
рис.
13.5), в строках которой перечислены субъекты, в столбцах — объекты, а в ячейках — операции, которые субъект может выполнить над объектом. Операции зависят от объектов. Например, для файлов это операции чтения, записи, выполнения, изменения атрибутов, а для принтера — операции печати и управления. Поведение системы моделируется с помощью понятия состояния Q = (S,O,M), где S,O,M — соответственно текущие множества субъектов, объектов и текущее состояние матрицы доступа.

Пример матрицы доступа

Рис.
13.5.
Пример матрицы доступа

С учетом дискреционной модели можно следующим образом сформулировать задачу системы защиты информации. С точки зрения безопасности, поведение системы может моделироваться как последовательность состояний, описываемых совокупностью субъектов, объектов и матрицей доступа. Тогда можно утверждать, что для безопасности системы в состоянии Q0 не должно существовать последовательности команд, в результате которой право R будет занесено в ячейку памяти матрицы доступа M, где оно отсутствовало в состоянии Q0. (критерий Харрисона-Руззо-Ульмана). По существу необходимо ответить на вопрос: сможет ли некоторый субъект S когда-либо получить какие-либо права доступа к некоторому объекту O?

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

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

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

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

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

В этом случае схематичное изображение канала утечки в виде разрешенного доступа от имени разных пользователей к одному и тому же объекту будет выглядеть следующим образом:

Ui -> (Write)-> O, в момент времени t1 и Uj -> (Read)-> O в момент времени t2, где i≠j и t1 < t2,

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

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

Ролевая политика безопасности

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

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

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

Общая характеристика

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

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

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

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

Для системы безопасности Windows NT характерно
наличие большого количества различных
предопределенных (встроенных) субъектов
доступа — как отдельных пользователей,
так и групп. Так, в системе всегда имеются
такие пользователи, как Administrator, System и
Guest, а также группы Users, Administrators, Account
Operators, Server Operators, Everyone и другие. Смысл
этих встроенных пользователей и групп
состоит в том, что они наделены некоторыми
правами, облегчая администратору работу
по созданию эффективной системы
разграничения доступа. При добавлении
нового пользователя администратору
остается только решить, к какой группе
или группам отнести этого пользователя.
Конечно, администратор может создавать
новые группы, а также добавлять права
к встроенным группам для реализации
собственной политики безопасности, но
во многих случаях встроенных групп
оказывается вполне достаточно.

Windows NT поддерживает три класса операций
доступа, которые отличаются типом
субъектов и объектов, участвующих в
этих операциях.

  •  Разрешения
    (permissions) — это множество операций,
    которые могут быть определены для
    субъектов всех типов по отношению к
    объектам любого типа: файлам, каталогам,
    принтерам, секциям памяти и т. д.
    Разрешения по своему назначению
    соответствуют правам доступа к файлам
    и каталогам в ОС UNIX.

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

  •  Возможности
    пользователей (user abilities) определяются
    для отдельных пользователей на выполнение
    действий, связанных с формированием
    их операционной среды, например изменение
    состава главного меню программ,
    возможность пользоваться пунктом меню
    Run (выполнить) и т. п. За счет уменьшения
    набора возможностей (которые по умолчанию
    доступны пользователю) администратор
    может «заставить» пользователя работать
    с той операционной средой, которую
    администратор считает наиболее
    подходящей и ограждающей пользователя
    от возможных ошибок.

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

Проверка разрешений доступа процесса
к объекту производится в Windows NT в основном
в соответствии с общей схемой доступа,
представленной на рис. 7.29.

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

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

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

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

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

В Windows NT однозначно определены правила,
по которым вновь создаваемому объекту
назначается список ACL. Если вызывающий
код во время создания объекта явно
задает все права доступа к вновь
создаваемому объекту, то система
безопасности приписывает этот ACL объекту.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Права доступа к файлам и папкам простым языком.

На просторах России много фирм и мелких предприятий не имеют в штате своего системного администратора на постоянной основе или приходящего время от времени. Фирма растёт и рано или поздно одной расшаренной папки в сети, где каждый может делать что захочет, становится мало. Требуется разграничение доступа для разных пользователей или групп пользователей на платформе MS Windows. Линуксоидов и опытных админов просьба не читать статью.

Самый лучший вариант — взять в штат опытного админа и задуматься о покупке сервера. Опытный админ на месте сам решит: поднимать ли MS Windows Server с Active Directory или использовать что-то из мира Linux.

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

Прежде чем начать хотелось бы разжевать пару моментов:

  • Любая операционная система «узнаёт» и «различает» реальных людей через их учётные записи. Должно быть так: один человек = одна учётная запись.
  • В статье описывается ситуация, что в фирме нет своего админа и не куплен, к примеру, MS Windows Server. Любая обычная MS Windows одновременно обслуживает по сети не более 10 для WinXP и 20 человек для Win7. Это сделано фирмой Microsoft специально, чтобы клиентские Windows не перебегали дорогу серверам Windows и вы не портили бизнес Microsoft. Помните число 10-20 и когда в вашей фирме будет более 10-20 человек, вам придётся задуматься о покупке MS Windows Server или попросить кого-либо поднять вам бесплатный Linux Samba сервер, у которого нет таких ограничений.
  • Раз у вас нет грамотного админа, то ваш обычный комп с клиентской MS Windows будет изображать из себя файловый сервер. Вы вынуждены будете продублировать на нём учётные записи пользователей с других компьютеров, чтобы получать доступ к расшаренным файлам. Другими словами, если есть в фирме ПК1 бухгалтера Оли с учётной записью olya, то и на этом «сервере» (именую его в дальнейшем как WinServer) нужно создать учётную запись olya с таким же паролем, как и на ПК1.
  • Люди приходят и уходят. Текучесть кадров есть везде и если вы, тот бедный человек, который не админ и назначен (вынужден) поддерживать ИТ вопросы фирмы, то вот вам совет. Делайте учётные записи, не привязанные к личности. Создавайте для менеджеров — manager1, manager2. Для бухгалтеров — buh1, buh2. Или что-то подобное. Ушёл человек? Другой не обидится, если будет использовать manager1. Согласитесь это лучше, чем Семёну использовать учётную запись olya, так как влом или некому переделывать и уже всё работает 100 лет.
  • Забудьте такие слова как: «сделать пароль на папку». Те времена, когда на ресурсы накладывался пароль давным давно прошли. Поменялась философия работы с различными ресурсами. Сейчас пользователь входит в свою систему с помощью учётной записи (идентификация), подтверждая себя своим паролем (аутентификация) и ему предоставляется доступ ко всем разрешённым ресурсам. Один раз вошёл в систему и получил доступ ко всему — вот что нужно помнить.
  • Желательно выполнять нижеперечисленные действия от встроенной учётной записи Администратор или от первой учётной записи в системе, которая по умолчанию входит в группу Администраторы.

Приготовление.

В Проводнике уберите упрощённый доступ к нужным нам вещам.

  • MS Windows XP. Меню Сервис — Свойства папки — Вид. Снять галочку Использовать мастер общего доступа
  • MS Windows 7. Нажмите Alt. Меню Сервис — Параметры папок — Вид. Снять галочку Использовать простой общий доступ к файлам.

Создайте на вашем компьютере WinServer папку, которая будет хранить ваше богатство в виде файлов приказов, договоров и так далее. У меня, как пример, это будет C:dostup. Папка обязательна должна быть создана на разделе с NTFS.

Папка на диске с NTFS

Доступ по сети.

На данном этапе нужно выдать в доступ по сети (расшарить — share) папку для работы с ней другими пользователями на своих компьютерах данной локальной сети.

И самое главное! Выдать папку в доступ с полным разрешением для всех! Да да! Вы не ослышались. А как же разграничение доступа?

Разрешить доступ ВСЕм по сети

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

  • MS Windows XP. На нужной папке (C:dostup) правой клавишей мыши и там Свойства. Вкладка Доступ — Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.
  • MS Windows 7. На нужной папке (C:dostup) правой клавишей мыши и там Свойства. Вкладка Доступ — Расширенная настройка. Ставим галочку Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.

Пользователи и группы безопасности.

Нужно создать необходимые учётные записи пользователей. Напоминаю, что если на многочисленных ваших персональных компьютерах используются различные учётные записи для пользователей, то все они должны быть созданы на вашем «сервере» и с теми же самыми паролями. Этого можно избежать, только если у вас грамотный админ и компьютеры в Active Directory. Нет? Тогда кропотливо создавайте учётные записи.

Создание пользовательских учётных записей

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Новый пользователь.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Создать пользователя.

Теперь очередь за самым главным — группы! Группы позволяют включать в себя учётные записи пользователей и упрощают манипуляции с выдачей прав и разграничением доступа.

Чуть ниже будет объяснено «наложение прав» на каталоги и файлы, но сейчас главное понять одну мысль. Права на папки или файлы будут предоставляться группам, которые образно можно сравнить с контейнерами. А группы уже «передадут» права включённым в них учётным записям. То есть нужно мыслить на уровне групп, а не на уровне отдельных учётных записей.

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.

Создание групп

Нужно включить в нужные группы нужные учётные записи. Для примера, на группе Бухгалтеры правой клавишей мыши и там Добавить в группу или Свойства и там кнопка Добавить. В поле Введите имена выбираемых объектов впишите имя необходимой учётной записи и нажмите Проверить имена. Если всё верно, то учётная запись изменится к виду ИМЯСЕРВЕРАучётная_запись. На рисунке выше, учётная запись buh3 была приведена к WINSERVERbuh3.

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

Стоит ли заморачиваться с группой, если в ней будет одна учётная запись? Считаю, что стоит! Группа даёт гибкость и маневренность. Завтра вам понадобится ещё одному человеку Б дать те же права, что и определённому человеку с его учётной записью А. Вы просто добавите учётную запись Б в группу, где уже имеется А и всё!

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

Права доступа.

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

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

Итак, у нас есть директория по адресу C:dostup, которую мы уже выдали в доступ по сети всем сотрудникам. Внутри каталога C:dostup ради примера создадим папки Договора, Приказы, Учёт МЦ. Предположим, что есть задача сделать:

  • папка Договора должна быть доступна для Бухгалтеров только на чтение. Чтение и запись для группы Менеджеров.
  • папка УчётМЦ должна быть доступна для Бухгалтеров на чтение и запись. Группа Менеджеров не имеет доступа.
  • папка Приказы должна быть доступна для Бухгалтеров и Менеджеров только на чтение.

На папке Договора правой клавишей и там Свойства — вкладка Безопасность. Мы видим что какие-то группы и пользователи уже имеют к ней доступ. Эти права были унаследованы от родителя dostup, а та в свою очередь от своего родителя С:

Мы прервём это наследование прав и назначим свои права-хотелки.

Жмём кнопку Дополнительно — вкладка Разрешения — кнопка Изменить разрешения.

Сначала прерываем наследование прав от родителя. Снимаем галочку Добавить разрешения, наследуемые от родительских объектов. Нас предупредят, что разрешения от родителя не будут применяться к данному объекту (в данном случае это папка Договора). Выбор: Отмена или Удалить или Добавить. Жмём Добавить и права от родителя останутся нам в наследство, но больше права родителя на нас не будут распространяться. Другими словами, если в будущем права доступа у родителя (папка dostup) изменить — это не скажется на дочерней папке Договора. Заметьте в поле Унаследовано от стоит не унаследовано. То есть связь родитель — ребёнок разорвана.

Теперь аккуратно удаляем лишние права, оставляя Полный доступ для Администраторов и Система. Выделяем по очереди всякие Прошедшие проверку и просто Пользователи и удаляем кнопкой Удалить.

Права на папку группе

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

Мы ставим галочку Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта и жмём Ок. Возвращаемся назад и снова Ок, чтобы вернуться к простому виду Свойства.

Данное окно позволит упрощённо достигнуть желаемого. Кнопка Изменить выведет окно «Разрешения для группы».

Права  группе

Жмём Добавить. В новом окне пишем Бухгалтеры и жмём «Проверить имена» — Ок. По умолчанию даётся в упрощённом виде доступ «на чтение». Галочки в колонке Разрешить автоматически выставляются «Чтение и выполнение», «Список содержимого папки», «Чтение». Нас это устраивает и жмём Ок.

Теперь по нашему техническому заданию нужно дать права на чтение и запись для группы Менеджеры. Если мы в окне Свойства, то снова Изменить — Добавить — вбиваем Менеджеры — Проверить имена. Добавляем в колонке Разрешить галочки Изменение и Запись.

Теперь нужно всё проверить!

Следите за мыслью. Мы приказали, чтобы папка Договора не наследовала права от свого родителя dostup. Приказали дочерним папкам и файлам внутри папки Договора наследовать права от неё.

На папку Договора мы наложили следующие права доступа: группа Бухгалтеры должна только читать файлы и открывать папки внутри, а группа Менеджеры создавать, изменять файлы и создавать папки.

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

Зайдите в папку Договора и создайте тестовый файл договор1.txt

На нём щелчок правой клавишей мыши и там Свойства — вкладка Безопасность — Дополнительно — вкладка Действующие разрешения.

Жмём Выбрать и пишем учётную запись любого бухгалтера, к примеру buh1. Мы видим наглядно, что buh1 получил права от своей группы Бухгалтеры, которые обладают правами на чтение к родительской папке Договора, которая «распространяет» свои разрешения на свои дочерние объекты.

Проверка прав доступа

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

Проверка прав доступа

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

Итог.

  • Используйте разделы NTFS.
  • Когда разграничиваете доступ на папки (и файлы), то манипулируйте группами.
  • Создавайте учётные записи для каждого пользователя. 1 человек = 1 учётная запись.
  • Учётные записи включайте в группы. Учётная запись может входить одновременно в разные группы. Если учётная запись находится в нескольких группах и какая-либо группа что-то разрешает, то это будет разрешено учётной записи.
  • Колонка Запретить (запрещающие права) имеют приоритет перед Разрешением. Если учётная запись находится в нескольких группах и какая-либо группа что-то запрещает, а другая группа это разрешает, то это будет запрещено учётной записи.
  • Удаляйте учётную запись из группы, если хотите лишить доступа, которого данная группа даёт.
  • Задумайтесь о найме админа и не обижайте его деньгами.

Задавайте вопросы в комментариях и спрашивайте, поправляйте.

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

Дополнительные материалы:
Как связать Microsoft Access с MySQL.

Дата последней правки: 2015-12-01 09:57:26

DanielKing · 2016/01/07 17:27

Author: DanielKing

0x00 введение


В операционной системе, когда мы говорим о безопасности, это означает, что некоторые ресурсы должны быть защищены. В операционной системе Windows большинство этих защищенных ресурсов существует в форме объектов. Объекты — это своего рода ресурсы. Аннотация. Каждый объект может иметь свой собственный дескриптор безопасности (Security Descriptor), который используется для описания того, кто и как к нему можно получить доступ. Эти объекты являются объектами, так что является предметом доступа к этим объектам? Этими субъектами являются различные процессы в операционной системе или, точнее, каждый поток в этих процессах. У каждого процесса есть первичный токен (Primary Token), который может совместно использоваться каждым потоком в процессе, а некоторые потоки являются специальными, они олицетворяют (олицетворяют) личность клиента, поэтому у них есть токен олицетворения ( Токен олицетворения) .Для этих потоков эффективный токен является токеном олицетворения, а эффективный токен других потоков — это базовый токен процесса, которому он принадлежит. Когда субъект пытается получить доступ к объекту, операционная система выполняет проверку прав доступа (Access Check), в частности, она сравнивает действительный токен субъекта с дескриптором безопасности объекта, чтобы определить, является ли доступ законным. Чтобы повысить эффективность, проверка доступа предоставляет механизм кэширования, то есть только тогда, когда объект создается или открывается процессом, будет выполняться проверка прав доступа, и результат проверки прав доступа будет кэширован в дескриптор процесса. В таблице дескрипторов для последующих операций над объектом, выполняемых процессом, необходимо только запрашивать содержимое таблицы дескрипторов для определения законности доступа, вместо того, чтобы каждый раз выполнять более дорогостоящую проверку доступа. Поскольку объекты и процессы имеют свои собственные уровни наследования, дескриптор безопасности объекта и токен процесса являются логически наследуемыми. Например, файл в файловой системе может наследовать дескриптор безопасности каталога, в котором он расположен, а дочерний процесс может Унаследовать токен родительского процесса. Этот механизм наследования позволяет объектам и процессам иметь атрибуты безопасности по умолчанию. Поэтому количество экземпляров дескрипторов безопасности и токенов в системе очень ограничено, в большинстве случаев от родительского Мы унаследовали значение по умолчанию.

0x01 Проверка прав доступа


Проверки прав доступа включают проверки по нескольким параметрам:

Проверка DACL

Проверка DACL (список управления дискреционным доступом, Discretionary Access Control List) является самой простой проверкой прав доступа.

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

We'll define the structure of the predefined ACE types.  Pictorally
the structure of the predefined ACE's is as follows:

     3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
     1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
    +---------------+-------+-------+---------------+---------------+
    |    AceFlags   | Resd  |Inherit|    AceSize    |     AceType   |
    +---------------+-------+-------+---------------+---------------+
    |                              Mask                             |
    +---------------------------------------------------------------+
    |                                                               |
    +                                                               +
    |                                                               |
    +                              Sid                              +
    |                                                               |
    +                                                               +
    |                                                               |
    +---------------------------------------------------------------+

Mask is the access mask associated with the ACE.  This is either the
access allowed, access denied, audit, or alarm mask.

Sid is the Sid associated with the ACE.
Скопировать код

Среди них для DACL AceType может иметь

#!cpp
#define ACCESS_ALLOWED_ACE_TYPE                 (0x0)
#define ACCESS_DENIED_ACE_TYPE                  (0x1)
Скопировать код

Есть две возможности; Маска — это растровое изображение, представляющее набор связанных разрешений; личность субъекта представлена ​​Sid (Идентификатор безопасности), который представляет собой структуру данных переменной длины:

#!cpp
kd> dt nt!_SID
   +0x000 Revision         : UChar
   +0x001 SubAuthorityCount : UChar
   +0x002 IdentifierAuthority : _SID_IDENTIFIER_AUTHORITY
   +0x008 SubAuthority     : [1] Uint4B
Скопировать код

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

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

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

Проверка привилегий и суперпривилегий

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

Проверка уровня целостности и обязательной политики

Механизм уровня целостности (IL) — важный механизм безопасности, представленный в Windows Vista. Механизм песочницы, основанный на нем, очень прост и чрезвычайно эффективен.

Ограниченная проверка токена

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

Проверка возможностей AppContainer

Маркер LowBox и групповое удостоверение AppContainer Capabilities являются механизмами безопасности, появившимися после Windows 8. Он обеспечивает еще один более сложный механизм песочницы. Возможности очень похожи на ограничения разрешений приложений в системе Android.

Проверка уровня доверия

Проверка уровня целостности — это крупномасштабное и относительно стабильное средство контроля доступа; с непрерывным развитием Windows зависимость от механизма подписи становится все более очевидной, а подпись представляет определенную степень надежности. Автор считает, что Windows постепенно устанавливает полный набор механизмов проверки прав доступа на основе надежности, и защищенный процесс (Protected Process) является частью этого механизма.

В приведенном выше материале кратко представлена ​​модель проверки разрешений Windows и размеры проверки разрешений; ниже представлены некоторые детали реализации.

0x02 токен


Структура ТОКЕНА

Структура токена — это основная структура данных, которая представляет личность субъекта при проверке прав доступа.Ниже показан состав для платформы Windows 10 x64.

#!cpp
kd> dt nt!_TOKEN
   +0x000 TokenSource      : _TOKEN_SOURCE
   +0x010 TokenId          : _LUID
   +0x018 AuthenticationId : _LUID
   +0x020 ParentTokenId    : _LUID
   +0x028 ExpirationTime   : _LARGE_INTEGER
   +0x030 TokenLock        : Ptr64 _ERESOURCE
   +0x038 ModifiedId       : _LUID
   +0x040 Privileges       : _SEP_TOKEN_PRIVILEGES
   +0x058 AuditPolicy      : _SEP_AUDIT_POLICY
   +0x078 SessionId        : Uint4B
   +0x07c UserAndGroupCount : Uint4B
   +0x080 RestrictedSidCount : Uint4B
   +0x084 VariableLength   : Uint4B
   +0x088 DynamicCharged   : Uint4B
   +0x08c DynamicAvailable : Uint4B
   +0x090 DefaultOwnerIndex : Uint4B
   +0x098 UserAndGroups    : Ptr64 _SID_AND_ATTRIBUTES
   +0x0a0 RestrictedSids   : Ptr64 _SID_AND_ATTRIBUTES
   +0x0a8 PrimaryGroup     : Ptr64 Void
   +0x0b0 DynamicPart      : Ptr64 Uint4B
   +0x0b8 DefaultDacl      : Ptr64 _ACL
   +0x0c0 TokenType        : _TOKEN_TYPE
   +0x0c4 ImpersonationLevel : _SECURITY_IMPERSONATION_LEVEL
   +0x0c8 TokenFlags       : Uint4B
   +0x0cc TokenInUse       : UChar
   +0x0d0 IntegrityLevelIndex : Uint4B
   +0x0d4 MandatoryPolicy  : Uint4B
   +0x0d8 LogonSession     : Ptr64 _SEP_LOGON_SESSION_REFERENCES
   +0x0e0 OriginatingLogonSession : _LUID
   +0x0e8 SidHash          : _SID_AND_ATTRIBUTES_HASH
   +0x1f8 RestrictedSidHash : _SID_AND_ATTRIBUTES_HASH
   +0x308 pSecurityAttributes : Ptr64 _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION
   +0x310 Package          : Ptr64 Void
   +0x318 Capabilities     : Ptr64 _SID_AND_ATTRIBUTES
   +0x320 CapabilityCount  : Uint4B
   +0x328 CapabilitiesHash : _SID_AND_ATTRIBUTES_HASH
   +0x438 LowboxNumberEntry : Ptr64 _SEP_LOWBOX_NUMBER_ENTRY
   +0x440 LowboxHandlesEntry : Ptr64 _SEP_LOWBOX_HANDLES_ENTRY
   +0x448 pClaimAttributes : Ptr64 _AUTHZBASEP_CLAIM_ATTRIBUTES_COLLECTION
   +0x450 TrustLevelSid    : Ptr64 Void
   +0x458 TrustLinkedToken : Ptr64 _TOKEN
   +0x460 IntegrityLevelSidValue : Ptr64 Void
   +0x468 TokenSidValues   : Ptr64 _SEP_SID_VALUES_BLOCK
   +0x470 IndexEntry       : Ptr64 _SEP_LUID_TO_INDEX_MAP_ENTRY
   +0x478 VariablePart     : Uint8B
Скопировать код

Мы уделяем больше внимания битовой карте привилегий и трем массивам Sid, представляющим личность субъекта: UserAndGroups, RestrictedSids и Capabilities.

Растровое изображение привилегий

В пользовательском режиме привилегии представлены LUID, а в структуре ядра _TOKEN используются три растровых изображения для представления:

#!cpp
kd> dt _SEP_TOKEN_PRIVILEGES
nt!_SEP_TOKEN_PRIVILEGES
   +0x000 Present          : Uint8B
   +0x008 Enabled          : Uint8B
   +0x010 EnabledByDefault : Uint8B
Скопировать код

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

В отличие от массива Sid, который представляет личность субъекта, набор привилегий представлен просто и без какой-либо защиты. В пользовательском режиме вы можете только открыть или закрыть существующую привилегию через API, но не можете добавить дополнительные привилегии. Другими словами, пользовательский режим может изменять только набор привилегий Enabled, но не набор привилегий Present; из режима ядра вы можете Непосредственно измените набор привилегий Present, например добавив привилегии SeAssignPrimaryTokenPrivilege к обычным процессам, чтобы явно указать маркеры для дочернего процесса вместо наследования маркера текущего процесса, что может обеспечить эффект расширения разрешений дочернего процесса.

Массив Sid, представляющий личность субъекта

Три массива Sid, представляющих личность объекта:

UserAndGroups:

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

RestrictedSids:

Необязательный член. Если он не пустой, это означает, что текущий токен является ограниченным токеном. Ограниченный токен преобразуется путем фильтрации некоторых более конфиденциальных идентификаторов из обычных токенов. UserAndGroups в ограниченном токене Члены такие же, как обычные токены, но член ResidriectedSids не является пустым, а отфильтрованное подмножество идентификаторов хранится внутри; поскольку три массива идентификаторов Sid должны проверяться одновременно во время проверки прав доступа, доступ разрешается только после передачи результатов. Таким образом, путем добавления членов RestrictedSids, представляющих ограниченный набор разрешений, достигается цель ограничения разрешений токена, и полная идентификационная информация исходного токена сохраняется в членах UserAndGroups.

Capabilities:

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

Три массива Sid связаны с хэш-информацией для защиты их целостности. Поэтому, даже если они изменяются непосредственно из состояния ядра, они не будут работать, поскольку не смогут пройти проверку целостности. К счастью, алгоритм хеширования очень прост. Ниже показан демонстрационный код алгоритма на C ++ для платформы Windows 10 x64:

#!cpp
static
NTSTATUS
RtlSidHashInitialize
(
    __in PSID_AND_ATTRIBUTES Groups,
    __in size_t GroupsCount,
    __inout PSID_AND_ATTRIBUTES_HASH HashBuffer
)
{
    if (NULL == HashBuffer)
        return 0xC000000D;

    memset(HashBuffer, 0, 0x110);  
    if (0 == GroupsCount || NULL == Groups)
        return 0;

    HashBuffer->SidCount = GroupsCount;
    HashBuffer->SidAttr = Groups;

    if (GroupsCount > 0x40)
        GroupsCount = 0x40;  
    if (0 == GroupsCount)
        return 0;

    size_t bit_pos = 1;

    for (size_t i = 0; i < GroupsCount; i++)
    {
        PISID sid = reinterpret_cast<PISID>((Groups + i)->Sid); 

        size_t sub_authority_count = sid->SubAuthorityCount;

        DWORD sub_authority = sid->SubAuthority[sub_authority_count - 1];

        *(size_t*)(&HashBuffer->Hash[(sub_authority & 0x0000000F)]) |= bit_pos;
        *(size_t*)(&HashBuffer->Hash[((sub_authority & 0x000000F0) >> 4) + 0x10]) |= bit_pos;

        bit_pos <<= 1;
    }

    return 0;
}
Скопировать код

У этого алгоритма есть два очевидных ограничения: он вычисляет только младший значащий байт последнего Sub Authority каждого Sid, и только первые 64 Sid участвуют в вычислении.

UAC и связанный токен

UAC — относительно важный механизм безопасности, представленный версией Vista. Многие пользователи жалуются на неудобства, которые он доставляет. Однако, как и sudo в операционной системе Linux, UAC является важным барьером для защиты безопасности системы. Когда пользователь входит в Windows, операционная система сгенерирует пару начальных токенов для пользователя, которые представляют собой токен полной версии, представляющий все разрешения, которые есть у пользователя (т. Е. Токен разрешения администратора), и один после ограниченных разрешений администратора. Обычный токен, оба являются взаимно связанными токенами; после этого токены, используемые процессом, представляющим пользователя, наследуются от обычного токена для выполнения обычных, нечувствительных операций; когда пользователю нужно выполнить некоторые потребности При работе с полномочиями администратора, например при установке программного обеспечения и изменении важных системных настроек, всплывающее диалоговое окно будет всплывать, чтобы напомнить пользователям о рисках, с которыми они сталкиваются, и попросить их согласия. Как только пользователь согласится, он переключится на текущий общий токен. Связанный маркер разрешения администратора для выполнения конфиденциальных операций. Благодаря такому способу взаимодействия с пользователями некоторые вредоносные программы не могут выполнять конфиденциальные операции в фоновом режиме.

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

Не все токены имеют связанные токены, например токены, работающие с более высокими полномочиями и не требующие повышения привилегий.

0x03 объект


Структура объекта

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

#!cpp
kd> dt _OBJECT_HEADER
nt!_OBJECT_HEADER
   +0x000 PointerCount     : Int8B
   +0x008 HandleCount      : Int8B
   +0x008 NextToFree       : Ptr64 Void
   +0x010 Lock             : _EX_PUSH_LOCK
   +0x018 TypeIndex        : UChar
   +0x019 TraceFlags       : UChar
   +0x019 DbgRefTrace      : Pos 0, 1 Bit
   +0x019 DbgTracePermanent : Pos 1, 1 Bit
   +0x01a InfoMask         : UChar
   +0x01b Flags            : UChar
   +0x01b NewObject        : Pos 0, 1 Bit
   +0x01b KernelObject     : Pos 1, 1 Bit
   +0x01b KernelOnlyAccess : Pos 2, 1 Bit
   +0x01b ExclusiveObject  : Pos 3, 1 Bit
   +0x01b PermanentObject  : Pos 4, 1 Bit
   +0x01b DefaultSecurityQuota : Pos 5, 1 Bit
   +0x01b SingleHandleEntry : Pos 6, 1 Bit
   +0x01b DeletedInline    : Pos 7, 1 Bit
   +0x01c Spare            : Uint4B
   +0x020 ObjectCreateInfo : Ptr64 _OBJECT_CREATE_INFORMATION
   +0x020 QuotaBlockCharged : Ptr64 Void
   +0x028 SecurityDescriptor : Ptr64 Void
   +0x030 Body             : _QUAD
Скопировать код

Заголовок объекта содержит указатель на дескриптор безопасности.

Дескриптор безопасности

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

#!cpp
kd> dt _SECURITY_DESCRIPTOR
ntdll!_SECURITY_DESCRIPTOR
   +0x000 Revision         : UChar
   +0x001 Sbz1             : UChar
   +0x002 Control          : Uint2B
   +0x008 Owner            : Ptr64 Void
   +0x010 Group            : Ptr64 Void
   +0x018 Sacl             : Ptr64 _ACL
   +0x020 Dacl             : Ptr64 _ACL
kd> dt _SECURITY_DESCRIPTOR_RELATIVE
nt!_SECURITY_DESCRIPTOR_RELATIVE
   +0x000 Revision         : UChar
   +0x001 Sbz1             : UChar
   +0x002 Control          : Uint2B
   +0x004 Owner            : Uint4B
   +0x008 Group            : Uint4B
   +0x00c Sacl             : Uint4B
   +0x010 Dacl             : Uint4B
Скопировать код

Владелец и Группа представляют Sid владельца дескриптора безопасности. Sacl — это аббревиатура от System Access Control List (Список контроля доступа к системе), который может включать аудит (Audit), уровень целостности (Integrity Level) и надежность текущего объекта. Такая информация, как уровень доверия, имеет ту же структуру, что и вышеупомянутый Dacl.

Дополнительная голова

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

Каталог объектов

Только некоторые объекты имеют информацию об имени, и они называются именованными объектами. Основная функция именованных объектов состоит в том, чтобы облегчить совместное использование объектов в различных процессах. Они скомпилированы в каталоги объектов по категориям, поэтому объекты можно найти по информации о пути в каталоге объектов. Реализация каталога объектов показана на рисунке ниже:

Тип объекта

Тип объекта — очень важная информация в объекте. Windows абстрагирует информацию о типе объекта от того же типа объекта и сохраняет ее как объект отдельного типа. Все типы объектов в системе централизованно размещаются в таблице.Объект поддерживает индекс (TypeIndex), указывающий на таблицу, чтобы указать тип текущего объекта. Это значение индекса непосредственно хранится в заголовке объекта, а тело объекта непосредственно примыкает к заголовку объекта. Если тело объекта повреждено, это может привести к изменению значения индекса заголовка, что приводит к так называемой путанице типов (Type Confusion). может. Чтобы решить эту проблему, в Windows 10 предусмотрена специальная защита для значения индекса, как показано на следующем рисунке:

Этот метод защиты прост и эффективен. Новое значение индекса получается операцией исключающего ИЛИ трех частей: реального значения индекса объекта типа в таблице объектов типа и второго байта адреса заголовка объекта (то есть с 8-го по 15-й Bit), байты cookie, которые хранятся в глобальной переменной ObHeaderCookie и меняются при каждом запуске системы. Среди них введение ObHeaderCookie делает значения индекса одного и того же типа объектов на разных машинах или даже между двумя запусками на одной машине разными. Однако этого недостаточно, чтобы избежать путаницы и использования типов. Мы также можем использовать утечку информации (Info Leak ) Чтобы обойти защиту, поэтому также вводится адрес заголовка объекта, так что в одно и то же время и в одной системе значения индекса между двумя разными экземплярами одного и того же типа объекта не совпадают, тем самым эффективно устраняя путаницу типов. использовать.

0x04 проверка уровня целостности


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

Есть несколько уровней целостности:

#!bash
SeUntrustedMandatorySid
SeLowMandatorySid
SeMediumMandatorySid
SeHighMandatorySid
SeSystemMandatorySid
Скопировать код

Уровень целостности объекта по умолчанию — SeUntrustedMandatorySid, а уровень целостности объекта по умолчанию — SeMediumMandatorySid. Это различие еще больше усиливает эту «наследственную систему».

0x05 процесс защиты


Защищенный процесс (Protected Process) — это механизм безопасности, установленный операционной системой Windows для защиты определенных ключевых процессов от отладки, внедрения или даже чтения информации из памяти обычными процессами.

Разница между процессом защиты и другими обычными процессами состоит в том, что член Protection процесса защиты не равен 0.

#!cpp
kd> dt nt!_EPROCESS Protection
   +0x6b2 Protection : _PS_PROTECTION
kd> dt nt!_PS_PROTECTION
   +0x000 Level            : UChar
   +0x000 Type             : Pos 0, 3 Bits
   +0x000 Audit            : Pos 3, 1 Bit
   +0x000 Signer           : Pos 4, 4 Bits
Скопировать код

Элемент Type процесса защиты может представлять два типа защиты: Protected Process (PP) и Protected Process Lite (PPL) .Разница между ними заключается в том, что процесс защиты PP имеет более высокие разрешения. Подписывающий член процесса защиты представляет категорию подписавшего процесса. Для процессов защиты, подписывающей стороной которых являются PsProtectedSignerWindows (5) и PsProtectedSignerTcb (6), информация о типе и подписывающей стороне будет извлечена и собрана в Sid, который представляет уровень надежности процесса и сохраняется в члене TrustLevelSid базового токена. . Когда в токене используется TrustLevelSid, ​​необходимо убедиться, что он синхронизирован с информацией о защите текущего процесса. В основном это связано с членом TrustLevelSid, ​​возникающим при передаче токена между различными процессами (например, дочерний процесс наследует токен родительского процесса) Устаревшая ситуация.

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

  • Если операция происходит из кода режима ядра, нет необходимости соблюдать ограничения;
  • Если элемент защиты целевого процесса пуст, это означает, что целевой процесс не является процессом защиты и не должен соответствовать ограничениям;
  • Если текущий процесс является процессом с защитой типа PP, этот тип защищенного процесса имеет наивысшие права доступа и не требует соблюдения ограничений;
  • Если текущий процесс и целевой процесс являются процессами, защищенными PPL, необходимо определить, имеет ли подписывающий текущего процесса приоритет (доминировать) над подписывающим лицом целевого процесса в соответствии с таблицей RtlProtectedAccess. Если это так, нет необходимости соблюдать ограничения;
  • В остальных случаях необходимо соблюдать ограничения.

Таблица RtlProtectedAccess выглядит следующим образом:

#!cpp
RTL_PROTECTED_ACCESS RtlProtectedAccess[] =
{
//   Domination,       Process,         Thread,
//         Mask,  Restrictions,   Restrictions,
    {         0,             0,             0}, //PsProtectedSignerNone               Subject To Restriction Type
    {         2,    0x000fc7fe,    0x000fe3fd}, //PsProtectedSignerAuthenticode       0y00000010
    {         4,    0x000fc7fe,    0x000fe3fd}, //PsProtectedSignerCodeGen            0y00000100
    {         8,    0x000fc7ff,    0x000fe3ff}, //PsProtectedSignerAntimalware        0y00001000
    {      0x10,    0x000fc7ff,    0x000fe3ff}, //PsProtectedSignerLsa                0y00010000
    {      0x3e,    0x000fc7fe,    0x000fe3fd}, //PsProtectedSignerWindows            0y00111110
    {      0x7e,    0x000fc7ff,    0x000fe3ff}, //PsProtectedSignerTcb                0y01111110
};
Скопировать код

Среди них ограничения процессов и ограничения потоков представляют собой ограничения разрешений для процессов и потоков, соответственно, как подробно показано на следующем рисунке:

Мы можем использовать демонстрационный код NtDebugActiveProcess и NtCreateUserProcess, чтобы понять логику защиты процесса и его ограничения:

#!cpp
static
NTSTATUS
NtDebugActiveProcess(
    __in HANDLE ProcessHandle,
    __in HANDLE DebugObjectHandle
    )
{
    PEPROCESS target_process = nullptr;
    NTSTATUS result = ObReferenceObjectByHandleWithTag( ProcessHandle, &target_process);
    if (! NT_SUCCESS(result))
        return result;

    PEPROCESS host_process = PsGetCurrentProcess();

    if (host_process == target_process)
        return 0xC0000022;

    if (PsInitialSystemProcess == target_process)
        return 0xC0000022;

    if (PspCheckForInvalidAccessByProtection(PreviousMode, host_process->Protection, target_process->Protection))
        return 0xC0000712;

    // ......
}


static
NTSTATUS
NtCreateUserProcess(
    __out PHANDLE ProcessHandle,
    __out PHANDLE ThreadHandle,
    __in  ACCESS_MASK ProcessDesiredAccess ,
    __in  ACCESS_MASK ThreadDesiredAccess ,
    __in  POBJECT_ATTRIBUTES ProcessObjectAttributes OPTIONAL ,
    __in  POBJECT_ATTRIBUTES ThreadObjectAttributes OPTIONAL ,
    __in  ULONG CreateProcessFlags,
    __in  ULONG CreateThreadFlags,
    __in  PRTL_USER_PROCESS_PARAMETERS ProcessParameters ,
    __in  PVOID Parameter9,
    __in  PNT_PROC_THREAD_ATTRIBUTE_LIST AttributeList
    )
{
    ACCESS_MASK allowed_process_access = ProcessDesiredAccess ;
    ACCESS_MASK allowed_thread_access = ThreadDesiredAccess ;
    PS_PROTECTION protection = ProcessContext.member_at_0x20;
    if (PspCheckForInvalidAccessByProtection(PreviousMode, host_process->Protection, target_process->Protection))
    {
        // 1 << 0x19 = 0x80000,  WRITE_OWNER
        if ( MAXIMUM_ALLOWED == ProcessDesiredAccess )
            allowed_process_access = (((~RtlProtectedAccess[protection.Signer].DeniedProcessAccess) & 0x1FFFFF) | ProcessDesiredAccess) & (~(1 << 0x19));

        if ( MAXIMUM_ALLOWED == ThreadDesiredAccess )
            allowed_thread_access = (((~RtlProtectedAccess[protection.Signer].DeniedThreadAccess) & 0x1FFFFF) | ThreadDesiredAccess) & (~(1 << 0x19));
    }
    //PspInsertProcess(..., allowed_process_access, ...);
    //PspInsertThread(..., allowed_thread_access, ...);
}
Скопировать код

0x06 Заключение


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

  • James Forshaw: The Windows Sandbox Paradox
  • James Forshaw: A Link to the Past: Abusing Symbolic Links on Windows
  • Alex Ionescu: The Evolution of Protected Processes Part 1: Pass-the-Hash Mitigations in Windows 8.1
  • Alex Ionescu: The Evolution of Protected Processes Part 2: Exploit/Jailbreak Mitigations, Unkillable Processes and Protected Services
  • Alex Ionescu: Protected Processes Part 3 : Windows PKI Internals (Signing Levels, Scenarios, Root Keys, EKUs & Runtime Signers)
  • Daniel & Azure: Did You Get Your Token?

Разграничение прав доступа в Windows
Статья о разграничении прав доступа в операционных системах Windows: дискретном и мандатном. В статье рассматриваются разграничения прав доступа к папкам и файлам на уровне операционной системы Windows и с помощью Secret Net.

Содержание:

  • Разграничение прав доступа на уровне операционной системы (дискретное разграничение в Windows)
  • Разграничение прав доступа с помощью Secret Net

Дискретное разграничение прав доступа

Для того, что бы настроить правила безопасности для папок нужно воспользоваться вкладкой «Безопасность». В Windows XP эта вкладка отключена по умолчанию. Для ее активации нужно зайти в свойства папки (Меню «Сервис» -> «Свойства папки» ->  «Вид») и снять флажок «Использовать простой общий доступ к файлам».

Свойства папки

Основные права доступа к папкам

В файловой системе NTFS в Windows XP существует шесть стандартных разрешений:

  1. Полный доступ;
  2. Изменить;
  3. Чтение и выполнение;
  4. Список содержимого папки;
  5. Чтение;
  6. Запись.

Основные права доступа к папкам Windows XP

В Windows 10 нет стандартного разрешения «Список содержимого папки».

Основные права доступа к папкам Windows10

Эти разрешения могут предоставляться пользователю (или группе пользователей) для доступа к папкам и файлам. При этом право «Полный доступ» включат в себя все перечисленные права, и позволяет ими управлять.

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

Создайте папки по названиям разрешений, всего у вас будет 6 папок для Windows XP и для Windows 10. Я рассмотрю на примере Windows XP, на «десятке» вам будет проще. Скачайте папки по ссылке и скопируйте в них содержимое (не сами папки, а то, что в них находится).

Каталоги для примера

Отройте вкладку «Безопасность» в свойствах папки «Список содержимого папки». У меня есть пользователь user, вы можете добавить своего. Для того, что бы изменить право на объект нужно выбрать пользователя и указать ему разрешение, в данном случае «Список содержимого папки». Затем нажмите «Применить» и «ОК».

Выбор пользователя

Выбор пользователя
Список содержимого
Список содержимого

По аналогии установите права для соответствующих папок.

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

Смена пользователя

«Список содержимого папки» — предоставляет возможность просмотра файлов и папок в текущем каталоге. То есть вы можете посмотреть, что есть в папке, но запустить и открыть ничего не получиться.

«Чтение» — предоставляет возможность открывать в папке все файлы, кроме исполняемых файлов (например, с расширением .exe).

«Чтение и выполнение» — предоставляет возможность открывать в данном каталоге все файлы.

«Запись» — предоставляет возможность добавления файлов в папку без права на доступ к вложенным в него объектам, в том числе на просмотр содержимого каталога.

«Изменить» — предоставляет возможность открывать и создавать (изменять) файлы в папке.

«Полный доступ» — предоставляет все возможности для работы с папкой и вложенными файлами, включая изменение разрешений.

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

Содержимое папки "Список содержимого"

Содержимое папки «Список содержимого»
Ошибка запуска исполняемого файла
Ошибка запуска исполняемого файла
Ошибка текстового файла
Ошибка текстового файла

Элементы разрешений на доступ

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

Просмотреть элементы разрешений на доступ можно, нажав на кнопку «Дополнительно» во вкладке «Безопасность» и выбрав любой элемент разрешений.

Элементы разрешений на доступ

Поэкспериментируйте с элементами и проверьте, как они работаю.

Элементы разрешений на доступ для записи

Элементы разрешений на доступ для записи

Владелец файла

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

Узнать, какой пользователь является владельцем файла или папки можно на закладке «Владелец» в дополнительных параметрах безопасности.

Владелец файла в NTFS

Наследование прав доступа

В файловой системе NTFS поддерживается наследование разрешений. Если вы устанавливаете разрешение на папку, то оно наследуется для всех вложенных файлов и папок.

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

Для изменения унаследованных разрешений нужно открыть вкладку «Разрешения» в дополнительных параметрах безопасности. Там же можно отключить наследование разрешений.

Отключение наследования разрешений

Запреты

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

Запреты на объекты в файловой системе NTFS

Запреты на объекты в файловой системе NTFS

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

Действующие разрешения

Разграничение прав доступа с помощью Secret Net (на примере версии 5.1)

При использовании Secret Net доступ к файлам осуществляется, в случае если пользователю присваивается соответствующий уровень допуска. В примере я использую Windows XP с установленным программным продуктом Secret Net 5.1.

Первым делом нужно запустить локальные параметры безопасности от имени Администратора: «Пуск –> Программы –> Secret Net 5 –> Локальная политика безопасности».

Локальная политика безопасности

Далее необходимо перейти в «Параметры Secret Net» –>  «Настройка подсистем» –> «Полномочное управление доступом: название уровней конфиденциальности».

Полномочное управление доступом: название уровней конфиденциальности

Введите названия уровней. У меня это:

  • Низший – Общедоступно.
  • Средний – Конфиденциально.
  • Высший – Секретно.

Название уровней доступа

Настройка субъектов

Настройка субъектов в Secret Net производится в группе «Локальные пользователи и группы». Зайдите в меню «Пуск» –>  «Программы» –>  «Secret Net 5» –> «Управление компьютером» –>  «Локальные пользователи и группы» –> «Пользователи».

Что бы настроить права администратора нужно выбрать учетную запись «Администратор» и перейти на вкладку Secret Net 5. Установим уровень доступа «секретно».

Настройка субъектов

Далее установите все флажки.

  • Управление категориями конфиденциальности означает, что пользователь имеет право изменять категории конфиденциальности папок и файлов, а так же может управлять режимом наследования категорий конфиденциальности папок.
  • Печать конфиденциальных документов означает, что пользователь может распечатывать конфиденциальные документы. Данная возможность появляется, если включен контроль печати конфиденциальных документов.
  • Вывод конфиденциальной информации означает, что пользователь может копировать конфиденциальную информацию на внешние носители.

Уровни доступа пользователя

После установки всех флажков нажмите «Применить» и «ОК».

Создадим нового пользователя. Для этого нужно перейти «Локальные пользователи и Группы» –> «Пользователи». Создайте новых пользователей, я назову их «Конфиденциальный» и «Секретный». По аналогии с пользователем Администратор  установите для новых пользователей аналогичные уровни доступа и настройки как на рисунках ниже.

Создание нового пользователя

Уровни доступа пользователей

Настройка объектов

Та или иная категория конфиденциальности является атрибутом папки или файла. Изменения этих атрибутов производятся уполномоченными пользователями (в данном случае Администратором). Категория конфиденциальности может присваиваться новым файлам или папкам автоматически или по запросу.

Автоматическое присваивание категории конфиденциальности можно включить или отключить в окне настройки свойств папки. Этот параметр может редактировать только пользователь, у которого есть права на «Редактирование категорий конфиденциальности».

Автоматическое присвоение категорий конфиденциальности

Изменение категорий конфиденциальности

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

Попробуйте создать в паке новый файл или каталог, а после чего изменить ее уровень (повысить) и установить флажок «Автоматически присваивать новым файлам». У вас появиться окно «Изменение категорий конфиденциальности».

Выберите пункт «Присвоение категорий конфиденциальности всем файлам в каталоге» и нажмите «ОК» для присвоения категории конфиденциальности всем файлам кроме скрытых и системных файлов.

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

Если пользователь с категорией «Общедоступно» попробует прочитать или удалить документ, то он получит соответствующие ошибки.

Отказано в доступе

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

Если вы зайдете под пользователем «Секретный» то вы сможете повысить уровень конфиденциальности файлов и работать с ними.

Повышение уровня конфиденциальности

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

Контроль потоков данных

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

Для этого нужно запустить «Локальные параметры безопасности»: «Пуск» – «Программы» –> «Secret Net 5» –>  «Локальная политика безопасности», затем перейти в группу «Параметры Secret Net» –>  «Настройки подсистем» и выбрать параметр  «Полномочное управление доступом: Режим работы» и включить контроль потоков. Изменения вступят в силу после перезагрузки компьютера.

Полномочное управление доступом: Режим работы

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

Выбор уровня конфиденциальности

Если вы откроете файл с уровнем «Конфиденциально», отредактируете его и попробуете сохранить под другим именем и в другую папку, то вы получите ошибку, так как уровень сеанса (секретный) выше, чем уровень файла (конфиденциальный) и включен контроль потоков данных.

На этом все, если у вас остались вопросы задавайте их в комментариях.

В этой статье рассмотрим права и привилегии пользователей в системе. Вы узнаете где они устанавливаются и чем права отличаются от привилегий.

Назначение прав и привилегий

Привилегии – это возможность выполнять связанные с системой операции, например выключение компьютера или изменение системного времени.

Право – разрешает или запрещает выполнять конкретный тип входа в систему, например локальный или вход по сети.

Для того чтобы управлять привилегиями и правами, нужно использовать ММС-оснастку “Локальная политика безопасности” (secpol.msc). В этой оснастке можно настроить и права и привилегии для пользователей или групп. Вы можете различить права от привилегий тем, что права связаны со входом в систему, а привилегии не связаны.

Назначение прав пользователей через редактор локальной политики безопасности

Права учетной записи

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

Возможные права:

  • право локального входа в систему (logon locally);
  • возможность входить в систему по сети (logon over the network);
  • право входить в систему через службу терминалов (logon through Terminal Services);
  • возможность входить в систему в качестве службы (logon as a service);
  • возможность входить в систему в качестве пакетного задания (logon as a batch job).

Привилегии

Привилегии пользователя находятся в маркере доступа. А вот не полный список привилегий:

  • Резервное копирование файлов и каталогов. Заставляет NTFS предоставлять некоторый доступ к файлам, даже если дескриптор безопасности не дает таких разрешений.
  • Восстановление файлов и каталогов. Заставляет NTFS предоставлять некоторый доступ к файлам, даже если дескриптор безопасности не дает таких разрешений.
  • Повышение приоритета планирования. Требуется для повышения приоритета процесса.
  • Загрузка и выгрузка драйверов устройств.
  • Добавление рабочих станций в домен.
  • Выполнение операций сопровождения с томом. Например, выполнение дефрагментации или проверка диска.
  • Изменение маркера объекта. Например, разрешает запуск программ от имени администратора.
  • Управление аудитом и журналом безопасности. Необходимо для обращения к списку SACL.
  • Выключение системы.
  • Изменение системного времени.
  • Получение прав владения. Для файлов и других объектов.

Включение привилегий по требованию

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

Запустите Process Explorer с повышенными привилегиями. А затем щелкните правой кнопкой мыши на часах в области уведомлений и выберите команду “Настройка даты и времени“. После чего найдите и откройте свойства процесса “SystemSettings.exe” в “Process Explorer“.

Далее, перейдите на вкладку “Security” и там вы увидите, что привилегия “SeTimeZonePrivilege” отключена:

Внутреннее устройство Windows. Права доступа и привилегии, изображение №2

Затем измените часовой пояс, закройте и снова откройте окно свойств процесса ” SystemSettings.exe “. И вы увидите, что привилегия “SeTimeZonePrivilege” включилась:

Внутреннее устройство Windows. Права доступа и привилегии, изображение №3

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

Привилегия обхода промежуточных проверок NTFS

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

Во-первых создайте папку, а внутри этой папки создайте новый текстовый документ. Затем перейдите в Проводнике к этому файлу, откройте его свойства и перейдите на вкладку “Безопасность“. Там щелкните на кнопке “Дополнительно” и снимите флажок “Наследование“. А затем примените изменения. Когда появится предложение удалить или скопировать права наследования, выберите “Копировать“.

Теперь измените безопасность новой папки, чтобы у вашей учетной записи не было никакого доступа к ней. Для этого выберите свою учетную запись, а затем выберите все флажки “Запретить” в списке разрешений.

Запустите программу “Блокнот“. В меню “Файл” выберите команду “Открыть” и перейдите к новому каталогу. Вы не сможете открыть его, так как доступ быть запрещен. Но вы можете в поле “Имя файла” диалогового окна “Открыть” набрать полный путь к новому файлу. После чего файл должен открыться.

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

Супер привилегии

Это очень серьёзные привилегии и при включенной системе UAC они будут предоставляться только приложениям запущенным на высоком уровне целостности ( high или выше). Ну и конечно учетная запись должна обладать этими привилегиями.

Вот список таких супер привилегий:

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

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


Вернуться к оглавлению

Сводка

Права и привилегии пользователей

Имя статьи

Права и привилегии пользователей

Описание

В этой статье рассмотрим права и привилегии пользователей в системе. Вы узнаете где они устанавливаются и чем права отличаются от привилегий

Права доступа к файлам и папкам простым языком.

На просторах России много фирм и мелких предприятий не имеют в штате своего системного администратора на постоянной основе или приходящего время от времени. Фирма растёт и рано или поздно одной расшаренной папки в сети, где каждый может делать что захочет, становится мало. Требуется разграничение доступа для разных пользователей или групп пользователей на платформе MS Windows. Линуксоидов и опытных админов просьба не читать статью.

Самый лучший вариант — взять в штат опытного админа и задуматься о покупке сервера. Опытный админ на месте сам решит: поднимать ли MS Windows Server с Active Directory или использовать что-то из мира Linux.

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

Прежде чем начать хотелось бы разжевать пару моментов:

  • Любая операционная система «узнаёт» и «различает» реальных людей через их учётные записи. Должно быть так: один человек = одна учётная запись.
  • В статье описывается ситуация, что в фирме нет своего админа и не куплен, к примеру, MS Windows Server. Любая обычная MS Windows одновременно обслуживает по сети не более 10 для WinXP и 20 человек для Win7. Это сделано фирмой Microsoft специально, чтобы клиентские Windows не перебегали дорогу серверам Windows и вы не портили бизнес Microsoft. Помните число 10-20 и когда в вашей фирме будет более 10-20 человек, вам придётся задуматься о покупке MS Windows Server или попросить кого-либо поднять вам бесплатный Linux Samba сервер, у которого нет таких ограничений.
  • Раз у вас нет грамотного админа, то ваш обычный комп с клиентской MS Windows будет изображать из себя файловый сервер. Вы вынуждены будете продублировать на нём учётные записи пользователей с других компьютеров, чтобы получать доступ к расшаренным файлам. Другими словами, если есть в фирме ПК1 бухгалтера Оли с учётной записью olya, то и на этом «сервере» (именую его в дальнейшем как WinServer) нужно создать учётную запись olya с таким же паролем, как и на ПК1.
  • Люди приходят и уходят. Текучесть кадров есть везде и если вы, тот бедный человек, который не админ и назначен (вынужден) поддерживать ИТ вопросы фирмы, то вот вам совет. Делайте учётные записи, не привязанные к личности. Создавайте для менеджеров — manager1, manager2. Для бухгалтеров — buh1, buh2. Или что-то подобное. Ушёл человек? Другой не обидится, если будет использовать manager1. Согласитесь это лучше, чем Семёну использовать учётную запись olya, так как влом или некому переделывать и уже всё работает 100 лет.
  • Забудьте такие слова как: «сделать пароль на папку». Те времена, когда на ресурсы накладывался пароль давным давно прошли. Поменялась философия работы с различными ресурсами. Сейчас пользователь входит в свою систему с помощью учётной записи (идентификация), подтверждая себя своим паролем (аутентификация) и ему предоставляется доступ ко всем разрешённым ресурсам. Один раз вошёл в систему и получил доступ ко всему — вот что нужно помнить.
  • Желательно выполнять нижеперечисленные действия от встроенной учётной записи Администратор или от первой учётной записи в системе, которая по умолчанию входит в группу Администраторы.

Приготовление.

В Проводнике уберите упрощённый доступ к нужным нам вещам.

  • MS Windows XP. Меню Сервис — Свойства папки — Вид. Снять галочку Использовать мастер общего доступа
  • MS Windows 7. Нажмите Alt. Меню Сервис — Параметры папок — Вид. Снять галочку Использовать простой общий доступ к файлам.

Создайте на вашем компьютере WinServer папку, которая будет хранить ваше богатство в виде файлов приказов, договоров и так далее. У меня, как пример, это будет C:dostup. Папка обязательна должна быть создана на разделе с NTFS.

Доступ по сети.

На данном этапе нужно выдать в доступ по сети (расшарить — share) папку для работы с ней другими пользователями на своих компьютерах данной локальной сети.

И самое главное! Выдать папку в доступ с полным разрешением для всех! Да да! Вы не ослышались. А как же разграничение доступа?

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

  • MS Windows XP. На нужной папке (C:dostup) правой клавишей мыши и там Свойства. Вкладка Доступ — Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.
  • MS Windows 7. На нужной папке (C:dostup) правой клавишей мыши и там Свойства. Вкладка Доступ — Расширенная настройка. Ставим галочку Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.

Пользователи и группы безопасности.

Нужно создать необходимые учётные записи пользователей. Напоминаю, что если на многочисленных ваших персональных компьютерах используются различные учётные записи для пользователей, то все они должны быть созданы на вашем «сервере» и с теми же самыми паролями. Этого можно избежать, только если у вас грамотный админ и компьютеры в Active Directory. Нет? Тогда кропотливо создавайте учётные записи.

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Новый пользователь.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Создать пользователя.

Теперь очередь за самым главным — группы! Группы позволяют включать в себя учётные записи пользователей и упрощают манипуляции с выдачей прав и разграничением доступа.

Чуть ниже будет объяснено «наложение прав» на каталоги и файлы, но сейчас главное понять одну мысль. Права на папки или файлы будут предоставляться группам, которые образно можно сравнить с контейнерами. А группы уже «передадут» права включённым в них учётным записям. То есть нужно мыслить на уровне групп, а не на уровне отдельных учётных записей.

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.

Нужно включить в нужные группы нужные учётные записи. Для примера, на группе Бухгалтеры правой клавишей мыши и там Добавить в группу или Свойства и там кнопка Добавить. В поле Введите имена выбираемых объектов впишите имя необходимой учётной записи и нажмите Проверить имена. Если всё верно, то учётная запись изменится к виду ИМЯСЕРВЕРАучётная_запись. На рисунке выше, учётная запись buh3 была приведена к WINSERVERbuh3.

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

Стоит ли заморачиваться с группой, если в ней будет одна учётная запись? Считаю, что стоит! Группа даёт гибкость и маневренность. Завтра вам понадобится ещё одному человеку Б дать те же права, что и определённому человеку с его учётной записью А. Вы просто добавите учётную запись Б в группу, где уже имеется А и всё!

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

Права доступа.

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

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

Итак, у нас есть директория по адресу C:dostup, которую мы уже выдали в доступ по сети всем сотрудникам. Внутри каталога C:dostup ради примера создадим папки Договора, Приказы, Учёт МЦ. Предположим, что есть задача сделать:

  • папка Договора должна быть доступна для Бухгалтеров только на чтение. Чтение и запись для группы Менеджеров.
  • папка УчётМЦ должна быть доступна для Бухгалтеров на чтение и запись. Группа Менеджеров не имеет доступа.
  • папка Приказы должна быть доступна для Бухгалтеров и Менеджеров только на чтение.

На папке Договора правой клавишей и там Свойства — вкладка Безопасность. Мы видим что какие-то группы и пользователи уже имеют к ней доступ. Эти права были унаследованы от родителя dostup, а та в свою очередь от своего родителя С:

Мы прервём это наследование прав и назначим свои права-хотелки.

Жмём кнопку Дополнительно — вкладка Разрешения — кнопка Изменить разрешения.

Сначала прерываем наследование прав от родителя. Снимаем галочку Добавить разрешения, наследуемые от родительских объектов. Нас предупредят, что разрешения от родителя не будут применяться к данному объекту (в данном случае это папка Договора). Выбор: Отмена или Удалить или Добавить. Жмём Добавить и права от родителя останутся нам в наследство, но больше права родителя на нас не будут распространяться. Другими словами, если в будущем права доступа у родителя (папка dostup) изменить — это не скажется на дочерней папке Договора. Заметьте в поле Унаследовано от стоит не унаследовано. То есть связь родитель — ребёнок разорвана.

Теперь аккуратно удаляем лишние права, оставляя Полный доступ для Администраторов и Система. Выделяем по очереди всякие Прошедшие проверку и просто Пользователи и удаляем кнопкой Удалить.

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

Мы ставим галочку Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта и жмём Ок. Возвращаемся назад и снова Ок, чтобы вернуться к простому виду Свойства.

Данное окно позволит упрощённо достигнуть желаемого. Кнопка Изменить выведет окно «Разрешения для группы».

Жмём Добавить. В новом окне пишем Бухгалтеры и жмём «Проверить имена» — Ок. По умолчанию даётся в упрощённом виде доступ «на чтение». Галочки в колонке Разрешить автоматически выставляются «Чтение и выполнение», «Список содержимого папки», «Чтение». Нас это устраивает и жмём Ок.

Теперь по нашему техническому заданию нужно дать права на чтение и запись для группы Менеджеры. Если мы в окне Свойства, то снова Изменить — Добавить — вбиваем Менеджеры — Проверить имена. Добавляем в колонке Разрешить галочки Изменение и Запись.

Теперь нужно всё проверить!

Следите за мыслью. Мы приказали, чтобы папка Договора не наследовала права от свого родителя dostup. Приказали дочерним папкам и файлам внутри папки Договора наследовать права от неё.

На папку Договора мы наложили следующие права доступа: группа Бухгалтеры должна только читать файлы и открывать папки внутри, а группа Менеджеры создавать, изменять файлы и создавать папки.

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

Зайдите в папку Договора и создайте тестовый файл договор1.txt

На нём щелчок правой клавишей мыши и там Свойства — вкладка Безопасность — Дополнительно — вкладка Действующие разрешения.

Жмём Выбрать и пишем учётную запись любого бухгалтера, к примеру buh1. Мы видим наглядно, что buh1 получил права от своей группы Бухгалтеры, которые обладают правами на чтение к родительской папке Договора, которая «распространяет» свои разрешения на свои дочерние объекты.

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

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

  • Используйте разделы NTFS.
  • Когда разграничиваете доступ на папки (и файлы), то манипулируйте группами.
  • Создавайте учётные записи для каждого пользователя. 1 человек = 1 учётная запись.
  • Учётные записи включайте в группы. Учётная запись может входить одновременно в разные группы. Если учётная запись находится в нескольких группах и какая-либо группа что-то разрешает, то это будет разрешено учётной записи.
  • Колонка Запретить (запрещающие права) имеют приоритет перед Разрешением. Если учётная запись находится в нескольких группах и какая-либо группа что-то запрещает, а другая группа это разрешает, то это будет запрещено учётной записи.
  • Удаляйте учётную запись из группы, если хотите лишить доступа, которого данная группа даёт.
  • Задумайтесь о найме админа и не обижайте его деньгами.

Задавайте вопросы в комментариях и спрашивайте, поправляйте.

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

Источник

Стандарт управления правами доступа к корпоративным файловым информационным ресурсам

Стандарт управления правами доступа к корпоративным файловым информационным ресурсам (далее – Стандарт) регламентирует процессы предоставления доступа к файловым информационным ресурсам, размещенным на компьютерах, работающих под управлением операционных систем семейства Microsoft Windows. Стандарт распространяется на случаи, когда в качестве файловой системы используется NTFS, а в качестве сетевого протокола для совместного доступа к файлам SMB/CIFS.

Информационный ресурс – поименованная совокупность данных, к которой применяются методы и средства обеспечения информационной безопасности (например, разграничение доступа).
Файловый информационный ресурс – совокупность файлов и папок, хранящихся в каталоге файловой системы (который называется корневым каталогом файлового информационного ресурса), доступ к которой разграничивается.
Составной файловый информационный ресурс – это файловый информационный ресурс, содержащий в себе один или несколько вложенных файловых информационных ресурсов, отличающихся от данного ресурса правами доступа.
Вложенный файловый информационный ресурс – это файловый информационный ресурс, входящий в составной информационный ресурс.
Точка входа в файловый информационный ресурс – каталог файловой системы, к которому предоставляется сетевой доступ (shared folder) и который используется для обеспечения доступа к файловому информационному ресурсу. Данный каталог обычно совпадает с корневым каталогом файлового информационного ресурса, но может быть и вышестоящим.
Промежуточный каталог – каталог файловой системы, находящийся на пути от точки входа в файловый информационной ресурс к корневому каталогу файлового информационного ресурса. Если точка входа в файловый информационный ресурс является вышестоящим каталогом по отношению к корневому каталогу файлового информационного ресурса, то она также будет являться промежуточным каталогом.
Группа доступа пользователей – локальная или доменная группа безопасности, содержащая в конечном счете учетные записи пользователей, наделенные одним из вариантов полномочий доступа к файловому информационному ресурсу.

  1. Доступ разграничивается только на уровне каталогов. Ограничение доступа к отдельным файлам не проводится.
  2. Назначение прав доступа выполняется на базе групп безопасности. Назначение прав доступа на отдельные учетные записи пользователей не проводится.
  3. Явно запрещающие полномочия доступа (deny permissions) не применяются.
  4. Разграничение прав доступа проводится только на уровне файловой системы. На уровне сетевых протоколов SMB/CIFS права не разграничиваются (Группа «Все» – полномочия «Чтение/Запись» / Everyone – Change).
  5. При настройке сетевого доступа к файловому информационному ресурсу в настройках SMB/CIFS устанавливается опция «Перечисление на основе доступа (Access based enumeration)».
  6. Создание файловых информационных ресурсов на рабочих станциях пользователей недопустимо.
  7. Не рекомендуется размещать файловые информационные ресурсы на системных разделах серверов.
  8. Не рекомендуется создавать несколько точек входа в файловый информационный ресурс.
  9. Следует по возможности избегать создание вложенных файловых информационных ресурсов, а в случаях, когда имена файлов или каталогов содержат конфиденциальную информацию, это вовсе недопустимо

Доступ пользователей к файловому информационному ресурсу предоставляется путем наделения их одним из вариантов полномочий:

  • Доступ «Только на чтение (Read Only)».
  • Доступ «Чтение и запись (Read & Write)».

В подавляющем количестве задач разграничения доступа подобных вариантов полномочий доступа будет достаточно, но при необходимости возможно формирование новых вариантов полномочий, например, «Чтение и запись, кроме удаления (Read & Write without Remove)». Для реализаций новый полномочий необходимо будет уточнить пункт В.3 Таблицы 1, в остальном применение Стандарта останется неизменным.

Правила именования групп доступа пользователей

Имена групп доступа пользователей формируются по шаблону:

FILE-Имя файлового информационного ресурса–аббревиатура полномочий

Имя файлового информационного ресурса
должно совпадать с UNC именем ресурса или состоять из имени сервера и локального пути (если сетевой доступ к ресурсу не предоставляется). При необходимости в данном поле допускаются сокращения. Символы «\» опускаются, а «» и «:» заменяются на «-».

  • RO — для варианта доступа «Только на чтение (Read Only)»
  • RW — для варианта доступа «Чтение и запись (Read & Write)».

Пример 1
Имя группы доступа пользователей, имеющих полномочия «Только чтение» для файлового информационного ресурса с UNC именем \FILESRVReport, будет:
FILE-FILESRV-Report-RO

Пример 2
Имя группы доступа пользователей, имеющих полномочия «Чтение и запись» для файлового информационного ресурса, размещенного на сервере TERMSRV по пути D:UsersData, будет:
FILE-TERMSRV-D-UsersData-RW

Шаблон прав доступа к каталогам файлового информационного ресурса

Таблица 1 – Шаблон NTFS-прав доступа для корневого каталога файлового информационного ресурса.

Субъекты Права Режим наследования
Наследование прав доступа от вышестоящих каталогов отключено
А) Обязательные права
Специальная учетная запись:
«СИСТЕМА (SYSTEM)»
Полный доступ (Full access) Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Локальная группа безопасности:
«Администраторы (Administrators)»
Полный доступ (Full access) Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Б.1) Полномочия «Только чтение (Read Only)»
Группа доступа пользователей:
«FILE-Имя ресурса-RO»
Базовые права:
а) чтение и выполнение (read & execute);
б) список содержимого папки (list folder contents);
в) чтение (read);
Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Б.2) Полномочия «Чтение и запись (Read & Write)»
Группа доступа пользователей:
«FILE-Имя ресурса-RW»
Базовые права:
а) изменение (modify);
б) чтение и выполнение (read & execute);
в) список содержимого папки (list folder contents);
г) чтение (read);
д) запись (write);
Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Б.3) Другие полномочия при их наличии
Группа доступа пользователей:
«FILE-Имя ресурса-аббревиатура полномочий»
Согласно полномочиям Для этой папки, ее подпапок и файлов (This folder, subfolders and files)

Табилца 2 – Шаблон NTFS-прав доступа для промежуточных каталогов файлового информационного ресурса.

Субъекты Права Режим наследования
Наследование прав доступа от вышестоящих каталогов включено, но если данный каталог является вышестоящим по отношению к файловым информационным ресурсам и не входит ни в один другой файловый информационный ресурс, то наследование отключено
А) Обязательные права
Специальная учетная запись:
«СИСТЕМА (SYSTEM)»
Полный доступ (Full access) Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Локальная группа безопасности:
«Администраторы»
Полный доступ (Full access) Для этой папки, ее подпапок и файлов (This folder, subfolders and files)
Б.1) Полномочия «Проход через каталог (TRAVERSE
Группы доступа пользователей информационных ресурсов, для которых этот каталог является промежуточным Дополнительные параметры безопасности:
а) траверс папок / выполнение файлов (travers folder / execute files);
б) содержимое папки / чтение данных (list folder / read data);
в) чтение атрибутов (read attributes);
в) чтение дополнительных атрибутов (read extended attributes);
г) чтение разрешений (read permissions);
Только для этой папки (This folder only)

Бизнес процессы управления доступом к файловым информационным ресурсам

А. Создание файлового информационного ресурса
При создании файлового информационного ресурса выполняются следующие действия:

  1. Создаются группы доступа пользователей. Если сервер, на котором размещен файловый информационный ресурс, является членом домена, то создаются доменные группы. Если нет, то группы создаются локально на сервере.
  2. На корневой каталог и промежуточные каталоги файлового информационного ресурса назначаются права доступа согласно шаблонам прав доступа.
  3. В группы доступа пользователей добавляются учетные записи пользователей в соответствии с их полномочиями.
  4. При необходимости для файлового информационного ресурса создается сетевая папка (shared folder).

Б. Предоставление пользователю доступа к файловому информационному ресурсу
Учетная запись пользователя помещается в соответствующую группу доступа пользователя в зависимости от его полномочий.

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

Г. Блокирование доступа пользователя к файловому информационному ресурсу
Учетная запись пользователя удаляется из групп доступа пользователей файлового информационного ресурса. Если работник увольняется, то членство в группах не меняется, а блокируется учетная запись целиком.

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

  1. Регистрируется вложенный файловый информационный ресурс (согласно процессу А)
  2. В группы доступа пользователей вложенного файлового информационного ресурса добавляются группы доступа пользователей вышестоящего составного файлового информационного ресурса.

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

  1. Регистрируется вложенный файловый информационный ресурс (согласно процессу А)
  2. В группы доступа пользователей создаваемого информационного ресурса помещаются те учетные записи пользователей, которым требуется предоставить доступ.

Е. Изменение модели предоставления доступа к файловому информационному ресурсу
В случаях, когда к стандартным вариантам полномочий «Только чтение (Read only)» или «Чтение и запись (Read & Write)» необходимо добавить новые типы полномочий, например, «Чтение и запись, кроме удаления (Read & Write without Remove)» выполняют следующие действия:

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

Примеры

Рассмотрим применение данного стандарта на примере гипотетической организации ООО «ИнфоКриптоСервис», где для централизованного хранения файловых информационных ресурсов выделен сервер с именем «FILESRV». Сервер работает под управлением операционной системы Microsoft Windows Server 2008 R2 и является членом домена Active Directory с FQDN именем «domain.ics» и NetBIOS именем «ICS».

Подготовка файлового сервера
На диске «D:» сервера «FILESRV» создаем каталог «D:SHARE». Этот каталог будет единой точкой входа во все файловые информационные ресурсы, размещенные на данном сервере. Организуем сетевой доступ к данной папке (используем апплет «Share and Storage Management»):

Создание файлового информационного ресурса
Постановка задачи.
Пусть в составе организации ООО «ИнфоКриптоСервис» имеется Отдел разработки информационных систем в составе: начальника отдела Иванова Сергея Леонидовича (SL.Ivanov@domain.ics), специалиста Маркина Льва Борисовича (LB.Markin@domain.ics), и для них нужно организовать файловый информационный ресурс для хранения данных подразделения. Обоим работникам требуется доступ на чтение и запись к данному ресурсу.

Решение.
В каталоге «D:SHARE» сервера «FILESRV» создадим папку «D:SHAREОтдел разработки информационных систем», которая будет корневым каталогом для файлового информационного ресурса. Также создадим группы доступа пользователей (глобальные группы безопасности домена «ICS») для данного ресурса:

  • «FILE-FILESRV-SHARE-Отд. разр. ИС-RO»
  • «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»

Настроим права доступа для каталога «D:SHAREОтдел разработки информационных систем»:

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:(OI)(CI)R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:(OI)(CI)C
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

Каталог D:SHARE является точкой входа и промежуточным каталогом для данного ресурса. Добавим в него права на проход (Traverse) для групп: «FILE-FILESRV-SHARE-Отд. разр. ИС-RO» и «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:R
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

Поскольку пользователям требуется доступ на чтение и запись, добавим их учетные запаси в группу «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»

Предоставление доступа пользователю к файловому информационному ресурсу
Постановка задачи.
Предположим, в отдел разработки приняли еще одного работника – специалиста Егорова Михаила Владимировича (MB.Egorov@domain.ics), и ему, как и остальным работникам отдела, требуется доступ на чтение и запись к файловому информационному ресурсу отдела.

Решение.
Учетную запись работника необходимо добавить в группу «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»

Создание вложенного информационного ресурса. Расширение доступа
Постановка задачи.
Предположим, Отдел разработки информационных систем решил улучшить качество взаимодействия с Отделом маркетинга и предоставить руководителю последнего — Кругликовой Наталье Евгеньевне (NE.Kruglikova@domain.ics) — доступ на чтение к актуальной документации на продукты, хранящейся в папке «Документация» файлового информационного ресурса Отдела разработки информационных систем.

Решение.
Для решения данной задачи необходимо сделать вложенный ресурс «\FILESRVshareОтдел разработки информационных системДокументация», доступ к которому на чтение и запись должен быть (остаться) у всех пользователей, имевших доступ к «\FILESRVshareОтдел разработки информационных систем и добавиться доступ на чтение для пользователя Кругликовой Натальи Евгеньевне (NE.Kruglikova@domain.ics)

В каталоге «D:SHAREОтдел разработки информационных систем» создадим папку «D:SHAREОтдел разработки информационных системДокументация», которая будет корневым каталогом для нового ресурса. Также создадим две группы доступа пользователей:

  • «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO»
  • «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW»

Настроим права доступа на папку «D:SHAREОтдел разработки информационных системДокументация» следующим образом:

Дамп NTFS разрешений, полученных командой cacls:
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:(OI)(CI)R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:(OI)(CI)C

Поскольку всем пользователям, имеющим доступ в «\FILESRVshareОтдел разработки информационных систем», необходим аналогичный доступ в \FILESRVshareОтдел разработки информационных системДокументация», то добавим группу «FILE-FILESRV-SHARE-Отд. разр. ИС-RO» в «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO» и «FILE-FILESRV-SHARE-Отд. разр. ИС-RW» в «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW» соответственно. Добавим учетную запись Кругликовой Натальи Евгеньевны (NE.Kruglikova@domain.ics) в группу «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW»

Теперь, если Кругликова Наталья Евгеньевна (NE.Kruglikova@domain.ics) обратится по ссылке «\FILESRVshareОтдел разработки информационных системДокументация», то она сможет попасть в интересующую ее папку, но обращаться по полному пути не всегда удобно, поэтому настроим сквозной проход к данной паке от точки входа «\FILESRVshare» («D:SHARE»). Для этого настроим права доступа на промежуточные каталоги «D:SHARE» и «D:SHAREОтдел разработки информационных систем».

Проведем настройку «D:SHARE»:

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

и «D:SHAREОтдел разработки информационных систем»:

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:(OI)(CI)R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:(OI)(CI)C
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

Создание вложенного информационного ресурса. Сужение доступа
Постановка задачи
В целях организации резервного копирования наработок Отдела разработки информационных систем начальнику отдела Иванову Сергею Леонидовичу (SL.Ivanov@domain.ics), в рамках файлового информационного ресурса отдела, понадобилась сетевая папка «Архив», доступ к которой был бы только у него.

Решение.
Для решения данной задачи в файловом информационном ресурсе отдела требуется сделать вложенный ресурс «Архив» («\FILESRVshareОтдел разработки информационных системАрхив»), доступ к которому предоставить только начальнику отдела.

В каталоге «D:SHAREОтдел разработки информационных систем» создадим папку «D:SHAREОтдел разработки информационных системАрхив», которая будет корневым каталогом для нового ресурса. Также создадим две группы доступа пользователей:

  • «FILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RO»
  • «FILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RW»

Проведем настройки прав доступа на каталоги «D:SHAREОтдел разработки информационных системАрхив»:

Дамп NTFS разрешений, полученных командой cacls:
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RO:(OI)(CI)R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RW:(OI)(CI)C

«D:SHAREОтдел разработки информационных систем»

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:(OI)(CI)R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:(OI)(CI)C
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

и «D:SHARE»:

Дамп NTFS разрешений, полученных командой cacls:
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RO:R
ICSFILE-FILESRV-SHARE-Отд. разр. ИС-Архив-RW:R
NT AUTHORITYSYSTEM:(OI)(CI)F
BUILTINAdministrators:(OI)(CI)F

Учетную запись пользователя Иванова Сергея Леонидовича (SL.Ivanov@domain.ics) добавим в группу FILE-FILESRV-Отд. раз.ИС-Архив-RW.

Источник

Понравилась статья? Поделить с друзьями:
  • Как происходит обновление до windows 11
  • Как прописать питон в path на windows
  • Как происходит непрямая аутентификация в ос windows 2000
  • Как прописать переменные среды для java в windows 10
  • Как происходит настройка динамической маршрутизации в windows server 2008