понедельник, 20 апреля 2009 г.

Аудит событий регистрации пользователя

Windows IT Pro :: Безопасность

Ранее я уже рассказывал об использовании в Windows 2000 категории аудита Audit logon events для контроля локальных подключений к серверу или рабочей станции. [Другие статьи на эту тему перечислены во врезке – прим. ред.] Категория Audit logon events собирает данные на той локальной системе, к которой произошло подключение. Однако следить за большим количеством сетевых подключений, перебирая одну систему за другой, крайне неудобно.

На помощь приходит новая категория Audit account logon events («аудит событий регистрации пользователя»), использующая контроллеры доменов Windows 2000 как основное место сбора сообщений о событиях аутентификации. Пожалуй, эту категорию стоило бы назвать Audit authentication events – «аудит событий аутентификации». Если пользователь регистрируется на рабочей станции локально и в качестве входного имени предъявляет учетную запись пользователя домена, то рабочая станция посылает запрос на контроллер домена для проверки подлинности имени и прав доступа. То же самое происходит, если пользователь подключается по сети к серверу. Аутентификация пользователя осуществляется на контроллере домена. Следить за такими событиями можно при помощи оснастки Domain Controller Security Policy консоли управления MMC контроллера домена. Это расширение использует параметры объекта Default Domain Controller Group Policy Object (GPO), которые называются Security Settings. В свою очередь, GPO входит в организационную единицу Domain Controllers, а организационная единица – в состав AD. Чтобы включить аудит, следует в консоли выбрать Local Policies\Audit Policy, перейти на правую панель, щелкнуть правой кнопкой мыши на Audit account logon events и выбрать Security. Откроется диалоговое окно Security Policy Setting. Для включения аудита нужно отметить флажки Success и Failure, затем сохранить изменения.

Windows 2000 может использовать различные протоколы аутентификации для обработки запросов на подключение к системе. Для разных протоколов в журнале аудита генерируются разные типы сообщений. Windows 2000 поддерживает протоколы Kerberos и Windows NT LAN Manager (NTLM). Kerberos используется при локальном подключении к рабочей станции Windows 2000 или сетевом подключении пользователя домена с рабочей станции Windows 2000 к серверу Windows 2000. В этом случае на контроллере домена ведется запись событий, специфичных для Kerberos. Если пользователь локально или удаленно подключается к системе NT или к серверу со станции NT, то применяется NTLM, и ведется запись событий, характерная для этого протокола.

Аудит успешных событий Kerberos

Протокол аутентификации Kerberos применяет шифрованные билеты, tickets (с записанными временными метками), для проверки возможности входа в систему. Чтобы предоставить доступ даже к локальной системе, Windows 2000 сначала запрашивает у контроллера домена билет доступа к службе (service ticket). Он содержит информацию, подтверждающую права пользователя на доступ к системе. Но прежде, чем будет получен билет доступа к службе, выполняется аутентификация пользователя на контроллере домена и затем выдается билет на сеанс работы, ticket-granting ticket (TGT). Пароль пользователя проверяется контроллером домена только один раз. Это происходит на ранней стадии подключения к рабочей станции, когда станция запрашивает TGT для пользователя. После того как билет TGT получен и пользователю требуется подключаться к различным сетевым службам (например, файловым серверам, серверу SQL, серверу Ex-change), рабочая станция использует тот же билет TGT при формировании каждого нового запроса. В этом отличие TGT от билета доступа к службе, который запрашивается всякий раз при подключении пользователя к сетевым службам. Удачные и неудачные попытки запросов билетов TGT и доступа к службе фиксируются в журнале Windows 2000 с различными идентификаторами с ID.

Каждое утро, когда пользователь включает компьютер, вводит свое имя в домене и пароль, станция запрашивает TGT у ближайшего контроллера домена. Если имя и пароль признаны корректными, проводится проверка полномочий пользователя, после чего контроллер выдает TGT, и в журнал записывается событие с ID 672 (аутентификация проведена успешно) (см. Экран 1). Поле User для этого события (и всех аналогичных событий категории Audit account logon event) не содержит реального имени пользователя; поле всегда читается как SYSTEM. Следует обратить внимание на поля User Name и Supplied Realm Name, которые отображают имя пользователя и его DNS-суффикс. При создании учетной записи можно использовать полное DNS-имя или корневое имя дерева домена в формате domain\username. Поле User с ID выводит то же имя в стиле NT (т. е. NetBIOS имя домена, отделенное от имени пользователя знаком «обратный слеш»). Поле Service Name указывает имя службы, на доступ к которой контроллер домена выдал билет. Если это самое первое обращение рабочей станции к контроллеру, то в поле находится имя службы krbtgt (т. е. квитанция Kerberos).

