Аудит учетных записей пользователей в Active Directory::Журнал СА 11.2003
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 4900
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 6152
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 7390
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7734
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6786
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

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

Архив номеров / 2003 / Выпуск №11 (12) / Аудит учетных записей пользователей в Active Directory

Рубрика: Администрирование /  Служба каталогов

МАКСИМ КОСТЫШИН

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

Поводом для появления данной статьи послужила информация, опубликованная в журнале «Windows & .Net Magazine/RE» №5 за 2003 год под названием «Утилита LDIF Directory Exchange», подсказавшая решения, которые можно было использовать для того, чтобы обеспечить необходимый уровень автоматизации при проведении аудита учетных записей пользователей в Active Dircectory. В статье было приведено описание основных возможностей двух утилит Ldifde.exe и Csvde.exe, обеспечивающих добавление, изменение и удаление объектов Active Directory.

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

Постановка проблемных вопросов

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

О чем идет речь? В организациях, где число сотрудников, работающих с компьютерной техникой, превышает 100 человек, администрированием занимаются, как правило, два-три сотрудника. Не все они, в силу различных обстоятельств, с достаточным педантизмом относятся к работе по внесению во вновь создаваемые учетные записи информации о владельцах. Кроме того, администраторы обычно не включены в список тех сотрудников, которым обязаны сообщать об увольнениях. Два этих обстоятельства являются основными причинами, из-за которых и происходит накопление учетных записей «мертвых душ».

Попробуем провести некоторую систематизацию наиболее значимых и очевидных проблем для списка пользователей Active Directory.

Во-первых, лишние записи в списке пользователей, которые могут быть:

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

Во-вторых, к недопустимым можно отнести те учетные записи, которые однозначно не идентифицируют владельца, т.е. дополнительная информация в которых не позволяет назвать человека, определить его должность и подразделение, выяснить, как с ним можно связаться (конечно же, речь здесь не идет о стандартных учетных записях типа «Администратор», «Administrator», «Guest», «Гость», и другие).

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

Обзор возможностей по работе с учетными записями

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

Оснастка Active Directory – пользователи и компьютеры (которую можно найти в разделе «Администрирование» на сервере). Замечательная возможность для добавления, редактирования свойств и удаления пользователей домена, но, к сожалению, достаточно бесполезная в вопросах проведения ревизии и аудита. К положительным моментам можно отнести возможность проведения экспорта списка пользователей, в который можно включить такие поля, как – «имя входа пользователя», «имя», «выводимое имя», «фамилия», «изменен». Отметим, что поле «изменен» показывает время и дату последних изменений для учетной записи администратором (производилась коррекция настроек) или владельцем (смена пароля).

Системная утилита Net.exe. С помощью этой утилиты вы можете обеспечить работу с данными конкретного пользователя (вариант вызова – «Net user») – получить дату и время последней регистрации в сети, а также определить, когда завершается срок действия пароля.

Программы-сканеры, задача которых заключается в сборе информации о состоянии локальной сети или конкретного компьютера. Среди наиболее интересных программ в плане получения информации о пользователях отметим CFI LANguard Network Security Scanner (ver 3.1.5). Она предоставляет возможность получения достаточно подробной информации об учетных записях, такой как дата и время последней регистрации; данные о том, когда пароль будет просрочен; количество регистраций пользователя в сети; значение индекса попыток входа с некорректным паролем. Кроме того, программа позволяет на основании данных двух сохраненных протоколов сканирования сформировать отчет о расхождениях и получить перечень заведенных и удаленных учетных записей. Справедливости ради отметим, что программа имеет существенные недостатки, особенно для русскоязычной категории пользователей, так как она некорректно обрабатывает русские названия (в именах и дополнительных параметрах учетных записей и пр.). Кроме того, отсутствует возможность сохранить в отдельном файле информацию о найденных расхождениях в списках учетных записей.

Перейдем теперь к рассмотрению утилит, которые, на наш взгляд, предоставляют возможность получения наиболее полной информации по пользователям – Ldifde.exe и Csvde.exe.

Первая утилита позволяет экспортировать данные из Active Directory в файл формата LDIF. Стандарт файла LDIF определен в рекомендациях RFC-2849 для импорта и экспорта данных из каталогов LDAP, таких как Active Directory. После экспорта данных можно использовать LDIF-файл для импорта тех же объектов в другой каталог LDAP.

Csvde.exe – утилита, аналогичная Ldifde.exe (параметры вызова идентичны), в которой используется другой формат хранения данных в текстовом файле – значения разделяются запятыми (CSV-формат). Данный формат поддерживается программой Microsoft Excel, понимающей файлы в CSV-формате, а также Microsoft Access.

