Часть 4. Наилучшие практические приёмы и устранение неисправностей

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

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

Самые последние главы этой части будут сосредоточены на тех этапах, которые нам требуются для реализации сопровождения жизнеспособного окружения Active Directory.Они содержат мониторинг жизнеспособности Active Directory, аудит, а также поиск и устранение неисправностей (при разрешении наиболее общих проблем).

Данная часть содержит следующие главы:

{Прим. пер.: Желающим сразу переходить к практической работе с AD рекомендуем свой перевод 4 издания Книга рецептов автоматизации Windows Server при помощи PowerShell Томас Ли, Packt Publishing, июль 2021}

Глава 15. Наилучшие практические приёмы Active Directory

Содержание

Глава 15. Наилучшие практические приёмы Active Directory
Аутентификация AD
Протокол Kerberos
Аутентификация в среде AD
Делегирование полномочий
Предварительно заданные роли администратора AD
Применение объектов ACL
Использование и делегирование методов управления в AD
Реализация политик пароля с тонкой грануляцией
Ограничения
RSoP
Настройка
Атаки передачи хэш- значений
Группа безопасности Защищённых пользователей
Ограниченный режим администратора для RDP
Политики аутентификации и Бункер политик аутентификации
Политики аутентификации
Бункеры политик аутентификации
Создание политик аутентификации
Создание Бункеров политик аутентификации
Администрирование JIT и AD JEA
Администрирование JIT
JEA
PIM Azure AD
Лицензионные требования
Руководства по реализации
Реализация
AIP
Классификация данных
Azure RMS
Сопоставление Azure RMS и AD RMS
Как работает Azure RMS?
Сканер AIP
Реализация AIP
Выводы

Безопасность AD является очень обширной темой. В 2000- 2010 администраторы всего лишь имели дело с ищущими славы детскими сценариями, но сегодня вещи являются более сложными. Атаки выполняются на более дорогостоящие цели,такие как личные сведения, государственные секреты и интеллектуальную собственность. Больше даже не идёт речь о получении полного контроля над вычислительной инфраструктурой; даже получения доступа к определённым фрагментам данных достаточно для того чтобы нанести существенный урон. В последние дни самых последних президентских выборов президента в США, определённые электронные почтовые сообщения были преданы публичной огласке и этого оказалось достаточным чтобы изменить множество голосов. Истории вокруг WikiLeaks также громадный пример этого. К тому же, в вычислительной инфраструктуре мы больше не способны указывать хороших или плохих людей. Большинство имеющихся в последние дни брешей в безопасности вовлечены в некий вид поддержки изнутри. Именно поэтому люди начинают обсуждать безопасность с нулевым доверием. Больше мы не способны говорить о том, что нечто внутри периметра заслуживает доверия, а всё что вне имеет степень риска. В некой инфраструктуре AD (Active Directory) в целом отвечает за управление идентификацией. Такая защита идентификации критически важна когда мы рассматриваем безопасность. Тем не менее, имеется множество прочих моментов, которые нам также требуется обезопасить для защиты идентификации, к примеру, сетевую среду, хранилища и данные. Если вам требуется надлежащим образом сопровождать некую машину, вам не стоит уделять внимание лишь её двигателю. Он выступает сердцем каждой машины, но если вам на самом деле требуется хорошая машина, вам в точности так же следует заботиться, а также инвестировать, и во все прочие составляющие своей машины.

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

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

  • Как работает аутентификация AD?

  • Делегирование полномочий

  • Группа безопасности Защищённых AD пользователей

  • Ограниченный режим RDP

  • Бункеры политик аутентификации и политик авторизации

  • Администрирование JIT (Just-in-time, в точно установленное время) и JEA (Just Enough Administration, исключительно достаточное администрирование)

  • PIM (Privileged Identity Management, управление привилегированной идентификацией) Azure AD

  • AIP (Azure Information Protection, защита сведений Azure)

Аутентификация AD

В качестве протокола аутентификации, AD применяет Kerberos версии 5 для предоставления аутентификации между самим сервером и его клиентом. Kerberos v5 стал устанавливаемым по умолчанию протоколом аутентификации для Windows Server начиная с Windows Server 2003 и далее. Это не частный закрытый протокол; он является открытым стандартом. Тем самым Windows способен работать с любыми приложениями и службами, которые поддерживают тот же самый стандарт. Прежде чем мы рассмотрим улучшения безопасности AD DS (Active Directory Domain Service), для нас важно изучить как же работает аутентификация AD.

Протокол Kerberos

Рассматриваемый нами протокол Kerberos выстроен для защиты аутентификации между самим сервером и его клиентом в некой открытой сетевой среде. Самая основная концепция стоящая за аутентификацией состоит в том, что две стороны вначале согласовывают некий пароль (секрет), а затем используют его вдвоём для идентификации и удостоверения своей подлинности:

 

Рисунок 15-1



В нашем предыдущем примере, Dave и server A имеют обычные соединения. Они часто обмениваются конфиденциальными данными. Чтобы защищать такие соединения, они договариваются применять некий общий секретный код (1234) для проверки своей идентификации прежде чем обмениваться данными. Когда Dave делает начальное соединение, он передаёт свой секретный код server A и сообщает: Hey! I'm Dave Затем server A проверяет значение этого секретного кода чтобы удостовериться в его истинности. Если это так, он идентифицирует его как Dave и разрешает последующее подключение:

 

Рисунок 15-2



Взаимодействие между Dave и server A происходит в некой открытой сетевой среде, что означает, что также имеются прочие системы и пользователи. Same является ещё одним пользователем в той же самой инфраструктуре. Он знает о взаимодействии, которое происходит между Dave и server A. Те сведения, которыми обмениваются эти две стороны, имеют высокую ценность, а потому Same пытается получить их в свои руки. Он начинает выполнять сниффинг в той же самой сетевой среде чтобы отыскать значение используемого ими секретного кода. После того как он его обнаружит, он сможет взаимодействовать с server A и претендовать на то чтобы выступать от имени Dave, предоставляя это значение секретного кода, 1234. Однако server A не видит никакой разницы между запросами от Dave и Same, так как оба предоставляют верный секретный код.

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

  • Некого клиента

  • Какой- то сервер

  • Доверительную авторизацию для выпуска секретных кодов

Такая доверительная авторизация имеет название KDC (Key Distribution Center, Центра распространения ключей). Прежде чем подробно рассматривать Kerberos, давайте вначале рассмотрим как работает типичный обмен ключами:

 

Рисунок 15-3



Если повторно посетить наш сценарий, у нас теперь имеется на своём месте KDC. Вместо того чтобы взаимодействовать непосредственно с Server A, Dave следует в KDC и сообщает о необходимости доступа к Server A. Для Dave необходим некий симметричный ключ чтобы начать взаимодействие с Server A. Этот ключ должен использоваться только Dave и Server A. KDC принимает соответствующий запрос, вырабатывает некий ключ (Key D+S), а затем выпускает его для Dave и Server A. При первичном рассмотрении это кажется достаточно простым, однако с точки зрения Server A имеется ряд проблем.

Чтобы получить некое подключение от Dave, server A нуждается в наличии некой относящейся к Key D+S записи. Самый простой способ для этого состоит в хранении такого ключа в server A. Мы рассматриваем хранение лишь одного соединения с server A, но что если имеются сотни подключений, server A должен будет хранить все вовлечённые в это ключи. Что не выглядит практичным. Как и все прочие ресурсы, если такой сервер оказывается скомпрометированным, злоумышленники будут иметь доступ ко всем имеющимся ключам. Итак, есть ли лучший вариант для этого?

В некой среде AD, сам KDC устанавливается как часть имеющегося контроллера домена. Этот KDC отвечает за две основные службы: одной является AS (Authentication Service, Служба Аутентификации), а другой является TGS (Ticket-Granting Service, Служба предоставления квитанции).

В нашем предыдущем примере, когда Dave регистрируется в существующей системе, ему требуется доказать KDC что он в точности та персона, для кого сделана эта заявка. После того как он зарегистрирован, он отправляет своё имя пользователя в установленный KDC совместно с неким долговременным ключом (long-time key). Значение долговременного ключа вырабатывается на основе пароля Dave. Имеющийся в ПК Dave клиент Kerberos принимает его пароль и вырабатывает соответствующий криптографический ключ. Существующий KDC также сопровождает некую копию этого ключа в своей базе данных. После того, как этот KDC получает соответствующий запрос, он сверяет его имя пользователя и значение долговременного ключа со своими записями. Если всё это хорошо, данный KDC отвечает Dave неким ключом сеанса ключом (session key). Он именуется TGT (ticket-granting ticket, мандатом на выдачу квитанций).

Такой TGT содержит два момента:

  • Некую копию ключа сеанса, который сам KDC использует для взаимодействия с Dave. Она зашифрована при помощи значения долговременного ключа KDC.

  • Некую копию ключа сеанса, который может применять Dave для взаимодействия с самим KDC. Она шифруется долговременным ключём Dave, а потому лишь Dave способен её расшифровать.

Когда Dave получает этот ключ, он может применить свой долговременный ключ чтобы расшифровать значение ключа сеанса. После этого всё последующее взаимодействие с его KDC будет основываться на этом ключе сеанса. Такой ключ сеанса временный и обладает неким значением TTL (time-to-live, времени жизни).

Это значение ключа сеанса запоминается в энергозависимой оперативной памяти компьютера Dave. Теперь настало время запросить доступ к server A. Dave обязан снова вступить в контакт со своим KDC, однако в этот раз он применяет значение ключа сеанса, предоставленное ему этим KDC. Такой запрос содержит значение TGT и значение временного штампа, зашифрованные значением ключа сеанса и значением идентификатора службы (той службы, которая запущена на server A). После того как их KDC получает его, он использует свой долговременный ключ для дешифрации значения TGT и достаёт значение ключа сеанса. Дальше, применяя этот ключ сеанса, он расшифровывает значение временного штампа. Если полученное временное различие менее 5 минут, тогда он подтверждает что ключ получен от Dave.