Поле Client Address указывает IP-адрес станции, с которой пользователь пытался зарегистрироваться в домене. Все события Kerberos, включая неудачные попытки подключения, содержат этот IP-адрес. Эта информация бесценна. В NT можно узнать имя системы, осуществлявшей неудачные попытки подключения, но нельзя определить, из каких сегментов сети предпринимались эти попытки. Преимущество Windows 2000 состоит не только в централизации ведения журналов на контроллерах доменов, но и в том, что можно определить, откуда пытались подключиться к домену.

Существуют и другие примеры события с ID 672, когда компьютеру необходима авторизация в домене. Обычно это происходит в момент загрузки рабочей станции или перезагрузки сервера. Компьютер должен пройти авторизацию на контроллере домена, прежде чем он получит доступ к данным групповой политики или сможет зарегистрировать свое доменное имя. В этом случае поля User Name и User с ID содержат имя компьютера, как показано на Экране 2. К имени компьютера добавлен знак $, что отличает его от имени пользователя.

Событие с ID 672 позволяет контролировать первичные подключения к домену при помощи процедуры получения билета TGT, а событие с ID 673 контролирует доступ к сетевым службам при помощи процедуры получения билета доступа к службе. Например, если пользователь отображает диск на каталог файлового сервера или подключается к другим ресурсам удаленной системы (например, реестру, файлу журнала, SAM), то система запрашивает билет доступа к службе, и на контроллере домена генерируется событие с ID 673.

Windows 2000 генерирует событие с ID 673 еще в нескольких случаях. Во-первых, это событие часто имеет место при взаимодействии между системами; оно легко узнаваемо, так как в поле User Name помещается имя компьютера. Примером может служить ситуация, когда станция подключается к контроллеру домена для получения информации о групповой политике.

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

Послав запрос на билет TGT, компьютер пользователя сразу запрашивает билет доступа к службе, чтобы пользователь мог работать на данной машине. Экран 3 отображает фрагмент журнала безопасности, показывающий, что событие с ID 673 следует сразу за событием с ID 672. На Экране 4 приведены все поля события с ID 673. Просмотрев поля User Name, Service Name и Service с ID, можно сделать вывод, что пользователь Maggie зарегистрировалась на станции W2KPRO-LEFT. Поля User Domain и Service с ID содержат информацию о том, что и пользователь и компьютер принадлежат домену MTG.LOCAL.

Экран 3. Просмотр порядка появления событий.

На Экране 5 приведен еще один пример события с ID 673. В этом примере пользователь Maggie подключилась к удаленной системе TECRA с рабочей станции W2KPRO-LEFT. Имя удаленной системы TECRA показывают поля Service Name и Service с ID, но откуда известно имя рабочей станции W2KPRO-LEFT? Ответ подскажет значение поля Client Address: 10.0.0.81. Известно, что первое событие с ID 673, следующее за ID 672, всегда означает подключение пользователя к своей рабочей станции. Поскольку Maggie запрашивала билет TGT (событие с ID 672) с адреса 10.0.0.81, а затем билет доступа к службе (событие с ID 673) для подключения к W2KPRO-LEFT, значит, 10.0.0.81 является IP-адресом станции W2KPRO-LEFT. Последующие события с ID 673 (такие, как на Экране 5) показывают, что Maggie подключилась к ресурсам другой системы с того же самого адреса (т. е. 10.0.0.81).

Для предотвращения атак Kerberos ограничивает срок действия билета, полученного от контроллера домена. Если время истекает, а пользователь все еще подключен к ресурсам, то Windows 2000 автоматически запрашивает контроллер домена и обновляет билет. При обновлении билета в журнал записывается событие с ID 674.

Аудит событий Kerberos

Рассмотрим, какие типы событий записываются в журнал Windows 2000 при неудачных попытках аутентификации. Если во время регистрации с консоли рабочей станции вводится подлинное имя пользователя, но неверный пароль, то контроллер домена записывает в журнал событие с ID 675 (ошибка предварительной аутентификации) с кодом ошибки 24 (Failure Code 24) (см. Экран 6). Это очень важное сообщение, так как оно позволяет обнаруживать попытки подключения с неверными паролями. В сообщении указывается не только имя пользователя и имя домена, но и IP-адрес станции, с которой осуществлялась попытка несанкционированного доступа. Это огромный шаг вперед по сравнению с Win-dows NT, где в журнал записывались только имя пользователя и домен. Событие с ID 675 записывается еще и в том случае, если пользователь зарегистрировался на станции с одним именем, а затем пытался подключиться к серверу с другим. Например, он мог попробовать подключиться к сетевому диску от имени другого пользователя.