Использование утилиты Csvde.exe

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

csvde -f USERS_WORK.CSV -b GUEST MICROSOFT *

-r "(&(objectClass=user)(!(objectClass=computer))(!(userAccountControl=514))(!(userAccountControl=66050)))"

-l "DN, memberOf, badPasswordTime, lastLogon, logonCount, sAMAccountName, userAccountControl, whenChanged, whenCreated"

Использование данной команды позволяет сохранить в файле наиболее интересную с точки зрения аудита информацию по действующим (не заблокированным) учетным записям пользователей.

В файл USER_WORK.CSV (параметр -f) будут записаны данные учетных записей пользователей домена. Программа будет производить обработку данных, которые должны быть доступны пользователю GUEST домена MICROSOFT, пароль для которого должен быть введен в процессе выполнения команды (параметр -b).

Из всех объектов LDAP-каталога будут отобраны только учетные записи пользователей, для которых в поле параметра userAccountControl отсутствует информация о блокировке учетной записи (параметр -r). В качестве логических операций для фильтра используются – «!» – логическое НЕТ, «&» – логическое И, «|» – логическое ИЛИ.

В результате выполнения команды в CSV-файле будут сохранены данные полей, перечисленных в параметре -l (список наиболее интересных полей приведен в таблице 1).

Примечание: команда «Net user» некорректно обрабатывает данные поля pwdLastSet, а также некоторые значения времени. Для поля pwdLastSet, в случае если пароль не был задан, выводятся текущие дата и время. Для данных времени вместо значений вида 00:mm AM и 00:mm PM выводятся значения 12:mm AM и 12:mm PM соответственно.

Таблица 1. Описание некоторых полей учетных записей LDAP-каталога

Название поля

Пояснение

Пример хранимых данных

DN

Информация, идентифицирующая учетную запись в каталоге LDAP

CN=Bill Gates,CN=Users,DC=Microsoft,DC=com

memberOf

Информация о группах, к которым принадлежит учетная запись

CN=Domain Guests,CN=Users,DC=Microsoft, DC=com;CN=Guests,CN=Builtin,DC=Microsoft, DC=com

lastLogon

Дата и время последнего входа

126340325381029632

badPasswordTime

Дата и время в последний раз был использован неправильный пароль

126334418756267552

pwdLastSet

Дата и время, когда был задан последний пароль

126318831197720512

accountExpires

Дата и время, устанавливающие окончание действия учетной  записи

0

userAccountControl

Содержит несколько параметров учетной записи

66048

(0x10200 = DONT_EXPIRE_PASSWORD+NORMAL_ACCOUNT)

sAMAccountName

Имя, под которым происходит регистрация

Gates

whenChanged

Дата и время, когда происходили последние изменения в учетной записи

20010511052201.0Z

whenCreated

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

20010511052201.0Z

logonCount

Количество регистраций

28

objectClass

Класс объекта учетной записи

user

Форматы представления данных даты и времени

Если вы были наблюдательны, то заметили, что в таблице 1 имеются два различных варианта представления значений даты и времени.

Если формат вида ГГГГММДДЧЧММСС.0Z (тип GeneralizedTime для ASN.1 кодирования), используемый для полей whenChanged, whenCreated по Гринвичу достаточно понятен, то параметры, такие как lastLogon, pwdLastSet, accountExpires, представляют информацию о дате и времени в 32-битном UNIX-формате, и содержат значения секунд, прошедших начиная с 1 января 1970 г., GMT. Для наглядности приведем некоторые значения, которые могут содержаться в файле выгруженных значений для параметров даты и времени в UNIX-формате:

126858492000000000 – соответствует 1.01.2003 00:00

127014876000000000 – соответствует 1.07.2003 00:00

127014912000000000 – соответствует 1.07.2003 01:00

Использование функций преобразований для данных CSV-формата

Информацию по учетным записям, которая выгружена с помощью команды, аналогичной, указанной в начале раздела «Использование утилиты Csvde.exe», можно попытаться загрузить в Microsoft Access, однако, в связи с тем, что программа некорректно обрабатывает символ-разделитель «,» в структурах типа «CN=Bill Gates,CN=Users, DC=Microsoft,DC=com», то лучше воспользоваться аналогичными возможностями программы Microsoft Excel (см. рис. 1). Далее, информацию для удобства использования можно обработать с помощью имеющихся в Microsoft Excel возможностей (макросы, функций).

Рисунок 1. Пример данных CSV-файла после экспорта в Microsoft Excel

Рисунок 1. Пример данных CSV-файла после экспорта в Microsoft Excel

