Личный кабинет
akravchenko.jpgАлександр Кравченко

Специалисты функции ИБ должны знать слабые места своей инфраструктуры, а также тактики и техники злоумышленников, которые они используют, чтобы атаковать организации. Эти техники постоянно меняются и развиваются, а значит, следует не только отслеживать деятельность хакеров (для этого можно использовать ресурсы Positive Technologies, Kaspersky, BI.ZONE), но и проверять инфраструктуру компании, устраивая периодические и участвуя в программах .

Атака злоумышленника на инфраструктуру часто затрагивает систему каталогов Active Directory (AD). Компрометация AD – один из шагов на пути развития атаки на пути к целевой системе. К компрометации домена может привести ряд факторов, таких как пробелы в разворачивании антивирусной защиты, запоздалое обновление приложений, операционных систем и их компонентов, неправильная конфигурация систем.

В этой статье будут рассмотрены примеры атак, уязвимостей и недостатков конфигурации, которые используют злоумышленники для компрометации доменной инфраструктуры, и даны рекомендации по повышению безопасности службы каталогов Active Directory.

Повышение безопасности службы Kerberos

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

Атака Golden Ticket. Злоумышленник с правами администратора домена может создать билет Kerberos с максимальным уровнем привилегий и с очень длинным сроком действия. В итоге злоумышленник может получить возможность аутентифицироваться под любым пользователем домена, длительное время находиться и скрытно передвигаться по доменной инфраструктуре.

Атака Silver Ticket. Злоумышленник с привилегиями пользователя домена со скомпрометированного узла может создать билет Kerberos для доступа к конкретному сервису или ресурсу без знания пароля. В итоге злоумышленник может получить доступ к указанному сервису или ресурсу.

Атака Kerberoasting. Злоумышленник с привилегиями пользователя домена может запросить билет TGS (Ticket Granting Service) ко всем SPN (Service Principal Name) в домене. В итоге злоумышленник может получить пароль сервисной учетной записи.

Атака ShadowCoerce. Злоумышленник без прав в доменной инфраструктуре через общедоступный эксплойт может проэксплуатировать уязвимость протокола MS-FSRVP службы теневого копирования (VSS) Active Directory. В итоге злоумышленник может получить учетную запись с правами контроллера домена.

Атака Shadow Credentials. Злоумышленник без прав в доменной инфраструктуре может использовать атрибут msDS-KeyCredentialLink для компрометации атакуемой учетной записи Active Directory. В итоге злоумышленник может получить доступ к доменной учетной записи.

Атака AS-REP Roasting. Злоумышленник без прав в доменной инфраструктуре может осуществить поиск учетной записи, для которой установлено свойство Do not require Kerberos preauthentication, и далее запросить билет Kerberos. В итоге злоумышленник может получить билет Kerberos для учетной записи, с помощью которого может быть получен пароль соответствующей учетной записи.

Атака sAMAccountName spoofing. Злоумышленник без прав в доменной инфраструктуре может использовать уязвимости «Подмена имени в Active Directory» (Name impersonation, CVE-2021-42278) и «Подделка запросов к службе KDC» (KDC bamboozling, CVE-2021-42287) для создания учетной записи с именем, похожим на имя легитимной учетной записи в Active Directory. В итоге злоумышленник может получить доступ к ресурсам, предназначенным для легитимной учетной записи.

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