Когда KDC подтвердил его в качестве законного запроса, он создаёт другую квитанцию, и уже она имеет название квитанции службы (service ticket). Она содержит два ключа: один для Dave, и один для server A. Оба ключа содержать значение запрашивавшей стороны (Dave), значение получателя, значение временного штампа, величину значения TTL и некий новый ключ сеанса, (который будет совместно применяться Dave и server A). Один из этих ключей шифруется при помощи долговременного ключа Dave, а другой шифруется с применением долговременного ключа server A. В самом конце, оба шифруются совместно посредством ключа сеанса между их KDC и Dave. Наконец, эта квитанция готова для отправки Dave. Dave дешифрует значение квитанции при помощи своего ключа сеанса. Он также находит свой ключ и дешифрует его при помощи своего долговременного ключа.

Данный процесс раскрывает значение нового ключа сеанса, который требуется разделять между Dave и server A. Затем Dave создаёт некий новый запрос, который содержит ключ server A, полученный из данной квитанции сервера, а также значение временного штампа, которое было зашифровано с применением этого нового ключа сеанса, созданного их KDC. После того как Dave отправит значение ключа server A, он расшифрует этот ключ при помощи своего долговременного ключа и выберет значение ключа сеанса. Применяя значение ключа сеанса, он способен расшифровать значение временного штампа для того чтобы удостовериться в верности аутентификации самого запроса. Как мы видим, в данном процессе отсутствует ответственность server A за отслеживание значения ключа, применяемого самим клиентом, а также не входит в ответственность этого клиента отслеживать уместность ключей.

Аутентификация в среде AD

Давайте немного забежим вперёд и рассмотрим как налаживается аутентификация в некой среде AD:

 

Рисунок 15-4



Приводимый ниже перечень суммирует шаги, вовлечённые в такой процесс аутентификации:

  1. Dave отправляет своё имя пользователя и его долговременный ключ в надлежащий KDC (Контроллер Домена).

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

  3. KDC откликается Dave со своим TGT.

  4. Dave дешифрует свой ключ при помощи своего долговременного ключа и значения изъятого ключа сеанса. Его система создаёт некий новый запрос, который содержит полученный TGT и значения временного штампа, шифруемые значением ключа сеанса и идентификатором службы. После того как этот запрос выработан, он отправляется в свой KDC.

  5. Этот KDC применяет свой долговременный ключ для дешифрации значения TGT и изъятия значения ключа сеанса. После этого данный ключ сеанса может применяться для дешифрации значения временного штампа. Далее он создаёт некую квитанцию сеанса. Эта квитанция содержит два ключа: один для server A и один для Dave. Ключ Dave шифруется при помощи его долговременного ключа, а ключ server A шифруется своим долговременным ключом. В самом конце оба шифруются при помощи значения ключа сеанса, который используется самим KDC и Dave.

  6. Находящийся в работе KDC отправляет значение квитанции сеанса Dave.

  7. Dave дешифрует полученную квитанцию, применяя значение ключа сеанса и делает выемку своего ключа. Далее он дешифрует его чтобы получить некий новый ключ, который может применяться для установления соединения с server A. В самом конце его система создаёт другой запрос, содержащий ключ server A, (который был создан ранее) и значения временного штампа, шифруемые значением того ключа сеанса, который Dave расшифровал ранее на этом этапе. После того как всё готово, его система отправляет запрос server A.

  8. server A продвигается далее и дешифрует ключ Dave при помощи своего долговременного ключа и значения изъятого ключа сеанса. Далее, с его помощью, server A способен дешифровать значение временного штампа чтобы проверить аутентичность данного запроса. Если всё окрашено зелёным, соединение между Dave и server A допускается.

Существует ещё ряд моментов, которые реализовать для завершения данного процесса:

  • Наличие связи: Сам сервер, клиент и KDC обязаны иметь надёжное соединение между собой чтобы обрабатывать запросы и отклики.

  • DNS: Клиент применяет DNS для определения местоположения своих KDC и серверов. Тем самым требуется работа DNS с правильными записями.

  • Временная синхронизация: Как мы можем видеть, наш процесс применяет значения временных штампов для проверки аутентичности запросов. Он допускает временное различие до 5 минут. Следовательно, он обязан иметь точную синхронизацию времени с контроллерами домена.

  • SPN (Service Principal Names, Основные имена служб): Для определения местоположения служб в своей среде AD клиенты пользуются SPN. Если для данной службы отсутствует SPN, тогда и сам клиент, и его KDC не имеют возможности выявить её местоположение, когда это необходимо. При настройке служб, всякий раз проверяйте что вы настроили также и SPN.

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

Делегирование полномочий

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

В некой среде AD имеются различные типы задач управления. Управление контроллерами доменов, добавление/ управление/ удаление пользователей, добавление/ управление/ удаление групп, сброс паролей, а также добавление устройств в компьютеры - всё это лишь некоторые примеры. В каком-то обладающим структурой ИТ подразделении эти задачи управления должны быть ограничены различными ролями заданий.

В качестве некого примера давайте сделаем предположение, что ИТ подразделение Rebeladmin Corp. имеет первую линию (первый контакт поддержки), вторую линию (промежуточную) и третью линию (старшую) команд ИТ. При рассмотрении задач управления соответствующего AD, инженеры первой линии обычно вовлечены в такие задачи, как сбросы паролей пользователей, настройка новых учётных записей пользователей и групп, а также добавление устройств в домены.

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

При таком подходе мы можем группировать задачи управления AD в соответствии с имеющимися полномочиями различных ролей инженеров. Это позволяет различным ролям заданий получать в собственность различные задачи управления AD. В то же самое время, когда некая определённая роль задания назначена соответствующему владельцу задачи, должен иметься некий механизм предотвращения того, чтобы прочие команды не оказывали влияния на эту конкретную задачу. В качестве некого примера, когда инженеры третьей линии отвечают за изменение схемы AD, тогда должен иметься некий способ препятствия инженерам первой и второй линий от выполнения ими этого также. Если нам требуется запрещать/ разрешать пользователям или группам входу/ доступу к некой папке в файловом сервере (соответственно), мы можем делать это применяя полномочия (permissions). В точности также AD позволяет вам управлять авторизацией объектов или управлением задач пользователей и групп на основе полномочий. Управление полномочиями для имеющейся команды ИТ является сложной задачей, поскольку это касается не только полномочий. Это также имеет и социальную сторону. В целом, мы принимаем что администраторы являются заслуживающими доверия людьми; в то же время вы можете не знать большинство из них. А потому лучше предпринять меры предосторожности и разумно управлять полномочиями. Существует несколько способов управления полномочиями для задач управления AD:

  • Применяя предварительно определённые роди Администратора AD

  • Используя ACL (Access Control Lists, Списки контроля доступом)

  • Пользуясь методом предоставления контроля в AD

Предварительно заданные роли администратора AD

AD имеет предварительно определённые роли администрирования. Каждая из этих ролей имеет подключёнными к ней заранее заданные полномочия. Если некому пользователю требуются эти роли полномочий, их учётные записи требуется добавить в надлежащую группу безопасности. Эти группы безопасности являются предварительно определёнными группами:

  • Enterprise Admins (Администраторы предприятия): Это наивысшая роль полномочий, которая может применяться в имеющемся лесу AD. Все учётные записи, которые выступают частью этой группы могут изменять имеющуюся логическую и физическую топологию своей инфраструктуры AD. Это также позволяет вам осуществлять изменения схемы. Эта роль способна управлять прочими участниками (Enterprise Admins, Schema Admins и Domain Admins).

  • Schema Admins (Администраторы схемы): Участники этой группы могут изменять установленную схему AD. Это относится лишь к корневому домену леса, так как установленная схема обрабатывается на уровне самого леса.

  • Domain Admins (Администраторы домена): Это самая высокая роль полномочий AD, которая может применяться в домене AD. При добавлении самого первого контроллера домена в имеющийся лес, установленная по умолчанию учётная запись Администратора будет частью групп Domain Admin и Enterprise Admin. Администраторы Домена (Domain Admin) имеют полномочия на добавление/ удаление прочих учётных записей в группе безопасности Domain Admin.

[Замечание]Замечание

Эти роли рассматриваются как привилегированные в среде AD. Вследствие этого, вместо того чтобы удерживать постоянное членство, вам рекомендуется применять PAM (Privileged Access Management, Управление привилегированным доступом) для предоставления участия в группе на основе промежутка времени. Это было подробно разъяснено в Главе 2, Active Directory Службы домена.

Применение объектов ACL

Полномочия доступа пользователя или группы для некой совместно используемой папки управляются соответствующим ACL. Аналогично мы способны определять полномочия для объектов AD. Это может применяться для индивидуальных объектов, или для конкретных площадки/ домена/ OU AD, а затем те же самые полномочия могут быть принудительно применены к объектам нижнего уровня.

