Разграничение доступа к объектам
С объектом разграничения доступа связывается дескриптор безопасности SD (security descriptor), содержащий следующую информацию:
o идентификатор безопасности (SID) владельца объекта;
o идентификатор безопасности первичной группы владельца;
o дискреционный список контроля доступа (discretionary access control list, DACL);
o системный список контроля доступа (system access control list, SACL).
Списки управления доступом
o Список SACL управляется администратором системы и предназначен для аудита безопасности.
o Список DACL управляется владельцем объекта и предназначен для идентификации пользователей и групп, которым предоставлен или запрещен определенный тип доступа к объекту.
Элементы списков управления доступом
Каждый элемент списка DACL (access control entry, ACE) определяет права доступа к объекту одному пользователю или группе. Каждый ACE содержит следующую информацию:
o идентификатор безопасности SID субъекта, для которого определяются права доступа;
o маска доступа (access mask, AM), которая специфицирует контролируемые данным ACE права доступа;
|
|
o тип ACE;
o признак наследования прав доступа к объекту, определенных для родительского объекта.
Элементы списка DACL могут быть двух типов – элементы, запрещающие определенные в них права доступа (Access-allowed ACE), и элементы, запрещающие определенные в них права доступа (Access-denied ACE). Элементы для запрещения субъектам использования определенных прав доступа должны размещаться в «голове» списка, до первого из элементов, разрешающих использование субъектом тех или иных прав доступа.
Права доступа (разрешения)
o В операционной системе Windows различаются специальные, стандартные и общие (родовые, generic) права доступа к объектам. Специальные права доступа определяют возможность обращения к объекту по свойственному только данной категории объектов методу – чтение данных из объекта, запись данных в объект, чтение атрибутов объекта, выполнение программного файла и т.д.
o Стандартные права доступа определяют возможность доступа к объекту по методу, применимому к любому объекту, – изменение владельца объекта, изменение списка DACL объекта, удаление объекта и т.д.
Права доступа (разрешения)
Каждое из общих прав доступа представляет собой комбинацию специальных и стандартных прав и предоставляет возможность обращения к объекту с помощью некоторого набора методов доступа. Примеры общих прав доступа:
o чтение, включающее в себя чтение DACL объекта, чтение данных из объекта, чтение его атрибутов и расширенных атрибутов, использование объекта для синхронизации;
o запись, включающая в себя чтение DACL объекта, запись и добавление данных в объект, запись его атрибутов и расширенных атрибутов, использование объекта для синхронизации;
|
|
o выполнение, включающее в себя чтение DACL объекта, чтение его атрибутов, выполнение программного файла и использование объекта для синхронизации.
Разграничение доступа к объектам
Маркер доступа субъекта, обращающегося к некоторому объекту, поступает в локальную службу безопасности LSA. От LSA маркер доступа поступает к монитору безопасных ссылок (security reference monitor, SRM), который просматривает DACL из дескриптора безопасности SD соответствующего объекта и принимает решение R о предоставлении доступа субъекту или отказе в доступе. Получив от SRM результат R, LSA передает его субъекту, запросившему доступ к объекту.
Алгоритм проверки прав доступа к объекту
1. Если SID из маркера доступа субъекта AT не совпадает с SID, содержащемся в элементе ACE списка контроля доступа к объекту, то осуществляется переход к следующему ACE, иначе переход к п. 2.
2. Если в элементе ACE запрещается доступ к объекту для субъекта с данным SID, но этот субъект является владельцем объекта и запрашиваемая маска доступа содержит только попытку доступа к объекту по методу «чтение (или) изменение дискреционного списка контроля доступа к объекту» (чтение или смена разрешений, запись DAC), то доступ субъекта к объекту разрешается, иначе осуществляется переход к п.3.
3. Если в элементе ACE запрещается доступ к объекту для субъекта с данным SID, то сравниваются запрашиваемая маска доступа и маска доступа, определенная в ACE. Если при сравнении находится хотя бы один общий метод доступа, то попытка доступа субъекта к объекту отклоняется, иначе происходит переход к следующему ACE.
4. Если в элементе ACE разрешается доступ к объекту для субъекта с данным SID, то также сравниваются запрашиваемая маска доступа и маска доступа, определенная в ACE. Если при этом маски доступа полностью совпадают, то доступ субъекта к объекту разрешается, иначе происходит переход к следующему ACE.
5. Если достигнут конец списка DACL из дескриптора безопасности объекта, то попытка доступа субъекта к объекту отклоняется.
Следствия из рассмотренного алгоритма
o Если DACL объекта пуст, то любой доступ к нему запрещен всем субъектам, за исключением владельца объекта, которому разрешены чтение и (или) изменение списка контроля доступа к объекту.
o Если у объекта нет дескриптора безопасности (например, у папок и файлов, размещенных на дисках под управлением файловой системы FAT), то любые пользователи и группы могут получить любые права доступа к данному объекту.