Операционные системы. Учебное пособие. Марапулец Ю.В. - 157 стр.

UptoLike

Составители: 

также членом группы USERS. Допустим, в списке ACL содержится запись, запрещаю-
щая для группы USERS доступ к файлу. Другая запись разрешает доступ к файлу для
группы ТЕСН. В этой ситуации я не должен иметь возможности прочитать файл, так как
я принадлежу к группе, для которой доступ к файлу явно запрещен. Если вы не размес-
тите все АСЕ, запрещающие доступ, в самом начале списка ACL, в некоторых, версиях
NT такая комбинация взаимоисключающих АСЕ будет обработана некорректно.
Когда ACL сформирован, его необходимо установить в рамках структуры SECU-
RITY_DESCRIPTOR. Для этого служит вызов SetSecurityDescriptorDacl. Затем указатели
на дескриптор безопасности, содержащий ACL, необходимо разместить в структуре SE-
CURITY_ATTRIBUTES, которую, в свою очередь, можно передать любой API функции,
элементом которой является данная структура.
§ 7.3. API-функции для обеспечения безопасности Windows
В таблицах 7.4-7.15 приведено описание API-функций безопасности. В таблицах
функции разделены на следующие категории [4]:
Таблица 7.4 - функции для операций с маркерами доступа;
Таблица 7.5 - функции, используемые в процессе передачи полномочий клиента;
Таблица 7.6 - функции для операций с дескрипторами безопасности;
Таблица 7.7 - функции для операций с идентификаторами безопасности;
Таблица 7.8 - функции для операций с записями в списках управления доступом;
Таблица 7.9 - функции для операций со списками управления доступом;
Таблица 7.10 - функции для проверки прав доступа;
Таблица 7.11 - функции для операций с привилегиями;
Таблица 7.12 - функции для операций с окнами-станциями;
Таблица 7.13 - функции для операций с Local Service Authority;
Таблица 7.14 - функции для получения информации, связанной с безопасностью;
Таблица 7.15 - функции аудита.
Таблица 7.4
Функция Описание
AdjustTokenGroups Изменяет группу, которой принадлежит маркер доступа
AdjustTokenPrivileg-
es
Изменяет привилегии для маркера доступа
DuplicateToken Создает новый маркер доступа, идентичный заданному
DuplicateTokenEx Аналогична предыдущей, но может создавать первичный маркер
доступа, используемый в функции GreateProcessAsUser
GetTokenInformation Возвращает данные о пользователе, группе, привилегиях, а также
другую информацию, содержащуюся в маркере доступа
SetThreadToken Присваивает заданному потоку маркер передачи полномочий
SetTokenInformation Изменяет данные о пользователе, группе, привилегиях, а также
другую информацию, содержащуюся в маркере доступа
OpenProcessToken Читает маркер доступа для заданного процесса
OpenThreadToken Читает маркер доступа для заданного потока
Таблица 7.5
Функция Описание
CreateProcessAsUser Идентична функции CreateProcess, но создает процесс с
заданным маркером доступа
DdeImpersonateClient Позволяет DDE-серверу принять полномочия DDE-
159
также членом группы USERS. Допустим, в списке ACL содержится запись, запрещаю-
щая для группы USERS доступ к файлу. Другая запись разрешает доступ к файлу для
группы ТЕСН. В этой ситуации я не должен иметь возможности прочитать файл, так как
я принадлежу к группе, для которой доступ к файлу явно запрещен. Если вы не размес-
тите все АСЕ, запрещающие доступ, в самом начале списка ACL, в некоторых, версиях
NT такая комбинация взаимоисключающих АСЕ будет обработана некорректно.
     Когда ACL сформирован, его необходимо установить в рамках структуры SECU-
RITY_DESCRIPTOR. Для этого служит вызов SetSecurityDescriptorDacl. Затем указатели
на дескриптор безопасности, содержащий ACL, необходимо разместить в структуре SE-
CURITY_ATTRIBUTES, которую, в свою очередь, можно передать любой API функции,
элементом которой является данная структура.

     § 7.3. API-функции для обеспечения безопасности Windows

    В таблицах 7.4-7.15 приведено описание API-функций безопасности. В таблицах
функции разделены на следующие категории [4]:
• Таблица 7.4 - функции для операций с маркерами доступа;
• Таблица 7.5 - функции, используемые в процессе передачи полномочий клиента;
• Таблица 7.6 - функции для операций с дескрипторами безопасности;
• Таблица 7.7 - функции для операций с идентификаторами безопасности;
• Таблица 7.8 - функции для операций с записями в списках управления доступом;
• Таблица 7.9 - функции для операций со списками управления доступом;
• Таблица 7.10 - функции для проверки прав доступа;
• Таблица 7.11 - функции для операций с привилегиями;
• Таблица 7.12 - функции для операций с окнами-станциями;
• Таблица 7.13 - функции для операций с Local Service Authority;
• Таблица 7.14 - функции для получения информации, связанной с безопасностью;
• Таблица 7.15 - функции аудита.

                                                                         Таблица 7.4
      Функция                                    Описание
AdjustTokenGroups      Изменяет группу, которой принадлежит маркер доступа
AdjustTokenPrivileg-   Изменяет привилегии для маркера доступа
es
DuplicateToken         Создает новый маркер доступа, идентичный заданному
DuplicateTokenEx       Аналогична предыдущей, но может создавать первичный маркер
                       доступа, используемый в функции GreateProcessAsUser
GetTokenInformation    Возвращает данные о пользователе, группе, привилегиях, а также
                       другую информацию, содержащуюся в маркере доступа
SetThreadToken         Присваивает заданному потоку маркер передачи полномочий
SetTokenInformation    Изменяет данные о пользователе, группе, привилегиях, а также
                       другую информацию, содержащуюся в маркере доступа
OpenProcessToken       Читает маркер доступа для заданного процесса
OpenThreadToken        Читает маркер доступа для заданного потока

                                                                         Таблица 7.5
         Функция                                   Описание
CreateProcessAsUser          Идентична функции CreateProcess, но создает процесс с
                             заданным маркером доступа
DdeImpersonateClient         Позволяет DDE-серверу принять полномочия DDE-

                                         159