На рисунках приведена информация CVS-файла сразу после проведения его загрузки в Microsoft Excel (рис. 1) и после проведенных преобразований (рис. 2). Примеры таких преобразований приведены ниже. Предлагаемые варианты преобразований не претендуют на логическую законченность, но могут являться той основой, с помощью которой за короткий срок может быть разработан необходимый механизм обработки под каждый конкретный случай.

Рисунок 2. Вид информации CSV-файла после преобразований с использованием возможностей Microsoft Excel

Рисунок 2. Вид информации CSV-файла после преобразований с использованием возможностей Microsoft Excel

Получение данных из структуры поля DN

Для получения имени пользователя из структуры вида «…CN=Имя_пользователя,…» в ячейке A2, может быть использована следующая формула преобразования:

=ПСТР(A2;

       НАЙТИ("CN=";A2)+3;

       НАЙТИ(","; A2;

       НАЙТИ( "CN="; A2 )+3

       ) - НАЙТИ("CN=";A2) -3

)

Для получения информации из структуры вида «…OU=Данные,…» в ячейке A2 может быть использована следующая формула преобразования:

=ЕСЛИ(ЕПУСТО("0"!A2);"";

   ЕСЛИ(ЕОШИБКА(НАЙТИ("OU=";"0"!A2)); "USERS";

     ПСТР( "0"!A2;

        НАЙТИ("OU=";"0"!A2)+3;

        НАЙТИ(","; "0"!A2;

           НАЙТИ("OU=";"0"!A2)+3) –

              НАЙТИ("OU=";"0"!A2) -3

        )

     )

)

Обработка данных даты и времени Unix-формата

Получение даты в формате ДД.ММ.ГГГГ на основании данных в Unix-формате предлагаем производить в два этапа. На первом этапе вычисляется количество дней, прошедших с 1 января 2003 г. На втором формируется строка даты в стандартном формате.

Для получения количества дней, прошедших с 1 января 2003 г., на основании данных в ячейке F2, заданных в Unix-формате даты и времени, может быть использована следующая формула преобразования:

= ЕСЛИ(

   ЗНАЧЕН(ЛЕВСИМВ(F2;11))=0;

   -1;

   ОКРУГЛВНИЗ((ЗНАЧЕН(ЛЕВСИМВ(F2;11))- 12685849200)/24/3600; 0)

)

Полученное на первом этапе значение сдвига дней относительно 1 января 2003 г. (в ячейке E2) используется для формирования даты в стандартном формате.

=ЕСЛИ( E2=-1;

   "Отсутствует";

   СЦЕПИТЬ(

     ДЕНЬ(ДАТАЗНАЧ("1/1/2003")+E2);

     ".";

     МЕСЯЦ(ДАТАЗНАЧ("1/1/2003")+E2);

     ".";

     ГОД(ДАТАЗНАЧ("1/1/2003")+E2)

)

Обработка данных даты и времени формата GeneralizedTime для ASN.1 кодирования

Преобразование числа в формате ГГГГММДДММСС.0Z в формат ДД.ММ.ГГГГ ЧЧ:ММ

=СЦЕПИТЬ(

   ПСТР(N2;7;2); "."; ПСТР(N2;5;2); "."; ПСТР(N2;1;4); " ";

   ПСТР(N2;9;2); ":"; ПСТР(N2;11;2)

)

Обработка значения поля userAccountControl о блокированности записи

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

=ЕСЛИ(ЕПУСТО(G2);"";

   ЕСЛИ(ИЛИG2=514; G2=66050);"Заблокированная";"Действующая")

)

Подробные пояснения и описание формата хранения данных в поле userAccountControl можно найти в статье Microsoft «How to Use the UserAccountControl Flags to Manipulate User Account Properties» (http://support. microsoft.com/?kbid=305144). Отметим только, что если параметры учетной записи не заданы, то десятичное значение userAccountControl равно 512; десятичное значение для блокированной учетной записи при отсутствии других параметров – 514.

Заключение

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

Отметим, что кроме изложенного метода может быть использован вариант, рекомендуемый Microsoft, предполагающий использование интерфейсов службы Active Directory (ADSI), которые предоставляют простой, мощный, объектно-ориентированный доступ к ресурсам Active Directory. Интерфейсы ADSI позволяют программистам и администраторам создавать программы каталога с использованием инструментальных средств высокого уровня, например, Microsoft Visual Basic, Java, C или Visual C++, не заботясь о различиях в пространствах имен. Интерфейсы ADSI полностью поддерживают сценарии, что облегчает их использование администраторами.

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

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

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru