Куда я попал?
Вы попали в сервис, который помогает корпоративным службам безопасности строить свои рабочие процессы: управление рисками, контроль соответствия требованиям, учет активов, планирование и сопровождение защитных мер на всем их жизненном цикле, распределение задач и т.д.
Еще SECURITM является платформой для обмена опытом и наработками между участниками сообщества служб безопасности.
Подробнее
 

Отключение неиспользуемых учетных записей в домене Active Directory

Цель: сокращение возможностей злоумышленника по компрометации учетных записей.

Политика:
  • Неактивные более 45 дней учетные записи пользователей подлежат отключению.
  • Неактивные более 60 дней учетные записи компьютеров и серверов подлежат удалению.
Автоматический регулярный поиск неактивных учетных записей и уведомление ответственного за защитную меру осуществляет скрипт, запускаемый ежедневно.
Пример реализации скрипта приведен в заметке к защитной мере

Инструкция
Началом для процесса является получение писем от скрипта аудита с заголовками:
  • Чистка AD: Users 
  • Чистка AD: Computers
Алгоритм обработки писем:
  1. Учетные записи пользователей отключаются и переносятся в юнит domain.local/Отключенные учетные записи/
  2. Учетные записи компьютеров удаляются или переносятся в юнит domain.local/Рабочие станции/Отключенные/
  3. В случае необходимости, неясности - проводятся консультации с Отделом ИТ или с владельцами отключаемой учетной записи
Классификация
Тип
Организационная ? Организационные (процедурные, административные) меры Это меры направленные на организацию деятельности пользователей. К организационным мерам относят так же выпуск документации - инструкций, регламентов, стандарто...
Техническая ? Технические (логические) меры Технологические решения и меры, реализуемые в организации для снижения вероятности реализации рисков безопасности и их воздействия на организацию. Внутри орган...
Корректирующая ? Корректирующие меры Эти меры направлены на возвращение системы в нормальное состояние после инцидента безопасности. Примеры: Восстановление операционной системы или данных из резе...
Компенсирующая ? Компенсирующие меры Обеспечивают альтернативные варианты защиты, когда иные меры либо невозможно, либо слишком дорого реализовать.
Реализация
Вручную
Периодичность
По событию
Ответственный
Не определено
Инструменты
Не определено
Предшествующие меры
Не требуется
Следующие меры
Не определено

Исполнение требований

Стандарт Банка России № СТО БР ИББС-1.0-2014 от 01.06.2014 "Обеспечение информационной безопасности организаций банковской системы Российской Федерации - Общие положения":
Косвенно Р. 7 п. 8 п.п. 4
7.8.4. Работники организации БС РФ, в том числе администраторы автоматизированных систем и средств защиты информации, не должны обладать полномочиями для бесконтрольного создания, авторизации, уничтожения и изменения платежной информации, а также проведения несанкционированных операций по изменению состояния банковских счетов.
Косвенно Р. 7 п. 2 п.п. 3
7.2.3. С целью предупреждения возникновения и снижения рисков нарушения ИБ не допускается совмещения в рамках одной роли следующих функций: разработки и сопровождения АБС/ПО, их разработки и эксплуатации, сопровождения и эксплуатации, администратора системы и администратора ИБ, выполнения операций в АБС и контроля их выполнения.
CIS Critical Security Controls v8 (The 18 CIS CSC):
Косвенно 13.9 
13.9 Deploy Port-Level Access Control
Deploy port-level access control. Port-level access control utilizes 802.1x, or similar network access control protocols, such as certificates, and may incorporate user and/or device authentication. 
Косвенно 6.2
6.2 Establish an Access Revoking Process 
Establish and follow a process, preferably automated, for revoking access to enterprise assets, through disabling accounts immediately upon termination, rights revocation, or role change of a user. Disabling accounts, instead of deleting accounts, may be necessary to preserve audit trails. 
Косвенно 5.3
5.3 Disable Dormant Accounts 
Delete or disable any dormant accounts after a period of 45 days of inactivity, where supported. 
Косвенно 5.1
5.1 Establish and Maintain an Inventory of Accounts 
Establish and maintain an inventory of all accounts managed in the enterprise. The inventory must include both user and administrator accounts. The inventory, at a minimum, should contain the person’s name, username, start/ stop dates, and department. Validate that all active accounts are authorized, on a recurring schedule at a minimum quarterly, or more frequently 
Косвенно 5.4
5.4 Restrict Administrator Privileges to Dedicated Administrator Accounts 
Restrict administrator privileges to dedicated administrator accounts on enterprise assets. Conduct general computing activities, such as internet browsing, email, and productivity suite use, from the user’s primary, nonprivileged account. 
ГОСТ Р № 57580.1-2017 от 01.01.2018 "Безопасность финансовых (банковских) операций. Защита информации финансовых организаций. Базовый состав организационных и технических мер. Раздел 7. Требования к системе защиты информации":
Косвенно УЗП.2
УЗП.2 Контроль соответствия фактического состава разблокированных учетных записей фактическому составу легальных субъектов логического доступа
Косвенно УЗП.16
УЗП.16 Реализация контроля со стороны распорядителя логического доступа целесообразности дальнейшего предоставления прав логического доступа, не использованных субъектами на протяжении периода времени, указанного в мерах УЗП.14, УЗП.15 настоящей таблицы
Косвенно УЗП.15
УЗП.15 Установление фактов неиспользования субъектами логического доступа предоставленных им прав на осуществление логического доступа на протяжении периода времени, превышающего 45 дней
Косвенно УЗП.З
УЗП.З Контроль отсутствия незаблокированных учетных записей:
 - уволенных работников;
 - работников, отсутствующих на рабочем месте более 90 календарных дней;
 - работников внешних (подрядных) организаций, прекративших свою деятельность в организации