Рекомендации по повышению безопасности:

  • не применять в инфраструктуре устаревшие версии операционных систем и программного обеспечения;
  • настроить для протокола Kerberos использование алгоритма шифрования AES вместо RC4;
  • осуществлять проверку подлинности сертификата атрибутов привилегий (Privilege Attribute Certificate, PAC) для билетов TGS;
  • использовать сложные и длинные (не менее 25 символов) пароли для сервисных учетных записей и регулярно их менять. Использовать MFA для всех пользователей домена;
  • использовать механизм управляемых учетных записей служб (Managed Service Accounts, MSA). MSA поддерживает ряд основных сервисов и служб, применяемых в корпоративной инфраструктуре (например, IIS, AD LDS, SQL Server, MS Exchange). Этот механизм автоматически меняет пароли, генерирует комплексный случайный пароль из 240 символов, что значительно повышает сложность подбора пароля, а с учетом смены пароля по умолчанию раз в 30 дней — делает подбор почти невозможным;
  • придерживаться принципа минимальных привилегий для всех типов учетных записей, включая привилегии, получаемые в результате членства в группах, например в группе администраторов домена;
  • ограничить привилегии администратора домена контроллерами домена и отдельными серверами. Выделить под остальные административные функции отдельные учетные записи;
  • установить минимально возможную периодичность смены пароля для учетной записи krbtgt;
  • отключить на контроллерах домена службу теневого копирования (VSS) с помощью консоли управления;
  • использовать механизмы EPA (Extended Protection for Authentication) и SSO (single sign-on) совместно с MFA для защиты узлов/ресурсов от атаки ShadowCoerce;
  • обеспечить подпись SMB-пакетов со стороны как серверов, так и клиентов во всей доменной инфраструктуре;
  • запретить участникам группы Everybody изменять атрибут msDS-KeyCredentialLink для любой учетной записи в домене. Если это по какой-то причине невозможно выполнить, организовать такой запрет для привилегированных учетных записей;
  • настроить аудит всего входящего управления объектами для учетных записей с высоким уровнем привилегий;
  • использовать механизм Flexible Authentication Secure Tunneling (FAST, Kerberos armoring) для усиления защиты аутентификации и обмена TGS-билетами. Этот механизм обеспечивает защищенный канал связи между клиентом Kerberos и центром распространения ключей;
  • настроить регулярное обновление службы AD и ее компонентов. Следует организовать предварительное тестирование обновлений перед их установкой;
  • определить учетные записи, для которых отключена предварительная аутентификация, и, если возможно, активировать ее;
  • не использовать неограниченное делегирование. Вместо этого настроить ограниченное делегирование, поскольку серверы с ограниченным делегированием хранят только Service Ticket (ST), а не TGT;
  • для привилегированных учетных записей включить параметр Account is sensitive and cannot be delegated;
  • использовать группу Protected Users. Начиная с Windows Server 2012 члены этой группы не могут быть делегированы;
  • провести в инфраструктуре аудит учетных записей, обладающих правами на запись атрибута msDS-AllowedToActOnBehalfOfOtherIdentity, и оставить эту привилегию только для тех учетных записей, которым она необходима;
  • проводить аудит информационной безопасности домена с помощью PingCastle или его аналогов.

Повышение безопасности учетных записей

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

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

Небезопасное использование встроенных групп. Злоумышленник, получивший доступ к учетной записи, состоящей в группах Account Operators или Organization Management, может осуществить компрометацию домена.

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

Недостаточный контроль прав доступа. Злоумышленник, использующий учетные записи пользователей домена, обладающих избыточной привилегией AllExtendedRights, может получить полный контроль над различными узлами ЛВС, так как указанная привилегия позволяет среди прочего с помощью специальных запросов к службе Active Directory получить пароли локальных администраторов ряда узлов.

Рекомендации по повышению безопасности:

  • не использовать одинаковые учетные данные для доступа к различным ресурсам. Установить стойкие пароли для доступа к ресурсам. Использовать двухфакторную аутентификацию для доступа к критически важным ресурсам. Реализовать строгую парольную политику;
  • для централизованного управления паролями локальных администраторов в доменной инфраструктуре рекомендуется использовать Local Administrator Password Solution (LAPS). С помощью LAPS можно настроить автоматическую генерацию паролей локальных администраторов для каждого узла в домене, а также установить расписание их смены. При настройке LAPS важно ограничить возможность получения учетных данных из LAPS для непривилегированных пользователей домена;
  • удалить учетные записи из групп Account Operators и Organization Management, не использовать их для делегированного администрирования. Для удаления членов группы можно воспользоваться утилитой из пакета AD_Sec_Tools;
  • обнулить значение атрибута MachineAccountQuota, определяющего, какое количество учетных записей рабочих станций может создать пользователь в домене. Для этого необходимо выполнить следующую команду: Set-ADDomain (Get-ADDomain) .distinguishedname -Replace @{"ms-ds-MachineAccountQuota"="0"}.

Повышение безопасности центра сертификации

