Sysadminium
База знаний системного администратора
Дескрипторы безопасности и управление доступом
Из этой статьи вы узнаете про ещё один компонент безопасности операционной системы Windows, а именно про дескрипторы безопасности.
Дескрипторы безопасности
Дескриптор безопасности — это информация, связанная с объектом, которая определяет, кто и какие действия с объектом может выполнять.
В дескриптор безопасности входят:
ACL состоит из субъектов доступа (кто может обращаться к объекту) и набора прав для каждого субъекта (писать, читать, исполнять). DACL — указывает какой доступ имеет определенный субъект к этому объекту. SACL — указывает какие события нужно заносить в журнал аудита безопасности.
Практика
Давайте посмотрим дескриптор безопасности какого-нибудь процесса. Заметьте, дескриптор безопасности процесса определяет кто может что-то сделать с этим процессом, а не то что может сделать сам процесс. Посмотреть на дескриптор безопасности можно из Process Explorer. Я выбираю любой процесс svhost (процесс какой-то службы), открываю его свойства. Затем перехожу на вкладку “Securuty” и внизу нажимаю кнопку “Permision“:
В примере выше к этому процессу имеют доступ только локальные администраторы. При этом читать и писать в процесс они не могут, но имеют “Особые разрешения“.
Если погрузиться дальше, нажимаем кнопку “Дополнительно“, далее два раза щелкаем по группе “Администраторы“, и в открывшемся окне нажимаем ссылку “Отображение дополнительных разрешений“. Вы увидите такую ACE запись (записи в ACL называются ACE):
То есть Администраторы могут запрашивать информацию о процессе.
Вот еще некоторые сведения о DACL:
Если открыть свойства файла или папки, перейти на вкладку “Безопасность“, а затем нажать кнопку “Дополнительно“. И перейти на вкладку “Действующие права доступа“, то можно выбрать пользователя и проверить его права доступа к этому файлу или каталогу:
Динамическое управление доступом (DAC)
В дополнение к перечисленному выше стоит упомянуть ещё одну технологию – динамическое управление доступом.
Механизм избирательного управления доступом, описанный выше был еще с первой версии Windows NT. Но начиная с Windows 8 и Server 2012 появилось динамическое управление доступом (DAC). Оно рассчитано на домен.
Суть в том что в маркер доступа стало возможно добавлять различные атрибуты учетных записей домена. Например город в котором работает сотрудник.
Дополнительно к этому на файлы и каталоги стало возможно навешивать различные теги.
Благодаря расширению маркера доступа и тегам, DAC позволяет настраивать гибкие правила. Например, можно настроить такое поведение, чтобы сотрудник из Москвы мог прочитать файлы только с определённым тегом.
DAC не заменяет DACL, а лишь дополняет его. Так что если DACL запрещало доступ к файлу, то с помощью DAC открыть доступ мы не сможем. Получится лишь ограничить доступ ещё сильнее, оставив доступ только у тех, кому он действительно нужен.
Вот ещё примеры действий, которые можно совершить используя DAC:
Конфигурация DAC определяется в Active Directory и распространяется через групповые политики. Для этого был расширен протокол Kerberos. Подробнее про DAC может посмотреть в этом видео.
Субъекты безопасности
Область применения
Эта справочная тема для ИТ-специалистов описывает принципы безопасности в отношении Windows учетных записей и групп безопасности, а также технологий безопасности, связанных с принципами безопасности.
Что такое принципы безопасности?
Принципы безопасности — это любая сущность, которая может быть аутентификацией операционной системы, например учетной записью пользователя, учетной записью компьютера, потоком или процессом, который выполняется в контексте безопасности учетной записи пользователя или компьютера, или группами безопасности для этих учетных записей. Принципы безопасности уже давно являются основой для управления доступом к защищаемым ресурсам на Windows компьютерах. Каждый руководитель безопасности представлен в операционной системе уникальным идентификатором безопасности (SID).
Следующий контент применяется к версиям Windows, указанным в списке Applies To в начале этой темы.
Работа принципов безопасности
Основными объектами безопасности, созданными в домене Active Directory, являются объекты Active Directory, которые можно использовать для управления доступом к ресурсам домена. Каждому принципу безопасности назначен уникальный идентификатор, который он сохраняет на протяжении всего срока службы. Локальные учетные записи пользователей и группы безопасности создаются на локальном компьютере, и их можно использовать для управления доступом к ресурсам на этом компьютере. Локальные учетные записи пользователей и группы безопасности управляются диспетчером учетных записей безопасности (SAM) на локальном компьютере.
Компоненты управления авторизацией и доступом
Следующая схема иллюстрирует процесс Windows и управления доступом. На этой схеме субъект (процесс, инициированный пользователем) пытается получить доступ к объекту, например к общей папке. Сведения в маркере доступа пользователя сравниваются с записями управления доступом (ACEs) в дескрипторе безопасности объекта, и принимается решение о доступе. В маркере доступа пользователя и в acEs в дескрипторе безопасности объекта используются СИД основных объектов безопасности.
Процесс управления авторизацией и доступом
Принципы безопасности тесно связаны со следующими компонентами и технологиями:
Идентификаторы безопасности
Идентификаторы безопасности (SID) обеспечивают фундаментальный строительный блок Windows безопасности. Они работают с определенными компонентами технологий управления авторизацией и доступом в инфраструктуре безопасности операционных систем Windows Server. Это помогает защитить доступ к сетевым ресурсам и обеспечивает более безопасную вычислительную среду.
SID — это значение переменной длины, которое используется для уникальной идентификации доверника безопасности, который представляет любую сущность, которая может быть аутентификацией системы. Эти сущности включают учетную запись пользователя, учетную запись компьютера или поток или процесс, который выполняется в контексте безопасности учетной записи пользователя или компьютера. Каждому принципу безопасности автоматически назначен SID при его создания. SID хранится в базе данных безопасности. Когда SID используется в качестве уникального идентификатора для пользователя или группы, его нельзя использовать для идентификации другого пользователя или группы.
При каждом входе пользователя система создает маркер доступа для этого пользователя. Маркер доступа содержит ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС пользователя, права пользователя и СИД для групп, к которой принадлежит пользователь. Этот маркер обеспечивает контекст безопасности для любых действий, выполняемых пользователем на этом компьютере.
Помимо уникально созданных ИИИ, определенных для домена, которые назначены определенным пользователям и группам, существуют хорошо известные СИД, которые определяют общие группы и общих пользователей. Например, СИД «Все» и «Мир» определяют группы, включив в себя всех пользователей. Известные SID-системы имеют значения, которые остаются неизменными во всех операционных системах.
Маркеры доступа
Маркер доступа — это защищенный объект, содержащий сведения о удостоверениях и правах пользователей, связанных с учетной записью пользователя.
Когда пользователь во время интерактивного входа или пытается сделать сетевое подключение к компьютеру с Windows, процесс входа подает проверку подлинности учетных данных пользователя. Если проверка подлинности будет успешной, процесс возвращает sid для пользователя и список SID для групп безопасности пользователя. Локализованная служба безопасности (LSA) на компьютере использует эти сведения для создания маркера доступа (в данном случае основного маркера доступа). Это включает ВИИ, возвращаемые процессом регистрации, и список прав пользователей, которые назначены локальной политикой безопасности пользователю и группам безопасности пользователя.
После создания маркера первичного доступа к каждому потоку и процессу, который выполняется от имени пользователя, прикрепляются копии маркера доступа. Всякий раз, когда поток или процесс взаимодействует с защищаемым объектом или пытается выполнить системную задачу, требуемую правами пользователя, операционная система проверяет маркер доступа, связанный с потоком, чтобы определить уровень авторизации.
Существует два типа маркеров доступа, первичные и вымывка. Каждый процесс имеет основной маркер, описывая контекст безопасности учетной записи пользователя, связанной с процессом. Основной маркер доступа обычно назначен процессу представления сведений о безопасности по умолчанию для этого процесса. Маркеры обезличения, с другой стороны, обычно используются для клиентских и серверных сценариев. Маркеры impersonation позволяют потоку работать в контексте безопасности, который отличается от контекста безопасности процесса, владеющем потоком.
Дескрипторы безопасности и списки управления доступом
Дескриптор безопасности — это структура данных, связанная с каждым защищаемым объектом. Все объекты Active Directory и все объекты с безопасностью на локальном компьютере или в сети имеют дескрипторы безопасности, которые помогают контролировать доступ к объектам. Дескрипторы безопасности включают сведения о том, кто владеет объектом, кто может получить к нему доступ и каким образом и какие типы доступа проверяются. Дескрипторы безопасности содержат список управления доступом (ACL) объекта, который включает все разрешения безопасности, применимые к этому объекту. Дескриптор безопасности объекта может содержать два типа acLs:
Дискреционный список управления доступом (DACL), который определяет пользователей и групп, которым разрешен или отказано в доступе.
Список управления доступом к системе (SACL), который контролирует проверку доступа
Эту модель управления доступом можно использовать для индивидуальной защиты объектов и атрибутов, таких как файлы и папки, объекты Active Directory, ключи реестра, принтеры, устройства, порты, службы, процессы и потоки. Благодаря этому индивидуальному контролю можно настроить безопасность объектов для удовлетворения потребностей организации, делегировать полномочия объектам или атрибутам, а также создавать настраиваемые объекты или атрибуты, которые требуют определения уникальных защитных объектов.
Разрешения
Разрешения позволяют владельцу каждого защищаемого объекта, например файла, объекта Active Directory или ключа реестра, контролировать, кто может выполнять операцию или набор операций на объекте или свойстве объекта. Разрешения выражаются в архитектуре безопасности в качестве записей управления доступом (ACEs). Поскольку доступ к объекту по усмотрению владельца объекта, тип управления доступом, используемый в Windows, называется дискреционным управлением доступом.
Разрешения отличаются от прав пользователей тем, что разрешения присоединены к объектам, а права пользователей применяются к учетным записям пользователей. Администраторы могут назначать права пользователей группам или пользователям. Эти права разрешают пользователям выполнять определенные действия, например вход в систему в интерактивном режиме или архивировать файлы и каталоги.
На компьютерах права пользователей позволяют администраторам контролировать, кто обладает полномочиями для выполнения операций, затрагивающих весь компьютер, а не определенный объект. Администраторы назначают права пользователей отдельным пользователям или группам в рамках параметров безопасности компьютера. Хотя права пользователей могут управляться централизованно с помощью групповой политики, они применяются локально. Пользователи могут (и обычно имеют) различные права пользователей на разных компьютерах.
Сведения о том, какие права пользователей доступны и как их реализовать, см. в статью Назначение прав пользователей.
Контекст безопасности при проверке подлинности
Учетная запись пользователя позволяет пользователю войти в компьютеры, сети и домены с удостоверением, которое может быть аутентификацией компьютера, сети или домена.
В Windows, любой пользователь, служба, группа или компьютер, которые могут инициировать действия, является основным источником безопасности. У глав служб безопасности есть учетные записи, которые могут быть локальными для компьютера или на основе домена. Например, клиентские компьютеры Windows присоединившись к домену, могут участвовать в сетевом домене, общаясь с контроллером домена, даже если пользователь не вошел.
Чтобы инициировать связь, компьютер должен иметь активную учетную запись в домене. Перед приемом сообщений с компьютера местный орган безопасности на контроллере домена удостоверяет подлинность компьютера, а затем определяет контекст безопасности компьютера так же, как это было бы для директора безопасности пользователя.
Этот контекст безопасности определяет удостоверение и возможности пользователя или службы на определенном компьютере или пользователя, службы, группы или компьютера в сети. Например, он определяет ресурсы (например, файл или принтер), к ним можно получить доступ, а также действия (например, чтение, записи или изменение), которые могут выполняться пользователем, службой или компьютером на этом ресурсе.
Контекст безопасности пользователя или компьютера может отличаться от одного компьютера к другому, например при проверке подлинности пользователя на сервер или на рабочей станции, кроме основной рабочей станции пользователя. Он также может отличаться от одного сеанса к другому, например, когда администратор изменяет права и разрешения пользователя. Кроме того, контекст безопасности обычно отличается, когда пользователь или компьютер работают самостоятельно, в смешанном сетевом домене или в составе домена Active Directory.
Учетные записи и группы безопасности
Учетные записи и группы безопасности, созданные в домене Active Directory, хранятся в базе данных Active Directory и управляются с помощью инструментов Active Directory. Эти принципы безопасности являются объектами каталогов и могут использоваться для управления доступом к ресурсам домена.
Локальные учетные записи пользователей и группы безопасности создаются на локальном компьютере, и их можно использовать для управления доступом к ресурсам на этом компьютере. Локальные учетные записи пользователей и группы безопасности хранятся и управляются диспетчером учетных записей безопасности (SAM) на локальном компьютере.
Учетные записи пользователей
Учетная запись пользователя однозначно идентифицирует пользователя, используювшего компьютерную систему. Учетная запись сигнализирует системе о необходимости применения соответствующей авторизации, чтобы разрешить или запретить пользователю доступ к ресурсам. Учетные записи пользователей можно создавать в Active Directory и на локальных компьютерах, а администраторы используют их для:
Представлять, идентифицировать и аутентификацию удостоверения пользователя. Учетная запись пользователя позволяет пользователю войти в компьютеры, сети и домены с уникальным идентификатором, который может быть аутентификацией компьютера, сети или домена.
Авторизуйте (предоставляете или отказывайте) доступ к ресурсам. После проверки подлинности пользователь получает авторизованный доступ к ресурсам на основе разрешений, которые назначены этому пользователю для ресурса.
Аудит действий, которые осуществляются в учетной записи пользователя.
Windows и операционные системы Windows Server имеют встроенные учетные записи пользователей, или вы можете создавать учетные записи пользователей для удовлетворения требований организации.
Группы безопасности
Группа безопасности — это коллекция учетных записей пользователей, учетных записей компьютеров и других групп учетных записей, которые можно управлять как единым подразделением с точки зрения безопасности. В Windows операционных системах существует несколько встроенных групп безопасности, которые предварительно сконфигурировали соответствующие права и разрешения для выполнения определенных задач. Кроме того, можно (и, как правило, будет) создавать группу безопасности для каждого уникального сочетания требований безопасности, которые применяются к нескольким пользователям в вашей организации.
Группы могут быть на основе Active Directory или локальными для определенного компьютера:
Группы безопасности Active Directory используются для управления правами и разрешениями на доменные ресурсы.
Локальные группы существуют в базе данных SAM на локальных компьютерах (на Windows компьютерах), кроме контроллеров домена. Вы используете локальные группы для управления правами и разрешениями только для ресурсов на локальном компьютере.
С помощью групп безопасности для управления управлением доступом можно:
Упрощение администрирования. Вы можете назначить общий набор прав, общий набор разрешений или обеих учетных записей одновременно, а не назначать их каждой учетной записи по отдельности. Кроме того, когда пользователи передают задания или покидают организацию, разрешения не привязаны к учетным записям пользователей, что упрощает перенанаменование или удаление разрешений.
Реализация модели управления доступом на основе ролей. Эту модель можно использовать для предоставления разрешений с помощью групп с различными сферами для соответствующих целей. Области, доступные в Windows, включают локальные, глобальные, локальные домены и универсальные.
Свести к минимуму размер списков управления доступом (ACLs) и проверку безопасности скорости. Группа безопасности имеет собственный SID; таким образом, групповой SID можно использовать для указания разрешений для ресурса. В среде с более чем несколькими тысячами пользователей, если СИИ отдельных учетных записей пользователей используются для указания доступа к ресурсу, ACL этого ресурса может стать неуправляемо большим, а время, необходимое системе для проверки разрешений на ресурс, может стать неприемлемым.
Сведения о группах безопасности домена, определенных в Active Directory, см. в описании и параметрах групп безопасности Active Directory.
Сведения об описаниях и параметрах группы Special Identities см. в специальной информации.
Безопасность в Windows
Дескриптор защиты
Объекты, к которым могут получать доступ процессы, имеют специальный атрибут – дескриптор защиты (security descriptor), содержащий информацию обо всех пользователях, которым разрешен или запрещен доступ к объекту.
Структура данных SECURITY_DESCRIPTOR, представляющая дескриптор защиты, описана в файле public\sdk\inc\ntseapi.h (строка 1173) и включает следующие основные поля:
Списки управления доступом (ACL, Access-Control List) в системе представлены заголовком (ACL Header) и последовательностью элементов списка (ACE, Access-Control Entry) (рис.13.3).
Заголовок списка описывается структурой ACL (файл public\sdk\inc\ntseapi.h, строка 658), в которой хранятся количество элементов списка ACL (поле AceCount) и общий размер списка без заголовка (поле AclSize).
Элементы ACE имеют заголовок (ACE Header), описываемый структурой ACE_HEADER (тот же файл, строка 687), маску доступа и идентификатор безопасности SID. В заголовке указывается тип ACE (поле AceType); множество значений этого поля приведены в строках 699–728. Основными являются ACCESS_ALLOWED_ACE_TYPE (доступ разрешен) и ACCESS_DENIED_ACE_TYPE (доступ запрещен).
Маска доступа (Access Mask) описывает разнообразные виды доступа к объектам (строки 72–166). В маске выделяются стандартные права доступа (Standard Access Rights), применимые к большинству объектов, и специфичные для объектов права доступа (Object-Specific Access Rights).
Стандартными являются следующие права доступа:
Списки управления доступом бывают двух видов: DACL и SACL. Список управления избирательным доступом (DACL, Discretionary Access-Control List) определяет пользователей, которые могут получать доступ к объекту, а также указывает тип доступа. В системном списке управления доступом (SACL, System Access-control List) перечислены пользователи и операции, которые должны учитываться в журнале аудита безопасности (security audit log).
Схема получения доступа процесса к объекту показана на рис.13.4.
За проверку возможности доступа процесса к объекту отвечает функция SeAccessCheck (файл base\ntos\se\accessck.c, строка 3391). На вход функции поступают следующие параметры:
Функция SeAccessCheck осуществляет следующие действия:
Права и привилегии
Кроме операций с объектами система должна контролировать множество других действий пользователей, например, вход в систему, включение/выключение компьютера, изменение системного времени, загрузка драйверов и т.д.
Для управления такими действиями, не связанными с доступом к конкретным объектам, система использует два механизма – права учетных записей и привилегии.
Право учетной записи ( account right ) – разрешение или запрет на определенный вид входа в систему.
Различают следующие виды входа:
Проверка прав учетных записей осуществляется не в ядре, а в процессах Winlogon.exe и Lsass.exe.
Привилегия (privilege) – разрешение или запрет определенных действий в системе, например, включение/выключение компьютера или загрузка драйверов. Привилегии хранятся в поле Privileges структуры маркера доступа TOKEN (см. выше).
Следует отметить, что в оснастке не различаются права учетных записей и привилегии, но это легко можно сделать самостоятельно: право учетной записи всегда содержит слово «вход» (например, «Вход в качестве пакетного задания»).
Резюме
Следующая лекция посвящена вопросам взаимодействия Windows с внешними устройствами.
Дескрипторы безопасности в Windows.
Дескрипторы безопасности используются в Windows для защиты и аудита ресурсов. Дескриптор безопасности содержит владельца, основную группу, дискреционный список контроля доступа и системный список контроля доступа.
Владелец и основная группа.
Поля владельца и основной группы содержат идентификаторы безопасности. Владелец — это принципал безопасности, владеющий объектом. Владелец ресурса располагает полным доступом к объекту, включая возможность добавления и удаления разрешений доступа в дескрипторе безопасности.
Основная группа подразумевает членство в группе. При входе пользователя операционная система вставляет SID этой группы в маркер пользователя. Атрибут memberOf не перечисляет основную группу, а лишь включает явно назначенное членство в группах.
Дискреционные и системные списки контроля доступа.
Записи управления доступом.
Маркеры доступа.
Проверка подлинности.
В случае успешной проверки подлинности пользователю предоставляется доступ в сеть. Если пользователь вошел в домен и все необходимые ему ресурсы находятся в одном лесе, пользователю только один раз будет предложено пройти проверку подлинности. Пока пользователь остается в системе, все разрешения, получаемые им в сети, основаны на начальной проверке подлинности. Хотя учетная запись пользователя проходит проверку подлинности каждый раз при получении пользователем доступа к ресурсам на сервере, где пользователь не проходил проверку подлинности, эта аутентификация прозрачна для пользователя.