Косвенно УЗП.12
УЗП.12 Контроль необходимости отзыва прав субъектов логического доступа при изменении их должностных обязанностей
Косвенно УЗП.4
УЗП.4 Контроль отсутствия незаблокированных учетных записей неопределенного целевого назначения
Косвенно УЗП.14
УЗП.14 Установление фактов неиспользования субъектами логического доступа предоставленных им прав на осуществление логического доступа на протяжении периода времени, превышающего 90 дней
Косвенно УЗП.13
УЗП.13 Контроль прекращения предоставления логического доступа и блокирование учетных записей при истечении периода (срока) предоставления логического доступа
Косвенно РД.19
РД.19 Смена паролей пользователей не реже одного раза в год
Косвенно РД.20
РД.20 Смена паролей эксплуатационного персонала не реже одного раза в квартал
Косвенно РД.21
РД.21 Использование пользователями паролей длиной не менее восьми символов
Косвенно УЗП.8
УЗП.8 Хранение эталонной информации о предоставленных правах логического доступа и обеспечение целостности указанной информации
Косвенно РД.24
РД.24 Запрет использования в качестве паролей субъектов логического доступа легко вычисляемых сочетаний букв и цифр (например, имена, фамилии, наименования, общепринятые сокращения)
Косвенно РД.23
РД.23 Использование при формировании паролей субъектов логического доступа символов, включающих буквы (в верхнем и нижнем регистрах) и цифры
Косвенно РД.22
РД.22 Использование эксплуатационным персоналом паролей длиной не менее шестнадцати символов
Косвенно РД.9
РД.9 Запрет использования учетных записей субъектов логического доступа с незаданными аутентификационными данными или заданными по умолчанию разработчиком ресурса доступа, в том числе разработчиком АС
Косвенно РД.28
РД.28 Регистрация персонификации, выдачи (передачи) и уничтожения персональных технических устройств аутентификации, реализующих многофакторную аутентификацию
Косвенно УЗП.9
УЗП.9 Контроль соответствия фактических прав логического доступа эталонной информации о предоставленных правах логического доступа
Косвенно УЗП.10
УЗП.10 Исключение возможного бесконтрольного самостоятельного расширения пользователями предоставленных им прав логического доступа
NIST Cybersecurity Framework (RU):
Косвенно PR.AC-1
PR.AC-1: Для авторизованных устройств, пользователей и процессов выдаются, управляются, верифицируются, аннулируются и проверяются идентификационные и учетные данные
Косвенно PR.AC-4
PR.AC-4: При предоставлении разрешения на доступ и авторизации используется принцип наименьших привилегий и разделения обязанностей
Косвенно PR.IP-11
PR.IP-11: Кибербезопасность включена в практику работы с персоналом (например, ограничение доступа, проверка персонала) 
Приказ ФСТЭК России № 21 от 18.02.2013 "Состав и содержание мер по обеспечению безопасности персональных данных, необходимых для обеспечения каждого из уровней защищенности персональных данных":
АНЗ.5 АНЗ.5 Контроль правил генерации и смены паролей пользователей, заведения и удаления учетных записей пользователей, реализации правил разграничения доступа, полномочий пользователей в информационной системе
УПД.1 УПД.1 Управление (заведение, активация, блокирование и уничтожение) учетными записями пользователей, в том числе внешних пользователей
Косвенно УПД.5 УПД.5 Назначение минимально необходимых прав и привилегий пользователям, администраторам и лицам, обеспечивающим функционирование информационной системы
Косвенно УПД.4 УПД.4 Разделение полномочий (ролей) пользователей, администраторов и лиц, обеспечивающих функционирование информационной системы
Косвенно ЗИС.1 ЗИС.1 Разделение в информационной системе функций по управлению (администрированию) информационной системой, управлению (администрированию) системой защиты персональных данных, функций по обработке персональных данных и иных функций информационной системы
Косвенно ИАФ.З ИАФ.З Управление идентификаторами, в том числе создание, присвоение, уничтожение идентификаторов
Международный стандарт ISO № 27001 от 01.10.2013 "Информационные технологии - Методы защиты - Системы менеджмента информационной безопасности - Требования - Приложение А":
Косвенно A.9.2.1 A.9.2.1 Регистрация и отмена регистрации пользователя
Средства реализации: Должен быть внедрен формализованный процесс регистрации и отмены регистрации пользователей, обеспечивающий возможность назначения прав доступа
Косвенно A.9.2.4 A.9.2.4 Управление секретной информацией аутентификации пользователей
Средства реализации: Присваивание секретной информации аутентификации должно быть контролируемым через формализованный процесс управления.
Косвенно A.9.2.6 A.9.2.6 Отмена или изменение прав доступа
Средства реализации: Права доступа к информации и устройствам обработки информации всех сотрудников и внешних пользователей должны быть отменены после завершения трудовых отношений, контракта или соглашения.
Косвенно A.9.4.2 A.9.4.2 Безопасные процедуры входа в систему
Средства реализации: Там, где это требуется политикой контроля доступа, доступ к системам и приложениям должен осуществляться в соответствии с безопасной процедурой входа в систему.
Косвенно A.9.4.3 A.9.4.3 Система управления паролями
Средства реализации: Системы управления паролями должны быть диалоговыми и гарантировать пароли надлежащего качества.
Косвенно A.9.2.2 A.9.2.2 Предоставление доступа пользователю
Средства реализации: Должен быть внедрен формализованный процесс предоставления доступа пользователям для назначения или отмены прав всем типам пользователей ко всем системам и услугам.
Косвенно A.9.2.3 A.9.2.3 Управление привилегированными правами доступа
Средства реализации: Назначение и использование привилегированных прав доступа должно быть ограниченным и контролируемым.
Косвенно A.9.3.1 A.9.3.1 Использование секретной информации аутентификации
Средства реализации: Пользователи обязаны следовать правилам организации при использовании секретной аутентификационной информации.
CIS Critical Security Controls v7.1 (SANS Top 20):
CSC 16.8 CSC 16.8 Disable Any Unassociated Accounts
Disable any account that cannot be associated with a business process or business owner.
CSC 16.9 CSC 16.9 Disable Dormant Accounts
Automatically disable dormant accounts after a set period of inactivity.
CSC 16.7 CSC 16.7 Establish Process for Revoking Access
Establish and follow an automated process for revoking system access by disabling accounts immediately upon termination or change of responsibilities of an employee or contractor . Disabling these accounts, instead of deleting accounts, allows preservation of audit trails.
Косвенно CSC 4.1 CSC 4.1 Maintain Inventory of Administrative Accounts
Use automated tools to inventory all administrative accounts, including domain and local accounts, to ensure that only authorized individuals have elevated privileges.
Косвенно CSC 16.10 CSC 16.10 Ensure All Accounts Have An Expiration Date
Ensure that all accounts have an expiration date that is monitored and enforced.
Косвенно CSC 1.7 CSC 1.7 Deploy Port Level Access Control
Utilize port level access control, following 802.1x standards, to control which devices can authenticate to the network. The authentication system shall be tied into the hardware asset inventory data to ensure only authorized devices can connect to the network.
Косвенно CSC 20.8 CSC 20.8 Control and Monitor Accounts Associated with Penetration Testing
Any user or system accounts used to perform penetration testing should be controlled and monitored to make sure they are only being used for legitimate purposes, and are removed or restored to normal function after testing is over.
Косвенно CSC 16.6 CSC 16.6 Maintain an Inventory of Accounts
Maintain an inventory of all accounts organized by authentication system.
Косвенно CSC 4.3 CSC 4.3 Ensure the Use of Dedicated Administrative Accounts
Ensure that all users with administrative account access use a dedicated or secondary account for elevated activities. This account should only be used for administrative activities and not internet browsing, email, or similar activities.
Приказ ФСТЭК России № 17 от 11.02.2013 "Требования о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах":
УПД.1 УПД.1 Управление (заведение, активация, блокирование и уничтожение) учетными записями пользователей, в том числе внешних пользователей
АНЗ.5 АНЗ.5 Контроль правил генерации и смены паролей пользователей, заведения и удаления учетных записей пользователей, реализации правил разграничения доступом, полномочий пользователей в информационной системе
Косвенно УПД.5 УПД.5 Назначение минимально необходимых прав и привилегий пользователям, администраторам и лицам, обеспечивающим функционирование информационной системы
Косвенно УПД.4 УПД.4 Разделение полномочий (ролей) пользователей, администраторов и лиц, обеспечивающих функционирование информационной системы
Косвенно ЗИС.1 ЗИС.1 Разделение в информационной системе функций по управлению (администрированию) информационной системой, управлению (администрированию) системой защиты информации, функций по обработке информации и иных функций информационной системы
Косвенно ИАФ.3 ИАФ.3 Управление идентификаторами, в том числе создание, присвоение, уничтожение идентификаторов
SWIFT Customer Security Controls Framework v2022:
1 - 1.2 Operating System Account Control
1.2 Operating System Privileged Account Control
Косвенно 4 - 4.1 Password Policy
4.1 Password Policy
Косвенно 4 - 4.2 Multi-Factor Authentication
4.2 Multi-Factor Authentication
Косвенно 5 - 5.2 Token Management
5.2 Token Management
Косвенно 5 - 5.4 Physical and Logical Password Storage
5.4 Physical and Logical Password Storage
Приказ ФСТЭК России № 31 от 14.03.2014 "Состав мер защиты информации и их базовые наборы для соответствующего класса защищенности автоматизированной системы управления":
УПД.1 УПД.1 Управление учетными записями пользователей
ИАФ.3 ИАФ.3 Управление идентификаторами
Косвенно УПД.5 УПД.5 Назначение минимально необходимых прав и привилегий
Косвенно УПД.4 УПД.4 Разделение полномочий (ролей) пользователей
Косвенно ЗИС.1 ЗИС.1 Разделение функций по управлению (администрированию) информационной (автоматизированной) системой с иными функциями
NIST Cybersecurity Framework (EN):
PR.AC-1 PR.AC-1: Identities and credentials are issued, managed, verified, revoked, and audited for authorized devices, users and processes
Косвенно PR.AC-4 PR.AC-4: Access permissions and authorizations are managed, incorporating the principles of least privilege and separation of duties
Косвенно PR.IP-11 PR.IP-11: Cybersecurity is included in human resources practices (e.g., deprovisioning, personnel screening)
Приказ ФСТЭК России № 239 от 25.12.2017 "Состав мер по обеспечению безопасности для значимого объекта соответствующей категории значимости":
УПД.1 УПД.1 Управление учетными записями пользователей
Косвенно УПД.5 УПД.5 Назначение минимально необходимых прав и привилегий
Косвенно УПД.4 УПД.4 Разделение полномочий (ролей) пользователей
Косвенно ЗИС.1 ЗИС.1 Разделение функций по управлению (администрированию) информационной (автоматизированной) системой с иными функциями
Косвенно ИАФ.3 ИАФ.3 Управление идентификаторами