Центр сертификации (certification authority, CA) обеспечивает выдачу и управление сертификатами для аутентификации узлов, пользователей и других объектов в AD. Ниже приведены примеры ошибок конфигурации центра сертификации, которые злоумышленник может использовать для проведения атаки, а также рекомендации по их исправлению и повышению общего уровня безопасности CA.

Небезопасная конфигурация CA-сервера. Наличие флага EDITF_ATTRIBUTESUBJECTALTNAME2 позволяет задать произвольное альтернативное имя субъекта (Subject Alternative Name, SAN) для всех сертификатов, несмотря на конфигурацию шаблона сертификата. Злоумышленник с привилегиями пользователя домена может выбрать любой шаблон сертификата, который разрешает аутентификацию клиента, доступный в том числе другим непривилегированным пользователям (например, шаблон User по умолчанию), и получить с его помощью привилегии администратора домена (или любого другого активного пользователя / учетной записи рабочей станции).

Небезопасная конфигурация шаблона сертификата. Шаблон сертификата Template на узле может содержать известные недостатки конфигурации, которые позволяют злоумышленнику получить сертификат на имя любой учетной записи путем указания альтернативного имени.

Небезопасное использование веб-служб в центре сертификации. Если в центре сертификации настроена веб-служба регистрации сертификатов Web Enrollment и при этом на веб-сервере Microsoft IIS не используется Extended Protection forAuthentification, то в случае, если доступен подходящий шаблон сертификата, возможно использование NTLM-аутентификации учетной записи рабочей станции для получения сертификата доступа к этой рабочей станции.

Небезопасные права доступа к шаблону сертификата. Если пользователям группы Authenticated Users доступны права на изменение владельца шаблона (право WriteOwner), права доступа к шаблону (право WriteDACL), а также право изменять любые свойства шаблона сертификата (право WriteProperty), злоумышленник может воспользоваться такой учетной записью, чтобы изменить конфигурацию шаблона для дальнейшего развития атаки.

Рекомендации по усилению защищенности:

  • отключить на CA-сервере использование флага EDITF_ATTRIBUTESUBJECTALTNAME2. Если этот флаг необходим, рекомендуется использовать функции подтверждения запросов диспетчером центра сертификации и подписания запросов авторизованным сертификатом;
  • если нет необходимости получать альтернативное имя в запросе шаблона сертификата, эту опцию следует отключить. Если указание альтернативного имени в запросе является необходимым, то рекомендуется:
    • ограничить список пользователей, которые могут использовать этот шаблон;
    • убедиться, что шаблон сертификата не содержит избыточных целей Extended Key Usage (EKU);
    • если не требуется сопоставление альтернативного имени субъекта с учетной записью домена при Kerberos-аутентификации, рекомендуется отключить эту возможность. Для этого необходимо задать нулевое значение ключа реестра UseSubjectAltName в ветке HKLM\SYSTEM\CurrentControlSet\Services\Kdc на всех контроллерах домена. В этом случае злоумышленник сможет указать альтернативное имя в запросе на получение сертификата, но не сможет использовать альтернативное имя при аутентификации;
  • для снижения риска проведения подобных атак в центре сертификации рекомендуется реализовать меры, подготовленные компанией Microsoft;
  • рассмотреть возможность отключения веб-службы регистрации сертификатов Web Enrollment;
  • рассмотреть возможность отключения аутентификации с использованием протокола NTLM;
  • настроить Extended Protection for Authentication на веб-сервере Microsoft IIS;
  • пересмотреть права доступа и убедиться, что такие разрешения безопасности, как WriteOwner, WriteDACL, WriteProperty, FullControl и Owner, выданы только ограниченному числу привилегированных пользователей;
  • реализовать контроль за хранением сертификатов в файловых системах;
  • провести аудит информационной безопасности всех шаблонов сертификатов для устранения известных недостатков конфигурации. Для этого могут быть использованы следующие утилиты:
    • PSPKIAudit Invoke-PKIAudi;
    • Certify Certify.exe find /vulnerable [/hideAdmins];
    • Certutil certutil.exe -TCAInfo (вывод шаблонов сертификатов) certutil.exe -v –dsTemplate (вывод разрешений шаблонов).

Следует отметить, что уровень защиты системы Active Directory от атак злоумышленников неразрывно связан с реализацией и системы в организации.