В качестве примера у меня имеется группа безопасности с названием First Line Engineers, причём Liam выступает членом этой группы. Liam является инженером в европейском офисе. В имеющемся AD для Liam должно быть разрешено добавлять объекты пользователей только в подчинённом OU, который расположен под OU Europe. Однако ему не должно быть позволено удаление каких бы то ни было объектов под ним. Давайте посмотрим как мы это можем сделать при помощи ACL:

  1. Зарегистрироваться в имеющемся контроллере домена в качестве Domain Admin/Enterprise Admin.

  2. Просмотреть имеющихся участников группы при помощи такой команды:

    
    Get-ADGroupMember "First Line Engineers"
    		
  3. Проследовать в ADUC (Active Directory Users and Computers), кликнуть правой кнопкой по OU Europe и кликнуть по Properties. Затем пройти в Security.

  4. Находясь в закладке Security, кликнуть по Add.

  5. В этом новом окне наберите First Line Engineers и кликните по OK. Вслед за этим, в закладке Security выберите First Line Engineers и кликните по Advanced:

     

    Рисунок 15-5



  6. В следующем появившемся окне выберите из имеющегося списка First Line Engineers и кликните по Edit.

  7. Из полученного списка Applies to выберите This object and all descendant objects для применения полномочий ко всем дочерним объектам:

     

    Рисунок 15-6



  8. В разделе Permissions отметьте Create all child objects и кликните по OK.

  9. Далее продолжайте кликать по OK пока не будут закрыты все окна полномочий.

  10. После этого я регистрируюсь в компьютере Windows 10 в качестве пользователя Liam. Этот компьютер уже имеет установленными инструменты RSAT (подробнее про RSAT).

  11. В соответствии с установленными полномочиями мы должны быть способны добавлять необходимые пользовательские учётные записи в OU Europe:

    
    New-ADUser -Name "Dale" -Path "OU=Users,OU=Europe,DC=rebeladmin,DC=com"
    		
  12. Это успешно добавит нового пользователя. Давайте рассмотрим как мы можем добавить другого пользователя в другом OU:

    
    New-ADUser -Name "Simon" -Path "OU=Users,OU=Asia,DC=rebeladmin,DC=com"
    		
  13. Как только я выполню предыдущую команду, я получу ошибку Access is denied (Доступ отвергнут):

     

    Рисунок 15-7



  14. Согласно применённым полномочиям, Liam не ложен иметь возможности удаления какого бы то ни было объекта в OU=Users,OU=Europe,DC=rebeladmin,DC=com . Давайте проверим это такой командой:

    
    Remove-ADUser -Identity "CN=Dishan Francis,OU=Users,OU= Europe,DC=rebeladmin,DC=com"
    		
  15. Как только я выполню предыдущую команду, я получу ошибку Access is denied (Доступ отвергнут):

     

    Рисунок 15-8



Это подтверждает что мы способны управлять полномочиями для задач управления AD с помощью ACL.

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

