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

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

Дескрипторы безопасности содержат списки дискреционного контроля доступа (DACL), которые содержат записи контроля доступа (ACE), которые предоставляют и запрещают доступ доверенным лицам, таким как пользователи или группы. Они также содержат системный список контроля доступа (SACL), который управляет аудитом доступа к объектам. [2] [3] ACE могут быть явно применены к объекту или унаследованы от родительского объекта. Порядок ACE в ACL важен, при этом ACE с отказом в доступе отображаются выше в порядке, чем ACE, которые предоставляют доступ. Дескрипторы безопасности также содержат владельца объекта.

Обязательный контроль целостности реализуется посредством нового типа ACE на дескрипторе безопасности. [4]

Разрешения для файлов и папок можно редактировать различными инструментами, включая Windows Explorer , WMI , инструменты командной строки, такие как Cacls , XCacls, ICacls , SubInACL, [5] бесплатную консоль Win32 FILEACL, [6] [7] бесплатную утилиту SetACL и другие утилиты . Для редактирования дескриптора безопасности пользователю необходимы разрешения WRITE_DAC для объекта, [8] разрешение, которое обычно делегируется по умолчанию администраторам и владельцу объекта.

Разрешения в NTFS

В следующей таблице обобщены разрешения NTFS и их роли (в отдельных строках). Таблица содержит следующую информацию: [9] [10] [11]

  • Код разрешения: Каждая запись контроля доступа (ACE) определяет свое разрешение с помощью двоичного кода. Существует 14 кодов (12 в старых системах).
  • Значение: Каждый код разрешения имеет значение в зависимости от того, применяется ли он к файлу или папке. Например, код 0x01 на файле указывает на разрешение на чтение файла, а на папке указывает на разрешение на просмотр содержимого папки. Однако знание только значения бесполезно. ACE также должен указывать, к кому применяется разрешение, и предоставлено ли это разрешение или отклонено.
  • Включено в: В дополнение к индивидуальным разрешениям, ACE может указывать специальные разрешения, известные как «общие права доступа». Эти специальные разрешения являются эквивалентами ряда индивидуальных разрешений. Например, GENERIC_READ (или GR) является эквивалентом «Чтение данных», «Чтение атрибутов», «Чтение расширенных атрибутов», «Чтение разрешений» и «Синхронизация». Поскольку имеет смысл запрашивать эти пять одновременно, запрос «GENERIC_READ» более удобен.
  • Псевдоним: Две утилиты командной строки Windows ( icacls и cacls ) имеют собственные псевдонимы для этих разрешений.

Код разрешения
ЗначениеВключено вПсевдоним
Для файловДля папокР [а]Э [б]Туалет ]А [д]Мне ]В icaclsВ cacls
0x01Прочитать данныеСписок содержимого папкиДаДаДаДаРДФАЙЛ_ЧИТАЕМ_ДАННЫЕ
0x80Атрибуты чтенияДаДаДаДаРААТРИБУТЫ_ЧТЕНИЯ_ФАЙЛА
0x08Прочитать расширенные атрибутыДаДаДаДаРЭАФАЙЛ_ЧИТАТЬ_EA
0x20Выполнить файлПапка TraverseДаДаДаХФАЙЛ_ВЫПОЛНИТЬ
0x20000Разрешения на чтениеДаДаДаДаДаРКЧИТАТЬ_КОНТРОЛЬ
0x100000СинхронизироватьДаДаДаДаДаССИНХРОНИЗИРОВАТЬ
0x02Запись данныхСоздать файлыДаДаДаВДЗАПИСЬ_ДАННЫХ_ФАЙЛА
0x04Добавить данныеСоздать папкиДаДаДаОБЪЯВЛЕНИЕФАЙЛ_ПРИЛОЖЕНИЕEND_D
0x100Написать атрибутыДаДаДаВашингтонАТРИБУТЫ_ЗАПИСИ_ФАЙЛА
0x10Написать расширенные атрибутыДаДаДаВЭАФАЙЛ_ЗАПИСЬ_EA
0x10000Удалить (или переименовать [12] )ДаДаДЕУДАЛИТЬ
0x40000Изменить разрешенияДаWDACWRITE_DAC
0x80000Взять на себя ответственностьДаВОWRITE_OWNER
0x40Удалить подпапки и файлыДаокруг КолумбияFILE_DELETE_CHILD

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

  1. Для переименования файла требуется разрешение «Удалить». [12]
  2. File Explorer не показывает «Синхронизировать» и всегда устанавливает его. Многопоточные приложения, такие как File Explorer и Windows Command Prompt, нуждаются в разрешении «Синхронизировать» для работы с файлами и папками. [13]


Сноски

  1. ^ GENERIC_READ, известный как «Чтение» в Проводнике файлов
  2. ^ GENERIC_EXECUTE, известный как «Читать и выполнить» в проводнике файлов
  3. ^ GENERIC_WRITE, известный как «Запись» в Проводнике файлов
  4. ^ GENERIC_ALL, известный как «Полный доступ» в Проводнике файлов
  5. ^ В проводнике файлов называется «Изменить».

Смотрите также

Ссылки

  1. ^ "Защищаемые объекты". Microsoft . 2008-04-24 . Получено 2008-07-16 .
  2. ^ "Что такое дескрипторы безопасности и списки контроля доступа?". Microsoft . Архивировано из оригинала 2008-05-05 . Получено 2008-07-16 .
  3. ^ "DACL и ACE". Microsoft . 2008-04-24 . Получено 2008-07-16 .
  4. ^ https://msdn.microsoft.com/en-us/library/bb625957.aspx Что такое механизм целостности Windows?
  5. ^ Домашняя страница SubInACL
  6. ^ Домашняя страница FILEACL Архивировано 29.08.2012 на Wayback Machine
  7. ^ "FILEACL v3.0.1.6". Microsoft . 2004-03-23. Архивировано из оригинала 16 апреля 2008 г. Получено 2008-07-25 .
  8. ^ "Тип данных ACCESS_MASK". Microsoft . 2008-04-24 . Получено 2008-07-23 .
  9. ^ "Как работают разрешения". Microsoft . 2013-06-21 . Получено 2017-11-24 .
  10. ^ Ричард Сивил (8 сентября 2016 г.). «Как это работает. Разрешения NTFS, часть 2». Microsoft . Получено 24.11.2017 .
  11. ^ Ричард Сивил (30 августа 2016 г.). «Как это работает. Разрешения NTFS». Microsoft . Получено 24.11.2017 .
  12. ^ ab Chen, Raymond (22 октября 2021 г.). «Переименование файла — многоэтапный процесс, только один из которых — изменение имени файла». The Old New Thing . Microsoft . Открытие с разрешением DELETE дает разрешение на переименование файла. Требуемое разрешение — DELETE, поскольку старое имя удаляется.
  13. ^ Чен, Рэймонд (18 ноября 2019 г.). «Я установил один и тот же ACL с помощью GUI и icacls, но результаты разные». The Old New Thing . Microsoft .
  • Описание команды CACLS на SS64.com
  • Страница SetACL SourceForge
Взято с "https://en.wikipedia.org/w/index.php?title=Security_descriptor&oldid=1268218652"