Информация о программах, запускавшихся взломщиком, нередко помогает восстановить полную картину действий постороннего лица, проникшего в сеть. Другими свидетельствами могут служить изменения полномочий и политик или несанкционированная перезагрузка системы.
Контролировать выполнение программ можно с помощью категории Audit process tracking (аудит запуска процесса) Windows 2000. Могут пригодиться и категории аудита действий операционной системы Audit privilege use (аудит использования привилегий), Audit policy change (аудит изменения политики) и Audit system events (аудит системных событий). Наряду с другими категориями аудита, представленными в данной серии статей о журнале безопасности Windows 2000, эти события помогут понять, какие действия предпринимал взломщик, пытавшийся нарушить целостность сети. Список предыдущих статей данной серии о журнале Windows NT Security приведен во врезке «В предыдущих выпусках».
Audit process tracking
Audit process tracking не отслеживает неудачных событий, но когда категория настроена на контроль успешных действий, то фиксируются два события: с ID 592 (создан новый процесс) и с ID 593 (процесс завершен). Категория Audit process tracking указана как Detailed tracking в списке Category оснастки Event Viewer консоли Microsoft Management Console (MMC). Подробнее о том, как активизировать категории аудита, настроить системный журнал Security и использовать оснастку Event Viewer для просмотра журнала безопасности, рассказано в статье «Контроль событий регистрации в Windows 2000» на http://www.osp.ru/win2000/worknt/2001/03/302.htm.
Когда пользователь запускает исполняемый файл, такой, как Microsoft Excel, Windows 2000 регистрирует событие с ID 592. Данное событие указывает, какая программа была запущена и когда. Пример сообщения о событии показан на Экране 1; поля Time, User и Image File Name указывают, что пользователь Билл запустил Excel в 5 ч 51 мин пополудни. Следует обратить внимание, что Windows 2000 регистрирует полный путь к выполняемому файлу, в отличие от NT, регистрирующей только имя файла.
Поле Logon ID соответствует ID регистрации, который был назначен Биллу при входе в систему. Данный идентификатор позволяет связать событие создания процесса с событием успешной регистрации с ID 528. Справочный список событий журнала безопасности, упоминаемых в данной серии статей, приведен в Таблице 1. Подробное объяснение событий регистрации дано в статье «Контроль событий регистрации в Windows 2000» (см. ссылку).
Начиная новый процесс, Windows 2000 присваивает ему уникальный номер, Process ID. Этот номер показан в поле New Process ID события с ID 592. Обычно следующим действием после запуска приложения является открытие пользователем данной программы какого-либо файла. В статье «Аудит доступа к объектам» (опубликованной в предыдущем номере — прим. ред.) я отмечал, что в описании события с ID 560 также имеется поле Process ID, которое можно использовать для идентификации связанных событий с ID 560 и ID 592. Однако в событии с ID 592 Windows 2000 регистрирует иной ID процесса, нежели в событии с ID 560 или любом другом. Событие с ID 592 отображает ID процесса как десятизначное число, тогда как другие события (и закладка Processes диалогового окна Task Manager) показывают ID процесса как трех- или четырехзначное число. По некоторым сведениям, разработчики Microsoft устранили это противоречие в операционных системах Windows 2002 и Windows XP.
Для идентификации процесса, запустившего новый процесс, можно воспользоваться полем Creator Process ID события с ID 592. Достаточно отыскать предыдущее событие с ID 592 с идентификатором Process ID, совпадающим с полем Creator Process ID избранного события. Оба поля события с ID 592 имеют десятизначный формат.
В программе Event Viewer нет фильтра для сортировки событий журнала безопасности по ID регистрации или ID процесса, но можно отыскивать события с конкретным ID. Чтобы найти события, содержащие определенные ID, следует открыть оснастку Event Viewer, щелкнуть правой кнопкой мыши на журнале Security и выбрать пункты View, Find. Затем нужно ввести идентификатор в поле Description и щелкнуть на кнопке Find Next.
Когда пользователь закрывает приложение, Windows 2000 регистрирует событие с ID 593. Событие с ID 593 располагает полем Process ID, но, как указано выше, этот идентификатор не совпадает с ID процесса соответствующего события 592, зарегистрированного операционной системой, когда пользователь открыл прикладную программу.
Наряду с решением проблемы соответствия Process ID, пользователям предстоит связать события образования процессов, доступа к объектам и регистрации — с документом, учитывая необходимость проверки времени, когда пользователь зарегистрировался; приложения, открытого пользователем; файлов и других объектов, к которым пользователь обращался из каждого приложения. Найти связь между событиями нетрудно при работе на автономном компьютере, где пользователь регистрируется, запускает приложения и обращается к файлам только на одной системе. Но в реальной сети задача не столь проста. Windows 2000 регистрирует события образования процессов на компьютере, выполняющем программу (на локальной станции пользователя), а события доступа к объектам регистрируются на компьютере, на котором хранится объект. Например, если пользователь через сеть открывает файл на файл-сервере FS1, то служба Server открывает файл на FS1 от имени пользователя. Поэтому невозможно напрямую идентифицировать приложения, с помощью которых пользователь открыл файлы, хранящиеся на удаленном файл-сервере.
Например, пользователь регистрируется на рабочей станции, запускает Excel и редактирует электронную таблицу, расположенную на файл-сервере. Windows 2000 регистрирует событие с ID 592 в журнале безопасности рабочей станции, а событие с ID 560 — в журнале безопасности сервера. Идентификаторы процессов этих двух событий не совпадают (и не совпали бы, даже если бы Windows 2000 использовала один и тот же ID процесса для обоих событий). Необходимо отыскать событие с ID 592 в журнале безопасности рабочей станции, соответствующее событию с ID 560 в журнале безопасности сервера.
Активизация на сервере категории Audit process tracking не поможет получить дополнительные сведения о приложениях, выполняемых на рабочей станции пользователя. Однако благодаря событиям этой категории можно следит за использованием серверных программ, таких, как Microsoft SQL Server и Microsoft Exchange Server, и любых программ, исполняемых администраторами и операторами при локальной регистрации на сервере. Активизация данной категории создает нагрузку на ресурсы сервера, поэтому необходимо внимательно следить за ее влиянием на производительность.
Отслеживание процедур регистрации и использования процессов и объектов поможет контролировать действия вероятного взломщика. А наблюдая за попытками использования полномочий, можно вовремя заметить подозрительные действия. Подобные действия помогает обнаружить категория Audit privilege use.
Audit privilege use
Категория Audit privilege use отслеживает успешные и неудачные попытки использования полномочий, предоставленных пользователю (в статьях и документации Microsoft не выработано единой терминологии, и термины privileges и rights используются как равнозначные). Существует более 34 полномочий: от мощных, таких, как Act as part of the operating system (работать как часть операционной системы), до довольно безобидных прав, как Bypass traverse checking (обойти перекрестную проверку). После активизации категории Audit privilege use в журнале безопасности начинают регистрироваться три события: с ID 577 (вызов привилегированной службы), ID 578 (привилегированная операция с объектом) и ID 576 (специальная привилегия, предоставленная новой учетной записи).
Когда пользователь пытается применить полномочия, Windows 2000 регистрирует событие с ID 577 или ID 578, в зависимости от типа полномочий (Windows 2000 контролирует одни полномочия по службам, а другие — по объектам). В обоих случаях в поле Privileges указывается использованное полномочие. Windows 2000 регистрирует краткое имя полномочия, которое всегда начинается с Se и заканчивается на Privilege. Но эти краткие имена нельзя увидеть, оперируя полномочиями в оснастке MMC Group Policy Editor (GPE). Вместо них приводятся полные описания полномочий. Например, на Экране 2 показано событие с ID 577, зарегистрированное операционной системой, когда я перевел часы компьютера. Полномочие SeSystemtimePrivilege соответствует полномочию Change the system time в редакторе GPE.
Если пользователю разрешено применять полномочия, то операционная система регистрирует успешное событие с ID 577 или событие ID 578. Если пользователь пытается выполнить действие, не имея соответствующих прав, то Windows 2000 регистрирует неудачное событие. Для некоторых полномочий поля Primary User Name и Primary Domain Name идентифицируют пользователя, вызвавшего событие. Однако для полномочий, которые использует серверный процесс, эти поля соответствуют учетной записи данного компьютера. Отличительный признак таких полномочий — совпадение поля Primary User Name с полем Computer со знаком «$» в конце.
В таких случаях определить пользователя, применившего полномочие, можно по данным полей Client User Name и Client Domain. Поля Primary Logon ID и Client Logon ID соответствуют полю Logon ID события с ID 528 или ID 540, зафиксированного операционной системой при регистрации пользователя.
Поле Process ID события с ID 578 идентифицирует процесс, непосредственно вызвавший событие. Например, при просмотре журнала безопасности процесс Services от имени администратора использует полномочие Se-SecurityPrivilege (т. е. Manage auditing and security log). Соответствующий идентификатор процесса в событии с ID 578 принадлежит процессу Services.
Категория Audit logon events содержит специальные идентификаторы событий для действий при регистрации пользователей, поэтому по умолчанию Windows 2000 не записывает успешные и неудачные попытки применения полномочий на регистрацию. Эти полномочия — за исключением Access this computer from the network и Deny access to this computer from the network — начинаются словами Logon as или Deny logon. Windows 2000 также не заносит в журнал информацию о некоторых других полномочиях — например, SeBackupPrivilege (резервное копирование файлов и каталогов) и SeRestorePrivilege (восстановление файлов и каталогов), — вызываемых так часто, что они быстро переполнили бы журнал безопасности. Чтобы система выполняла аудит использования этих полномочий, следует изменить параметр реестра HKEY_LO-CAL_MACHINESYSTEMCurrentControlSetControlLsa: Set the FullPri-vilegeAuditing, имеющий тип REG_DWORD, и присвоить ему значение 1.
Windows 2000 никогда не регистрирует использование полномочий SeAudit-Privilege (Generate security audits — генерировать проверку безопасности), SeCreateTokenPrivilege (Create a token object — создать маркерный объект), SeDebugPrivilege (Debug programs — отладка программ), SeChangeNotify-Privilege (Bypass traverse checking — пропуск проверки) и SeAssignPrimary-TokenPrivilege (Replace a process level token — изменить маркер уровня процесса). Но если регистрируется пользователь, обладающий одним или несколькими из этих полномочий, то Windows 2000 записывает в журнал событие с ID 576 (новой учетной записи назначены специальные полномочия; данное событие обычно близко следует за успешным событием регистрации с ID 528 или ID 540). Чтобы определить, какими полномочиями обладает пользователь во время регистрации, следует обратить внимание на поле Logon ID события с ID 576, которое идентифицирует пользователя, и поле Assigned, где перечислены краткие имена полномочий.
Audit Policy Change
С помощью категории Audit privilege use можно проследить, кто и когда использует полномочия, а категория Audit policy change позволяет узнать об изменениях, вносимых администраторами в назначенные полномочия. Данная категория обеспечивает контроль нескольких типов изменений политики.
Во-первых, Audit policy change сообщает, когда были изменены назначенные привилегии. Когда администратор предоставляет пользователю полномочия, Windows 2000 регистрирует событие с ID 608 (пользователю назначены полномочия). В поле User Right перечислены сокращенные имена назначенных полномочий (одного или нескольких). Поле Assigned to идентифицирует пользователя или группу, которой администратор назначил полномочия. На Экране 3 показано событие с ID 608, зарегистрированное Win-dows 2000, когда я назначил группе Administrators полномочия SeCreate-TokenPrivilege (Create a token object) и SeCreatePermanentPrivilege (Create permanent shared objects — создавать постоянные разделяемые объекты).
Поля User Name, Domain и Logon ID под заголовком Assigned By явно указывают, кто назначил полномочия. Но если администраторы NT назначают полномочия напрямую через User Manager, то администраторы Windows 2000 предоставляют или отзывают полномочия не прямо, а через объекты групповой политики (Group Policy Objects, GPO). В силу этих различий, а также поскольку локальная система пользователя читает Group Policy и вносит соответствующие изменения в назначенные полномочия, событие с ID 608 указывает в поле Assigned By учетную запись локального компьютера. Чтобы выяснить, каким образом администратор изменил полномочия, необходимо активизировать категорию Audit directory service для проверки изменений в объектах GPO в Active Directory (AD). Более подробная информация об аудите таких изменений приведена в статье «Заглянем в журнал безопасности Windows 2000».
Если полномочия пользователя отменены, то в следующий раз, когда Win-dows 2000 применит групповую политику, будет зарегистрировано событие с ID 609 (отмена полномочий пользователя). Поле User Right этого события похоже на поле User Right события с ID 608. Поле Removed From указывает пользователей и группы, лишенные одного или нескольких полномочий. Поля User Name, Domain и Logon ID в разделе Removed By указывают учетную запись локального компьютера точно так же, как поля Assigned By события с ID 608. Оба события регистрируются на компьютерах, на которых был применен GPO, содержащий назначенные полномочия. Однако изменения, произведенные в объектах GPO, регистрируются на контроллере домена (DC), к которому подсоединялся администратор, редактировавший GPO.
Audit policy change позволяет отслеживать изменения в доверительных отношениях с другими доменами. Если администратор добавляет новый доверенный домен с помощью оснастки Active Directory Domains and Trusts, то Windows 2000 регистрирует два идентичных события с ID 610 (новый доверенный домен) на DC, к которому подсоединялся администратор. Поле Do-main Name события с ID 610 идентифицирует новый доверенный домен. Чтобы выяснить, кто установил доверительное отношение, нужно посмотреть на поля User Name, Domain и Lo-gon ID под заголовком Established By.
Windows 2000 также регистрирует на DC один экземпляр события с ID 620 (изменена информация о доверенном домене). Однако данное событие не содержит никакой дополнительной информации. При удалении доверенного домена Windows 2000 регистрирует два события с ID 611 (удаление доверенного домена). Данное событие содержит те же поля, что и событие с ID 610, но поля User Name, Domain и Logon ID находятся под заголовком Removed By вместо Established By.
В событиях с ID 610, ID 611 и ID 620 проявляется еще один изъян системы аудита Windows 2000: события регистрируются при удалении и добавлении как доверяющих, так и доверенных доменов. Событие говорит лишь о том, что было установлено или прекращено доверительное отношение, но не указывает, был ли домен доверенным или доверяющим.
Windows 2000 регистрирует событие с ID 612 (изменение политики аудита) всякий раз, когда применение Group Policy приводит к изменению политики аудита компьютера. Поле New Policy данного события указывает, какие категории аудита были активизированы для регистрации успешных и неудачных действий. Например, на Экране 4 показано, что активизирован аудит успешных и неудачных изменений политики. Как и в событии с ID 608, в полях User Name, Domain и Logon ID в подразделе Changed By события с ID 612 не указано, какой администратор изменил политику аудита, так как Windows 2000 не обнаруживает изменения до тех пор, пока групповая политика не применена. Тем не менее событие с ID 612 полезно для поиска изменений в политике аудита.
Категорией Audit policy change можно воспользоваться и для отслеживания некоторых других изменений политики. Событие с ID 617 свидетельствует об изменении политики Kerberos, определяющей срок действия и обновление билета. Windows 2000 не ограничивается регистрацией события с ID 617 при явных изменениях политики Kerberos, а записывает событие в журнал всякий раз, когда DC применяет Group Policy. При изменении раздела Encrypted Data Recovery Agents групповой политики, в котором определены лица, уполномоченные восстанавливать файлы, зашифрованные с помощью EFS (Encrypting File System), Windows 2000 регистрирует событие с ID 618 (изменение политики восстановления данных). И опять, в полях User Name, Domain и Logon ID в подразделе Changed By нет информации о том, кто в действительности изменил политику; в них просто указана учетная запись локального компьютера.
Администратор может контролировать изменения политики IP Security (IPSec) компьютера, однако существуют разночтения относительно событий, обеспечивающих эту возможность. В документации Windows 2000 (по адресу: http://www.microsoft.com/technet/security/monito.asp) приводится список событий аудита IPSec — с ID 615 и ID 616 — входящих в категорию Audit policy change, но Event Viewer относит эти события к Detail tracking (категория Audit process tracking). Кроме того, Windows 2000 регистрирует подобные события, даже если категории Audit policy change и Audit process tracking не активизированы. В любом случае, при назначении политики IPSec через GPO в AD или через локальный GPO компьютера, Win-dows 2000 заносит в журнал событие с ID 615. Если используется GPO в AD, то в описании события с ID 615 указывается: IPSec PolicyAgent Service: Using the Active Local Registry policy, as (i) there?s no Active Directory Storage policy or (ii) the Active Directory Storage policy couldn?t be applied successfully and there?s no Cached policy (используется локальная политика Active Local Re-gistry, так как (i) не существует политики Active Directory или (ii) политика Active Directory не может успешно применяться и нет сохраненной политики). Если при применении политики Windows 2000 сталкивается с трудностями, она регистрирует событие с ID 616 (агент политики IPSec встретил потенциально серьезную проблему).
Контроль изменений в групповой политике — важное условие сохранения целостности сети. Но необходимо быть внимательным и при контроле за физическим доступом к системам по сети. Windows 2000 поможет решить эту задачу.
Audit system events
Категория Audit system events содержит несколько полезных событий. Всякий раз при начальной загрузке Windows 2000 регистрирует событие с ID 512 (начало работы Windows NT). С помощью данного события можно обнаружить несанкционированные попытки перезагрузки системы, которые потенциально опасны, так как Windows 2000 уязвима, когда работу завершают пользователи, имеющие физический доступ к машине. Подробнее о потенциальных пробелах в системе безопасности и о том, как избежать риска, рассказывается в статье «Защитим права администратора!» (Windows 2000 Maga-zine/RE, № 2, 2000 г. — прим. ред.).
В документации Windows 2000 указывается, что операционная система регистрирует событие с ID 513 каждый раз при завершении работы, но это утверждение неверно. Чтобы определить, как долго система была в нерабочем состоянии, нужно сравнить время и дату события с ID 512 и предыдущего события, зарегистрированного Windows 2000.
Windows 2000 отмечает в журнале событие с ID 517 (журнал аудита очищен) всегда, когда кто-нибудь очищает журнал безопасности. Windows 2000 записывает это событие в новом журнале. Событие с ID 517 может указать на взломщика, который пытался замести следы.
В процессе начальной загрузки Win-dows 2000 регистрирует и несколько других событий. Операционная система фиксирует событие c ID 515 (доверенный процесс Logon зарегистрирован в LSA) для каждой запущенной процедуры входа в систему (процедуры входа в систему обслуживаются процессом Logon, компонентом подсистемы безопасности Windows 2000). Windows 2000 также регистрирует событие с ID 514 (пакет аутентификации, загруженный LSA) для каждого пакета аутентификации, загружаемого операционной системой (пакеты аутентификации совместимы с различными протоколами аутентификации, такими, как Kerberos, NT LAN Manager (NTLM) и Secure sockets Layer (SSL)). Операционная система записывает событие с ID 518 (SAM загрузила пакет оповещения) для каждого пакета оповещения, загруженного Windows 2000; стандартные пакеты оповещения — scecli, kdcsvc и rassfm. Пакеты оповещения — это специальные DLL, которые проектируются и устанавливаются для синхронизации паролей с другими системами или реализуют специальные правила применения паролей. Однако взломщики могут использовать пакеты оповещения для кражи паролей. В любом случае к нестандартным пакетам оповещения следует относиться с осторожностью.
Полный арсенал
Windows 2000 предоставляет впечатляющий набор функций аудита, усовершенствованных по сравнению с возможностями Windows NT. Однако в системе аудита Windows 2000 имеются и значительные недостатки, а применение политик Group Policy не всегда позволяет идентифицировать пользователя, изменившего политику, так как администраторы более не изменяют политики напрямую. Хочется верить, что в дальнейшем разработчики Microsoft устранят подобные недостатки и обеспечат более полный аудит изменений политик, вносимых через GPO.
Рэнди Франклин Смит — редактор Windows 2000 Magazine и президент компании Monterey Technology Group. Он автор публикуемой два раза в месяц колонки Win2K Security для электронного издания Windows IT Security Channel в сети Windows 2000 Magazine Network. Связаться с ним можно по адресу: rsmith@montereytechgroup.com.
В предыдущих выпусках
Это пятая статья Рэнди Франклина Смита из серии, посвященной журналу безопасности Windows 2000. Информацию о журнале безопасности Windows NT можно найти в предыдущей серии статей. Ниже приведен список статей обеих серий.
Статьи, посвященные журналу безопасности Windows 2000:
«Контроль событий регистрации в Windows 2000» - http://www.osp.ru/win2000/worknt/2001/03/302.htm
«Аудит событий регистрации пользователя» - Windows 2000 Magazine, 03/2001
«Заглянем в журнал безопасности Windows 2000» - Windows 2000 Magazine, 04/2001
«Аудит доступа к объектам» - Windows 2000 Magazine, 05/2001
Статьи, посвященные журналу безопасности Windows NT:
«Анализируем журнал безопасности Windows NT» - Windows 2000 Magazine, 03/2000
«Контроль использования административных привилегий» - Windows 2000 Magazine, 04/2000
«Инструменты для работы с журналами безопасности» - Windows 2000 Magazine, 06/2000