Метод передачи (делегирования) контроля также работает аналогично ACL, но упрощает управление привилегиями, поскольку он использует следующее:

  • Для применения переданных полномочий может применяться Мастер Делегирования управления (Delegation of Control Wizard).

  • Некий предварительно заданный список доступен через этот мастер и мы можем легко устанавливать соответствие этим задачам.

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

  • Создание, удаление и управление учётной записи пользователя.

  • Сброс паролей пользователя и принуждение к изменению пароля при следующей регистрации.

  • Считывание всей пользовательской информации.

  • Создание, удаление и управление групп.

  • Изменение членства в группе.

  • Управление ссылками Групповой политики.

  • Выработка Набора результатов (Resultant Set of Policy, Планирование.

  • Выработка Набора результатов (Resultant Set of Policy, Регистрация.

  • Создание, удаление и управление учётными записями inetOrgPerson.

  • Сброс паролей inetOrgPerson и принуждение к изменению пароля при следующей регистрации.

  • Считывание всей информации inetOrgPerson.

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

Аналогично ACL полномочия могут применяться к следующим уровням:

  • Site: Передаваемые полномочия будут допустимы для всех объектов на данной площадке AD.

  • Domain: Передаваемые полномочия будут допустимы для всех объектов в данном домене AD.

  • OU: Передаваемые полномочия будут допустимы для всех объектов в данном AD OU (Active Directory Organisational Unit, Организационном элементе AD).

В качестве примера у меня имеется некая группа безопасности с названием Second Line Engineers, а Scott выступает её участником. Мне требуется разрешить участникам этой группы сброс паролей в OU=Users,OU=Europe,DC=rebeladmin,DC.

Для этого мне требуется проделать следующее:

  1. Зарегистрироваться в контроллере домена в качестве Domain Admin/Enterprise Admin.

  2. Просмотреть участников данной группы при помощи следующей команды:

    
    Get-ADGroupMember "Second Line Engineers"
    		
  3. Проследовать в ADUC, кликнув павой кнопкой мыши по OU Europe, а затем в полученном перечне кликнуть по параметру Delegate Control....

  4. Это откроет первоначальную страницу некого нового мастера; для продолжения кликните по Next.

  5. На полученной вслед за этим странице кликните по кнопке Add и добавьте в неё необходимую группу Second Line Engineers. После этого для продолжения кликните по Next:

     

    Рисунок 15-9



  6. В соответствующем окне Tasks to Delegate выберите вариант Delegate the following common tasks (Делегировать следующие распространённые задачи) и в полученном списке выберите Reset user passwords and force password change at next logon (Сброс паролей и принуждение к их изменению при следующей загрузке). На этой странице мы можем выбирать множество задач. Если ни одна из них не сработает, мы всё ещё можем выбрать Create a custom task to delegate (Выбор некой персональной задачи для делегирования). После завершения работы с этим разделом, для продолжения кликните по Next:

     

    Рисунок 15-10



  7. Это завершает данный мастер. Для окончания кликните по Finish.

  8. Теперь самое время провести проверку. Я зарегистрируюсь в компьютере Windows 10 от имени пользователя Scott, который имеет установленным инструментарий RSAT.

  9. Согласно установленным полномочиям Scott должен иметь возможность сброса значений пароля в объекте под OU=Users,OU=Europe,DC=rebeladmin,DC:

    
    Set-ADAccountPassword -Identity dfrancis
    		
  10. Это позволяет нам успешно изменить установленный пароль:

     

    Рисунок 15-11



  11. Однако это не делает возможным для Scott удалять какие бы то ни было объекты. Когда мы проверяем это с помощью следующей команды:

    
    Remove-ADUser -Identity "CN=Dishan Francis,OU=Users,OU=Europe,DC=rebeladmin,DC=com"
    		
  12. Как и ожидалось, это приводит к ошибке Access is denied (Доступ отклонён):

     

    Рисунок 15-12



Применяя эти три метода мы способны делегировать полномочия для задач администрирования AD. Это помогает нам назначать зоны ответственности для пользователей или групп чтобы удерживать среду AD жизнеспособной и безопасной.

Реализация политик пароля с тонкой грануляцией

Сложные пароли составляют основу базовых настроек безопасности, применяемую всеми администраторами. В нашей среде AD сложность пароля настраивается установками и настройками блокировок учётных записей, которые можно конфигурировать при помощи настроек GPO, которые размещаются в Computer Configuration | Policies | Windows Settings | Security Settings | Account Policies. Вплоть до Windows Server 2008 существовала лишь одна политика паролей и блокирования учётных записей, которая могла применяться ко всем пользователям. Начиная с Windows Server 2008, Microsoft ввёл политики тонкой грануляции паролей, которые делают возможным для администраторов применять различные политики паролей и блокирования учётных записей для конкретных пользователей или групп. Это позволяет вам защищать привилегированные учётные записи при помощи более строгих политик чем учётные записи обычных пользователей. Эта функциональность продолжает оставаться во всех версиях AD DS после Windows Server 2008 и также доступна и в AD DS 2016.

Как- то раз я работал над аудитом AD для некого хэдж фонда. В качестве части отчёта я рекомендовал чтобы они применяли политики паролей с большей сложностью , поскольку они этого не делали. После того как я пояснил это, их менеджеры ИТ согласились и я настроил политику паролей и политику блокировки учётных записей. Через несколько дней я приехал на ту же самую площадку и те же менеджеры ИТ показали мне, что после того как была принудительно введена данная политика, их конечные пользователи стали стали записывать свои сложные пароли на самоклеящихся стикерах и бумажках. А следовательно, даже хотя настройки безопасности были установлены, в конце концов, это повлекло ещё большие проблемы с безопасностью, так как все прочие пользователи имели возможность видеть пароли друг друга на наклеенных записках. Тем не менее, применяя более тонко гранулированные политики паролей, администраторы способны применять различные настройки на основе имеющейся ситуации. В качестве примера, в то время как пользователи отдела продаж могут использовать пароли со сложностью в 5 символов, Для Администраторов Домена вы можете применять сложность паролей в 12 символов.

Ограничения

Политики тонкой настройки паролей обладает следующими ограничениями:

  • Тонко гранулируемые политики могут применяться лишь к пользователям и глобальным группам безопасности. Они не применимы к OU.

  • По умолчанию, Domain Admins/Enterprise Admins способны устанавливать/ управлять/ удалять тонко гранулируемые политики паролей. В случае необходимости имеется возможность делегирования полномочий прочим пользователям.

  • Значением минимального уровня работы выступает Windows Server 2008.

RSoP

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

RSoP (Resultant Set of Policy, Получаемый в результате набор политик) использует значение атрибута msDS-PasswordSettingsPrecedence, который связывается со всеми политиками паролей чтобы принимать решение о значении побеждающей политики. Значением превосходства выступает некое целое значение, которое может устанавливать администратор. Более низкое значение превосходства означает более высокий приоритет. Когда к одному и тому же объекту применяется множество политик пароля, побеждает та политика, которая имеет самое низкое превосходство.

Приводимый ниже перечень дополнительно поясняет как в некой инфраструктуре работают политики паролей:

  • Существует два способа присоединения объекта к некой политике паролей. Самый первый метод состоит в непосредственном присоединении политики. Второй метод заключается в участии в группах. Когда целями политики выступает некая группа безопасности, её участники будут автоматически присоединены к этой политике паролей. Однако, когда тонко гранулированная политика паролей подсоединяется к некому объекту, именно она будет победившей политикой.

  • Если нет никаких подключаемых напрямую политик, такой объект рассматривается как имеющий самое низкое превосходство в политике. Такие политики наследуются из групп безопасности, к которым он присоединён.

  • Когда не применены никакие установки, осуществляются установки по умолчанию политик паролей GPO.

Настройка

Имеются два способа применения политик тонкой грануляции паролей. Первый вариант состоит в применении ADAC (Active Directory Administrative Center), а второй заключается в использовании cmdlet PowerShell.

В ADAC проследуйте в System | Password Settings Container, затем щёлкните правой кнопкой и перейдите в New | Password Settings. Это откроет для вас окно, в котором мы можем определять необходимые установки паролей:

 

Рисунок 15-13



В этом окне политик мы можем определить само название политики, старшинство и настройки политик блокирования учётной записи. Directly Applies To выступает именно тем местом, в котором мы можем определить группы безопасности, являющиеся целью данной новой политики. В своём предыдущем примере я добавил в качестве таковой цели группу безопасности First Line Engineers..

Тонко настраиваемые политики паролей также можно создавать при помощи PowerShell:


New-ADFineGrainedPasswordPolicy -Name "Domain Admin Password Policy" -Precedence 1 `
-MinPasswordLength 12 -MaxPasswordAge "30" -MinPasswordAge "7" `
-PasswordHistoryCount 50 -ComplexityEnabled:$true `
-LockoutDuration "8:00" `
-LockoutObservationWindow "8:00" -LockoutThreshold 3 `
-ReversibleEncryptionEnabled:$false
		

В нашей предыдущей команде New-ADFineGrainedPasswordPolicy это именно тот cmdlet, который применяется для создания некой новой политики. -Precedence задаёт значение старшинства политики. Величины значений -LockoutDuration и -LockoutObservationWindow определяются в часах. Значение величины -LockoutThreshold определяет общее число допустимых попыток регистрации.

Установленные политики можно просмотреть при помощи ADAC или PowerShell:


Get-ADFineGrainedPasswordPolicy – Identity "Domain Admin Password Policy"
		

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

 

Рисунок 15-14



Теперь у нас есть некая новая политика, а наш следующий шаг состоит в назначении объектов в неё. Нам требуется добавить в неё группу безопасности Domain Admin:


Add-ADFineGrainedPasswordPolicySubject -Identity "Domain Admin Password Policy" -Subjects "Domain Admins"
		

Наша предыдущая команда добавила имеющуюся группу Domain Admin Domain Admin Password Policy. В этом можно убедиться с помощь такой команды:


Get-ADFineGrainedPasswordPolicy -Identity "Domain Admin Password Policy" | Format-Table AppliesTo –AutoSize
		

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

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


Get-ADFineGrainedPasswordPolicy -Filter * | Format-Table Name,Precedence,AppliesTo –AutoSize
		

Это приведёт список всех тонких настроек политик совместно с Name, Precedence и значением цели.

Атаки передачи хэш- значений

Когда клиенту требуется успешно пройти аутентификацию в неком сервере, этому клиенту необходимо доказать свою идентичность. Это выполняется при помощи некого имени пользователя и пароля. Данный клиент обязан предоставить свои имя и пароль установленному серверу аутентификации, а он уже проверит наличие идентификации. Существуют унаследованные протоколы и системы, которые отправляют такие сведения открытым текстом, причём даже в какой- то открытой сетевой среде. Хорошим примером этого является Telnet. Если некто прослушивает обмен (перехватывает пакеты) какого- то сеанса Telnet, они запросто способны перехватить пароль, раз уж он передаётся в открытом тексте.

Современные протоколы аутентификации хорошо осведомлены о таких видах угроз и применяют разнообразные технологии шифрования полномочий либо создают криптографические хэши для проверки аутентификации. Термин криптографический хэш (cryptographic hash) означает что некая строка пароля преобразуется в при помощи какого- то алгоритма в цифровую строку фиксированной длины.

Ранее в разделе Аутентификация AD мы наблюдали как работает аутентификация Kerberos при помощи хэшированных значений. Когда мы применяем хэшированные значения, имеющийся сервер аутентификации сравнивает такое предоставляемое паролем клиента значение хэша с тем значением хэша для этого пользователя, которое хранится в его базе данных. В имеющейся среде Windows эти хэши паролей хранятся в трёх различных местах:

  • В базе данных SAM (Security Account Manager, Диспетчере учётных записей безопасности)

  • LSASS (Local Security Authority Subsystem Service, Службе подсистемы авторизации локальной безопасности)

  • В самой базе данных AD

База данных SAM хранит имена пользователей и хэш- значения NT (New Technology) в файле %SystemRoot%/system32/config/SAM. Он содержит все значения хэшей для учётных записей, которые являются локальными для этого компьютера. Текущая версия SAM не хранит в своём файле базы данных хэши LM (LAN Manager).

Самой первой введённой Microsoft схемой хэширования паролей была LM. Для хэширования она применяла алгоритм DES (Data Encryption Standard, Стандарта шифрования данных). Это наследуемая слабая схема и Microsoft настоятельно не рекомендует её применять. Она не поддерживает пароли длиннее 15 символов ASCII или парали не являющиеся чувствительными к регистру. Однако, все новые операционные системы, выпускавшиеся после Windows Vista для хэширования поддерживают алгоритм AES (Advanced Encryption Standard, Усовершенствованного стандарта шифрования).

По сравнению с паролем в открытом виде, для некого злоумышленника, почти невозможно вычислить значение самого пароля на основании его хэша. Даже если это будет возможно сделать, это потребует большой вычислительной мощности и времени. Однако, если вы можете отыскать само значения хэша вместо выуживания пароля, такое хэш значение может применяться для инициации соединения с имеющимся сервером от лица первоначального владельца этого хэша. Это звучит простым, однако на практике это всё ещё очень сложно, так как эти протоколы аутентификации имеют свои собственные механизмы для предотвращения применения злоумышленниками какого- то другого значения хэша. Когда дело касается Kerberos, он совместно с запросами и откликами при проверке аутентичности хэшей применяет временные штампы. NT (New Technology), NTLM v1 (New Technology LAN Manager) и NTLM v2 также применяют аналогичный механизм отклик- отзыв для аутентификации без раскрытия значения пароля.

Однако, даже хотя хэш значения не передаются непосредственно. LSASS хранит полномочия в памяти от имени пользователей с активными сеансами. LSASS может хранить полномочия в множестве видов, например, неком NT хэше, LM хэше, а также квитанциях Kerberos. Это необходимо для сопровождения активных сеансов и более быстрой последующей аутентификации. Он очищается в процессе перезагрузки, но этого может оказаться достаточным для злоумышленника чтобы выполнить выборку хэша и воспользоваться им для компрометации всей имеющейся инфраструктуры идентификации. Microsoft ввёл множество свойств и техник для защиты своей среды AD от атак передачи значения хэша (pass-the-hash), и в данном разделе мы намерены рассмотреть их подробно.

Группа безопасности Защищённых пользователей

Группа безопасности Защищённых пользователей (Protected Users) была введена в Windows Server 2012R2 и продолжает своё существование в Windows Server 2016. Эта группа была разработана для предоставления учётных записей с высокими привилегиями лучшей защиты от атак воровства полномочий. Участники этой группы имеют применёнными не настраиваемую защиту. Чтобы применять группу Защищённых пользователей, PDC (Primary Domain Controller, Первичный контроллер домена) обязан быть запущенным с Windows Server 2012R2, как минимум, а компьютеры его клиентов должны работать как минимум с Windows 8.1 или Windows 2012 R2.

Когда некий участник этой группы регистрируется в Windows 8.1, Windows Server 2012 R2, Windows 10 или Windows Server 2016, тогда мы можем ожидать следующее:

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

  • Не кэшируются долговременные ключи Kerberos. Для учётных записей из этой группы, сам протокол Kerberos выполняет проверку аутентификации при каждом запросе (соответствующий TGT запрашивается при регистрации).

  • Подпись выполняется в режиме офлайн. при подписи не создаётся кэшируемое контролирующее устройство.

Для присутствия свойств группы Защищённых пользователей не обязательно иметь некий домен, имеющий уровень функциональности Windows Server 2012 R2 или выше (минимумом является Windows Server 2008, так как Kerberos обязан использовать AES). Единственным требованием является запуск в соответствующем контроллере домена Windows Server 2012 R2 роли FSMO (Flexible Single-Master Operations, Гибких операций с единственным хозяином).

[Замечание]Замечание

Если это потребуется, после того как объекты группы Защищённых пользователей реплицируются во все имеющиеся контроллеры домена, имеющаяся роль эмулятора PDC может быть передана в некий контроллер домена с более низкой версией Windows Server.

Когда установленная среда AD применяет уровни функциональности домена Windows Server 2012 R2 или Windows Server 2016, она предоставляет дополнительные защиты группам Защищённых пользователей, такие как:

  • Никакой аутентификации NTLM

  • Никакого шифрования DES или RC4 в Kerberos, предварительной аутентификации

  • Никакого делегирования с применением добровольных действий или действий по принуждению

  • Никакой TGT Kerberos не действует более 4 часов

    [Совет]Совет

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

Для начала мы можем просмотреть саму группу безопасности Protected Users, воспользовавшись такой командой:


Get-ADGroup -Identity "Protected Users"
		

Приводимый ниже снимок экрана отображает вывод для предыдущей команды:

 

Рисунок 15-15



Мы можем добавлять пользователей в группу Protected Users при помощи ADAC, ADUC MMC, а также PowerShell. Эта группа расположена в устанавливаемом по умолчанию в AD контейнере Users.

В нашем случае мы намерены добавить в группу Protected Users учётную запись для Adam при помощи такой команды:


Get-ADGroup -Identity "Protected Users" | Add-ADGroupMember –Members "CN=Adam,CN=Users,DC=rebeladmin,DC=com"
		

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

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


Get-ADGroupMember -Identity "Protected Users"
		

Для проверки этого мы намерены воспользоваться инструментом с названием mimikatz, который может применяться для экспериментов с безопасностью Windows.

Я регистрируюсь в неком компьютере в качестве пользователя Liam, причём он не является участником группы Protected Users. Когда я перечисляю его ключи из LSASSS для пользователей, я могу отчётливо наблюдать хэш NTLM Liam:

 

Рисунок 15-16



Когда я проделываю то же самое с Adam, который является участником группы Protected Users, я не могу видеть сохранённого в памяти LSASS значения хэша NTLM, поскольку находящиеся в защищённой группе участники не применяют NTLM и не сохраняют никаких полномочий в имеющемся кэше:

 

Рисунок 15-17



Обсуждённая группа безопасности Защищённых пользователей (Protected Users security group) была впервые введена в Windows Server 2012 R2. Она имеет встроенные возможности для защиты привилегированных учётных записей от атак кражи полномочий. В этом разделе мы изучили те технологии, которые стоят за (Protected Users security group. Мы также изучили необходимые настройки данной функциональности безопасности. В своём следующем разделе мы намерены рассмотреть ещё одно встроенное свойство безопасности, которое может применяться для предотвращения утечки полномочий при не безопасных подключений RDP.

Ограниченный режим администратора для RDP

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

Когда они начинают беспорядочно вести себя в неком оконечном оборудовании и выполнять такие вещи, как удаление файлов, увеличивать потребление ЦПУ/ памяти, или разрушать приложения, тогда такой конечный пользователь обратится за помощью в ИТ подразделение. ИТ как правило являются участниками Enterprise Admins, Domain Admins, или по крайней мере группы локальных администраторов этого оконечного устройства. Для регистрации и выявления неисправностей им придётся применять привилегированные учётные записи. Если наш злоумышленник запустил в этой системе программу для сбора урожая паролей, тогда полномочия таких привилегированных учётных записей будут раскрыты.

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

  • Регистрации в компьютере локально или через RDP.

  • Запуске некого приложения или задачи при помощи возможности Run As.

  • Запуске в данном компьютере некой службы Windows с учётной записью этой службы.

  • Запуске задач по расписанию или пакетного задания в данном компьютере.

  • Запуске некой задачи в данном локальном компьютере при помощи удалённых инструментов (систем сканирования и установки).

RDP является наиболее распространённым методом для инженеров для удалённого доступа к компьютерам. Когда некий пользователь подключается к какой- то системе при помощи RDP, он отправляет мандат с параметрами доступа в этот удалённый компьютер в виде открытого текста. Когда компьютер скомпрометирован, это является проблемой безопасности. В Windows Server 2012 R2 Microsoft ввёл режим ограниченного администрирования RDP (restricted admin mode for RDP). При выборе для RDP этого режима, он не будет оправлять мандат с регистрационными данными в такой удалённый компьютер. После того как конкретный пользователь регистрируется через подобный ограниченный сеанс RDP, он не может подключаться к отличающимся от разделяемых в сетевой среде ресурсам. Такая функциональность также доступна и в Windows Server 2016.

Этот режим может применяться в Windows 7, Windows 8, Windows 8.1, Windows 10, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 и Windows Server 2016.

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

  1. Зарегистрироваться в таком целевом компьютере или сервере в качестве Администратора.

  2. Кликнуть по меню Пуск (Start), затем кликните Run, введите regedit и затем кликните OK.

  3. В редакторе реестра (Registry Editor) пройдите в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa.

  4. Создайте такую запись в реестре:

    
    	Name: DisableRestrictedAdmin
    	Type: REG_DWORD
    	Value: 0
     	   

    Приводимый ниже снимок экрана иллюстрирует наш предыдущий шаг:

     

    Рисунок 15-18



После того как это сделано, мы можем подключаться к такому целевому компьютеру при помощи RDP с ограниченным режимом администрирования. Для этого соответствующий клиент удалённого рабочего стола требуется запускать в таком ограниченном режиме. Это можно сделать запуском команды mstsc /restrictedadmin.

Для проверки данной функциональности мы подключимся к некому участнику PC Windows 10 при помощи обсуждаемого ограниченного режима RDP. Данная учётная запись относится к Peter, причём он выступает участником группы Domain Admin:

 

Рисунок 15-19



Теперь, если мы попытаемся получить доступ к жёсткому диску другого компьютера, он высветит нам предупреждающее сообщение об ошибке Access is denied (Доступ отклонён). Имеющаяся учётная запись пользователя состоит в Domain Admin и это не может приводить к отказу в доступе. Он происходит по причине установленного ограниченного режима RDP, поскольку тот не способен применяться для ресурсов, отличающихся от совместно используемых в таком сеансе:

 

Рисунок 15-20



Аналогичное произойдёт, когда я попытаюсь добавить свой контроллер домена к имеющемуся Server Manager (Диспетчеру сервера) в этом удалённом компьютере. Это также высветит ошибку Access denied:

 

Рисунок 15-21



Данная функциональность минимизирует возможность риска компрометации учётных записей с высоким уровнем полномочий.

[Совет]Совет

Режим ограниченного RDP может быть отключён изменением соответствующего значения ключа реестра DisableRestrictedAdmin в 1.

Политики аутентификации и Бункер политик аутентификации

Высеченным в граните правилом при защите от атак передачи значения хэша (pass-the-hash) является предотвращение доверенным пользователям появляться в системах без доверия. Для размещения своей базы данных Rebeladmin Corp. применяет ферму MS SQL. В процессе настроек Сервера SQL инженеры пользуются учётными записями службы. Очевидно, что такие учётные записи службы SQL следует применять исключительно в Серверах SQL. Когда такие учётные записи возникают в компьютерах принимающих секретарей, что- то несомненно пошло не так. В Windows Server 2012 R2, Microsoft ввёл политики аутентификации и политики Бункеров (silos), которые могут применяться для ограничения использования учётных записей с высокими привилегиями только в выбранных системах.

Политики аутентификации

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

Бункеры политик аутентификации

Бункеры политик аутентификации аналогичны контейнерам, в которые мы имеем возможность назначать учётные записи пользователей, учётные записи компьютеров и учётные записи служб. Далее этими учётными записями можно управлять через устанавливаемые политики аутентификации.

Данная функциональность нуждается в таких предварительных требованиях:

  • Все контроллеры домена в таком домене должны основываться на Windows Server 2012 R2, Windows Server 2016 или Windows Server 2019.

  • Уровень функциональности домена должен быть Windows Server 2012 R2 или выше.

  • Контроллеры домена должны быть настроены на сопровождение DAC.

  • Участники домена Windows 8, Windows 8.1, Windows 10, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 и Windows Server 2019 должны быть настроены на поддержку DAC (Dynamic Access Control, Динамичного управления доступом).

Создание политик аутентификации

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

Для включения DAC в контроллерах домена выполните следующие шаги:

  1. Проследуйте в MMC Group Policy Management.

  2. Измените Default Domain Controllers Policy.

  3. Перейдите в Computer Configuration | Policies | Administrative Templates | System | KDC.

  4. Кликните по Enabled для разрешения KDC support for claims, compound authentication and Kerberos armoring (Поддержке KDC для заявок, составной аутентификации и усиления Kerberos).

  5. Определившись с этими вариантами, выберите Always provide claims (Всегда предоставлять заявки) и кликните по OK. Это гарантирует что всегда будут возвращаться заявки для учётных записей и поддерживаться поведение RFC для информирования FAST (Flexible Authentication Secure Tunneling, Гибкого туннелирования безопасной аутентификации):

     

    Рисунок 15-22



Чтобы включить DAC в компьютерах, выполните такие шаги:

  1. Пройдите в MMC Group Policy Management.

  2. Измените Default Domain Policy.

  3. Проследуйте в Computer Configuration | Policies | Administrative Templates | System | Kerberos.

  4. В Kerberos client support for claims, compound authentication and Kerberos armoring (Поддержке клиентов Kerberos в отношении заявок, составных аутентификаций и усиления Kerberos) кликните по Enabled.

  5. После выполнения этого мы можем создать некую новую политику аутентификации при помощи cmdlet New-ADAuthenticationPolicy. Это же можно создать при помощи ADAC:

     

    Рисунок 15-23



В качестве некого примера, давайте создадим какую- то новую политику аутентификации с названием P_1hr_TGT и с временем жизни TGT в 60 минут:


New-ADAuthenticationPolicy -Name "AP_1hr_TGT" -UserTGTLifetimeMins 60 -Enforce
		

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

Создание Бункеров политик аутентификации

Теперь, когда мы создали необходимую политику аутентификации, наш следующий шаг состоит в создании нового Бункера (silo) политики аутентификации. Моим требованием является создание некого Бункера политик для предотвращения доступа учётной записи пользователя Peter к REBEL-PC01.

Бункеры политик могут создаваться при помощи ADAC или cmdlet PowerShell New-ADAuthenticationPolicySilo:

 

Рисунок 15-24



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


New-ADAuthenticationPolicySilo -Name Restricted_REBEL_PC01 -UserAuthenticationPolicy AP_1hr_TGT -ComputerAuthenticationPolicy AP_1hr_TGT -ServiceAuthenticationPolicy AP_1hr_TGT -Enforce
		

В нашей предыдущей команде, -UserAuthenticationPolicy, -ComputerAuthenticationPolicy и -ServiceAuthenticationPolicy ссылаются на значения политик аутентификации, которые будут подключены к данному Бункеру политик. В нашем случае мы применяем лишь одну политику, однако если требуется, к данному Бункеру политик может быть подключено множество политик аутентификации , которые охватывают классы пользователей, компьютеров и служб.

Наш следующий этап состоит в добавлении соответствующих необходимых объектов в наш Бункер политик в качестве допустимых учётных записей. В моей демонстрации это будут учётная запись пользователя Peter и компьютер с названием REBEL-PC01.

В Бункер политик мы можем добавить эти объекты с помощью cmdlet PowerShell Grant-ADAuthenticationPolicySiloAccess:


Grant-ADAuthenticationPolicySiloAccess -Identity Restricted_REBEL_PC01 -Account Peter
		

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

Мы также можем скомбинировать её совместно с неким фильтром и затем добавить полученный результат в соответствующий Бункер политик:


Get-ADComputer -Filter 'Name -like "REBEL-PC01"' | Grant-ADAuthenticationPolicySiloAccess -Identity Restricted_REBEL_PC01
		

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

После выполнения этого, нам требуется назначить Бункеры политик и саму политику аутентификации Peter и REBEL-PC01. Это можно выполнить при помощи Set-ADAccountAuthenticationPolicySilo:


Set-ADAccountAuthenticationPolicySilo -Identity Peter AuthenticationPolicySilo Restricted_REBEL_PC01 -AuthenticationPolicy AP_1hr_TGT
		

Наша предыдущая команда назначает имеющийся Бункер политик Restricted_REBEL_PC01 и установленную политику аутентификации AP_1hr_TGT учётной записи пользователя Peter.

Эти команды также могут подключаться к фильтрам:


Get-ADComputer -Filter 'Name -like "REBEL-PC01"' | Set-ADAccountAuthenticationPolicySilo -AuthenticationPolicySilo Restricted_REBEL_PC01 -AuthenticationPolicy AP_1hr_TGT
		

Наша предыдущая команда отфильтровывает объект компьютера AD REBEL-PC01 и затем назначает назначает ему и политику аутентификации и Бункер политик.

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


Set-ADAuthenticationPolicy -Identity AP_1hr_TGT -UserAllowedToAuthenticateFrom "O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/AuthenticationSilo == `"Restricted_REBEL_PC01`"))"
		