Комментарии 1

11 месяцев назад

Скрипт аудита AD

Скрипт PowerShell настраивается через планировщик задач на ежедневный запуск. Проверяет наличие несоответствий в AD и уведомляет подразделение ИБ по электронной почте. 
# импортируем список серверов из Active Directory (для этого в powershell должен быть дополнительно установлен модуль RSAT)
import-module activedirectory
$computers = Get-ADComputer -SearchBase "DC=domain,DC=local" -Filter * -Properties CanonicalName, whenCreated, whenChanged, Description, LastLogonDate, LastBadPasswordAttempt, IPv4Address, CanonicalName
$users = Get-ADUser  -SearchBase "DC=domain,DC=local" -Filter * -Properties SamAccountName, 
        Name, Company, Department, Description, Office, telephoneNumber, whenCreated, whenChanged, LastLogonDate, 
        LastBadPasswordAttempt, CanonicalName, pwdLastSet, AllowReversiblePasswordEncryption

# Чистка AD: Computers
$exceptions = "PC1","PC2"
$oldDate = (Get-Date).AddDays(-45)
[array]$oldPc = $null
foreach ($comp in $computers)
{
    if($exceptions -ccontains $comp.Name) # Исключения по имени ПК
    {
        Write-Output "Exception: $($comp.Name)"
        continue
    }
     if($comp.DistinguishedName -Match "CN=VDI") # Исключения по юниту AD
    {
        Write-Output "Exception: $($comp.DistinguishedName)"
        continue
    }
    if ($comp.LastLogonDate -lt "$oldDate" -and
	    $comp.Enabled -eq "True")
    {
        $oldPc += $comp
    }
}
if($oldPc.Count -gt 0)
{
    $message = New-Object System.Net.Mail.MailMessage
    $message.From = "AD Cleaner <infosecurity@company.com>"
    $message.To.Add( "infosecurity@company.ru")
    $message.Subject = "Чистка AD: Computers ($($oldPc.Count))"
    $message.IsBodyHTML = $true
    $message.Body = "Добрый день,<br/> Прошу проанализировать и удалить из Active Directory учетные записи компьютеров <b>не подключавшихся более 45 дней </b><br/>Если для обработки объектов из списка требуется подключение других сотрудников Отдела ИТ - необходимо переслать им это письмо с соответствующим запросом<br/>"
    foreach($pc in $oldPc |  Sort-Object -Property CanonicalName)
    {
        $message.Body += "<p><b>$($pc.name)</b><br/>$($pc.CanonicalName)<br/>LastLogon: $(get-date $pc.LastLogonDate -Format 'dd.MM.yyyy') whenCreated: $(get-date $pc.whenCreated -Format 'dd.MM.yyyy')<br/>IP: $($pc.IPv4Address)</p>"
    }
    $message.Body += "__________ <br/>С уважением, <br/>Скрипт автоматической рассылки AD Cleaner"
    $smtp = New-Object Net.Mail.SmtpClient("mail.company.com")
    $smtp.Credentials = $null
    $smtp.Send($message)
}