Иногда ошибка при регистрации в домене происходит не из-за неправильно введенного пароля, а из-за случайной опечатки при вводе имени пользователя или попытке подбора чужого имени. В этом случае (неправильное имя пользователя) Win-dows 2000 регистрирует событие с ID 676 с кодом ошибки 6. Это еще одно преимущество по сравнению с NT, где невозможно отличить отказ в регистрации из-за неверно введенного пароля от отказа из-за неверно введенного имени. Windows 2000 использует сообщение с ID 676 с различными кодами ошибок для контроля еще нескольких типов ошибок регистрации. Код ошибки 12 указывает на ошибку, возникающую при попытке регистрации в системе в часы, когда данному пользователю работать не разрешается. Код ошибки 23 означает, что срок действия пароля пользователя истек. Код ошибки 18 указывает на блокирование учетной записи в результате неудачных попыток подключения пользователя, завершения срока действия учетной записи или запрета администратора. Код ошибки 37 сообщает о том, что время на рабочей станции не синхронизировано со временем на контроллере домена и отличается на величину большую, чем это допустимо.

Бывают ситуации, когда пользователь получает от контроллера домена билет TGT, но не может получить билет доступа к службе. В этом случае Windows 2000 записывает событие с ID 677 (запрос на получение билета доступа к службе не удовлетворен) с тем или иным кодом ошибки, в зависимости от ситуации. Например, если пользователь со станции Windows 2000 Pro пытается подключиться к серверу NT, то в журнал записывается сообщение с ID 677 и кодом ошибки 7. На Экране 7 видно, что пользователь, зарегистрировавшийся на станции Windows 2000 Pro (IP-адрес 10.0.0.81) с именем Administrator, подключил сетевой диск сервера NT (т. е. Kramer), входящего в домен Windows 2000 (т. е. MTG.LOCAL). Сначала рабочая станция направила запрос контроллеру домена для получения билета Kerberos. Этот запрос не был удовлетворен, так как NT сервер не поддерживает протокол Kerberos. Поэтому в журнал контроллера записано сообщение с ID 677 с кодом 7. Эта ошибка не оказывает влияния на доступ пользователя к ресурсам, так как станция немедленно возвращается к использованию протокола NTLM.

События NTLM

После того как контроллер домена успешно аутентифицировал пользователя, в журнал записывается событие с ID 680. Подобно событию Kerberos с ID 673, в котором указывается имя пользователя и IP-адрес станции, в событии с ID 680 указывается имя пользователя и имя станции, откуда поступил запрос на подключение (см. Экран 8). Так как NTLM может функционировать поверх TCP/IP, NetBEUI и IPX, то Windows 2000 записывает в журнал имя системы, а не ее IP-адрес.

Если аутентификация NTLM по каким-то причинам не может быть выполнена, то контроллер записывает в журнал событие с ID 681, как показано на Экране 9. О причинах неудачи можно судить по описанию кодов ошибок (см. Таблицу 1).

Новая категория аудита, Audit ac-count logon events, реализованная в Windows 2000, обеспечивает гораздо большую степень централизации аудита подключений пользователей. В системе появилась возможность отличать ошибки подключения, произошедшие из-за неверного ввода имени пользователя, от ошибок из-за ввода неверного пароля, а также вычислять по IP-адресу расположение станции-нарушителя. Тем не менее следует постоянно просматривать в журналах безопасности события категории Audit logon events («аудит подключений к системе»). Дело в том, что злоумышленники могут попытаться подключиться к системе, используя локальную учетную запись SAM, такую, как встроенная запись Administrator. Контроллер домена не фиксирует атаки, в которых используются локальные учетные записи. Просматривая события Audit logon events и Audit account logon events, можно следить за подключениями к рабочим станциям, серверам и контроллерам домена. В следующей статье из этой серии я расскажу о других категориях аудита, которые были изменены в Windows 2000.

Рэнди Франклин Смит – президент компании Monterey Technology Group, занимающейся обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com.

________________________________________

В предыдущих выпусках

Это вторая статья Рэнди Франклина Смита из серии, посвященной журналу безопасности Windows 2000. Информацию о журнале безопасности Windows NT можно получить в предыдущей серии статей этого автора. Ниже приведен список статей обеих серий. Сами статьи можно найти на Web-сайте Windows 2000 Magazine по адресу: http://www.win2000mag.com.

Статьи, посвященные журналу безопасности Windows 2000

«Контроль событий регистрации в Windows 2000» – http://www.osp.ru/win2000/worknt/2001/03/302.htm

Статьи, посвященные журналу безопасности Windows NT

«Анализируем журнал безопасности Windows NT» – Журнал Windows 2000 Magazine, №03/2000

«Контроль использования административных привилегий» – Журнал Windows 2000 Magazine, №04/2000