В нашей предыдущей команде устанавливаемое условие передаётся как некая строка SDDL (Security Descriptor Definition Language, Определяющего языка Дескриптора защиты). Вы можете получить дополнительные сведения относительно таких строк SDDL.

Это также можно изменять применяя окна свойств политик аутентификации в ADAC:

 

Рисунок 15-25



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

Администрирование JIT и AD JEA

В своих предыдущих разделах мы изучали свойства, которые были привнесены Microsoft для предотвращения атак передачи значения хэша (pass-the-hash). Эти типы атак всё ещё применяются злоумышленниками при атаках на инфраструктуры идентификации, а потому важно предотвращать такие атаки всякий раз когда это возможно и везде где это возможно. Однако сделает ли это безопасной на 100% нашу инфраструктуру идентификации? производители программного обеспечения, включая Microsoft, выпускают новые продукты, свойства, обновления безопасности и исправления ошибок для защиты систем, инфраструктур и рабочих процессов от различных видов угроз.

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

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

Администрирование JIT

В Главе 2, Службы домена Active Directory 2019 мы подробно изучали JIT и обсуждали как функциональность AD DS 2016 помогает делать это. Вследствие этого мы не намерены рассматривать эти детали снова в данной главе, однако я бы хотел перечислить несколько важных фактов:

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

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

  • Бастионный лес (административный лес) вводится для вашей существующей инфраструктуры для управления привилегиями. Такой лес может запускаться в уровне функциональности леса Windows Server 2016 или Windows Server 2012 R2.

  • В уже имеющемся лесу AD требуются минимальные изменения. Они не требуются для самого уровня функциональности домена или обновления текущего уровня функциональности леса.

  • Диспетчер идентификации 2016 Microsoft (Microsoft Identity Manager 2016) выступает частью общего решения. Он ответственен за управление установленным бастионным лесом, управление участием в группах, создании рабочих процессов и выработке отчётов.

  • Один бастионный лес способен управлять привилегиями для множества лесов.

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

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

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

Помимо всех этих фактов, AD DS 2016поодерживает участие в группах на временной основе. Такая функциональность может применяться для предоставления JIT администрирования.

JEA

JEA впервые было выпущено в 2014 и именно оно послужило первым подходом к администрированию JIT. JEA позволяет вам предоставлять привилегии на основе ролей вместо привилегий полного администрирования. Примером может служить наша Rebeladmin Corp. Команды ИТ ежемесячно запускают некий набор сценариев PowerSell для выработки отчётов относительно использования на протяжении месяца ресурсов в своём частном облачном решении. Для выполнения этого некий участник общей ИТ команды ежемесячно регистрируется в каком- то сервере и запускает данные сценарии. Те персоны, которые запускают эти отчёты, являются Domain Admins, так как для выполнения этого им требуется иметь административные полномочия. Однако этим пользователям не требуются привилегии Domain Admins для их повседневных задач в службе технической поддержки. Применяя JEA мы способны назначать в точности необходимые полномочия для запуска этих сценариев с определённого хоста вместо предоставления привилегий Domain Admins. Это целиком основанное на PowerShell решение. Он способно применяться со всем, что может управляться через PowerShell.

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

  • Инженеры поддержки первой линии вовлечены лишь в устранение основных неисправностей. Такими наиболее распространёнными действиями являются анализ журналов, выполнение базовых команд устранения неисправностей и перезапуск служб. Они ответственны за изменения системного уровня или уровня служб. Однако как правило они имеют привилегии Domain Admin, Enterprise Admin или локального администратора.

  • Разработчики программного обеспечения и инженеры сопровождения приложения нуждаются в возможности доступа к своим системам для выполнения инсталляций, обновлений, исправления ошибок или предоставления поддержки. Их требования доступа не являются постоянными, а их активность ограничена каким- то числом серверов. Однако в большинстве случаев эти учётные записи завершаются в виде Domain или Enterprise Admins, поскольку им просто выполнять требующиеся задачи. При таких полномочиях нет ничего препятствующего им выполнять доступ к прочим критически важным системам или данным.

  • Встроенные возможности делегирования управления ограничены. Они не могут применяться для ограничения пользователей и делегирования полномочий хостам.

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

при использовании JEA имейте в виду следующее:

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

  • Пользователи не могут копировать те же самые полномочия прочим пользователям в той же самой системе.

  • Если пользователю A разрешено запускать задачу B на компьютере C, тогда он не способен запускать задачу B на компьютере D, даже если это та же самая задача, причём с теми же самыми привилегиями.

  • Визуально предоставляются подробные журналы действии во всей среде.

JEA реализуется в виде конечных точек сеансов PowerShell. Оно содержит следующие файлы:

  • Файлы настройки сеанса PowerShell: Они позволяют вам составлять соответствие пользователей конечным точкам. Мы можем ставить соответствие пользователей и групп определённым ролям управления. Мы также способны настраивать глобальные настройки, такие как виртуальные учётные записи и политики трансляции. Конкретный файл настроек PowerShell является специфическим для системы, а потому настройки конфигураций могут применяться на основе индивидуального подхода к каждой машине.

  • Файлы возможностей роли: Эти файлы определяют какие действия могут выполняться пользователями. Это могут быть задачи, подобные запуску сценариев, запуск конкретных cmdlet, а также запуск программ. Такие задачи могут группироваться по ролям и совместно применяться с прочими пользователями. В качестве примера, выполняемые инженерами первой линии задачи могут быть сгруппированы в одну роль и совместно применяться всеми инженерами первой линии.

Одним из недостатков JEA является его ограниченность на PowerShell и не совместимость с обычными задачами и функциями на основе GUI.

Реализация JEA будет рассмотрена в Главе 16, Расширенное управление Active Directory с помощью PowerShell.

PIM Azure AD

До сих пор мы изучали защиту идентификации в локальных средах AD. Однако в неком гибридном окружении идентификации также имеются и в самом облаке. Такие идентификации в целом синхронизируются из локальных сред AD с применением Azure AD Connect. Azure AD также имеет только облачные учётные записи. В некой гибридной среде нам также следует рассматривать защиту идентификации в самом облачном решении. Azure AD является управляемой службой, а потому мы не можем применять те же самые свойства,которые мы использовали в локальной среде AD. К тому же, вызовы бывают разными. В некой гибридной среде идентификация возникает в различных облачных службах, таких как SaaS (Software as a service), PaaS (Platform as a service), IaaS (Infrastructure as a service). Таким образом, потенциал для атак гораздо выше чем в локальной среде. В данном разделе мы намерены изучить некоторые службы и свойства, которые мы может применять для защиты идентификации в гибридной среде.

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

  • Имеется ли у вас полный контроль над этими учётными записями и их полномочиями?

  • Известны ли вам их действия при использовании их полномочий?

  • Как вы можете узнать что они ещё не были пока скомпрометированы?

Некое решение состоит в отзыве этих полномочий. Да, это сработает, но сколько дополнительной работы нам потребуется проделать для восстановления данных полномочий когда они потребуются? И к тому же, насколько это практично? Это также обладает и социальным воздействием. Если вы спуститесь вниз к своим пользователям и сообщите им что вы намерены отозвать их административные привилегии, как они вам могут ответить? Пользователям всё- таки требуется привилегированный доступ к их приложениям и службам чтобы настраивать приложения и службы, управлять ими и устранять неисправности.

Azure AD PIM делает для нас возможным управление, контроль и мониторинг привилегированного доступа к приложениям и службам, подобным Azure AD, Office 365 и прикладным приложениям SaaS. Это в целом некий автоматизированный процесс (в зависимости от того, будут ли в него вовлечены автоматические удостоверения правил, или же они будут подтверждаться вручную), однако что более важно, мы запрашиваем полномочия всякий раз когда они нам требуются.

PIM обладает следующими ключевыми свойствами:

  • Администрирование JIT: Вы можете назначать привилегированный доступ по запросу на некий период времени. К примеру, пользователь A может быть администратором Office 365 с 11:00 до 12:00. Когда время истекает, сама система автоматически отзывает его привилегии администратора.

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

  • Многофакторная аутентификация: Мы можем добавить многофакторную аутентификацию в сам процесс активации роли для добавления дополнительного уровня безопасности.

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

  • Подотчётность: Удостоверяющая стороны обязана записывать кто имел привилегии и почему он обладал ими.

  • Отзыв полномочий: Удостоверяющая сторона может отзывать выданные полномочия в любой момент времени.

  • Аудит истории: Все выполненные запросы и действия будут записаны. Эти могут применяться для целей аудита.

Лицензионные требования

Для использования Azure AD PIM нам требуется одна из следующих платных лицензий:

  • Azure AD Premium P2

  • E5 EMS (Enterprise Mobility and Security)

  • Microsoft 365 M5

Руководства по реализации

