Мониторинг с использованием усовершенствованных утилит Windows XP

Windows XP — первая операционная система Microsoft нового поколения, в которой мощь и защищенность Windows 2000 и Windows NT сочетаются с гибкостью и простотой Windows Me и Windows 98. Чтобы повысить безопасность XP, разработчики встроили в операционную систему ряд знакомых инструментов с графическим интерфейсом, запускаемых из командной строки, и предложили несколько новых утилит. Специалисты Microsoft предпочли не поставлять утилиты в комплекте Microsoft Windows XP Resource Kit и перенесли наиболее полезные инструменты из Microsoft Windows 2000 Resource Kit и Windows NT Resource Kit в базовый комплект XP и папку Support Tools на установочном компакт-диске. Эти инструменты помогут управлять компьютерами XP и надежно защищать их.

Сбор системной информации

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

В XP задача упростилась, благодаря инструменту командной строки Systeminfo (systeminfo.exe). Systeminfo собирает сведения о конфигурации системы через API Windows Management Instrumentation (WMI). Информация распределяется по следующим разделам: операционная система, аппаратная платформа, имеющаяся конфигурация и установленные исправления. Ключ /s (system) позволяет получить информацию об удаленных машинах; с помощью ключей /u (username) и /p (password) можно задать контекст безопасности для команды. Если указать имя пользователя, но не пароль, то система попросит ввести его — это необходимая мера, особенно когда приходится запускать утилиту в оперативном режиме в присутствии посторонних лиц (при вводе пароль не отображается на экране).

Другая утилита, позволяющая определить системную конфигурацию, — Spcheck (spcheck.exe) из набора XP Support Tools. Раньше эту утилиту можно было получить только в Microsoft Product Support Services, PSS. Информацию, полученную с помощью Spcheck, иногда трудно прочитать, но она нужна, если требуется проверить версии сетевых компонентов XP — драйверов, DLL и инструментов командной строки, используемых для мониторинга сетевых компонентов. Для работы Spcheck необходим файл данных spcheck.ini, в котором содержится информация об отдельных файлах в каждом сетевом компоненте. Spcheck.ini не поставляется в составе XP; его последнюю версию нужно получить на сайте Microsoft. В статье Microsoft «How to Use the SPCheck Tool to Determine the Service Pack Level of Components» (http://support.microsoft.com/ default.aspx?scid=kb;en-us;q279631) приводится ссылка на файл данных для XP, Windows 2000, NT 4.0 и Microsoft Exchange Server 5.5, а также инструкции по использованию Spcheck.

Мониторинг компьютеров

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

Для контроля процессов, протекающих в системе, часто используется инструмент Task Manager. Но чтобы выяснить, какие процессы запустили подпроцессы, или определить активные службы процессов, лучше воспользоваться утилитой командной строки tlist.exe. К сожалению, в XP этого полезного инструмента нет, и вместо него приходится работать с Tasklist (tasklist.exe). Tasklist предназначен для работы в многопользовательской среде XP, он сообщает информацию о каждом активном процессе. Однако, в отличие от tlist.exe, Tasklist не приводит списка подпроцессов для каждого родительского процесса. Я надеюсь, что эта полезная функция вновь появится в будущей версии утилиты. Tasklist позволяет опрашивать удаленные системы, а с помощью ключа /v можно получать подробные листинги с полезной информацией, в том числе об именах пользователей и Windows Titles. Как показано на Экране 1, с помощью ключа /m можно увидеть процессы, загрузившие конкретную DLL, — это особенно удобно, если есть подозрения, что DLL в действительности представляет собой вирус типа «троянского коня».

Экран 1. Использование tasklist.exe для нахождения процессов, загружающих DLL.

Я нередко отмечаю повышенную активность брандмауэра/маршрутизатора. Работая с прежними версиями Windows, я использовал утилиту Netstat (netstat.exe), чтобы выяснить, какие конечные точки TCP или UDP задействованы на моей системе, а затем пытался мысленно найти процесс или процессы, которые посылают и принимают данные. Но если необходимо установить точное соответствие между конечными точками и процессами, то приходится пользоваться инструментами независимых поставщиков. В обновленном инструменте Netstat появилась функция, с помощью которой можно определить, какие процессы взаимодействуют с теми или иными компьютерами. Команда Netstat с ключом /o показывает идентификатор процесса (PID) наряду с информацией о конечной точке (см. Экран 2). Благодаря ключу /a можно увидеть все конечные точки, как активные, так и находящиеся в режиме прослушивания.

Экран 2. Netstat.exe показывает защищенные процессы.

Кроме того, я контролирую все файлы, открытые каждым процессом. В прежних версиях Windows можно было установить и использовать утилиту oh.exe из набора ресурсов. Oh.exe документирована в Help-файле XP Support Tools, но вместе с Support Tools не устанавливается. Тем не менее увидеть файлы, открытые процессом, можно с помощью нового инструмента командной строки Openfiles (openfiles.exe). Как и в случае с oh.exe, для работы с Openfiles необходимо активизировать режим мониторинга в ядре, что отнимает много памяти и может снизить производительность таких систем, как серверы файлов, печати, почты и баз данных. Чтобы активизировать мониторинг, следует ввести команду:

openfiles /local on

Эта команда создает в реестре глобальный флаг Maintain a list of objects for each type («Вести список объектов каждого типа»). С помощью команды gflags.exe можно увидеть, какие флаги установлены в реестре и в работающем ядре. Для активизации флага машину следует перезагрузить. Чтобы просмотреть список процессов и открытых ими файлов, нужно ввести в командной строке:

openfiles

Следующая команда показывает, какие пользователи запустили процессы, открывшие файлы:

openfiles /query /v

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

Пользователям Windows 2000 Server Terminal Services или NT Server 4.0, Terminal Server Edition знакома утилита командной строки Query (query.exe). В состав XP входит разновидность Terminal Services, но нет Query. Аналогичную информацию можно получить с помощью других команд (query.exe вызывает эти команды). Например, чтобы получить список пользователей, зарегистрированных на системе XP, следует обратиться к инструменту командной строки Qwinsta (qwinsta.exe), как показано на Экране 3. Благодаря аргументу /server:servername можно опрашивать пользователей на удаленных системах, работающих с Terminal Services или XP. Инструмент командной строки Qprocess (qprocess.exe) показывает список процессов, запущенных каждым зарегистрированным пользователем. Как и команда Qwinsta, Qprocess позволяет посылать удаленным машинам запросы о принадлежащих пользователям процессах.

Экран 3. Qwinsta.exe показывает пользователей и их процессы.

Журнал событий — один из самых сложных компонентов Windows с точки зрения возможности контроля. Серверы, на которых работает много приложений, и системы с активизированным режимом аудита генерируют мегабайтные журналы, и найти в них сведения о конкретном событии непросто. С помощью нового инструмента Eventtriggers (eventtriggers.exe) можно запускать команды при наличии определенных событий в любом журнале. Например, чтобы вызвать командный сценарий C:AdminFailLogn.cmd в случае, если какой-нибудь пользователь не прошел аутентификацию, следует ввести команду:

eventtriggers /create /l security 
/eid 529 /tr «catch failed logon» 
/tk c:adminfaillogn.cmd /ru:administrator

Сценарий запускается в контексте безопасности Local System Administrator. Система просит ввести пароль пользователя, указанного с помощью ключа /ru. Если контекст пользователя не указан, то система заменяет его контекстом Local System. Применение Local System может привести к проблемам с теми командами, для которых необходим правильный контекст безопасности, поэтому я рекомендую использовать настоящую учетную запись. Я обнаружил, что время между событием и срабатыванием триггера может составлять до 60 с. Как и многие новые инструменты, команда взаимодействует и с удаленными системами XP. Объединив команду с eventcreate.exe, можно получить триггеры, срабатывающие при наступлении определенных событий.

Мониторинг сети

Для поиска неисправностей в канале связи между клиентской машиной и сервером обычно используется утилита Network Monitor (netmon.exe), входящая в состав серверных версий операционной системы Microsoft. Система XP располагает утилитой командной строки Netcap (netcap.exe), которая устанавливается вместе с XP Support Tools. Как и Network Monitor, ее можно использовать для перехвата сетевого трафика. При первом запуске утилиты выдается сообщение об установке сетевого драйвера. Netcap может читать файлы фильтрации, построенные программой Network Monitor 2.0 и последующих версий, а Network Monitor может читать отчеты Netcap.

Экран 4. IP Security Monitor приводит список ассоциаций.

Администраторы, использующие в своих сетях IP Security (IPSec), удивятся, не обнаружив в составе XP такой полезной утилиты мониторинга связей IPSec, как Ipsecmon (ipsecmon.exe). Но огорчаться не стоит — на смену Ipsecmon пришла оснастка IP Security Monitor консоли управления Microsoft Management Console (MMC), наделенная расширенными функциями мониторинга как локальных, так и удаленных систем XP. Чтобы обратиться к ней, необходимо запустить mmc.exe и выбрать из меню File пункт Add/Remove Snap-in. По щелчку на кнопке Add открывается диалоговое окно Add Standalone Snap-in. Из списка оснасток следует выбрать IP Security Monitor и щелкнуть на кнопке Add. Чтобы вернуться в консоль MMC, следует щелкнуть на кнопке OK диалогового окна Add Standalone Snap-in. Развернув раздел Local Machine, можно увидеть два узла: Main Mode и Quick Mode. Эти узлы соответствуют первому (Phase I) и второму (Phase II) этапам процесса согласования IPSec. Последовательно развернув узел Quick Mode, а затем узел Security Associations, можно увидеть список ассоциаций безопасности (security associations, SA), существующих на этапе Phase II (см. Экран 4). Чтобы получить дополнительную информацию, достаточно дважды щелкнуть на SA. В других узлах можно найти подробную информацию о фильтрах и политиках, управляющих SA. Щелкнув правой кнопкой мыши на узле Machine и выбрав пункт Statistics, можно увидеть сводку информации о состоянии IPSec на данной системе (см. Экран 5).

Экран 5. Статистика IPSec.

Управление системой

Администраторы отвечают как за мониторинг, так и за управление компьютерами компании. В XP реализован расширенный набор функций и того и другого.

В предыдущих версиях Windows можно было завершить процесс с помощью утилиты kill.exe из набора Support Tools. Разработчики Microsoft заменили kill.exe на taskkill.exe и обеспечили возможность уничтожать процессы на удаленных системах, по имени или заголовку окна, ликвидировать подпроцессы и процессы, отвечающие определенным условиям, в том числе по статусу, использованию памяти или процессору, загруженным DLL, имени пользователя или службы.

Возможность отключать пользователей, подключенных к разделяемым ресурсам, и закрывать открытые ими файлы была реализована еще в Windows NT 3.1. В XP можно закрывать файлы, открытые как удаленными, так и локальными пользователями. Файлы закрываются с помощью утилиты командной строки openfiles.exe с ключом /disconnect. Как и в программе tasklist.exe, здесь можно указать такие параметры, как имя пользователя, имя файла и режим открытия. С помощью команды можно закрывать файлы на удаленной машине (если пользователь имеет права администратора на этой системе).

Если администратору необходимо завершить сеанс пользователя на машине XP, можно воспользоваться утилитой командной строки Logoff (logoff.exe). Аналогичная утилита в предыдущих версиях Windows обеспечивала отключение только тех пользователей, которые дистанционно подключены к серверу. Версия в XP позволяет отключить пользователя, находящегося за консолью.

Джон Хауи — менеджер консалтинговой группы Security Toolkit, специализирующейся на проблемах сетевой и системной безопасности. С ним можно связаться по адресу: jhowie@securitytoolkit.com.