«Инструменты для работы с журналами безопасности» – Журнал Windows 2000 Magazine, №06/2000

________________________________________

Экран 1. Событие с ID 672 аутентификации пользователя.

Event Type: Success Audit

Event Source: Security

Event Category: Account Logon

Event ID: 672

Date: 9/15/2000

Time: 5:46:42 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Authentication Ticket Granted:

User Name: Maggie

Supplied Realm Name: MTG

User ID: MTG\maggie

Service Name: krbtgt

Service ID: MTG\krbtgt

Ticket Options: 0x40810010

Ticket Encryption Type: 0x17

Pre-Authentication Type: 2

Client Address: 10.0.0.81

назад

________________________________________

Экран 2. Событие с ID 672 аутентификации системы.

Event Type: Success Audit

Event Source: Security

Event Category: Account Logon

Event ID: 672

Date: 9/14/2000

Time: 7:19:41 PM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Authentication Ticket Granted:

User Name: W2KPRO-LEFT$

Supplied Realm Name: MTG.LOCAL

User ID: MTG\W2KPRO-LEFT$

Service Name: krbtgt

Service ID: MTG\krbtgt

Ticket Options: 0x40810010

Ticket Encryption Type: 0x17

Pre-Authentication Type: 2

Client Address: 10.0.0.81

назад

________________________________________

Экран 4. Событие с ID 673 регистрации рабочей станции.

Event Type: Success Audit

Event Source: Security

Event Category: Account Logon

Event ID: 673

Date: 9/15/2000

Time: 5:46:42 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Service Ticket Granted:

User Name: Maggie

User Domain: MTG.LOCAL

Service Name: W2KPRO-LEFT$

Service ID: MTG\W2KPRO-LEFT$

Ticket Options: 0x40810010

Ticket Encryption Type: 0x17

Client Address: 10.0.0.81

назад

________________________________________

Экран 5. Событие с ID 673 соединения с сервером.

Event Type: Success Audit

Event Source: Security

Event Category: Account Logon

Event ID: 673

Date: 9/15/2000

Time: 5:46:42 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Service Ticket Granted:

User Name: Maggie

User Domain: MTG.LOCAL

Service Name: TECRA$

Service ID: MTG\TECRA$

Ticket Options: 0x40810010

Ticket Encryption Type: 0x17

Client Address: 10.0.0.81

назад

________________________________________

Экран 6. Событие с ID 675 с кодом ошибки 24.

Event Type: Failure Audit

Event Source: Security

Event Category: Account Logon

Event ID: 675

Date: 10/10/2000

Time: 8:06:48 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Pre-authentication failed:

User Name: Administrator

User ID: MTG\administrator

Service Name: krbtgt/MTG

Pre-Authentication Type: 0x2

Failure Code: 24

Client Address: 10.0.0.81

назад

________________________________________

Экран 7. Событие с ID 677 с кодом ошибки 7.

Event Type: Failure Audit

Event Source: Security

Event Category: Account Logon

Event ID: 677

Date: 10/10/2000

Time: 10:40:48 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Service Ticket Request Failed:

User Name: Administrator

User Domain: MTG.LOCAL

Service Name: HOST/Kramer

Ticket Options: 0x40810010

Failure Code: 7

Client Address: 10.0.0.81

назад

________________________________________

Экран 8. Событие с ID 680.

Event Type: Success Audit

Event Source: Security

Event Category: Account Logon

Event ID: 680

Date: 10/10/2000

Time: 11:21:22 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

Account Used for Logon by: MICROSOFT _AUTHENTICATION _PACKAGE_V1_0

Account Name: Administrator

Workstation: \\KRAMER

назад

________________________________________

Экран 9. Событие с ID 681.

Event Type: Failure Audit

Event Source: Security

Event Category: Account Logon

Event ID: 681

Date: 10/10/2000

Time: 11:31:42 AM

User: NT AUTHORITY\SYSTEM

Computer: TECRA

Description:

The logon to account: Administrator

by: MICROSOFT _AUTHENTICATION _PACKAGE

_V1_0 from workstation: KRAMER

failed. The error code was: 3221225578

назад

________________________________________

Таблица 1. Коды ошибок события с ID 681.

Код ошибки Причина отказа в доступе

3221225572 Указанное имя не существует.

3221225578 Правильно указано имя пользователя, но пароль неверен.

3221226036 Пользователь заблокирован.

3221225586 Учетная запись деактивирована.

3221225583 Попытка регистрации в системе в часы, не разрешенные для данного пользователя.

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

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

3221225585 Попытка входа с просроченным паролем.

3221226020 Попытка входа при помощи учетной записи пользователя, для которой администратор установил требование заменить пароль при следующем входе в систему (User must change password at next logon option).

назад