Прежде чем мы начнём рассматривать настройку PIM, имеются определённые моменты, которые нам следует принять во внимание:

  • Аудит доступа: Прежде чем мы приступим к защите, нам следует знать что мы обороняем. Единственный способ, которым мы можем это осуществить, выступает надлежащий аудит. Azure AD имеет едва ли не 35 различных ролей. Каждая из этих ролей обладает различными уровнями привилегий. Мы можем пересмотреть собственно участников групп и их действия вручную, но это потребует времени. Если задачи выполняются вручную и когда они требуют время, тогда скорее всего большинство администраторов не захотят их делать регулярно. Применяя Azure PIM access reviews (Обзор доступа PIM Azure) мы способны пересмотреть имеющиеся доступ и действия участников в привилегированных группах и отрегулировать их участие надлежащим образом. PIM access review полностью автоматизирован, а потому мы можем составить расписание его запуска на более частое выполнение.

При пересмотре доступа нам следует рассмотреть выполнение следующего:

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

  • Устанавливать насколько часто они пользуются такими привилегиями. Это могут быть пользователи, которые были участниками некой административной группы, однако не применяют активно такие полномочия. Компании могут устанавливать политики для обработки таких видов не применяемых полномочий доступа.

  • Отслеживать действия привилегированных пользователей. Роли Azure AD имеют предварительно заданные уровни привилегий. Как мы узнаем что участники этих ролей делают только то, что предполагалось они и должны делать? Применяя пересмотр доступа, мы можем отслеживать вниз их действия и быть уверенными что они не злоупотребляют своими полномочиями.

  • Обоснование. Для пользователя должна иметься допустимая причина обладать привилегированным доступом. Если нет записи, тогда основываясь на найденном пересмотре доступа мы можем провести дальнейшее исследование и выяснить зачем этому пользователю требуется привилегированный доступ.

  • Установка соответствия ролей ответственностей. В Azure AD имеется почти 35 различных типов привилегированных ролей. В некой организации существует много различных заданий ролей. Каждое из такого различного задания роли имеет свои собственные ответственности. Эти ответственности определяют что они способны выполнять, а что нет в ИТ системах. Пересмотры доступа способствуют нам приводить в соответствие такие привилегированные роли с ответственностями заданий. Это помогает сопровождать некий вид стандартов при назначении полномочий привилегированного доступа.

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

  • MFA (Multi-Factor Authentication) для пользователей: MFA более не выступает неким не обязательным свойством безопасности; он является стандартом для современной аутентификации. Если ваша организация всё ещё не пользуется MFA, сейчас самое время задуматься об её применении. Вы можете применять MFA Azure, либо иным решением стороннего производителя для предоставления пользователям многофакторной аутентификации. Когда стоимость является проблемой, начните, по крайней мере, применять MFA для пользователей с привилегированным доступом. Имеется два способа, которым мы можем обязывать выполнение MFA:

    • В процессе подписи: Это распространено для пользователей, которые имеют MFA принудительно. Когда такой пользователь регистрируется через Azure AD, он будет проверяться при помощи MFA. Безопасность в процессе подписи может быть дополнительно усилена с применением политик условного доступа Azure AD.

    • При активировании полномочий привилегированной роли через PIM Azure AD: Мы также можем принуждать пользователей проходить через MFA когда они активируют своё привилегированное участие. Если такой пользователь ещё не был проверен с применением MFA (в процессе подписи), PIM заставит его выполнить это.

  • Группы стороны удостоверения: Когда PIM находится на своём месте, пользователи обязаны запрашивать получение привилегированного доступа включённым. Когда это процесс ручного удостоверения, такие запросы должны передаваться персоналу или группам для обработки. Рекомендуемым является создание некой группы безопасности и её использование в качестве такой удостоверяющей группы. Лучше применять удостоверяющую группу, нежели индивидуальный персонал, поскольку любой в группе способен обрабатывать запросы. Ниже приводятся ответственности удостоверяющей стороны:

    • Подтверждать запросы на привилегированный доступ.

    • Проверять будет ли имеющееся обоснование соответствовать требованиям бизнеса и операций.

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

    • Отзывать полномочия в случае подозрительного действия или злоупотребления полномочиями.

    • Выполнять периодические аудиты доступа и пересмотры для улучшения имеющихся установок PIM.

  • Защищать локальные привилегированные учётные записи: В некой гибридной среде учётные записи привилегированного доступа также существуют и в локальных системах. Точно так же важно защищать также и локальные привилегированные учётные записи. Такие учётные записи могут содержать локальных администраторов, администраторов домена, администраторов предприятия, администраторов хранилища и администраторов приложения. Такая защита локальных привилегированных учётных записей требует некоторого планирования и капиталовложений. Для этого вы можете применять продукты Microsoft, такие как MIM (Microsoft Identity Manager), или продукты сторонних производителей, например, Centrify.

Реализация

Я уже написал ряд блог постов, поясняющих как настраивать Azure PIM. Будьте любезны следовать им для реализации Azure PIMв своей среде:

AIP

До сих пор в этой главе мы обсуждали защиту идентификации. Хотя это и наиболее ценная часть в данной инфраструктуре, это не единственная ценность. В Главе 1, Основы Active Directory мы рассматривали как данные превращаются в новую нефть. Некоторые типы данных имеют большую ценность чем иные, причём такими типами данных с более высокой стоимостью выступают конфиденциальные/ чувствительные для персоны, группы, компании, организации или страны. Злоумышленники ищут идентификацию, так как скомпрометированные инфраструктуры идентификации позволяют им выполнять доступ к различным видам данных. Идентификация и полномочия доступа решают к какому виду данных некая персона может иметь доступ.

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

Rebeladmin Inc. является поставщиком управляемого обслуживания. Она имеет команду продаж из 10 представителей. Das выступает участником команды продаж. Все в этой команде продаж обладают доступом к некому совместному файловому ресурсу. Доступ к таким совместным файловым ресурсам управляется полномочиями NTFS. В таком разделяемом файловом ресурсе имеется некий файл Excel, которые потенциально содержат записи для всех потенциальных лидеров продаж той команды, в которой они работают. В точности как и все прочие участники команды, Das также имеет к нему доступ. Данные из этого файла очень чувствительны для бизнеса. Один из приятелей Das также работает над предоставлением управляемой службы и Das желает поделиться этим файлом со своим другом. Поскольку он имеет доступ к этому файлу, ничто не препятствует ему отправить его по электронной почте своему другу или скопировать его на USB устройство. В данном примере Das не имеет никакого привилегированного доступа, так как он не ИТ администратор. Ему не придётся взламывать чью- то ещё учётную запись или систему для получения этих сведений. В этом контексте он был бы способен он имел бы возможность нанести большой вред своей компании. Итак, как мы можем защищать чувствительные данные?

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

Классификация данных

Прежде чем защищать данные, нам требуется понимать какой вид данных нам требуется защищать и где они расположены. Для классификации данных AIP применяет метки (labels).

Моей дочери Salena сейчас 2 года. Она любит читать. Время от времени я беру её в библиотеку чтобы выбирать для ней книги. Когда она выбирает книги, она в основном смотрит на заголовки книг и помечает их. Такая метка ничто иное как просто цветовой код. Этот цветовой код относится к Оксфордовским уровням читателя. Каждый уровень имеет свой собственный цвет:

 

Рисунок 15-26



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

 

Рисунок 15-27



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

  • Canadian Bank Account Number

  • Canadian Driver's License Number

  • Canadian Health Service Number

  • Canadian Passport Number

  • Canadian Bank PHIN (Personal Health Identification Number)

  • Canadian Social Insurance Number

  • Chilean Identity Card Number

  • Chinese Resident Identity Card Number

  • Credit Card Number

  • EU Debit Card Number

  • EU Driver's License Number

  • EU National Identification Number

  • EU Passport Number

  • EU Social Security Number or Equivalent ID

  • EU Tax Identification Number

  • UK Driver's License Number

  • UK Electoral Roll Number

  • UK National Health Service Number

  • UK NINO (National Insurance Number)

  • US/UK Passport Number

  • US Bank Account Number

  • US Driver's License Number

  • US ITIN (Individual Taxpayer Identification Number)

  • US SSN (Social Security Number)

Наш следующий пример показывает как имеющиеся правила автоматической классификации помечают документы на основании их содержимого:

 

Рисунок 15-28



Я уже написал несколько блог постов относительно классификации. Вы можете получить к ним доступ по следующим ссылкам:

Azure RMS

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

Azure RMS способен на следующее:

  • Сопровождать Office 365 и локальные службы через подключения: Azure RMS бесшовно работает с Office 365. Он также способен защищать данные в локальных службах, таких как Exchange Server, SharePoint и сервер Windows. Всё это работает через подключения.

  • Поддерживать широкий диапазон устройств: Это не только служба Windows. Она работает с ПК и ноутбуками Windows, смартфонами Windows, компьютерами macOS, устройствами iOS и устройствами Android.

  • Поддерживает множество стандартов и соответствий: Azure RMS поддерживает такие стандарты безопасности:

  • FIPS 140-2

  • ISO/IEC 27001:2013

  • Аттестации SOC 2 SSAE 16/ISAE 3402

  • HIPAA BAA

  • EU Model Clause

  • FedRAMP как часть Azure AD в сертификации Office 365, выпускает FedRAMP Agency Authority для работы через HHS

  • PCI DSS Level 1

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

  • Отслеживание данных: Azure RMS позволяет нам выполнять мониторинг имеющегося доступа и использования защищённых данных, даже если они пребывают в совершенно удалённой сетевой среде. Применяя Azure RMS мы способны отвечать на следующие вопросы:

    • Кто пытался получать доступ к этому файлу и когда?

    • Получили ли предполагаемые пользователи доступ к этому файлу? Если да, то когда?

    • Был ли отказ в доступе к этому файлу для предполагаемого пользователя?

    • Продолжали ли предполагаемые пользователи предпринимать что бы то ни было когда им не был разрешён доступ (например, пытались распечатать документ или пытались переправить его электронной почтой)?

    • Где пользователи без авторизации пытались получить доступ к сведениям?

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

  • Поддержка широкого диапазона приложений: Применяя надлежащего клиента AIP, мы способны защищать разнообразные виды данных, применяя различные типы приложений. Azure RMS позволяет защищать следующее:

    • Все файлы Office (.doc, .docx, .xls)

    • Вырабатывать файлы PDF через любое поддерживаемое приложение, например Acrobat Reader, IP Viewer, Foxit Reader, а также приложения AIP.

    • PDF файлы через любое из приведённых поддерживаемых приложений.