# Чистка AD: Users
$exceptions = "user1", "user2"
$oldDate = (Get-Date).AddDays(-45)
[array]$oldUsers = $null
[array]$EnabledUsers = $null
$AllowRevPwd = @()
foreach ($user in $users | Sort-Object -Property CanonicalName)
{
    if($exceptions -ccontains $user.SamAccountName) # Исключения по имени пользователя
    {
        Write-Output "Exception: $($user.CanonicalName)"
        continue
    }
    if(($user.CanonicalName -Match '/System users/') # Исключения по имени юнита
    {
       Write-Output "Exception: $($user.CanonicalName)"
       continue
    }

    if (($user.LastLogonDate -lt "$oldDate") -and 
        ($user.whenCreated -lt "$oldDate") -and 
        ($user.Enabled -eq "True") -and
        ($user.CanonicalName -Match 'domain.local/Users/'))
    {
        $oldUsers += $user
    }
    if (($user.Enabled -eq $true)  -and 
        ($user.CanonicalName -Match 'domain.local/Отключенные учетные записи/'))
    {
        $EnabledUsers += $user
    }

    if ($user.AllowReversiblePasswordEncryption) {$AllowRevPwd += $user}
}

if(($oldUsers.Count -gt 0) -or ($EnabledUsers.Count -gt 0) -or $AllowRevPwd)
{
    $message = New-Object System.Net.Mail.MailMessage
    $message.From = "AD Cleaner <infosecurity@company.com>"
    $message.To.Add( "infosecurity@company.com")
    $message.Subject = "Чистка AD: Users ($($oldUsers.count + $EnabledUsers.Count + $AllowRevPwd.Count))"
    $message.IsBodyHTML = $true
    $message.Body = "Добрый день,<br/>"
    if($oldUsers.Count -gt 0)
    {
        $message.Body += "Прошу проанализировать учетные записи пользователей Active Directory не подключавшихся более <b>45</b> дней (кол-во:<b>$($oldusers.Count)</b>)
                        <br/>Учетные записи следует отключить и перенести в юнит <i>Отключенные учетные записи</i> <br/>"
        foreach($user in $oldUsers |  Sort-Object -Property CanonicalName)
        {
            $message.Body += "<p><b>$($user.name) ($($user.SamAccountName))</b><br/>$($user.CanonicalName)<br/><small>LastLogon:</small> $(if($user.LastLogonDate){get-date $user.LastLogonDate -Format 'dd.MM.yyyy'}) | <small>whenCreated: </small>$(if($user.whenCreated){get-date $user.whenCreated -Format 'dd.MM.yyyy'})</p>"
        }
    }
    if($EnabledUsers.Count -gt 0)
    {
        $message.Body += "Прошу проанализировать <b>включенные</b> учетные записи пользователей Active Directory находящиеся в юните <b>domain.local/Отключенные учетные записи/</b> (кол-во:<b>$($EnabledUsers.Count)</b>)
                        <br/>Учетные записи следует отключить или перенести в соответствующий юнит подразделения<br/>"
        foreach($user in $EnabledUsers)
        {
            $message.Body += "<p><b>$($user.name) ($($user.SamAccountName))</b><br/>$($user.CanonicalName)<br/><small>LastLogon:</small> $(if($user.LastLogonDate){get-date $user.LastLogonDate -Format 'dd.MM.yyyy'}) | <small>whenCreated: </small>$(if($user.whenCreated){get-date $user.whenCreated -Format 'dd.MM.yyyy'})</p>"
        }
    }

    $message.Body += "<br/>Если для обработки объектов из списка требуется подключение других сотрудников Отдела ИТ - необходимо переслать им это письмо с соответствующим запросом
                        <br/>__________ <br/>С уважением, <br/>Скрипт автоматической рассылки AD Cleaner"
    $smtp = New-Object Net.Mail.SmtpClient("mail.company.com")
    $smtp.Credentials = $null
    $smtp.Send($message)
}

Пример уведомления:
Добрый день,
 Прошу проанализировать учетные записи пользователей Active Directory не подключавшихся более 45 дней (кол-во:1)
Учетные записи следует отключить и перенести в юнит Отключенные учетные записи
Иванов Иван Иванович (i_ivanov)
domain.local/Users/Отдел продаж/Иванов Иван Иванович
LastLogon: 10.03.2021 | whenCreated: 24.06.2020

Если для обработки объектов из списка требуется подключение других сотрудников Отдела ИТ - необходимо переслать им это письмо с соответствующим запросом 
__________ 
С уважением, 
Скрипт автоматической рассылки AD Cleaner