Помимо этого, AIP SDK позволяет людям строить свои собственные приложения с поддержкой Azure RMS.

Сопоставление Azure RMS и AD RMS

В Главе 14, Службы Управления правами Active Directory, мы изучали Azure RMS, а потому вы наверное уже можете начинать размышлять над тем, а почему бы нам не воспользоваться AD RMS для защиты данных, раз он делает почти то же самое. Тем не менее, существуют некоторые значительные отличия между этими двумя службами:

  • По умолчанию, он не способен работать ни с какими устройствами и сетевыми средами: Azure RMS является облачной службой. Это к тому же управляемая служба. Её не требуется никаких дополнительных изменений конфигурации для того чтобы начать работать с мобильными устройствами.

    По умолчанию он поддерживает различные ОС, такие как Windows, iOS и Android. AD RMS требует некого мобильного расширения и ADFS для поддержки мобильных устройств. К тому же AD RMS требует дополнительных настроек для поддержки собственно защиты внешних данных. Для Azure RMS не имеет значения где располагаются данные. Он не требует никаких дополнительных настроек или компонентов для защиты данных во внешних сетевых средах.

  • Классификация данных: Azure RMS помогает с классификацией данных посредством использования меток. Это может быть классификация вручную или автоматический процесс классификации. Это способствует организациям в защите данных действенным способом. AD RMS не способен выполнять классификацию и пометку данных.

  • Реализация: Роль AD RMS не способна работать сама по себе. Она зависит от множества разнообразных ролей сервера, таких как ADFS, IIS, AD CS и AD DS. Следовательно, реализация требует планирования, навыков и ресурсов. После реализации все эти роли обязаны работать сообща для сопровождения жизнеспособности полученной службы AD RMS. С другой стороны, Azure RMS является управляемой службой. Нам не требуется беспокоиться относительно лежащих в её основе архитектуре и компонентах. Сам процесс реализации также не сложен. Он может обрабатывать любой рост в любой момент времени без каких либо изменений конфигурации.

  • Отслеживание документов и отзыв полномочий: Применяя Azure RMS, мы способны отслеживать документы и видеть когда они использовались, откуда к ним был осуществлён доступ и кто получал к ним доступ. Мы также способны настраивать уведомления по электронной почте с тем, чтобы когда некто осуществляет доступ к конкретному файлу,мы бы получали уведомление в виде электронного письма. Пр отслеживании документа, когда мы замечаем нечто предосудительное, мы можем пройти далее и отозвать полномочия у такой подозрительной партии/ партий. AD RMS не способен делать это. Я написал блог пост о том как мы можем отслеживать документ и отзывать доступ.

  • Новые свойства и исправление ошибок: Azure RMS выступает в роли управляемой службы на основе облака. Тем самым, она получает новые свойства, исправления ошибок и расширение функциональности на более частой основе. На момент написания данного материала, не планировалось обновления свойств для AD RMS.

Как работает Azure RMS?

До сих пор мы обсуждали возможности AIP и Azure RMS. Но как это всё работает? Какие именно технологии стоят за этим? В данном разделе мы намерены рассмотреть это подробнее.

На неком верхнем уровне я бы объяснил процесс Azure RMS защиты документа следующим образом:

  • Когда некий пользователь защищает какой- то документ, Azure RMS шифрует всё содержимое его файла присоединяет к нему некую политику доступа. Данная политика принимает решение что прочие пользователи могут делать с его защищёнными данными.

  • Когда прочие пользователи получают доступ к такому файлу (после успешной аутентификации Azure AD), Azure RMS расшифровывает этот файл и применяет к нему некую политику доступа.

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

Наилучшим способом понимания тех технологий, которые стоят за процессами шифрования и дешифрации состоит в проходе некого сценария. Andrew, некий потребитель Rebeladmin Inc., отправил документ с чувствительными сведениями другому потребителю, Selena. Он не желает чтобы кто- то ещё из его команды продаж имел его, поэтому он намерен применять AIP для защиты данного документа. Это самый первый раз, когда оба этих пользователя используют данное решение:

 

Рисунок 15-29



Так как это самый первый раз, когда Andrew и Selena используют данный AIP, им обоим требуется пройти через одноразовый процесс подготовки среды пользователя:

  1. Прежде всего, Andrew устанавливает в своём ПК необходимого клиента AIP. Его можно скачать по ссылке.

  2. Затем для него выполняется аутентификация в установленном AIP с применением своей учётной записи Azure AD. После успешной аутентификации, его сеанс перенаправляется соответствующему арендатору AIP. Далее он выпускает некий сертификат, которыйAndrew может применять в последующем для аутентификации вAzure RMS. Этот сертификат будет автоматически обновляться установленным клиентом AIP раз в 31 день. Некая копия этого сертификата также хранится в Azure. Если этот пользователь изменяет своё устройство, тогда Azure RMS повторно создаёт необходимый сертификат с помощью тех же самых ключей:

     

    Рисунок 15-30



    Теперь процесс подготовки среды этого пользователя выполнен. Наш следующий шаг состоит в защите самого документа Word.

  3. Andrew следует далее и делает запрос у своего клиента AIP на защиту соответствующего документа. Его клиент AIP создаёт случайный ключ AES и шифрует с его помощью всё содержимое документа. Этот ключ имеет название Content Key (Ключа содержания) и он применяет алгоритм симметричного шифрования AES. Значение длины ключа составляет 128 или 256 бит.

  4. Затем этот клиент AIP создаёт некую политику, которая содержит надлежащие права доступа для получателя Selena. Это можно сделать при помощи некого шаблона политики, который уже был создан администратором; в противном случае данный пользователь может создать некую произвольную политику. После того как политика помещена на своё место, наша система зашифрует эту политику и её симметричный Ключ содержимого при помощи общедоступного ключа данной организации. Этот ключ был изъят самим клиентом AIP в процессе инициализации подготовки среды пользователя. Затем эти политика и Ключ содержимого подписываются сертификатом Andrew, который был получен в том же самом процессе подготовки.

  5. На следующем этапе данный клиент AIP создаёт некий Защищённый документ, который содержит сам зашифрованный документ, а также его политику,которая уже была зашифрована и подписана.

    Когда система создала Защищённый документ, Andrew отправляет его Selena через электронную почту:

     

    Рисунок 15-31



    После того как Selena получает Защищённый документ, она пытается его открыть. Так как это самый первый раз, когда она пробует открыть Защищённый документ, ей необходимо выполнить весь процесс подготовки среды пользователя, прежде чем она начнёт применять свой AIP.

  6. После успешной аутентификации Selena, её система выполняет выборку необходимой политики и сертификат Andrew из Защищённого документа и затем переправляет его в Azure RMS.

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

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

  9. На этом шаге значение Ключа содержимого повторно шифруется при помощи общедоступного ключа RSA Selena. Затем он присоединяется к правам пользователя.

  10. На данном шаге, созданные на шагах 8 и 9 файлы доставляются в компьютер Selena.

  11. Её клиент AIP расшифровывает полученные Ключ пользователя и Ключ содержимого применяя Частный ключ Selena, который был изъят в процессе инициализации подготовки её среды пользователя. Данный процесс высвобождает список Права пользователя и значение Ключ содержимого.

  12. При помощи Ключа содержимого, её клиент AIP расшифровывает зашифрованный документ. Этот клиент AIP также передаёт полученный перечень прав в соответствующее приложение и само приложение принимает решение что Selena способна делать с этим документом.

Это завершает процесс расшифровки, и в самом конце, Selena получила возможность открыть Защищённый документ. Этот предыдущий сценарий показал нам в точности то, что происходит за сценой когда мы защищаем и употребляем чувствительные сведения при помощи Azure RMS.

Сканер AIP

В некой гибридной облачной среде данные также хранятся и в локальных серверах. В основном, они запоминаются в совместных файловых ресурсах Microsoft. Данные к тому же могут быть доступны через локальные серверы SharePoint. Сканер AIP позволяет нам обнаруживать и применять те же самые метки, которые были заданы в политиках AIP для данных, сохранённых в совместно применяемых локальных файлах или серверах SharePoint:

 

Рисунок 15-32



Сканер AIP поступает как часть клиента AIP. Его можно выгрузить по ссылке. Сканер AIP применяет некую SQL базу данных для хранения самих настроек сканера. Сканер AIP проверяется самим арендатором AIP на защиту тех же самых типов данных.

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

[Замечание]Замечание

Я написал пошаговое руководство, которое поясняет все этапы реализации AIP сканера.

Реализация AIP

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

Выводы

Безопасность инфраструктуры AD является обширной темой для изложения в одной главе. Безопасность AD зависит не только от AD DC; она полагается на все уровни общей модели 7 уровней OSI. В самом начале этой главы мы изучили аутентификацию Kerberos и что в самом деле происходит за сценой когда некий пользователь пытается получить доступ к ресурсам в своей среде AD. Далее мы переместились к делегированию контроля полномочий, в котором мы изучили то, как делегировать полномочия пользователям, позволяя им выполнять лишь определённые административные задачи. После этого мы перешли к разделу атак передачи значения хэша (Pass-the-hash), где мы узнали об атаках передачи значения хэша.

Microsoft ввёл новые инструменты и свойства, которые могут применяться для предотвращения атак передачи значения хэша. Группа безопасности Защищённого пользователя, режим ограниченного RDP, политики аутентификации и Бункеры политик аутентификации это часть из этого. В данной главе мы изучили то как эти новые инструменты работают и как мы можем реализовывать их в своей среде AD. Далее мы перешли к администрированию JIT и JEA. Обе эти технологии могут применяться для управления привилегиями неким действенным и безопасным образом.

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

В своей следующей главе мы рассмотрим управление AD при помощи PowerShell. Реализация JEA также будет рассмотрена как часть этого.